diff options
-rw-r--r-- | lld/ELF/Arch/AMDGPU.cpp | 2 | ||||
-rw-r--r-- | lld/test/ELF/amdgpu-relocs.s | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/lld/ELF/Arch/AMDGPU.cpp b/lld/ELF/Arch/AMDGPU.cpp index 1c82ff26bf9..a969a84d219 100644 --- a/lld/ELF/Arch/AMDGPU.cpp +++ b/lld/ELF/Arch/AMDGPU.cpp @@ -32,7 +32,7 @@ public: } // namespace AMDGPU::AMDGPU() { - RelativeRel = R_AMDGPU_REL64; + RelativeRel = R_AMDGPU_RELATIVE64; GotRel = R_AMDGPU_ABS64; GotEntrySize = 8; } diff --git a/lld/test/ELF/amdgpu-relocs.s b/lld/test/ELF/amdgpu-relocs.s index 2e85ff7b194..8b5a61ed21f 100644 --- a/lld/test/ELF/amdgpu-relocs.s +++ b/lld/test/ELF/amdgpu-relocs.s @@ -65,10 +65,23 @@ ptr: .quad temp .size ptr, 8 +# R_AMDGPU_RELATIVE64: + .type temp2, @object + .local temp2 + .size temp2, 4 + + .type ptr2, @object + .globl ptr2 + .size ptr2, 8 + .p2align 3 +ptr2: + .quad temp2 + # The relocation for local_var{0, 1, 2} and var should be resolved by the # linker. # CHECK: Relocations [ # CHECK: .rela.dyn { +# CHECK-NEXT: R_AMDGPU_RELATIVE64 - 0x0 # CHECK-NEXT: R_AMDGPU_ABS64 common_var0 0x0 # CHECK-NEXT: R_AMDGPU_ABS64 common_var1 0x0 # CHECK-NEXT: R_AMDGPU_ABS64 common_var2 0x0 |