reloc-zero-name-or-value.test
4.65 KB
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
## Show that the value field is omitted when a relocation does not reference a symbol.
## In other cases, particularly when a symbol has a zero value or when it has an empty
## name, we print it. Test for both static and dynamic relocation printing.
# RUN: yaml2obj %s -o %t
# RUN: llvm-readelf --relocations --dyn-relocations %t 2>&1 | FileCheck %s -DFILE=%t
# CHECK: Relocation section '.rela.text' at offset {{.*}} contains 5 entries:
# CHECK-NEXT: Offset Info Type Symbol's Value Symbol's Name + Addend
# CHECK-NEXT: 0000000000000000 0000000000000000 R_X86_64_NONE 1
# CHECK-NEXT: 0000000000000000 0000000100000000 R_X86_64_NONE 0000000000000000 sym + 1
# CHECK-NEXT: 0000000000000000 0000000200000000 R_X86_64_NONE 0000000000000123 456
# CHECK-NEXT: warning: '[[FILE]]': unable to get section index for symbol with st_shndx = 0x0 (SHN_UNDEF)
# CHECK-NEXT: 0000000000000000 0000000300000000 R_X86_64_NONE 0000000000000000 <?> + 678
# CHECK-NEXT: 0000000000000000 0000000400000000 R_X86_64_NONE 0000000000000000 2
# CHECK: Relocation section '.rela.dyn' at offset {{.*}} contains 5 entries:
# CHECK-NEXT: Offset Info Type Symbol's Value Symbol's Name + Addend
# CHECK-NEXT: 0000000000000000 0000000000000000 R_X86_64_NONE 1
# CHECK-NEXT: 0000000000000000 0000000100000000 R_X86_64_NONE 0000000000000000 sym + 1
# CHECK-NEXT: 0000000000000000 0000000200000000 R_X86_64_NONE 0000000000000123 456
# CHECK-NEXT: 0000000000000000 0000000300000000 R_X86_64_NONE 0000000000000000 <?> + 678
# CHECK-NEXT: 0000000000000000 0000000400000000 R_X86_64_NONE 0000000000000000 2
# CHECK: 'RELA' relocation section at offset {{.*}} contains 120 bytes:
# CHECK-NEXT: Offset Info Type Symbol's Value Symbol's Name + Addend
# CHECK-NEXT: 0000000000000000 0000000000000000 R_X86_64_NONE 1
# CHECK-NEXT: 0000000000000000 0000000100000000 R_X86_64_NONE 0000000000000000 sym + 1
# CHECK-NEXT: 0000000000000000 0000000200000000 R_X86_64_NONE 0000000000000123 456
# CHECK-NEXT: 0000000000000000 0000000300000000 R_X86_64_NONE 0000000000000000 678
# CHECK-NEXT: 0000000000000000 0000000400000000 R_X86_64_NONE 0000000000000000 2
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_EXEC
Machine: EM_X86_64
Sections:
- Name: .text
Type: SHT_PROGBITS
Size: 0x10
- Name: .rela.text
Type: SHT_RELA
Link: .symtab
Info: .text
Relocations:
- Offset: 0
Type: R_X86_64_NONE
Addend: 1
- Offset: 0
Type: R_X86_64_NONE
Addend: 1
Symbol: sym
- Offset: 0
Type: R_X86_64_NONE
Addend: 0x456
Symbol: 2
- Offset: 0
Addend: 0x678
Type: R_X86_64_NONE
Symbol: 3
## References a symbol with a zero value and an empty name.
- Offset: 0
Type: R_X86_64_NONE
Addend: 2
Symbol: 4
- Name: .dynamic
Type: SHT_DYNAMIC
Flags: [SHF_ALLOC]
Address: 0x1000
AddressAlign: 0x1000
Entries:
- Tag: DT_RELA
Value: 0x1100
- Tag: DT_RELASZ
Value: 120
- Tag: DT_RELAENT
Value: 24
- Tag: DT_NULL
Value: 0
- Name: .rela.dyn
Type: SHT_RELA
Flags: [SHF_ALLOC]
Info: .text
Address: 0x1100
AddressAlign: 0x100
Relocations:
- Offset: 0
Type: R_X86_64_NONE
Addend: 1
- Offset: 0
Type: R_X86_64_NONE
Addend: 1
Symbol: sym
- Offset: 0
Type: R_X86_64_NONE
Addend: 0x456
Symbol: 2
- Offset: 0
Addend: 0x678
Type: R_X86_64_NONE
Symbol: 3
## References a symbol with a zero value and an empty name.
- Offset: 0
Type: R_X86_64_NONE
Addend: 2
Symbol: 4
Symbols:
- Name: sym
Value: 0
Section: .text
Binding: STB_GLOBAL
- Value: 0x123
Section: .text
Binding: STB_GLOBAL
- Type: STT_SECTION
Index: 0
- Value: 0x0
Section: .text
Binding: STB_GLOBAL
DynamicSymbols:
- Name: sym
Value: 0
Section: .text
Binding: STB_GLOBAL
- Value: 0x123
Section: .text
Binding: STB_GLOBAL
- Type: STT_SECTION
Index: 0
- Value: 0x0
Section: .text
Binding: STB_GLOBAL
ProgramHeaders:
- Type: PT_LOAD
VAddr: 0x1000
Sections:
- Section: .dynamic
- Section: .rela.dyn
- Type: PT_DYNAMIC
VAddr: 0x1000
Sections:
- Section: .dynamic