Skip to content

Commit 34f8012

Browse files
committed
[ARM] Improve STT_TLS tests and remove unsupported (tlsld) specifier
Test that symbols referenced through TLS-specific relocation specifiers are set STT_TLS. As a minor issue, (tlsldo) does not set STT_TLS yet. (tlsld) is not a valid specifier.
1 parent 597accf commit 34f8012

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ const MCAsmInfo::VariantKindDesc variantKindDescs[] = {
3838
{MCSymbolRefExpr::VK_TLSDESC, "tlsdesc"},
3939
{MCSymbolRefExpr::VK_TLSGD, "TLSGD"},
4040
{MCSymbolRefExpr::VK_TLSGD_FDPIC, "tlsgd_fdpic"},
41-
{MCSymbolRefExpr::VK_TLSLD, "TLSLD"},
4241
{MCSymbolRefExpr::VK_TLSLDM, "TLSLDM"},
4342
{MCSymbolRefExpr::VK_TLSLDM_FDPIC, "tlsldm_fdpic"},
4443
{MCSymbolRefExpr::VK_TPOFF, "TPOFF"},

llvm/test/MC/ARM/symbol-variants.s

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
@ RUN: llvm-mc < %s -triple armv7-none-linux-gnueabi -filetype=obj | llvm-objdump --triple=armv7-none-linux-gnueabi -r - | FileCheck %s --check-prefix=CHECK --check-prefix=ARM
1+
@ RUN: llvm-mc %s -triple armv7-none-linux-gnueabi -filetype=obj -o %t
2+
@ RUN: llvm-objdump --triple=armv7-none-linux-gnueabi -r %t | FileCheck %s --check-prefixes=CHECK,ARM
3+
@ RUN: llvm-readelf -s - < %t | FileCheck %s --check-prefix=READELF --implicit-check-not=TLS
24
@ RUN: llvm-mc < %s -triple thumbv7-none-linux-gnueabi -filetype=obj | llvm-objdump --triple=thumbv7-none-linux-gnueabi -r - | FileCheck %s --check-prefix=CHECK --check-prefix=THUMB
35

46
@ CHECK-LABEL: RELOCATION RECORDS FOR [.text]
@@ -41,12 +43,16 @@ bl f05(plt)
4143
.word f11(tpoff)
4244
@CHECK: 28 R_ARM_TLS_LE32 f10
4345
@CHECK: 2c R_ARM_TLS_LE32 f11
46+
@READELF: TLS GLOBAL DEFAULT UND f10
47+
@READELF: TLS GLOBAL DEFAULT UND f11
4448

4549
@ tlsgd
4650
.word f12(TLSGD)
4751
.word f13(tlsgd)
4852
@CHECK: 30 R_ARM_TLS_GD32 f12
4953
@CHECK: 34 R_ARM_TLS_GD32 f13
54+
@READELF: TLS GLOBAL DEFAULT UND f12
55+
@READELF: TLS GLOBAL DEFAULT UND f13
5056

5157
@ target1
5258
.word f14(TARGET1)
@@ -71,18 +77,24 @@ bl f05(plt)
7177
.word f21(tlsldo)
7278
@CHECK: 50 R_ARM_TLS_LDO32 f20
7379
@CHECK: 54 R_ARM_TLS_LDO32 f21
80+
@READELF: NOTYPE GLOBAL DEFAULT UND f20
81+
@READELF: NOTYPE GLOBAL DEFAULT UND f21
7482

7583
@ tlscall
7684
.word f22(TLSCALL)
7785
.word f23(tlscall)
7886
@ CHECK: 58 R_ARM_TLS_CALL f22
7987
@ CHECK: 5c R_ARM_TLS_CALL f23
88+
@READELF: TLS GLOBAL DEFAULT UND f22
89+
@READELF: TLS GLOBAL DEFAULT UND f23
8090

8191
@ tlsdesc
8292
.word f24(TLSDESC)
8393
.word f25(tlsdesc)
8494
@ CHECK: 60 R_ARM_TLS_GOTDESC f24
8595
@ CHECK: 64 R_ARM_TLS_GOTDESC f25
96+
@READELF: TLS GLOBAL DEFAULT UND f24
97+
@READELF: TLS GLOBAL DEFAULT UND f25
8698

8799
@ prel31 (relative)
88100
.word f26(PREL31)-.
@@ -95,6 +107,8 @@ bl f05(plt)
95107
.word f29(tlsldm)
96108
@CHECK: 70 R_ARM_TLS_LDM32 f28
97109
@CHECK: 74 R_ARM_TLS_LDM32 f29
110+
@READELF: TLS GLOBAL DEFAULT UND f28
111+
@READELF: TLS GLOBAL DEFAULT UND f29
98112

99113
@ relative
100114
.word f30 - (.Lsym+8)

0 commit comments

Comments
 (0)