• Vineet Gupta's avatar
    ARC: dw2 unwind: Ignore CIE version !=1 gracefully instead of bailing · 323f41f9
    Vineet Gupta authored
    ARC dwarf unwinder only supports CIE version == 1
    The boot time dwarf sanitizer (part of binary lookup table constructor)
    would simply bail if it saw CIE version == 3, rendering unwinder with a
    NULL lookup table.
    
    It seems libgcc linked with kernel does have such entries.
    
    With fallback linear search removed, and a NULL binary lookup table,
    unwinder fails to generate any stack trace.
    
    So allow graceful ignoring of unsupported CIE entries.
    
    This problem was initially seen in Alexey's setup (and not mine) as he
    was using buildroot built toolchain (libgcc) which doesn't get built with
    CFLAGS_FOR_TARGET="-gdwarf-2 which is my default
    
    Fixes STAR 9000985048: "kernel unwinder broken with stock tools"
    
    Fixes: 2e22502c ARC: dw2 unwind: Remove falllback linear search thru FDE entries
    Reported-by Alexey Brodkin <abrodkin@synopsys.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
    323f41f9
unwind.c 32.6 KB