1 1.9 matt /* $NetBSD: elf_machdep.h,v 1.9 2011/01/15 10:00:07 matt Exp $ */ 2 1.1 thorpej 3 1.3 kleink #define ELF32_MACHDEP_ENDIANNESS ELFDATA2MSB 4 1.1 thorpej #define ELF32_MACHDEP_ID_CASES \ 5 1.3 kleink case EM_PPC: \ 6 1.1 thorpej break; 7 1.1 thorpej 8 1.6 ross #define ELF64_MACHDEP_ENDIANNESS ELFDATA2MSB 9 1.1 thorpej #define ELF64_MACHDEP_ID_CASES \ 10 1.6 ross case EM_PPC64: \ 11 1.6 ross break; 12 1.5 thorpej 13 1.5 thorpej #define ELF32_MACHDEP_ID EM_PPC 14 1.6 ross #define ELF64_MACHDEP_ID EM_PPC64 15 1.4 minoura 16 1.6 ross #ifdef _LP64 17 1.6 ross #define ARCH_ELFSIZE 64 /* MD native binary size */ 18 1.6 ross #else 19 1.4 minoura #define ARCH_ELFSIZE 32 /* MD native binary size */ 20 1.6 ross #endif 21 1.1 thorpej 22 1.9 matt /* Specify the value of _GLOBAL_OFFSET_TABLE_ */ 23 1.9 matt #define DT_PPC_GOT DT_LOPROC 24 1.9 matt 25 1.7 freza #define R_PPC_NONE 0 26 1.7 freza #define R_PPC_32 1 27 1.7 freza #define R_PPC_24 2 28 1.7 freza #define R_PPC_16 3 29 1.7 freza #define R_PPC_16_LO 4 30 1.7 freza #define R_PPC_16_HI 5 /* R_PPC_ADDIS */ 31 1.7 freza #define R_PPC_16_HA 6 32 1.7 freza #define R_PPC_14 7 33 1.7 freza #define R_PPC_14_TAKEN 8 34 1.7 freza #define R_PPC_14_NTAKEN 9 35 1.7 freza #define R_PPC_REL24 10 /* R_PPC_BRANCH */ 36 1.7 freza #define R_PPC_REL14 11 37 1.7 freza #define R_PPC_REL14_TAKEN 12 38 1.7 freza #define R_PPC_REL14_NTAKEN 13 39 1.7 freza #define R_PPC_GOT16 14 40 1.7 freza #define R_PPC_GOT16_LO 15 41 1.7 freza #define R_PPC_GOT16_HI 16 42 1.7 freza #define R_PPC_GOT16_HA 17 43 1.7 freza #define R_PPC_PLT24 18 44 1.7 freza #define R_PPC_COPY 19 45 1.7 freza #define R_PPC_GLOB_DAT 20 46 1.7 freza #define R_PPC_JMP_SLOT 21 47 1.7 freza #define R_PPC_RELATIVE 22 48 1.7 freza #define R_PPC_LOCAL24PC 23 49 1.7 freza #define R_PPC_U32 24 50 1.7 freza #define R_PPC_U16 25 51 1.7 freza #define R_PPC_REL32 26 52 1.7 freza #define R_PPC_PLT32 27 53 1.7 freza #define R_PPC_PLTREL32 28 54 1.7 freza #define R_PPC_PLT16_LO 29 55 1.7 freza #define R_PPC_PLT16_HI 30 56 1.7 freza #define R_PPC_PLT16_HA 31 57 1.9 matt #define R_PPC_SDAREL16 32 58 1.9 matt #define R_PPC_SECTOFF 33 59 1.9 matt #define R_PPC_SECTOFF_LO 34 60 1.9 matt #define R_PPC_SECTOFF_HI 35 61 1.9 matt #define R_PPC_SECTOFF_HA 36 62 1.9 matt #define R_PPC_ADDR30 37 63 1.2 tsubai 64 1.8 skrll /* TLS relocations */ 65 1.8 skrll #define R_PPC_TLS 67 66 1.8 skrll 67 1.8 skrll #define R_PPC_DTPMOD32 68 68 1.8 skrll #define R_PPC_TPREL16 69 69 1.8 skrll #define R_PPC_TPREL16_LO 70 70 1.8 skrll #define R_PPC_TPREL16_HI 71 71 1.8 skrll #define R_PPC_TPREL16_HA 72 72 1.8 skrll #define R_PPC_TPREL32 73 73 1.8 skrll #define R_PPC_DTPREL16 74 74 1.8 skrll #define R_PPC_DTPREL16_LO 75 75 1.8 skrll #define R_PPC_DTPREL16_HI 76 76 1.8 skrll #define R_PPC_DTPREL16_HA 77 77 1.8 skrll #define R_PPC_DTPREL32 78 78 1.8 skrll 79 1.8 skrll #define R_PPC_GOT_TLSGD16 79 80 1.8 skrll #define R_PPC_GOT_TLSGD16_LO 80 81 1.8 skrll #define R_PPC_GOT_TLSGD16_HI 81 82 1.8 skrll #define R_PPC_GOT_TLSGD16_HA 82 83 1.8 skrll #define R_PPC_GOT_TLSLD16 83 84 1.8 skrll #define R_PPC_GOT_TLSLD16_LO 84 85 1.8 skrll #define R_PPC_GOT_TLSLD16_HI 85 86 1.8 skrll #define R_PPC_GOT_TLSLD16_HA 86 87 1.8 skrll 88 1.8 skrll #define R_PPC_GOT_TPREL16 87 89 1.8 skrll #define R_PPC_GOT_TPREL16_LO 88 90 1.8 skrll #define R_PPC_GOT_TPREL16_HI 89 91 1.8 skrll #define R_PPC_GOT_TPREL16_HA 90 92 1.8 skrll #define R_PPC_GOT_DTPREL16 91 93 1.8 skrll #define R_PPC_GOT_DTPREL16_LO 92 94 1.8 skrll #define R_PPC_GOT_DTPREL16_HI 93 95 1.8 skrll #define R_PPC_GOT_DTPREL16_HA 94 96 1.8 skrll #define R_PPC_TLSGD 95 97 1.8 skrll #define R_PPC_TLSLD 96 98 1.8 skrll 99 1.9 matt /* Used for the secure-plt PIC code sequences */ 100 1.9 matt #define R_PPC_REL16 249 101 1.9 matt #define R_PPC_REL16_LO 250 102 1.9 matt #define R_PPC_REL16_HI 251 103 1.9 matt #define R_PPC_REL16_HA 252 104 1.9 matt 105 1.7 freza #define R_TYPE(name) __CONCAT(R_PPC_,name) 106