aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2020-04-16 12:45:30 +0930
committerAlan Modra <amodra@gmail.com>2020-04-16 15:43:19 +0930
commit2165dc8d90ef9618a1db9bc596f433b02b7cc54a (patch)
tree0f4bd8f28e59a30db58e017e7faf69b68b2c6df9 /bfd
parent06507dab6172582d3924a3d7dc92a9e7d4ab60ff (diff)
downloadgdb-2165dc8d90ef9618a1db9bc596f433b02b7cc54a.zip
gdb-2165dc8d90ef9618a1db9bc596f433b02b7cc54a.tar.gz
gdb-2165dc8d90ef9618a1db9bc596f433b02b7cc54a.tar.bz2
PowerPC64 GOT reloc reserving PLT entry for ifunc
I can't see any reason why ELFv2 should create a PLT entry for ifuncs referenced by GOT relocs as long as the GOT entry remains. The GOT entry ought to be resolved by ld.so to the value returned by the ifunc resolver, or if there is global entry stub created for some other reason, by the linker to the stub address. * elf64-ppc.c (ppc64_elf_check_relocs): Don't create plt entries for GOT relocs against ifuncs.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/elf64-ppc.c8
1 files changed, 0 insertions, 8 deletions
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 25a3e46..63de3ab 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -4774,14 +4774,6 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
if (!update_local_sym_info (abfd, symtab_hdr, r_symndx,
rel->r_addend, tls_type))
return FALSE;
-
- /* We may also need a plt entry if the symbol turns out to be
- an ifunc. */
- if (h != NULL && !bfd_link_pic (info) && abiversion (abfd) != 1)
- {
- if (!update_plt_info (abfd, &h->plt.plist, rel->r_addend))
- return FALSE;
- }
break;
case R_PPC64_PLT16_HA: