| // Check that 'llvm-readobj --dyn-relocations' shows dynamic relocations |
| // if they have REL record format. |
| |
| // dyn-rel.so.elf-mips |
| // % cat test.s |
| // .globl __start |
| // __start: |
| // nop |
| // |
| // .data |
| // .type v1,@object |
| // .size v1,4 |
| // v1: |
| // .word 0 |
| // |
| // .globl v2 |
| // .type v2,@object |
| // .size v2,8 |
| // v2: |
| // .word v2+4 # R_MIPS_32 target v2 addend 4 |
| // .word v1 # R_MIPS_32 target v1 addend 0 |
| // |
| // % llvm-mc -filetype=obj -triple=mips-unknown-linux -o test.o test.s |
| // % ld -m elf32btsmip -shared -o dyn-rel.so.elf-mips test.o |
| |
| RUN: llvm-readobj -r --dyn-relocations --expand-relocs \ |
| RUN: %p/Inputs/dyn-rel.so.elf-mips | FileCheck %s |
| |
| // CHECK: Relocations [ |
| // CHECK-NEXT: Section (6) .rel.dyn { |
| // CHECK-NEXT: Relocation { |
| // CHECK-NEXT: Offset: 0x0 |
| // CHECK-NEXT: Type: R_MIPS_NONE (0) |
| // CHECK-NEXT: Symbol: - (0) |
| // CHECK-NEXT: } |
| // CHECK-NEXT: Relocation { |
| // CHECK-NEXT: Offset: 0x102F8 |
| // CHECK-NEXT: Type: R_MIPS_REL32 (3) |
| // CHECK-NEXT: Symbol: - (0) |
| // CHECK-NEXT: } |
| // CHECK-NEXT: Relocation { |
| // CHECK-NEXT: Offset: 0x102F4 |
| // CHECK-NEXT: Type: R_MIPS_REL32 (3) |
| // CHECK-NEXT: Symbol: v2 (9) |
| // CHECK-NEXT: } |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| |
| // CHECK: Dynamic Relocations { |
| // CHECK-NEXT: Relocation { |
| // CHECK-NEXT: Offset: 0x0 |
| // CHECK-NEXT: Type: R_MIPS_NONE (0) |
| // CHECK-NEXT: Symbol: - |
| // CHECK-NEXT: } |
| // CHECK-NEXT: Relocation { |
| // CHECK-NEXT: Offset: 0x102F8 |
| // CHECK-NEXT: Type: R_MIPS_REL32 (3) |
| // CHECK-NEXT: Symbol: - |
| // CHECK-NEXT: } |
| // CHECK-NEXT: Relocation { |
| // CHECK-NEXT: Offset: 0x102F4 |
| // CHECK-NEXT: Type: R_MIPS_REL32 (3) |
| // CHECK-NEXT: Symbol: v2 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: } |