From 3c5fce9bc29b216af7d10f8d6e4d8c3f11a48359 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Fri, 21 Apr 2017 12:00:55 -0700 Subject: Require --no-dynamic-linker with -static -E/--dynamic-list When -static -E/--dynamic-list are passed to linker, linker may create executable with dynamic sections which aren't supported by run-time. We require --no-dynamic-linker together with -static -E/--dynamic-list before adding dynamic symbol table to static executable. bfd/ PR ld/19617 PR ld/21086 * elflink.c (elf_link_add_object_symbols): Require --no-dynamic-linker with -E/--dynamic-list when creating dynamic sections. ld/ PR ld/19617 PR ld/21086 * testsuite/ld-elf/pr19617a.d: Pass --no-dynamic-linker to ld. * testsuite/ld-elf/pr19617b.d: Likewise. * testsuite/ld-elf/pr19617c.d: Likewise. *testsuite/ld-i386/pr19636-4d.d: Likewise. * testsuite/ld-elf/readelf.exp: Pass --no-dynamic-linker to ld with --export-dynamic. * testsuite/ld-elf/shared.exp: Pass --no-dynamic-linker to ld with -E. --- bfd/ChangeLog | 8 ++++++++ bfd/elflink.c | 1 + 2 files changed, 9 insertions(+) (limited to 'bfd') diff --git a/bfd/ChangeLog b/bfd/ChangeLog index ac80a44..4576020 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,11 @@ +2017-04-21 H.J. Lu + + PR ld/19617 + PR ld/21086 + * elflink.c (elf_link_add_object_symbols): Require + --no-dynamic-linker with -E/--dynamic-list when creating + dynamic sections. + 2017-04-20 Maciej W. Rozycki * elflink.c (_bfd_elf_symbol_refs_local_p): Always return TRUE diff --git a/bfd/elflink.c b/bfd/elflink.c index 330fad7..0d42c4c 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -3851,6 +3851,7 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info) if (!just_syms && (bfd_link_pic (info) || (!bfd_link_relocatable (info) + && info->nointerp && (info->export_dynamic || info->dynamic))) && is_elf_hash_table (htab) && info->output_bfd->xvec == abfd->xvec -- cgit v1.1