1// Check that 'llvm-readobj -dyn-relocations' shows dynamic relocations 2// if they have REL record format. 3 4// dyn-rel.so.elf-mips 5// % cat test.s 6// .globl __start 7// __start: 8// nop 9// 10// .data 11// .type v1,@object 12// .size v1,4 13// v1: 14// .word 0 15// 16// .globl v2 17// .type v2,@object 18// .size v2,8 19// v2: 20// .word v2+4 # R_MIPS_32 target v2 addend 4 21// .word v1 # R_MIPS_32 target v1 addend 0 22// 23// % llvm-mc -filetype=obj -triple=mips-unknown-linux -o test.o test.s 24// % ld -m elf32btsmip -shared -o dyn-rel.so.elf-mips test.o 25 26RUN: llvm-readobj -relocations -dyn-relocations -expand-relocs \ 27RUN: %p/Inputs/dyn-rel.so.elf-mips | FileCheck %s 28 29// CHECK: Relocations [ 30// CHECK-NEXT: Section (6) .rel.dyn { 31// CHECK-NEXT: Relocation { 32// CHECK-NEXT: Offset: 0x0 33// CHECK-NEXT: Type: R_MIPS_NONE (0) 34// CHECK-NEXT: Symbol: - (0) 35// CHECK-NEXT: Addend: 0x0 36// CHECK-NEXT: } 37// CHECK-NEXT: Relocation { 38// CHECK-NEXT: Offset: 0x102F8 39// CHECK-NEXT: Type: R_MIPS_REL32 (3) 40// CHECK-NEXT: Symbol: - (0) 41// CHECK-NEXT: Addend: 0x0 42// CHECK-NEXT: } 43// CHECK-NEXT: Relocation { 44// CHECK-NEXT: Offset: 0x102F4 45// CHECK-NEXT: Type: R_MIPS_REL32 (3) 46// CHECK-NEXT: Symbol: v2 (9) 47// CHECK-NEXT: Addend: 0x0 48// CHECK-NEXT: } 49// CHECK-NEXT: } 50// CHECK-NEXT: ] 51 52// CHECK: Dynamic Relocations { 53// CHECK-NEXT: Relocation { 54// CHECK-NEXT: Offset: 0x0 55// CHECK-NEXT: Type: R_MIPS_NONE (0) 56// CHECK-NEXT: Symbol: - 57// CHECK-NEXT: Addend: 0x0 58// CHECK-NEXT: } 59// CHECK-NEXT: Relocation { 60// CHECK-NEXT: Offset: 0x102F8 61// CHECK-NEXT: Type: R_MIPS_REL32 (3) 62// CHECK-NEXT: Symbol: - 63// CHECK-NEXT: Addend: 0x0 64// CHECK-NEXT: } 65// CHECK-NEXT: Relocation { 66// CHECK-NEXT: Offset: 0x102F4 67// CHECK-NEXT: Type: R_MIPS_REL32 (3) 68// CHECK-NEXT: Symbol: v2 69// CHECK-NEXT: Addend: 0x0 70// CHECK-NEXT: } 71// CHECK-NEXT: } 72