diff options
author | Konstantin Zhuravlyov <kzhuravl_dev@outlook.com> | 2018-06-11 21:42:53 +0000 |
---|---|---|
committer | Konstantin Zhuravlyov <kzhuravl_dev@outlook.com> | 2018-06-11 21:42:53 +0000 |
commit | d70c367267df22cdfd99719f58489d7075048ed6 (patch) | |
tree | f17668d38171e8edd5a7b3da2048a354fa08bf07 | |
parent | 3e5d66ac66cd2669976f316ff12c57f162416381 (diff) | |
download | bcm5719-llvm-d70c367267df22cdfd99719f58489d7075048ed6.tar.gz bcm5719-llvm-d70c367267df22cdfd99719f58489d7075048ed6.zip |
AMDGPU/LLD: Handle R_AMDGPU_REL64 relocation
Requires r334443 from llvm
Differential Revision: https://reviews.llvm.org/D47734
llvm-svn: 334444
-rw-r--r-- | lld/ELF/Arch/AMDGPU.cpp | 2 | ||||
-rw-r--r-- | lld/test/ELF/amdgpu-relocs.s | 12 |
2 files changed, 14 insertions, 0 deletions
diff --git a/lld/ELF/Arch/AMDGPU.cpp b/lld/ELF/Arch/AMDGPU.cpp index 505e0e6ad48..48b27f23510 100644 --- a/lld/ELF/Arch/AMDGPU.cpp +++ b/lld/ELF/Arch/AMDGPU.cpp @@ -66,6 +66,7 @@ void AMDGPU::relocateOne(uint8_t *Loc, RelType Type, uint64_t Val) const { write32le(Loc, Val); break; case R_AMDGPU_ABS64: + case R_AMDGPU_REL64: write64le(Loc, Val); break; case R_AMDGPU_GOTPCREL32_HI: @@ -86,6 +87,7 @@ RelExpr AMDGPU::getRelExpr(RelType Type, const Symbol &S, case R_AMDGPU_REL32: case R_AMDGPU_REL32_LO: case R_AMDGPU_REL32_HI: + case R_AMDGPU_REL64: return R_PC; case R_AMDGPU_GOTPCREL: case R_AMDGPU_GOTPCREL32_LO: diff --git a/lld/test/ELF/amdgpu-relocs.s b/lld/test/ELF/amdgpu-relocs.s index 8b5a61ed21f..775a262d5eb 100644 --- a/lld/test/ELF/amdgpu-relocs.s +++ b/lld/test/ELF/amdgpu-relocs.s @@ -77,6 +77,15 @@ ptr: ptr2: .quad temp2 +# R_AMDGPU_REL64: +.type foo, @object +.rodata + .globl foo + .p2align 3 +foo: + .quad temp2@rel64 + .size foo, 8 + # The relocation for local_var{0, 1, 2} and var should be resolved by the # linker. # CHECK: Relocations [ @@ -101,6 +110,9 @@ ptr2: # CHECK-NEXT: } # CHECK-NEXT: ] +# OBJDUMP: Contents of section .rodata: +# OBJDUMP: 28fbffff ffffffff + # OBJDUMP: Contents of section nonalloc: # OBJDUMP-NEXT: 0000 00000000 04480000 00000000 08440000 # OBJDUMP-NEXT: 00000000 0c400000 |