summaryrefslogtreecommitdiff
path: root/bfd/elflink.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-04-21 12:00:55 -0700
committerH.J. Lu <hjl.tools@gmail.com>2017-04-21 12:01:05 -0700
commit3c5fce9bc29b216af7d10f8d6e4d8c3f11a48359 (patch)
tree94a9137c5a3cfabb589c090994f03fd98704ed66 /bfd/elflink.c
parent0d4c07afb1e5e37e8e296858f8b14a3b4adf950b (diff)
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.
Diffstat (limited to 'bfd/elflink.c')
-rw-r--r--bfd/elflink.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 330fad79aa..0d42c4c5f9 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