diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2016-02-01 15:49:52 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2016-02-01 15:49:52 -0800 |
commit | aef28989904e92e391fee905e51abc6bb2fd4de0 (patch) | |
tree | 990f90c03f730e0fcd622f28d69ee6b489f64a06 /bfd/elflink.c | |
parent | 713cdcbf65e53e17e3d63799938675bf4a5b38ec (diff) | |
download | gdb-aef28989904e92e391fee905e51abc6bb2fd4de0.zip gdb-aef28989904e92e391fee905e51abc6bb2fd4de0.tar.gz gdb-aef28989904e92e391fee905e51abc6bb2fd4de0.tar.bz2 |
Don't add DT_NEEDED for unmatched symbol
Don't add DT_NEEDED if a symbol from a library loaded via DT_NEEDED
doesn't match the symbol referenced by regular object.
bfd/
PR ld/19553
* elflink.c (elf_link_add_object_symbols): Don't add DT_NEEDED
if a symbol from a library loaded via DT_NEEDED doesn't match
the symbol referenced by regular object.
ld/testsuite/
PR ld/19553
* testsuite/ld-elf/indirect.exp: Run tests for PR ld/19553.
* testsuite/ld-elf/pr19553.map: New file.
* testsuite/ld-elf/pr19553.map: Likewise.
* testsuite/ld-elf/pr19553a.c: Likewise.
* testsuite/ld-elf/pr19553b.c: Likewise.
* testsuite/ld-elf/pr19553b.out: Likewise.
* testsuite/ld-elf/pr19553c.c: Likewise.
* testsuite/ld-elf/pr19553c.out: Likewise.
* testsuite/ld-elf/pr19553d.c: Likewise.
* testsuite/ld-elf/pr19553d.out: Likewise.
Diffstat (limited to 'bfd/elflink.c')
-rw-r--r-- | bfd/elflink.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/bfd/elflink.c b/bfd/elflink.c index e71cb50..ac03ce5 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -4562,8 +4562,10 @@ error_free_dyn: break; } - /* Don't add DT_NEEDED for references from the dummy bfd. */ + /* Don't add DT_NEEDED for references from the dummy bfd nor + for unmatched symbol. */ if (!add_needed + && matched && definition && ((dynsym && h->ref_regular_nonweak |