Properly hide hidden versioned symbol in executable
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 28 Nov 2016 16:03:46 +0000 (08:03 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 28 Nov 2016 16:03:46 +0000 (08:03 -0800)
commit4deb8f714d555a2f530e37c3e7af32bc42fdda58
tree4f5c4fc9e7e3347ae4e8cb222032d7e64e9231ad
parent9e27646a6dedd071bdc8a7ba75eca1faaf500366
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.
bfd/ChangeLog
bfd/elflink.c
ld/ChangeLog
ld/testsuite/ld-elf/indirect.exp
ld/testsuite/ld-elf/pr18720.rd [new file with mode: 0644]