1 // RUN: llvm-objdump -p %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s
2 // RUN: llvm-objdump -p %p/Inputs/hello.exe.macho-x86_64 \
3 // RUN: | FileCheck %s -check-prefix=EXE
4 // RUN: llvm-objdump -p %p/Inputs/dylibLoadKinds.macho-x86_64 \
5 // RUN: | FileCheck %s -check-prefix=LOAD
6 // RUN: llvm-objdump -p %p/Inputs/linkerOption.macho-x86_64 \
7 // RUN: | FileCheck %s -check-prefix=LD_OPT
8 // RUN: llvm-objdump -p %p/Inputs/dylibSubFramework.macho-x86_64 \
9 // RUN: | FileCheck %s -check-prefix=SUB_FRAME
10 // RUN: llvm-objdump -p %p/Inputs/dylibSubUmbrella.macho-x86_64 \
11 // RUN: | FileCheck %s -check-prefix=SUB_UMB
12 // RUN: llvm-objdump -p %p/Inputs/dylibSubLibrary.macho-x86_64 \
13 // RUN: | FileCheck %s -check-prefix=SUB_LIB
14 // RUN: llvm-objdump -p %p/Inputs/dylibSubClient.macho-x86_64 \
15 // RUN: | FileCheck %s -check-prefix=SUB_CLI
16 // RUN: llvm-objdump -p %p/Inputs/dylibRoutines.macho-x86_64 \
17 // RUN: | FileCheck %s -check-prefix=ROUTINE
20 CHECK: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
21 CHECK: MH_MAGIC_64 X86_64 ALL 0x00 OBJECT 3 496 SUBSECTIONS_VIA_SYMBOLS
23 CHECK: cmd LC_SEGMENT_64
26 CHECK: vmaddr 0x0000000000000000
27 CHECK: vmsize 0x00000000000000a8
35 CHECK: sectname __text
37 CHECK: addr 0x0000000000000000
38 CHECK: size 0x000000000000003b
44 CHECK: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
48 CHECK: sectname __cstring
50 CHECK: addr 0x000000000000003b
51 CHECK: size 0x000000000000000d
56 CHECK: type S_CSTRING_LITERALS
57 CHECK: attributes (none)
61 CHECK: sectname __compact_unwind
63 CHECK: addr 0x0000000000000048
64 CHECK: size 0x0000000000000020
70 CHECK: attributes DEBUG
74 CHECK: sectname __eh_frame
76 CHECK: addr 0x0000000000000068
77 CHECK: size 0x0000000000000040
82 CHECK: type S_COALESCED
83 CHECK: attributes NO_TOC STRIP_STATIC_SYMS LIVE_SUPPORT
94 CHECK: cmd LC_DYSYMTAB
106 CHECK: extrefsymoff 0
108 CHECK: indirectsymoff 0
109 CHECK: nindirectsyms 0
116 EXE: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
117 EXE: MH_MAGIC_64 X86_64 ALL LIB64 EXECUTE 16 1296 NOUNDEFS DYLDLINK TWOLEVEL PIE
119 EXE: cmd LC_SEGMENT_64
121 EXE: segname __PAGEZERO
122 EXE: vmaddr 0x0000000000000000
123 EXE: vmsize 0x0000000100000000
131 EXE: cmd LC_SEGMENT_64
134 EXE: vmaddr 0x0000000100000000
135 EXE: vmsize 0x0000000000001000
145 EXE: addr 0x0000000100000f30
146 EXE: size 0x000000000000003b
152 EXE: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
156 EXE: sectname __stubs
158 EXE: addr 0x0000000100000f6c
159 EXE: size 0x0000000000000006
164 EXE: type S_SYMBOL_STUBS
165 EXE: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
166 EXE: reserved1 0 (index into indirect symbol table)
167 EXE: reserved2 6 (size of stubs)
169 EXE: sectname __stub_helper
171 EXE: addr 0x0000000100000f74
172 EXE: size 0x000000000000001a
178 EXE: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
182 EXE: sectname __cstring
184 EXE: addr 0x0000000100000f8e
185 EXE: size 0x000000000000000d
190 EXE: type S_CSTRING_LITERALS
191 EXE: attributes (none)
195 EXE: sectname __unwind_info
197 EXE: addr 0x0000000100000f9b
198 EXE: size 0x0000000000000048
204 EXE: attributes (none)
208 EXE: sectname __eh_frame
210 EXE: addr 0x0000000100000fe8
211 EXE: size 0x0000000000000018
217 EXE: attributes (none)
221 EXE: cmd LC_SEGMENT_64
224 EXE: vmaddr 0x0000000100001000
225 EXE: vmsize 0x0000000000001000
233 EXE: sectname __nl_symbol_ptr
235 EXE: addr 0x0000000100001000
236 EXE: size 0x0000000000000010
241 EXE: type S_NON_LAZY_SYMBOL_POINTERS
242 EXE: attributes (none)
243 EXE: reserved1 1 (index into indirect symbol table)
246 EXE: sectname __la_symbol_ptr
248 EXE: addr 0x0000000100001010
249 EXE: size 0x0000000000000008
254 EXE: type S_LAZY_SYMBOL_POINTERS
255 EXE: attributes (none)
256 EXE: reserved1 3 (index into indirect symbol table)
259 EXE: cmd LC_SEGMENT_64
261 EXE: segname __LINKEDIT
262 EXE: vmaddr 0x0000000100002000
263 EXE: vmsize 0x0000000000001000
271 EXE: cmd LC_DYLD_INFO_ONLY
278 EXE: weak_bind_size 0
279 EXE: lazy_bind_off 8224
280 EXE: lazy_bind_size 16
305 EXE: indirectsymoff 8424
312 EXE: cmd LC_LOAD_DYLINKER
314 EXE: name /usr/lib/dyld (offset 12)
318 EXE: uuid 65C2DD41-79B0-3B34-871B-8CB3446AB762
320 EXE: cmd LC_VERSION_MIN_MACOSX
325 EXE: cmd LC_SOURCE_VERSION
334 EXE: cmd LC_LOAD_DYLIB
336 EXE: name /usr/lib/libSystem.B.dylib (offset 24)
337 EXE: current version 1197.1.1
338 EXE: compatibility version 1.0.0
340 EXE: cmd LC_FUNCTION_STARTS
345 EXE: cmd LC_DATA_IN_CODE
350 EXE: cmd LC_DYLIB_CODE_SIGN_DRS
356 LOAD: Load command 10
357 LOAD: cmd LC_LOAD_DYLIB
359 LOAD: name /usr/lib/foo1.dylib (offset 24)
360 LOAD: current version 0.0.0
361 LOAD: compatibility version 0.0.0
362 LOAD: Load command 11
363 LOAD: cmd LC_LOAD_WEAK_DYLIB
365 LOAD: name /usr/lib/foo2.dylib (offset 24)
366 LOAD: current version 0.0.0
367 LOAD: compatibility version 0.0.0
368 LOAD: Load command 12
369 LOAD: cmd LC_REEXPORT_DYLIB
371 LOAD: name /usr/lib/foo3.dylib (offset 24)
372 LOAD: current version 0.0.0
373 LOAD: compatibility version 0.0.0
374 LOAD: Load command 13
375 LOAD: cmd LC_LAZY_LOAD_DYLIB
377 LOAD: name /usr/lib/foo4.dylib (offset 24)
378 LOAD: current version 0.0.0
379 LOAD: compatibility version 0.0.0
381 LD_OPT: Load command 4
382 LD_OPT: cmd LC_LINKER_OPTION
385 LD_OPT: string #1 -lc++
386 LD_OPT: Load command 5
387 LD_OPT: cmd LC_LINKER_OPTION
390 LD_OPT: string #1 -framework
391 LD_OPT: string #2 Foundation
393 SUB_FRAME: Load command 10
394 SUB_FRAME: cmd LC_SUB_FRAMEWORK
395 SUB_FRAME: cmdsize 16
396 SUB_FRAME: umbrella Bar (offset 12)
398 SUB_UMB: Load command 5
399 SUB_UMB: cmd LC_SUB_UMBRELLA
401 SUB_UMB: sub_umbrella Foo (offset 12)
403 SUB_LIB: Load command 5
404 SUB_LIB: cmd LC_SUB_LIBRARY
406 SUB_LIB: sub_library libfoo (offset 12)
408 SUB_CLI: Load command 10
409 SUB_CLI: cmd LC_SUB_CLIENT
411 SUB_CLI: client bar (offset 12)
413 ROUTINE: Load command 6
414 ROUTINE: cmd LC_ROUTINES_64
416 ROUTINE: init_address 0x0000000000000f80
417 ROUTINE: init_module 0