blob: 4b528a7ef917c46cb8e4720080279f4a2da14a38 [file] [log] [blame]
Simon Atanasyand46c0452016-01-16 22:40:09 +00001// 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: }