| # RUN: yaml2obj %s -o=%t |
| # RUN: obj2yaml %t | FileCheck %s |
| # RUN: llvm-objdump --macho --exports-trie %t | FileCheck %s --check-prefix=OBJDUMP-VERIFY |
| |
| --- !mach-o |
| FileHeader: |
| magic: 0xFEEDFACF |
| cputype: 0x01000007 |
| cpusubtype: 0x80000003 |
| filetype: 0x00000002 |
| ncmds: 16 |
| sizeofcmds: 1408 |
| flags: 0x00218085 |
| reserved: 0x00000000 |
| LoadCommands: |
| - cmd: LC_SEGMENT_64 |
| cmdsize: 72 |
| segname: __PAGEZERO |
| vmaddr: 0 |
| vmsize: 4294967296 |
| fileoff: 0 |
| filesize: 0 |
| maxprot: 0 |
| initprot: 0 |
| nsects: 0 |
| flags: 0 |
| - cmd: LC_SEGMENT_64 |
| cmdsize: 552 |
| segname: __TEXT |
| vmaddr: 4294967296 |
| vmsize: 8192 |
| fileoff: 0 |
| filesize: 8192 |
| maxprot: 7 |
| initprot: 5 |
| nsects: 6 |
| flags: 0 |
| - cmd: LC_SEGMENT_64 |
| cmdsize: 312 |
| segname: __DATA |
| vmaddr: 4294975488 |
| vmsize: 4096 |
| fileoff: 8192 |
| filesize: 4096 |
| maxprot: 7 |
| initprot: 3 |
| nsects: 3 |
| flags: 0 |
| - cmd: LC_SEGMENT_64 |
| cmdsize: 72 |
| segname: __LINKEDIT |
| vmaddr: 4294979584 |
| vmsize: 4096 |
| fileoff: 12288 |
| filesize: 1884 |
| maxprot: 7 |
| initprot: 1 |
| nsects: 0 |
| flags: 0 |
| - cmd: LC_DYLD_CHAINED_FIXUPS |
| cmdsize: 16 |
| dataoff: 12288 |
| datasize: 104 |
| - cmd: LC_DYLD_EXPORTS_TRIE |
| cmdsize: 16 |
| dataoff: 12392 |
| datasize: 48 |
| - cmd: LC_SYMTAB |
| cmdsize: 24 |
| symoff: 12456 |
| nsyms: 30 |
| stroff: 13076 |
| strsize: 1096 |
| - cmd: LC_DYSYMTAB |
| cmdsize: 80 |
| ilocalsym: 0 |
| nlocalsym: 9 |
| iextdefsym: 9 |
| nextdefsym: 2 |
| iundefsym: 11 |
| nundefsym: 19 |
| tocoff: 0 |
| ntoc: 0 |
| modtaboff: 0 |
| nmodtab: 0 |
| extrefsymoff: 0 |
| nextrefsyms: 0 |
| indirectsymoff: 12936 |
| nindirectsyms: 35 |
| extreloff: 0 |
| nextrel: 0 |
| locreloff: 0 |
| nlocrel: 0 |
| - cmd: LC_LOAD_DYLINKER |
| cmdsize: 32 |
| name: 12 |
| Content: /usr/lib/dyld |
| ZeroPadBytes: 7 |
| - cmd: LC_UUID |
| cmdsize: 24 |
| uuid: 461A1B28-822F-3F38-B670-645419E636F5 |
| - cmd: LC_VERSION_MIN_MACOSX |
| cmdsize: 16 |
| version: 658176 |
| sdk: 658176 |
| - cmd: LC_SOURCE_VERSION |
| cmdsize: 16 |
| version: 0 |
| - cmd: LC_MAIN |
| cmdsize: 24 |
| entryoff: 4448 |
| stacksize: 0 |
| - cmd: LC_LOAD_DYLIB |
| cmdsize: 48 |
| dylib: |
| name: 24 |
| timestamp: 2 |
| current_version: 7864576 |
| compatibility_version: 65536 |
| Content: '/usr/lib/libc++.1.dylib' |
| ZeroPadBytes: 1 |
| - cmd: LC_LOAD_DYLIB |
| cmdsize: 56 |
| dylib: |
| name: 24 |
| timestamp: 2 |
| current_version: 80349697 |
| compatibility_version: 65536 |
| Content: /usr/lib/libSystem.B.dylib |
| ZeroPadBytes: 6 |
| - cmd: LC_FUNCTION_STARTS |
| cmdsize: 16 |
| dataoff: 12440 |
| datasize: 16 |
| - cmd: LC_DATA_IN_CODE |
| cmdsize: 16 |
| dataoff: 12456 |
| datasize: 0 |
| LinkEditData: |
| ExportTrie: |
| TerminalSize: 0 |
| NodeOffset: 0 |
| Name: '' |
| Flags: 0x0000000000000000 |
| Address: 0x0000000000000000 |
| Other: 0x0000000000000000 |
| ImportName: '' |
| Children: |
| - TerminalSize: 0 |
| NodeOffset: 5 |
| Name: _ |
| Flags: 0x0000000000000000 |
| Address: 0x0000000000000000 |
| Other: 0x0000000000000000 |
| ImportName: '' |
| Children: |
| - TerminalSize: 2 |
| NodeOffset: 33 |
| Name: _mh_execute_header |
| Flags: 0x0000000000000000 |
| Address: 0x0000000000000000 |
| Other: 0x0000000000000000 |
| ImportName: '' |
| - TerminalSize: 3 |
| NodeOffset: 37 |
| Name: main |
| Flags: 0x0000000000000000 |
| Address: 0x0000000000003FA0 |
| Other: 0x0000000000000000 |
| ImportName: '' |
| ChainedFixups: [ 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x50, 0x0, |
| 0x0, 0x0, 0x58, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, |
| 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, |
| 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, |
| 0x0, 0x0, 0x0, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, |
| 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x18, 0x0, 0x0, 0x0, |
| 0x0, 0x10, 0x6, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, |
| 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, |
| 0x1, 0x2, 0x0, 0x0, 0xFD, 0xC, 0x0, 0x0, 0x0, 0x5F, |
| 0x66, 0x6F, 0x6F, 0x0, 0x5F, 0x77, 0x65, 0x61, 0x6B, |
| 0x5F, 0x66, 0x6F, 0x6F, 0x0 ] |
| ... |
| |
| #CHECK: ExportTrie: |
| #CHECK: TerminalSize: 0 |
| #CHECK: NodeOffset: 0 |
| #CHECK: Name: '' |
| #CHECK: Children: |
| #CHECK: - TerminalSize: 0 |
| #CHECK: NodeOffset: 5 |
| #CHECK: Name: _ |
| #CHECK: Children: |
| #CHECK: - TerminalSize: 2 |
| #CHECK: NodeOffset: 33 |
| #CHECK: Name: _mh_execute_header |
| #CHECK: Address: 0x0 |
| #CHECK: - TerminalSize: 3 |
| #CHECK: NodeOffset: 37 |
| #CHECK: Name: main |
| #CHECK: Address: 0x3FA0 |
| |
| # OBJDUMP-VERIFY: Exports trie: |
| # OBJDUMP-VERIFY: 0x100000000 __mh_execute_header |
| # OBJDUMP-VERIFY: 0x100003FA0 _main |