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