aboutsummaryrefslogtreecommitdiff
path: root/test/tools/llvm-readobj/relocations.test
blob: 2e11aa27c37b6be7a7402a3e81a21a5d36bade4e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
RUN: llvm-readobj -r %p/Inputs/trivial.obj.coff-i386 \
RUN:   | FileCheck %s -check-prefix COFF
RUN: llvm-readobj -r %p/Inputs/bad-relocs.obj.coff-i386 \
RUN:   | FileCheck %s -check-prefix BAD-COFF-RELOCS
RUN: llvm-readobj -r %p/Inputs/relocs-no-symtab.obj.coff-i386 \
RUN:   | FileCheck %s -check-prefix BAD-COFF-RELOCS
RUN: llvm-readobj -r %p/Inputs/trivial.obj.elf-i386 \
RUN:   | FileCheck %s -check-prefix ELF
RUN: llvm-readobj -r %p/Inputs/trivial.obj.macho-i386 \
RUN:   | FileCheck %s -check-prefix MACHO-I386
RUN: llvm-readobj -r %p/Inputs/trivial.obj.macho-x86-64 \
RUN:   | FileCheck %s -check-prefix MACHO-X86-64
RUN: llvm-readobj -r %p/Inputs/trivial.obj.macho-ppc \
RUN:   | FileCheck %s -check-prefix MACHO-PPC
RUN: llvm-readobj -r %p/Inputs/trivial.obj.macho-ppc64 \
RUN:   | FileCheck %s -check-prefix MACHO-PPC64
RUN: llvm-readobj -r -expand-relocs %p/Inputs/trivial.obj.macho-arm \
RUN:   | FileCheck %s -check-prefix MACHO-ARM

COFF:      Relocations [
COFF-NEXT:   Section (1) .text {
COFF-NEXT:     0x4 IMAGE_REL_I386_DIR32 .data
COFF-NEXT:     0x9 IMAGE_REL_I386_REL32 _puts
COFF-NEXT:     0xE IMAGE_REL_I386_REL32 _SomeOtherFunction
COFF-NEXT:   }
COFF-NEXT: ]

BAD-COFF-RELOCS:      Relocations [
BAD-COFF-RELOCS-NEXT:   Section (1) sec {
BAD-COFF-RELOCS-NEXT:     0xDEADBEEF IMAGE_REL_I386_ABSOLUTE -
BAD-COFF-RELOCS-NEXT:   }
BAD-COFF-RELOCS-NEXT: ]

ELF:      Relocations [
ELF-NEXT:   Section (2) .rel.text {
ELF-NEXT:     0xC R_386_GOTPC _GLOBAL_OFFSET_TABLE_ 0x0
ELF-NEXT:     0x12 R_386_GOTOFF .L.str 0x0
ELF-NEXT:     0x1A R_386_PLT32 puts 0x0
ELF-NEXT:     0x1F R_386_PLT32 SomeOtherFunction 0x0
ELF-NEXT:   }
ELF-NEXT: ]

MACHO-I386:      Relocations [
MACHO-I386-NEXT:   Section __text {
MACHO-I386-NEXT:     0x18 1 2 1 GENERIC_RELOC_VANILLA 0 _SomeOtherFunction
MACHO-I386-NEXT:     0x13 1 2 1 GENERIC_RELOC_VANILLA 0 _puts
MACHO-I386-NEXT:     0xB 0 2 n/a GENERIC_RELOC_LOCAL_SECTDIFF 1 0x22
MACHO-I386-NEXT:     0x0 0 2 n/a GENERIC_RELOC_PAIR 1 0x8
MACHO-I386-NEXT:   }
MACHO-I386-NEXT: ]

MACHO-X86-64: Relocations [
MACHO-X86-64-NEXT:  Section __text {
MACHO-X86-64-NEXT:    0xE 1 2 1 X86_64_RELOC_BRANCH 0 _SomeOtherFunction
MACHO-X86-64-NEXT:    0x9 1 2 1 X86_64_RELOC_BRANCH 0 _puts
MACHO-X86-64-NEXT:    0x4 1 2 1 X86_64_RELOC_SIGNED 0 L_.str
MACHO-X86-64-NEXT:  }
MACHO-X86-64-NEXT:]

