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
18 CHECK: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
19 CHECK: MH_MAGIC_64 X86_64 ALL 0x00 OBJECT 3 496 SUBSECTIONS_VIA_SYMBOLS
21 CHECK: cmd LC_SEGMENT_64
24 CHECK: vmaddr 0x0000000000000000
25 CHECK: vmsize 0x00000000000000a8
33 CHECK: sectname __text
35 CHECK: addr 0x0000000000000000
36 CHECK: size 0x000000000000003b
42 CHECK: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
46 CHECK: sectname __cstring
48 CHECK: addr 0x000000000000003b
49 CHECK: size 0x000000000000000d
54 CHECK: type S_CSTRING_LITERALS
55 CHECK: attributes (none)
59 CHECK: sectname __compact_unwind
61 CHECK: addr 0x0000000000000048
62 CHECK: size 0x0000000000000020
68 CHECK: attributes DEBUG
72 CHECK: sectname __eh_frame
74 CHECK: addr 0x0000000000000068
75 CHECK: size 0x0000000000000040
80 CHECK: type S_COALESCED
81 CHECK: attributes NO_TOC STRIP_STATIC_SYMS LIVE_SUPPORT
92 CHECK: cmd LC_DYSYMTAB
104 CHECK: extrefsymoff 0
106 CHECK: indirectsymoff 0
107 CHECK: nindirectsyms 0
114 EXE: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
115 EXE: MH_MAGIC_64 X86_64 ALL LIB64 EXECUTE 16 1296 NOUNDEFS DYLDLINK TWOLEVEL PIE
117 EXE: cmd LC_SEGMENT_64
119 EXE: segname __PAGEZERO
120 EXE: vmaddr 0x0000000000000000
121 EXE: vmsize 0x0000000100000000
129 EXE: cmd LC_SEGMENT_64
132 EXE: vmaddr 0x0000000100000000
133 EXE: vmsize 0x0000000000001000
143 EXE: addr 0x0000000100000f30
144 EXE: size 0x000000000000003b
150 EXE: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
154 EXE: sectname __stubs
156 EXE: addr 0x0000000100000f6c
157 EXE: size 0x0000000000000006
162 EXE: type S_SYMBOL_STUBS
163 EXE: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
164 EXE: reserved1 0 (index into indirect symbol table)
165 EXE: reserved2 6 (size of stubs)
167 EXE: sectname __stub_helper
169 EXE: addr 0x0000000100000f74
170 EXE: size 0x000000000000001a
176 EXE: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
180 EXE: sectname __cstring
182 EXE: addr 0x0000000100000f8e
183 EXE: size 0x000000000000000d
188 EXE: type S_CSTRING_LITERALS
189 EXE: attributes (none)
193 EXE: sectname __unwind_info
195 EXE: addr 0x0000000100000f9b
196 EXE: size 0x0000000000000048
202 EXE: attributes (none)
206 EXE: sectname __eh_frame
208 EXE: addr 0x0000000100000fe8
209 EXE: size 0x0000000000000018
215 EXE: attributes (none)
219 EXE: cmd LC_SEGMENT_64
222 EXE: vmaddr 0x0000000100001000
223 EXE: vmsize 0x0000000000001000
231 EXE: sectname __nl_symbol_ptr
233 EXE: addr 0x0000000100001000
234 EXE: size 0x0000000000000010
239 EXE: type S_NON_LAZY_SYMBOL_POINTERS
240 EXE: attributes (none)
241 EXE: reserved1 1 (index into indirect symbol table)
244 EXE: sectname __la_symbol_ptr
246 EXE: addr 0x0000000100001010
247 EXE: size 0x0000000000000008
252 EXE: type S_LAZY_SYMBOL_POINTERS
253 EXE: attributes (none)
254 EXE: reserved1 3 (index into indirect symbol table)
257 EXE: cmd LC_SEGMENT_64
259 EXE: segname __LINKEDIT
260 EXE: vmaddr 0x0000000100002000
261 EXE: vmsize 0x0000000000001000
269 EXE: cmd LC_DYLD_INFO_ONLY
276 EXE: weak_bind_size 0
277 EXE: lazy_bind_off 8224
278 EXE: lazy_bind_size 16
303 EXE: indirectsymoff 8424
310 EXE: cmd LC_LOAD_DYLINKER
312 EXE: name /usr/lib/dyld (offset 12)
316 EXE: uuid 65C2DD41-79B0-3B34-871B-8CB3446AB762
318 EXE: cmd LC_VERSION_MIN_MACOSX
323 EXE: cmd LC_SOURCE_VERSION
332 EXE: cmd LC_LOAD_DYLIB
334 EXE: name /usr/lib/libSystem.B.dylib (offset 24)
335 EXE: current version 1197.1.1
336 EXE: compatibility version 1.0.0
338 EXE: cmd LC_FUNCTION_STARTS
343 EXE: cmd LC_DATA_IN_CODE
348 EXE: cmd LC_DYLIB_CODE_SIGN_DRS
354 LOAD: Load command 10
355 LOAD: cmd LC_LOAD_DYLIB
357 LOAD: name /usr/lib/foo1.dylib (offset 24)
358 LOAD: current version 0.0.0
359 LOAD: compatibility version 0.0.0
360 LOAD: Load command 11
361 LOAD: cmd LC_LOAD_WEAK_DYLIB
363 LOAD: name /usr/lib/foo2.dylib (offset 24)
364 LOAD: current version 0.0.0
365 LOAD: compatibility version 0.0.0
366 LOAD: Load command 12
367 LOAD: cmd LC_REEXPORT_DYLIB
369 LOAD: name /usr/lib/foo3.dylib (offset 24)
370 LOAD: current version 0.0.0
371 LOAD: compatibility version 0.0.0
372 LOAD: Load command 13
373 LOAD: cmd LC_LAZY_LOAD_DYLIB
375 LOAD: name /usr/lib/foo4.dylib (offset 24)
376 LOAD: current version 0.0.0
377 LOAD: compatibility version 0.0.0
379 LD_OPT: Load command 4
380 LD_OPT: cmd LC_LINKER_OPTION
383 LD_OPT: string #1 -lc++
384 LD_OPT: Load command 5
385 LD_OPT: cmd LC_LINKER_OPTION
388 LD_OPT: string #1 -framework
389 LD_OPT: string #2 Foundation
391 SUB_FRAME: Load command 10
392 SUB_FRAME: cmd LC_SUB_FRAMEWORK
393 SUB_FRAME: cmdsize 16
394 SUB_FRAME: umbrella Bar (offset 12)
396 SUB_UMB: Load command 5
397 SUB_UMB: cmd LC_SUB_UMBRELLA
399 SUB_UMB: sub_umbrella Foo (offset 12)
401 SUB_LIB: Load command 5
402 SUB_LIB: cmd LC_SUB_LIBRARY
404 SUB_LIB: sub_library libfoo (offset 12)
406 SUB_CLI: Load command 10
407 SUB_CLI: cmd LC_SUB_CLIENT
409 SUB_CLI: client bar (offset 12)