fix frv eh_frame relaxation bug
Alexandre Oliva
aoliva@redhat.com
Tue May 8 06:08:00 GMT 2007
elf-eh-frame.c removes CIEs that are redundant with previous CIEs, and
this requires the relocation for __gxx_personality_v0 to be dropped as
well.
However, the relocation code failed to take into account the
possibility of this kind of relaxation, and used the result of
_bfd_elf_section_offset() without testing whether it's -1, which
indicates that (re)location is to be dropped entirely because the
underlying construct was removed.
AFAICT we've already taken care of ensuring it would never be -2
(cross-segment relocations don't work), so this should be good enough.
I'm checking it in. Tested by building a functional libstdc++.so.6
(EH wouldn't work at all before the patch.)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bfd-frv-eh-frame-relax-relocs.patch
Type: text/x-patch
Size: 5593 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20070508/79082c6d/attachment.bin>
-------------- next part --------------
--
Alexandre Oliva http://www.lsd.ic.unicamp.br/~oliva/
FSF Latin America Board Member http://www.fsfla.org/
Red Hat Compiler Engineer aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist oliva@{lsd.ic.unicamp.br, gnu.org}
More information about the Binutils
mailing list