diff options
author | Alan Modra <amodra@gmail.com> | 2017-07-29 12:33:35 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2017-07-29 13:02:27 +0930 |
commit | 8b5f1ed8777df405f3c7b87472b1506f5125aebe (patch) | |
tree | fe5af9f4c9fd47c2ee17365ddc456e86661f0f47 /gold | |
parent | ef080e7ed4a373037231e709bfa1a909f4eae0f9 (diff) | |
download | binutils-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/ChangeLog | 6 | ||||
-rw-r--r-- | gold/powerpc.cc | 2 |
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; |