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