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: [email protected]
ReportedBy: [email protected]
CC: [email protected]
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.
_______________________________________________
bug-binutils mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-binutils