Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / ObjectYAML / MachO / sections.yaml
blob052c66fd0ccb0715929b1cd2b5242c8f8e08c458
1 ## This file contains test cases for generating sections in Mach-O object files.
3 ## a) Test that yaml2obj emits sections and obj2yaml converts them back.
5 # RUN: yaml2obj --docnum=1 %s | obj2yaml | FileCheck %s
7 --- !mach-o
8 FileHeader:      
9   magic:           0xFEEDFACF
10   cputype:         0x01000007
11   cpusubtype:      0x80000003
12   filetype:        0x00000002
13   ncmds:           16
14   sizeofcmds:      1408
15   flags:           0x00218085
16   reserved:        0x00000000
17 LoadCommands:    
18   - cmd:             LC_SEGMENT_64
19     cmdsize:         72
20     segname:         __PAGEZERO
21     vmaddr:          0
22     vmsize:          4294967296
23     fileoff:         0
24     filesize:        0
25     maxprot:         0
26     initprot:        0
27     nsects:          0
28     flags:           0
29   - cmd:             LC_SEGMENT_64
30     cmdsize:         552
31     segname:         __TEXT
32     vmaddr:          4294967296
33     vmsize:          8192
34     fileoff:         0
35     filesize:        8192
36     maxprot:         7
37     initprot:        5
38     nsects:          6
39     flags:           0
40     Sections:        
41       - sectname:        __text
42         segname:         __TEXT
43         addr:            0x0000000100001160
44         size:            3099
45         offset:          0x00001160
46         align:           4
47         reloff:          0x00000000
48         nreloc:          0
49         flags:           0x80000400
50         reserved1:       0x00000000
51         reserved2:       0x00000000
52         reserved3:       0x00000000
53       - sectname:        __stubs
54         segname:         __TEXT
55         addr:            0x0000000100001D7C
56         size:            90
57         offset:          0x00001D7C
58         align:           1
59         reloff:          0x00000000
60         nreloc:          0
61         flags:           0x80000408
62         reserved1:       0x00000000
63         reserved2:       0x00000006
64         reserved3:       0x00000000
65       - sectname:        __stub_helper
66         segname:         __TEXT
67         addr:            0x0000000100001DD8
68         size:            166
69         offset:          0x00001DD8
70         align:           2
71         reloff:          0x00000000
72         nreloc:          0
73         flags:           0x80000400
74         reserved1:       0x00000000
75         reserved2:       0x00000000
76         reserved3:       0x00000000
77       - sectname:        __gcc_except_tab
78         segname:         __TEXT
79         addr:            0x0000000100001E80
80         size:            240
81         offset:          0x00001E80
82         align:           2
83         reloff:          0x00000000
84         nreloc:          0
85         flags:           0x00000000
86         reserved1:       0x00000000
87         reserved2:       0x00000000
88         reserved3:       0x00000000
89       - sectname:        __cstring
90         segname:         __TEXT
91         addr:            0x0000000100001F70
92         size:            15
93         offset:          0x00001F70
94         align:           0
95         reloff:          0x00000000
96         nreloc:          0
97         flags:           0x00000002
98         reserved1:       0x00000000
99         reserved2:       0x00000000
100         reserved3:       0x00000000
101       - sectname:        __unwind_info
102         segname:         __TEXT
103         addr:            0x0000000100001F80
104         size:            120
105         offset:          0x00001F80
106         align:           2
107         reloff:          0x00000000
108         nreloc:          0
109         flags:           0x00000000
110         reserved1:       0x00000000
111         reserved2:       0x00000000
112         reserved3:       0x00000000
113   - cmd:             LC_SEGMENT_64
114     cmdsize:         312
115     segname:         __DATA
116     vmaddr:          4294975488
117     vmsize:          4096
118     fileoff:         8192
119     filesize:        4096
120     maxprot:         7
121     initprot:        3
122     nsects:          3
123     flags:           0
124     Sections:        
125       - sectname:        __got
126         segname:         __DATA
127         addr:            0x0000000100002000
128         size:            24
129         offset:          0x00002000
130         align:           3
131         reloff:          0x00000000
132         nreloc:          0
133         flags:           0x00000006
134         reserved1:       0x0000000F
135         reserved2:       0x00000000
136         reserved3:       0x00000000
137       - sectname:        __nl_symbol_ptr
138         segname:         __DATA
139         addr:            0x0000000100002018
140         size:            16
141         offset:          0x00002018
142         align:           3
143         reloff:          0x00000000
144         nreloc:          0
145         flags:           0x00000006
146         reserved1:       0x00000012
147         reserved2:       0x00000000
148         reserved3:       0x00000000
149       - sectname:        __la_symbol_ptr
150         segname:         __DATA
151         addr:            0x0000000100002028
152         size:            120
153         offset:          0x00002028
154         align:           3
155         reloff:          0x00000000
156         nreloc:          0
157         flags:           0x00000007
158         reserved1:       0x00000014
159         reserved2:       0x00000000
160         reserved3:       0x00000000
161   - cmd:             LC_SEGMENT_64
162     cmdsize:         72
163     segname:         __LINKEDIT
164     vmaddr:          4294979584
165     vmsize:          4096
166     fileoff:         12288
167     filesize:        2508
168     maxprot:         7
169     initprot:        1
170     nsects:          0
171     flags:           0
172   - cmd:             LC_DYLD_INFO_ONLY
173     cmdsize:         48
174     rebase_off:      12288
175     rebase_size:     8
176     bind_off:        12296
177     bind_size:       96
178     weak_bind_off:   0
179     weak_bind_size:  0
180     lazy_bind_off:   12392
181     lazy_bind_size:  624
182     export_off:      13016
183     export_size:     48
184   - cmd:             LC_SYMTAB
185     cmdsize:         24
186     symoff:          13080
187     nsyms:           30
188     stroff:          13700
189     strsize:         1096
190   - cmd:             LC_DYSYMTAB
191     cmdsize:         80
192     ilocalsym:       0
193     nlocalsym:       9
194     iextdefsym:      9
195     nextdefsym:      2
196     iundefsym:       11
197     nundefsym:       19
198     tocoff:          0
199     ntoc:            0
200     modtaboff:       0
201     nmodtab:         0
202     extrefsymoff:    0
203     nextrefsyms:     0
204     indirectsymoff:  13560
205     nindirectsyms:   35
206     extreloff:       0
207     nextrel:         0
208     locreloff:       0
209     nlocrel:         0
210   - cmd:             LC_LOAD_DYLINKER
211     cmdsize:         32
212     name:            12
213   - cmd:             LC_UUID
214     cmdsize:         24
215     uuid:            461A1B28-822F-3F38-B670-645419E636F5
216   - cmd:             LC_VERSION_MIN_MACOSX
217     cmdsize:         16
218     version:         658176
219     sdk:             658176
220   - cmd:             LC_SOURCE_VERSION
221     cmdsize:         16
222     version:         0
223   - cmd:             LC_MAIN
224     cmdsize:         24
225     entryoff:        4448
226     stacksize:       0
227   - cmd:             LC_LOAD_DYLIB
228     cmdsize:         48
229     dylib:           
230       name:            24
231       timestamp:       2
232       current_version: 7864576
233       compatibility_version: 65536
234   - cmd:             LC_LOAD_DYLIB
235     cmdsize:         56
236     dylib:           
237       name:            24
238       timestamp:       2
239       current_version: 80349697
240       compatibility_version: 65536
241   - cmd:             LC_FUNCTION_STARTS
242     cmdsize:         16
243     dataoff:         13064
244     datasize:        16
245   - cmd:             LC_DATA_IN_CODE
246     cmdsize:         16
247     dataoff:         13080
248     datasize:        0
252 #CHECK:   - cmd:             LC_SEGMENT_64
253 #CHECK:     segname:         __PAGEZERO
254 #CHECK:   - cmd:             LC_SEGMENT_64
255 #CHECK:     segname:         __TEXT
256 #CHECK:     Sections:        
257 #CHECK:       - sectname:        __text
258 #CHECK:         segname:         __TEXT
259 #CHECK:         addr:            0x100001160
260 #CHECK:         size:            3099
261 #CHECK:         offset:          0x1160
262 #CHECK:         align:           4
263 #CHECK:         reloff:          0x0
264 #CHECK:         nreloc:          0
265 #CHECK:         flags:           0x80000400
266 #CHECK:         reserved1:       0x0
267 #CHECK:         reserved2:       0x0
268 #CHECK:         reserved3:       0x0
269 #CHECK:       - sectname:        __stubs
270 #CHECK:         segname:         __TEXT
271 #CHECK:       - sectname:        __stub_helper
272 #CHECK:         segname:         __TEXT
273 #CHECK:       - sectname:        __gcc_except_tab
274 #CHECK:         segname:         __TEXT
275 #CHECK:       - sectname:        __cstring
276 #CHECK:         segname:         __TEXT
277 #CHECK:       - sectname:        __unwind_info
278 #CHECK:         segname:         __TEXT
279 #CHECK:   - cmd:             LC_SEGMENT_64
280 #CHECK:     segname:         __DATA
281 #CHECK:     Sections:        
282 #CHECK:       - sectname:        __got
283 #CHECK:         segname:         __DATA
284 #CHECK:       - sectname:        __nl_symbol_ptr
285 #CHECK:         segname:         __DATA
286 #CHECK:       - sectname:        __la_symbol_ptr
287 #CHECK:         segname:         __DATA
289 ## b) Test that yaml2obj emits an error message if we specify an offset that
290 ## makes the current section and the previous one overlap.
292 # RUN: not yaml2obj --docnum=2 %s -o %t2.macho 2>&1 | FileCheck %s --check-prefix=OVERLAP
294 # OVERLAP: yaml2obj: error: wrote too much data somewhere, section offsets in section __sec2 for segment __SEC don't line up: [cursor=0x121], [fileStart=0x0], [sectionOffset=0x1]
296 --- !mach-o
297 FileHeader:
298   magic:      0xFEEDFACF
299   cputype:    0x01000007
300   cpusubtype: 0x80000003
301   filetype:   0x00000002
302   ncmds:      1
303   sizeofcmds: 1024
304   flags:      0x00000000
305   reserved:   0x00000000
306 LoadCommands:
307   - cmd:      LC_SEGMENT_64
308     cmdsize:  0xff
309     segname:  __SEC
310     vmaddr:   0
311     vmsize:   0
312     fileoff:  0
313     filesize: 0
314     maxprot:  0
315     initprot: 0
316     nsects:   2
317     flags:    0
318     Sections:
319       - sectname:  __sec1
320         segname:   __SEC
321         addr:      0x0000000000000000
322         size:      2
323         offset:    0x00000000
324         align:     0
325         reloff:    0x00000000
326         nreloc:    0
327         flags:     0x00000000
328         reserved1: 0x00000000
329         reserved2: 0x00000000
330         reserved3: 0x00000000
331       - sectname:  __sec2
332         segname:   __SEC
333         addr:      0x0000000000000000
334         size:      2
335         offset:    0x00000001 ## Specify an offset that makes __sec1 and __sec2 overlap.
336         align:     1
337         reloff:    0x00000000
338         nreloc:    0
339         flags:     0x00000000
340         reserved1: 0x00000000
341         reserved2: 0x00000000
342         reserved3: 0x00000000