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