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_GLOB_DAT
30#undef R_PPC64_JMP_SLOT
31#undef R_PPC64_RELATIVE
32#undef R_PPC64_REL32
33#undef R_PPC64_ADDR64
34#undef R_PPC64_ADDR16_HIGHER
35#undef R_PPC64_ADDR16_HIGHERA
36#undef R_PPC64_ADDR16_HIGHEST
37#undef R_PPC64_ADDR16_HIGHESTA
38#undef R_PPC64_REL64
39#undef R_PPC64_TOC16
40#undef R_PPC64_TOC16_LO
41#undef R_PPC64_TOC16_HI
42#undef R_PPC64_TOC16_HA
43#undef R_PPC64_TOC
44#undef R_PPC64_ADDR16_DS
45#undef R_PPC64_ADDR16_LO_DS
46#undef R_PPC64_GOT16_DS
47#undef R_PPC64_GOT16_LO_DS
48#undef R_PPC64_TOC16_DS
49#undef R_PPC64_TOC16_LO_DS
50#undef R_PPC64_TLS
51#undef R_PPC64_DTPMOD64
52#undef R_PPC64_TPREL16
53#undef R_PPC64_TPREL16_LO
54#undef R_PPC64_TPREL16_HI
55#undef R_PPC64_TPREL16_HA
56#undef R_PPC64_TPREL64
57#undef R_PPC64_DTPREL16
58#undef R_PPC64_DTPREL16_LO
59#undef R_PPC64_DTPREL16_HI
60#undef R_PPC64_DTPREL16_HA
61#undef R_PPC64_DTPREL64
62#undef R_PPC64_GOT_TLSGD16
63#undef R_PPC64_GOT_TLSGD16_LO
64#undef R_PPC64_GOT_TLSGD16_HI
65#undef R_PPC64_GOT_TLSGD16_HA
66#undef R_PPC64_GOT_TLSLD16
67#undef R_PPC64_GOT_TLSLD16_LO
68#undef R_PPC64_GOT_TLSLD16_HI
69#undef R_PPC64_GOT_TLSLD16_HA
70#undef R_PPC64_GOT_TPREL16_DS
71#undef R_PPC64_GOT_TPREL16_LO_DS
72#undef R_PPC64_GOT_TPREL16_HI
73#undef R_PPC64_GOT_TPREL16_HA
74#undef R_PPC64_GOT_DTPREL16_DS
75#undef R_PPC64_GOT_DTPREL16_LO_DS
76#undef R_PPC64_GOT_DTPREL16_HI
77#undef R_PPC64_GOT_DTPREL16_HA
78#undef R_PPC64_TPREL16_DS
79#undef R_PPC64_TPREL16_LO_DS
80#undef R_PPC64_TPREL16_HIGHER
81#undef R_PPC64_TPREL16_HIGHERA
82#undef R_PPC64_TPREL16_HIGHEST
83#undef R_PPC64_TPREL16_HIGHESTA
84#undef R_PPC64_DTPREL16_DS
85#undef R_PPC64_DTPREL16_LO_DS
86#undef R_PPC64_DTPREL16_HIGHER
87#undef R_PPC64_DTPREL16_HIGHERA
88#undef R_PPC64_DTPREL16_HIGHEST
89#undef R_PPC64_DTPREL16_HIGHESTA
90#undef R_PPC64_TLSGD
91#undef R_PPC64_TLSLD
92#undef R_PPC64_ADDR16_HIGH
93#undef R_PPC64_ADDR16_HIGHA
94#undef R_PPC64_TPREL16_HIGH
95#undef R_PPC64_TPREL16_HIGHA
96#undef R_PPC64_DTPREL16_HIGH
97#undef R_PPC64_DTPREL16_HIGHA
98#undef R_PPC64_IRELATIVE
99#undef R_PPC64_REL16
100#undef R_PPC64_REL16_LO
101#undef R_PPC64_REL16_HI
102#undef R_PPC64_REL16_HA
103
104ELF_RELOC(R_PPC64_NONE,                 0)
105ELF_RELOC(R_PPC64_ADDR32,               1)
106ELF_RELOC(R_PPC64_ADDR24,               2)
107ELF_RELOC(R_PPC64_ADDR16,               3)
108ELF_RELOC(R_PPC64_ADDR16_LO,            4)
109ELF_RELOC(R_PPC64_ADDR16_HI,            5)
110ELF_RELOC(R_PPC64_ADDR16_HA,            6)
111ELF_RELOC(R_PPC64_ADDR14,               7)
112ELF_RELOC(R_PPC64_ADDR14_BRTAKEN,       8)
113ELF_RELOC(R_PPC64_ADDR14_BRNTAKEN,      9)
114ELF_RELOC(R_PPC64_REL24,                10)
115ELF_RELOC(R_PPC64_REL14,                11)
116ELF_RELOC(R_PPC64_REL14_BRTAKEN,        12)
117ELF_RELOC(R_PPC64_REL14_BRNTAKEN,       13)
118ELF_RELOC(R_PPC64_GOT16,                14)
119ELF_RELOC(R_PPC64_GOT16_LO,             15)
120ELF_RELOC(R_PPC64_GOT16_HI,             16)
121ELF_RELOC(R_PPC64_GOT16_HA,             17)
122ELF_RELOC(R_PPC64_GLOB_DAT,             20)
123ELF_RELOC(R_PPC64_JMP_SLOT,             21)
124ELF_RELOC(R_PPC64_RELATIVE,             22)
125ELF_RELOC(R_PPC64_REL32,                26)
126ELF_RELOC(R_PPC64_ADDR64,               38)
127ELF_RELOC(R_PPC64_ADDR16_HIGHER,        39)
128ELF_RELOC(R_PPC64_ADDR16_HIGHERA,       40)
129ELF_RELOC(R_PPC64_ADDR16_HIGHEST,       41)
130ELF_RELOC(R_PPC64_ADDR16_HIGHESTA,      42)
131ELF_RELOC(R_PPC64_REL64,                44)
132ELF_RELOC(R_PPC64_TOC16,                47)
133ELF_RELOC(R_PPC64_TOC16_LO,             48)
134ELF_RELOC(R_PPC64_TOC16_HI,             49)
135ELF_RELOC(R_PPC64_TOC16_HA,             50)
136ELF_RELOC(R_PPC64_TOC,                  51)
137ELF_RELOC(R_PPC64_ADDR16_DS,            56)
138ELF_RELOC(R_PPC64_ADDR16_LO_DS,         57)
139ELF_RELOC(R_PPC64_GOT16_DS,             58)
140ELF_RELOC(R_PPC64_GOT16_LO_DS,          59)
141ELF_RELOC(R_PPC64_TOC16_DS,             63)
142ELF_RELOC(R_PPC64_TOC16_LO_DS,          64)
143ELF_RELOC(R_PPC64_TLS,                  67)
144ELF_RELOC(R_PPC64_DTPMOD64,             68)
145ELF_RELOC(R_PPC64_TPREL16,              69)
146ELF_RELOC(R_PPC64_TPREL16_LO,           70)
147ELF_RELOC(R_PPC64_TPREL16_HI,           71)
148ELF_RELOC(R_PPC64_TPREL16_HA,           72)
149ELF_RELOC(R_PPC64_TPREL64,              73)
150ELF_RELOC(R_PPC64_DTPREL16,             74)
151ELF_RELOC(R_PPC64_DTPREL16_LO,          75)
152ELF_RELOC(R_PPC64_DTPREL16_HI,          76)
153ELF_RELOC(R_PPC64_DTPREL16_HA,          77)
154ELF_RELOC(R_PPC64_DTPREL64,             78)
155ELF_RELOC(R_PPC64_GOT_TLSGD16,          79)
156ELF_RELOC(R_PPC64_GOT_TLSGD16_LO,       80)
157ELF_RELOC(R_PPC64_GOT_TLSGD16_HI,       81)
158ELF_RELOC(R_PPC64_GOT_TLSGD16_HA,       82)
159ELF_RELOC(R_PPC64_GOT_TLSLD16,          83)
160ELF_RELOC(R_PPC64_GOT_TLSLD16_LO,       84)
161ELF_RELOC(R_PPC64_GOT_TLSLD16_HI,       85)
162ELF_RELOC(R_PPC64_GOT_TLSLD16_HA,       86)
163ELF_RELOC(R_PPC64_GOT_TPREL16_DS,       87)
164ELF_RELOC(R_PPC64_GOT_TPREL16_LO_DS,    88)
165ELF_RELOC(R_PPC64_GOT_TPREL16_HI,       89)
166ELF_RELOC(R_PPC64_GOT_TPREL16_HA,       90)
167ELF_RELOC(R_PPC64_GOT_DTPREL16_DS,      91)
168ELF_RELOC(R_PPC64_GOT_DTPREL16_LO_DS,   92)
169ELF_RELOC(R_PPC64_GOT_DTPREL16_HI,      93)
170ELF_RELOC(R_PPC64_GOT_DTPREL16_HA,      94)
171ELF_RELOC(R_PPC64_TPREL16_DS,           95)
172ELF_RELOC(R_PPC64_TPREL16_LO_DS,        96)
173ELF_RELOC(R_PPC64_TPREL16_HIGHER,       97)
174ELF_RELOC(R_PPC64_TPREL16_HIGHERA,      98)
175ELF_RELOC(R_PPC64_TPREL16_HIGHEST,      99)
176ELF_RELOC(R_PPC64_TPREL16_HIGHESTA,     100)
177ELF_RELOC(R_PPC64_DTPREL16_DS,          101)
178ELF_RELOC(R_PPC64_DTPREL16_LO_DS,       102)
179ELF_RELOC(R_PPC64_DTPREL16_HIGHER,      103)
180ELF_RELOC(R_PPC64_DTPREL16_HIGHERA,     104)
181ELF_RELOC(R_PPC64_DTPREL16_HIGHEST,     105)
182ELF_RELOC(R_PPC64_DTPREL16_HIGHESTA,    106)
183ELF_RELOC(R_PPC64_TLSGD,                107)
184ELF_RELOC(R_PPC64_TLSLD,                108)
185ELF_RELOC(R_PPC64_ADDR16_HIGH,          110)
186ELF_RELOC(R_PPC64_ADDR16_HIGHA,         111)
187ELF_RELOC(R_PPC64_TPREL16_HIGH,         112)
188ELF_RELOC(R_PPC64_TPREL16_HIGHA,        113)
189ELF_RELOC(R_PPC64_DTPREL16_HIGH,        114)
190ELF_RELOC(R_PPC64_DTPREL16_HIGHA,       115)
191ELF_RELOC(R_PPC64_IRELATIVE,            248)
192ELF_RELOC(R_PPC64_REL16,                249)
193ELF_RELOC(R_PPC64_REL16_LO,             250)
194ELF_RELOC(R_PPC64_REL16_HI,             251)
195ELF_RELOC(R_PPC64_REL16_HA,             252)
196