1 // RUN: llvm-objdump -p %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s
2 // RUN: llvm-otool -lv %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s
3 // RUN: llvm-objdump -p %p/Inputs/hello.exe.macho-x86_64 \
4 // RUN: | FileCheck %s -check-prefix=EXE
5 // RUN: llvm-objdump -p %p/Inputs/dylibLoadKinds.macho-x86_64 \
6 // RUN: | FileCheck %s -check-prefix=LOAD
7 // RUN: llvm-objdump -p %p/Inputs/linkerOption.macho-x86_64 \
8 // RUN: | FileCheck %s -check-prefix=LD_OPT
9 // RUN: llvm-objdump -p %p/Inputs/dylibSubFramework.macho-x86_64 \
10 // RUN: | FileCheck %s -check-prefix=SUB_FRAME
11 // RUN: llvm-objdump -p %p/Inputs/dylibSubUmbrella.macho-x86_64 \
12 // RUN: | FileCheck %s -check-prefix=SUB_UMB
13 // RUN: llvm-objdump -p %p/Inputs/dylibSubLibrary.macho-x86_64 \
14 // RUN: | FileCheck %s -check-prefix=SUB_LIB
15 // RUN: llvm-objdump -p %p/Inputs/dylibSubClient.macho-x86_64 \
16 // RUN: | FileCheck %s -check-prefix=SUB_CLI
17 // RUN: llvm-objdump -p %p/Inputs/dylibRoutines.macho-x86_64 \
18 // RUN: | FileCheck %s -check-prefix=ROUTINE
19 // RUN: llvm-objdump -p %p/Inputs/exeThread.macho-x86_64 \
20 // RUN: | FileCheck %s -check-prefix=THREAD
21 // RUN: llvm-objdump --macho -p --arch i386 %p/Inputs/macho-universal.x86_64.i386 \
22 // RUN: | FileCheck %s -check-prefix=FATi386
23 // RUN: llvm-objdump -p --arch i386 %p/Inputs/macho-universal.x86_64.i386 \
24 // RUN: | FileCheck %s -check-prefix=FATi386
25 // RUN: llvm-objdump -p --non-verbose %p/Inputs/hello.obj.macho-x86_64 \
26 // RUN: | FileCheck %s -check-prefix=NON_VERBOSE
27 // RUN: llvm-objdump -p %p/Inputs/codesig.macho-x86_64 \
28 // RUN: | FileCheck %s -check-prefix=CODESIG
29 // RUN: llvm-objdump -p %p/Inputs/note.macho-x86 \
30 // RUN: | FileCheck %s -check-prefix=NOTE
33 CHECK: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
34 CHECK: MH_MAGIC_64 X86_64 ALL 0x00 OBJECT 3 496 SUBSECTIONS_VIA_SYMBOLS
36 CHECK: cmd LC_SEGMENT_64
39 CHECK: vmaddr 0x0000000000000000
40 CHECK: vmsize 0x00000000000000a8
48 CHECK: sectname __text
50 CHECK: addr 0x0000000000000000
51 CHECK: size 0x000000000000003b
57 CHECK: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
61 CHECK: sectname __cstring
63 CHECK: addr 0x000000000000003b
64 CHECK: size 0x000000000000000d
69 CHECK: type S_CSTRING_LITERALS
70 CHECK: attributes (none)
74 CHECK: sectname __compact_unwind
76 CHECK: addr 0x0000000000000048
77 CHECK: size 0x0000000000000020
83 CHECK: attributes DEBUG
87 CHECK: sectname __eh_frame
89 CHECK: addr 0x0000000000000068
90 CHECK: size 0x0000000000000040
95 CHECK: type S_COALESCED
96 CHECK: attributes NO_TOC STRIP_STATIC_SYMS LIVE_SUPPORT
106 CHECK: Load command 2
107 CHECK: cmd LC_DYSYMTAB
119 CHECK: extrefsymoff 0
121 CHECK: indirectsymoff 0
122 CHECK: nindirectsyms 0
129 EXE: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
130 EXE: MH_MAGIC_64 X86_64 ALL LIB64 EXECUTE 16 1296 NOUNDEFS DYLDLINK TWOLEVEL PIE
132 EXE: cmd LC_SEGMENT_64
134 EXE: segname __PAGEZERO
135 EXE: vmaddr 0x0000000000000000
136 EXE: vmsize 0x0000000100000000
144 EXE: cmd LC_SEGMENT_64
147 EXE: vmaddr 0x0000000100000000
148 EXE: vmsize 0x0000000000001000
158 EXE: addr 0x0000000100000f30
159 EXE: size 0x000000000000003b
165 EXE: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
169 EXE: sectname __stubs
171 EXE: addr 0x0000000100000f6c
172 EXE: size 0x0000000000000006
177 EXE: type S_SYMBOL_STUBS
178 EXE: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
179 EXE: reserved1 0 (index into indirect symbol table)
180 EXE: reserved2 6 (size of stubs)
182 EXE: sectname __stub_helper
184 EXE: addr 0x0000000100000f74
185 EXE: size 0x000000000000001a
191 EXE: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
195 EXE: sectname __cstring
197 EXE: addr 0x0000000100000f8e
198 EXE: size 0x000000000000000d
203 EXE: type S_CSTRING_LITERALS
204 EXE: attributes (none)
208 EXE: sectname __unwind_info
210 EXE: addr 0x0000000100000f9b
211 EXE: size 0x0000000000000048
217 EXE: attributes (none)
221 EXE: sectname __eh_frame
223 EXE: addr 0x0000000100000fe8
224 EXE: size 0x0000000000000018
230 EXE: attributes (none)
234 EXE: cmd LC_SEGMENT_64
237 EXE: vmaddr 0x0000000100001000
238 EXE: vmsize 0x0000000000001000
246 EXE: sectname __nl_symbol_ptr
248 EXE: addr 0x0000000100001000
249 EXE: size 0x0000000000000010
254 EXE: type S_NON_LAZY_SYMBOL_POINTERS
255 EXE: attributes (none)
256 EXE: reserved1 1 (index into indirect symbol table)
259 EXE: sectname __la_symbol_ptr
261 EXE: addr 0x0000000100001010
262 EXE: size 0x0000000000000008
267 EXE: type S_LAZY_SYMBOL_POINTERS
268 EXE: attributes (none)
269 EXE: reserved1 3 (index into indirect symbol table)
272 EXE: cmd LC_SEGMENT_64
274 EXE: segname __LINKEDIT
275 EXE: vmaddr 0x0000000100002000
276 EXE: vmsize 0x0000000000001000
284 EXE: cmd LC_DYLD_INFO_ONLY
291 EXE: weak_bind_size 0
292 EXE: lazy_bind_off 8224
293 EXE: lazy_bind_size 16
318 EXE: indirectsymoff 8424
325 EXE: cmd LC_LOAD_DYLINKER
327 EXE: name /usr/lib/dyld (offset 12)
331 EXE: uuid 65C2DD41-79B0-3B34-871B-8CB3446AB762
333 EXE: cmd LC_VERSION_MIN_MACOSX
338 EXE: cmd LC_SOURCE_VERSION
347 EXE: cmd LC_LOAD_DYLIB
349 EXE: name /usr/lib/libSystem.B.dylib (offset 24)
350 EXE: current version 1197.1.1
351 EXE: compatibility version 1.0.0
353 EXE: cmd LC_FUNCTION_STARTS
358 EXE: cmd LC_DATA_IN_CODE
363 EXE: cmd LC_DYLIB_CODE_SIGN_DRS
369 LOAD: Load command 10
370 LOAD: cmd LC_LOAD_DYLIB
372 LOAD: name /usr/lib/foo1.dylib (offset 24)
373 LOAD: current version 0.0.0
374 LOAD: compatibility version 0.0.0
375 LOAD: Load command 11
376 LOAD: cmd LC_LOAD_WEAK_DYLIB
378 LOAD: name /usr/lib/foo2.dylib (offset 24)
379 LOAD: current version 0.0.0
380 LOAD: compatibility version 0.0.0
381 LOAD: Load command 12
382 LOAD: cmd LC_REEXPORT_DYLIB
384 LOAD: name /usr/lib/foo3.dylib (offset 24)
385 LOAD: current version 0.0.0
386 LOAD: compatibility version 0.0.0
387 LOAD: Load command 13
388 LOAD: cmd LC_LAZY_LOAD_DYLIB
390 LOAD: name /usr/lib/foo4.dylib (offset 24)
391 LOAD: current version 0.0.0
392 LOAD: compatibility version 0.0.0
394 LD_OPT: Load command 4
395 LD_OPT: cmd LC_LINKER_OPTION
398 LD_OPT: string #1 -lc++
399 LD_OPT: Load command 5
400 LD_OPT: cmd LC_LINKER_OPTION
403 LD_OPT: string #1 -framework
404 LD_OPT: string #2 Foundation
406 SUB_FRAME: Load command 10
407 SUB_FRAME: cmd LC_SUB_FRAMEWORK
408 SUB_FRAME: cmdsize 16
409 SUB_FRAME: umbrella Bar (offset 12)
411 SUB_UMB: Load command 5
412 SUB_UMB: cmd LC_SUB_UMBRELLA
414 SUB_UMB: sub_umbrella Foo (offset 12)
416 SUB_LIB: Load command 5
417 SUB_LIB: cmd LC_SUB_LIBRARY
419 SUB_LIB: sub_library libfoo (offset 12)
421 SUB_CLI: Load command 10
422 SUB_CLI: cmd LC_SUB_CLIENT
424 SUB_CLI: client bar (offset 12)
426 ROUTINE: Load command 6
427 ROUTINE: cmd LC_ROUTINES_64
429 ROUTINE: init_address 0x0000000000000f80
430 ROUTINE: init_module 0
438 THREAD: Load command 10
439 THREAD: cmd LC_UNIXTHREAD
441 THREAD: flavor x86_THREAD_STATE64
442 THREAD: count x86_THREAD_STATE64_COUNT
443 THREAD: rax 0x0000000000000000 rbx 0x0000000000000000 rcx 0x0000000000000000
444 THREAD: rdx 0x0000000000000000 rdi 0x0000000000000000 rsi 0x0000000000000000
445 THREAD: rbp 0x0000000000000000 rsp 0x0000000000000000 r8 0x0000000000000000
446 THREAD: r9 0x0000000000000000 r10 0x0000000000000000 r11 0x0000000000000000
447 THREAD: r12 0x0000000000000000 r13 0x0000000000000000 r14 0x0000000000000000
448 THREAD: r15 0x0000000000000000 rip 0x0000000100000d00
449 THREAD: rflags 0x0000000000000000 cs 0x0000000000000000 fs 0x0000000000000000
450 THREAD: gs 0x0000000000000000
453 FATi386: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
454 FATi386: MH_MAGIC I386 ALL 0x00 EXECUTE 16 716 NOUNDEFS DYLDLINK TWOLEVEL PIE MH_NO_HEAP_EXECUTION
456 NON_VERBOSE: Mach header
457 NON_VERBOSE: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
458 NON_VERBOSE: 0xfeedfacf 16777223 3 0x00 1 3 496 0x00002000
459 NON_VERBOSE: Load command 0
460 NON_VERBOSE: cmd LC_SEGMENT_64
461 NON_VERBOSE: cmdsize 392
463 NON_VERBOSE: vmaddr 0x0000000000000000
464 NON_VERBOSE: vmsize 0x00000000000000a8
465 NON_VERBOSE: fileoff 528
466 NON_VERBOSE: filesize 168
467 NON_VERBOSE: maxprot 0x00000007
468 NON_VERBOSE: initprot 0x00000007
469 NON_VERBOSE: nsects 4
470 NON_VERBOSE: flags 0x0
472 NON_VERBOSE: sectname __text
473 NON_VERBOSE: segname __TEXT
474 NON_VERBOSE: addr 0x0000000000000000
475 NON_VERBOSE: size 0x000000000000003b
476 NON_VERBOSE: offset 528
477 NON_VERBOSE: align 2^4 (16)
478 NON_VERBOSE: reloff 696
479 NON_VERBOSE: nreloc 2
480 NON_VERBOSE: flags 0x80000400
481 NON_VERBOSE: reserved1 0
482 NON_VERBOSE: reserved2 0
484 NON_VERBOSE: sectname __cstring
485 NON_VERBOSE: segname __TEXT
486 NON_VERBOSE: addr 0x000000000000003b
487 NON_VERBOSE: size 0x000000000000000d
488 NON_VERBOSE: offset 587
489 NON_VERBOSE: align 2^0 (1)
490 NON_VERBOSE: reloff 0
491 NON_VERBOSE: nreloc 0
492 NON_VERBOSE: flags 0x00000002
493 NON_VERBOSE: reserved1 0
494 NON_VERBOSE: reserved2 0
496 NON_VERBOSE: sectname __compact_unwind
497 NON_VERBOSE: segname __LD
498 NON_VERBOSE: addr 0x0000000000000048
499 NON_VERBOSE: size 0x0000000000000020
500 NON_VERBOSE: offset 600
501 NON_VERBOSE: align 2^3 (8)
502 NON_VERBOSE: reloff 712
503 NON_VERBOSE: nreloc 1
504 NON_VERBOSE: flags 0x02000000
505 NON_VERBOSE: reserved1 0
506 NON_VERBOSE: reserved2 0
508 NON_VERBOSE: sectname __eh_frame
509 NON_VERBOSE: segname __TEXT
510 NON_VERBOSE: addr 0x0000000000000068
511 NON_VERBOSE: size 0x0000000000000040
512 NON_VERBOSE: offset 632
513 NON_VERBOSE: align 2^3 (8)
514 NON_VERBOSE: reloff 0
515 NON_VERBOSE: nreloc 0
516 NON_VERBOSE: flags 0x6800000b
517 NON_VERBOSE: reserved1 0
518 NON_VERBOSE: reserved2 0
519 NON_VERBOSE: Load command 1
520 NON_VERBOSE: cmd LC_SYMTAB
521 NON_VERBOSE: cmdsize 24
522 NON_VERBOSE: symoff 720
524 NON_VERBOSE: stroff 800
525 NON_VERBOSE: strsize 44
526 NON_VERBOSE: Load command 2
527 NON_VERBOSE: cmd LC_DYSYMTAB
528 NON_VERBOSE: cmdsize 80
529 NON_VERBOSE: ilocalsym 0
530 NON_VERBOSE: nlocalsym 2
531 NON_VERBOSE: iextdefsym 2
532 NON_VERBOSE: nextdefsym 2
533 NON_VERBOSE: iundefsym 4
534 NON_VERBOSE: nundefsym 1
535 NON_VERBOSE: tocoff 0
537 NON_VERBOSE: modtaboff 0
538 NON_VERBOSE: nmodtab 0
539 NON_VERBOSE: extrefsymoff 0
540 NON_VERBOSE: nextrefsyms 0
541 NON_VERBOSE: indirectsymoff 0
542 NON_VERBOSE: nindirectsyms 0
543 NON_VERBOSE: extreloff 0
544 NON_VERBOSE: nextrel 0
545 NON_VERBOSE: locreloff 0
546 NON_VERBOSE: nlocrel 0
548 CODESIG: cmd LC_CODE_SIGNATURE
550 CODESIG: dataoff 8496
555 NOTE: data_owner DATA OWNER