diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2017-04-21 12:00:55 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-04-21 12:01:05 -0700 |
commit | 3c5fce9bc29b216af7d10f8d6e4d8c3f11a48359 (patch) | |
tree | 94a9137c5a3cfabb589c090994f03fd98704ed66 /bfd/elflink.c | |
parent | 0d4c07afb1e5e37e8e296858f8b14a3b4adf950b (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.c | 1 |
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 |