1
2#ifndef ELF_RELOC
3#error "ELF_RELOC must be defined"
4#endif
5
6// glibc's PowerPC asm/sigcontext.h, when compiling for PPC64, has the
7// unfortunate behavior of including asm/elf.h, which defines R_PPC_NONE, etc.
8// to their corresponding integer values. As a result, we need to undef them
9// here before continuing.
10
11#undef R_PPC64_NONE
12#undef R_PPC64_ADDR32
13#undef R_PPC64_ADDR24
14#undef R_PPC64_ADDR16
15#undef R_PPC64_ADDR16_LO
16#undef R_PPC64_ADDR16_HI
17#undef R_PPC64_ADDR16_HA
18#undef R_PPC64_ADDR14
19#undef R_PPC64_ADDR14_BRTAKEN
20#undef R_PPC64_ADDR14_BRNTAKEN
21#undef R_PPC64_REL24
22#undef R_PPC64_REL14
23#undef R_PPC64_REL14_BRTAKEN
24#undef R_PPC64_REL14_BRNTAKEN
25#undef R_PPC64_GOT16
26#undef R_PPC64_GOT16_LO
27#undef R_PPC64_GOT16_HI
28#undef R_PPC64_GOT16_HA
29#undef R_PPC64_COPY
30#undef R_PPC64_GLOB_DAT
31#undef R_PPC64_JMP_SLOT
32#undef R_PPC64_RELATIVE
33#undef R_PPC64_REL32
34#undef R_PPC64_ADDR64
35#undef R_PPC64_ADDR16_HIGHER
36#undef R_PPC64_ADDR16_HIGHERA
37#undef R_PPC64_ADDR16_HIGHEST
38#undef R_PPC64_ADDR16_HIGHESTA
39#undef R_PPC64_REL64
40#undef R_PPC64_TOC16
41#undef R_PPC64_TOC16_LO
42#undef R_PPC64_TOC16_HI
43#undef R_PPC64_TOC16_HA
44#undef R_PPC64_TOC
45#undef R_PPC64_ADDR16_DS
46#undef R_PPC64_ADDR16_LO_DS
47#undef R_PPC64_GOT16_DS
48#undef R_PPC64_GOT16_LO_DS
49#undef R_PPC64_TOC16_DS
50#undef R_PPC64_TOC16_LO_DS
51#undef R_PPC64_TLS
52#undef R_PPC64_DTPMOD64
53#undef R_PPC64_TPREL16
54#undef R_PPC64_TPREL16_LO
55#undef R_PPC64_TPREL16_HI
56#undef R_PPC64_TPREL16_HA
57#undef R_PPC64_TPREL64
58#undef R_PPC64_DTPREL16
59#undef R_PPC64_DTPREL16_LO
60#undef R_PPC64_DTPREL16_HI
61#undef R_PPC64_DTPREL16_HA
62#undef R_PPC64_DTPREL64
63#undef R_PPC64_GOT_TLSGD16
64#undef R_PPC64_GOT_TLSGD16_LO
65#undef R_PPC64_GOT_TLSGD16_HI
66#undef R_PPC64_GOT_TLSGD16_HA
67#undef R_PPC64_GOT_TLSLD16
68#undef R_PPC64_GOT_TLSLD16_LO
69#undef R_PPC64_GOT_TLSLD16_HI
70#undef R_PPC64_GOT_TLSLD16_HA
71#undef R_PPC64_GOT_TPREL16_DS
72#undef R_PPC64_GOT_TPREL16_LO_DS
73#undef R_PPC64_GOT_TPREL16_HI
74#undef R_PPC64_GOT_TPREL16_HA
75#undef R_PPC64_GOT_DTPREL16_DS
76#undef R_PPC64_GOT_DTPREL16_LO_DS
77#undef R_PPC64_GOT_DTPREL16_HI
78#undef R_PPC64_GOT_DTPREL16_HA
79#undef R_PPC64_TPREL16_DS
80#undef R_PPC64_TPREL16_LO_DS
81#undef R_PPC64_TPREL16_HIGHER
82#undef R_PPC64_TPREL16_HIGHERA
83#undef R_PPC64_TPREL16_HIGHEST
84#undef R_PPC64_TPREL16_HIGHESTA
85#undef R_PPC64_DTPREL16_DS
86#undef R_PPC64_DTPREL16_LO_DS
87#undef R_PPC64_DTPREL16_HIGHER
88#undef R_PPC64_DTPREL16_HIGHERA
89#undef R_PPC64_DTPREL16_HIGHEST
90#undef R_PPC64_DTPREL16_HIGHESTA
91#undef R_PPC64_TLSGD
92#undef R_PPC64_TLSLD
93#undef R_PPC64_ADDR16_HIGH
94#undef R_PPC64_ADDR16_HIGHA
95#undef R_PPC64_TPREL16_HIGH
96#undef R_PPC64_TPREL16_HIGHA
97#undef R_PPC64_DTPREL16_HIGH
98#undef R_PPC64_DTPREL16_HIGHA
99#undef R_PPC64_REL24_NOTOC
100#undef R_PPC64_PCREL_OPT
101#undef R_PPC64_PCREL34
102#undef R_PPC64_GOT_PCREL34
103#undef R_PPC64_TPREL34
104#undef R_PPC64_DTPREL34
105#undef R_PPC64_GOT_TLSGD_PCREL34
106#undef R_PPC64_GOT_TLSLD_PCREL34
107#undef R_PPC64_GOT_TPREL_PCREL34
108#undef R_PPC64_IRELATIVE
109#undef R_PPC64_REL16
110#undef R_PPC64_REL16_LO
111#undef R_PPC64_REL16_HI
112#undef R_PPC64_REL16_HA
113
114ELF_RELOC(R_PPC64_NONE, 0)
115ELF_RELOC(R_PPC64_ADDR32, 1)
116ELF_RELOC(R_PPC64_ADDR24, 2)
117ELF_RELOC(R_PPC64_ADDR16, 3)
118ELF_RELOC(R_PPC64_ADDR16_LO, 4)
119ELF_RELOC(R_PPC64_ADDR16_HI, 5)
120ELF_RELOC(R_PPC64_ADDR16_HA, 6)
121ELF_RELOC(R_PPC64_ADDR14, 7)
122ELF_RELOC(R_PPC64_ADDR14_BRTAKEN, 8)
123ELF_RELOC(R_PPC64_ADDR14_BRNTAKEN, 9)
124ELF_RELOC(R_PPC64_REL24, 10)
125ELF_RELOC(R_PPC64_REL14, 11)
126ELF_RELOC(R_PPC64_REL14_BRTAKEN, 12)
127ELF_RELOC(R_PPC64_REL14_BRNTAKEN, 13)
128ELF_RELOC(R_PPC64_GOT16, 14)
129ELF_RELOC(R_PPC64_GOT16_LO, 15)
130ELF_RELOC(R_PPC64_GOT16_HI, 16)
131ELF_RELOC(R_PPC64_GOT16_HA, 17)
132ELF_RELOC(R_PPC64_COPY, 19)
133ELF_RELOC(R_PPC64_GLOB_DAT, 20)
134ELF_RELOC(R_PPC64_JMP_SLOT, 21)
135ELF_RELOC(R_PPC64_RELATIVE, 22)
136ELF_RELOC(R_PPC64_REL32, 26)
137ELF_RELOC(R_PPC64_ADDR64, 38)
138ELF_RELOC(R_PPC64_ADDR16_HIGHER, 39)
139ELF_RELOC(R_PPC64_ADDR16_HIGHERA, 40)
140ELF_RELOC(R_PPC64_ADDR16_HIGHEST, 41)
141ELF_RELOC(R_PPC64_ADDR16_HIGHESTA, 42)
142ELF_RELOC(R_PPC64_REL64, 44)
143ELF_RELOC(R_PPC64_TOC16, 47)
144ELF_RELOC(R_PPC64_TOC16_LO, 48)
145ELF_RELOC(R_PPC64_TOC16_HI, 49)
146ELF_RELOC(R_PPC64_TOC16_HA, 50)
147ELF_RELOC(R_PPC64_TOC, 51)
148ELF_RELOC(R_PPC64_ADDR16_DS, 56)
149ELF_RELOC(R_PPC64_ADDR16_LO_DS, 57)
150ELF_RELOC(R_PPC64_GOT16_DS, 58)
151ELF_RELOC(R_PPC64_GOT16_LO_DS, 59)
152ELF_RELOC(R_PPC64_TOC16_DS, 63)
153ELF_RELOC(R_PPC64_TOC16_LO_DS, 64)
154ELF_RELOC(R_PPC64_TLS, 67)
155ELF_RELOC(R_PPC64_DTPMOD64, 68)
156ELF_RELOC(R_PPC64_TPREL16, 69)
157ELF_RELOC(R_PPC64_TPREL16_LO, 70)
158ELF_RELOC(R_PPC64_TPREL16_HI, 71)
159ELF_RELOC(R_PPC64_TPREL16_HA, 72)
160ELF_RELOC(R_PPC64_TPREL64, 73)
161ELF_RELOC(R_PPC64_DTPREL16, 74)
162ELF_RELOC(R_PPC64_DTPREL16_LO, 75)
163ELF_RELOC(R_PPC64_DTPREL16_HI, 76)
164ELF_RELOC(R_PPC64_DTPREL16_HA, 77)
165ELF_RELOC(R_PPC64_DTPREL64, 78)
166ELF_RELOC(R_PPC64_GOT_TLSGD16, 79)
167ELF_RELOC(R_PPC64_GOT_TLSGD16_LO, 80)
168ELF_RELOC(R_PPC64_GOT_TLSGD16_HI, 81)
169ELF_RELOC(R_PPC64_GOT_TLSGD16_HA, 82)
170ELF_RELOC(R_PPC64_GOT_TLSLD16, 83)
171ELF_RELOC(R_PPC64_GOT_TLSLD16_LO, 84)
172ELF_RELOC(R_PPC64_GOT_TLSLD16_HI, 85)
173ELF_RELOC(R_PPC64_GOT_TLSLD16_HA, 86)
174ELF_RELOC(R_PPC64_GOT_TPREL16_DS, 87)
175ELF_RELOC(R_PPC64_GOT_TPREL16_LO_DS, 88)
176ELF_RELOC(R_PPC64_GOT_TPREL16_HI, 89)
177ELF_RELOC(R_PPC64_GOT_TPREL16_HA, 90)
178ELF_RELOC(R_PPC64_GOT_DTPREL16_DS, 91)
179ELF_RELOC(R_PPC64_GOT_DTPREL16_LO_DS, 92)
180ELF_RELOC(R_PPC64_GOT_DTPREL16_HI, 93)
181ELF_RELOC(R_PPC64_GOT_DTPREL16_HA, 94)
182ELF_RELOC(R_PPC64_TPREL16_DS, 95)
183ELF_RELOC(R_PPC64_TPREL16_LO_DS, 96)
184ELF_RELOC(R_PPC64_TPREL16_HIGHER, 97)
185ELF_RELOC(R_PPC64_TPREL16_HIGHERA, 98)
186ELF_RELOC(R_PPC64_TPREL16_HIGHEST, 99)
187ELF_RELOC(R_PPC64_TPREL16_HIGHESTA, 100)
188ELF_RELOC(R_PPC64_DTPREL16_DS, 101)
189ELF_RELOC(R_PPC64_DTPREL16_LO_DS, 102)
190ELF_RELOC(R_PPC64_DTPREL16_HIGHER, 103)
191ELF_RELOC(R_PPC64_DTPREL16_HIGHERA, 104)
192ELF_RELOC(R_PPC64_DTPREL16_HIGHEST, 105)
193ELF_RELOC(R_PPC64_DTPREL16_HIGHESTA, 106)
194ELF_RELOC(R_PPC64_TLSGD, 107)
195ELF_RELOC(R_PPC64_TLSLD, 108)
196ELF_RELOC(R_PPC64_ADDR16_HIGH, 110)
197ELF_RELOC(R_PPC64_ADDR16_HIGHA, 111)
198ELF_RELOC(R_PPC64_TPREL16_HIGH, 112)
199ELF_RELOC(R_PPC64_TPREL16_HIGHA, 113)
200ELF_RELOC(R_PPC64_DTPREL16_HIGH, 114)
201ELF_RELOC(R_PPC64_DTPREL16_HIGHA, 115)
202ELF_RELOC(R_PPC64_REL24_NOTOC, 116)
203ELF_RELOC(R_PPC64_PCREL_OPT, 123)
204ELF_RELOC(R_PPC64_PCREL34, 132)
205ELF_RELOC(R_PPC64_GOT_PCREL34, 133)
206ELF_RELOC(R_PPC64_TPREL34, 146)
207ELF_RELOC(R_PPC64_DTPREL34, 147)
208ELF_RELOC(R_PPC64_GOT_TLSGD_PCREL34, 148)
209ELF_RELOC(R_PPC64_GOT_TLSLD_PCREL34, 149)
210ELF_RELOC(R_PPC64_GOT_TPREL_PCREL34, 150)
211ELF_RELOC(R_PPC64_IRELATIVE, 248)
212ELF_RELOC(R_PPC64_REL16, 249)
213ELF_RELOC(R_PPC64_REL16_LO, 250)
214ELF_RELOC(R_PPC64_REL16_HI, 251)
215ELF_RELOC(R_PPC64_REL16_HA, 252)
216