| # RUN: yaml2obj %s -o %t |
| # RUN: llvm-objdump --macho --reloc %t | FileCheck %s --check-prefix=OBJDUMP-VERIFY |
| |
| # OBJDUMP-VERIFY: Relocation information (__TEXT,__text) 4 entries |
| # OBJDUMP-VERIFY-NEXT: address pcrel length extern type scattered symbolnum/value |
| # OBJDUMP-VERIFY-NEXT: 00000018 False long True PAGOF12 False _w |
| # OBJDUMP-VERIFY-NEXT: 00000014 True long True PAGE21 False _w |
| # OBJDUMP-VERIFY-NEXT: 0000000c False long True PAGOF12 False _z |
| # OBJDUMP-VERIFY-NEXT: 00000008 True long True PAGE21 False _z |
| # OBJDUMP-VERIFY-NEXT: Relocation information (__TEXT,__StaticInit) 7 entries |
| # OBJDUMP-VERIFY-NEXT: address pcrel length extern type scattered symbolnum/value |
| # OBJDUMP-VERIFY-NEXT: 0000002c True long True BR26 False ___cxx_global_var_init |
| # OBJDUMP-VERIFY-NEXT: 00000018 False long True PAGOF12 False _w |
| # OBJDUMP-VERIFY-NEXT: 00000014 True long True PAGE21 False _w |
| # OBJDUMP-VERIFY-NEXT: 0000000c False long True PAGOF12 False _y |
| # OBJDUMP-VERIFY-NEXT: 00000008 True long True PAGE21 False _y |
| # OBJDUMP-VERIFY-NEXT: 00000004 False long True PAGOF12 False _x |
| # OBJDUMP-VERIFY-NEXT: 00000000 True long True PAGE21 False _x |
| # OBJDUMP-VERIFY-NEXT: Relocation information (__DATA,__data) 1 entries |
| # OBJDUMP-VERIFY-NEXT: address pcrel length extern type scattered symbolnum/value |
| # OBJDUMP-VERIFY-NEXT: 00000008 False ?( 3) True UNSIGND False _x |
| # OBJDUMP-VERIFY-NEXT: Relocation information (__DATA,__mod_init_func) 1 entries |
| # OBJDUMP-VERIFY-NEXT: address pcrel length extern type scattered symbolnum/value |
| # OBJDUMP-VERIFY-NEXT: 00000000 False ?( 3) True UNSIGND False __GLOBAL__sub_I_main.cpp |
| # OBJDUMP-VERIFY-NEXT: Relocation information (__LD,__compact_unwind) 3 entries |
| # OBJDUMP-VERIFY-NEXT: address pcrel length extern type scattered symbolnum/value |
| # OBJDUMP-VERIFY-NEXT: 00000040 False ?( 3) False UNSIGND False 2 (__TEXT,__StaticInit) |
| # OBJDUMP-VERIFY-NEXT: 00000020 False ?( 3) False UNSIGND False 1 (__TEXT,__text) |
| # OBJDUMP-VERIFY-NEXT: 00000000 False ?( 3) False UNSIGND False 2 (__TEXT,__StaticInit) |
| |
| # RUN: obj2yaml %t | FileCheck %s |
| # CHECK: Sections: |
| # CHECK-NEXT: - sectname: __text |
| # CHECK-NEXT: segname: __TEXT |
| # CHECK-NEXT: addr: 0x0000000000000000 |
| # CHECK-NEXT: size: 48 |
| # CHECK-NEXT: offset: 0x000002C0 |
| # CHECK-NEXT: align: 2 |
| # CHECK-NEXT: reloff: 0x000003A0 |
| # CHECK-NEXT: nreloc: 4 |
| # CHECK-NEXT: flags: 0x80000400 |
| # CHECK-NEXT: reserved1: 0x00000000 |
| # CHECK-NEXT: reserved2: 0x00000000 |
| # CHECK-NEXT: reserved3: 0x00000000 |
| # CHECK-NEXT: content: |
| # CHECK-NEXT: relocations: |
| # CHECK-NEXT: - address: 0x00000018 |
| # CHECK-NEXT: symbolnum: 9 |
| # CHECK-NEXT: pcrel: false |
| # CHECK-NEXT: length: 2 |
| # CHECK-NEXT: extern: true |
| # CHECK-NEXT: type: 4 |
| # CHECK-NEXT: scattered: false |
| # CHECK-NEXT: value: 0 |
| # CHECK-NEXT: - address: 0x00000014 |
| # CHECK-NEXT: symbolnum: 9 |
| # CHECK-NEXT: pcrel: true |
| # CHECK-NEXT: length: 2 |
| # CHECK-NEXT: extern: true |
| # CHECK-NEXT: type: 3 |
| # CHECK-NEXT: scattered: false |
| # CHECK-NEXT: value: 0 |
| # CHECK-NEXT: - address: 0x0000000C |
| # CHECK-NEXT: symbolnum: 12 |
| # CHECK-NEXT: pcrel: false |
| # CHECK-NEXT: length: 2 |
| # CHECK-NEXT: extern: true |
| # CHECK-NEXT: type: 4 |
| # CHECK-NEXT: scattered: false |
| # CHECK-NEXT: value: 0 |
| # CHECK-NEXT: - address: 0x00000008 |
| # CHECK-NEXT: symbolnum: 12 |
| # CHECK-NEXT: pcrel: true |
| # CHECK-NEXT: length: 2 |
| # CHECK-NEXT: extern: true |
| # CHECK-NEXT: type: 3 |
| # CHECK-NEXT: scattered: false |
| # CHECK-NEXT: value: 0 |
| # CHECK-NEXT: - sectname: __StaticInit |
| # CHECK-NEXT: segname: __TEXT |
| # CHECK-NEXT: addr: 0x0000000000000030 |
| # CHECK-NEXT: size: 56 |
| # CHECK-NEXT: offset: 0x000002F0 |
| # CHECK-NEXT: align: 2 |
| # CHECK-NEXT: reloff: 0x000003C0 |
| # CHECK-NEXT: nreloc: 7 |
| # CHECK-NEXT: flags: 0x80000400 |
| # CHECK-NEXT: reserved1: 0x00000000 |
| # CHECK-NEXT: reserved2: 0x00000000 |
| # CHECK-NEXT: reserved3: 0x00000000 |
| # CHECK-NEXT: content: |
| # CHECK-NEXT: relocations: |
| # CHECK-NEXT: - address: 0x0000002C |
| # CHECK-NEXT: symbolnum: 2 |
| # CHECK-NEXT: pcrel: true |
| # CHECK-NEXT: length: 2 |
| # CHECK-NEXT: extern: true |
| # CHECK-NEXT: type: 2 |
| # CHECK-NEXT: scattered: false |
| # CHECK-NEXT: value: 0 |
| # CHECK-NEXT: - address: 0x00000018 |
| # CHECK-NEXT: symbolnum: 9 |
| # CHECK-NEXT: pcrel: false |
| # CHECK-NEXT: length: 2 |
| # CHECK-NEXT: extern: true |
| # CHECK-NEXT: type: 4 |
| # CHECK-NEXT: scattered: false |
| # CHECK-NEXT: value: 0 |
| # CHECK-NEXT: - address: 0x00000014 |
| # CHECK-NEXT: symbolnum: 9 |
| # CHECK-NEXT: pcrel: true |
| # CHECK-NEXT: length: 2 |
| # CHECK-NEXT: extern: true |
| # CHECK-NEXT: type: 3 |
| # CHECK-NEXT: scattered: false |
| # CHECK-NEXT: value: 0 |
| # CHECK-NEXT: - address: 0x0000000C |
| # CHECK-NEXT: symbolnum: 11 |
| # CHECK-NEXT: pcrel: false |
| # CHECK-NEXT: length: 2 |
| # CHECK-NEXT: extern: true |
| # CHECK-NEXT: type: 4 |
| # CHECK-NEXT: scattered: false |
| # CHECK-NEXT: value: 0 |
| # CHECK-NEXT: - address: 0x00000008 |
| # CHECK-NEXT: symbolnum: 11 |
| # CHECK-NEXT: pcrel: true |
| # CHECK-NEXT: length: 2 |
| # CHECK-NEXT: extern: true |
| # CHECK-NEXT: type: 3 |
| # CHECK-NEXT: scattered: false |
| # CHECK-NEXT: value: 0 |
| # CHECK-NEXT: - address: 0x00000004 |
| # CHECK-NEXT: symbolnum: 10 |
| # CHECK-NEXT: pcrel: false |
| # CHECK-NEXT: length: 2 |
| # CHECK-NEXT: extern: true |
| # CHECK-NEXT: type: 4 |
| # CHECK-NEXT: scattered: false |
| # CHECK-NEXT: value: 0 |
| # CHECK-NEXT: - address: 0x00000000 |
| # CHECK-NEXT: symbolnum: 10 |
| # CHECK-NEXT: pcrel: true |
| # CHECK-NEXT: length: 2 |
| # CHECK-NEXT: extern: true |
| # CHECK-NEXT: type: 3 |
| # CHECK-NEXT: scattered: false |
| # CHECK-NEXT: value: 0 |
| # CHECK-NEXT: - sectname: __data |
| # CHECK-NEXT: segname: __DATA |
| # CHECK-NEXT: addr: 0x0000000000000068 |
| # CHECK-NEXT: size: 16 |
| # CHECK-NEXT: offset: 0x00000328 |
| # CHECK-NEXT: align: 3 |
| # CHECK-NEXT: reloff: 0x000003F8 |
| # CHECK-NEXT: nreloc: 1 |
| # CHECK-NEXT: flags: 0x00000000 |
| # CHECK-NEXT: reserved1: 0x00000000 |
| # CHECK-NEXT: reserved2: 0x00000000 |
| # CHECK-NEXT: reserved3: 0x00000000 |
| # CHECK-NEXT: content: |
| # CHECK-NEXT: relocations: |
| # CHECK-NEXT: - address: 0x00000008 |
| # CHECK-NEXT: symbolnum: 10 |
| # CHECK-NEXT: pcrel: false |
| # CHECK-NEXT: length: 3 |
| # CHECK-NEXT: extern: true |
| # CHECK-NEXT: type: 0 |
| # CHECK-NEXT: scattered: false |
| # CHECK-NEXT: value: 0 |
| # CHECK-NEXT: - sectname: __common |
| # CHECK-NEXT: segname: __DATA |
| # CHECK-NEXT: addr: 0x00000000000000E0 |
| # CHECK-NEXT: size: 8 |
| # CHECK-NEXT: offset: 0x00000000 |
| # CHECK-NEXT: align: 3 |
| # CHECK-NEXT: reloff: 0x00000000 |
| # CHECK-NEXT: nreloc: 0 |
| # CHECK-NEXT: flags: 0x00000001 |
| # CHECK-NEXT: reserved1: 0x00000000 |
| # CHECK-NEXT: reserved2: 0x00000000 |
| # CHECK-NEXT: reserved3: 0x00000000 |
| # CHECK-NEXT: - sectname: __mod_init_func |
| # CHECK-NEXT: segname: __DATA |
| # CHECK-NEXT: addr: 0x0000000000000078 |
| # CHECK-NEXT: size: 8 |
| # CHECK-NEXT: offset: 0x00000338 |
| # CHECK-NEXT: align: 3 |
| # CHECK-NEXT: reloff: 0x00000400 |
| # CHECK-NEXT: nreloc: 1 |
| # CHECK-NEXT: flags: 0x00000009 |
| # CHECK-NEXT: reserved1: 0x00000000 |
| # CHECK-NEXT: reserved2: 0x00000000 |
| # CHECK-NEXT: reserved3: 0x00000000 |
| # CHECK-NEXT: content: |
| # CHECK-NEXT: relocations: |
| # CHECK-NEXT: - address: 0x00000000 |
| # CHECK-NEXT: symbolnum: 3 |
| # CHECK-NEXT: pcrel: false |
| # CHECK-NEXT: length: 3 |
| # CHECK-NEXT: extern: true |
| # CHECK-NEXT: type: 0 |
| # CHECK-NEXT: scattered: false |
| # CHECK-NEXT: value: 0 |
| # CHECK-NEXT: - sectname: __compact_unwind |
| # CHECK-NEXT: segname: __LD |
| # CHECK-NEXT: addr: 0x0000000000000080 |
| # CHECK-NEXT: size: 96 |
| # CHECK-NEXT: offset: 0x00000340 |
| # CHECK-NEXT: align: 3 |
| # CHECK-NEXT: reloff: 0x00000408 |
| # CHECK-NEXT: nreloc: 3 |
| # CHECK-NEXT: flags: 0x02000000 |
| # CHECK-NEXT: reserved1: 0x00000000 |
| # CHECK-NEXT: reserved2: 0x00000000 |
| # CHECK-NEXT: reserved3: 0x00000000 |
| # CHECK-NEXT: content: |
| # CHECK-NEXT: relocations: |
| # CHECK-NEXT: - address: 0x00000040 |
| # CHECK-NEXT: symbolnum: 2 |
| # CHECK-NEXT: pcrel: false |
| # CHECK-NEXT: length: 3 |
| # CHECK-NEXT: extern: false |
| # CHECK-NEXT: type: 0 |
| # CHECK-NEXT: scattered: false |
| # CHECK-NEXT: value: 0 |
| # CHECK-NEXT: - address: 0x00000020 |
| # CHECK-NEXT: symbolnum: 1 |
| # CHECK-NEXT: pcrel: false |
| # CHECK-NEXT: length: 3 |
| # CHECK-NEXT: extern: false |
| # CHECK-NEXT: type: 0 |
| # CHECK-NEXT: scattered: false |
| # CHECK-NEXT: value: 0 |
| # CHECK-NEXT: - address: 0x00000000 |
| # CHECK-NEXT: symbolnum: 2 |
| # CHECK-NEXT: pcrel: false |
| # CHECK-NEXT: length: 3 |
| # CHECK-NEXT: extern: false |
| # CHECK-NEXT: type: 0 |
| # CHECK-NEXT: scattered: false |
| # CHECK-NEXT: value: 0 |
| |
| --- !mach-o |
| FileHeader: |
| magic: 0xFEEDFACF |
| cputype: 0x0100000C |
| cpusubtype: 0x00000000 |
| filetype: 0x00000001 |
| ncmds: 4 |
| sizeofcmds: 672 |
| flags: 0x00002000 |
| reserved: 0x00000000 |
| LoadCommands: |
| - cmd: LC_SEGMENT_64 |
| cmdsize: 552 |
| segname: '' |
| vmaddr: 0 |
| vmsize: 232 |
| fileoff: 704 |
| filesize: 224 |
| maxprot: 7 |
| initprot: 7 |
| nsects: 6 |
| flags: 0 |
| Sections: |
| - sectname: __text |
| segname: __TEXT |
| addr: 0x0000000000000000 |
| size: 48 |
| offset: 0x000002C0 |
| align: 2 |
| reloff: 0x000003A0 |
| nreloc: 4 |
| flags: 0x80000400 |
| reserved1: 0x00000000 |
| reserved2: 0x00000000 |
| reserved3: 0x00000000 |
| content: FF4300D1FF0F00B90800009008010091080140F90900009029010091290140F90801098BE00308AAFF430091C0035FD6 |
| relocations: |
| - address: 0x00000018 |
| symbolnum: 9 |
| pcrel: false |
| length: 2 |
| extern: true |
| type: 4 |
| scattered: false |
| value: 0 |
| - address: 0x00000014 |
| symbolnum: 9 |
| pcrel: true |
| length: 2 |
| extern: true |
| type: 3 |
| scattered: false |
| value: 0 |
| - address: 0x0000000C |
| symbolnum: 12 |
| pcrel: false |
| length: 2 |
| extern: true |
| type: 4 |
| scattered: false |
| value: 0 |
| - address: 0x00000008 |
| symbolnum: 12 |
| pcrel: true |
| length: 2 |
| extern: true |
| type: 3 |
| scattered: false |
| value: 0 |
| - sectname: __StaticInit |
| segname: __TEXT |
| addr: 0x0000000000000030 |
| size: 56 |
| offset: 0x000002F0 |
| align: 2 |
| reloff: 0x000003C0 |
| nreloc: 7 |
| flags: 0x80000400 |
| reserved1: 0x00000000 |
| reserved2: 0x00000000 |
| reserved3: 0x00000000 |
| content: 08000090080100910900009029010091080109EB0900009029010091280100F9C0035FD6FD7BBFA9FD03009100000094FD7BC1A8C0035FD6 |
| relocations: |
| - address: 0x0000002C |
| symbolnum: 2 |
| pcrel: true |
| length: 2 |
| extern: true |
| type: 2 |
| scattered: false |
| value: 0 |
| - address: 0x00000018 |
| symbolnum: 9 |
| pcrel: false |
| length: 2 |
| extern: true |
| type: 4 |
| scattered: false |
| value: 0 |
| - address: 0x00000014 |
| symbolnum: 9 |
| pcrel: true |
| length: 2 |
| extern: true |
| type: 3 |
| scattered: false |
| value: 0 |
| - address: 0x0000000C |
| symbolnum: 11 |
| pcrel: false |
| length: 2 |
| extern: true |
| type: 4 |
| scattered: false |
| value: 0 |
| - address: 0x00000008 |
| symbolnum: 11 |
| pcrel: true |
| length: 2 |
| extern: true |
| type: 3 |
| scattered: false |
| value: 0 |
| - address: 0x00000004 |
| symbolnum: 10 |
| pcrel: false |
| length: 2 |
| extern: true |
| type: 4 |
| scattered: false |
| value: 0 |
| - address: 0x00000000 |
| symbolnum: 10 |
| pcrel: true |
| length: 2 |
| extern: true |
| type: 3 |
| scattered: false |
| value: 0 |
| - sectname: __data |
| segname: __DATA |
| addr: 0x0000000000000068 |
| size: 16 |
| offset: 0x00000328 |
| align: 3 |
| reloff: 0x000003F8 |
| nreloc: 1 |
| flags: 0x00000000 |
| reserved1: 0x00000000 |
| reserved2: 0x00000000 |
| reserved3: 0x00000000 |
| content: '01000000020000000000000000000000' |
| relocations: |
| - address: 0x00000008 |
| symbolnum: 10 |
| pcrel: false |
| length: 3 |
| extern: true |
| type: 0 |
| scattered: false |
| value: 0 |
| - sectname: __common |
| segname: __DATA |
| addr: 0x00000000000000E0 |
| size: 8 |
| offset: 0x00000000 |
| align: 3 |
| reloff: 0x00000000 |
| nreloc: 0 |
| flags: 0x00000001 |
| reserved1: 0x00000000 |
| reserved2: 0x00000000 |
| reserved3: 0x00000000 |
| - sectname: __mod_init_func |
| segname: __DATA |
| addr: 0x0000000000000078 |
| size: 8 |
| offset: 0x00000338 |
| align: 3 |
| reloff: 0x00000400 |
| nreloc: 1 |
| flags: 0x00000009 |
| reserved1: 0x00000000 |
| reserved2: 0x00000000 |
| reserved3: 0x00000000 |
| content: '0000000000000000' |
| relocations: |
| - address: 0x00000000 |
| symbolnum: 3 |
| pcrel: false |
| length: 3 |
| extern: true |
| type: 0 |
| scattered: false |
| value: 0 |
| - sectname: __compact_unwind |
| segname: __LD |
| addr: 0x0000000000000080 |
| size: 96 |
| offset: 0x00000340 |
| align: 3 |
| reloff: 0x00000408 |
| nreloc: 3 |
| flags: 0x02000000 |
| reserved1: 0x00000000 |
| reserved2: 0x00000000 |
| reserved3: 0x00000000 |
| content: '300000000000000024000000000000020000000000000000000000000000000000000000000000003000000000100002000000000000000000000000000000005400000000000000140000000000000400000000000000000000000000000000' |
| relocations: |
| - address: 0x00000040 |
| symbolnum: 2 |
| pcrel: false |
| length: 3 |
| extern: false |
| type: 0 |
| scattered: false |
| value: 0 |
| - address: 0x00000020 |
| symbolnum: 1 |
| pcrel: false |
| length: 3 |
| extern: false |
| type: 0 |
| scattered: false |
| value: 0 |
| - address: 0x00000000 |
| symbolnum: 2 |
| pcrel: false |
| length: 3 |
| extern: false |
| type: 0 |
| scattered: false |
| value: 0 |
| - cmd: LC_VERSION_MIN_IPHONEOS |
| cmdsize: 16 |
| version: 655360 |
| sdk: 0 |
| - cmd: LC_SYMTAB |
| cmdsize: 24 |
| symoff: 1056 |
| nsyms: 13 |
| stroff: 1264 |
| strsize: 104 |
| - cmd: LC_DYSYMTAB |
| cmdsize: 80 |
| ilocalsym: 0 |
| nlocalsym: 8 |
| iextdefsym: 8 |
| nextdefsym: 5 |
| iundefsym: 13 |
| nundefsym: 0 |
| tocoff: 0 |
| ntoc: 0 |
| modtaboff: 0 |
| nmodtab: 0 |
| extrefsymoff: 0 |
| nextrefsyms: 0 |
| indirectsymoff: 0 |
| nindirectsyms: 0 |
| extreloff: 0 |
| nextrel: 0 |
| locreloff: 0 |
| nlocrel: 0 |
| LinkEditData: |
| NameList: |
| - n_strx: 97 |
| n_type: 0x0E |
| n_sect: 1 |
| n_desc: 0 |
| n_value: 0 |
| - n_strx: 91 |
| n_type: 0x0E |
| n_sect: 2 |
| n_desc: 0 |
| n_value: 48 |
| - n_strx: 13 |
| n_type: 0x0E |
| n_sect: 2 |
| n_desc: 0 |
| n_value: 48 |
| - n_strx: 36 |
| n_type: 0x0E |
| n_sect: 2 |
| n_desc: 0 |
| n_value: 84 |
| - n_strx: 85 |
| n_type: 0x0E |
| n_sect: 3 |
| n_desc: 0 |
| n_value: 104 |
| - n_strx: 79 |
| n_type: 0x0E |
| n_sect: 4 |
| n_desc: 0 |
| n_value: 224 |
| - n_strx: 73 |
| n_type: 0x0E |
| n_sect: 5 |
| n_desc: 0 |
| n_value: 120 |
| - n_strx: 67 |
| n_type: 0x0E |
| n_sect: 6 |
| n_desc: 0 |
| n_value: 128 |
| - n_strx: 61 |
| n_type: 0x0F |
| n_sect: 1 |
| n_desc: 0 |
| n_value: 0 |
| - n_strx: 10 |
| n_type: 0x0F |
| n_sect: 4 |
| n_desc: 0 |
| n_value: 224 |
| - n_strx: 7 |
| n_type: 0x0F |
| n_sect: 3 |
| n_desc: 0 |
| n_value: 104 |
| - n_strx: 4 |
| n_type: 0x0F |
| n_sect: 3 |
| n_desc: 0 |
| n_value: 108 |
| - n_strx: 1 |
| n_type: 0x0F |
| n_sect: 3 |
| n_desc: 0 |
| n_value: 112 |
| StringTable: |
| - '' |
| - _z |
| - _y |
| - _x |
| - _w |
| - ___cxx_global_var_init |
| - __GLOBAL__sub_I_main.cpp |
| - _main |
| - ltmp5 |
| - ltmp4 |
| - ltmp3 |
| - ltmp2 |
| - ltmp1 |
| - ltmp0 |
| - '' |
| ... |