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_COPY
31#undef R_PPC_GLOB_DAT
32#undef R_PPC_JMP_SLOT
33#undef R_PPC_RELATIVE
34#undef R_PPC_LOCAL24PC
35#undef R_PPC_UADDR32
36#undef R_PPC_UADDR16
37#undef R_PPC_REL32
38#undef R_PPC_PLT32
39#undef R_PPC_PLTREL32
40#undef R_PPC_PLT16_LO
41#undef R_PPC_PLT16_HI
42#undef R_PPC_PLT16_HA
43#undef R_PPC_SDAREL16
44#undef R_PPC_SECTOFF
45#undef R_PPC_SECTOFF_LO
46#undef R_PPC_SECTOFF_HI
47#undef R_PPC_SECTOFF_HA
48#undef R_PPC_ADDR30
49#undef R_PPC_TLS
50#undef R_PPC_DTPMOD32
51#undef R_PPC_TPREL16
52#undef R_PPC_TPREL16_LO
53#undef R_PPC_TPREL16_HI
54#undef R_PPC_TPREL16_HA
55#undef R_PPC_TPREL32
56#undef R_PPC_DTPREL16
57#undef R_PPC_DTPREL16_LO
58#undef R_PPC_DTPREL16_HI
59#undef R_PPC_DTPREL16_HA
60#undef R_PPC_DTPREL32
61#undef R_PPC_GOT_TLSGD16
62#undef R_PPC_GOT_TLSGD16_LO
63#undef R_PPC_GOT_TLSGD16_HI
64#undef R_PPC_GOT_TLSGD16_HA
65#undef R_PPC_GOT_TLSLD16
66#undef R_PPC_GOT_TLSLD16_LO
67#undef R_PPC_GOT_TLSLD16_HI
68#undef R_PPC_GOT_TLSLD16_HA
69#undef R_PPC_GOT_TPREL16
70#undef R_PPC_GOT_TPREL16_LO
71#undef R_PPC_GOT_TPREL16_HI
72#undef R_PPC_GOT_TPREL16_HA
73#undef R_PPC_GOT_DTPREL16
74#undef R_PPC_GOT_DTPREL16_LO
75#undef R_PPC_GOT_DTPREL16_HI
76#undef R_PPC_GOT_DTPREL16_HA
77#undef R_PPC_TLSGD
78#undef R_PPC_TLSLD
79#undef R_PPC_REL16
80#undef R_PPC_REL16_LO
81#undef R_PPC_REL16_HI
82#undef R_PPC_REL16_HA
83
84ELF_RELOC(R_PPC_NONE, 0) /* No relocation. */
85ELF_RELOC(R_PPC_ADDR32, 1)
86ELF_RELOC(R_PPC_ADDR24, 2)
87ELF_RELOC(R_PPC_ADDR16, 3)
88ELF_RELOC(R_PPC_ADDR16_LO, 4)
89ELF_RELOC(R_PPC_ADDR16_HI, 5)
90ELF_RELOC(R_PPC_ADDR16_HA, 6)
91ELF_RELOC(R_PPC_ADDR14, 7)
92ELF_RELOC(R_PPC_ADDR14_BRTAKEN, 8)
93ELF_RELOC(R_PPC_ADDR14_BRNTAKEN, 9)
94ELF_RELOC(R_PPC_REL24, 10)
95ELF_RELOC(R_PPC_REL14, 11)
96ELF_RELOC(R_PPC_REL14_BRTAKEN, 12)
97ELF_RELOC(R_PPC_REL14_BRNTAKEN, 13)
98ELF_RELOC(R_PPC_GOT16, 14)
99ELF_RELOC(R_PPC_GOT16_LO, 15)
100ELF_RELOC(R_PPC_GOT16_HI, 16)
101ELF_RELOC(R_PPC_GOT16_HA, 17)
102ELF_RELOC(R_PPC_PLTREL24, 18)
103ELF_RELOC(R_PPC_COPY, 19)
104ELF_RELOC(R_PPC_GLOB_DAT, 20)
105ELF_RELOC(R_PPC_JMP_SLOT, 21)
106ELF_RELOC(R_PPC_RELATIVE, 22)
107ELF_RELOC(R_PPC_LOCAL24PC, 23)
108ELF_RELOC(R_PPC_UADDR32, 24)
109ELF_RELOC(R_PPC_UADDR16, 25)
110ELF_RELOC(R_PPC_REL32, 26)
111ELF_RELOC(R_PPC_PLT32, 27)
112ELF_RELOC(R_PPC_PLTREL32, 28)
113ELF_RELOC(R_PPC_PLT16_LO, 29)
114ELF_RELOC(R_PPC_PLT16_HI, 30)
115ELF_RELOC(R_PPC_PLT16_HA, 31)
116ELF_RELOC(R_PPC_SDAREL16, 32)
117ELF_RELOC(R_PPC_SECTOFF, 33)
118ELF_RELOC(R_PPC_SECTOFF_LO, 34)
119ELF_RELOC(R_PPC_SECTOFF_HI, 35)
120ELF_RELOC(R_PPC_SECTOFF_HA, 36)
121ELF_RELOC(R_PPC_ADDR30, 37)
122ELF_RELOC(R_PPC_TLS, 67)
123ELF_RELOC(R_PPC_DTPMOD32, 68)
124ELF_RELOC(R_PPC_TPREL16, 69)
125ELF_RELOC(R_PPC_TPREL16_LO, 70)
126ELF_RELOC(R_PPC_TPREL16_HI, 71)
127ELF_RELOC(R_PPC_TPREL16_HA, 72)
128ELF_RELOC(R_PPC_TPREL32, 73)
129ELF_RELOC(R_PPC_DTPREL16, 74)
130ELF_RELOC(R_PPC_DTPREL16_LO, 75)
131ELF_RELOC(R_PPC_DTPREL16_HI, 76)
132ELF_RELOC(R_PPC_DTPREL16_HA, 77)
133ELF_RELOC(R_PPC_DTPREL32, 78)
134ELF_RELOC(R_PPC_GOT_TLSGD16, 79)
135ELF_RELOC(R_PPC_GOT_TLSGD16_LO, 80)
136ELF_RELOC(R_PPC_GOT_TLSGD16_HI, 81)
137ELF_RELOC(R_PPC_GOT_TLSGD16_HA, 82)
138ELF_RELOC(R_PPC_GOT_TLSLD16, 83)
139ELF_RELOC(R_PPC_GOT_TLSLD16_LO, 84)
140ELF_RELOC(R_PPC_GOT_TLSLD16_HI, 85)
141ELF_RELOC(R_PPC_GOT_TLSLD16_HA, 86)
142ELF_RELOC(R_PPC_GOT_TPREL16, 87)
143ELF_RELOC(R_PPC_GOT_TPREL16_LO, 88)
144ELF_RELOC(R_PPC_GOT_TPREL16_HI, 89)
145ELF_RELOC(R_PPC_GOT_TPREL16_HA, 90)
146ELF_RELOC(R_PPC_GOT_DTPREL16, 91)
147ELF_RELOC(R_PPC_GOT_DTPREL16_LO, 92)
148ELF_RELOC(R_PPC_GOT_DTPREL16_HI, 93)
149ELF_RELOC(R_PPC_GOT_DTPREL16_HA, 94)
150ELF_RELOC(R_PPC_TLSGD, 95)
151ELF_RELOC(R_PPC_TLSLD, 96)
152ELF_RELOC(R_PPC_IRELATIVE, 248)
153ELF_RELOC(R_PPC_REL16, 249)
154ELF_RELOC(R_PPC_REL16_LO, 250)
155ELF_RELOC(R_PPC_REL16_HI, 251)
156ELF_RELOC(R_PPC_REL16_HA, 252)
157

source code of llvm/include/llvm/BinaryFormat/ELFRelocs/PowerPC.def