MACHO-PPC: Relocations [
MACHO-PPC-NEXT:   Section __text {
MACHO-PPC-NEXT:     0x24 0 2 n/a PPC_RELOC_LO16_SECTDIFF 1 0x64
MACHO-PPC-NEXT:     0x0 0 2 n/a PPC_RELOC_PAIR 1 0xC
MACHO-PPC-NEXT:     0x1C 0 2 n/a PPC_RELOC_HA16_SECTDIFF 1 0x64
MACHO-PPC-NEXT:     0x58 0 2 n/a PPC_RELOC_PAIR 1 0xC
MACHO-PPC-NEXT:     0x18 1 2 0 PPC_RELOC_BR24 0 0x2
MACHO-PPC-NEXT:   }
MACHO-PPC-NEXT:   Section __picsymbolstub1 {
MACHO-PPC-NEXT:     0x14 0 2 n/a PPC_RELOC_LO16_SECTDIFF 1 0x68
MACHO-PPC-NEXT:     0x0 0 2 n/a PPC_RELOC_PAIR 1 0x48
MACHO-PPC-NEXT:     0xC 0 2 n/a PPC_RELOC_HA16_SECTDIFF 1 0x68
MACHO-PPC-NEXT:     0x20 0 2 n/a PPC_RELOC_PAIR 1 0x48
MACHO-PPC-NEXT:   }
MACHO-PPC-NEXT:   Section __la_symbol_ptr {
MACHO-PPC-NEXT:     0x0 0 2 1 PPC_RELOC_VANILLA 0 dyld_stub_binding_helper
MACHO-PPC-NEXT:   }
MACHO-PPC-NEXT: ]

MACHO-PPC64: Relocations [
MACHO-PPC64-NEXT:   Section __text {
MACHO-PPC64-NEXT:     0x24 0 2 n/a 1 0x64
MACHO-PPC64-NEXT:     0x0 0 2 n/a 1 0xC
MACHO-PPC64-NEXT:     0x1C 0 2 n/a 1 0x64
MACHO-PPC64-NEXT:     0x58 0 2 n/a 1 0xC
MACHO-PPC64-NEXT:     0x18 1 2 0 0 0x2
MACHO-PPC64-NEXT:   }
MACHO-PPC64-NEXT:   Section __picsymbolstub1 {
MACHO-PPC64-NEXT:     0x14 0 2 n/a 1 0x6C
MACHO-PPC64-NEXT:     0x0 0 2 n/a 1 0x48
MACHO-PPC64-NEXT:     0xC 0 2 n/a 1 0x6C
MACHO-PPC64-NEXT:     0x24 0 2 n/a 1 0x48
MACHO-PPC64-NEXT:   }
MACHO-PPC64-NEXT:   Section __la_symbol_ptr {
MACHO-PPC64-NEXT:     0x0 0 3 1 0 dyld_stub_binding_helper
MACHO-PPC64-NEXT:   }
MACHO-PPC64-NEXT: ]


