This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] PowerPC64 ELFv2 entry code


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=85fabe715c441e1c90fe913e2a6d65f0e487e5e8

commit 85fabe715c441e1c90fe913e2a6d65f0e487e5e8
Author: Alan Modra <amodra@gmail.com>
Date:   Tue Feb 2 23:16:14 2016 +1030

    PowerPC64 ELFv2 entry code
    
    This tightens the condition under which ld optimizes PIC entry code
    to non-PIC.
    
    bfd/
    	* elf64-ppc.c (ppc64_elf_relocate_section): Further restrict
    	ELFv2 entry optimization.
    gold/
    	* powerpc.cc (relocate): Further restrict ELFv2 entry optimization.

Diff:
---
 bfd/ChangeLog   | 5 +++++
 bfd/elf64-ppc.c | 1 +
 gold/ChangeLog  | 4 ++++
 gold/powerpc.cc | 1 +
 4 files changed, 11 insertions(+)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 898af56..81e751c 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2016-02-02  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (ppc64_elf_relocate_section): Further restrict
+	ELFv2 entry optimization.
+
 2016-02-02  H.J. Lu  <hongjiu.lu@intel.com>
 
 	PR binutils/19547
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index f9c37b5..369eae5 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -13915,6 +13915,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
 	  if (!bfd_link_pic (info)
 	      && !info->traditional_format
 	      && !htab->opd_abi
+	      && rel->r_addend == 0
 	      && h != NULL && &h->elf == htab->elf.hgot
 	      && rel + 1 < relend
 	      && rel[1].r_info == ELF64_R_INFO (r_symndx, R_PPC64_REL16_LO)
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 06cafb0..c0b7e56 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,7 @@
+2016-02-02  Alan Modra  <amodra@gmail.com>
+
+	* powerpc.cc (relocate): Further restrict ELFv2 entry optimization.
+
 2016-01-15 Han Shen  <shenhan@google.com>
 
 	PR gold/19472 - need pc-relative stubs.
diff --git a/gold/powerpc.cc b/gold/powerpc.cc
index e26a198..6df2904 100644
--- a/gold/powerpc.cc
+++ b/gold/powerpc.cc
@@ -7727,6 +7727,7 @@ Target_powerpc<size, big_endian>::Relocate::relocate(
 	      && preloc != NULL
 	      && target->abiversion() >= 2
 	      && !parameters->options().output_is_position_independent()
+	      && rela.get_r_addend() == 4
 	      && gsym != NULL
 	      && strcmp(gsym->name(), ".TOC.") == 0)
 	    {


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]