1 // RUN: llvm-mc -triple x86_64-apple-darwin %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t -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
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
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
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
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