[lld] r276295 - ELF/AMDGPU: Add support for R_AMDGPU_ABS32
Konstantin Zhuravlyov via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 21 08:30:13 PDT 2016
Author: kzhuravl
Date: Thu Jul 21 10:30:13 2016
New Revision: 276295
URL: http://llvm.org/viewvc/llvm-project?rev=276295&view=rev
Log:
ELF/AMDGPU: Add support for R_AMDGPU_ABS32
Differential Revision: https://reviews.llvm.org/D21654
Modified:
lld/trunk/ELF/Target.cpp
lld/trunk/test/ELF/amdgpu-relocs.s
Modified: lld/trunk/ELF/Target.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Target.cpp?rev=276295&r1=276294&r2=276295&view=diff
==============================================================================
--- lld/trunk/ELF/Target.cpp (original)
+++ lld/trunk/ELF/Target.cpp Thu Jul 21 10:30:13 2016
@@ -1461,6 +1461,7 @@ AMDGPUTargetInfo::AMDGPUTargetInfo() {
void AMDGPUTargetInfo::relocateOne(uint8_t *Loc, uint32_t Type,
uint64_t Val) const {
switch (Type) {
+ case R_AMDGPU_ABS32:
case R_AMDGPU_GOTPCREL:
case R_AMDGPU_REL32:
write32le(Loc, Val);
@@ -1472,6 +1473,8 @@ void AMDGPUTargetInfo::relocateOne(uint8
RelExpr AMDGPUTargetInfo::getRelExpr(uint32_t Type, const SymbolBody &S) const {
switch (Type) {
+ case R_AMDGPU_ABS32:
+ return R_ABS;
case R_AMDGPU_REL32:
return R_PC;
case R_AMDGPU_GOTPCREL:
Modified: lld/trunk/test/ELF/amdgpu-relocs.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/amdgpu-relocs.s?rev=276295&r1=276294&r2=276295&view=diff
==============================================================================
--- lld/trunk/test/ELF/amdgpu-relocs.s (original)
+++ lld/trunk/test/ELF/amdgpu-relocs.s Thu Jul 21 10:30:13 2016
@@ -1,6 +1,7 @@
# RUN: llvm-mc -filetype=obj -triple=amdgcn--amdhsa -mcpu=fiji %s -o %t.o
# RUN: ld.lld -shared %t.o -o %t.so
# RUN: llvm-readobj -r %t.so | FileCheck %s
+# RUN: llvm-objdump -s %t.so | FileCheck %s --check-prefix=OBJDUMP
# REQUIRES: amdgpu
@@ -21,7 +22,10 @@ kernel0:
.weak weak_var
.weakref weakref_var, weakref_alias_var
-# The relocation for local_var should be resolved by the linker.
+.section nonalloc, "w", @progbits
+ .long var, common_var
+
+# The relocation for local_var and var should be resolved by the linker.
# CHECK: Relocations [
# CHECK: .rela.dyn {
# CHECK-NEXT: R_AMDGPU_ABS64 common_var 0x0
@@ -31,3 +35,6 @@ kernel0:
# CHECK-NEXT: R_AMDGPU_ABS64 weakref_alias_var 0x0
# CHECK-NEXT: }
# CHECK-NEXT: ]
+
+# OBJDUMP: Contents of section nonalloc:
+# OBJDUMP-NEXT: 0000 00000000 00300000
More information about the llvm-commits
mailing list