[llvm] f9898cf - [SystemZ, test] Test section symbol and STT_TLS adjustment
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Sat Mar 22 17:04:39 PDT 2025
Author: Fangrui Song
Date: 2025-03-22T17:04:33-07:00
New Revision: f9898cf6a826c080547bd82200a197991d23cdda
URL: https://github.com/llvm/llvm-project/commit/f9898cf6a826c080547bd82200a197991d23cdda
DIFF: https://github.com/llvm/llvm-project/commit/f9898cf6a826c080547bd82200a197991d23cdda.diff
LOG: [SystemZ,test] Test section symbol and STT_TLS adjustment
Added:
Modified:
llvm/test/MC/SystemZ/fixups.s
Removed:
################################################################################
diff --git a/llvm/test/MC/SystemZ/fixups.s b/llvm/test/MC/SystemZ/fixups.s
index 0d59e60fc5957..4a8c8f3fbe773 100644
--- a/llvm/test/MC/SystemZ/fixups.s
+++ b/llvm/test/MC/SystemZ/fixups.s
@@ -1,8 +1,9 @@
# RUN: llvm-mc -triple s390x-unknown-unknown -mcpu=z13 --show-encoding %s | FileCheck %s
-# RUN: llvm-mc -triple s390x-unknown-unknown -mcpu=z13 -filetype=obj %s | \
-# RUN: llvm-readobj -r - | FileCheck %s -check-prefix=CHECK-REL
+# RUN: llvm-mc -triple s390x-unknown-unknown -mcpu=z13 -filetype=obj %s -o %t
+# RUN: llvm-readobj -r %t | FileCheck %s -check-prefix=CHECK-REL
+# RUN: llvm-readelf -s - < %t | FileCheck %s --check-prefix=READELF --implicit-check-not=TLS
# RUN: llvm-mc -triple s390x-unknown-unknown -mcpu=z13 -filetype=obj %s | \
# RUN: llvm-objdump -d - | FileCheck %s -check-prefix=CHECK-DIS
@@ -25,11 +26,11 @@
.align 16
larl %r14, target at gotent
-# CHECK: larl %r14, target at INDNTPOFF # encoding: [0xc0,0xe0,A,A,A,A]
-# CHECK-NEXT: # fixup A - offset: 2, value: target at INDNTPOFF+2, kind: FK_390_PC32DBL
-# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_TLS_IEENT target 0x2
+# CHECK: larl %r14, s_indntpoff at INDNTPOFF # encoding: [0xc0,0xe0,A,A,A,A]
+# CHECK-NEXT: # fixup A - offset: 2, value: s_indntpoff at INDNTPOFF+2, kind: FK_390_PC32DBL
+# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_TLS_IEENT s_indntpoff 0x2
.align 16
- larl %r14, target at indntpoff
+ larl %r14, s_indntpoff at indntpoff
# CHECK: brasl %r14, target # encoding: [0xc0,0xe5,A,A,A,A]
# CHECK-NEXT: # fixup A - offset: 2, value: target+2, kind: FK_390_PC32DBL
@@ -43,21 +44,21 @@
.align 16
brasl %r14, target at plt
-# CHECK: brasl %r14, target at PLT:tls_gdcall:sym # encoding: [0xc0,0xe5,A,A,A,A]
+# CHECK: brasl %r14, target at PLT:tls_gdcall:s_gdcall # encoding: [0xc0,0xe5,A,A,A,A]
# CHECK-NEXT: # fixup A - offset: 2, value: target at PLT+2, kind: FK_390_PC32DBL
-# CHECK-NEXT: # fixup B - offset: 0, value: sym at TLSGD, kind: FK_390_TLS_CALL
+# CHECK-NEXT: # fixup B - offset: 0, value: s_gdcall at TLSGD, kind: FK_390_TLS_CALL
# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_PLT32DBL target 0x2
-# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_GDCALL sym 0x0
+# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_GDCALL s_gdcall 0x0
.align 16
- brasl %r14, target at plt:tls_gdcall:sym
+ brasl %r14, target at plt:tls_gdcall:s_gdcall
-# CHECK: brasl %r14, target at PLT:tls_ldcall:sym # encoding: [0xc0,0xe5,A,A,A,A]
+# CHECK: brasl %r14, target at PLT:tls_ldcall:s_ldcall # encoding: [0xc0,0xe5,A,A,A,A]
# CHECK-NEXT: # fixup A - offset: 2, value: target at PLT+2, kind: FK_390_PC32DBL
-# CHECK-NEXT: # fixup B - offset: 0, value: sym at TLSLDM, kind: FK_390_TLS_CALL
+# CHECK-NEXT: # fixup B - offset: 0, value: s_ldcall at TLSLDM, kind: FK_390_TLS_CALL
# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_PLT32DBL target 0x2
-# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDCALL sym 0x0
+# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDCALL s_ldcall 0x0
.align 16
- brasl %r14, target at plt:tls_ldcall:sym
+ brasl %r14, target at plt:tls_ldcall:s_ldcall
# CHECK: bras %r14, target # encoding: [0xa7,0xe5,A,A]
# CHECK-NEXT: # fixup A - offset: 2, value: target+2, kind: FK_390_PC16DBL
@@ -71,21 +72,21 @@
.align 16
bras %r14, target at plt
-# CHECK: bras %r14, target at PLT:tls_gdcall:sym # encoding: [0xa7,0xe5,A,A]
+# CHECK: bras %r14, target at PLT:tls_gdcall:gdcall # encoding: [0xa7,0xe5,A,A]
# CHECK-NEXT: # fixup A - offset: 2, value: target at PLT+2, kind: FK_390_PC16DBL
-# CHECK-NEXT: # fixup B - offset: 0, value: sym at TLSGD, kind: FK_390_TLS_CALL
+# CHECK-NEXT: # fixup B - offset: 0, value: gdcall at TLSGD, kind: FK_390_TLS_CALL
# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_PLT16DBL target 0x2
-# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_GDCALL sym 0x0
+# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_GDCALL gdcall 0x0
.align 16
- bras %r14, target at plt:tls_gdcall:sym
+ bras %r14, target at plt:tls_gdcall:gdcall
-# CHECK: bras %r14, target at PLT:tls_ldcall:sym # encoding: [0xa7,0xe5,A,A]
+# CHECK: bras %r14, target at PLT:tls_ldcall:ldcall # encoding: [0xa7,0xe5,A,A]
# CHECK-NEXT: # fixup A - offset: 2, value: target at PLT+2, kind: FK_390_PC16DBL
-# CHECK-NEXT: # fixup B - offset: 0, value: sym at TLSLDM, kind: FK_390_TLS_CALL
+# CHECK-NEXT: # fixup B - offset: 0, value: ldcall at TLSLDM, kind: FK_390_TLS_CALL
# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_PLT16DBL target 0x2
-# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDCALL sym 0x0
+# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDCALL ldcall 0x0
.align 16
- bras %r14, target at plt:tls_ldcall:sym
+ bras %r14, target at plt:tls_ldcall:ldcall
# Symbolic displacements
@@ -420,41 +421,58 @@ local_s32:
.align 16
lgfi %r1,src-.
+# CHECK-REL-LABEL: .rela.adjusted
+# CHECK-REL: R_390_GOTENT local
+# CHECK-REL: R_390_PLT32DBL local
+.section .adjusted,"ax"
+local:
+larl %r14, local at got
+brasl %r14, local at plt
+
# Data relocs
# llvm-mc does not show any "encoding" string for data, so we just check the relocs
-# CHECK-REL: .rela.data
+# CHECK-REL-LABEL: .rela.data
.data
-# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LE64 target 0x0
+# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LE64 s_ntpoff 0x0
.align 16
- .quad target at ntpoff
+ .quad s_ntpoff at ntpoff
-# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDO64 target 0x0
+# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDO64 s_dtpoff 0x0
.align 16
- .quad target at dtpoff
+ .quad s_dtpoff at dtpoff
-# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDM64 target 0x0
+# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDM64 s_tlsldm 0x0
.align 16
- .quad target at tlsldm
+ .quad s_tlsldm at tlsldm
-# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_GD64 target 0x0
+# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_GD64 s_tlsgd 0x0
.align 16
- .quad target at tlsgd
+ .quad s_tlsgd at tlsgd
-# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LE32 target 0x0
+# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LE32 s_ntpoff 0x0
.align 16
- .long target at ntpoff
+ .long s_ntpoff at ntpoff
-# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDO32 target 0x0
+# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDO32 s_dtpoff 0x0
.align 16
- .long target at dtpoff
+ .long s_dtpoff at dtpoff
-# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDM32 target 0x0
+# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDM32 s_tlsldm 0x0
.align 16
- .long target at tlsldm
+ .long s_tlsldm at tlsldm
-# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_GD32 target 0x0
+# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_GD32 s_tlsgd 0x0
.align 16
- .long target at tlsgd
-
+ .long s_tlsgd at tlsgd
+
+# READELF: TLS GLOBAL DEFAULT UND s_indntpoff
+# READELF: TLS GLOBAL DEFAULT UND s_gdcall
+# READELF: TLS GLOBAL DEFAULT UND s_ldcall
+# READELF: TLS GLOBAL DEFAULT UND gdcall
+# READELF: TLS GLOBAL DEFAULT UND ldcall
+# READELF: TLS GLOBAL DEFAULT UND s_ntpoff
+# READELF: TLS GLOBAL DEFAULT UND s_dtpoff
+# READELF: TLS GLOBAL DEFAULT UND s_tlsldm
+# READELF: TLS GLOBAL DEFAULT UND s_tlsgd
More information about the llvm-commits
mailing list