xref: /llvm-project/llvm/test/ObjectYAML/MachO/export_trie_lc_dyld_exports_trie.yaml (revision 42ad9bf95fd5cb30e2ab3e017b6718ac6efea1be)
1# RUN: yaml2obj %s -o=%t
2# RUN: obj2yaml %t | FileCheck %s
3# RUN: llvm-objdump --macho --exports-trie %t | FileCheck %s --check-prefix=OBJDUMP-VERIFY
4
5--- !mach-o
6FileHeader:
7  magic:           0xFEEDFACF
8  cputype:         0x01000007
9  cpusubtype:      0x80000003
10  filetype:        0x00000002
11  ncmds:           16
12  sizeofcmds:      1408
13  flags:           0x00218085
14  reserved:        0x00000000
15LoadCommands:
16  - cmd:             LC_SEGMENT_64
17    cmdsize:         72
18    segname:         __PAGEZERO
19    vmaddr:          0
20    vmsize:          4294967296
21    fileoff:         0
22    filesize:        0
23    maxprot:         0
24    initprot:        0
25    nsects:          0
26    flags:           0
27  - cmd:             LC_SEGMENT_64
28    cmdsize:         552
29    segname:         __TEXT
30    vmaddr:          4294967296
31    vmsize:          8192
32    fileoff:         0
33    filesize:        8192
34    maxprot:         7
35    initprot:        5
36    nsects:          6
37    flags:           0
38  - cmd:             LC_SEGMENT_64
39    cmdsize:         312
40    segname:         __DATA
41    vmaddr:          4294975488
42    vmsize:          4096
43    fileoff:         8192
44    filesize:        4096
45    maxprot:         7
46    initprot:        3
47    nsects:          3
48    flags:           0
49  - cmd:             LC_SEGMENT_64
50    cmdsize:         72
51    segname:         __LINKEDIT
52    vmaddr:          4294979584
53    vmsize:          4096
54    fileoff:         12288
55    filesize:        1884
56    maxprot:         7
57    initprot:        1
58    nsects:          0
59    flags:           0
60  - cmd:             LC_DYLD_CHAINED_FIXUPS
61    cmdsize:         16
62    dataoff:         12288
63    datasize:        104
64  - cmd:             LC_DYLD_EXPORTS_TRIE
65    cmdsize:         16
66    dataoff:         12392
67    datasize:        48
68  - cmd:             LC_SYMTAB
69    cmdsize:         24
70    symoff:          12456
71    nsyms:           30
72    stroff:          13076
73    strsize:         1096
74  - cmd:             LC_DYSYMTAB
75    cmdsize:         80
76    ilocalsym:       0
77    nlocalsym:       9
78    iextdefsym:      9
79    nextdefsym:      2
80    iundefsym:       11
81    nundefsym:       19
82    tocoff:          0
83    ntoc:            0
84    modtaboff:       0
85    nmodtab:         0
86    extrefsymoff:    0
87    nextrefsyms:     0
88    indirectsymoff:  12936
89    nindirectsyms:   35
90    extreloff:       0
91    nextrel:         0
92    locreloff:       0
93    nlocrel:         0
94  - cmd:             LC_LOAD_DYLINKER
95    cmdsize:         32
96    name:            12
97    Content:         /usr/lib/dyld
98    ZeroPadBytes:    7
99  - cmd:             LC_UUID
100    cmdsize:         24
101    uuid:            461A1B28-822F-3F38-B670-645419E636F5
102  - cmd:             LC_VERSION_MIN_MACOSX
103    cmdsize:         16
104    version:         658176
105    sdk:             658176
106  - cmd:             LC_SOURCE_VERSION
107    cmdsize:         16
108    version:         0
109  - cmd:             LC_MAIN
110    cmdsize:         24
111    entryoff:        4448
112    stacksize:       0
113  - cmd:             LC_LOAD_DYLIB
114    cmdsize:         48
115    dylib:
116      name:            24
117      timestamp:       2
118      current_version: 7864576
119      compatibility_version: 65536
120    Content:         '/usr/lib/libc++.1.dylib'
121    ZeroPadBytes:    1
122  - cmd:             LC_LOAD_DYLIB
123    cmdsize:         56
124    dylib:
125      name:            24
126      timestamp:       2
127      current_version: 80349697
128      compatibility_version: 65536
129    Content:         /usr/lib/libSystem.B.dylib
130    ZeroPadBytes:    6
131  - cmd:             LC_FUNCTION_STARTS
132    cmdsize:         16
133    dataoff:         12440
134    datasize:        16
135  - cmd:             LC_DATA_IN_CODE
136    cmdsize:         16
137    dataoff:         12456
138    datasize:        0
139LinkEditData:
140  ExportTrie:
141    TerminalSize:    0
142    NodeOffset:      0
143    Name:            ''
144    Flags:           0x0000000000000000
145    Address:         0x0000000000000000
146    Other:           0x0000000000000000
147    ImportName:      ''
148    Children:
149      - TerminalSize:    0
150        NodeOffset:      5
151        Name:            _
152        Flags:           0x0000000000000000
153        Address:         0x0000000000000000
154        Other:           0x0000000000000000
155        ImportName:      ''
156        Children:
157          - TerminalSize:    2
158            NodeOffset:      33
159            Name:            _mh_execute_header
160            Flags:           0x0000000000000000
161            Address:         0x0000000000000000
162            Other:           0x0000000000000000
163            ImportName:      ''
164          - TerminalSize:    3
165            NodeOffset:      37
166            Name:            main
167            Flags:           0x0000000000000000
168            Address:         0x0000000000003FA0
169            Other:           0x0000000000000000
170            ImportName:      ''
171  ChainedFixups:   [ 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x50, 0x0,
172                     0x0, 0x0, 0x58, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
173                     0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
174                     0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
175                     0x0, 0x0, 0x0, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0,
176                     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x18, 0x0, 0x0, 0x0,
177                     0x0, 0x10, 0x6, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
178                     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
179                     0x1, 0x2, 0x0, 0x0, 0xFD, 0xC, 0x0, 0x0, 0x0, 0x5F,
180                     0x66, 0x6F, 0x6F, 0x0, 0x5F, 0x77, 0x65, 0x61, 0x6B,
181                     0x5F, 0x66, 0x6F, 0x6F, 0x0 ]
182...
183
184#CHECK: ExportTrie:
185#CHECK:     TerminalSize:    0
186#CHECK:     NodeOffset:      0
187#CHECK:     Name:            ''
188#CHECK:     Children:
189#CHECK:       - TerminalSize:    0
190#CHECK:         NodeOffset:      5
191#CHECK:         Name:            _
192#CHECK:         Children:
193#CHECK:           - TerminalSize:    2
194#CHECK:             NodeOffset:      33
195#CHECK:             Name:            _mh_execute_header
196#CHECK:             Address:         0x0
197#CHECK:           - TerminalSize:    3
198#CHECK:             NodeOffset:      37
199#CHECK:             Name:            main
200#CHECK:             Address:         0x3FA0
201
202# OBJDUMP-VERIFY: Exports trie:
203# OBJDUMP-VERIFY: 0x100000000  __mh_execute_header
204# OBJDUMP-VERIFY: 0x100003FA0  _main
205