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