diff options
author | Alan Modra <amodra@gmail.com> | 2016-02-04 00:25:56 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2016-02-04 00:31:14 +1030 |
commit | 4f038ee5d22f04a16a413cf2e3d8ddeecdc75639 (patch) | |
tree | c19e16fa15c5da3df2cc341d7082080abb44e582 | |
parent | 94986c28859066084e2e48ea6bf7f3c652cb8984 (diff) | |
download | gdb-4f038ee5d22f04a16a413cf2e3d8ddeecdc75639.zip gdb-4f038ee5d22f04a16a413cf2e3d8ddeecdc75639.tar.gz gdb-4f038ee5d22f04a16a413cf2e3d8ddeecdc75639.tar.bz2 |
Fix "PowerPC64 ELFv2 entry code" for big-endian
bfd/
* elf64-ppc.c (ppc64_elf_relocate_section): Adjust last patch
for big-endian.
gold/
* powerpc.cc (relocate): Adjust last patch for big-endian.
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf64-ppc.c | 2 | ||||
-rw-r--r-- | gold/ChangeLog | 4 | ||||
-rw-r--r-- | gold/powerpc.cc | 2 |
4 files changed, 11 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index ff74998..93bfe05 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2016-02-04 Alan Modra <amodra@gmail.com> + + * elf64-ppc.c (ppc64_elf_relocate_section): Adjust last patch + for big-endian. + 2016-02-02 H.J. Lu <hongjiu.lu@intel.com> PR ld/19542 diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index 369eae5..f0bcee1 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -13915,7 +13915,7 @@ ppc64_elf_relocate_section (bfd *output_bfd, if (!bfd_link_pic (info) && !info->traditional_format && !htab->opd_abi - && rel->r_addend == 0 + && rel->r_addend == d_offset && 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 c0b7e56..ae50474 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,7 @@ +2016-02-04 Alan Modra <amodra@gmail.com> + + * powerpc.cc (relocate): Adjust last patch for big-endian. + 2016-02-02 Alan Modra <amodra@gmail.com> * powerpc.cc (relocate): Further restrict ELFv2 entry optimization. diff --git a/gold/powerpc.cc b/gold/powerpc.cc index 6df2904..60530ba 100644 --- a/gold/powerpc.cc +++ b/gold/powerpc.cc @@ -7727,7 +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 + && rela.get_r_addend() == d_offset + 4 && gsym != NULL && strcmp(gsym->name(), ".TOC.") == 0) { |