aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2017-10-31 22:13:21 +1030
committerAlan Modra <amodra@gmail.com>2017-11-01 18:46:34 +1030
commit3988aed54acce3c682a877b51b0e09cce1079e81 (patch)
treef06e9392e2810d410cd007b7d8ee52fb75320c99 /ld/testsuite
parente48f0c8f1b9fdb195394dc7afea02ce55e4ba5e4 (diff)
downloadgdb-3988aed54acce3c682a877b51b0e09cce1079e81.zip
gdb-3988aed54acce3c682a877b51b0e09cce1079e81.tar.gz
gdb-3988aed54acce3c682a877b51b0e09cce1079e81.tar.bz2
PR22374, PowerPC unnecessary PLT entries
We don't need a PLT entry when function pointer initialization in a read/write section is the only reference to a given function symbol. This patch prevents the unnecessary PLT entry, and ensures no dynamic relocs are emitted when UNDEFWEAK_NO_DYNAMIC_RELOC says so. bfd/ PR 22374 * elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Don't create a plt entry when just a dynamic reloc can serve. Ensure no dynamic relocations when UNDEFWEAK_NO_DYNAMIC_RELOC by setting non_got_ref. Expand and move the non_got_ref comment. * elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Likewise. ld/ * testsuite/ld-powerpc/ambiguousv2.d: Remove FIXME.
Diffstat (limited to 'ld/testsuite')
-rw-r--r--ld/testsuite/ld-powerpc/ambiguousv2.d5
1 files changed, 0 insertions, 5 deletions
diff --git a/ld/testsuite/ld-powerpc/ambiguousv2.d b/ld/testsuite/ld-powerpc/ambiguousv2.d
index fec3a2c..7afdfe1 100644
--- a/ld/testsuite/ld-powerpc/ambiguousv2.d
+++ b/ld/testsuite/ld-powerpc/ambiguousv2.d
@@ -8,16 +8,11 @@
# anything to mark it as ELFv1 or ELFv2. We should get a dynamic
# reloc on the function address, not have a global entry stub, and
# my_func should be undefined dynamic with value zero.
-# FIXME someday: No need for a plt entry.
Relocation section .* contains 1 entries:
.*
.* R_PPC64_ADDR64 .* my_func \+ 0
-Relocation section .* contains 1 entries:
-.*
-.* R_PPC64_JMP_SLOT .* my_func \+ 0
-
Symbol table '\.dynsym' contains 5 entries:
.*
0: .*