xref: /llvm-project/llvm/test/ObjectYAML/MachO/chained-fixups.yaml (revision cf15d23e80af0e44ff5893d675294024bdd90eb8)
1--- !mach-o
2FileHeader:
3  magic:           0xFEEDFACF
4  cputype:         0x1000007
5  cpusubtype:      0x3
6  filetype:        0x2
7  ncmds:           15
8  sizeofcmds:      728
9  flags:           0x200085
10  reserved:        0x0
11LoadCommands:
12  - cmd:             LC_SEGMENT_64
13    cmdsize:         72
14    segname:         __PAGEZERO
15    vmaddr:          0
16    vmsize:          4294967296
17    fileoff:         0
18    filesize:        0
19    maxprot:         0
20    initprot:        0
21    nsects:          0
22    flags:           0
23  - cmd:             LC_SEGMENT_64
24    cmdsize:         232
25    segname:         __TEXT
26    vmaddr:          4294967296
27    vmsize:          16384
28    fileoff:         0
29    filesize:        16384
30    maxprot:         5
31    initprot:        5
32    nsects:          2
33    flags:           0
34    Sections:
35      - sectname:        __text
36        segname:         __TEXT
37        addr:            0x100003FB0
38        size:            8
39        offset:          0x3FB0
40        align:           4
41        reloff:          0x0
42        nreloc:          0
43        flags:           0x80000400
44        reserved1:       0x0
45        reserved2:       0x0
46        reserved3:       0x0
47        content:         C30F1F0000000000
48      - sectname:        __unwind_info
49        segname:         __TEXT
50        addr:            0x100003FB8
51        size:            72
52        offset:          0x3FB8
53        align:           2
54        reloff:          0x0
55        nreloc:          0
56        flags:           0x0
57        reserved1:       0x0
58        reserved2:       0x0
59        reserved3:       0x0
60        content:         010000001C000000000000001C000000000000001C00000002000000B03F00003400000034000000B93F00000000000034000000030000000C000100100001000000000000000000
61  - cmd:             LC_SEGMENT_64
62    cmdsize:         72
63    segname:         __LINKEDIT
64    vmaddr:          4294983680
65    vmsize:          16384
66    fileoff:         16384
67    filesize:        176
68    maxprot:         1
69    initprot:        1
70    nsects:          0
71    flags:           0
72  - cmd:             LC_DYLD_CHAINED_FIXUPS
73    cmdsize:         16
74    dataoff:         16384
75    datasize:        56
76  - cmd:             LC_DYLD_EXPORTS_TRIE
77    cmdsize:         16
78    dataoff:         16440
79    datasize:        48
80  - cmd:             LC_SYMTAB
81    cmdsize:         24
82    symoff:          16504
83    nsyms:           2
84    stroff:          16536
85    strsize:         32
86  - cmd:             LC_DYSYMTAB
87    cmdsize:         80
88    ilocalsym:       0
89    nlocalsym:       0
90    iextdefsym:      0
91    nextdefsym:      2
92    iundefsym:       2
93    nundefsym:       0
94    tocoff:          0
95    ntoc:            0
96    modtaboff:       0
97    nmodtab:         0
98    extrefsymoff:    0
99    nextrefsyms:     0
100    indirectsymoff:  0
101    nindirectsyms:   0
102    extreloff:       0
103    nextrel:         0
104    locreloff:       0
105    nlocrel:         0
106  - cmd:             LC_LOAD_DYLINKER
107    cmdsize:         32
108    name:            12
109    Content:         '/usr/lib/dyld'
110    ZeroPadBytes:    7
111  - cmd:             LC_UUID
112    cmdsize:         24
113    uuid:            362D6303-E0AC-3074-B083-CF48B87DB35D
114  - cmd:             LC_BUILD_VERSION
115    cmdsize:         32
116    platform:        1
117    minos:           786432
118    sdk:             787200
119    ntools:          1
120    Tools:
121      - tool:            3
122        version:         50069504
123  - cmd:             LC_SOURCE_VERSION
124    cmdsize:         16
125    version:         0
126  - cmd:             LC_MAIN
127    cmdsize:         24
128    entryoff:        16304
129    stacksize:       0
130  - cmd:             LC_LOAD_DYLIB
131    cmdsize:         56
132    dylib:
133      name:            24
134      timestamp:       2
135      current_version: 85943299
136      compatibility_version: 65536
137    Content:         '/usr/lib/libSystem.B.dylib'
138    ZeroPadBytes:    6
139  - cmd:             LC_FUNCTION_STARTS
140    cmdsize:         16
141    dataoff:         16488
142    datasize:        8
143  - cmd:             LC_DATA_IN_CODE
144    cmdsize:         16
145    dataoff:         0
146    datasize:        0
147LinkEditData:
148  ExportTrie:
149      TerminalSize:    0
150      NodeOffset:      0
151      Name:            ''
152      Flags:           0x0
153      Address:         0x0
154      Other:           0x0
155      ImportName:      ''
156      Children:
157        - TerminalSize:    0
158          NodeOffset:      5
159          Name:            _
160          Flags:           0x0
161          Address:         0x0
162          Other:           0x0
163          ImportName:      ''
164          Children:
165            - TerminalSize:    2
166              NodeOffset:      33
167              Name:            _mh_execute_header
168              Flags:           0x0
169              Address:         0x0
170              Other:           0x0
171              ImportName:      ''
172            - TerminalSize:    3
173              NodeOffset:      37
174              Name:            main
175              Flags:           0x0
176              Address:         0x3F98
177              Other:           0x0
178              ImportName:      ''
179  NameList:
180    - n_strx:          2
181      n_type:          0xF
182      n_sect:          1
183      n_desc:          16
184      n_value:         4294967296
185    - n_strx:          22
186      n_type:          0xF
187      n_sect:          1
188      n_desc:          0
189      n_value:         4294983600
190  StringTable:
191    - ' '
192    - __mh_execute_header
193    - _main
194    - ''
195    - ''
196    - ''
197    - ''
198  FunctionStarts:  [ 0x3FB0 ]
199  ChainedFixups:   [ 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x30, 0x0,
200                     0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
201                     0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
202                     0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
203                     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
204                     0x0, 0x0, 0x0, 0x0, 0x0, 0x0 ]
205...
206
207# RUN: yaml2obj %s | obj2yaml | FileCheck %s
208
209# CHECK:      cmd:             LC_DYLD_CHAINED_FIXUPS
210# CHECK-NEXT: cmdsize:         16
211# CHECK-NEXT: dataoff:         [[#CHAINED_FIXUPS_OFF:]]
212# CHECK-NEXT: datasize:        [[#CHAINED_FIXUPS_SIZE: 56]]
213
214# CHECK:      cmd:             LC_DYLD_EXPORTS_TRIE
215# CHECK-NEXT: cmdsize:         16
216# CHECK-NEXT: dataoff:         [[#EXPORTS_TRIE_OFF: CHAINED_FIXUPS_OFF + CHAINED_FIXUPS_SIZE]]
217# CHECK-NEXT: datasize:        48
218
219## TODO: Need D134571 to check for export trie in LC_DYLD_EXPORTS_TRIE.
220
221# CHECK: ChainedFixups:
222# CHECK-SAME: [ 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x30, 0x0,
223# CHECK-NEXT:   0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
224# CHECK-NEXT:   0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
225# CHECK-NEXT:   0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
226# CHECK-NEXT:   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
227# CHECK-NEXT:   0x0, 0x0, 0x0, 0x0, 0x0, 0x0 ]
228