256 lines · plain
1## Check how we print relocations.2 3# RUN: llvm-readobj -r %p/Inputs/trivial.obj.macho-i386 \4# RUN: | FileCheck %s --check-prefix MACHO-I3865# RUN: llvm-readobj -r %p/Inputs/trivial.obj.macho-x86-64 \6# RUN: | FileCheck %s --check-prefix MACHO-X86-647# RUN: llvm-readobj -r --expand-relocs %p/Inputs/trivial.obj.macho-ppc \8# RUN: | FileCheck %s --check-prefix MACHO-PPC9# RUN: llvm-readobj -r --expand-relocs %p/Inputs/trivial.obj.macho-ppc64 \10# RUN: | FileCheck %s --check-prefix MACHO-PPC6411# RUN: llvm-readobj -r --expand-relocs %p/Inputs/trivial.obj.macho-arm \12# RUN: | FileCheck %s --check-prefix MACHO-ARM13 14# MACHO-I386: Relocations [15# MACHO-I386-NEXT: Section __text {16# MACHO-I386-NEXT: 0x18 1 2 1 GENERIC_RELOC_VANILLA 0 _SomeOtherFunction17# MACHO-I386-NEXT: 0x13 1 2 1 GENERIC_RELOC_VANILLA 0 _puts18# MACHO-I386-NEXT: 0xB 0 2 n/a GENERIC_RELOC_LOCAL_SECTDIFF 1 0x2219# MACHO-I386-NEXT: 0x0 0 2 n/a GENERIC_RELOC_PAIR 1 0x820# MACHO-I386-NEXT: }21# MACHO-I386-NEXT: ]22 23# MACHO-X86-64: Relocations [24# MACHO-X86-64-NEXT: Section __text {25# MACHO-X86-64-NEXT: 0xE 1 2 1 X86_64_RELOC_BRANCH 0 _SomeOtherFunction26# MACHO-X86-64-NEXT: 0x9 1 2 1 X86_64_RELOC_BRANCH 0 _puts27# MACHO-X86-64-NEXT: 0x4 1 2 1 X86_64_RELOC_SIGNED 0 L_.str28# MACHO-X86-64-NEXT: }29# MACHO-X86-64-NEXT:]30 31# MACHO-PPC: Relocations [32# MACHO-PPC-NEXT: Section __text {33# MACHO-PPC-NEXT: Relocation {34# MACHO-PPC-NEXT: Offset: 0x2435# MACHO-PPC-NEXT: PCRel: 036# MACHO-PPC-NEXT: Length: 237# MACHO-PPC-NEXT: Type: PPC_RELOC_LO16_SECTDIFF (11)38# MACHO-PPC-NEXT: Value: 0x6439# MACHO-PPC-NEXT: }40# MACHO-PPC-NEXT: Relocation {41# MACHO-PPC-NEXT: Offset: 0x042# MACHO-PPC-NEXT: PCRel: 043# MACHO-PPC-NEXT: Length: 244# MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1)45# MACHO-PPC-NEXT: Value: 0xC46# MACHO-PPC-NEXT: }47# MACHO-PPC-NEXT: Relocation {48# MACHO-PPC-NEXT: Offset: 0x1C49# MACHO-PPC-NEXT: PCRel: 050# MACHO-PPC-NEXT: Length: 251# MACHO-PPC-NEXT: Type: PPC_RELOC_HA16_SECTDIFF (12)52# MACHO-PPC-NEXT: Value: 0x6453# MACHO-PPC-NEXT: }54# MACHO-PPC-NEXT: Relocation {55# MACHO-PPC-NEXT: Offset: 0x5856# MACHO-PPC-NEXT: PCRel: 057# MACHO-PPC-NEXT: Length: 258# MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1)59# MACHO-PPC-NEXT: Value: 0xC60# MACHO-PPC-NEXT: }61# MACHO-PPC-NEXT: Relocation {62# MACHO-PPC-NEXT: Offset: 0x1863# MACHO-PPC-NEXT: PCRel: 164# MACHO-PPC-NEXT: Length: 265# MACHO-PPC-NEXT: Type: PPC_RELOC_BR24 (3)66# MACHO-PPC-NEXT: Section: __picsymbolstub1 (2)67# MACHO-PPC-NEXT: }68# MACHO-PPC-NEXT: }69# MACHO-PPC-NEXT: Section __picsymbolstub1 {70# MACHO-PPC-NEXT: Relocation {71# MACHO-PPC-NEXT: Offset: 0x1472# MACHO-PPC-NEXT: PCRel: 073# MACHO-PPC-NEXT: Length: 274# MACHO-PPC-NEXT: Type: PPC_RELOC_LO16_SECTDIFF (11)75# MACHO-PPC-NEXT: Value: 0x6876# MACHO-PPC-NEXT: }77# MACHO-PPC-NEXT: Relocation {78# MACHO-PPC-NEXT: Offset: 0x079# MACHO-PPC-NEXT: PCRel: 080# MACHO-PPC-NEXT: Length: 281# MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1)82# MACHO-PPC-NEXT: Value: 0x4883# MACHO-PPC-NEXT: }84# MACHO-PPC-NEXT: Relocation {85# MACHO-PPC-NEXT: Offset: 0xC86# MACHO-PPC-NEXT: PCRel: 087# MACHO-PPC-NEXT: Length: 288# MACHO-PPC-NEXT: Type: PPC_RELOC_HA16_SECTDIFF (12)89# MACHO-PPC-NEXT: Value: 0x6890# MACHO-PPC-NEXT: }91# MACHO-PPC-NEXT: Relocation {92# MACHO-PPC-NEXT: Offset: 0x2093# MACHO-PPC-NEXT: PCRel: 094# MACHO-PPC-NEXT: Length: 295# MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1)96# MACHO-PPC-NEXT: Value: 0x4897# MACHO-PPC-NEXT: }98# MACHO-PPC-NEXT: }99# MACHO-PPC-NEXT: Section __la_symbol_ptr {100# MACHO-PPC-NEXT: Relocation {101# MACHO-PPC-NEXT: Offset: 0x0102# MACHO-PPC-NEXT: PCRel: 0103# MACHO-PPC-NEXT: Length: 2104# MACHO-PPC-NEXT: Type: PPC_RELOC_VANILLA (0)105# MACHO-PPC-NEXT: Symbol: dyld_stub_binding_helper (5)106# MACHO-PPC-NEXT: }107# MACHO-PPC-NEXT: }108# MACHO-PPC-NEXT: ]109 110# MACHO-PPC64: Relocations [111# MACHO-PPC64-NEXT: Section __text {112# MACHO-PPC64-NEXT: Relocation {113# MACHO-PPC64-NEXT: Offset: 0x24114# MACHO-PPC64-NEXT: PCRel: 0115# MACHO-PPC64-NEXT: Length: 2116# MACHO-PPC64-NEXT: Type: (14)117# MACHO-PPC64-NEXT: Value: 0x64118# MACHO-PPC64-NEXT: }119# MACHO-PPC64-NEXT: Relocation {120# MACHO-PPC64-NEXT: Offset: 0x0121# MACHO-PPC64-NEXT: PCRel: 0122# MACHO-PPC64-NEXT: Length: 2123# MACHO-PPC64-NEXT: Type: (1)124# MACHO-PPC64-NEXT: Value: 0xC125# MACHO-PPC64-NEXT: }126# MACHO-PPC64-NEXT: Relocation {127# MACHO-PPC64-NEXT: Offset: 0x1C128# MACHO-PPC64-NEXT: PCRel: 0129# MACHO-PPC64-NEXT: Length: 2130# MACHO-PPC64-NEXT: Type: (12)131# MACHO-PPC64-NEXT: Value: 0x64132# MACHO-PPC64-NEXT: }133# MACHO-PPC64-NEXT: Relocation {134# MACHO-PPC64-NEXT: Offset: 0x58135# MACHO-PPC64-NEXT: PCRel: 0136# MACHO-PPC64-NEXT: Length: 2137# MACHO-PPC64-NEXT: Type: (1)138# MACHO-PPC64-NEXT: Value: 0xC139# MACHO-PPC64-NEXT: }140# MACHO-PPC64-NEXT: Relocation {141# MACHO-PPC64-NEXT: Offset: 0x18142# MACHO-PPC64-NEXT: PCRel: 1143# MACHO-PPC64-NEXT: Length: 2144# MACHO-PPC64-NEXT: Type: (3)145# MACHO-PPC64-NEXT: Section: __picsymbolstub1 (2)146# MACHO-PPC64-NEXT: }147# MACHO-PPC64-NEXT: }148# MACHO-PPC64-NEXT: Section __picsymbolstub1 {149# MACHO-PPC64-NEXT: Relocation {150# MACHO-PPC64-NEXT: Offset: 0x14151# MACHO-PPC64-NEXT: PCRel: 0152# MACHO-PPC64-NEXT: Length: 2153# MACHO-PPC64-NEXT: Type: (14)154# MACHO-PPC64-NEXT: Value: 0x6C155# MACHO-PPC64-NEXT: }156# MACHO-PPC64-NEXT: Relocation {157# MACHO-PPC64-NEXT: Offset: 0x0158# MACHO-PPC64-NEXT: PCRel: 0159# MACHO-PPC64-NEXT: Length: 2160# MACHO-PPC64-NEXT: Type: (1)161# MACHO-PPC64-NEXT: Value: 0x48162# MACHO-PPC64-NEXT: }163# MACHO-PPC64-NEXT: Relocation {164# MACHO-PPC64-NEXT: Offset: 0xC165# MACHO-PPC64-NEXT: PCRel: 0166# MACHO-PPC64-NEXT: Length: 2167# MACHO-PPC64-NEXT: Type: (12)168# MACHO-PPC64-NEXT: Value: 0x6C169# MACHO-PPC64-NEXT: }170# MACHO-PPC64-NEXT: Relocation {171# MACHO-PPC64-NEXT: Offset: 0x24172# MACHO-PPC64-NEXT: PCRel: 0173# MACHO-PPC64-NEXT: Length: 2174# MACHO-PPC64-NEXT: Type: (1)175# MACHO-PPC64-NEXT: Value: 0x48176# MACHO-PPC64-NEXT: }177# MACHO-PPC64-NEXT: }178# MACHO-PPC64-NEXT: Section __la_symbol_ptr {179# MACHO-PPC64-NEXT: Relocation {180# MACHO-PPC64-NEXT: Offset: 0x0181# MACHO-PPC64-NEXT: PCRel: 0182# MACHO-PPC64-NEXT: Length: 3183# MACHO-PPC64-NEXT: Type: (0)184# MACHO-PPC64-NEXT: Symbol: dyld_stub_binding_helper (5)185# MACHO-PPC64-NEXT: }186# MACHO-PPC64-NEXT: }187# MACHO-PPC64-NEXT: ]188 189# MACHO-ARM: Relocations [190# MACHO-ARM-NEXT: Section __text {191# MACHO-ARM-NEXT: Relocation {192# MACHO-ARM-NEXT: Offset: 0x38193# MACHO-ARM-NEXT: PCRel: 0194# MACHO-ARM-NEXT: Length: 2195# MACHO-ARM-NEXT: Type: ARM_RELOC_SECTDIFF (2)196# MACHO-ARM-NEXT: Value: 0x40197# MACHO-ARM-NEXT: }198# MACHO-ARM-NEXT: Relocation {199# MACHO-ARM-NEXT: Offset: 0x0200# MACHO-ARM-NEXT: PCRel: 0201# MACHO-ARM-NEXT: Length: 2202# MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1)203# MACHO-ARM-NEXT: Value: 0x28204# MACHO-ARM-NEXT: }205# MACHO-ARM-NEXT: Relocation {206# MACHO-ARM-NEXT: Offset: 0x20207# MACHO-ARM-NEXT: PCRel: 1208# MACHO-ARM-NEXT: Length: 2209# MACHO-ARM-NEXT: Type: ARM_RELOC_BR24 (5)210# MACHO-ARM-NEXT: Symbol: _g211# MACHO-ARM-NEXT: }212# MACHO-ARM-NEXT: Relocation {213# MACHO-ARM-NEXT: Offset: 0x1C214# MACHO-ARM-NEXT: PCRel: 0215# MACHO-ARM-NEXT: Length: 1216# MACHO-ARM-NEXT: Type: ARM_RELOC_HALF (8)217# MACHO-ARM-NEXT: Symbol: _g218# MACHO-ARM-NEXT: }219# MACHO-ARM-NEXT: Relocation {220# MACHO-ARM-NEXT: Offset: 0x0221# MACHO-ARM-NEXT: PCRel: 0222# MACHO-ARM-NEXT: Length: 1223# MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1)224# MACHO-ARM-NEXT: Section: -225# MACHO-ARM-NEXT: }226# MACHO-ARM-NEXT: Relocation {227# MACHO-ARM-NEXT: Offset: 0x18228# MACHO-ARM-NEXT: PCRel: 0229# MACHO-ARM-NEXT: Length: 0230# MACHO-ARM-NEXT: Type: ARM_RELOC_HALF (8)231# MACHO-ARM-NEXT: Symbol: _g232# MACHO-ARM-NEXT: }233# MACHO-ARM-NEXT: Relocation {234# MACHO-ARM-NEXT: Offset: 0x0235# MACHO-ARM-NEXT: PCRel: 0236# MACHO-ARM-NEXT: Length: 0237# MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1)238# MACHO-ARM-NEXT: Section: -239# MACHO-ARM-NEXT: }240# MACHO-ARM-NEXT: Relocation {241# MACHO-ARM-NEXT: Offset: 0xC242# MACHO-ARM-NEXT: PCRel: 0243# MACHO-ARM-NEXT: Length: 2244# MACHO-ARM-NEXT: Type: ARM_RELOC_SECTDIFF (2)245# MACHO-ARM-NEXT: Value: 0x44246# MACHO-ARM-NEXT: }247# MACHO-ARM-NEXT: Relocation {248# MACHO-ARM-NEXT: Offset: 0x0249# MACHO-ARM-NEXT: PCRel: 0250# MACHO-ARM-NEXT: Length: 2251# MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1)252# MACHO-ARM-NEXT: Value: 0x4253# MACHO-ARM-NEXT: }254# MACHO-ARM-NEXT: }255# MACHO-ARM-NEXT: ]256