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