xref: /aosp_15_r20/external/elfutils/backends/ppc64_reloc.def (revision 7304104da70ce23c86437a01be71edd1a2d7f37e)
1*7304104dSAndroid Build Coastguard Worker/* List the relocation types for ppc64.  -*- C -*-
2*7304104dSAndroid Build Coastguard Worker   Copyright (C) 2005, 2015 Red Hat, Inc.
3*7304104dSAndroid Build Coastguard Worker   This file is part of elfutils.
4*7304104dSAndroid Build Coastguard Worker
5*7304104dSAndroid Build Coastguard Worker   This file is free software; you can redistribute it and/or modify
6*7304104dSAndroid Build Coastguard Worker   it under the terms of either
7*7304104dSAndroid Build Coastguard Worker
8*7304104dSAndroid Build Coastguard Worker     * the GNU Lesser General Public License as published by the Free
9*7304104dSAndroid Build Coastguard Worker       Software Foundation; either version 3 of the License, or (at
10*7304104dSAndroid Build Coastguard Worker       your option) any later version
11*7304104dSAndroid Build Coastguard Worker
12*7304104dSAndroid Build Coastguard Worker   or
13*7304104dSAndroid Build Coastguard Worker
14*7304104dSAndroid Build Coastguard Worker     * the GNU General Public License as published by the Free
15*7304104dSAndroid Build Coastguard Worker       Software Foundation; either version 2 of the License, or (at
16*7304104dSAndroid Build Coastguard Worker       your option) any later version
17*7304104dSAndroid Build Coastguard Worker
18*7304104dSAndroid Build Coastguard Worker   or both in parallel, as here.
19*7304104dSAndroid Build Coastguard Worker
20*7304104dSAndroid Build Coastguard Worker   elfutils is distributed in the hope that it will be useful, but
21*7304104dSAndroid Build Coastguard Worker   WITHOUT ANY WARRANTY; without even the implied warranty of
22*7304104dSAndroid Build Coastguard Worker   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
23*7304104dSAndroid Build Coastguard Worker   General Public License for more details.
24*7304104dSAndroid Build Coastguard Worker
25*7304104dSAndroid Build Coastguard Worker   You should have received copies of the GNU General Public License and
26*7304104dSAndroid Build Coastguard Worker   the GNU Lesser General Public License along with this program.  If
27*7304104dSAndroid Build Coastguard Worker   not, see <http://www.gnu.org/licenses/>.  */
28*7304104dSAndroid Build Coastguard Worker
29*7304104dSAndroid Build Coastguard Worker/*	    NAME,		REL|EXEC|DYN	*/
30*7304104dSAndroid Build Coastguard Worker
31*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (NONE,		0)
32*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (ADDR32,		REL|EXEC|DYN)
33*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (ADDR24,		REL)
34*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (ADDR16,		REL)		/* note 1 */
35*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (ADDR16_LO,		REL)		/* note 1 */
36*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (ADDR16_HI,		REL)		/* note 1 */
37*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (ADDR16_HA,		REL)		/* note 1 */
38*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (ADDR14,		REL)		/* note 1 */
39*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (ADDR14_BRTAKEN,	REL)		/* note 1 */
40*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (ADDR14_BRNTAKEN,	REL)		/* note 1 */
41*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (REL24,		REL)
42*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (REL14,		REL)
43*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (REL14_BRTAKEN,	REL)
44*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (REL14_BRNTAKEN,	REL)
45*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GOT16,		REL)
46*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GOT16_LO,		REL)
47*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GOT16_HI,		REL)
48*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GOT16_HA,		REL)
49*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (COPY,		EXEC|DYN)
50*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GLOB_DAT,		EXEC|DYN)
51*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (JMP_SLOT,		EXEC|DYN)
52*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (RELATIVE,		EXEC|DYN)
53*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (UADDR32,		REL|EXEC|DYN)
54*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (UADDR16,		REL)
55*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (REL32,		REL|EXEC|DYN)
56*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (PLT32,		REL)
57*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (PLTREL32,		REL)
58*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (PLT16_LO,		REL)
59*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (PLT16_HI,		REL)
60*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (PLT16_HA,		REL)
61*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (SECTOFF,		REL)
62*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (SECTOFF_LO,		REL)
63*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (SECTOFF_HI,		REL)
64*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (SECTOFF_HA,		REL)
65*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (ADDR30,		REL)		/* note 1 */
66*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (ADDR64,		REL|EXEC|DYN)
67*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (ADDR16_HIGHER,	REL)		/* note 1 */
68*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (ADDR16_HIGHERA,	REL)		/* note 1 */
69*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (ADDR16_HIGHEST,	REL)		/* note 1 */
70*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (ADDR16_HIGHESTA,	REL)		/* note 1 */
71*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (UADDR64,		REL|EXEC|DYN)
72*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (REL64,		REL|EXEC|DYN)
73*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (PLT64,		REL)
74*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (PLTREL64,		REL)
75*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TOC16,		REL)
76*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TOC16_LO,		REL)
77*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TOC16_HI,		REL)
78*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TOC16_HA,		REL)
79*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TOC,		REL)
80*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (PLTGOT16,		REL)
81*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (PLTGOT16_LO,	REL)
82*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (PLTGOT16_HI,	REL)
83*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (PLTGOT16_HA,	REL)
84*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (ADDR16_DS,		REL)		/* note 1 */
85*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (ADDR16_LO_DS,	REL)		/* note 1 */
86*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GOT16_DS,		REL)
87*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GOT16_LO_DS,	REL)
88*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (PLT16_LO_DS,	REL)
89*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (SECTOFF_DS,		REL)
90*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (SECTOFF_LO_DS,	REL)
91*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TOC16_DS,		REL)
92*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TOC16_LO_DS,	REL)
93*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (PLTGOT16_DS,	REL)
94*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (PLTGOT16_LO_DS,	REL)
95*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TLS,		REL)
96*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (DTPMOD64,		REL|EXEC|DYN)	/* note 3 */
97*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TPREL16,		REL)		/* note 2 */
98*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TPREL16_LO,		REL)		/* note 2 */
99*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TPREL16_HI,		REL)		/* note 2 */
100*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TPREL16_HA,		REL)		/* note 2 */
101*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TPREL64,		REL|EXEC|DYN)	/* note 3 */
102*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (DTPREL16,		REL)
103*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (DTPREL16_LO,	REL)
104*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (DTPREL16_HI,	REL)
105*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (DTPREL16_HA,	REL)
106*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (DTPREL64,		REL|EXEC|DYN)	/* note 3 */
107*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GOT_TLSGD16,	REL)
108*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GOT_TLSGD16_LO,	REL)
109*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GOT_TLSGD16_HI,	REL)
110*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GOT_TLSGD16_HA,	REL)
111*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GOT_TLSLD16,	REL)
112*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GOT_TLSLD16_LO,	REL)
113*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GOT_TLSLD16_HI,	REL)
114*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GOT_TLSLD16_HA,	REL)
115*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GOT_TPREL16_DS,	REL)
116*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GOT_TPREL16_LO_DS,	REL)
117*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GOT_TPREL16_HI,	REL)
118*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GOT_TPREL16_HA,	REL)
119*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GOT_DTPREL16_DS,	REL)
120*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GOT_DTPREL16_LO_DS, REL)
121*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GOT_DTPREL16_HI,	REL)
122*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (GOT_DTPREL16_HA,	REL)
123*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TPREL16_DS,		REL)		/* note 2 */
124*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TPREL16_LO_DS,	REL)		/* note 2 */
125*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TPREL16_HIGHER,	REL)		/* note 2 */
126*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TPREL16_HIGHERA,	REL)		/* note 2 */
127*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TPREL16_HIGHEST,	REL)		/* note 2 */
128*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TPREL16_HIGHESTA,	REL)		/* note 2 */
129*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (DTPREL16_DS,	REL)
130*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (DTPREL16_LO_DS,	REL)
131*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (DTPREL16_HIGHER,	REL)
132*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (DTPREL16_HIGHERA,	REL)
133*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (DTPREL16_HIGHEST,	REL)
134*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (DTPREL16_HIGHESTA,	REL)
135*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TLSGD,		REL)
136*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TLSLD,		REL)
137*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TOCSAVE,		REL)
138*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (ADDR16_HIGH,	REL)
139*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (ADDR16_HIGHA,	REL)
140*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TPREL16_HIGH,	REL)
141*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (TPREL16_HIGHA,	REL)
142*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (DTPREL16_HIGH,	REL)
143*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (DTPREL16_HIGHA,	REL)
144*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (JMP_IREL,		REL)
145*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (IRELATIVE,		REL)
146*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (REL16,		REL)
147*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (REL16_LO,		REL)
148*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (REL16_HI,		REL)
149*7304104dSAndroid Build Coastguard WorkerRELOC_TYPE (REL16_HA,		REL)
150*7304104dSAndroid Build Coastguard Worker
151*7304104dSAndroid Build Coastguard Worker/* Notes from Alan Modra:
152*7304104dSAndroid Build Coastguard Worker
153*7304104dSAndroid Build Coastguard Worker   1) These can appear in DYN and EXEC with improper assembly, but they
154*7304104dSAndroid Build Coastguard Worker   aren't really kosher.
155*7304104dSAndroid Build Coastguard Worker
156*7304104dSAndroid Build Coastguard Worker   2) These can appear in DYN with improper assembly (or silly gcc
157*7304104dSAndroid Build Coastguard Worker      attributes, I think).  Again, not kosher.
158*7304104dSAndroid Build Coastguard Worker
159*7304104dSAndroid Build Coastguard Worker   3) These are legal in REL for PowerOpen compatible assembler syntax,
160*7304104dSAndroid Build Coastguard Worker      ie. TOC managed by compiler.
161*7304104dSAndroid Build Coastguard Worker*/
162