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: 2508 56 maxprot: 7 57 initprot: 1 58 nsects: 0 59 flags: 0 60 - cmd: LC_DYLD_INFO_ONLY 61 cmdsize: 48 62 rebase_off: 12288 63 rebase_size: 8 64 bind_off: 12296 65 bind_size: 96 66 weak_bind_off: 0 67 weak_bind_size: 0 68 lazy_bind_off: 12392 69 lazy_bind_size: 624 70 export_off: 13016 71 export_size: 48 72 - cmd: LC_SYMTAB 73 cmdsize: 24 74 symoff: 13080 75 nsyms: 30 76 stroff: 13700 77 strsize: 1096 78 - cmd: LC_DYSYMTAB 79 cmdsize: 80 80 ilocalsym: 0 81 nlocalsym: 9 82 iextdefsym: 9 83 nextdefsym: 2 84 iundefsym: 11 85 nundefsym: 19 86 tocoff: 0 87 ntoc: 0 88 modtaboff: 0 89 nmodtab: 0 90 extrefsymoff: 0 91 nextrefsyms: 0 92 indirectsymoff: 13560 93 nindirectsyms: 35 94 extreloff: 0 95 nextrel: 0 96 locreloff: 0 97 nlocrel: 0 98 - cmd: LC_LOAD_DYLINKER 99 cmdsize: 32 100 name: 12 101 Content: /usr/lib/dyld 102 ZeroPadBytes: 7 103 - cmd: LC_UUID 104 cmdsize: 24 105 uuid: 461A1B28-822F-3F38-B670-645419E636F5 106 - cmd: LC_VERSION_MIN_MACOSX 107 cmdsize: 16 108 version: 658176 109 sdk: 658176 110 - cmd: LC_SOURCE_VERSION 111 cmdsize: 16 112 version: 0 113 - cmd: LC_MAIN 114 cmdsize: 24 115 entryoff: 4448 116 stacksize: 0 117 - cmd: LC_LOAD_DYLIB 118 cmdsize: 48 119 dylib: 120 name: 24 121 timestamp: 2 122 current_version: 7864576 123 compatibility_version: 65536 124 Content: '/usr/lib/libc++.1.dylib' 125 ZeroPadBytes: 1 126 - cmd: LC_LOAD_DYLIB 127 cmdsize: 56 128 dylib: 129 name: 24 130 timestamp: 2 131 current_version: 80349697 132 compatibility_version: 65536 133 Content: /usr/lib/libSystem.B.dylib 134 ZeroPadBytes: 6 135 - cmd: LC_FUNCTION_STARTS 136 cmdsize: 16 137 dataoff: 13064 138 datasize: 16 139 - cmd: LC_DATA_IN_CODE 140 cmdsize: 16 141 dataoff: 13080 142 datasize: 0 143LinkEditData: 144 ExportTrie: 145 TerminalSize: 0 146 NodeOffset: 0 147 Name: '' 148 Flags: 0x0000000000000000 149 Address: 0x0000000000000000 150 Other: 0x0000000000000000 151 ImportName: '' 152 Children: 153 - TerminalSize: 0 154 NodeOffset: 5 155 Name: _ 156 Flags: 0x0000000000000000 157 Address: 0x0000000000000000 158 Other: 0x0000000000000000 159 ImportName: '' 160 Children: 161 - TerminalSize: 2 162 NodeOffset: 33 163 Name: _mh_execute_header 164 Flags: 0x0000000000000000 165 Address: 0x0000000000000000 166 Other: 0x0000000000000000 167 ImportName: '' 168 - TerminalSize: 3 169 NodeOffset: 37 170 Name: main 171 Flags: 0x0000000000000000 172 Address: 0x0000000000003FA0 173 Other: 0x0000000000000000 174 ImportName: '' 175... 176 177#CHECK: ExportTrie: 178#CHECK: TerminalSize: 0 179#CHECK: NodeOffset: 0 180#CHECK: Name: '' 181#CHECK: Children: 182#CHECK: - TerminalSize: 0 183#CHECK: NodeOffset: 5 184#CHECK: Name: _ 185#CHECK: Children: 186#CHECK: - TerminalSize: 2 187#CHECK: NodeOffset: 33 188#CHECK: Name: _mh_execute_header 189#CHECK: Address: 0x0 190#CHECK: - TerminalSize: 3 191#CHECK: NodeOffset: 37 192#CHECK: Name: main 193#CHECK: Address: 0x3FA0 194 195# OBJDUMP-VERIFY: Exports trie: 196# OBJDUMP-VERIFY: 0x100000000 __mh_execute_header 197# OBJDUMP-VERIFY: 0x100003FA0 _main 198