]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
PowerPC ifunc with local symbols
authorAlan Modra <amodra@gmail.com>
Mon, 7 Dec 2015 03:22:01 +0000 (13:52 +1030)
committerAlan Modra <amodra@gmail.com>
Thu, 10 Dec 2015 13:48:49 +0000 (00:18 +1030)
commitb0aafdad68a983b5bd45e7d7f55fec1fbcea9e84
tree8bace9dc63ecb80f8fe949740f3eb60453ac3f56
parentaa8b89e8ae35f71a94a1eaee0da939396d2f61d4
PowerPC ifunc with local symbols

This fixes some cases where the linker would incorrectly error on plt
relocs to local ifunc symbols.  I've also tidied plt and ifunc
handling for ppc64, where check_relocs was allowing for the
possibility of plt calls via addr14/addr24 relocs but relocate_section
was not.

* elf32-ppc.c (ppc_elf_check_relocs): Don't error on local ifunc
plt call.  Wrap long lines.
(ppc_elf_relocate_section): Wrap long lines.
* elf64-ppc.c (ppc64_elf_check_relocs): Don't error on local ifunc
plt calls.  Move __tls_get_addr checks later.  Don't create plt
for addr14/addr24 relocs.
(ppc64_elf_gc_sweep_hook): Adjust to suit check_relocs changes.
(ppc64_elf_relocate_section): Correct local ifunc handling for
PLT64, PLT32 and PLT16 relocs.
bfd/ChangeLog
bfd/elf32-ppc.c
bfd/elf64-ppc.c