[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