2 // RUN
: llvm-mc
-filetype
=obj
-triple
=x86_64-unknown-linux
%s
-o
%t
3 // RUN
: ld.lld
%t -o
%tout
4 // RUN
: llvm-readobj
-S
%tout | FileCheck
--check-prefixes
=CHECK
,CHECK1
%s
5 // RUN
: echo
"SECTIONS { \
6 // RUN: . = 0x201000; \
7 // RUN: .text : { *(.text) } \
8 // RUN: . = 0x202000; \
9 // RUN: .tdata : { *(.tdata) } \
10 // RUN: .tbss : { *(.tbss) } \
11 // RUN: .data.rel.ro : { *(.data.rel.ro) } \
12 // RUN: }" > %t.script
13 // RUN
: ld.lld
-T %t.script
%t -o
%tout2
14 // RUN
: llvm-readobj
-S
%tout2 | FileCheck
--check-prefixes
=CHECK
,CHECK2
%s
19 .section .tdata,"awT",@progbits
23 .section .tbss,"awT",@nobits
27 .section .data.rel.ro,"aw",@progbits
31 // Test that
.tbss doesn't show up in the offset or in the address. If this
32 // gets out of sync what we get a runtime is different from what the section
35 // CHECK: Name: .tdata
36 // CHECK-NEXT: Type: SHT_PROGBITS
37 // CHECK-NEXT: Flags [
38 // CHECK-NEXT: SHF_ALLOC
39 // CHECK-NEXT: SHF_TLS
40 // CHECK-NEXT: SHF_WRITE
42 // CHECK1-NEXT: Address: 0x2021D0
43 // CHECK1-NEXT: Offset: 0x1D0
44 // CHECK2-NEXT: Address: 0x202000
45 // CHECK2-NEXT: Offset: 0x2000
46 // CHECK-NEXT: Size: 4
49 // CHECK-NEXT: Type: SHT_NOBITS
50 // CHECK-NEXT: Flags [
51 // CHECK-NEXT: SHF_ALLOC
52 // CHECK-NEXT: SHF_TLS
53 // CHECK-NEXT: SHF_WRITE
55 // CHECK1-NEXT: Address: 0x2021E0
56 // CHECK1-NEXT: Offset: 0x1D4
57 // CHECK2-NEXT: Address: 0x202010
58 // CHECK2-NEXT: Offset: 0x2004
59 // CHECK-NEXT: Size: 16
61 // CHECK: Name: .data.rel.ro
62 // CHECK-NEXT: Type: SHT_PROGBITS
63 // CHECK-NEXT: Flags [
64 // CHECK-NEXT: SHF_ALLOC
65 // CHECK-NEXT: SHF_WRITE
67 // CHECK1-NEXT: Address: 0x2021D4
68 // CHECK1-NEXT: Offset: 0x1D4
69 // CHECK2-NEXT: Address: 0x202004
70 // CHECK2-NEXT: Offset: 0x2004
71 // CHECK-NEXT: Size: 4