[LLVMbugs] [Bug 13749] New: x86-64 psABI requires .eh_frame sections

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Aug 31 18:17:15 PDT 2012


http://llvm.org/bugs/show_bug.cgi?id=13749

             Bug #: 13749
           Summary: x86-64 psABI requires .eh_frame sections
           Product: libraries
           Version: 3.1
          Platform: PC
        OS/Version: OpenBSD
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: X86
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: matthew at dempsky.org
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified


The x86-64 psABI [1] requires .eh_frame sections to always be generated: "For
successful unwinding on AMD64 every function must provide a valid debug
information in the DWARF Debugging Information Format."

GCC implements this by default but Clang does not:

$ cat bar.c   
extern int foo(void);
int bar() {
  return foo() + 1;
}
$ gcc -c bar.c
$ readelf -S bar.o | grep eh_frame
  [ 6] .eh_frame         PROGBITS         0000000000000000  00000080
  [ 7] .rela.eh_frame    RELA             0000000000000000  00000578
$ clang -c bar.c                   
$ readelf -S bar.o | grep eh_frame 
$

Clang should enable -fasynchronous-unwind-tables by default for amd64 targets
compiling to the x86-64 ELF psABI like Linux and OpenBSD.  The above was run on
OpenBSD, but similar behavior can be seen on Linux.

(Tangentially, it also requires the unwind tables to be accurate at every
instruction, which currently isn't correct with LLVM either; see bug 13161.)

[1] http://www.x86-64.org/documentation/abi.pdf

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list