aboutsummaryrefslogtreecommitdiff
path: root/ld/emultempl/genelf.em
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2010-02-19 01:47:16 +0000
committerAlan Modra <amodra@gmail.com>2010-02-19 01:47:16 +0000
commitd0bf826b37bdeb1ad98dc2d601b450bd5b9043e5 (patch)
tree6228351f86e84b5f27cf405eaa860fb830cc861a /ld/emultempl/genelf.em
parent220453ec97481311a3cfd0d1a191c1bfe24f3b53 (diff)
downloadgdb-d0bf826b37bdeb1ad98dc2d601b450bd5b9043e5.zip
gdb-d0bf826b37bdeb1ad98dc2d601b450bd5b9043e5.tar.gz
gdb-d0bf826b37bdeb1ad98dc2d601b450bd5b9043e5.tar.bz2
bfd/
* elf.c (_bfd_elf_fixup_group_sections): New function, split out from.. (_bfd_elf_copy_private_header_data): ..here. * elflink.c (_bfd_elf_size_group_sections): New function. (bfd_elf_size_dynamic_sections): Call it. * elf-bfd.h (_bfd_elf_size_group_sections): Declare. (_bfd_elf_fixup_group_sections): Declare. ld/ * ldlang.c (unique_section_p): Add os param. Allow group sections to match /DISCARD/. Update all callers. * emultempl/genelf.em (gld${EMULATION_NAME}_before_allocation): New. (LDEMUL_BEFORE_ALLOCATION): Define. ld/testsuite/ * ld-elf/group.ld: Discard .dropme sections. * ld-elf/group10.d, * ld-elf/group10.s: New test.
Diffstat (limited to 'ld/emultempl/genelf.em')
-rw-r--r--ld/emultempl/genelf.em10
1 files changed, 10 insertions, 0 deletions
diff --git a/ld/emultempl/genelf.em b/ld/emultempl/genelf.em
index 1a6c539..62af4de 100644
--- a/ld/emultempl/genelf.em
+++ b/ld/emultempl/genelf.em
@@ -48,6 +48,15 @@ gld${EMULATION_NAME}_after_open (void)
}
static void
+gld${EMULATION_NAME}_before_allocation (void)
+{
+ if (link_info.relocatable
+ && !_bfd_elf_size_group_sections (&link_info))
+ einfo ("%X%P: can not size group sections: %E\n");
+ before_allocation_default ();
+}
+
+static void
gld${EMULATION_NAME}_after_allocation (void)
{
gld${EMULATION_NAME}_map_segments (FALSE);
@@ -56,4 +65,5 @@ EOF
# Put these extra routines in ld_${EMULATION_NAME}_emulation
#
LDEMUL_AFTER_OPEN=gld${EMULATION_NAME}_after_open
+LDEMUL_BEFORE_ALLOCATION=gld${EMULATION_NAME}_before_allocation
LDEMUL_AFTER_ALLOCATION=gld${EMULATION_NAME}_after_allocation