1 // RUN
: llvm-mc
-triple i386-apple-darwin10
%s
-filetype
=obj
-o
%t.o
2 // RUN
: llvm-readobj
--file-headers
-S
--sd
-r
--symbols
--macho-segment
--macho-dysymtab
--macho-indirect-symbols
< %t.o
> %t.dump
3 // RUN
: FileCheck
--check-prefix
=CHECK-I386
< %t.dump
%s
5 // RUN
: llvm-mc
-triple x86_64-apple-darwin10
%s
-filetype
=obj
-o
%t.o
6 // RUN
: llvm-readobj
--file-headers
-S
--sd
-r
--symbols
--macho-segment
--macho-dysymtab
--macho-indirect-symbols
< %t.o
> %t.dump
7 // RUN
: FileCheck
--check-prefix
=CHECK-X86_64
< %t.dump
%s
49 // CHECK-I386
: File
: <stdin
>
50 // CHECK-I386
: Format
: Mach-O
32-bit i386
51 // CHECK-I386
: Arch
: i386
52 // CHECK-I386
: AddressSize
: 32bit
53 // CHECK-I386
: MachHeader
{
54 // CHECK-I386
: Magic
: Magic
(0xFEEDFACE)
55 // CHECK-I386
: CpuType
: X86
(0x7)
56 // CHECK-I386
: CpuSubType
: CPU_SUBTYPE_I386_ALL
(0x3)
57 // CHECK-I386
: FileType
: Relocatable
(0x1)
58 // CHECK-I386
: NumOfLoadCommands
: 4
59 // CHECK-I386
: SizeOfLoadCommands
: 312
60 // CHECK-I386
: Flags
[ (0x0)
63 // CHECK-I386
: Sections
[
64 // CHECK-I386
: Section
{
65 // CHECK-I386
: Index
: 0
66 // CHECK-I386
: Name
: __text
(5F
5F
74 65 78 74 00 00 00 00 00 00 00 00 00 00)
67 // CHECK-I386
: Segment
: __TEXT
(5F
5F
54 45 58 54 00 00 00 00 00 00 00 00 00 00)
68 // CHECK-I386
: Address
: 0x0
69 // CHECK-I386
: Size
: 0x1
70 // CHECK-I386
: Offset
: 340
71 // CHECK-I386
: Alignment
: 0
72 // CHECK-I386
: RelocationOffset
: 0x0
73 // CHECK-I386
: RelocationCount
: 0
74 // CHECK-I386
: Type
: Regular
(0x0)
75 // CHECK-I386
: Attributes
[ (0x800004)
76 // CHECK-I386
: PureInstructions
(0x800000)
77 // CHECK-I386
: SomeInstructions
(0x4)
79 // CHECK-I386
: Reserved1
: 0x0
80 // CHECK-I386
: Reserved2
: 0x0
81 // CHECK-I386
: SectionData
(
82 // CHECK-I386
: 0000: C3 |
.|
85 // CHECK-I386
: Section
{
86 // CHECK-I386
: Index
: 1
87 // CHECK-I386
: Name
: __data
(5F
5F
64 61 74 61 00 00 00 00 00 00 00 00 00 00)
88 // CHECK-I386
: Segment
: __DATA
(5F
5F
44 41 54 41 00 00 00 00 00 00 00 00 00 00)
89 // CHECK-I386
: Address
: 0x1
90 // CHECK-I386
: Size
: 0x38
91 // CHECK-I386
: Offset
: 341
92 // CHECK-I386
: Alignment
: 0
93 // CHECK-I386
: RelocationOffset
: 0x190
94 // CHECK-I386
: RelocationCount
: 9
95 // CHECK-I386
: Type
: Regular
(0x0)
96 // CHECK-I386
: Attributes
[ (0x0)
98 // CHECK-I386
: Reserved1
: 0x0
99 // CHECK-I386
: Reserved2
: 0x0
100 // CHECK-I386
: SectionData
(
101 // CHECK-I386
: 0000: 00000000 00000000 05000000 00000000 |
................|
102 // CHECK-I386
: 0010: 05000000 09000000 09000000 00000000 |
................|
103 // CHECK-I386
: 0020: 00000000 00000000 0D000000
0D000000 |
................|
104 // CHECK-I386
: 0030: CFFFFFFF FFFFFFFF |
........|
108 // CHECK-I386
: Relocations
[
109 // CHECK-I386
: Section __data
{
110 // CHECK-I386
: 0x2C 0 2 0 GENERIC_RELOC_VANILLA
0 __data
111 // CHECK-I386
: 0x28 0 2 0 GENERIC_RELOC_VANILLA
0 __data
112 // CHECK-I386
: 0x24 0 2 1 GENERIC_RELOC_VANILLA
0 d3
113 // CHECK-I386
: 0x20 0 2 1 GENERIC_RELOC_VANILLA
0 d
{{$
}}
114 // CHECK-I386
: 0x1C 0 2 1 GENERIC_RELOC_VANILLA
0 d
{{$
}}
115 // CHECK-I386
: 0x18 0 2 n
/a GENERIC_RELOC_VANILLA
1 0x5
116 // CHECK-I386
: 0x14 0 2 0 GENERIC_RELOC_VANILLA
0 __data
117 // CHECK-I386
: 0x10 0 2 0 GENERIC_RELOC_VANILLA
0 __data
118 // CHECK-I386
: 0x8 0 2 0 GENERIC_RELOC_VANILLA
0 __data
121 // CHECK-I386
: Symbols
[
122 // CHECK-I386
: Symbol
{
123 // CHECK-I386
: Name
: a (13)
124 // CHECK-I386
: Type
: Section
(0xE)
125 // CHECK-I386
: Section
: __data
(0x2)
126 // CHECK-I386
: RefType
: UndefinedNonLazy
(0x0)
127 // CHECK-I386
: Flags
[ (0x0)
129 // CHECK-I386
: Value
: 0x5
131 // CHECK-I386
: Symbol
{
132 // CHECK-I386
: Name
: b (11)
133 // CHECK-I386
: Type
: Section
(0xE)
134 // CHECK-I386
: Section
: __data
(0x2)
135 // CHECK-I386
: RefType
: UndefinedNonLazy
(0x0)
136 // CHECK-I386
: Flags
[ (0x0)
138 // CHECK-I386
: Value
: 0x5
140 // CHECK-I386
: Symbol
{
141 // CHECK-I386
: Name
: c
(9)
142 // CHECK-I386
: Type
: Section
(0xE)
143 // CHECK-I386
: Section
: __data
(0x2)
144 // CHECK-I386
: RefType
: UndefinedNonLazy
(0x0)
145 // CHECK-I386
: Flags
[ (0x0)
147 // CHECK-I386
: Value
: 0x9
149 // CHECK-I386
: Symbol
{
150 // CHECK-I386
: Name
: e
(5)
151 // CHECK-I386
: Type
: Section
(0xE)
152 // CHECK-I386
: Section
: __data
(0x2)
153 // CHECK-I386
: RefType
: UndefinedNonLazy
(0x0)
154 // CHECK-I386
: Flags
[ (0x200)
156 // CHECK-I386
: Value
: 0x9
158 // CHECK-I386
: Symbol
{
159 // CHECK-I386
: Name
: g
(1)
160 // CHECK-I386
: Type
: Section
(0xE)
161 // CHECK-I386
: Section
: __data
(0x2)
162 // CHECK-I386
: RefType
: UndefinedNonLazy
(0x0)
163 // CHECK-I386
: Flags
[ (0x0)
165 // CHECK-I386
: Value
: 0xD
167 // CHECK-I386
: Symbol
{
168 // CHECK-I386
: Name
: f
(3)
169 // CHECK-I386
: Type
: Section
(0xE)
170 // CHECK-I386
: Section
: __data
(0x2)
171 // CHECK-I386
: RefType
: UndefinedNonLazy
(0x0)
172 // CHECK-I386
: Flags
[ (0x0)
174 // CHECK-I386
: Value
: 0xD
176 // CHECK-I386
: Symbol
{
177 // CHECK-I386
: Name
: t0
(21)
178 // CHECK-I386
: Type
: Section
(0xE)
179 // CHECK-I386
: Section
: __text
(0x1)
180 // CHECK-I386
: RefType
: UndefinedNonLazy
(0x0)
181 // CHECK-I386
: Flags
[ (0x0)
183 // CHECK-I386
: Value
: 0x0
185 // CHECK-I386
: Symbol
{
186 // CHECK-I386
: Name
: d
(7)
187 // CHECK-I386
: Extern
188 // CHECK-I386
: Type
: Undef
(0x0)
189 // CHECK-I386
: Section
: (0x0)
190 // CHECK-I386
: RefType
: UndefinedNonLazy
(0x0)
191 // CHECK-I386
: Flags
[ (0x0)
193 // CHECK-I386
: Value
: 0x0
195 // CHECK-I386
: Symbol
{
196 // CHECK-I386
: Name
: d2
(18)
197 // CHECK-I386
: Extern
198 // CHECK-I386
: Type
: Indirect
(0xA)
199 // CHECK-I386
: Section
: (0x0)
200 // CHECK-I386
: RefType
: UndefinedNonLazy
(0x0)
201 // CHECK-I386
: Flags
[ (0x0)
203 // CHECK-I386
: Value
: 0x7
205 // CHECK-I386
: Symbol
{
206 // CHECK-I386
: Name
: d3
(15)
207 // CHECK-I386
: Extern
208 // CHECK-I386
: Type
: Undef
(0x0)
209 // CHECK-I386
: Section
: (0x0)
210 // CHECK-I386
: RefType
: UndefinedNonLazy
(0x0)
211 // CHECK-I386
: Flags
[ (0x200)
213 // CHECK-I386
: Value
: 0x0
216 // CHECK-I386
: Indirect Symbols
{
217 // CHECK-I386
: Number
: 0
218 // CHECK-I386
: Symbols
[
221 // CHECK-I386
: Segment
{
222 // CHECK-I386
: Cmd
: LC_SEGMENT
224 // CHECK-I386
: Size
: 192
225 // CHECK-I386
: vmaddr
: 0x0
226 // CHECK-I386
: vmsize
: 0x39
227 // CHECK-I386
: fileoff
: 340
228 // CHECK-I386
: filesize
: 57
229 // CHECK-I386
: maxprot
: rwx
230 // CHECK-I386
: initprot
: rwx
231 // CHECK-I386
: nsects
: 2
232 // CHECK-I386
: flags
: 0x0
234 // CHECK-I386
: Dysymtab
{
235 // CHECK-I386
: ilocalsym
: 0
236 // CHECK-I386
: nlocalsym
: 7
237 // CHECK-I386
: iextdefsym
: 7
238 // CHECK-I386
: nextdefsym
: 0
239 // CHECK-I386
: iundefsym
: 7
240 // CHECK-I386
: nundefsym
: 3
241 // CHECK-I386
: tocoff
: 0
242 // CHECK-I386
: ntoc
: 0
243 // CHECK-I386
: modtaboff
: 0
244 // CHECK-I386
: nmodtab
: 0
245 // CHECK-I386
: extrefsymoff
: 0
246 // CHECK-I386
: nextrefsyms
: 0
247 // CHECK-I386
: indirectsymoff
: 0
248 // CHECK-I386
: nindirectsyms
: 0
249 // CHECK-I386
: extreloff
: 0
250 // CHECK-I386
: nextrel
: 0
251 // CHECK-I386
: locreloff
: 0
252 // CHECK-I386
: nlocrel
: 0
255 // CHECK-X86_64
: File
: <stdin
>
256 // CHECK-X86_64
: Format
: Mach-O
64-bit x86-
64
257 // CHECK-X86_64
: Arch
: x86_64
258 // CHECK-X86_64
: AddressSize
: 64bit
259 // CHECK-X86_64
: MachHeader
{
260 // CHECK-X86_64
: Magic
: Magic64
(0xFEEDFACF)
261 // CHECK-X86_64
: CpuType
: X86-
64 (0x1000007)
262 // CHECK-X86_64
: CpuSubType
: CPU_SUBTYPE_X86_64_ALL
(0x3)
263 // CHECK-X86_64
: FileType
: Relocatable
(0x1)
264 // CHECK-X86_64
: NumOfLoadCommands
: 4
265 // CHECK-X86_64
: SizeOfLoadCommands
: 352
266 // CHECK-X86_64
: Flags
[ (0x0)
268 // CHECK-X86_64
: Reserved
: 0x0
270 // CHECK-X86_64
: Sections
[
271 // CHECK-X86_64
: Section
{
272 // CHECK-X86_64
: Index
: 0
273 // CHECK-X86_64
: Name
: __text
(5F
5F
74 65 78 74 00 00 00 00 00 00 00 00 00 00)
274 // CHECK-X86_64
: Segment
: __TEXT
(5F
5F
54 45 58 54 00 00 00 00 00 00 00 00 00 00)
275 // CHECK-X86_64
: Address
: 0x0
276 // CHECK-X86_64
: Size
: 0x1
277 // CHECK-X86_64
: Offset
: 384
278 // CHECK-X86_64
: Alignment
: 0
279 // CHECK-X86_64
: RelocationOffset
: 0x0
280 // CHECK-X86_64
: RelocationCount
: 0
281 // CHECK-X86_64
: Type
: Regular
(0x0)
282 // CHECK-X86_64
: Attributes
[ (0x800004)
283 // CHECK-X86_64
: PureInstructions
(0x800000)
284 // CHECK-X86_64
: SomeInstructions
(0x4)
286 // CHECK-X86_64
: Reserved1
: 0x0
287 // CHECK-X86_64
: Reserved2
: 0x0
288 // CHECK-X86_64
: Reserved3
: 0x0
289 // CHECK-X86_64
: SectionData
(
290 // CHECK-X86_64
: 0000: C3 |
.|
293 // CHECK-X86_64
: Section
{
294 // CHECK-X86_64
: Index
: 1
295 // CHECK-X86_64
: Name
: __data
(5F
5F
64 61 74 61 00 00 00 00 00 00 00 00 00 00)
296 // CHECK-X86_64
: Segment
: __DATA
(5F
5F
44 41 54 41 00 00 00 00 00 00 00 00 00 00)
297 // CHECK-X86_64
: Address
: 0x1
298 // CHECK-X86_64
: Size
: 0x38
299 // CHECK-X86_64
: Offset
: 385
300 // CHECK-X86_64
: Alignment
: 0
301 // CHECK-X86_64
: RelocationOffset
: 0x1BC
302 // CHECK-X86_64
: RelocationCount
: 9
303 // CHECK-X86_64
: Type
: Regular
(0x0)
304 // CHECK-X86_64
: Attributes
[ (0x0)
306 // CHECK-X86_64
: Reserved1
: 0x0
307 // CHECK-X86_64
: Reserved2
: 0x0
308 // CHECK-X86_64
: Reserved3
: 0x0
309 // CHECK-X86_64
: SectionData
(
310 // CHECK-X86_64
: 0000: 00000000 00000000 00000000 00000000 |
................|
311 // CHECK-X86_64
: 0010: 00000000 00000000 04000000 00000000 |
................|
312 // CHECK-X86_64
: 0020: 00000000 00000000 00000000 00000000 |
................|
313 // CHECK-X86_64
: 0030: CFFFFFFF FFFFFFFF |
........|
317 // CHECK-X86_64
: Relocations
[
318 // CHECK-X86_64
: Section __data
{
319 // CHECK-X86_64
: 0x2C 0 2 1 X86_64_RELOC_UNSIGNED
0 g
320 // CHECK-X86_64
: 0x28 0 2 1 X86_64_RELOC_UNSIGNED
0 f
321 // CHECK-X86_64
: 0x24 0 2 1 X86_64_RELOC_UNSIGNED
0 d3
322 // CHECK-X86_64
: 0x20 0 2 1 X86_64_RELOC_UNSIGNED
0 d
{{$
}}
323 // CHECK-X86_64
: 0x1C 0 2 1 X86_64_RELOC_UNSIGNED
0 d
{{$
}}
324 // CHECK-X86_64
: 0x18 0 2 1 X86_64_RELOC_UNSIGNED
0 a
325 // CHECK-X86_64
: 0x14 0 2 1 X86_64_RELOC_UNSIGNED
0 e
326 // CHECK-X86_64
: 0x10 0 2 1 X86_64_RELOC_UNSIGNED
0 b
327 // CHECK-X86_64
: 0x8 0 2 1 X86_64_RELOC_UNSIGNED
0 b
330 // CHECK-X86_64
: Symbols
[
331 // CHECK-X86_64
: Symbol
{
332 // CHECK-X86_64
: Name
: a (13)
333 // CHECK-X86_64
: Type
: Section
(0xE)
334 // CHECK-X86_64
: Section
: __data
(0x2)
335 // CHECK-X86_64
: RefType
: UndefinedNonLazy
(0x0)
336 // CHECK-X86_64
: Flags
[ (0x0)
338 // CHECK-X86_64
: Value
: 0x5
340 // CHECK-X86_64
: Symbol
{
341 // CHECK-X86_64
: Name
: b (11)
342 // CHECK-X86_64
: Type
: Section
(0xE)
343 // CHECK-X86_64
: Section
: __data
(0x2)
344 // CHECK-X86_64
: RefType
: UndefinedNonLazy
(0x0)
345 // CHECK-X86_64
: Flags
[ (0x0)
347 // CHECK-X86_64
: Value
: 0x5
349 // CHECK-X86_64
: Symbol
{
350 // CHECK-X86_64
: Name
: c
(9)
351 // CHECK-X86_64
: Type
: Section
(0xE)
352 // CHECK-X86_64
: Section
: __data
(0x2)
353 // CHECK-X86_64
: RefType
: UndefinedNonLazy
(0x0)
354 // CHECK-X86_64
: Flags
[ (0x0)
356 // CHECK-X86_64
: Value
: 0x9
358 // CHECK-X86_64
: Symbol
{
359 // CHECK-X86_64
: Name
: e
(5)
360 // CHECK-X86_64
: Type
: Section
(0xE)
361 // CHECK-X86_64
: Section
: __data
(0x2)
362 // CHECK-X86_64
: RefType
: UndefinedNonLazy
(0x0)
363 // CHECK-X86_64
: Flags
[ (0x200)
365 // CHECK-X86_64
: Value
: 0x9
367 // CHECK-X86_64
: Symbol
{
368 // CHECK-X86_64
: Name
: g
(1)
369 // CHECK-X86_64
: Type
: Section
(0xE)
370 // CHECK-X86_64
: Section
: __data
(0x2)
371 // CHECK-X86_64
: RefType
: UndefinedNonLazy
(0x0)
372 // CHECK-X86_64
: Flags
[ (0x0)
374 // CHECK-X86_64
: Value
: 0xD
376 // CHECK-X86_64
: Symbol
{
377 // CHECK-X86_64
: Name
: f
(3)
378 // CHECK-X86_64
: Type
: Section
(0xE)
379 // CHECK-X86_64
: Section
: __data
(0x2)
380 // CHECK-X86_64
: RefType
: UndefinedNonLazy
(0x0)
381 // CHECK-X86_64
: Flags
[ (0x0)
383 // CHECK-X86_64
: Value
: 0xD
385 // CHECK-X86_64
: Symbol
{
386 // CHECK-X86_64
: Name
: t0
(21)
387 // CHECK-X86_64
: Type
: Section
(0xE)
388 // CHECK-X86_64
: Section
: __text
(0x1)
389 // CHECK-X86_64
: RefType
: UndefinedNonLazy
(0x0)
390 // CHECK-X86_64
: Flags
[ (0x0)
392 // CHECK-X86_64
: Value
: 0x0
394 // CHECK-X86_64
: Symbol
{
395 // CHECK-X86_64
: Name
: d
(7)
396 // CHECK-X86_64
: Extern
397 // CHECK-X86_64
: Type
: Undef
(0x0)
398 // CHECK-X86_64
: Section
: (0x0)
399 // CHECK-X86_64
: RefType
: UndefinedNonLazy
(0x0)
400 // CHECK-X86_64
: Flags
[ (0x0)
402 // CHECK-X86_64
: Value
: 0x0
404 // CHECK-X86_64
: Symbol
{
405 // CHECK-X86_64
: Name
: d2
(18)
406 // CHECK-X86_64
: Extern
407 // CHECK-X86_64
: Type
: Indirect
(0xA)
408 // CHECK-X86_64
: Section
: (0x0)
409 // CHECK-X86_64
: RefType
: UndefinedNonLazy
(0x0)
410 // CHECK-X86_64
: Flags
[ (0x0)
412 // CHECK-X86_64
: Value
: 0x7
414 // CHECK-X86_64
: Symbol
{
415 // CHECK-X86_64
: Name
: d3
(15)
416 // CHECK-X86_64
: Extern
417 // CHECK-X86_64
: Type
: Undef
(0x0)
418 // CHECK-X86_64
: Section
: (0x0)
419 // CHECK-X86_64
: RefType
: UndefinedNonLazy
(0x0)
420 // CHECK-X86_64
: Flags
[ (0x200)
422 // CHECK-X86_64
: Value
: 0x0
425 // CHECK-X86_64
: Indirect Symbols
{
426 // CHECK-X86_64
: Number
: 0
427 // CHECK-X86_64
: Symbols
[
430 // CHECK-X86_64
: Segment
{
431 // CHECK-X86_64
: Cmd
: LC_SEGMENT_64
432 // CHECK-X86_64
: Name
:
433 // CHECK-X86_64
: Size
: 232
434 // CHECK-X86_64
: vmaddr
: 0x0
435 // CHECK-X86_64
: vmsize
: 0x39
436 // CHECK-X86_64
: fileoff
: 384
437 // CHECK-X86_64
: filesize
: 57
438 // CHECK-X86_64
: maxprot
: rwx
439 // CHECK-X86_64
: initprot
: rwx
440 // CHECK-X86_64
: nsects
: 2
441 // CHECK-X86_64
: flags
: 0x0
443 // CHECK-X86_64
: Dysymtab
{
444 // CHECK-X86_64
: ilocalsym
: 0
445 // CHECK-X86_64
: nlocalsym
: 7
446 // CHECK-X86_64
: iextdefsym
: 7
447 // CHECK-X86_64
: nextdefsym
: 0
448 // CHECK-X86_64
: iundefsym
: 7
449 // CHECK-X86_64
: nundefsym
: 3
450 // CHECK-X86_64
: tocoff
: 0
451 // CHECK-X86_64
: ntoc
: 0
452 // CHECK-X86_64
: modtaboff
: 0
453 // CHECK-X86_64
: nmodtab
: 0
454 // CHECK-X86_64
: extrefsymoff
: 0
455 // CHECK-X86_64
: nextrefsyms
: 0
456 // CHECK-X86_64
: indirectsymoff
: 0
457 // CHECK-X86_64
: nindirectsyms
: 0
458 // CHECK-X86_64
: extreloff
: 0
459 // CHECK-X86_64
: nextrel
: 0
460 // CHECK-X86_64
: locreloff
: 0
461 // CHECK-X86_64
: nlocrel
: 0