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