[llvm-bugs] [Bug 40277] New: lld should synthesize .ARM.exidx entries for code without them

via llvm-bugs llvm-bugs at lists.llvm.org
Wed Jan 9 16:05:12 PST 2019


            Bug ID: 40277
           Summary: lld should synthesize .ARM.exidx entries for code
                    without them
           Product: lld
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: ELF
          Assignee: unassignedbugs at nondot.org
          Reporter: george.burgess.iv at gmail.com
                CC: llvm-bugs at lists.llvm.org, peter.smith at linaro.org

(Apologies if I use vague/handwavy terminology here; I'm not super familiar
with ARM EH or linker terminology)

When a function is defined in assembly, it appears that -- reasonably so --
there will be no unwinding information in .ARM.exidx/.ARM.extab to go along
with it, unless the user goes out of their way to somehow specify that.

This becomes problematic when this assembly code is linked with C/C++ that's
built with unwinding info. AFAICT, the .ARM.exidx entry selected to try to
unwind this asm is the .ARM.exidx entry of the nearest function(s) laid out
before the asm. This... can work, but doesn't always. :)

Gold appears to handle this by synthesizing `cantunwind` .ARM.exidx entries for
functions/sections that have no associated .ARM.exidx entry. I think it would
be reasonable for lld to do the same.

You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20190110/e07445d7/attachment-0001.html>

More information about the llvm-bugs mailing list