aboutsummaryrefslogtreecommitdiff
path: root/gold
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2017-07-29 12:33:35 +0930
committerAlan Modra <amodra@gmail.com>2017-07-29 13:02:27 +0930
commit8b5f1ed8777df405f3c7b87472b1506f5125aebe (patch)
treefe5af9f4c9fd47c2ee17365ddc456e86661f0f47 /gold
parentef080e7ed4a373037231e709bfa1a909f4eae0f9 (diff)
downloadbinutils-8b5f1ed8777df405f3c7b87472b1506f5125aebe.zip
binutils-8b5f1ed8777df405f3c7b87472b1506f5125aebe.tar.gz
binutils-8b5f1ed8777df405f3c7b87472b1506f5125aebe.tar.bz2
PR 21847, Don't default PowerPC64 to --plt-localentry
The big comment in ppc64_elf_tls_setup says why. I've also added some code to the bfd linker that catches the -lpthread -lc symbol differences and disable generation of optimized call stubs even when --plt-localentry is activated. Gold doesn't yet have that. PR 21847 bfd/ * elf64-ppc.c (struct ppc_link_hash_entry): Add non_zero_localentry. (ppc64_elf_merge_symbol): Set non_zero_localentry. (is_elfv2_localentry0): Test non_zero_localentry. (ppc64_elf_tls_setup): Default to --no-plt-localentry. gold/ * powerpc.cc (Target_powerpc::scan_relocs): Default to --no-plt-localentry. ld/ * ld.texinfo (plt-localentry): Document.
Diffstat (limited to 'gold')
-rw-r--r--gold/ChangeLog6
-rw-r--r--gold/powerpc.cc2
2 files changed, 6 insertions, 2 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index fdac931..a019393 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,9 @@
+2017-07-29 Alan Modra <amodra@gmail.com>
+
+ PR 21847
+ * powerpc.cc (Target_powerpc::scan_relocs): Default to
+ --no-plt-localentry.
+
2017-07-28 H.J. Lu <hongjiu.lu@intel.com>
PR gold/21857
diff --git a/gold/powerpc.cc b/gold/powerpc.cc
index a4966b8..e322d6f 100644
--- a/gold/powerpc.cc
+++ b/gold/powerpc.cc
@@ -7660,8 +7660,6 @@ Target_powerpc<size, big_endian>::scan_relocs(
{
if (parameters->options().user_set_plt_localentry())
plt_localentry0 = parameters->options().plt_localentry();
- else
- plt_localentry0 = symtab->lookup("GLIBC_2.26", NULL) != NULL;
}
this->plt_localentry0_ = plt_localentry0;
this->plt_localentry0_init_ = true;