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