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_PPC_NONE
12#undef R_PPC_ADDR32
13#undef R_PPC_ADDR24
14#undef R_PPC_ADDR16
15#undef R_PPC_ADDR16_LO
16#undef R_PPC_ADDR16_HI
17#undef R_PPC_ADDR16_HA
18#undef R_PPC_ADDR14
19#undef R_PPC_ADDR14_BRTAKEN
20#undef R_PPC_ADDR14_BRNTAKEN
21#undef R_PPC_REL24
22#undef R_PPC_REL14
23#undef R_PPC_REL14_BRTAKEN
24#undef R_PPC_REL14_BRNTAKEN
25#undef R_PPC_GOT16
26#undef R_PPC_GOT16_LO
27#undef R_PPC_GOT16_HI
28#undef R_PPC_GOT16_HA
29#undef R_PPC_PLTREL24
30#undef R_PPC_JMP_SLOT
31#undef R_PPC_LOCAL24PC
32#undef R_PPC_REL32
33#undef R_PPC_TLS
34#undef R_PPC_DTPMOD32
35#undef R_PPC_TPREL16
36#undef R_PPC_TPREL16_LO
37#undef R_PPC_TPREL16_HI
38#undef R_PPC_TPREL16_HA
39#undef R_PPC_TPREL32
40#undef R_PPC_DTPREL16
41#undef R_PPC_DTPREL16_LO
42#undef R_PPC_DTPREL16_HI
43#undef R_PPC_DTPREL16_HA
44#undef R_PPC_DTPREL32
45#undef R_PPC_GOT_TLSGD16
46#undef R_PPC_GOT_TLSGD16_LO
47#undef R_PPC_GOT_TLSGD16_HI
48#undef R_PPC_GOT_TLSGD16_HA
49#undef R_PPC_GOT_TLSLD16
50#undef R_PPC_GOT_TLSLD16_LO
51#undef R_PPC_GOT_TLSLD16_HI
52#undef R_PPC_GOT_TLSLD16_HA
53#undef R_PPC_GOT_TPREL16
54#undef R_PPC_GOT_TPREL16_LO
55#undef R_PPC_GOT_TPREL16_HI
56#undef R_PPC_GOT_TPREL16_HA
57#undef R_PPC_GOT_DTPREL16
58#undef R_PPC_GOT_DTPREL16_LO
59#undef R_PPC_GOT_DTPREL16_HI
60#undef R_PPC_GOT_DTPREL16_HA
61#undef R_PPC_TLSGD
62#undef R_PPC_TLSLD
63#undef R_PPC_REL16
64#undef R_PPC_REL16_LO
65#undef R_PPC_REL16_HI
66#undef R_PPC_REL16_HA
67
68ELF_RELOC(R_PPC_NONE,                   0)      /* No relocation. */
69ELF_RELOC(R_PPC_ADDR32,                 1)
70ELF_RELOC(R_PPC_ADDR24,                 2)
71ELF_RELOC(R_PPC_ADDR16,                 3)
72ELF_RELOC(R_PPC_ADDR16_LO,              4)
73ELF_RELOC(R_PPC_ADDR16_HI,              5)
74ELF_RELOC(R_PPC_ADDR16_HA,              6)
75ELF_RELOC(R_PPC_ADDR14,                 7)
76ELF_RELOC(R_PPC_ADDR14_BRTAKEN,         8)
77ELF_RELOC(R_PPC_ADDR14_BRNTAKEN,        9)
78ELF_RELOC(R_PPC_REL24,                  10)
79ELF_RELOC(R_PPC_REL14,                  11)
80ELF_RELOC(R_PPC_REL14_BRTAKEN,          12)
81ELF_RELOC(R_PPC_REL14_BRNTAKEN,         13)
82ELF_RELOC(R_PPC_GOT16,                  14)
83ELF_RELOC(R_PPC_GOT16_LO,               15)
84ELF_RELOC(R_PPC_GOT16_HI,               16)
85ELF_RELOC(R_PPC_GOT16_HA,               17)
86ELF_RELOC(R_PPC_PLTREL24,               18)
87ELF_RELOC(R_PPC_JMP_SLOT,               21)
88ELF_RELOC(R_PPC_LOCAL24PC,              23)
89ELF_RELOC(R_PPC_REL32,                  26)
90ELF_RELOC(R_PPC_TLS,                    67)
91ELF_RELOC(R_PPC_DTPMOD32,               68)
92ELF_RELOC(R_PPC_TPREL16,                69)
93ELF_RELOC(R_PPC_TPREL16_LO,             70)
94ELF_RELOC(R_PPC_TPREL16_HI,             71)
95ELF_RELOC(R_PPC_TPREL16_HA,             72)
96ELF_RELOC(R_PPC_TPREL32,                73)
97ELF_RELOC(R_PPC_DTPREL16,               74)
98ELF_RELOC(R_PPC_DTPREL16_LO,            75)
99ELF_RELOC(R_PPC_DTPREL16_HI,            76)
100ELF_RELOC(R_PPC_DTPREL16_HA,            77)
101ELF_RELOC(R_PPC_DTPREL32,               78)
102ELF_RELOC(R_PPC_GOT_TLSGD16,            79)
103ELF_RELOC(R_PPC_GOT_TLSGD16_LO,         80)
104ELF_RELOC(R_PPC_GOT_TLSGD16_HI,         81)
105ELF_RELOC(R_PPC_GOT_TLSGD16_HA,         82)
106ELF_RELOC(R_PPC_GOT_TLSLD16,            83)
107ELF_RELOC(R_PPC_GOT_TLSLD16_LO,         84)
108ELF_RELOC(R_PPC_GOT_TLSLD16_HI,         85)
109ELF_RELOC(R_PPC_GOT_TLSLD16_HA,         86)
110ELF_RELOC(R_PPC_GOT_TPREL16,            87)
111ELF_RELOC(R_PPC_GOT_TPREL16_LO,         88)
112ELF_RELOC(R_PPC_GOT_TPREL16_HI,         89)
113ELF_RELOC(R_PPC_GOT_TPREL16_HA,         90)
114ELF_RELOC(R_PPC_GOT_DTPREL16,           91)
115ELF_RELOC(R_PPC_GOT_DTPREL16_LO,        92)
116ELF_RELOC(R_PPC_GOT_DTPREL16_HI,        93)
117ELF_RELOC(R_PPC_GOT_DTPREL16_HA,        94)
118ELF_RELOC(R_PPC_TLSGD,                  95)
119ELF_RELOC(R_PPC_TLSLD,                  96)
120ELF_RELOC(R_PPC_REL16,                  249)
121ELF_RELOC(R_PPC_REL16_LO,               250)
122ELF_RELOC(R_PPC_REL16_HI,               251)
123ELF_RELOC(R_PPC_REL16_HA,               252)
124