Run eh_frame optimisation for relocatable link
authorAlan Modra <amodra@gmail.com>
Mon, 13 Oct 2014 04:48:21 +0000 (15:18 +1030)
committerAlan Modra <amodra@gmail.com>
Mon, 13 Oct 2014 12:28:44 +0000 (22:58 +1030)
commit5b69e3572d1ee8e8e6e1991fd07f87a96c48746d
treee5688986dcaa7b0882440ee3f568f55f3cb03e58
parentc780cc2f5062451a568458b6ef9b8aef7cc1dd8a
Run eh_frame optimisation for relocatable link

The idea here is to drop .eh_frame FDEs corresponding to dropped
comdat group sections or linkonce sections, but not perform changes in
encoding.

bfd/
PR 17467
* elf-eh-frame.c (ENSURE_NO_RELOCS): Don't stop at first NONE reloc.
(_bfd_elf_parse_eh_frame): When relocatable output, don't set
flags enabling conversion of CIEs and FDEs to use relative encoding.
(find_merged_cie): Similarly.
(_bfd_elf_write_section_eh_frame): Don't edit FDEs when
relocatable, except for CIE pointer.
* elflink.c (bfd_elf_reloc_symbol_deleted_p): Return true for
relocs against symbols in dropped comdat group sections.
(bfd_elf_discard_info): Do some eh_frame optimisation when
relocatable.
ld/
* ldlang.c (lang_add_section): Set up map_head.s and map_tail.s when
relocatable.
bfd/ChangeLog
bfd/elf-eh-frame.c
bfd/elflink.c
ld/ChangeLog
ld/ldlang.c