1 // RUN: llvm-mc -triple x86_64-apple-darwin %s -filetype=obj -o - | macho-dump --dump-section-data | 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: ('cputype', 16777223)
49 // CHECK: ('cpusubtype', 3)
50 // CHECK: ('filetype', 1)
51 // CHECK: ('num_load_commands', 3)
52 // CHECK: ('load_commands_size', 496)
53 // CHECK: ('flag', 8192)
54 // CHECK: ('reserved', 0)
55 // CHECK: ('load_commands', [
56 // CHECK: # Load Command 0
57 // CHECK: (('command', 25)
58 // CHECK: ('size', 392)
59 // CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
60 // CHECK: ('vm_addr', 0)
61 // CHECK: ('vm_size', 112)
62 // CHECK: ('file_offset', 528)
63 // CHECK: ('file_size', 104)
64 // CHECK: ('maxprot', 7)
65 // CHECK: ('initprot', 7)
66 // CHECK: ('num_sections', 4)
67 // CHECK: ('flags', 0)
68 // CHECK: ('sections', [
70 // CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
71 // CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
72 // CHECK: ('address', 0)
74 // CHECK: ('offset', 528)
75 // CHECK: ('alignment', 0)
76 // CHECK: ('reloc_offset', 0)
77 // CHECK: ('num_reloc', 0)
78 // CHECK: ('flags', 0x80000000)
79 // CHECK: ('reserved1', 0)
80 // CHECK: ('reserved2', 0)
81 // CHECK: ('reserved3', 0)
83 // CHECK: ('_relocations', [
85 // CHECK: ('_section_data', '')
87 // CHECK: (('section_name', '__thread_data\x00\x00\x00')
88 // CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
89 // CHECK: ('address', 0)
91 // CHECK: ('offset', 528)
92 // CHECK: ('alignment', 2)
93 // CHECK: ('reloc_offset', 0)
94 // CHECK: ('num_reloc', 0)
95 // CHECK: ('flags', 0x11)
96 // CHECK: ('reserved1', 0)
97 // CHECK: ('reserved2', 0)
98 // CHECK: ('reserved3', 0)
100 // CHECK: ('_relocations', [
102 // CHECK: ('_section_data', '04000000 05000000')
103 // CHECK: # Section 2
104 // CHECK: (('section_name', '__thread_vars\x00\x00\x00')
105 // CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
106 // CHECK: ('address', 8)
107 // CHECK: ('size', 96)
108 // CHECK: ('offset', 536)
109 // CHECK: ('alignment', 0)
110 // CHECK: ('reloc_offset', 632)
111 // CHECK: ('num_reloc', 8)
112 // CHECK: ('flags', 0x13)
113 // CHECK: ('reserved1', 0)
114 // CHECK: ('reserved2', 0)
115 // CHECK: ('reserved3', 0)
117 // CHECK: ('_relocations', [
118 // CHECK: # Relocation 0
119 // CHECK: (('word-0', 0x58),
120 // CHECK: ('word-1', 0xe000001)),
121 // CHECK: # Relocation 1
122 // CHECK: (('word-0', 0x48),
123 // CHECK: ('word-1', 0xe000008)),
124 // CHECK: # Relocation 2
125 // CHECK: (('word-0', 0x40),
126 // CHECK: ('word-1', 0xe000000)),
127 // CHECK: # Relocation 3
128 // CHECK: (('word-0', 0x30),
129 // CHECK: ('word-1', 0xe000008)),
130 // CHECK: # Relocation 4
131 // CHECK: (('word-0', 0x28),
132 // CHECK: ('word-1', 0xe000007)),
133 // CHECK: # Relocation 5
134 // CHECK: (('word-0', 0x18),
135 // CHECK: ('word-1', 0xe000008)),
136 // CHECK: # Relocation 6
137 // CHECK: (('word-0', 0x10),
138 // CHECK: ('word-1', 0xe000005)),
139 // CHECK: # Relocation 7
140 // CHECK: (('word-0', 0x0),
141 // CHECK: ('word-1', 0xe000008)),
143 // CHECK: ('_section_data', '00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000')
144 // CHECK: # Section 3
145 // CHECK: (('section_name', '__thread_bss\x00\x00\x00\x00')
146 // CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
147 // CHECK: ('address', 104)
148 // CHECK: ('size', 8)
149 // CHECK: ('offset', 0)
150 // CHECK: ('alignment', 2)
151 // CHECK: ('reloc_offset', 0)
152 // CHECK: ('num_reloc', 0)
153 // CHECK: ('flags', 0x12)
154 // CHECK: ('reserved1', 0)
155 // CHECK: ('reserved2', 0)
156 // CHECK: ('reserved3', 0)
158 // CHECK: ('_relocations', [
160 // CHECK: ('_section_data', 'cffaedfe 07000001')
163 // CHECK: # Load Command 1
164 // CHECK: (('command', 2)
165 // CHECK: ('size', 24)
166 // CHECK: ('symoff', 696)
167 // CHECK: ('nsyms', 9)
168 // CHECK: ('stroff', 840)
169 // CHECK: ('strsize', 80)
170 // CHECK: ('_string_data', '\x00_c$tlv$init\x00_c\x00___tlv_bootstrap\x00_d$tlv$init\x00_d\x00_a\x00_b\x00_a$tlv$init\x00_b$tlv$init\x00\x00\x00')
171 // CHECK: ('_symbols', [
173 // CHECK: (('n_strx', 54)
174 // CHECK: ('n_type', 0xe)
175 // CHECK: ('n_sect', 4)
176 // CHECK: ('n_desc', 0)
177 // CHECK: ('n_value', 104)
178 // CHECK: ('_string', '_a$tlv$init')
181 // CHECK: (('n_strx', 66)
182 // CHECK: ('n_type', 0xe)
183 // CHECK: ('n_sect', 4)
184 // CHECK: ('n_desc', 0)
185 // CHECK: ('n_value', 108)
186 // CHECK: ('_string', '_b$tlv$init')
189 // CHECK: (('n_strx', 48)
190 // CHECK: ('n_type', 0xf)
191 // CHECK: ('n_sect', 3)
192 // CHECK: ('n_desc', 0)
193 // CHECK: ('n_value', 56)
194 // CHECK: ('_string', '_a')
197 // CHECK: (('n_strx', 51)
198 // CHECK: ('n_type', 0xf)
199 // CHECK: ('n_sect', 3)
200 // CHECK: ('n_desc', 0)
201 // CHECK: ('n_value', 80)
202 // CHECK: ('_string', '_b')
205 // CHECK: (('n_strx', 13)
206 // CHECK: ('n_type', 0xf)
207 // CHECK: ('n_sect', 3)
208 // CHECK: ('n_desc', 0)
209 // CHECK: ('n_value', 8)
210 // CHECK: ('_string', '_c')
213 // CHECK: (('n_strx', 1)
214 // CHECK: ('n_type', 0xf)
215 // CHECK: ('n_sect', 2)
216 // CHECK: ('n_desc', 0)
217 // CHECK: ('n_value', 0)
218 // CHECK: ('_string', '_c$tlv$init')
221 // CHECK: (('n_strx', 45)
222 // CHECK: ('n_type', 0xf)
223 // CHECK: ('n_sect', 3)
224 // CHECK: ('n_desc', 0)
225 // CHECK: ('n_value', 32)
226 // CHECK: ('_string', '_d')
229 // CHECK: (('n_strx', 33)
230 // CHECK: ('n_type', 0xf)
231 // CHECK: ('n_sect', 2)
232 // CHECK: ('n_desc', 0)
233 // CHECK: ('n_value', 4)
234 // CHECK: ('_string', '_d$tlv$init')
237 // CHECK: (('n_strx', 16)
238 // CHECK: ('n_type', 0x1)
239 // CHECK: ('n_sect', 0)
240 // CHECK: ('n_desc', 0)
241 // CHECK: ('n_value', 0)
242 // CHECK: ('_string', '___tlv_bootstrap')
246 // CHECK: # Load Command 2
247 // CHECK: (('command', 11)
248 // CHECK: ('size', 80)
249 // CHECK: ('ilocalsym', 0)
250 // CHECK: ('nlocalsym', 2)
251 // CHECK: ('iextdefsym', 2)
252 // CHECK: ('nextdefsym', 6)
253 // CHECK: ('iundefsym', 8)
254 // CHECK: ('nundefsym', 1)
255 // CHECK: ('tocoff', 0)
256 // CHECK: ('ntoc', 0)
257 // CHECK: ('modtaboff', 0)
258 // CHECK: ('nmodtab', 0)
259 // CHECK: ('extrefsymoff', 0)
260 // CHECK: ('nextrefsyms', 0)
261 // CHECK: ('indirectsymoff', 0)
262 // CHECK: ('nindirectsyms', 0)
263 // CHECK: ('extreloff', 0)
264 // CHECK: ('nextrel', 0)
265 // CHECK: ('locreloff', 0)
266 // CHECK: ('nlocrel', 0)
267 // CHECK: ('_indirect_symbols', [