diff options
author | Alan Modra <amodra@gmail.com> | 2010-03-31 07:53:40 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2010-03-31 07:53:40 +0000 |
commit | 9d6ded02f6ff449048b89fcaa83792037a6d66a9 (patch) | |
tree | c1801dbed3d6b9ad432fdc4cc64fd72c8b0da99e /bfd | |
parent | fd63344e356da161ac6262f865066e35fe2cd876 (diff) | |
download | gdb-9d6ded02f6ff449048b89fcaa83792037a6d66a9.zip gdb-9d6ded02f6ff449048b89fcaa83792037a6d66a9.tar.gz gdb-9d6ded02f6ff449048b89fcaa83792037a6d66a9.tar.bz2 |
* elf64-ppc.c (ppc64_elf_relocate_section): Nop out optimized
TPREL16_HI and TPREL16_HA insns.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf64-ppc.c | 12 |
2 files changed, 17 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index bdefe2a..172726c6 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2010-03-31 Alan Modra <amodra@gmail.com> + + * elf64-ppc.c (ppc64_elf_relocate_section): Nop out optimized + TPREL16_HI and TPREL16_HA insns. + 2010-03-31 Hans-Peter Nilsson <hp@axis.com> PR ld/11458 diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index 306c15e..3259e2e 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -11569,6 +11569,18 @@ ppc64_elf_relocate_section (bfd *output_bfd, } break; + case R_PPC64_GOT_TPREL16_HI: + case R_PPC64_GOT_TPREL16_HA: + if (tls_mask != 0 + && (tls_mask & TLS_TPREL) == 0) + { + rel->r_offset -= d_offset; + bfd_put_32 (output_bfd, NOP, contents + rel->r_offset); + r_type = R_PPC64_NONE; + rel->r_info = ELF64_R_INFO (r_symndx, r_type); + } + break; + case R_PPC64_GOT_TPREL16_DS: case R_PPC64_GOT_TPREL16_LO_DS: if (tls_mask != 0 |