1 // RUN
: llvm-mc
-triple x86_64-apple-darwin
%s
-filetype
=obj
-o
- | llvm-readobj
--file-headers
-S
--sd
-r
--symbols
--macho-segment
--macho-dysymtab
--macho-indirect-symbols | FileCheck
%s
3 .section __TEXT,__text,regular,pure_instructions
4 .section __DATA,__thread_data,thread_local_regular
10 .section __DATA,__thread_vars,thread_local_variables
13 .quad ___tlv_bootstrap
17 .section __DATA,__thread_data,thread_local_regular
23 .section __DATA,__thread_vars,thread_local_variables
26 .quad ___tlv_bootstrap
30 .tbss _a$tlv$init, 4, 2
34 .quad ___tlv_bootstrap
38 .tbss _b$tlv$init, 4, 2
42 .quad ___tlv_bootstrap
46 .subsections_via_symbols
48 // CHECK
: File
: <stdin
>
49 // CHECK
: Format
: Mach-O
64-bit x86-
64
50 // CHECK
: Arch
: x86_64
51 // CHECK
: AddressSize
: 64bit
52 // CHECK
: MachHeader
{
53 // CHECK
: Magic
: Magic64
(0xFEEDFACF)
54 // CHECK
: CpuType
: X86-
64 (0x1000007)
55 // CHECK
: CpuSubType
: CPU_SUBTYPE_X86_64_ALL
(0x3)
56 // CHECK
: FileType
: Relocatable
(0x1)
57 // CHECK
: NumOfLoadCommands
: 3
58 // CHECK
: SizeOfLoadCommands
: 496
59 // CHECK
: Flags
[ (0x2000)
60 // CHECK
: MH_SUBSECTIONS_VIA_SYMBOLS
(0x2000)
62 // CHECK
: Reserved
: 0x0
67 // CHECK
: Name
: __text
(5F
5F
74 65 78 74 00 00 00 00 00 00 00 00 00 00)
68 // CHECK
: Segment
: __TEXT
(5F
5F
54 45 58 54 00 00 00 00 00 00 00 00 00 00)
69 // CHECK
: Address
: 0x0
72 // CHECK
: Alignment
: 0
73 // CHECK
: RelocationOffset
: 0x0
74 // CHECK
: RelocationCount
: 0
75 // CHECK
: Type
: Regular
(0x0)
76 // CHECK
: Attributes
[ (0x800000)
77 // CHECK
: PureInstructions
(0x800000)
79 // CHECK
: Reserved1
: 0x0
80 // CHECK
: Reserved2
: 0x0
81 // CHECK
: Reserved3
: 0x0
82 // CHECK
: SectionData
(
87 // CHECK
: Name
: __thread_data
(5F
5F
74 68 72 65 61 64 5F
64 61 74 61 00 00 00)
88 // CHECK
: Segment
: __DATA
(5F
5F
44 41 54 41 00 00 00 00 00 00 00 00 00 00)
89 // CHECK
: Address
: 0x0
92 // CHECK
: Alignment
: 2
93 // CHECK
: RelocationOffset
: 0x0
94 // CHECK
: RelocationCount
: 0
95 // CHECK
: Type
: ThreadLocalRegular
(0x11)
96 // CHECK
: Attributes
[ (0x0)
98 // CHECK
: Reserved1
: 0x0
99 // CHECK
: Reserved2
: 0x0
100 // CHECK
: Reserved3
: 0x0
101 // CHECK
: SectionData
(
102 // CHECK
: 0000: 04000000 05000000 |
........|
107 // CHECK
: Name
: __thread_vars
(5F
5F
74 68 72 65 61 64 5F
76 61 72 73 00 00 00)
108 // CHECK
: Segment
: __DATA
(5F
5F
44 41 54 41 00 00 00 00 00 00 00 00 00 00)
109 // CHECK
: Address
: 0x8
111 // CHECK
: Offset
: 536
112 // CHECK
: Alignment
: 0
113 // CHECK
: RelocationOffset
: 0x278
114 // CHECK
: RelocationCount
: 8
115 // CHECK
: Type
: ThreadLocalVariables
(0x13)
116 // CHECK
: Attributes
[ (0x0)
118 // CHECK
: Reserved1
: 0x0
119 // CHECK
: Reserved2
: 0x0
120 // CHECK
: Reserved3
: 0x0
121 // CHECK
: SectionData
(
122 // CHECK
: 0000: 00000000 00000000 00000000 00000000 |
................|
123 // CHECK
: 0010: 00000000 00000000 00000000 00000000 |
................|
124 // CHECK
: 0020: 00000000 00000000 00000000 00000000 |
................|
125 // CHECK
: 0030: 00000000 00000000 00000000 00000000 |
................|
126 // CHECK
: 0040: 00000000 00000000 00000000 00000000 |
................|
127 // CHECK
: 0050: 00000000 00000000 00000000 00000000 |
................|
132 // CHECK
: Name
: __thread_bss
(5F
5F
74 68 72 65 61 64 5F
62 73 73 00 00 00 00)
133 // CHECK
: Segment
: __DATA
(5F
5F
44 41 54 41 00 00 00 00 00 00 00 00 00 00)
134 // CHECK
: Address
: 0x68
137 // CHECK
: Alignment
: 2
138 // CHECK
: RelocationOffset
: 0x0
139 // CHECK
: RelocationCount
: 0
140 // CHECK
: Type
: ThreadLocalZerofill
(0x12)
141 // CHECK
: Attributes
[ (0x0)
143 // CHECK
: Reserved1
: 0x0
144 // CHECK
: Reserved2
: 0x0
145 // CHECK
: Reserved3
: 0x0
146 // CHECK
: SectionData
(
147 // CHECK
: 0000: CFFAEDFE
07000001 |
........|
151 // CHECK
: Relocations
[
152 // CHECK
: Section __thread_vars
{
153 // CHECK
: 0x58 0 3 1 X86_64_RELOC_UNSIGNED
0 _b$tlv$init
154 // CHECK
: 0x48 0 3 1 X86_64_RELOC_UNSIGNED
0 ___tlv_bootstrap
155 // CHECK
: 0x40 0 3 1 X86_64_RELOC_UNSIGNED
0 _a$tlv$init
156 // CHECK
: 0x30 0 3 1 X86_64_RELOC_UNSIGNED
0 ___tlv_bootstrap
157 // CHECK
: 0x28 0 3 1 X86_64_RELOC_UNSIGNED
0 _d$tlv$init
158 // CHECK
: 0x18 0 3 1 X86_64_RELOC_UNSIGNED
0 ___tlv_bootstrap
159 // CHECK
: 0x10 0 3 1 X86_64_RELOC_UNSIGNED
0 _c$tlv$init
160 // CHECK
: 0x0 0 3 1 X86_64_RELOC_UNSIGNED
0 ___tlv_bootstrap
165 // CHECK
: Name
: _a$tlv$init
(37)
166 // CHECK
: Type
: Section
(0xE)
167 // CHECK
: Section
: __thread_bss
(0x4)
168 // CHECK
: RefType
: UndefinedNonLazy
(0x0)
169 // CHECK
: Flags
[ (0x0)
171 // CHECK
: Value
: 0x68
174 // CHECK
: Name
: _b$tlv$init
(25)
175 // CHECK
: Type
: Section
(0xE)
176 // CHECK
: Section
: __thread_bss
(0x4)
177 // CHECK
: RefType
: UndefinedNonLazy
(0x0)
178 // CHECK
: Flags
[ (0x0)
180 // CHECK
: Value
: 0x6C
183 // CHECK
: Name
: _a
(75)
185 // CHECK
: Type
: Section
(0xE)
186 // CHECK
: Section
: __thread_vars
(0x3)
187 // CHECK
: RefType
: UndefinedNonLazy
(0x0)
188 // CHECK
: Flags
[ (0x0)
190 // CHECK
: Value
: 0x38
193 // CHECK
: Name
: _b
(72)
195 // CHECK
: Type
: Section
(0xE)
196 // CHECK
: Section
: __thread_vars
(0x3)
197 // CHECK
: RefType
: UndefinedNonLazy
(0x0)
198 // CHECK
: Flags
[ (0x0)
200 // CHECK
: Value
: 0x50
203 // CHECK
: Name
: _c
(69)
205 // CHECK
: Type
: Section
(0xE)
206 // CHECK
: Section
: __thread_vars
(0x3)
207 // CHECK
: RefType
: UndefinedNonLazy
(0x0)
208 // CHECK
: Flags
[ (0x0)
213 // CHECK
: Name
: _c$tlv$init
(13)
215 // CHECK
: Type
: Section
(0xE)
216 // CHECK
: Section
: __thread_data
(0x2)
217 // CHECK
: RefType
: UndefinedNonLazy
(0x0)
218 // CHECK
: Flags
[ (0x0)
223 // CHECK
: Name
: _d
(66)
225 // CHECK
: Type
: Section
(0xE)
226 // CHECK
: Section
: __thread_vars
(0x3)
227 // CHECK
: RefType
: UndefinedNonLazy
(0x0)
228 // CHECK
: Flags
[ (0x0)
230 // CHECK
: Value
: 0x20
233 // CHECK
: Name
: _d$tlv$init
(1)
235 // CHECK
: Type
: Section
(0xE)
236 // CHECK
: Section
: __thread_data
(0x2)
237 // CHECK
: RefType
: UndefinedNonLazy
(0x0)
238 // CHECK
: Flags
[ (0x0)
243 // CHECK
: Name
: ___tlv_bootstrap
(49)
245 // CHECK
: Type
: Undef
(0x0)
246 // CHECK
: Section
: (0x0)
247 // CHECK
: RefType
: UndefinedNonLazy
(0x0)
248 // CHECK
: Flags
[ (0x0)
253 // CHECK
: Indirect Symbols
{
259 // CHECK
: Cmd
: LC_SEGMENT_64
262 // CHECK
: vmaddr
: 0x0
263 // CHECK
: vmsize
: 0x70
264 // CHECK
: fileoff
: 528
265 // CHECK
: filesize
: 104
266 // CHECK
: maxprot
: rwx
267 // CHECK
: initprot
: rwx
272 // CHECK
: ilocalsym
: 0
273 // CHECK
: nlocalsym
: 2
274 // CHECK
: iextdefsym
: 2
275 // CHECK
: nextdefsym
: 6
276 // CHECK
: iundefsym
: 8
277 // CHECK
: nundefsym
: 1
280 // CHECK
: modtaboff
: 0
282 // CHECK
: extrefsymoff
: 0
283 // CHECK
: nextrefsyms
: 0
284 // CHECK
: indirectsymoff
: 0
285 // CHECK
: nindirectsyms
: 0
286 // CHECK
: extreloff
: 0
288 // CHECK
: locreloff
: 0