MACHO-ARM:       Relocations [
MACHO-ARM-NEXT:    Section __text {
MACHO-ARM-NEXT:      Relocation {
MACHO-ARM-NEXT:        Offset: 0x38
MACHO-ARM-NEXT:        PCRel: 0
MACHO-ARM-NEXT:        Length: 2
MACHO-ARM-NEXT:        Extern: N/A
MACHO-ARM-NEXT:        Type: ARM_RELOC_SECTDIFF (2)
MACHO-ARM-NEXT:        Symbol: 0x40
MACHO-ARM-NEXT:        Scattered: 1
MACHO-ARM-NEXT:      }
MACHO-ARM-NEXT:      Relocation {
MACHO-ARM-NEXT:        Offset: 0x0
MACHO-ARM-NEXT:        PCRel: 0
MACHO-ARM-NEXT:        Length: 2
MACHO-ARM-NEXT:        Extern: N/A
MACHO-ARM-NEXT:        Type: ARM_RELOC_PAIR (1)
MACHO-ARM-NEXT:        Symbol: 0x28
MACHO-ARM-NEXT:        Scattered: 1
MACHO-ARM-NEXT:      }
MACHO-ARM-NEXT:      Relocation {
MACHO-ARM-NEXT:        Offset: 0x20
MACHO-ARM-NEXT:        PCRel: 1
MACHO-ARM-NEXT:        Length: 2
MACHO-ARM-NEXT:        Extern: 1
MACHO-ARM-NEXT:        Type: ARM_RELOC_BR24 (5)
MACHO-ARM-NEXT:        Symbol: _g
MACHO-ARM-NEXT:        Scattered: 0
MACHO-ARM-NEXT:      }
MACHO-ARM-NEXT:      Relocation {
MACHO-ARM-NEXT:        Offset: 0x1C
MACHO-ARM-NEXT:        PCRel: 0
MACHO-ARM-NEXT:        Length: 1
MACHO-ARM-NEXT:        Extern: 1
MACHO-ARM-NEXT:        Type: ARM_RELOC_HALF (8)
MACHO-ARM-NEXT:        Symbol: _g
MACHO-ARM-NEXT:        Scattered: 0
MACHO-ARM-NEXT:      }
MACHO-ARM-NEXT:      Relocation {
MACHO-ARM-NEXT:        Offset: 0x0
MACHO-ARM-NEXT:        PCRel: 0
MACHO-ARM-NEXT:        Length: 1
MACHO-ARM-NEXT:        Extern: 0
MACHO-ARM-NEXT:        Type: ARM_RELOC_PAIR (1)
MACHO-ARM-NEXT:        Symbol: 0xFFFFFF
MACHO-ARM-NEXT:        Scattered: 0
MACHO-ARM-NEXT:      }
MACHO-ARM-NEXT:      Relocation {
MACHO-ARM-NEXT:        Offset: 0x18
MACHO-ARM-NEXT:        PCRel: 0
MACHO-ARM-NEXT:        Length: 0
MACHO-ARM-NEXT:        Extern: 1
MACHO-ARM-NEXT:        Type: ARM_RELOC_HALF (8)
MACHO-ARM-NEXT:        Symbol: _g
MACHO-ARM-NEXT:        Scattered: 0
MACHO-ARM-NEXT:      }
MACHO-ARM-NEXT:      Relocation {
MACHO-ARM-NEXT:        Offset: 0x0
MACHO-ARM-NEXT:        PCRel: 0
MACHO-ARM-NEXT:        Length: 0
MACHO-ARM-NEXT:        Extern: 0
MACHO-ARM-NEXT:        Type: ARM_RELOC_PAIR (1)
MACHO-ARM-NEXT:        Symbol: 0xFFFFFF
MACHO-ARM-NEXT:        Scattered: 0
MACHO-ARM-NEXT:      }
MACHO-ARM-NEXT:      Relocation {
MACHO-ARM-NEXT:        Offset: 0xC
MACHO-ARM-NEXT:        PCRel: 0
MACHO-ARM-NEXT:        Length: 2
MACHO-ARM-NEXT:        Extern: N/A
MACHO-ARM-NEXT:        Type: ARM_RELOC_SECTDIFF (2)
MACHO-ARM-NEXT:        Symbol: 0x44
MACHO-ARM-NEXT:        Scattered: 1
MACHO-ARM-NEXT:      }
MACHO-ARM-NEXT:      Relocation {
MACHO-ARM-NEXT:        Offset: 0x0
MACHO-ARM-NEXT:        PCRel: 0
MACHO-ARM-NEXT:        Length: 2
MACHO-ARM-NEXT:        Extern: N/A
MACHO-ARM-NEXT:        Type: ARM_RELOC_PAIR (1)
MACHO-ARM-NEXT:        Symbol: 0x4
MACHO-ARM-NEXT:        Scattered: 1
MACHO-ARM-NEXT:      }
MACHO-ARM-NEXT:    }
MACHO-ARM-NEXT:  ]