bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gold/14675] New: No eh_frame info registered in exception_static_te


From: amodra at gmail dot com
Subject: [Bug gold/14675] New: No eh_frame info registered in exception_static_test
Date: Fri, 05 Oct 2012 13:29:18 +0000


http://sourceware.org/bugzilla/show_bug.cgi?id=14675



             Bug #: 14675

           Summary: No eh_frame info registered in exception_static_test

           Product: binutils

           Version: 2.24 (HEAD)

            Status: NEW

          Severity: normal

          Priority: P2

         Component: gold

        AssignedTo: address@hidden

        ReportedBy: address@hidden

                CC: address@hidden

    Classification: Unclassified





exception_static_test fails for powerpc64 due to this layout:



.eh_frame       0x00000000100a4290     0xba14

 ** eh_frame    0x00000000100a4290     0xba10

 .eh_frame      0x00000000100afca0        0x0

/usr/lib/gcc/ppc64-redhat-linux/4.7.0/crtbeginT.o

 .eh_frame      0x00000000100afca0        0x4

/usr/lib/gcc/ppc64-redhat-linux/4.7.0/crtend.o



crtbeginT.o defines __EH_FRAME_BEGIN__, which is passed to

__register_frame_info.

As you can guess this doesn't work very well with all of the actual eh_frame

info preceding this location.



The reason for the failure is that on my freshly updated fedora17 box,

glibc-devel-2.15-51.fc17.ppc64 provided crt1.o has an .eh_frame section. 

crt1.o is linked *before* crtbeginT.o so we run foul of the following in

layout.cc



      // We found a .eh_frame section we are going to optimize, so now

      // we can add the set of optimized sections to the output

      // section.  We need to postpone adding this until we've found a

      // section we can optimize so that the .eh_frame section in

      // crtbegin.o winds up at the start of the output section.

      if (!this->added_eh_frame_data_)



Now .eh_frame in crt1.o is a decidedly useless thing to have, but bfd ld

manages to link and run exception_static_test OK.  What happens with bfd ld is

that the crt1.o .eh_frame is linked before __EH_FRAME_BEGIN__ (effectively

discarded as far as the unwinder is concerned) but the bulk of .eh_frame from

all other files is properly placed after this location.



-- 

Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email

------- You are receiving this mail because: -------

You are on the CC list for the bug.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]