| # RUN: yaml2obj %s -o %t |
| # RUN: llvm-jitlink -noexec -phony-externals %t |
| # |
| # Check that MachO::ARM64_RELOC_SUBTRACTOR relocations work when the fixup |
| # location and target are in the same block (in this case in the __eh_frame |
| # section). |
| |
| --- !mach-o |
| IsLittleEndian: true |
| FileHeader: |
| magic: 0xFEEDFACF |
| cputype: 0x100000C |
| cpusubtype: 0x0 |
| filetype: 0x1 |
| ncmds: 5 |
| sizeofcmds: 480 |
| flags: 0x0 |
| reserved: 0x0 |
| LoadCommands: |
| - cmd: LC_SEGMENT_64 |
| cmdsize: 392 |
| segname: '' |
| vmaddr: 0 |
| vmsize: 200 |
| fileoff: 544 |
| filesize: 200 |
| maxprot: 7 |
| initprot: 7 |
| nsects: 4 |
| flags: 0 |
| Sections: |
| - sectname: __text |
| segname: __TEXT |
| addr: 0x0 |
| size: 72 |
| offset: 0x220 |
| align: 2 |
| reloff: 0x2E8 |
| nreloc: 6 |
| flags: 0x80000400 |
| reserved1: 0x0 |
| reserved2: 0x0 |
| reserved3: 0x0 |
| content: F44FBEA9FD7B01A9800080520000009448058052080000B901000090210040F9020080D200000094200020D400000094130040B900000094E00313AAFD7B41A9F44FC2A8C0035FD6 |
| relocations: |
| - address: 0x34 |
| symbolnum: 7 |
| pcrel: true |
| length: 2 |
| extern: true |
| type: 2 |
| scattered: false |
| value: 0 |
| - address: 0x2C |
| symbolnum: 6 |
| pcrel: true |
| length: 2 |
| extern: true |
| type: 2 |
| scattered: false |
| value: 0 |
| - address: 0x24 |
| symbolnum: 8 |
| pcrel: true |
| length: 2 |
| extern: true |
| type: 2 |
| scattered: false |
| value: 0 |
| - address: 0x1C |
| symbolnum: 4 |
| pcrel: false |
| length: 2 |
| extern: true |
| type: 6 |
| scattered: false |
| value: 0 |
| - address: 0x18 |
| symbolnum: 4 |
| pcrel: true |
| length: 2 |
| extern: true |
| type: 5 |
| scattered: false |
| value: 0 |
| - address: 0xC |
| symbolnum: 5 |
| pcrel: true |
| length: 2 |
| extern: true |
| type: 2 |
| scattered: false |
| value: 0 |
| - sectname: __gcc_except_tab |
| segname: __TEXT |
| addr: 0x48 |
| size: 24 |
| offset: 0x268 |
| align: 2 |
| reloff: 0x318 |
| nreloc: 1 |
| flags: 0x0 |
| reserved1: 0x0 |
| reserved2: 0x0 |
| reserved3: 0x0 |
| content: FF9B15010C0018000018102C012820000001000000000000 |
| relocations: |
| - address: 0x14 |
| symbolnum: 4 |
| pcrel: true |
| length: 2 |
| extern: true |
| type: 7 |
| scattered: false |
| value: 0 |
| - sectname: __eh_frame |
| segname: __TEXT |
| addr: 0x60 |
| size: 72 |
| offset: 0x280 |
| align: 3 |
| reloff: 0x320 |
| nreloc: 7 |
| flags: 0x0 |
| reserved1: 0x0 |
| reserved2: 0x0 |
| reserved3: 0x0 |
| content: 1800000000000000017A504C520001781E079B0000000010100C1F002800000004000000F8FFFFFFFFFFFFFF480000000000000008E7FFFFFFFFFFFFFF480E209E019D0293039404 |
| relocations: |
| - address: 0x13 |
| symbolnum: 9 |
| pcrel: true |
| length: 2 |
| extern: true |
| type: 7 |
| scattered: false |
| value: 0 |
| - address: 0x20 |
| symbolnum: 1 |
| pcrel: false |
| length: 2 |
| extern: true |
| type: 1 |
| scattered: false |
| value: 0 |
| - address: 0x20 |
| symbolnum: 2 |
| pcrel: false |
| length: 2 |
| extern: true |
| type: 0 |
| scattered: false |
| value: 0 |
| - address: 0x24 |
| symbolnum: 2 |
| pcrel: false |
| length: 3 |
| extern: true |
| type: 1 |
| scattered: false |
| value: 0 |
| - address: 0x24 |
| symbolnum: 3 |
| pcrel: false |
| length: 3 |
| extern: true |
| type: 0 |
| scattered: false |
| value: 0 |
| - address: 0x35 |
| symbolnum: 2 |
| pcrel: false |
| length: 3 |
| extern: true |
| type: 1 |
| scattered: false |
| value: 0 |
| - address: 0x35 |
| symbolnum: 0 |
| pcrel: false |
| length: 3 |
| extern: true |
| type: 0 |
| scattered: false |
| value: 0 |
| - sectname: __compact_unwind |
| segname: __LD |
| addr: 0xA8 |
| size: 32 |
| offset: 0x2C8 |
| align: 3 |
| reloff: 0x358 |
| nreloc: 2 |
| flags: 0x2000000 |
| reserved1: 0x0 |
| reserved2: 0x0 |
| reserved3: 0x0 |
| content: '0000000000000000480000000000000300000000000000000000000000000000' |
| relocations: |
| - address: 0x0 |
| symbolnum: 3 |
| pcrel: false |
| length: 3 |
| extern: true |
| type: 0 |
| scattered: false |
| value: 0 |
| - address: 0x18 |
| symbolnum: 0 |
| pcrel: false |
| length: 3 |
| extern: true |
| type: 0 |
| scattered: false |
| value: 0 |
| - cmd: LC_SYMTAB |
| cmdsize: 24 |
| symoff: 880 |
| nsyms: 10 |
| stroff: 1040 |
| strsize: 152 |
| - cmd: LC_BUILD_VERSION |
| cmdsize: 32 |
| platform: 1 |
| minos: 917504 |
| sdk: 0 |
| ntools: 1 |
| Tools: |
| - tool: 3 |
| version: 59048448 |
| - cmd: LC_DATA_IN_CODE |
| cmdsize: 16 |
| dataoff: 872 |
| datasize: 0 |
| - cmd: LC_LINKER_OPTIMIZATION_HINT |
| cmdsize: 16 |
| dataoff: 872 |
| datasize: 8 |
| LinkEditData: |
| NameList: |
| - n_strx: 112 |
| n_type: 0xE |
| n_sect: 2 |
| n_desc: 32 |
| n_value: 72 |
| - n_strx: 130 |
| n_type: 0xE |
| n_sect: 3 |
| n_desc: 0 |
| n_value: 96 |
| - n_strx: 140 |
| n_type: 0xE |
| n_sect: 3 |
| n_desc: 0 |
| n_value: 124 |
| - n_strx: 2 |
| n_type: 0xF |
| n_sect: 1 |
| n_desc: 32 |
| n_value: 0 |
| - n_strx: 8 |
| n_type: 0x1 |
| n_sect: 0 |
| n_desc: 0 |
| n_value: 0 |
| - n_strx: 15 |
| n_type: 0x1 |
| n_sect: 0 |
| n_desc: 0 |
| n_value: 0 |
| - n_strx: 41 |
| n_type: 0x1 |
| n_sect: 0 |
| n_desc: 0 |
| n_value: 0 |
| - n_strx: 60 |
| n_type: 0x1 |
| n_sect: 0 |
| n_desc: 0 |
| n_value: 0 |
| - n_strx: 77 |
| n_type: 0x1 |
| n_sect: 0 |
| n_desc: 0 |
| n_value: 0 |
| - n_strx: 90 |
| n_type: 0x1 |
| n_sect: 0 |
| n_desc: 0 |
| n_value: 0 |
| StringTable: |
| - ' ' |
| - _main |
| - __ZTIi |
| - ___cxa_allocate_exception |
| - ___cxa_begin_catch |
| - ___cxa_end_catch |
| - ___cxa_throw |
| - ___gxx_personality_v0 |
| - GCC_except_table0 |
| - EH_Frame1 |
| - func.eh |
| - '' |
| - '' |
| - '' |
| - '' |
| ... |