]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
Revert PR16467 change
authorAlan Modra <amodra@gmail.com>
Mon, 30 May 2016 00:13:44 +0000 (09:43 +0930)
committerAlan Modra <amodra@gmail.com>
Thu, 9 Jun 2016 06:08:04 +0000 (15:38 +0930)
commitbdf48af13cdaccdcbcc0aca9c41ae376038508fd
treeb6093fd2b30e790f2357ec02e7e2b1e5f7838bfb
parentacf79a9375fc1c38620a089b8240f9f6eeed2324
Revert PR16467 change

This reverts the pr16467 change, which was incorrect due to faulty
analysis of the pr16467 testcase.  The failure was not due to a
mismatch in symbol type (ifunc/non-ifunc) but due to a symbol loop
being set up.

See https://sourceware.org/ml/binutils/2016-06/msg00013.html for some
rambling on versioned symbols and ELF shared library symbol overriding
that explain this patch.

bfd/
PR ld/20159
PR ld/16467
* elflink.c (_bfd_elf_merge_symbol): Revert PR16467 change.
(_bfd_elf_add_default_symbol): Don't indirect to/from defined
symbol given a version by a script different to the version
of the symbol being added.
(elf_link_add_object_symbols): Use _bfd_elf_strtab_save and
_bfd_elf_strtab_restore.  Don't fudge dynstr references.
* elf-strtab.c (_bfd_elf_strtab_restore_size): Delete.
(struct strtab_save): New.
(_bfd_elf_strtab_save, _bfd_elf_strtab_restore): New functions.
* elf-bfd.h (_bfd_elf_strtab_restore_size): Delete.
(_bfd_elf_strtab_save, _bfd_elf_strtab_restore): Declare.
bfd/ChangeLog
bfd/elf-bfd.h
bfd/elf-strtab.c
bfd/elflink.c