Home | History | Annotate | Download | only in llvm-readobj
      1 RUN: llvm-readobj -r %p/Inputs/trivial.obj.coff-i386 \
      2 RUN:   | FileCheck %s -check-prefix COFF
      3 RUN: llvm-readobj -r %p/Inputs/bad-relocs.obj.coff-i386 \
      4 RUN:   | FileCheck %s -check-prefix BAD-COFF-RELOCS
      5 RUN: llvm-readobj -r %p/Inputs/relocs-no-symtab.obj.coff-i386 \
      6 RUN:   | FileCheck %s -check-prefix BAD-COFF-RELOCS
      7 RUN: llvm-readobj -r %p/Inputs/trivial.obj.elf-i386 \
      8 RUN:   | FileCheck %s -check-prefix ELF
      9 RUN: llvm-readobj -r %p/Inputs/trivial.obj.macho-i386 \
     10 RUN:   | FileCheck %s -check-prefix MACHO-I386
     11 RUN: llvm-readobj -r %p/Inputs/trivial.obj.macho-x86-64 \
     12 RUN:   | FileCheck %s -check-prefix MACHO-X86-64
     13 RUN: llvm-readobj -r --expand-relocs %p/Inputs/trivial.obj.macho-ppc \
     14 RUN:   | FileCheck %s -check-prefix MACHO-PPC
     15 RUN: llvm-readobj -r --expand-relocs %p/Inputs/trivial.obj.macho-ppc64 \
     16 RUN:   | FileCheck %s -check-prefix MACHO-PPC64
     17 RUN: llvm-readobj -r -expand-relocs %p/Inputs/trivial.obj.macho-arm \
     18 RUN:   | FileCheck %s -check-prefix MACHO-ARM
     19 RUN: llvm-readobj -r --expand-relocs %p/Inputs/trivial.obj.wasm \
     20 RUN:   | FileCheck %s -check-prefix WASM
     21 
     22 COFF:      Relocations [
     23 COFF-NEXT:   Section (1) .text {
     24 COFF-NEXT:     0x4 IMAGE_REL_I386_DIR32 .data
     25 COFF-NEXT:     0x9 IMAGE_REL_I386_REL32 _puts
     26 COFF-NEXT:     0xE IMAGE_REL_I386_REL32 _SomeOtherFunction
     27 COFF-NEXT:   }
     28 COFF-NEXT: ]
     29 
     30 BAD-COFF-RELOCS:      Relocations [
     31 BAD-COFF-RELOCS-NEXT:   Section (1) sec {
     32 BAD-COFF-RELOCS-NEXT:     0xDEADBEEF IMAGE_REL_I386_ABSOLUTE -
     33 BAD-COFF-RELOCS-NEXT:   }
     34 BAD-COFF-RELOCS-NEXT: ]
     35 
     36 ELF:      Relocations [
     37 ELF-NEXT:   Section (2) .rel.text {
     38 ELF-NEXT:     0xC R_386_GOTPC _GLOBAL_OFFSET_TABLE_ 0x0
     39 ELF-NEXT:     0x12 R_386_GOTOFF .L.str 0x0
     40 ELF-NEXT:     0x1A R_386_PLT32 puts 0x0
     41 ELF-NEXT:     0x1F R_386_PLT32 SomeOtherFunction 0x0
     42 ELF-NEXT:   }
     43 ELF-NEXT: ]
     44 
     45 MACHO-I386:      Relocations [
     46 MACHO-I386-NEXT:   Section __text {
     47 MACHO-I386-NEXT:     0x18 1 2 1 GENERIC_RELOC_VANILLA 0 _SomeOtherFunction
     48 MACHO-I386-NEXT:     0x13 1 2 1 GENERIC_RELOC_VANILLA 0 _puts
     49 MACHO-I386-NEXT:     0xB 0 2 n/a GENERIC_RELOC_LOCAL_SECTDIFF 1 0x22
     50 MACHO-I386-NEXT:     0x0 0 2 n/a GENERIC_RELOC_PAIR 1 0x8
     51 MACHO-I386-NEXT:   }
     52 MACHO-I386-NEXT: ]
     53 
     54 MACHO-X86-64: Relocations [
     55 MACHO-X86-64-NEXT:  Section __text {
     56 MACHO-X86-64-NEXT:    0xE 1 2 1 X86_64_RELOC_BRANCH 0 _SomeOtherFunction
     57 MACHO-X86-64-NEXT:    0x9 1 2 1 X86_64_RELOC_BRANCH 0 _puts
     58 MACHO-X86-64-NEXT:    0x4 1 2 1 X86_64_RELOC_SIGNED 0 L_.str
     59 MACHO-X86-64-NEXT:  }
     60 MACHO-X86-64-NEXT:]
     61 
     62 MACHO-PPC: Relocations [
     63 MACHO-PPC-NEXT:   Section __text {
     64 MACHO-PPC-NEXT:     Relocation {
     65 MACHO-PPC-NEXT:       Offset: 0x24
     66 MACHO-PPC-NEXT:       PCRel: 0
     67 MACHO-PPC-NEXT:       Length: 2
     68 MACHO-PPC-NEXT:       Type: PPC_RELOC_LO16_SECTDIFF (11)
     69 MACHO-PPC-NEXT:       Value: 0x64
     70 MACHO-PPC-NEXT:     }
     71 MACHO-PPC-NEXT:     Relocation {
     72 MACHO-PPC-NEXT:       Offset: 0x0
     73 MACHO-PPC-NEXT:       PCRel: 0
     74 MACHO-PPC-NEXT:       Length: 2
     75 MACHO-PPC-NEXT:       Type: PPC_RELOC_PAIR (1)
     76 MACHO-PPC-NEXT:       Value: 0xC
     77 MACHO-PPC-NEXT:     }
     78 MACHO-PPC-NEXT:     Relocation {
     79 MACHO-PPC-NEXT:       Offset: 0x1C
     80 MACHO-PPC-NEXT:       PCRel: 0
     81 MACHO-PPC-NEXT:       Length: 2
     82 MACHO-PPC-NEXT:       Type: PPC_RELOC_HA16_SECTDIFF (12)
     83 MACHO-PPC-NEXT:       Value: 0x64
     84 MACHO-PPC-NEXT:     }
     85 MACHO-PPC-NEXT:     Relocation {
     86 MACHO-PPC-NEXT:       Offset: 0x58
     87 MACHO-PPC-NEXT:       PCRel: 0
     88 MACHO-PPC-NEXT:       Length: 2
     89 MACHO-PPC-NEXT:       Type: PPC_RELOC_PAIR (1)
     90 MACHO-PPC-NEXT:       Value: 0xC
     91 MACHO-PPC-NEXT:     }
     92 MACHO-PPC-NEXT:     Relocation {
     93 MACHO-PPC-NEXT:       Offset: 0x18
     94 MACHO-PPC-NEXT:       PCRel: 1
     95 MACHO-PPC-NEXT:       Length: 2
     96 MACHO-PPC-NEXT:       Type: PPC_RELOC_BR24 (3)
     97 MACHO-PPC-NEXT:       Section: __picsymbolstub1 (2)
     98 MACHO-PPC-NEXT:     }
     99 MACHO-PPC-NEXT:   }
    100 MACHO-PPC-NEXT:   Section __picsymbolstub1 {
    101 MACHO-PPC-NEXT:     Relocation {
    102 MACHO-PPC-NEXT:       Offset: 0x14
    103 MACHO-PPC-NEXT:       PCRel: 0
    104 MACHO-PPC-NEXT:       Length: 2
    105 MACHO-PPC-NEXT:       Type: PPC_RELOC_LO16_SECTDIFF (11)
    106 MACHO-PPC-NEXT:       Value: 0x68
    107 MACHO-PPC-NEXT:     }
    108 MACHO-PPC-NEXT:     Relocation {
    109 MACHO-PPC-NEXT:       Offset: 0x0
    110 MACHO-PPC-NEXT:       PCRel: 0
    111 MACHO-PPC-NEXT:       Length: 2
    112 MACHO-PPC-NEXT:       Type: PPC_RELOC_PAIR (1)
    113 MACHO-PPC-NEXT:       Value: 0x48
    114 MACHO-PPC-NEXT:     }
    115 MACHO-PPC-NEXT:     Relocation {
    116 MACHO-PPC-NEXT:       Offset: 0xC
    117 MACHO-PPC-NEXT:       PCRel: 0
    118 MACHO-PPC-NEXT:       Length: 2
    119 MACHO-PPC-NEXT:       Type: PPC_RELOC_HA16_SECTDIFF (12)
    120 MACHO-PPC-NEXT:       Value: 0x68
    121 MACHO-PPC-NEXT:     }
    122 MACHO-PPC-NEXT:     Relocation {
    123 MACHO-PPC-NEXT:       Offset: 0x20
    124 MACHO-PPC-NEXT:       PCRel: 0
    125 MACHO-PPC-NEXT:       Length: 2
    126 MACHO-PPC-NEXT:       Type: PPC_RELOC_PAIR (1)
    127 MACHO-PPC-NEXT:       Value: 0x48
    128 MACHO-PPC-NEXT:     }
    129 MACHO-PPC-NEXT:   }
    130 MACHO-PPC-NEXT:   Section __la_symbol_ptr {
    131 MACHO-PPC-NEXT:     Relocation {
    132 MACHO-PPC-NEXT:       Offset: 0x0
    133 MACHO-PPC-NEXT:       PCRel: 0
    134 MACHO-PPC-NEXT:       Length: 2
    135 MACHO-PPC-NEXT:       Type: PPC_RELOC_VANILLA (0)
    136 MACHO-PPC-NEXT:       Symbol: dyld_stub_binding_helper (5)
    137 MACHO-PPC-NEXT:     }
    138 MACHO-PPC-NEXT:   }
    139 MACHO-PPC-NEXT: ]
    140 
    141 MACHO-PPC64: Relocations [
    142 MACHO-PPC64-NEXT:   Section __text {
    143 MACHO-PPC64-NEXT:     Relocation {
    144 MACHO-PPC64-NEXT:       Offset: 0x24
    145 MACHO-PPC64-NEXT:       PCRel: 0
    146 MACHO-PPC64-NEXT:       Length: 2
    147 MACHO-PPC64-NEXT:       Type:  (14)
    148 MACHO-PPC64-NEXT:       Value: 0x64
    149 MACHO-PPC64-NEXT:     }
    150 MACHO-PPC64-NEXT:     Relocation {
    151 MACHO-PPC64-NEXT:       Offset: 0x0
    152 MACHO-PPC64-NEXT:       PCRel: 0
    153 MACHO-PPC64-NEXT:       Length: 2
    154 MACHO-PPC64-NEXT:       Type:  (1)
    155 MACHO-PPC64-NEXT:       Value: 0xC
    156 MACHO-PPC64-NEXT:     }
    157 MACHO-PPC64-NEXT:     Relocation {
    158 MACHO-PPC64-NEXT:       Offset: 0x1C
    159 MACHO-PPC64-NEXT:       PCRel: 0
    160 MACHO-PPC64-NEXT:       Length: 2
    161 MACHO-PPC64-NEXT:       Type:  (12)
    162 MACHO-PPC64-NEXT:       Value: 0x64
    163 MACHO-PPC64-NEXT:     }
    164 MACHO-PPC64-NEXT:     Relocation {
    165 MACHO-PPC64-NEXT:       Offset: 0x58
    166 MACHO-PPC64-NEXT:       PCRel: 0
    167 MACHO-PPC64-NEXT:       Length: 2
    168 MACHO-PPC64-NEXT:       Type:  (1)
    169 MACHO-PPC64-NEXT:       Value: 0xC
    170 MACHO-PPC64-NEXT:     }
    171 MACHO-PPC64-NEXT:     Relocation {
    172 MACHO-PPC64-NEXT:       Offset: 0x18
    173 MACHO-PPC64-NEXT:       PCRel: 1
    174 MACHO-PPC64-NEXT:       Length: 2
    175 MACHO-PPC64-NEXT:       Type:  (3)
    176 MACHO-PPC64-NEXT:       Section: __picsymbolstub1 (2)
    177 MACHO-PPC64-NEXT:     }
    178 MACHO-PPC64-NEXT:   }
    179 MACHO-PPC64-NEXT:   Section __picsymbolstub1 {
    180 MACHO-PPC64-NEXT:     Relocation {
    181 MACHO-PPC64-NEXT:       Offset: 0x14
    182 MACHO-PPC64-NEXT:       PCRel: 0
    183 MACHO-PPC64-NEXT:       Length: 2
    184 MACHO-PPC64-NEXT:       Type:  (14)
    185 MACHO-PPC64-NEXT:       Value: 0x6C
    186 MACHO-PPC64-NEXT:     }
    187 MACHO-PPC64-NEXT:     Relocation {
    188 MACHO-PPC64-NEXT:       Offset: 0x0
    189 MACHO-PPC64-NEXT:       PCRel: 0
    190 MACHO-PPC64-NEXT:       Length: 2
    191 MACHO-PPC64-NEXT:       Type:  (1)
    192 MACHO-PPC64-NEXT:       Value: 0x48
    193 MACHO-PPC64-NEXT:     }
    194 MACHO-PPC64-NEXT:     Relocation {
    195 MACHO-PPC64-NEXT:       Offset: 0xC
    196 MACHO-PPC64-NEXT:       PCRel: 0
    197 MACHO-PPC64-NEXT:       Length: 2
    198 MACHO-PPC64-NEXT:       Type:  (12)
    199 MACHO-PPC64-NEXT:       Value: 0x6C
    200 MACHO-PPC64-NEXT:     }
    201 MACHO-PPC64-NEXT:     Relocation {
    202 MACHO-PPC64-NEXT:       Offset: 0x24
    203 MACHO-PPC64-NEXT:       PCRel: 0
    204 MACHO-PPC64-NEXT:       Length: 2
    205 MACHO-PPC64-NEXT:       Type:  (1)
    206 MACHO-PPC64-NEXT:       Value: 0x48
    207 MACHO-PPC64-NEXT:     }
    208 MACHO-PPC64-NEXT:   }
    209 MACHO-PPC64-NEXT:   Section __la_symbol_ptr {
    210 MACHO-PPC64-NEXT:     Relocation {
    211 MACHO-PPC64-NEXT:       Offset: 0x0
    212 MACHO-PPC64-NEXT:       PCRel: 0
    213 MACHO-PPC64-NEXT:       Length: 3
    214 MACHO-PPC64-NEXT:       Type:  (0)
    215 MACHO-PPC64-NEXT:       Symbol: dyld_stub_binding_helper (5)
    216 MACHO-PPC64-NEXT:     }
    217 MACHO-PPC64-NEXT:   }
    218 MACHO-PPC64-NEXT: ]
    219 
    220 
    221 MACHO-ARM:       Relocations [
    222 MACHO-ARM-NEXT:    Section __text {
    223 MACHO-ARM-NEXT:      Relocation {
    224 MACHO-ARM-NEXT:        Offset: 0x38
    225 MACHO-ARM-NEXT:        PCRel: 0
    226 MACHO-ARM-NEXT:        Length: 2
    227 MACHO-ARM-NEXT:        Type: ARM_RELOC_SECTDIFF (2)
    228 MACHO-ARM-NEXT:        Value: 0x40
    229 MACHO-ARM-NEXT:      }
    230 MACHO-ARM-NEXT:      Relocation {
    231 MACHO-ARM-NEXT:        Offset: 0x0
    232 MACHO-ARM-NEXT:        PCRel: 0
    233 MACHO-ARM-NEXT:        Length: 2
    234 MACHO-ARM-NEXT:        Type: ARM_RELOC_PAIR (1)
    235 MACHO-ARM-NEXT:        Value: 0x28
    236 MACHO-ARM-NEXT:      }
    237 MACHO-ARM-NEXT:      Relocation {
    238 MACHO-ARM-NEXT:        Offset: 0x20
    239 MACHO-ARM-NEXT:        PCRel: 1
    240 MACHO-ARM-NEXT:        Length: 2
    241 MACHO-ARM-NEXT:        Type: ARM_RELOC_BR24 (5)
    242 MACHO-ARM-NEXT:        Symbol: _g
    243 MACHO-ARM-NEXT:      }
    244 MACHO-ARM-NEXT:      Relocation {
    245 MACHO-ARM-NEXT:        Offset: 0x1C
    246 MACHO-ARM-NEXT:        PCRel: 0
    247 MACHO-ARM-NEXT:        Length: 1
    248 MACHO-ARM-NEXT:        Type: ARM_RELOC_HALF (8)
    249 MACHO-ARM-NEXT:        Symbol: _g
    250 MACHO-ARM-NEXT:      }
    251 MACHO-ARM-NEXT:      Relocation {
    252 MACHO-ARM-NEXT:        Offset: 0x0
    253 MACHO-ARM-NEXT:        PCRel: 0
    254 MACHO-ARM-NEXT:        Length: 1
    255 MACHO-ARM-NEXT:        Type: ARM_RELOC_PAIR (1)
    256 MACHO-ARM-NEXT:        Section: -
    257 MACHO-ARM-NEXT:      }
    258 MACHO-ARM-NEXT:      Relocation {
    259 MACHO-ARM-NEXT:        Offset: 0x18
    260 MACHO-ARM-NEXT:        PCRel: 0
    261 MACHO-ARM-NEXT:        Length: 0
    262 MACHO-ARM-NEXT:        Type: ARM_RELOC_HALF (8)
    263 MACHO-ARM-NEXT:        Symbol: _g
    264 MACHO-ARM-NEXT:      }
    265 MACHO-ARM-NEXT:      Relocation {
    266 MACHO-ARM-NEXT:        Offset: 0x0
    267 MACHO-ARM-NEXT:        PCRel: 0
    268 MACHO-ARM-NEXT:        Length: 0
    269 MACHO-ARM-NEXT:        Type: ARM_RELOC_PAIR (1)
    270 MACHO-ARM-NEXT:        Section: -
    271 MACHO-ARM-NEXT:      }
    272 MACHO-ARM-NEXT:      Relocation {
    273 MACHO-ARM-NEXT:        Offset: 0xC
    274 MACHO-ARM-NEXT:        PCRel: 0
    275 MACHO-ARM-NEXT:        Length: 2
    276 MACHO-ARM-NEXT:        Type: ARM_RELOC_SECTDIFF (2)
    277 MACHO-ARM-NEXT:        Value: 0x44
    278 MACHO-ARM-NEXT:      }
    279 MACHO-ARM-NEXT:      Relocation {
    280 MACHO-ARM-NEXT:        Offset: 0x0
    281 MACHO-ARM-NEXT:        PCRel: 0
    282 MACHO-ARM-NEXT:        Length: 2
    283 MACHO-ARM-NEXT:        Type: ARM_RELOC_PAIR (1)
    284 MACHO-ARM-NEXT:        Value: 0x4
    285 MACHO-ARM-NEXT:      }
    286 MACHO-ARM-NEXT:    }
    287 MACHO-ARM-NEXT:  ]
    288 
    289 WASM:      Relocations [
    290 WASM-NEXT:   Section (4) CODE {
    291 WASM-NEXT:     Relocation {
    292 WASM-NEXT:       Type: R_WEBASSEMBLY_MEMORY_ADDR_SLEB (4)
    293 WASM-NEXT:       Offset: 0x4
    294 WASM-NEXT:       Symbol: .L.str
    295 WASM-NEXT:       Addend: 0
    296 WASM-NEXT:     }
    297 WASM-NEXT:     Relocation {
    298 WASM-NEXT:       Type: R_WEBASSEMBLY_FUNCTION_INDEX_LEB (0)
    299 WASM-NEXT:       Offset: 0xA
    300 WASM-NEXT:       Symbol: puts
    301 WASM-NEXT:     }
    302 WASM-NEXT:     Relocation {
    303 WASM-NEXT:       Type: R_WEBASSEMBLY_FUNCTION_INDEX_LEB (0)
    304 WASM-NEXT:       Offset: 0x11
    305 WASM-NEXT:       Symbol: SomeOtherFunction
    306 WASM-NEXT:     }
    307 WASM-NEXT:   }
    308 WASM-NEXT: ]
    309