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/elf64-ppc.c | |
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/elf64-ppc.c')
-rw-r--r-- | bfd/elf64-ppc.c | 12 |
1 files changed, 12 insertions, 0 deletions
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 |