Add printing the LC_THREAD load commands with llvm-objdump’s -private-headers.
[oota-llvm.git] / test / tools / llvm-objdump / X86 / macho-private-headers.test
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
18 // RUN: llvm-objdump -p %p/Inputs/exeThread.macho-x86_64 \
19 // RUN:     | FileCheck %s -check-prefix=THREAD
20
21 CHECK: Mach header
22 CHECK:       magic cputype cpusubtype  caps    filetype ncmds sizeofcmds      flags
23 CHECK: MH_MAGIC_64  X86_64        ALL  0x00      OBJECT     3        496 SUBSECTIONS_VIA_SYMBOLS
24 CHECK: Load command 0
25 CHECK:       cmd LC_SEGMENT_64
26 CHECK:   cmdsize 392
27 CHECK:   segname 
28 CHECK:    vmaddr 0x0000000000000000
29 CHECK:    vmsize 0x00000000000000a8
30 CHECK:   fileoff 528
31 CHECK:  filesize 168
32 CHECK:   maxprot rwx
33 CHECK:  initprot rwx
34 CHECK:    nsects 4
35 CHECK:     flags (none)
36 CHECK: Section
37 CHECK:   sectname __text
38 CHECK:    segname __TEXT
39 CHECK:       addr 0x0000000000000000
40 CHECK:       size 0x000000000000003b
41 CHECK:     offset 528
42 CHECK:      align 2^4 (16)
43 CHECK:     reloff 696
44 CHECK:     nreloc 2
45 CHECK:       type S_REGULAR
46 CHECK: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
47 CHECK:  reserved1 0
48 CHECK:  reserved2 0
49 CHECK: Section
50 CHECK:   sectname __cstring
51 CHECK:    segname __TEXT
52 CHECK:       addr 0x000000000000003b
53 CHECK:       size 0x000000000000000d
54 CHECK:     offset 587
55 CHECK:      align 2^0 (1)
56 CHECK:     reloff 0
57 CHECK:     nreloc 0
58 CHECK:       type S_CSTRING_LITERALS
59 CHECK: attributes (none)
60 CHECK:  reserved1 0
61 CHECK:  reserved2 0
62 CHECK: Section
63 CHECK:   sectname __compact_unwind
64 CHECK:    segname __LD
65 CHECK:       addr 0x0000000000000048
66 CHECK:       size 0x0000000000000020
67 CHECK:     offset 600
68 CHECK:      align 2^3 (8)
69 CHECK:     reloff 712
70 CHECK:     nreloc 1
71 CHECK:       type S_REGULAR
72 CHECK: attributes DEBUG
73 CHECK:  reserved1 0
74 CHECK:  reserved2 0
75 CHECK: Section
76 CHECK:   sectname __eh_frame
77 CHECK:    segname __TEXT
78 CHECK:       addr 0x0000000000000068
79 CHECK:       size 0x0000000000000040
80 CHECK:     offset 632
81 CHECK:      align 2^3 (8)
82 CHECK:     reloff 0
83 CHECK:     nreloc 0
84 CHECK:       type S_COALESCED
85 CHECK: attributes NO_TOC STRIP_STATIC_SYMS LIVE_SUPPORT
86 CHECK:  reserved1 0
87 CHECK:  reserved2 0
88 CHECK: Load command 1
89 CHECK:      cmd LC_SYMTAB
90 CHECK:  cmdsize 24
91 CHECK:   symoff 720
92 CHECK:    nsyms 5
93 CHECK:   stroff 800
94 CHECK:  strsize 44
95 CHECK: Load command 2
96 CHECK:             cmd LC_DYSYMTAB
97 CHECK:         cmdsize 80
98 CHECK:       ilocalsym 0
99 CHECK:       nlocalsym 2
100 CHECK:      iextdefsym 2
101 CHECK:      nextdefsym 2
102 CHECK:       iundefsym 4
103 CHECK:       nundefsym 1
104 CHECK:          tocoff 0
105 CHECK:            ntoc 0
106 CHECK:       modtaboff 0
107 CHECK:         nmodtab 0
108 CHECK:    extrefsymoff 0
109 CHECK:     nextrefsyms 0
110 CHECK:  indirectsymoff 0
111 CHECK:   nindirectsyms 0
112 CHECK:       extreloff 0
113 CHECK:         nextrel 0
114 CHECK:       locreloff 0
115 CHECK:         nlocrel 0
116
117 EXE: Mach header
118 EXE:       magic cputype cpusubtype  caps    filetype ncmds sizeofcmds      flags
119 EXE: MH_MAGIC_64  X86_64        ALL LIB64     EXECUTE    16       1296   NOUNDEFS DYLDLINK TWOLEVEL PIE
120 EXE: Load command 0
121 EXE:       cmd LC_SEGMENT_64
122 EXE:   cmdsize 72
123 EXE:   segname __PAGEZERO
124 EXE:    vmaddr 0x0000000000000000
125 EXE:    vmsize 0x0000000100000000
126 EXE:   fileoff 0
127 EXE:  filesize 0
128 EXE:   maxprot ---
129 EXE:  initprot ---
130 EXE:    nsects 0
131 EXE:     flags (none)
132 EXE: Load command 1
133 EXE:       cmd LC_SEGMENT_64
134 EXE:   cmdsize 552
135 EXE:   segname __TEXT
136 EXE:    vmaddr 0x0000000100000000
137 EXE:    vmsize 0x0000000000001000
138 EXE:   fileoff 0
139 EXE:  filesize 4096
140 EXE:   maxprot rwx
141 EXE:  initprot r-x
142 EXE:    nsects 6
143 EXE:     flags (none)
144 EXE: Section
145 EXE:   sectname __text
146 EXE:    segname __TEXT
147 EXE:       addr 0x0000000100000f30
148 EXE:       size 0x000000000000003b
149 EXE:     offset 3888
150 EXE:      align 2^4 (16)
151 EXE:     reloff 0
152 EXE:     nreloc 0
153 EXE:       type S_REGULAR
154 EXE: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
155 EXE:  reserved1 0
156 EXE:  reserved2 0
157 EXE: Section
158 EXE:   sectname __stubs
159 EXE:    segname __TEXT
160 EXE:       addr 0x0000000100000f6c
161 EXE:       size 0x0000000000000006
162 EXE:     offset 3948
163 EXE:      align 2^1 (2)
164 EXE:     reloff 0
165 EXE:     nreloc 0
166 EXE:       type S_SYMBOL_STUBS
167 EXE: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
168 EXE:  reserved1 0 (index into indirect symbol table)
169 EXE:  reserved2 6 (size of stubs)
170 EXE: Section
171 EXE:   sectname __stub_helper
172 EXE:    segname __TEXT
173 EXE:       addr 0x0000000100000f74
174 EXE:       size 0x000000000000001a
175 EXE:     offset 3956
176 EXE:      align 2^2 (4)
177 EXE:     reloff 0
178 EXE:     nreloc 0
179 EXE:       type S_REGULAR
180 EXE: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
181 EXE:  reserved1 0
182 EXE:  reserved2 0
183 EXE: Section
184 EXE:   sectname __cstring
185 EXE:    segname __TEXT
186 EXE:       addr 0x0000000100000f8e
187 EXE:       size 0x000000000000000d
188 EXE:     offset 3982
189 EXE:      align 2^0 (1)
190 EXE:     reloff 0
191 EXE:     nreloc 0
192 EXE:       type S_CSTRING_LITERALS
193 EXE: attributes (none)
194 EXE:  reserved1 0
195 EXE:  reserved2 0
196 EXE: Section
197 EXE:   sectname __unwind_info
198 EXE:    segname __TEXT
199 EXE:       addr 0x0000000100000f9b
200 EXE:       size 0x0000000000000048
201 EXE:     offset 3995
202 EXE:      align 2^0 (1)
203 EXE:     reloff 0
204 EXE:     nreloc 0
205 EXE:       type S_REGULAR
206 EXE: attributes (none)
207 EXE:  reserved1 0
208 EXE:  reserved2 0
209 EXE: Section
210 EXE:   sectname __eh_frame
211 EXE:    segname __TEXT
212 EXE:       addr 0x0000000100000fe8
213 EXE:       size 0x0000000000000018
214 EXE:     offset 4072
215 EXE:      align 2^3 (8)
216 EXE:     reloff 0
217 EXE:     nreloc 0
218 EXE:       type S_REGULAR
219 EXE: attributes (none)
220 EXE:  reserved1 0
221 EXE:  reserved2 0
222 EXE: Load command 2
223 EXE:       cmd LC_SEGMENT_64
224 EXE:   cmdsize 232
225 EXE:   segname __DATA
226 EXE:    vmaddr 0x0000000100001000
227 EXE:    vmsize 0x0000000000001000
228 EXE:   fileoff 4096
229 EXE:  filesize 4096
230 EXE:   maxprot rwx
231 EXE:  initprot rw-
232 EXE:    nsects 2
233 EXE:     flags (none)
234 EXE: Section
235 EXE:   sectname __nl_symbol_ptr
236 EXE:    segname __DATA
237 EXE:       addr 0x0000000100001000
238 EXE:       size 0x0000000000000010
239 EXE:     offset 4096
240 EXE:      align 2^3 (8)
241 EXE:     reloff 0
242 EXE:     nreloc 0
243 EXE:       type S_NON_LAZY_SYMBOL_POINTERS
244 EXE: attributes (none)
245 EXE:  reserved1 1 (index into indirect symbol table)
246 EXE:  reserved2 0
247 EXE: Section
248 EXE:   sectname __la_symbol_ptr
249 EXE:    segname __DATA
250 EXE:       addr 0x0000000100001010
251 EXE:       size 0x0000000000000008
252 EXE:     offset 4112
253 EXE:      align 2^3 (8)
254 EXE:     reloff 0
255 EXE:     nreloc 0
256 EXE:       type S_LAZY_SYMBOL_POINTERS
257 EXE: attributes (none)
258 EXE:  reserved1 3 (index into indirect symbol table)
259 EXE:  reserved2 0
260 EXE: Load command 3
261 EXE:       cmd LC_SEGMENT_64
262 EXE:   cmdsize 72
263 EXE:   segname __LINKEDIT
264 EXE:    vmaddr 0x0000000100002000
265 EXE:    vmsize 0x0000000000001000
266 EXE:   fileoff 8192
267 EXE:  filesize 304
268 EXE:   maxprot rwx
269 EXE:  initprot r--
270 EXE:    nsects 0
271 EXE:     flags (none)
272 EXE: Load command 4
273 EXE:             cmd LC_DYLD_INFO_ONLY
274 EXE:         cmdsize 48
275 EXE:      rebase_off 8192
276 EXE:     rebase_size 8
277 EXE:        bind_off 8200
278 EXE:       bind_size 24
279 EXE:   weak_bind_off 0
280 EXE:  weak_bind_size 0
281 EXE:   lazy_bind_off 8224
282 EXE:  lazy_bind_size 16
283 EXE:      export_off 8240
284 EXE:     export_size 48
285 EXE: Load command 5
286 EXE:      cmd LC_SYMTAB
287 EXE:  cmdsize 24
288 EXE:   symoff 8360
289 EXE:    nsyms 4
290 EXE:   stroff 8440
291 EXE:  strsize 56
292 EXE: Load command 6
293 EXE:             cmd LC_DYSYMTAB
294 EXE:         cmdsize 80
295 EXE:       ilocalsym 0
296 EXE:       nlocalsym 0
297 EXE:      iextdefsym 0
298 EXE:      nextdefsym 2
299 EXE:       iundefsym 2
300 EXE:       nundefsym 2
301 EXE:          tocoff 0
302 EXE:            ntoc 0
303 EXE:       modtaboff 0
304 EXE:         nmodtab 0
305 EXE:    extrefsymoff 0
306 EXE:     nextrefsyms 0
307 EXE:  indirectsymoff 8424
308 EXE:   nindirectsyms 4
309 EXE:       extreloff 0
310 EXE:         nextrel 0
311 EXE:       locreloff 0
312 EXE:         nlocrel 0
313 EXE: Load command 7
314 EXE:           cmd LC_LOAD_DYLINKER
315 EXE:       cmdsize 32
316 EXE:          name /usr/lib/dyld (offset 12)
317 EXE: Load command 8
318 EXE:      cmd LC_UUID
319 EXE:  cmdsize 24
320 EXE:     uuid 65C2DD41-79B0-3B34-871B-8CB3446AB762
321 EXE: Load command 9
322 EXE:       cmd LC_VERSION_MIN_MACOSX
323 EXE:   cmdsize 16
324 EXE:   version 10.9
325 EXE:       sdk 10.9
326 EXE: Load command 10
327 EXE:       cmd LC_SOURCE_VERSION
328 EXE:   cmdsize 16
329 EXE:   version 0.0
330 EXE: Load command 11
331 EXE:        cmd LC_MAIN
332 EXE:    cmdsize 24
333 EXE:   entryoff 3888
334 EXE:  stacksize 0
335 EXE: Load command 12
336 EXE:           cmd LC_LOAD_DYLIB
337 EXE:       cmdsize 56
338 EXE:          name /usr/lib/libSystem.B.dylib (offset 24)
339 EXE:       current version 1197.1.1
340 EXE: compatibility version 1.0.0
341 EXE: Load command 13
342 EXE:       cmd LC_FUNCTION_STARTS
343 EXE:   cmdsize 16
344 EXE:   dataoff 8288
345 EXE:  datasize 8
346 EXE: Load command 14
347 EXE:       cmd LC_DATA_IN_CODE
348 EXE:   cmdsize 16
349 EXE:   dataoff 8296
350 EXE:  datasize 0
351 EXE: Load command 15
352 EXE:       cmd LC_DYLIB_CODE_SIGN_DRS
353 EXE:   cmdsize 16
354 EXE:   dataoff 8296
355 EXE:  datasize 64
356
357
358 LOAD: Load command 10
359 LOAD:           cmd LC_LOAD_DYLIB
360 LOAD:       cmdsize 48
361 LOAD:          name /usr/lib/foo1.dylib (offset 24)
362 LOAD:       current version 0.0.0
363 LOAD: compatibility version 0.0.0
364 LOAD: Load command 11
365 LOAD:           cmd LC_LOAD_WEAK_DYLIB
366 LOAD:       cmdsize 48
367 LOAD:          name /usr/lib/foo2.dylib (offset 24)
368 LOAD:       current version 0.0.0
369 LOAD: compatibility version 0.0.0
370 LOAD: Load command 12
371 LOAD:           cmd LC_REEXPORT_DYLIB
372 LOAD:       cmdsize 48
373 LOAD:          name /usr/lib/foo3.dylib (offset 24)
374 LOAD:       current version 0.0.0
375 LOAD: compatibility version 0.0.0
376 LOAD: Load command 13
377 LOAD:           cmd LC_LAZY_LOAD_DYLIB
378 LOAD:       cmdsize 48
379 LOAD:          name /usr/lib/foo4.dylib (offset 24)
380 LOAD:       current version 0.0.0
381 LOAD: compatibility version 0.0.0
382
383 LD_OPT: Load command 4
384 LD_OPT:      cmd LC_LINKER_OPTION
385 LD_OPT:  cmdsize 24
386 LD_OPT:    count 1
387 LD_OPT:   string #1 -lc++
388 LD_OPT: Load command 5
389 LD_OPT:      cmd LC_LINKER_OPTION
390 LD_OPT:  cmdsize 40
391 LD_OPT:    count 2
392 LD_OPT:   string #1 -framework
393 LD_OPT:   string #2 Foundation
394
395 SUB_FRAME: Load command 10
396 SUB_FRAME:           cmd LC_SUB_FRAMEWORK
397 SUB_FRAME:       cmdsize 16
398 SUB_FRAME:      umbrella Bar (offset 12)
399
400 SUB_UMB: Load command 5
401 SUB_UMB:           cmd LC_SUB_UMBRELLA
402 SUB_UMB:       cmdsize 16
403 SUB_UMB:  sub_umbrella Foo (offset 12)
404
405 SUB_LIB: Load command 5
406 SUB_LIB:           cmd LC_SUB_LIBRARY
407 SUB_LIB:       cmdsize 20
408 SUB_LIB:   sub_library libfoo (offset 12)
409
410 SUB_CLI: Load command 10
411 SUB_CLI:           cmd LC_SUB_CLIENT
412 SUB_CLI:       cmdsize 16
413 SUB_CLI:        client bar (offset 12)
414
415 ROUTINE: Load command 6
416 ROUTINE:           cmd LC_ROUTINES_64
417 ROUTINE:       cmdsize 72
418 ROUTINE:  init_address 0x0000000000000f80
419 ROUTINE:   init_module 0
420 ROUTINE:     reserved1 0
421 ROUTINE:     reserved2 0
422 ROUTINE:     reserved3 0
423 ROUTINE:     reserved4 0
424 ROUTINE:     reserved5 0
425 ROUTINE:     reserved6 0
426
427 THREAD: Load command 10
428 THREAD:         cmd LC_UNIXTHREAD
429 THREAD:     cmdsize 184
430 THREAD:      flavor x86_THREAD_STATE64
431 THREAD:       count x86_THREAD_STATE64_COUNT
432 THREAD:    rax  0x0000000000000000 rbx 0x0000000000000000 rcx  0x0000000000000000
433 THREAD:    rdx  0x0000000000000000 rdi 0x0000000000000000 rsi  0x0000000000000000
434 THREAD:    rbp  0x0000000000000000 rsp 0x0000000000000000 r8   0x0000000000000000
435 THREAD:     r9  0x0000000000000000 r10 0x0000000000000000 r11  0x0000000000000000
436 THREAD:    r12  0x0000000000000000 r13 0x0000000000000000 r14  0x0000000000000000
437 THREAD:    r15  0x0000000000000000 rip 0x0000000100000d00
438 THREAD: rflags  0x0000000000000000 cs  0x0000000000000000 fs   0x0000000000000000
439 THREAD:     gs  0x0000000000000000