Skip to content

Commit 018a484

Browse files
committed
[llvm-objdump] Map STT_TLS to ST_Other (previously ST_Data)
ST_Data is used to model BFD `BFD_OBJECT`. A STT_TLS symbol does not have the `BFD_OBJECT` flag in BFD. This makes sense because a STT_TLS symbol is like in a different address space, normal data/object properties do not apply on them. With this change, a STT_TLS symbol will not be displayed as 'O'. This new behavior matches objdump. Differential Revision: https://reviews.llvm.org/D96735
1 parent 78d693f commit 018a484

File tree

8 files changed

+14
-14
lines changed

8 files changed

+14
-14
lines changed

lld/test/ELF/mips-mgot.s

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515
# RUN: llvm-readobj -r --dyn-syms -A %t.so | FileCheck -check-prefix=GOT %s
1616

1717
# CHECK: SYMBOL TABLE:
18-
# CHECK: 00000000 l O .tdata 00000000 loc0
18+
# CHECK: 00000000 l .tdata 00000000 loc0
1919
# CHECK: [[FOO0:[0-9a-f]+]] g .text 00000000 foo0
20-
# CHECK: 00000000 g O .tdata 00000000 tls0
21-
# CHECK: 00000004 g O .tdata 00000000 tls1
20+
# CHECK: 00000000 g .tdata 00000000 tls0
21+
# CHECK: 00000004 g .tdata 00000000 tls1
2222
# CHECK: [[FOO2:[0-9a-f]+]] g .text 00000000 foo2
2323

2424
# CHECK: Contents of section .got:

lld/test/ELF/mips-tls-64.s

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121
# RUN: | FileCheck -check-prefix=DIS-SO %s
2222
# RUN: llvm-readobj -r -A %t-out.so | FileCheck -check-prefix=SO %s
2323

24-
# DIS: 0000000000000000 l O .tdata 0000000000000000 loc
25-
# DIS: 0000000000000000 O *UND* 0000000000000000 foo
26-
# DIS: 0000000000000004 g O .tdata 0000000000000000 bar
24+
# DIS: 0000000000000000 l .tdata 0000000000000000 loc
25+
# DIS: 0000000000000000 *UND* 0000000000000000 foo
26+
# DIS: 0000000000000004 g .tdata 0000000000000000 bar
2727

2828
# DIS: Contents of section .got:
2929
# DIS-NEXT: 30000 00000000 00000000 80000000 00000000

lld/test/ELF/mips-tls-hilo.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# ERR: error: relocation R_MIPS_TLS_TPREL_HI16 against loc0 cannot be used with -shared
1313
# ERR: error: relocation R_MIPS_TLS_TPREL_LO16 against loc0 cannot be used with -shared
1414

15-
# DIS: 00000000 l O .tdata 00000000 loc0
15+
# DIS: 00000000 l .tdata 00000000 loc0
1616

1717
# DIS: <__start>:
1818
# DIS-NEXT: addiu $2, $3, 0

lld/test/ELF/mips-tls-static-64.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
# CHECK: SYMBOL TABLE:
1010
# CHECK: [[TGA:[0-9a-f]{8}]] g .text 0000000000000000 __tls_get_addr
11-
# CHECK: 0000000000000000 g O .tdata 0000000000000000 tls1
11+
# CHECK: 0000000000000000 g .tdata 0000000000000000 tls1
1212
#
1313
# CHECK: Contents of section .data:
1414
# CHECK-NEXT: {{.*}} [[TGA]] ffffffff ffff8004 ffffffff

lld/test/ELF/mips-tls-static.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
# RUN: llvm-objdump -s -t %t.exe | FileCheck %s
88

99
# CHECK: SYMBOL TABLE:
10-
# CHECK: 00000000 g O .tdata 00000000 tls1
10+
# CHECK: 00000000 g .tdata 00000000 tls1
1111
# CHECK: [[TGA:[0-9a-f]+]] g .text 00000000 __tls_get_addr
1212
#
1313
# CHECK: Contents of section .data:

lld/test/ELF/mips-tls.s

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121
# RUN: | FileCheck -check-prefix=DIS-SO %s
2222
# RUN: llvm-readobj -r -A %t-out.so | FileCheck -check-prefix=SO %s
2323

24-
# DIS: 00000000 l O .tdata 00000000 loc
25-
# DIS: 00000000 O *UND* 00000000 foo
26-
# DIS: 00000004 g O .tdata 00000000 bar
24+
# DIS: 00000000 l .tdata 00000000 loc
25+
# DIS: 00000000 *UND* 00000000 foo
26+
# DIS: 00000004 g .tdata 00000000 bar
2727

2828
# DIS: Contents of section .got:
2929
# DIS-NEXT: 30000 00000000 80000000 00000000 ffff9004

llvm/include/llvm/Object/ELFObjectFile.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -670,8 +670,8 @@ ELFObjectFile<ELFT>::getSymbolType(DataRefImpl Symb) const {
670670
return SymbolRef::ST_Function;
671671
case ELF::STT_OBJECT:
672672
case ELF::STT_COMMON:
673-
case ELF::STT_TLS:
674673
return SymbolRef::ST_Data;
674+
case ELF::STT_TLS:
675675
default:
676676
return SymbolRef::ST_Other;
677677
}

llvm/test/tools/llvm-objdump/ELF/symbol-table.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
# CHECK-NEXT:0000000000000000 g O .data 0000000000000010 object
1515
# CHECK-NEXT:0000000000000000 g F .text 000000000000000f func
1616
# CHECK-NEXT:0000000000000000 g O *COM* 0000000000000000 common
17-
# CHECK-NEXT:0000000000000000 g O .data 0000000000000000 tls
17+
# CHECK-NEXT:0000000000000000 g .data 0000000000000000 tls
1818
# CHECK-NEXT:0000000000000000 g i .text 0000000000000000 ifunc
1919
# CHECK-NEXT:0000000000000000 g .text 0000000000000000 invalid_type
2020
# CHECK-NEXT:0000000000000000 g .text 0000000000000000 STT_HIOS

0 commit comments

Comments
 (0)