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