diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2016-11-28 08:03:46 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2016-11-28 08:03:46 -0800 |
commit | 4deb8f714d555a2f530e37c3e7af32bc42fdda58 (patch) | |
tree | 4f5c4fc9e7e3347ae4e8cb222032d7e64e9231ad /ld | |
parent | 9e27646a6dedd071bdc8a7ba75eca1faaf500366 (diff) | |
download | gdb-4deb8f714d555a2f530e37c3e7af32bc42fdda58.zip gdb-4deb8f714d555a2f530e37c3e7af32bc42fdda58.tar.gz gdb-4deb8f714d555a2f530e37c3e7af32bc42fdda58.tar.bz2 |
Properly hide hidden versioned symbol in executable
A hidden versioned symbol in executable should be forced local if it is
locally defined, not referenced by shared library and not exported. We
must do it before _bfd_elf_link_renumber_dynsyms.
bfd/
* elflink.c (_bfd_elf_fix_symbol_flags): Hide hidden versioned
symbol in executable.
(elf_link_output_extsym): Don't change bind from global to
local when linking executable.
ld/
* testsuite/ld-elf/indirect.exp: Add a test for PR 18720.
* testsuite/ld-elf/pr18720.rd: New file.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/indirect.exp | 3 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/pr18720.rd | 4 |
3 files changed, 12 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index d612849..8040aa0 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2016-11-28 H.J. Lu <hongjiu.lu@intel.com> + + * testsuite/ld-elf/indirect.exp: Add a test for PR 18720. + * testsuite/ld-elf/pr18720.rd: New file. + 2016-11-27 Alan Modra <amodra@gmail.com> PR 20815 diff --git a/ld/testsuite/ld-elf/indirect.exp b/ld/testsuite/ld-elf/indirect.exp index b4766fd..3176210 100644 --- a/ld/testsuite/ld-elf/indirect.exp +++ b/ld/testsuite/ld-elf/indirect.exp @@ -91,6 +91,9 @@ set build_tests { {"Build pr18720b1.o" "-r -nostdlib tmpdir/pr18720b.o" "" {dummy.c} {} "pr18720b1.o"} + {"Build pr18720a" + "tmpdir/pr18720a.o tmpdir/pr18720b.o tmpdir/libpr18720c.so" "" + {check-ptr-eq.c} {{readelf {--dyn-syms} pr18720.rd}} "pr18720a"} {"Build libpr19553b.so" "-shared -Wl,--version-script=pr19553.map" "-fPIC" {pr19553b.c} {} "libpr19553b.so"} diff --git a/ld/testsuite/ld-elf/pr18720.rd b/ld/testsuite/ld-elf/pr18720.rd new file mode 100644 index 0000000..b5e848f --- /dev/null +++ b/ld/testsuite/ld-elf/pr18720.rd @@ -0,0 +1,4 @@ +#failif +#... +.* found at index >= .dynsym's sh_info value .* +#... |