1 /*
2 From musl include/elf.h
3 
4 Copyright © 2005-2014 Rich Felker, et al.
5 
6 Permission is hereby granted, free of charge, to any person obtaining
7 a copy of this software and associated documentation files (the
8 "Software"), to deal in the Software without restriction, including
9 without limitation the rights to use, copy, modify, merge, publish,
10 distribute, sublicense, and/or sell copies of the Software, and to
11 permit persons to whom the Software is furnished to do so, subject to
12 the following conditions:
13 
14 The above copyright notice and this permission notice shall be
15 included in all copies or substantial portions of the Software.
16 
17 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
20 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
21 CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
22 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
23 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24 */
25 
26 #ifndef _ELF_H
27 #define _ELF_H
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
33 #include <stdint.h>
34 
35 typedef uint16_t Elf32_Half;
36 typedef uint16_t Elf64_Half;
37 
38 typedef uint32_t Elf32_Word;
39 typedef	int32_t  Elf32_Sword;
40 typedef uint32_t Elf64_Word;
41 typedef	int32_t  Elf64_Sword;
42 
43 typedef uint64_t Elf32_Xword;
44 typedef	int64_t  Elf32_Sxword;
45 typedef uint64_t Elf64_Xword;
46 typedef	int64_t  Elf64_Sxword;
47 
48 typedef uint32_t Elf32_Addr;
49 typedef uint64_t Elf64_Addr;
50 
51 typedef uint32_t Elf32_Off;
52 typedef uint64_t Elf64_Off;
53 
54 typedef uint16_t Elf32_Section;
55 typedef uint16_t Elf64_Section;
56 
57 typedef Elf32_Half Elf32_Versym;
58 typedef Elf64_Half Elf64_Versym;
59 
60 #define EI_NIDENT (16)
61 
62 typedef struct {
63   unsigned char	e_ident[EI_NIDENT];
64   Elf32_Half	e_type;
65   Elf32_Half	e_machine;
66   Elf32_Word	e_version;
67   Elf32_Addr	e_entry;
68   Elf32_Off	e_phoff;
69   Elf32_Off	e_shoff;
70   Elf32_Word	e_flags;
71   Elf32_Half	e_ehsize;
72   Elf32_Half	e_phentsize;
73   Elf32_Half	e_phnum;
74   Elf32_Half	e_shentsize;
75   Elf32_Half	e_shnum;
76   Elf32_Half	e_shstrndx;
77 } Elf32_Ehdr;
78 
79 typedef struct {
80   unsigned char	e_ident[EI_NIDENT];
81   Elf64_Half	e_type;
82   Elf64_Half	e_machine;
83   Elf64_Word	e_version;
84   Elf64_Addr	e_entry;
85   Elf64_Off	e_phoff;
86   Elf64_Off	e_shoff;
87   Elf64_Word	e_flags;
88   Elf64_Half	e_ehsize;
89   Elf64_Half	e_phentsize;
90   Elf64_Half	e_phnum;
91   Elf64_Half	e_shentsize;
92   Elf64_Half	e_shnum;
93   Elf64_Half	e_shstrndx;
94 } Elf64_Ehdr;
95 
96 #define EI_MAG0		0
97 #define ELFMAG0		0x7f
98 
99 #define EI_MAG1		1
100 #define ELFMAG1		'E'
101 
102 #define EI_MAG2		2
103 #define ELFMAG2		'L'
104 
105 #define EI_MAG3		3
106 #define ELFMAG3		'F'
107 
108 
109 #define	ELFMAG		"\177ELF"
110 #define	SELFMAG		4
111 
112 #define EI_CLASS	4
113 #define ELFCLASSNONE	0
114 #define ELFCLASS32	1
115 #define ELFCLASS64	2
116 #define ELFCLASSNUM	3
117 
118 #define EI_DATA		5
119 #define ELFDATANONE	0
120 #define ELFDATA2LSB	1
121 #define ELFDATA2MSB	2
122 #define ELFDATANUM	3
123 
124 #define EI_VERSION	6
125 
126 
127 #define EI_OSABI	7
128 #define ELFOSABI_NONE		0
129 #define ELFOSABI_SYSV		0
130 #define ELFOSABI_HPUX		1
131 #define ELFOSABI_NETBSD		2
132 #define ELFOSABI_LINUX		3
133 #define ELFOSABI_GNU		3
134 #define ELFOSABI_SOLARIS	6
135 #define ELFOSABI_AIX		7
136 #define ELFOSABI_IRIX		8
137 #define ELFOSABI_FREEBSD	9
138 #define ELFOSABI_TRU64		10
139 #define ELFOSABI_MODESTO	11
140 #define ELFOSABI_OPENBSD	12
141 #define ELFOSABI_ARM		97
142 #define ELFOSABI_STANDALONE	255
143 
144 #define EI_ABIVERSION	8
145 
146 #define EI_PAD		9
147 
148 
149 
150 #define ET_NONE		0
151 #define ET_REL		1
152 #define ET_EXEC		2
153 #define ET_DYN		3
154 #define ET_CORE		4
155 #define	ET_NUM		5
156 #define ET_LOOS		0xfe00
157 #define ET_HIOS		0xfeff
158 #define ET_LOPROC	0xff00
159 #define ET_HIPROC	0xffff
160 
161 
162 
163 #define EM_NONE		 0
164 #define EM_M32		 1
165 #define EM_SPARC	 2
166 #define EM_386		 3
167 #define EM_68K		 4
168 #define EM_88K		 5
169 #define EM_860		 7
170 #define EM_MIPS		 8
171 #define EM_S370		 9
172 #define EM_MIPS_RS3_LE	10
173 
174 #define EM_PARISC	15
175 #define EM_VPP500	17
176 #define EM_SPARC32PLUS	18
177 #define EM_960		19
178 #define EM_PPC		20
179 #define EM_PPC64	21
180 #define EM_S390		22
181 
182 #define EM_V800		36
183 #define EM_FR20		37
184 #define EM_RH32		38
185 #define EM_RCE		39
186 #define EM_ARM		40
187 #define EM_FAKE_ALPHA	41
188 #define EM_SH		42
189 #define EM_SPARCV9	43
190 #define EM_TRICORE	44
191 #define EM_ARC		45
192 #define EM_H8_300	46
193 #define EM_H8_300H	47
194 #define EM_H8S		48
195 #define EM_H8_500	49
196 #define EM_IA_64	50
197 #define EM_MIPS_X	51
198 #define EM_COLDFIRE	52
199 #define EM_68HC12	53
200 #define EM_MMA		54
201 #define EM_PCP		55
202 #define EM_NCPU		56
203 #define EM_NDR1		57
204 #define EM_STARCORE	58
205 #define EM_ME16		59
206 #define EM_ST100	60
207 #define EM_TINYJ	61
208 #define EM_X86_64	62
209 #define EM_PDSP		63
210 
211 #define EM_FX66		66
212 #define EM_ST9PLUS	67
213 #define EM_ST7		68
214 #define EM_68HC16	69
215 #define EM_68HC11	70
216 #define EM_68HC08	71
217 #define EM_68HC05	72
218 #define EM_SVX		73
219 #define EM_ST19		74
220 #define EM_VAX		75
221 #define EM_CRIS		76
222 #define EM_JAVELIN	77
223 #define EM_FIREPATH	78
224 #define EM_ZSP		79
225 #define EM_MMIX		80
226 #define EM_HUANY	81
227 #define EM_PRISM	82
228 #define EM_AVR		83
229 #define EM_FR30		84
230 #define EM_D10V		85
231 #define EM_D30V		86
232 #define EM_V850		87
233 #define EM_M32R		88
234 #define EM_MN10300	89
235 #define EM_MN10200	90
236 #define EM_PJ		91
237 #define EM_OR1K		92
238 #define EM_OPENRISC	92
239 #define EM_ARC_A5	93
240 #define EM_ARC_COMPACT	93
241 #define EM_XTENSA	94
242 #define EM_VIDEOCORE	95
243 #define EM_TMM_GPP	96
244 #define EM_NS32K	97
245 #define EM_TPC		98
246 #define EM_SNP1K	99
247 #define EM_ST200	100
248 #define EM_IP2K		101
249 #define EM_MAX		102
250 #define EM_CR		103
251 #define EM_F2MC16	104
252 #define EM_MSP430	105
253 #define EM_BLACKFIN	106
254 #define EM_SE_C33	107
255 #define EM_SEP		108
256 #define EM_ARCA		109
257 #define EM_UNICORE	110
258 #define EM_EXCESS	111
259 #define EM_DXP		112
260 #define EM_ALTERA_NIOS2 113
261 #define EM_CRX		114
262 #define EM_XGATE	115
263 #define EM_C166		116
264 #define EM_M16C		117
265 #define EM_DSPIC30F	118
266 #define EM_CE		119
267 #define EM_M32C		120
268 #define EM_TSK3000	131
269 #define EM_RS08		132
270 #define EM_SHARC	133
271 #define EM_ECOG2	134
272 #define EM_SCORE7	135
273 #define EM_DSP24	136
274 #define EM_VIDEOCORE3	137
275 #define EM_LATTICEMICO32 138
276 #define EM_SE_C17	139
277 #define EM_TI_C6000	140
278 #define EM_TI_C2000	141
279 #define EM_TI_C5500	142
280 #define EM_TI_ARP32	143
281 #define EM_TI_PRU	144
282 #define EM_MMDSP_PLUS	160
283 #define EM_CYPRESS_M8C	161
284 #define EM_R32C		162
285 #define EM_TRIMEDIA	163
286 #define EM_QDSP6	164
287 #define EM_8051		165
288 #define EM_STXP7X	166
289 #define EM_NDS32	167
290 #define EM_ECOG1X	168
291 #define EM_MAXQ30	169
292 #define EM_XIMO16	170
293 #define EM_MANIK	171
294 #define EM_CRAYNV2	172
295 #define EM_RX		173
296 #define EM_METAG	174
297 #define EM_MCST_ELBRUS	175
298 #define EM_ECOG16	176
299 #define EM_CR16		177
300 #define EM_ETPU		178
301 #define EM_SLE9X	179
302 #define EM_L10M		180
303 #define EM_K10M		181
304 #define EM_AARCH64	183
305 #define EM_AVR32	185
306 #define EM_STM8		186
307 #define EM_TILE64	187
308 #define EM_TILEPRO	188
309 #define EM_MICROBLAZE	189
310 #define EM_CUDA		190
311 #define EM_TILEGX	191
312 #define EM_CLOUDSHIELD	192
313 #define EM_COREA_1ST	193
314 #define EM_COREA_2ND	194
315 #define EM_ARC_COMPACT2	195
316 #define EM_OPEN8	196
317 #define EM_RL78		197
318 #define EM_VIDEOCORE5	198
319 #define EM_78KOR	199
320 #define EM_56800EX	200
321 #define EM_BA1		201
322 #define EM_BA2		202
323 #define EM_XCORE	203
324 #define EM_MCHP_PIC	204
325 #define EM_KM32		210
326 #define EM_KMX32	211
327 #define EM_EMX16	212
328 #define EM_EMX8		213
329 #define EM_KVARC	214
330 #define EM_CDP		215
331 #define EM_COGE		216
332 #define EM_COOL		217
333 #define EM_NORC		218
334 #define EM_CSR_KALIMBA	219
335 #define EM_Z80		220
336 #define EM_VISIUM	221
337 #define EM_FT32		222
338 #define EM_MOXIE	223
339 #define EM_AMDGPU	224
340 #define EM_RISCV	243
341 #define EM_BPF		247
342 #define EM_NUM		248
343 
344 #define EM_ALPHA	0x9026
345 
346 #define EV_NONE		0
347 #define EV_CURRENT	1
348 #define EV_NUM		2
349 
350 typedef struct {
351   Elf32_Word	sh_name;
352   Elf32_Word	sh_type;
353   Elf32_Word	sh_flags;
354   Elf32_Addr	sh_addr;
355   Elf32_Off	sh_offset;
356   Elf32_Word	sh_size;
357   Elf32_Word	sh_link;
358   Elf32_Word	sh_info;
359   Elf32_Word	sh_addralign;
360   Elf32_Word	sh_entsize;
361 } Elf32_Shdr;
362 
363 typedef struct {
364   Elf64_Word	sh_name;
365   Elf64_Word	sh_type;
366   Elf64_Xword	sh_flags;
367   Elf64_Addr	sh_addr;
368   Elf64_Off	sh_offset;
369   Elf64_Xword	sh_size;
370   Elf64_Word	sh_link;
371   Elf64_Word	sh_info;
372   Elf64_Xword	sh_addralign;
373   Elf64_Xword	sh_entsize;
374 } Elf64_Shdr;
375 
376 
377 
378 #define SHN_UNDEF	0
379 #define SHN_LORESERVE	0xff00
380 #define SHN_LOPROC	0xff00
381 #define SHN_BEFORE	0xff00
382 
383 #define SHN_AFTER	0xff01
384 
385 #define SHN_HIPROC	0xff1f
386 #define SHN_LOOS	0xff20
387 #define SHN_HIOS	0xff3f
388 #define SHN_ABS		0xfff1
389 #define SHN_COMMON	0xfff2
390 #define SHN_XINDEX	0xffff
391 #define SHN_HIRESERVE	0xffff
392 
393 
394 
395 #define SHT_NULL	  0
396 #define SHT_PROGBITS	  1
397 #define SHT_SYMTAB	  2
398 #define SHT_STRTAB	  3
399 #define SHT_RELA	  4
400 #define SHT_HASH	  5
401 #define SHT_DYNAMIC	  6
402 #define SHT_NOTE	  7
403 #define SHT_NOBITS	  8
404 #define SHT_REL		  9
405 #define SHT_SHLIB	  10
406 #define SHT_DYNSYM	  11
407 #define SHT_INIT_ARRAY	  14
408 #define SHT_FINI_ARRAY	  15
409 #define SHT_PREINIT_ARRAY 16
410 #define SHT_GROUP	  17
411 #define SHT_SYMTAB_SHNDX  18
412 #define	SHT_NUM		  19
413 #define SHT_LOOS	  0x60000000
414 #define SHT_GNU_ATTRIBUTES 0x6ffffff5
415 #define SHT_GNU_HASH	  0x6ffffff6
416 #define SHT_GNU_LIBLIST	  0x6ffffff7
417 #define SHT_CHECKSUM	  0x6ffffff8
418 #define SHT_LOSUNW	  0x6ffffffa
419 #define SHT_SUNW_move	  0x6ffffffa
420 #define SHT_SUNW_COMDAT   0x6ffffffb
421 #define SHT_SUNW_syminfo  0x6ffffffc
422 #define SHT_GNU_verdef	  0x6ffffffd
423 #define SHT_GNU_verneed	  0x6ffffffe
424 #define SHT_GNU_versym	  0x6fffffff
425 #define SHT_HISUNW	  0x6fffffff
426 #define SHT_HIOS	  0x6fffffff
427 #define SHT_LOPROC	  0x70000000
428 #define SHT_HIPROC	  0x7fffffff
429 #define SHT_LOUSER	  0x80000000
430 #define SHT_HIUSER	  0x8fffffff
431 
432 #define SHF_WRITE	     (1 << 0)
433 #define SHF_ALLOC	     (1 << 1)
434 #define SHF_EXECINSTR	     (1 << 2)
435 #define SHF_MERGE	     (1 << 4)
436 #define SHF_STRINGS	     (1 << 5)
437 #define SHF_INFO_LINK	     (1 << 6)
438 #define SHF_LINK_ORDER	     (1 << 7)
439 #define SHF_OS_NONCONFORMING (1 << 8)
440 
441 #define SHF_GROUP	     (1 << 9)
442 #define SHF_TLS		     (1 << 10)
443 #define SHF_COMPRESSED	     (1 << 11)
444 #define SHF_MASKOS	     0x0ff00000
445 #define SHF_MASKPROC	     0xf0000000
446 #define SHF_ORDERED	     (1 << 30)
447 #define SHF_EXCLUDE	     (1U << 31)
448 
449 typedef struct {
450   Elf32_Word	ch_type;
451   Elf32_Word	ch_size;
452   Elf32_Word	ch_addralign;
453 } Elf32_Chdr;
454 
455 typedef struct {
456   Elf64_Word	ch_type;
457   Elf64_Word	ch_reserved;
458   Elf64_Xword	ch_size;
459   Elf64_Xword	ch_addralign;
460 } Elf64_Chdr;
461 
462 #define ELFCOMPRESS_ZLIB	1
463 #define ELFCOMPRESS_LOOS	0x60000000
464 #define ELFCOMPRESS_HIOS	0x6fffffff
465 #define ELFCOMPRESS_LOPROC	0x70000000
466 #define ELFCOMPRESS_HIPROC	0x7fffffff
467 
468 
469 #define GRP_COMDAT	0x1
470 
471 typedef struct {
472   Elf32_Word	st_name;
473   Elf32_Addr	st_value;
474   Elf32_Word	st_size;
475   unsigned char	st_info;
476   unsigned char	st_other;
477   Elf32_Section	st_shndx;
478 } Elf32_Sym;
479 
480 typedef struct {
481   Elf64_Word	st_name;
482   unsigned char	st_info;
483   unsigned char st_other;
484   Elf64_Section	st_shndx;
485   Elf64_Addr	st_value;
486   Elf64_Xword	st_size;
487 } Elf64_Sym;
488 
489 typedef struct {
490   Elf32_Half si_boundto;
491   Elf32_Half si_flags;
492 } Elf32_Syminfo;
493 
494 typedef struct {
495   Elf64_Half si_boundto;
496   Elf64_Half si_flags;
497 } Elf64_Syminfo;
498 
499 #define SYMINFO_BT_SELF		0xffff
500 #define SYMINFO_BT_PARENT	0xfffe
501 #define SYMINFO_BT_LOWRESERVE	0xff00
502 
503 #define SYMINFO_FLG_DIRECT	0x0001
504 #define SYMINFO_FLG_PASSTHRU	0x0002
505 #define SYMINFO_FLG_COPY	0x0004
506 #define SYMINFO_FLG_LAZYLOAD	0x0008
507 
508 #define SYMINFO_NONE		0
509 #define SYMINFO_CURRENT		1
510 #define SYMINFO_NUM		2
511 
512 #define ELF32_ST_BIND(val)		(((unsigned char) (val)) >> 4)
513 #define ELF32_ST_TYPE(val)		((val) & 0xf)
514 #define ELF32_ST_INFO(bind, type)	(((bind) << 4) + ((type) & 0xf))
515 
516 #define ELF64_ST_BIND(val)		ELF32_ST_BIND (val)
517 #define ELF64_ST_TYPE(val)		ELF32_ST_TYPE (val)
518 #define ELF64_ST_INFO(bind, type)	ELF32_ST_INFO ((bind), (type))
519 
520 #define STB_LOCAL	0
521 #define STB_GLOBAL	1
522 #define STB_WEAK	2
523 #define	STB_NUM		3
524 #define STB_LOOS	10
525 #define STB_GNU_UNIQUE	10
526 #define STB_HIOS	12
527 #define STB_LOPROC	13
528 #define STB_HIPROC	15
529 
530 #define STT_NOTYPE	0
531 #define STT_OBJECT	1
532 #define STT_FUNC	2
533 #define STT_SECTION	3
534 #define STT_FILE	4
535 #define STT_COMMON	5
536 #define STT_TLS		6
537 #define	STT_NUM		7
538 #define STT_LOOS	10
539 #define STT_GNU_IFUNC	10
540 #define STT_HIOS	12
541 #define STT_LOPROC	13
542 #define STT_HIPROC	15
543 
544 #define STN_UNDEF	0
545 
546 #define ELF32_ST_VISIBILITY(o)	((o) & 0x03)
547 #define ELF64_ST_VISIBILITY(o)	ELF32_ST_VISIBILITY (o)
548 
549 #define STV_DEFAULT	0
550 #define STV_INTERNAL	1
551 #define STV_HIDDEN	2
552 #define STV_PROTECTED	3
553 
554 
555 
556 
557 typedef struct {
558   Elf32_Addr	r_offset;
559   Elf32_Word	r_info;
560 } Elf32_Rel;
561 
562 typedef struct {
563   Elf64_Addr	r_offset;
564   Elf64_Xword	r_info;
565 } Elf64_Rel;
566 
567 
568 
569 typedef struct {
570   Elf32_Addr	r_offset;
571   Elf32_Word	r_info;
572   Elf32_Sword	r_addend;
573 } Elf32_Rela;
574 
575 typedef struct {
576   Elf64_Addr	r_offset;
577   Elf64_Xword	r_info;
578   Elf64_Sxword	r_addend;
579 } Elf64_Rela;
580 
581 
582 
583 #define ELF32_R_SYM(val)		((val) >> 8)
584 #define ELF32_R_TYPE(val)		((val) & 0xff)
585 #define ELF32_R_INFO(sym, type)		(((sym) << 8) + ((type) & 0xff))
586 
587 #define ELF64_R_SYM(i)			((i) >> 32)
588 #define ELF64_R_TYPE(i)			((i) & 0xffffffff)
589 #define ELF64_R_INFO(sym,type)		((((Elf64_Xword) (sym)) << 32) + (type))
590 
591 
592 
593 typedef struct {
594   Elf32_Word	p_type;
595   Elf32_Off	p_offset;
596   Elf32_Addr	p_vaddr;
597   Elf32_Addr	p_paddr;
598   Elf32_Word	p_filesz;
599   Elf32_Word	p_memsz;
600   Elf32_Word	p_flags;
601   Elf32_Word	p_align;
602 } Elf32_Phdr;
603 
604 typedef struct {
605   Elf64_Word	p_type;
606   Elf64_Word	p_flags;
607   Elf64_Off	p_offset;
608   Elf64_Addr	p_vaddr;
609   Elf64_Addr	p_paddr;
610   Elf64_Xword	p_filesz;
611   Elf64_Xword	p_memsz;
612   Elf64_Xword	p_align;
613 } Elf64_Phdr;
614 
615 
616 
617 #define	PT_NULL		0
618 #define PT_LOAD		1
619 #define PT_DYNAMIC	2
620 #define PT_INTERP	3
621 #define PT_NOTE		4
622 #define PT_SHLIB	5
623 #define PT_PHDR		6
624 #define PT_TLS		7
625 #define	PT_NUM		8
626 #define PT_LOOS		0x60000000
627 #define PT_GNU_EH_FRAME	0x6474e550
628 #define PT_GNU_STACK	0x6474e551
629 #define PT_GNU_RELRO	0x6474e552
630 #define PT_LOSUNW	0x6ffffffa
631 #define PT_SUNWBSS	0x6ffffffa
632 #define PT_SUNWSTACK	0x6ffffffb
633 #define PT_HISUNW	0x6fffffff
634 #define PT_HIOS		0x6fffffff
635 #define PT_LOPROC	0x70000000
636 #define PT_HIPROC	0x7fffffff
637 
638 
639 #define PN_XNUM 0xffff
640 
641 
642 #define PF_X		(1 << 0)
643 #define PF_W		(1 << 1)
644 #define PF_R		(1 << 2)
645 #define PF_MASKOS	0x0ff00000
646 #define PF_MASKPROC	0xf0000000
647 
648 
649 
650 #define NT_PRSTATUS	1
651 #define NT_FPREGSET	2
652 #define NT_PRPSINFO	3
653 #define NT_PRXREG	4
654 #define NT_TASKSTRUCT	4
655 #define NT_PLATFORM	5
656 #define NT_AUXV		6
657 #define NT_GWINDOWS	7
658 #define NT_ASRS		8
659 #define NT_PSTATUS	10
660 #define NT_PSINFO	13
661 #define NT_PRCRED	14
662 #define NT_UTSNAME	15
663 #define NT_LWPSTATUS	16
664 #define NT_LWPSINFO	17
665 #define NT_PRFPXREG	20
666 #define NT_SIGINFO	0x53494749
667 #define NT_FILE		0x46494c45
668 #define NT_PRXFPREG	0x46e62b7f
669 #define NT_PPC_VMX	0x100
670 #define NT_PPC_SPE	0x101
671 #define NT_PPC_VSX	0x102
672 #define NT_386_TLS	0x200
673 #define NT_386_IOPERM	0x201
674 #define NT_X86_XSTATE	0x202
675 #define NT_S390_HIGH_GPRS	0x300
676 #define NT_S390_TIMER	0x301
677 #define NT_S390_TODCMP	0x302
678 #define NT_S390_TODPREG	0x303
679 #define NT_S390_CTRS	0x304
680 #define NT_S390_PREFIX	0x305
681 #define NT_S390_LAST_BREAK	0x306
682 #define NT_S390_SYSTEM_CALL	0x307
683 #define NT_S390_TDB	0x308
684 #define NT_ARM_VFP	0x400
685 #define NT_ARM_TLS	0x401
686 #define NT_ARM_HW_BREAK	0x402
687 #define NT_ARM_HW_WATCH	0x403
688 #define NT_ARM_SYSTEM_CALL	0x404
689 #define NT_ARM_SVE	0x405
690 #define NT_METAG_CBUF	0x500
691 #define NT_METAG_RPIPE	0x501
692 #define NT_METAG_TLS	0x502
693 #define NT_VERSION	1
694 
695 
696 
697 
698 typedef struct {
699   Elf32_Sword d_tag;
700   union {
701       Elf32_Word d_val;
702       Elf32_Addr d_ptr;
703   } d_un;
704 } Elf32_Dyn;
705 
706 typedef struct {
707   Elf64_Sxword d_tag;
708   union {
709       Elf64_Xword d_val;
710       Elf64_Addr d_ptr;
711   } d_un;
712 } Elf64_Dyn;
713 
714 
715 
716 #define DT_NULL		0
717 #define DT_NEEDED	1
718 #define DT_PLTRELSZ	2
719 #define DT_PLTGOT	3
720 #define DT_HASH		4
721 #define DT_STRTAB	5
722 #define DT_SYMTAB	6
723 #define DT_RELA		7
724 #define DT_RELASZ	8
725 #define DT_RELAENT	9
726 #define DT_STRSZ	10
727 #define DT_SYMENT	11
728 #define DT_INIT		12
729 #define DT_FINI		13
730 #define DT_SONAME	14
731 #define DT_RPATH	15
732 #define DT_SYMBOLIC	16
733 #define DT_REL		17
734 #define DT_RELSZ	18
735 #define DT_RELENT	19
736 #define DT_PLTREL	20
737 #define DT_DEBUG	21
738 #define DT_TEXTREL	22
739 #define DT_JMPREL	23
740 #define	DT_BIND_NOW	24
741 #define	DT_INIT_ARRAY	25
742 #define	DT_FINI_ARRAY	26
743 #define	DT_INIT_ARRAYSZ	27
744 #define	DT_FINI_ARRAYSZ	28
745 #define DT_RUNPATH	29
746 #define DT_FLAGS	30
747 #define DT_ENCODING	32
748 #define DT_PREINIT_ARRAY 32
749 #define DT_PREINIT_ARRAYSZ 33
750 #define	DT_NUM		34
751 #define DT_LOOS		0x6000000d
752 #define DT_HIOS		0x6ffff000
753 #define DT_LOPROC	0x70000000
754 #define DT_HIPROC	0x7fffffff
755 #define	DT_PROCNUM	DT_MIPS_NUM
756 
757 #define DT_VALRNGLO	0x6ffffd00
758 #define DT_GNU_PRELINKED 0x6ffffdf5
759 #define DT_GNU_CONFLICTSZ 0x6ffffdf6
760 #define DT_GNU_LIBLISTSZ 0x6ffffdf7
761 #define DT_CHECKSUM	0x6ffffdf8
762 #define DT_PLTPADSZ	0x6ffffdf9
763 #define DT_MOVEENT	0x6ffffdfa
764 #define DT_MOVESZ	0x6ffffdfb
765 #define DT_FEATURE_1	0x6ffffdfc
766 #define DT_POSFLAG_1	0x6ffffdfd
767 
768 #define DT_SYMINSZ	0x6ffffdfe
769 #define DT_SYMINENT	0x6ffffdff
770 #define DT_VALRNGHI	0x6ffffdff
771 #define DT_VALTAGIDX(tag)	(DT_VALRNGHI - (tag))
772 #define DT_VALNUM 12
773 
774 #define DT_ADDRRNGLO	0x6ffffe00
775 #define DT_GNU_HASH	0x6ffffef5
776 #define DT_TLSDESC_PLT	0x6ffffef6
777 #define DT_TLSDESC_GOT	0x6ffffef7
778 #define DT_GNU_CONFLICT	0x6ffffef8
779 #define DT_GNU_LIBLIST	0x6ffffef9
780 #define DT_CONFIG	0x6ffffefa
781 #define DT_DEPAUDIT	0x6ffffefb
782 #define DT_AUDIT	0x6ffffefc
783 #define	DT_PLTPAD	0x6ffffefd
784 #define	DT_MOVETAB	0x6ffffefe
785 #define DT_SYMINFO	0x6ffffeff
786 #define DT_ADDRRNGHI	0x6ffffeff
787 #define DT_ADDRTAGIDX(tag)	(DT_ADDRRNGHI - (tag))
788 #define DT_ADDRNUM 11
789 
790 
791 
792 #define DT_VERSYM	0x6ffffff0
793 
794 #define DT_RELACOUNT	0x6ffffff9
795 #define DT_RELCOUNT	0x6ffffffa
796 
797 
798 #define DT_FLAGS_1	0x6ffffffb
799 #define	DT_VERDEF	0x6ffffffc
800 
801 #define	DT_VERDEFNUM	0x6ffffffd
802 #define	DT_VERNEED	0x6ffffffe
803 
804 #define	DT_VERNEEDNUM	0x6fffffff
805 #define DT_VERSIONTAGIDX(tag)	(DT_VERNEEDNUM - (tag))
806 #define DT_VERSIONTAGNUM 16
807 
808 
809 
810 #define DT_AUXILIARY    0x7ffffffd
811 #define DT_FILTER       0x7fffffff
812 #define DT_EXTRATAGIDX(tag)	((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
813 #define DT_EXTRANUM	3
814 
815 
816 #define DF_ORIGIN	0x00000001
817 #define DF_SYMBOLIC	0x00000002
818 #define DF_TEXTREL	0x00000004
819 #define DF_BIND_NOW	0x00000008
820 #define DF_STATIC_TLS	0x00000010
821 
822 
823 
824 #define DF_1_NOW	0x00000001
825 #define DF_1_GLOBAL	0x00000002
826 #define DF_1_GROUP	0x00000004
827 #define DF_1_NODELETE	0x00000008
828 #define DF_1_LOADFLTR	0x00000010
829 #define DF_1_INITFIRST	0x00000020
830 #define DF_1_NOOPEN	0x00000040
831 #define DF_1_ORIGIN	0x00000080
832 #define DF_1_DIRECT	0x00000100
833 #define DF_1_TRANS	0x00000200
834 #define DF_1_INTERPOSE	0x00000400
835 #define DF_1_NODEFLIB	0x00000800
836 #define DF_1_NODUMP	0x00001000
837 #define DF_1_CONFALT	0x00002000
838 #define DF_1_ENDFILTEE	0x00004000
839 #define	DF_1_DISPRELDNE	0x00008000
840 #define	DF_1_DISPRELPND	0x00010000
841 #define	DF_1_NODIRECT	0x00020000
842 #define	DF_1_IGNMULDEF	0x00040000
843 #define	DF_1_NOKSYMS	0x00080000
844 #define	DF_1_NOHDR	0x00100000
845 #define	DF_1_EDITED	0x00200000
846 #define	DF_1_NORELOC	0x00400000
847 #define	DF_1_SYMINTPOSE	0x00800000
848 #define	DF_1_GLOBAUDIT	0x01000000
849 #define	DF_1_SINGLETON	0x02000000
850 
851 #define DTF_1_PARINIT	0x00000001
852 #define DTF_1_CONFEXP	0x00000002
853 
854 
855 #define DF_P1_LAZYLOAD	0x00000001
856 #define DF_P1_GROUPPERM	0x00000002
857 
858 
859 
860 
861 typedef struct {
862   Elf32_Half	vd_version;
863   Elf32_Half	vd_flags;
864   Elf32_Half	vd_ndx;
865   Elf32_Half	vd_cnt;
866   Elf32_Word	vd_hash;
867   Elf32_Word	vd_aux;
868   Elf32_Word	vd_next;
869 } Elf32_Verdef;
870 
871 typedef struct {
872   Elf64_Half	vd_version;
873   Elf64_Half	vd_flags;
874   Elf64_Half	vd_ndx;
875   Elf64_Half	vd_cnt;
876   Elf64_Word	vd_hash;
877   Elf64_Word	vd_aux;
878   Elf64_Word	vd_next;
879 } Elf64_Verdef;
880 
881 
882 
883 #define VER_DEF_NONE	0
884 #define VER_DEF_CURRENT	1
885 #define VER_DEF_NUM	2
886 
887 
888 #define VER_FLG_BASE	0x1
889 #define VER_FLG_WEAK	0x2
890 
891 
892 #define	VER_NDX_LOCAL		0
893 #define	VER_NDX_GLOBAL		1
894 #define	VER_NDX_LORESERVE	0xff00
895 #define	VER_NDX_ELIMINATE	0xff01
896 
897 
898 
899 typedef struct {
900   Elf32_Word	vda_name;
901   Elf32_Word	vda_next;
902 } Elf32_Verdaux;
903 
904 typedef struct {
905   Elf64_Word	vda_name;
906   Elf64_Word	vda_next;
907 } Elf64_Verdaux;
908 
909 
910 
911 
912 typedef struct {
913   Elf32_Half	vn_version;
914   Elf32_Half	vn_cnt;
915   Elf32_Word	vn_file;
916   Elf32_Word	vn_aux;
917   Elf32_Word	vn_next;
918 } Elf32_Verneed;
919 
920 typedef struct {
921   Elf64_Half	vn_version;
922   Elf64_Half	vn_cnt;
923   Elf64_Word	vn_file;
924   Elf64_Word	vn_aux;
925   Elf64_Word	vn_next;
926 } Elf64_Verneed;
927 
928 
929 
930 #define VER_NEED_NONE	 0
931 #define VER_NEED_CURRENT 1
932 #define VER_NEED_NUM	 2
933 
934 
935 
936 typedef struct {
937   Elf32_Word	vna_hash;
938   Elf32_Half	vna_flags;
939   Elf32_Half	vna_other;
940   Elf32_Word	vna_name;
941   Elf32_Word	vna_next;
942 } Elf32_Vernaux;
943 
944 typedef struct {
945   Elf64_Word	vna_hash;
946   Elf64_Half	vna_flags;
947   Elf64_Half	vna_other;
948   Elf64_Word	vna_name;
949   Elf64_Word	vna_next;
950 } Elf64_Vernaux;
951 
952 
953 
954 #define VER_FLG_WEAK	0x2
955 
956 
957 
958 typedef struct {
959   uint32_t a_type;
960   union {
961       uint32_t a_val;
962   } a_un;
963 } Elf32_auxv_t;
964 
965 typedef struct {
966   uint64_t a_type;
967   union {
968       uint64_t a_val;
969   } a_un;
970 } Elf64_auxv_t;
971 
972 
973 
974 #define AT_NULL		0
975 #define AT_IGNORE	1
976 #define AT_EXECFD	2
977 #define AT_PHDR		3
978 #define AT_PHENT	4
979 #define AT_PHNUM	5
980 #define AT_PAGESZ	6
981 #define AT_BASE		7
982 #define AT_FLAGS	8
983 #define AT_ENTRY	9
984 #define AT_NOTELF	10
985 #define AT_UID		11
986 #define AT_EUID		12
987 #define AT_GID		13
988 #define AT_EGID		14
989 #define AT_CLKTCK	17
990 
991 
992 #define AT_PLATFORM	15
993 #define AT_HWCAP	16
994 
995 
996 
997 
998 #define AT_FPUCW	18
999 
1000 
1001 #define AT_DCACHEBSIZE	19
1002 #define AT_ICACHEBSIZE	20
1003 #define AT_UCACHEBSIZE	21
1004 
1005 
1006 
1007 #define AT_IGNOREPPC	22
1008 
1009 #define	AT_SECURE	23
1010 
1011 #define AT_BASE_PLATFORM 24
1012 
1013 #define AT_RANDOM	25
1014 
1015 #define AT_HWCAP2	26
1016 
1017 #define AT_EXECFN	31
1018 
1019 
1020 
1021 #define AT_SYSINFO	32
1022 #define AT_SYSINFO_EHDR	33
1023 
1024 
1025 
1026 #define AT_L1I_CACHESHAPE	34
1027 #define AT_L1D_CACHESHAPE	35
1028 #define AT_L2_CACHESHAPE	36
1029 #define AT_L3_CACHESHAPE	37
1030 
1031 
1032 
1033 
1034 typedef struct {
1035   Elf32_Word n_namesz;
1036   Elf32_Word n_descsz;
1037   Elf32_Word n_type;
1038 } Elf32_Nhdr;
1039 
1040 typedef struct {
1041   Elf64_Word n_namesz;
1042   Elf64_Word n_descsz;
1043   Elf64_Word n_type;
1044 } Elf64_Nhdr;
1045 
1046 
1047 
1048 
1049 #define ELF_NOTE_SOLARIS	"SUNW Solaris"
1050 
1051 
1052 #define ELF_NOTE_GNU		"GNU"
1053 
1054 
1055 
1056 
1057 
1058 #define ELF_NOTE_PAGESIZE_HINT	1
1059 
1060 
1061 #define NT_GNU_ABI_TAG	1
1062 #define ELF_NOTE_ABI	NT_GNU_ABI_TAG
1063 
1064 
1065 
1066 #define ELF_NOTE_OS_LINUX	0
1067 #define ELF_NOTE_OS_GNU		1
1068 #define ELF_NOTE_OS_SOLARIS2	2
1069 #define ELF_NOTE_OS_FREEBSD	3
1070 
1071 #define NT_GNU_BUILD_ID	3
1072 #define NT_GNU_GOLD_VERSION	4
1073 
1074 
1075 
1076 typedef struct {
1077   Elf32_Xword m_value;
1078   Elf32_Word m_info;
1079   Elf32_Word m_poffset;
1080   Elf32_Half m_repeat;
1081   Elf32_Half m_stride;
1082 } Elf32_Move;
1083 
1084 typedef struct {
1085   Elf64_Xword m_value;
1086   Elf64_Xword m_info;
1087   Elf64_Xword m_poffset;
1088   Elf64_Half m_repeat;
1089   Elf64_Half m_stride;
1090 } Elf64_Move;
1091 
1092 
1093 #define ELF32_M_SYM(info)	((info) >> 8)
1094 #define ELF32_M_SIZE(info)	((unsigned char) (info))
1095 #define ELF32_M_INFO(sym, size)	(((sym) << 8) + (unsigned char) (size))
1096 
1097 #define ELF64_M_SYM(info)	ELF32_M_SYM (info)
1098 #define ELF64_M_SIZE(info)	ELF32_M_SIZE (info)
1099 #define ELF64_M_INFO(sym, size)	ELF32_M_INFO (sym, size)
1100 
1101 #define EF_CPU32	0x00810000
1102 
1103 #define R_68K_NONE	0
1104 #define R_68K_32	1
1105 #define R_68K_16	2
1106 #define R_68K_8		3
1107 #define R_68K_PC32	4
1108 #define R_68K_PC16	5
1109 #define R_68K_PC8	6
1110 #define R_68K_GOT32	7
1111 #define R_68K_GOT16	8
1112 #define R_68K_GOT8	9
1113 #define R_68K_GOT32O	10
1114 #define R_68K_GOT16O	11
1115 #define R_68K_GOT8O	12
1116 #define R_68K_PLT32	13
1117 #define R_68K_PLT16	14
1118 #define R_68K_PLT8	15
1119 #define R_68K_PLT32O	16
1120 #define R_68K_PLT16O	17
1121 #define R_68K_PLT8O	18
1122 #define R_68K_COPY	19
1123 #define R_68K_GLOB_DAT	20
1124 #define R_68K_JMP_SLOT	21
1125 #define R_68K_RELATIVE	22
1126 #define R_68K_NUM	23
1127 
1128 #define R_386_NONE	   0
1129 #define R_386_32	   1
1130 #define R_386_PC32	   2
1131 #define R_386_GOT32	   3
1132 #define R_386_PLT32	   4
1133 #define R_386_COPY	   5
1134 #define R_386_GLOB_DAT	   6
1135 #define R_386_JMP_SLOT	   7
1136 #define R_386_RELATIVE	   8
1137 #define R_386_GOTOFF	   9
1138 #define R_386_GOTPC	   10
1139 #define R_386_32PLT	   11
1140 #define R_386_TLS_TPOFF	   14
1141 #define R_386_TLS_IE	   15
1142 #define R_386_TLS_GOTIE	   16
1143 #define R_386_TLS_LE	   17
1144 #define R_386_TLS_GD	   18
1145 #define R_386_TLS_LDM	   19
1146 #define R_386_16	   20
1147 #define R_386_PC16	   21
1148 #define R_386_8		   22
1149 #define R_386_PC8	   23
1150 #define R_386_TLS_GD_32	   24
1151 #define R_386_TLS_GD_PUSH  25
1152 #define R_386_TLS_GD_CALL  26
1153 #define R_386_TLS_GD_POP   27
1154 #define R_386_TLS_LDM_32   28
1155 #define R_386_TLS_LDM_PUSH 29
1156 #define R_386_TLS_LDM_CALL 30
1157 #define R_386_TLS_LDM_POP  31
1158 #define R_386_TLS_LDO_32   32
1159 #define R_386_TLS_IE_32	   33
1160 #define R_386_TLS_LE_32	   34
1161 #define R_386_TLS_DTPMOD32 35
1162 #define R_386_TLS_DTPOFF32 36
1163 #define R_386_TLS_TPOFF32  37
1164 #define R_386_SIZE32       38
1165 #define R_386_TLS_GOTDESC  39
1166 #define R_386_TLS_DESC_CALL 40
1167 #define R_386_TLS_DESC     41
1168 #define R_386_IRELATIVE	   42
1169 #define R_386_GOT32X	   43
1170 #define R_386_NUM	   44
1171 
1172 
1173 
1174 
1175 
1176 #define STT_SPARC_REGISTER	13
1177 
1178 
1179 
1180 #define EF_SPARCV9_MM		3
1181 #define EF_SPARCV9_TSO		0
1182 #define EF_SPARCV9_PSO		1
1183 #define EF_SPARCV9_RMO		2
1184 #define EF_SPARC_LEDATA		0x800000
1185 #define EF_SPARC_EXT_MASK	0xFFFF00
1186 #define EF_SPARC_32PLUS		0x000100
1187 #define EF_SPARC_SUN_US1	0x000200
1188 #define EF_SPARC_HAL_R1		0x000400
1189 #define EF_SPARC_SUN_US3	0x000800
1190 
1191 
1192 
1193 #define R_SPARC_NONE		0
1194 #define R_SPARC_8		1
1195 #define R_SPARC_16		2
1196 #define R_SPARC_32		3
1197 #define R_SPARC_DISP8		4
1198 #define R_SPARC_DISP16		5
1199 #define R_SPARC_DISP32		6
1200 #define R_SPARC_WDISP30		7
1201 #define R_SPARC_WDISP22		8
1202 #define R_SPARC_HI22		9
1203 #define R_SPARC_22		10
1204 #define R_SPARC_13		11
1205 #define R_SPARC_LO10		12
1206 #define R_SPARC_GOT10		13
1207 #define R_SPARC_GOT13		14
1208 #define R_SPARC_GOT22		15
1209 #define R_SPARC_PC10		16
1210 #define R_SPARC_PC22		17
1211 #define R_SPARC_WPLT30		18
1212 #define R_SPARC_COPY		19
1213 #define R_SPARC_GLOB_DAT	20
1214 #define R_SPARC_JMP_SLOT	21
1215 #define R_SPARC_RELATIVE	22
1216 #define R_SPARC_UA32		23
1217 
1218 
1219 
1220 #define R_SPARC_PLT32		24
1221 #define R_SPARC_HIPLT22		25
1222 #define R_SPARC_LOPLT10		26
1223 #define R_SPARC_PCPLT32		27
1224 #define R_SPARC_PCPLT22		28
1225 #define R_SPARC_PCPLT10		29
1226 #define R_SPARC_10		30
1227 #define R_SPARC_11		31
1228 #define R_SPARC_64		32
1229 #define R_SPARC_OLO10		33
1230 #define R_SPARC_HH22		34
1231 #define R_SPARC_HM10		35
1232 #define R_SPARC_LM22		36
1233 #define R_SPARC_PC_HH22		37
1234 #define R_SPARC_PC_HM10		38
1235 #define R_SPARC_PC_LM22		39
1236 #define R_SPARC_WDISP16		40
1237 #define R_SPARC_WDISP19		41
1238 #define R_SPARC_GLOB_JMP	42
1239 #define R_SPARC_7		43
1240 #define R_SPARC_5		44
1241 #define R_SPARC_6		45
1242 #define R_SPARC_DISP64		46
1243 #define R_SPARC_PLT64		47
1244 #define R_SPARC_HIX22		48
1245 #define R_SPARC_LOX10		49
1246 #define R_SPARC_H44		50
1247 #define R_SPARC_M44		51
1248 #define R_SPARC_L44		52
1249 #define R_SPARC_REGISTER	53
1250 #define R_SPARC_UA64		54
1251 #define R_SPARC_UA16		55
1252 #define R_SPARC_TLS_GD_HI22	56
1253 #define R_SPARC_TLS_GD_LO10	57
1254 #define R_SPARC_TLS_GD_ADD	58
1255 #define R_SPARC_TLS_GD_CALL	59
1256 #define R_SPARC_TLS_LDM_HI22	60
1257 #define R_SPARC_TLS_LDM_LO10	61
1258 #define R_SPARC_TLS_LDM_ADD	62
1259 #define R_SPARC_TLS_LDM_CALL	63
1260 #define R_SPARC_TLS_LDO_HIX22	64
1261 #define R_SPARC_TLS_LDO_LOX10	65
1262 #define R_SPARC_TLS_LDO_ADD	66
1263 #define R_SPARC_TLS_IE_HI22	67
1264 #define R_SPARC_TLS_IE_LO10	68
1265 #define R_SPARC_TLS_IE_LD	69
1266 #define R_SPARC_TLS_IE_LDX	70
1267 #define R_SPARC_TLS_IE_ADD	71
1268 #define R_SPARC_TLS_LE_HIX22	72
1269 #define R_SPARC_TLS_LE_LOX10	73
1270 #define R_SPARC_TLS_DTPMOD32	74
1271 #define R_SPARC_TLS_DTPMOD64	75
1272 #define R_SPARC_TLS_DTPOFF32	76
1273 #define R_SPARC_TLS_DTPOFF64	77
1274 #define R_SPARC_TLS_TPOFF32	78
1275 #define R_SPARC_TLS_TPOFF64	79
1276 #define R_SPARC_GOTDATA_HIX22	80
1277 #define R_SPARC_GOTDATA_LOX10	81
1278 #define R_SPARC_GOTDATA_OP_HIX22	82
1279 #define R_SPARC_GOTDATA_OP_LOX10	83
1280 #define R_SPARC_GOTDATA_OP	84
1281 #define R_SPARC_H34		85
1282 #define R_SPARC_SIZE32		86
1283 #define R_SPARC_SIZE64		87
1284 #define R_SPARC_GNU_VTINHERIT	250
1285 #define R_SPARC_GNU_VTENTRY	251
1286 #define R_SPARC_REV32		252
1287 
1288 #define R_SPARC_NUM		253
1289 
1290 
1291 
1292 #define DT_SPARC_REGISTER 0x70000001
1293 #define DT_SPARC_NUM	2
1294 
1295 
1296 #define EF_MIPS_NOREORDER   1
1297 #define EF_MIPS_PIC	    2
1298 #define EF_MIPS_CPIC	    4
1299 #define EF_MIPS_XGOT	    8
1300 #define EF_MIPS_64BIT_WHIRL 16
1301 #define EF_MIPS_ABI2	    32
1302 #define EF_MIPS_ABI_ON32    64
1303 #define EF_MIPS_FP64	    512
1304 #define EF_MIPS_NAN2008     1024
1305 #define EF_MIPS_ARCH	    0xf0000000
1306 
1307 
1308 
1309 #define EF_MIPS_ARCH_1	    0x00000000
1310 #define EF_MIPS_ARCH_2	    0x10000000
1311 #define EF_MIPS_ARCH_3	    0x20000000
1312 #define EF_MIPS_ARCH_4	    0x30000000
1313 #define EF_MIPS_ARCH_5	    0x40000000
1314 #define EF_MIPS_ARCH_32     0x50000000
1315 #define EF_MIPS_ARCH_64     0x60000000
1316 #define EF_MIPS_ARCH_32R2   0x70000000
1317 #define EF_MIPS_ARCH_64R2   0x80000000
1318 
1319 
1320 #define E_MIPS_ARCH_1	  0x00000000
1321 #define E_MIPS_ARCH_2	  0x10000000
1322 #define E_MIPS_ARCH_3	  0x20000000
1323 #define E_MIPS_ARCH_4	  0x30000000
1324 #define E_MIPS_ARCH_5	  0x40000000
1325 #define E_MIPS_ARCH_32	  0x50000000
1326 #define E_MIPS_ARCH_64	  0x60000000
1327 
1328 
1329 
1330 #define SHN_MIPS_ACOMMON    0xff00
1331 #define SHN_MIPS_TEXT	    0xff01
1332 #define SHN_MIPS_DATA	    0xff02
1333 #define SHN_MIPS_SCOMMON    0xff03
1334 #define SHN_MIPS_SUNDEFINED 0xff04
1335 
1336 
1337 
1338 #define SHT_MIPS_LIBLIST       0x70000000
1339 #define SHT_MIPS_MSYM	       0x70000001
1340 #define SHT_MIPS_CONFLICT      0x70000002
1341 #define SHT_MIPS_GPTAB	       0x70000003
1342 #define SHT_MIPS_UCODE	       0x70000004
1343 #define SHT_MIPS_DEBUG	       0x70000005
1344 #define SHT_MIPS_REGINFO       0x70000006
1345 #define SHT_MIPS_PACKAGE       0x70000007
1346 #define SHT_MIPS_PACKSYM       0x70000008
1347 #define SHT_MIPS_RELD	       0x70000009
1348 #define SHT_MIPS_IFACE         0x7000000b
1349 #define SHT_MIPS_CONTENT       0x7000000c
1350 #define SHT_MIPS_OPTIONS       0x7000000d
1351 #define SHT_MIPS_SHDR	       0x70000010
1352 #define SHT_MIPS_FDESC	       0x70000011
1353 #define SHT_MIPS_EXTSYM	       0x70000012
1354 #define SHT_MIPS_DENSE	       0x70000013
1355 #define SHT_MIPS_PDESC	       0x70000014
1356 #define SHT_MIPS_LOCSYM	       0x70000015
1357 #define SHT_MIPS_AUXSYM	       0x70000016
1358 #define SHT_MIPS_OPTSYM	       0x70000017
1359 #define SHT_MIPS_LOCSTR	       0x70000018
1360 #define SHT_MIPS_LINE	       0x70000019
1361 #define SHT_MIPS_RFDESC	       0x7000001a
1362 #define SHT_MIPS_DELTASYM      0x7000001b
1363 #define SHT_MIPS_DELTAINST     0x7000001c
1364 #define SHT_MIPS_DELTACLASS    0x7000001d
1365 #define SHT_MIPS_DWARF         0x7000001e
1366 #define SHT_MIPS_DELTADECL     0x7000001f
1367 #define SHT_MIPS_SYMBOL_LIB    0x70000020
1368 #define SHT_MIPS_EVENTS	       0x70000021
1369 #define SHT_MIPS_TRANSLATE     0x70000022
1370 #define SHT_MIPS_PIXIE	       0x70000023
1371 #define SHT_MIPS_XLATE	       0x70000024
1372 #define SHT_MIPS_XLATE_DEBUG   0x70000025
1373 #define SHT_MIPS_WHIRL	       0x70000026
1374 #define SHT_MIPS_EH_REGION     0x70000027
1375 #define SHT_MIPS_XLATE_OLD     0x70000028
1376 #define SHT_MIPS_PDR_EXCEPTION 0x70000029
1377 
1378 
1379 
1380 #define SHF_MIPS_GPREL	 0x10000000
1381 #define SHF_MIPS_MERGE	 0x20000000
1382 #define SHF_MIPS_ADDR	 0x40000000
1383 #define SHF_MIPS_STRINGS 0x80000000
1384 #define SHF_MIPS_NOSTRIP 0x08000000
1385 #define SHF_MIPS_LOCAL	 0x04000000
1386 #define SHF_MIPS_NAMES	 0x02000000
1387 #define SHF_MIPS_NODUPE	 0x01000000
1388 
1389 
1390 
1391 
1392 
1393 #define STO_MIPS_DEFAULT		0x0
1394 #define STO_MIPS_INTERNAL		0x1
1395 #define STO_MIPS_HIDDEN			0x2
1396 #define STO_MIPS_PROTECTED		0x3
1397 #define STO_MIPS_PLT			0x8
1398 #define STO_MIPS_SC_ALIGN_UNUSED	0xff
1399 
1400 
1401 #define STB_MIPS_SPLIT_COMMON		13
1402 
1403 
1404 
1405 typedef union {
1406   struct {
1407       Elf32_Word gt_current_g_value;
1408       Elf32_Word gt_unused;
1409   } gt_header;
1410   struct {
1411       Elf32_Word gt_g_value;
1412       Elf32_Word gt_bytes;
1413   } gt_entry;
1414 } Elf32_gptab;
1415 
1416 
1417 
1418 typedef struct {
1419   Elf32_Word	ri_gprmask;
1420   Elf32_Word	ri_cprmask[4];
1421   Elf32_Sword	ri_gp_value;
1422 } Elf32_RegInfo;
1423 
1424 
1425 
1426 typedef struct {
1427   unsigned char kind;
1428 
1429   unsigned char size;
1430   Elf32_Section section;
1431 
1432   Elf32_Word info;
1433 } Elf_Options;
1434 
1435 
1436 
1437 #define ODK_NULL	0
1438 #define ODK_REGINFO	1
1439 #define ODK_EXCEPTIONS	2
1440 #define ODK_PAD		3
1441 #define ODK_HWPATCH	4
1442 #define ODK_FILL	5
1443 #define ODK_TAGS	6
1444 #define ODK_HWAND	7
1445 #define ODK_HWOR	8
1446 
1447 
1448 
1449 #define OEX_FPU_MIN	0x1f
1450 #define OEX_FPU_MAX	0x1f00
1451 #define OEX_PAGE0	0x10000
1452 #define OEX_SMM		0x20000
1453 #define OEX_FPDBUG	0x40000
1454 #define OEX_PRECISEFP	OEX_FPDBUG
1455 #define OEX_DISMISS	0x80000
1456 
1457 #define OEX_FPU_INVAL	0x10
1458 #define OEX_FPU_DIV0	0x08
1459 #define OEX_FPU_OFLO	0x04
1460 #define OEX_FPU_UFLO	0x02
1461 #define OEX_FPU_INEX	0x01
1462 
1463 
1464 
1465 #define OHW_R4KEOP	0x1
1466 #define OHW_R8KPFETCH	0x2
1467 #define OHW_R5KEOP	0x4
1468 #define OHW_R5KCVTL	0x8
1469 
1470 #define OPAD_PREFIX	0x1
1471 #define OPAD_POSTFIX	0x2
1472 #define OPAD_SYMBOL	0x4
1473 
1474 
1475 
1476 typedef struct {
1477   Elf32_Word hwp_flags1;
1478   Elf32_Word hwp_flags2;
1479 } Elf_Options_Hw;
1480 
1481 
1482 
1483 #define OHWA0_R4KEOP_CHECKED	0x00000001
1484 #define OHWA1_R4KEOP_CLEAN	0x00000002
1485 
1486 
1487 
1488 #define R_MIPS_NONE		0
1489 #define R_MIPS_16		1
1490 #define R_MIPS_32		2
1491 #define R_MIPS_REL32		3
1492 #define R_MIPS_26		4
1493 #define R_MIPS_HI16		5
1494 #define R_MIPS_LO16		6
1495 #define R_MIPS_GPREL16		7
1496 #define R_MIPS_LITERAL		8
1497 #define R_MIPS_GOT16		9
1498 #define R_MIPS_PC16		10
1499 #define R_MIPS_CALL16		11
1500 #define R_MIPS_GPREL32		12
1501 
1502 #define R_MIPS_SHIFT5		16
1503 #define R_MIPS_SHIFT6		17
1504 #define R_MIPS_64		18
1505 #define R_MIPS_GOT_DISP		19
1506 #define R_MIPS_GOT_PAGE		20
1507 #define R_MIPS_GOT_OFST		21
1508 #define R_MIPS_GOT_HI16		22
1509 #define R_MIPS_GOT_LO16		23
1510 #define R_MIPS_SUB		24
1511 #define R_MIPS_INSERT_A		25
1512 #define R_MIPS_INSERT_B		26
1513 #define R_MIPS_DELETE		27
1514 #define R_MIPS_HIGHER		28
1515 #define R_MIPS_HIGHEST		29
1516 #define R_MIPS_CALL_HI16	30
1517 #define R_MIPS_CALL_LO16	31
1518 #define R_MIPS_SCN_DISP		32
1519 #define R_MIPS_REL16		33
1520 #define R_MIPS_ADD_IMMEDIATE	34
1521 #define R_MIPS_PJUMP		35
1522 #define R_MIPS_RELGOT		36
1523 #define R_MIPS_JALR		37
1524 #define R_MIPS_TLS_DTPMOD32	38
1525 #define R_MIPS_TLS_DTPREL32	39
1526 #define R_MIPS_TLS_DTPMOD64	40
1527 #define R_MIPS_TLS_DTPREL64	41
1528 #define R_MIPS_TLS_GD		42
1529 #define R_MIPS_TLS_LDM		43
1530 #define R_MIPS_TLS_DTPREL_HI16	44
1531 #define R_MIPS_TLS_DTPREL_LO16	45
1532 #define R_MIPS_TLS_GOTTPREL	46
1533 #define R_MIPS_TLS_TPREL32	47
1534 #define R_MIPS_TLS_TPREL64	48
1535 #define R_MIPS_TLS_TPREL_HI16	49
1536 #define R_MIPS_TLS_TPREL_LO16	50
1537 #define R_MIPS_GLOB_DAT		51
1538 #define R_MIPS_COPY		126
1539 #define R_MIPS_JUMP_SLOT        127
1540 
1541 #define R_MIPS_NUM		128
1542 
1543 
1544 
1545 #define PT_MIPS_REGINFO	0x70000000
1546 #define PT_MIPS_RTPROC  0x70000001
1547 #define PT_MIPS_OPTIONS 0x70000002
1548 #define PT_MIPS_ABIFLAGS 0x70000003
1549 
1550 
1551 
1552 #define PF_MIPS_LOCAL	0x10000000
1553 
1554 
1555 
1556 #define DT_MIPS_RLD_VERSION  0x70000001
1557 #define DT_MIPS_TIME_STAMP   0x70000002
1558 #define DT_MIPS_ICHECKSUM    0x70000003
1559 #define DT_MIPS_IVERSION     0x70000004
1560 #define DT_MIPS_FLAGS	     0x70000005
1561 #define DT_MIPS_BASE_ADDRESS 0x70000006
1562 #define DT_MIPS_MSYM	     0x70000007
1563 #define DT_MIPS_CONFLICT     0x70000008
1564 #define DT_MIPS_LIBLIST	     0x70000009
1565 #define DT_MIPS_LOCAL_GOTNO  0x7000000a
1566 #define DT_MIPS_CONFLICTNO   0x7000000b
1567 #define DT_MIPS_LIBLISTNO    0x70000010
1568 #define DT_MIPS_SYMTABNO     0x70000011
1569 #define DT_MIPS_UNREFEXTNO   0x70000012
1570 #define DT_MIPS_GOTSYM	     0x70000013
1571 #define DT_MIPS_HIPAGENO     0x70000014
1572 #define DT_MIPS_RLD_MAP	     0x70000016
1573 #define DT_MIPS_DELTA_CLASS  0x70000017
1574 #define DT_MIPS_DELTA_CLASS_NO    0x70000018
1575 
1576 #define DT_MIPS_DELTA_INSTANCE    0x70000019
1577 #define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a
1578 
1579 #define DT_MIPS_DELTA_RELOC  0x7000001b
1580 #define DT_MIPS_DELTA_RELOC_NO 0x7000001c
1581 
1582 #define DT_MIPS_DELTA_SYM    0x7000001d
1583 
1584 #define DT_MIPS_DELTA_SYM_NO 0x7000001e
1585 
1586 #define DT_MIPS_DELTA_CLASSSYM 0x70000020
1587 
1588 #define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021
1589 
1590 #define DT_MIPS_CXX_FLAGS    0x70000022
1591 #define DT_MIPS_PIXIE_INIT   0x70000023
1592 #define DT_MIPS_SYMBOL_LIB   0x70000024
1593 #define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025
1594 #define DT_MIPS_LOCAL_GOTIDX 0x70000026
1595 #define DT_MIPS_HIDDEN_GOTIDX 0x70000027
1596 #define DT_MIPS_PROTECTED_GOTIDX 0x70000028
1597 #define DT_MIPS_OPTIONS	     0x70000029
1598 #define DT_MIPS_INTERFACE    0x7000002a
1599 #define DT_MIPS_DYNSTR_ALIGN 0x7000002b
1600 #define DT_MIPS_INTERFACE_SIZE 0x7000002c
1601 #define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d
1602 
1603 #define DT_MIPS_PERF_SUFFIX  0x7000002e
1604 
1605 #define DT_MIPS_COMPACT_SIZE 0x7000002f
1606 #define DT_MIPS_GP_VALUE     0x70000030
1607 #define DT_MIPS_AUX_DYNAMIC  0x70000031
1608 
1609 #define DT_MIPS_PLTGOT	     0x70000032
1610 
1611 #define DT_MIPS_RWPLT        0x70000034
1612 #define DT_MIPS_RLD_MAP_REL  0x70000035
1613 #define DT_MIPS_NUM	     0x36
1614 
1615 
1616 
1617 #define RHF_NONE		   0
1618 #define RHF_QUICKSTART		   (1 << 0)
1619 #define RHF_NOTPOT		   (1 << 1)
1620 #define RHF_NO_LIBRARY_REPLACEMENT (1 << 2)
1621 #define RHF_NO_MOVE		   (1 << 3)
1622 #define RHF_SGI_ONLY		   (1 << 4)
1623 #define RHF_GUARANTEE_INIT	   (1 << 5)
1624 #define RHF_DELTA_C_PLUS_PLUS	   (1 << 6)
1625 #define RHF_GUARANTEE_START_INIT   (1 << 7)
1626 #define RHF_PIXIE		   (1 << 8)
1627 #define RHF_DEFAULT_DELAY_LOAD	   (1 << 9)
1628 #define RHF_REQUICKSTART	   (1 << 10)
1629 #define RHF_REQUICKSTARTED	   (1 << 11)
1630 #define RHF_CORD		   (1 << 12)
1631 #define RHF_NO_UNRES_UNDEF	   (1 << 13)
1632 #define RHF_RLD_ORDER_SAFE	   (1 << 14)
1633 
1634 
1635 
1636 typedef struct {
1637   Elf32_Word l_name;
1638   Elf32_Word l_time_stamp;
1639   Elf32_Word l_checksum;
1640   Elf32_Word l_version;
1641   Elf32_Word l_flags;
1642 } Elf32_Lib;
1643 
1644 typedef struct {
1645   Elf64_Word l_name;
1646   Elf64_Word l_time_stamp;
1647   Elf64_Word l_checksum;
1648   Elf64_Word l_version;
1649   Elf64_Word l_flags;
1650 } Elf64_Lib;
1651 
1652 
1653 
1654 
1655 #define LL_NONE		  0
1656 #define LL_EXACT_MATCH	  (1 << 0)
1657 #define LL_IGNORE_INT_VER (1 << 1)
1658 #define LL_REQUIRE_MINOR  (1 << 2)
1659 #define LL_EXPORTS	  (1 << 3)
1660 #define LL_DELAY_LOAD	  (1 << 4)
1661 #define LL_DELTA	  (1 << 5)
1662 
1663 
1664 
1665 typedef Elf32_Addr Elf32_Conflict;
1666 
1667 typedef struct {
1668   Elf32_Half version;
1669   unsigned char isa_level;
1670   unsigned char isa_rev;
1671   unsigned char gpr_size;
1672   unsigned char cpr1_size;
1673   unsigned char cpr2_size;
1674   unsigned char fp_abi;
1675   Elf32_Word isa_ext;
1676   Elf32_Word ases;
1677   Elf32_Word flags1;
1678   Elf32_Word flags2;
1679 } Elf_MIPS_ABIFlags_v0;
1680 
1681 #define MIPS_AFL_REG_NONE	0x00
1682 #define MIPS_AFL_REG_32		0x01
1683 #define MIPS_AFL_REG_64		0x02
1684 #define MIPS_AFL_REG_128	0x03
1685 
1686 #define MIPS_AFL_ASE_DSP	0x00000001
1687 #define MIPS_AFL_ASE_DSPR2	0x00000002
1688 #define MIPS_AFL_ASE_EVA	0x00000004
1689 #define MIPS_AFL_ASE_MCU	0x00000008
1690 #define MIPS_AFL_ASE_MDMX	0x00000010
1691 #define MIPS_AFL_ASE_MIPS3D	0x00000020
1692 #define MIPS_AFL_ASE_MT		0x00000040
1693 #define MIPS_AFL_ASE_SMARTMIPS	0x00000080
1694 #define MIPS_AFL_ASE_VIRT	0x00000100
1695 #define MIPS_AFL_ASE_MSA	0x00000200
1696 #define MIPS_AFL_ASE_MIPS16	0x00000400
1697 #define MIPS_AFL_ASE_MICROMIPS	0x00000800
1698 #define MIPS_AFL_ASE_XPA	0x00001000
1699 #define MIPS_AFL_ASE_MASK	0x00001fff
1700 
1701 #define MIPS_AFL_EXT_XLR	  1
1702 #define MIPS_AFL_EXT_OCTEON2	  2
1703 #define MIPS_AFL_EXT_OCTEONP	  3
1704 #define MIPS_AFL_EXT_LOONGSON_3A  4
1705 #define MIPS_AFL_EXT_OCTEON	  5
1706 #define MIPS_AFL_EXT_5900	  6
1707 #define MIPS_AFL_EXT_4650	  7
1708 #define MIPS_AFL_EXT_4010	  8
1709 #define MIPS_AFL_EXT_4100	  9
1710 #define MIPS_AFL_EXT_3900	  10
1711 #define MIPS_AFL_EXT_10000	  11
1712 #define MIPS_AFL_EXT_SB1	  12
1713 #define MIPS_AFL_EXT_4111	  13
1714 #define MIPS_AFL_EXT_4120	  14
1715 #define MIPS_AFL_EXT_5400	  15
1716 #define MIPS_AFL_EXT_5500	  16
1717 #define MIPS_AFL_EXT_LOONGSON_2E  17
1718 #define MIPS_AFL_EXT_LOONGSON_2F  18
1719 
1720 #define MIPS_AFL_FLAGS1_ODDSPREG  1
1721 
1722 enum
1723 {
1724   Val_GNU_MIPS_ABI_FP_ANY = 0,
1725   Val_GNU_MIPS_ABI_FP_DOUBLE = 1,
1726   Val_GNU_MIPS_ABI_FP_SINGLE = 2,
1727   Val_GNU_MIPS_ABI_FP_SOFT = 3,
1728   Val_GNU_MIPS_ABI_FP_OLD_64 = 4,
1729   Val_GNU_MIPS_ABI_FP_XX = 5,
1730   Val_GNU_MIPS_ABI_FP_64 = 6,
1731   Val_GNU_MIPS_ABI_FP_64A = 7,
1732   Val_GNU_MIPS_ABI_FP_MAX = 7
1733 };
1734 
1735 
1736 
1737 
1738 #define EF_PARISC_TRAPNIL	0x00010000
1739 #define EF_PARISC_EXT		0x00020000
1740 #define EF_PARISC_LSB		0x00040000
1741 #define EF_PARISC_WIDE		0x00080000
1742 #define EF_PARISC_NO_KABP	0x00100000
1743 
1744 #define EF_PARISC_LAZYSWAP	0x00400000
1745 #define EF_PARISC_ARCH		0x0000ffff
1746 
1747 
1748 
1749 #define EFA_PARISC_1_0		    0x020b
1750 #define EFA_PARISC_1_1		    0x0210
1751 #define EFA_PARISC_2_0		    0x0214
1752 
1753 
1754 
1755 #define SHN_PARISC_ANSI_COMMON	0xff00
1756 
1757 #define SHN_PARISC_HUGE_COMMON	0xff01
1758 
1759 
1760 
1761 #define SHT_PARISC_EXT		0x70000000
1762 #define SHT_PARISC_UNWIND	0x70000001
1763 #define SHT_PARISC_DOC		0x70000002
1764 
1765 
1766 
1767 #define SHF_PARISC_SHORT	0x20000000
1768 #define SHF_PARISC_HUGE		0x40000000
1769 #define SHF_PARISC_SBP		0x80000000
1770 
1771 
1772 
1773 #define STT_PARISC_MILLICODE	13
1774 
1775 #define STT_HP_OPAQUE		(STT_LOOS + 0x1)
1776 #define STT_HP_STUB		(STT_LOOS + 0x2)
1777 
1778 
1779 
1780 #define R_PARISC_NONE		0
1781 #define R_PARISC_DIR32		1
1782 #define R_PARISC_DIR21L		2
1783 #define R_PARISC_DIR17R		3
1784 #define R_PARISC_DIR17F		4
1785 #define R_PARISC_DIR14R		6
1786 #define R_PARISC_PCREL32	9
1787 #define R_PARISC_PCREL21L	10
1788 #define R_PARISC_PCREL17R	11
1789 #define R_PARISC_PCREL17F	12
1790 #define R_PARISC_PCREL14R	14
1791 #define R_PARISC_DPREL21L	18
1792 #define R_PARISC_DPREL14R	22
1793 #define R_PARISC_GPREL21L	26
1794 #define R_PARISC_GPREL14R	30
1795 #define R_PARISC_LTOFF21L	34
1796 #define R_PARISC_LTOFF14R	38
1797 #define R_PARISC_SECREL32	41
1798 #define R_PARISC_SEGBASE	48
1799 #define R_PARISC_SEGREL32	49
1800 #define R_PARISC_PLTOFF21L	50
1801 #define R_PARISC_PLTOFF14R	54
1802 #define R_PARISC_LTOFF_FPTR32	57
1803 #define R_PARISC_LTOFF_FPTR21L	58
1804 #define R_PARISC_LTOFF_FPTR14R	62
1805 #define R_PARISC_FPTR64		64
1806 #define R_PARISC_PLABEL32	65
1807 #define R_PARISC_PLABEL21L	66
1808 #define R_PARISC_PLABEL14R	70
1809 #define R_PARISC_PCREL64	72
1810 #define R_PARISC_PCREL22F	74
1811 #define R_PARISC_PCREL14WR	75
1812 #define R_PARISC_PCREL14DR	76
1813 #define R_PARISC_PCREL16F	77
1814 #define R_PARISC_PCREL16WF	78
1815 #define R_PARISC_PCREL16DF	79
1816 #define R_PARISC_DIR64		80
1817 #define R_PARISC_DIR14WR	83
1818 #define R_PARISC_DIR14DR	84
1819 #define R_PARISC_DIR16F		85
1820 #define R_PARISC_DIR16WF	86
1821 #define R_PARISC_DIR16DF	87
1822 #define R_PARISC_GPREL64	88
1823 #define R_PARISC_GPREL14WR	91
1824 #define R_PARISC_GPREL14DR	92
1825 #define R_PARISC_GPREL16F	93
1826 #define R_PARISC_GPREL16WF	94
1827 #define R_PARISC_GPREL16DF	95
1828 #define R_PARISC_LTOFF64	96
1829 #define R_PARISC_LTOFF14WR	99
1830 #define R_PARISC_LTOFF14DR	100
1831 #define R_PARISC_LTOFF16F	101
1832 #define R_PARISC_LTOFF16WF	102
1833 #define R_PARISC_LTOFF16DF	103
1834 #define R_PARISC_SECREL64	104
1835 #define R_PARISC_SEGREL64	112
1836 #define R_PARISC_PLTOFF14WR	115
1837 #define R_PARISC_PLTOFF14DR	116
1838 #define R_PARISC_PLTOFF16F	117
1839 #define R_PARISC_PLTOFF16WF	118
1840 #define R_PARISC_PLTOFF16DF	119
1841 #define R_PARISC_LTOFF_FPTR64	120
1842 #define R_PARISC_LTOFF_FPTR14WR	123
1843 #define R_PARISC_LTOFF_FPTR14DR	124
1844 #define R_PARISC_LTOFF_FPTR16F	125
1845 #define R_PARISC_LTOFF_FPTR16WF	126
1846 #define R_PARISC_LTOFF_FPTR16DF	127
1847 #define R_PARISC_LORESERVE	128
1848 #define R_PARISC_COPY		128
1849 #define R_PARISC_IPLT		129
1850 #define R_PARISC_EPLT		130
1851 #define R_PARISC_TPREL32	153
1852 #define R_PARISC_TPREL21L	154
1853 #define R_PARISC_TPREL14R	158
1854 #define R_PARISC_LTOFF_TP21L	162
1855 #define R_PARISC_LTOFF_TP14R	166
1856 #define R_PARISC_LTOFF_TP14F	167
1857 #define R_PARISC_TPREL64	216
1858 #define R_PARISC_TPREL14WR	219
1859 #define R_PARISC_TPREL14DR	220
1860 #define R_PARISC_TPREL16F	221
1861 #define R_PARISC_TPREL16WF	222
1862 #define R_PARISC_TPREL16DF	223
1863 #define R_PARISC_LTOFF_TP64	224
1864 #define R_PARISC_LTOFF_TP14WR	227
1865 #define R_PARISC_LTOFF_TP14DR	228
1866 #define R_PARISC_LTOFF_TP16F	229
1867 #define R_PARISC_LTOFF_TP16WF	230
1868 #define R_PARISC_LTOFF_TP16DF	231
1869 #define R_PARISC_GNU_VTENTRY	232
1870 #define R_PARISC_GNU_VTINHERIT	233
1871 #define R_PARISC_TLS_GD21L	234
1872 #define R_PARISC_TLS_GD14R	235
1873 #define R_PARISC_TLS_GDCALL	236
1874 #define R_PARISC_TLS_LDM21L	237
1875 #define R_PARISC_TLS_LDM14R	238
1876 #define R_PARISC_TLS_LDMCALL	239
1877 #define R_PARISC_TLS_LDO21L	240
1878 #define R_PARISC_TLS_LDO14R	241
1879 #define R_PARISC_TLS_DTPMOD32	242
1880 #define R_PARISC_TLS_DTPMOD64	243
1881 #define R_PARISC_TLS_DTPOFF32	244
1882 #define R_PARISC_TLS_DTPOFF64	245
1883 #define R_PARISC_TLS_LE21L	R_PARISC_TPREL21L
1884 #define R_PARISC_TLS_LE14R	R_PARISC_TPREL14R
1885 #define R_PARISC_TLS_IE21L	R_PARISC_LTOFF_TP21L
1886 #define R_PARISC_TLS_IE14R	R_PARISC_LTOFF_TP14R
1887 #define R_PARISC_TLS_TPREL32	R_PARISC_TPREL32
1888 #define R_PARISC_TLS_TPREL64	R_PARISC_TPREL64
1889 #define R_PARISC_HIRESERVE	255
1890 
1891 
1892 
1893 #define PT_HP_TLS		(PT_LOOS + 0x0)
1894 #define PT_HP_CORE_NONE		(PT_LOOS + 0x1)
1895 #define PT_HP_CORE_VERSION	(PT_LOOS + 0x2)
1896 #define PT_HP_CORE_KERNEL	(PT_LOOS + 0x3)
1897 #define PT_HP_CORE_COMM		(PT_LOOS + 0x4)
1898 #define PT_HP_CORE_PROC		(PT_LOOS + 0x5)
1899 #define PT_HP_CORE_LOADABLE	(PT_LOOS + 0x6)
1900 #define PT_HP_CORE_STACK	(PT_LOOS + 0x7)
1901 #define PT_HP_CORE_SHM		(PT_LOOS + 0x8)
1902 #define PT_HP_CORE_MMF		(PT_LOOS + 0x9)
1903 #define PT_HP_PARALLEL		(PT_LOOS + 0x10)
1904 #define PT_HP_FASTBIND		(PT_LOOS + 0x11)
1905 #define PT_HP_OPT_ANNOT		(PT_LOOS + 0x12)
1906 #define PT_HP_HSL_ANNOT		(PT_LOOS + 0x13)
1907 #define PT_HP_STACK		(PT_LOOS + 0x14)
1908 
1909 #define PT_PARISC_ARCHEXT	0x70000000
1910 #define PT_PARISC_UNWIND	0x70000001
1911 
1912 
1913 
1914 #define PF_PARISC_SBP		0x08000000
1915 
1916 #define PF_HP_PAGE_SIZE		0x00100000
1917 #define PF_HP_FAR_SHARED	0x00200000
1918 #define PF_HP_NEAR_SHARED	0x00400000
1919 #define PF_HP_CODE		0x01000000
1920 #define PF_HP_MODIFY		0x02000000
1921 #define PF_HP_LAZYSWAP		0x04000000
1922 #define PF_HP_SBP		0x08000000
1923 
1924 
1925 
1926 
1927 
1928 
1929 #define EF_ALPHA_32BIT		1
1930 #define EF_ALPHA_CANRELAX	2
1931 
1932 
1933 
1934 
1935 #define SHT_ALPHA_DEBUG		0x70000001
1936 #define SHT_ALPHA_REGINFO	0x70000002
1937 
1938 
1939 
1940 #define SHF_ALPHA_GPREL		0x10000000
1941 
1942 
1943 #define STO_ALPHA_NOPV		0x80
1944 #define STO_ALPHA_STD_GPLOAD	0x88
1945 
1946 
1947 
1948 #define R_ALPHA_NONE		0
1949 #define R_ALPHA_REFLONG		1
1950 #define R_ALPHA_REFQUAD		2
1951 #define R_ALPHA_GPREL32		3
1952 #define R_ALPHA_LITERAL		4
1953 #define R_ALPHA_LITUSE		5
1954 #define R_ALPHA_GPDISP		6
1955 #define R_ALPHA_BRADDR		7
1956 #define R_ALPHA_HINT		8
1957 #define R_ALPHA_SREL16		9
1958 #define R_ALPHA_SREL32		10
1959 #define R_ALPHA_SREL64		11
1960 #define R_ALPHA_GPRELHIGH	17
1961 #define R_ALPHA_GPRELLOW	18
1962 #define R_ALPHA_GPREL16		19
1963 #define R_ALPHA_COPY		24
1964 #define R_ALPHA_GLOB_DAT	25
1965 #define R_ALPHA_JMP_SLOT	26
1966 #define R_ALPHA_RELATIVE	27
1967 #define R_ALPHA_TLS_GD_HI	28
1968 #define R_ALPHA_TLSGD		29
1969 #define R_ALPHA_TLS_LDM		30
1970 #define R_ALPHA_DTPMOD64	31
1971 #define R_ALPHA_GOTDTPREL	32
1972 #define R_ALPHA_DTPREL64	33
1973 #define R_ALPHA_DTPRELHI	34
1974 #define R_ALPHA_DTPRELLO	35
1975 #define R_ALPHA_DTPREL16	36
1976 #define R_ALPHA_GOTTPREL	37
1977 #define R_ALPHA_TPREL64		38
1978 #define R_ALPHA_TPRELHI		39
1979 #define R_ALPHA_TPRELLO		40
1980 #define R_ALPHA_TPREL16		41
1981 
1982 #define R_ALPHA_NUM		46
1983 
1984 
1985 #define LITUSE_ALPHA_ADDR	0
1986 #define LITUSE_ALPHA_BASE	1
1987 #define LITUSE_ALPHA_BYTOFF	2
1988 #define LITUSE_ALPHA_JSR	3
1989 #define LITUSE_ALPHA_TLS_GD	4
1990 #define LITUSE_ALPHA_TLS_LDM	5
1991 
1992 
1993 #define DT_ALPHA_PLTRO		(DT_LOPROC + 0)
1994 #define DT_ALPHA_NUM		1
1995 
1996 
1997 
1998 
1999 #define EF_PPC_EMB		0x80000000
2000 
2001 
2002 #define EF_PPC_RELOCATABLE	0x00010000
2003 #define EF_PPC_RELOCATABLE_LIB	0x00008000
2004 
2005 
2006 
2007 #define R_PPC_NONE		0
2008 #define R_PPC_ADDR32		1
2009 #define R_PPC_ADDR24		2
2010 #define R_PPC_ADDR16		3
2011 #define R_PPC_ADDR16_LO		4
2012 #define R_PPC_ADDR16_HI		5
2013 #define R_PPC_ADDR16_HA		6
2014 #define R_PPC_ADDR14		7
2015 #define R_PPC_ADDR14_BRTAKEN	8
2016 #define R_PPC_ADDR14_BRNTAKEN	9
2017 #define R_PPC_REL24		10
2018 #define R_PPC_REL14		11
2019 #define R_PPC_REL14_BRTAKEN	12
2020 #define R_PPC_REL14_BRNTAKEN	13
2021 #define R_PPC_GOT16		14
2022 #define R_PPC_GOT16_LO		15
2023 #define R_PPC_GOT16_HI		16
2024 #define R_PPC_GOT16_HA		17
2025 #define R_PPC_PLTREL24		18
2026 #define R_PPC_COPY		19
2027 #define R_PPC_GLOB_DAT		20
2028 #define R_PPC_JMP_SLOT		21
2029 #define R_PPC_RELATIVE		22
2030 #define R_PPC_LOCAL24PC		23
2031 #define R_PPC_UADDR32		24
2032 #define R_PPC_UADDR16		25
2033 #define R_PPC_REL32		26
2034 #define R_PPC_PLT32		27
2035 #define R_PPC_PLTREL32		28
2036 #define R_PPC_PLT16_LO		29
2037 #define R_PPC_PLT16_HI		30
2038 #define R_PPC_PLT16_HA		31
2039 #define R_PPC_SDAREL16		32
2040 #define R_PPC_SECTOFF		33
2041 #define R_PPC_SECTOFF_LO	34
2042 #define R_PPC_SECTOFF_HI	35
2043 #define R_PPC_SECTOFF_HA	36
2044 
2045 
2046 #define R_PPC_TLS		67
2047 #define R_PPC_DTPMOD32		68
2048 #define R_PPC_TPREL16		69
2049 #define R_PPC_TPREL16_LO	70
2050 #define R_PPC_TPREL16_HI	71
2051 #define R_PPC_TPREL16_HA	72
2052 #define R_PPC_TPREL32		73
2053 #define R_PPC_DTPREL16		74
2054 #define R_PPC_DTPREL16_LO	75
2055 #define R_PPC_DTPREL16_HI	76
2056 #define R_PPC_DTPREL16_HA	77
2057 #define R_PPC_DTPREL32		78
2058 #define R_PPC_GOT_TLSGD16	79
2059 #define R_PPC_GOT_TLSGD16_LO	80
2060 #define R_PPC_GOT_TLSGD16_HI	81
2061 #define R_PPC_GOT_TLSGD16_HA	82
2062 #define R_PPC_GOT_TLSLD16	83
2063 #define R_PPC_GOT_TLSLD16_LO	84
2064 #define R_PPC_GOT_TLSLD16_HI	85
2065 #define R_PPC_GOT_TLSLD16_HA	86
2066 #define R_PPC_GOT_TPREL16	87
2067 #define R_PPC_GOT_TPREL16_LO	88
2068 #define R_PPC_GOT_TPREL16_HI	89
2069 #define R_PPC_GOT_TPREL16_HA	90
2070 #define R_PPC_GOT_DTPREL16	91
2071 #define R_PPC_GOT_DTPREL16_LO	92
2072 #define R_PPC_GOT_DTPREL16_HI	93
2073 #define R_PPC_GOT_DTPREL16_HA	94
2074 #define R_PPC_TLSGD		95
2075 #define R_PPC_TLSLD		96
2076 
2077 
2078 #define R_PPC_EMB_NADDR32	101
2079 #define R_PPC_EMB_NADDR16	102
2080 #define R_PPC_EMB_NADDR16_LO	103
2081 #define R_PPC_EMB_NADDR16_HI	104
2082 #define R_PPC_EMB_NADDR16_HA	105
2083 #define R_PPC_EMB_SDAI16	106
2084 #define R_PPC_EMB_SDA2I16	107
2085 #define R_PPC_EMB_SDA2REL	108
2086 #define R_PPC_EMB_SDA21		109
2087 #define R_PPC_EMB_MRKREF	110
2088 #define R_PPC_EMB_RELSEC16	111
2089 #define R_PPC_EMB_RELST_LO	112
2090 #define R_PPC_EMB_RELST_HI	113
2091 #define R_PPC_EMB_RELST_HA	114
2092 #define R_PPC_EMB_BIT_FLD	115
2093 #define R_PPC_EMB_RELSDA	116
2094 
2095 
2096 #define R_PPC_DIAB_SDA21_LO	180
2097 #define R_PPC_DIAB_SDA21_HI	181
2098 #define R_PPC_DIAB_SDA21_HA	182
2099 #define R_PPC_DIAB_RELSDA_LO	183
2100 #define R_PPC_DIAB_RELSDA_HI	184
2101 #define R_PPC_DIAB_RELSDA_HA	185
2102 
2103 
2104 #define R_PPC_IRELATIVE		248
2105 
2106 
2107 #define R_PPC_REL16		249
2108 #define R_PPC_REL16_LO		250
2109 #define R_PPC_REL16_HI		251
2110 #define R_PPC_REL16_HA		252
2111 
2112 
2113 
2114 #define R_PPC_TOC16		255
2115 
2116 
2117 #define DT_PPC_GOT		(DT_LOPROC + 0)
2118 #define DT_PPC_OPT		(DT_LOPROC + 1)
2119 #define DT_PPC_NUM		2
2120 
2121 #define PPC_OPT_TLS		1
2122 
2123 
2124 #define R_PPC64_NONE		R_PPC_NONE
2125 #define R_PPC64_ADDR32		R_PPC_ADDR32
2126 #define R_PPC64_ADDR24		R_PPC_ADDR24
2127 #define R_PPC64_ADDR16		R_PPC_ADDR16
2128 #define R_PPC64_ADDR16_LO	R_PPC_ADDR16_LO
2129 #define R_PPC64_ADDR16_HI	R_PPC_ADDR16_HI
2130 #define R_PPC64_ADDR16_HA	R_PPC_ADDR16_HA
2131 #define R_PPC64_ADDR14		R_PPC_ADDR14
2132 #define R_PPC64_ADDR14_BRTAKEN	R_PPC_ADDR14_BRTAKEN
2133 #define R_PPC64_ADDR14_BRNTAKEN	R_PPC_ADDR14_BRNTAKEN
2134 #define R_PPC64_REL24		R_PPC_REL24
2135 #define R_PPC64_REL14		R_PPC_REL14
2136 #define R_PPC64_REL14_BRTAKEN	R_PPC_REL14_BRTAKEN
2137 #define R_PPC64_REL14_BRNTAKEN	R_PPC_REL14_BRNTAKEN
2138 #define R_PPC64_GOT16		R_PPC_GOT16
2139 #define R_PPC64_GOT16_LO	R_PPC_GOT16_LO
2140 #define R_PPC64_GOT16_HI	R_PPC_GOT16_HI
2141 #define R_PPC64_GOT16_HA	R_PPC_GOT16_HA
2142 
2143 #define R_PPC64_COPY		R_PPC_COPY
2144 #define R_PPC64_GLOB_DAT	R_PPC_GLOB_DAT
2145 #define R_PPC64_JMP_SLOT	R_PPC_JMP_SLOT
2146 #define R_PPC64_RELATIVE	R_PPC_RELATIVE
2147 
2148 #define R_PPC64_UADDR32		R_PPC_UADDR32
2149 #define R_PPC64_UADDR16		R_PPC_UADDR16
2150 #define R_PPC64_REL32		R_PPC_REL32
2151 #define R_PPC64_PLT32		R_PPC_PLT32
2152 #define R_PPC64_PLTREL32	R_PPC_PLTREL32
2153 #define R_PPC64_PLT16_LO	R_PPC_PLT16_LO
2154 #define R_PPC64_PLT16_HI	R_PPC_PLT16_HI
2155 #define R_PPC64_PLT16_HA	R_PPC_PLT16_HA
2156 
2157 #define R_PPC64_SECTOFF		R_PPC_SECTOFF
2158 #define R_PPC64_SECTOFF_LO	R_PPC_SECTOFF_LO
2159 #define R_PPC64_SECTOFF_HI	R_PPC_SECTOFF_HI
2160 #define R_PPC64_SECTOFF_HA	R_PPC_SECTOFF_HA
2161 #define R_PPC64_ADDR30		37
2162 #define R_PPC64_ADDR64		38
2163 #define R_PPC64_ADDR16_HIGHER	39
2164 #define R_PPC64_ADDR16_HIGHERA	40
2165 #define R_PPC64_ADDR16_HIGHEST	41
2166 #define R_PPC64_ADDR16_HIGHESTA	42
2167 #define R_PPC64_UADDR64		43
2168 #define R_PPC64_REL64		44
2169 #define R_PPC64_PLT64		45
2170 #define R_PPC64_PLTREL64	46
2171 #define R_PPC64_TOC16		47
2172 #define R_PPC64_TOC16_LO	48
2173 #define R_PPC64_TOC16_HI	49
2174 #define R_PPC64_TOC16_HA	50
2175 #define R_PPC64_TOC		51
2176 #define R_PPC64_PLTGOT16	52
2177 #define R_PPC64_PLTGOT16_LO	53
2178 #define R_PPC64_PLTGOT16_HI	54
2179 #define R_PPC64_PLTGOT16_HA	55
2180 
2181 #define R_PPC64_ADDR16_DS	56
2182 #define R_PPC64_ADDR16_LO_DS	57
2183 #define R_PPC64_GOT16_DS	58
2184 #define R_PPC64_GOT16_LO_DS	59
2185 #define R_PPC64_PLT16_LO_DS	60
2186 #define R_PPC64_SECTOFF_DS	61
2187 #define R_PPC64_SECTOFF_LO_DS	62
2188 #define R_PPC64_TOC16_DS	63
2189 #define R_PPC64_TOC16_LO_DS	64
2190 #define R_PPC64_PLTGOT16_DS	65
2191 #define R_PPC64_PLTGOT16_LO_DS	66
2192 
2193 
2194 #define R_PPC64_TLS		67
2195 #define R_PPC64_DTPMOD64	68
2196 #define R_PPC64_TPREL16		69
2197 #define R_PPC64_TPREL16_LO	70
2198 #define R_PPC64_TPREL16_HI	71
2199 #define R_PPC64_TPREL16_HA	72
2200 #define R_PPC64_TPREL64		73
2201 #define R_PPC64_DTPREL16	74
2202 #define R_PPC64_DTPREL16_LO	75
2203 #define R_PPC64_DTPREL16_HI	76
2204 #define R_PPC64_DTPREL16_HA	77
2205 #define R_PPC64_DTPREL64	78
2206 #define R_PPC64_GOT_TLSGD16	79
2207 #define R_PPC64_GOT_TLSGD16_LO	80
2208 #define R_PPC64_GOT_TLSGD16_HI	81
2209 #define R_PPC64_GOT_TLSGD16_HA	82
2210 #define R_PPC64_GOT_TLSLD16	83
2211 #define R_PPC64_GOT_TLSLD16_LO	84
2212 #define R_PPC64_GOT_TLSLD16_HI	85
2213 #define R_PPC64_GOT_TLSLD16_HA	86
2214 #define R_PPC64_GOT_TPREL16_DS	87
2215 #define R_PPC64_GOT_TPREL16_LO_DS 88
2216 #define R_PPC64_GOT_TPREL16_HI	89
2217 #define R_PPC64_GOT_TPREL16_HA	90
2218 #define R_PPC64_GOT_DTPREL16_DS	91
2219 #define R_PPC64_GOT_DTPREL16_LO_DS 92
2220 #define R_PPC64_GOT_DTPREL16_HI	93
2221 #define R_PPC64_GOT_DTPREL16_HA	94
2222 #define R_PPC64_TPREL16_DS	95
2223 #define R_PPC64_TPREL16_LO_DS	96
2224 #define R_PPC64_TPREL16_HIGHER	97
2225 #define R_PPC64_TPREL16_HIGHERA	98
2226 #define R_PPC64_TPREL16_HIGHEST	99
2227 #define R_PPC64_TPREL16_HIGHESTA 100
2228 #define R_PPC64_DTPREL16_DS	101
2229 #define R_PPC64_DTPREL16_LO_DS	102
2230 #define R_PPC64_DTPREL16_HIGHER	103
2231 #define R_PPC64_DTPREL16_HIGHERA 104
2232 #define R_PPC64_DTPREL16_HIGHEST 105
2233 #define R_PPC64_DTPREL16_HIGHESTA 106
2234 #define R_PPC64_TLSGD		107
2235 #define R_PPC64_TLSLD		108
2236 #define R_PPC64_TOCSAVE		109
2237 #define R_PPC64_ADDR16_HIGH	110
2238 #define R_PPC64_ADDR16_HIGHA	111
2239 #define R_PPC64_TPREL16_HIGH	112
2240 #define R_PPC64_TPREL16_HIGHA	113
2241 #define R_PPC64_DTPREL16_HIGH	114
2242 #define R_PPC64_DTPREL16_HIGHA	115
2243 
2244 
2245 #define R_PPC64_JMP_IREL	247
2246 #define R_PPC64_IRELATIVE	248
2247 #define R_PPC64_REL16		249
2248 #define R_PPC64_REL16_LO	250
2249 #define R_PPC64_REL16_HI	251
2250 #define R_PPC64_REL16_HA	252
2251 
2252 #define EF_PPC64_ABI	3
2253 
2254 #define DT_PPC64_GLINK  (DT_LOPROC + 0)
2255 #define DT_PPC64_OPD	(DT_LOPROC + 1)
2256 #define DT_PPC64_OPDSZ	(DT_LOPROC + 2)
2257 #define DT_PPC64_OPT	(DT_LOPROC + 3)
2258 #define DT_PPC64_NUM	4
2259 
2260 #define PPC64_OPT_TLS		1
2261 #define PPC64_OPT_MULTI_TOC	2
2262 
2263 #define STO_PPC64_LOCAL_BIT	5
2264 #define STO_PPC64_LOCAL_MASK	0xe0
2265 #define PPC64_LOCAL_ENTRY_OFFSET(x) (1 << (((x)&0xe0)>>5) & 0xfc)
2266 
2267 
2268 #define EF_ARM_RELEXEC		0x01
2269 #define EF_ARM_HASENTRY		0x02
2270 #define EF_ARM_INTERWORK	0x04
2271 #define EF_ARM_APCS_26		0x08
2272 #define EF_ARM_APCS_FLOAT	0x10
2273 #define EF_ARM_PIC		0x20
2274 #define EF_ARM_ALIGN8		0x40
2275 #define EF_ARM_NEW_ABI		0x80
2276 #define EF_ARM_OLD_ABI		0x100
2277 #define EF_ARM_SOFT_FLOAT	0x200
2278 #define EF_ARM_VFP_FLOAT	0x400
2279 #define EF_ARM_MAVERICK_FLOAT	0x800
2280 
2281 #define EF_ARM_ABI_FLOAT_SOFT	0x200
2282 #define EF_ARM_ABI_FLOAT_HARD	0x400
2283 
2284 
2285 #define EF_ARM_SYMSARESORTED	0x04
2286 #define EF_ARM_DYNSYMSUSESEGIDX	0x08
2287 #define EF_ARM_MAPSYMSFIRST	0x10
2288 #define EF_ARM_EABIMASK		0XFF000000
2289 
2290 
2291 #define EF_ARM_BE8	    0x00800000
2292 #define EF_ARM_LE8	    0x00400000
2293 
2294 #define EF_ARM_EABI_VERSION(flags)	((flags) & EF_ARM_EABIMASK)
2295 #define EF_ARM_EABI_UNKNOWN	0x00000000
2296 #define EF_ARM_EABI_VER1	0x01000000
2297 #define EF_ARM_EABI_VER2	0x02000000
2298 #define EF_ARM_EABI_VER3	0x03000000
2299 #define EF_ARM_EABI_VER4	0x04000000
2300 #define EF_ARM_EABI_VER5	0x05000000
2301 
2302 
2303 #define STT_ARM_TFUNC		STT_LOPROC
2304 #define STT_ARM_16BIT		STT_HIPROC
2305 
2306 
2307 #define SHF_ARM_ENTRYSECT	0x10000000
2308 #define SHF_ARM_COMDEF		0x80000000
2309 
2310 
2311 
2312 #define PF_ARM_SB		0x10000000
2313 
2314 #define PF_ARM_PI		0x20000000
2315 #define PF_ARM_ABS		0x40000000
2316 
2317 
2318 #define PT_ARM_EXIDX		(PT_LOPROC + 1)
2319 
2320 
2321 #define SHT_ARM_EXIDX		(SHT_LOPROC + 1)
2322 #define SHT_ARM_PREEMPTMAP	(SHT_LOPROC + 2)
2323 #define SHT_ARM_ATTRIBUTES	(SHT_LOPROC + 3)
2324 
2325 #define R_AARCH64_NONE            0
2326 #define R_AARCH64_P32_ABS32	1
2327 #define R_AARCH64_P32_COPY	180
2328 #define R_AARCH64_P32_GLOB_DAT	181
2329 #define R_AARCH64_P32_JUMP_SLOT	182
2330 #define R_AARCH64_P32_RELATIVE	183
2331 #define R_AARCH64_P32_TLS_DTPMOD 184
2332 #define R_AARCH64_P32_TLS_DTPREL 185
2333 #define R_AARCH64_P32_TLS_TPREL	186
2334 #define R_AARCH64_P32_TLSDESC	187
2335 #define R_AARCH64_P32_IRELATIVE	188
2336 #define R_AARCH64_ABS64         257
2337 #define R_AARCH64_ABS32         258
2338 #define R_AARCH64_ABS16		259
2339 #define R_AARCH64_PREL64	260
2340 #define R_AARCH64_PREL32	261
2341 #define R_AARCH64_PREL16	262
2342 #define R_AARCH64_MOVW_UABS_G0	263
2343 #define R_AARCH64_MOVW_UABS_G0_NC 264
2344 #define R_AARCH64_MOVW_UABS_G1	265
2345 #define R_AARCH64_MOVW_UABS_G1_NC 266
2346 #define R_AARCH64_MOVW_UABS_G2	267
2347 #define R_AARCH64_MOVW_UABS_G2_NC 268
2348 #define R_AARCH64_MOVW_UABS_G3	269
2349 #define R_AARCH64_MOVW_SABS_G0	270
2350 #define R_AARCH64_MOVW_SABS_G1	271
2351 #define R_AARCH64_MOVW_SABS_G2	272
2352 #define R_AARCH64_LD_PREL_LO19	273
2353 #define R_AARCH64_ADR_PREL_LO21	274
2354 #define R_AARCH64_ADR_PREL_PG_HI21 275
2355 #define R_AARCH64_ADR_PREL_PG_HI21_NC 276
2356 #define R_AARCH64_ADD_ABS_LO12_NC 277
2357 #define R_AARCH64_LDST8_ABS_LO12_NC 278
2358 #define R_AARCH64_TSTBR14	279
2359 #define R_AARCH64_CONDBR19	280
2360 #define R_AARCH64_JUMP26	282
2361 #define R_AARCH64_CALL26	283
2362 #define R_AARCH64_LDST16_ABS_LO12_NC 284
2363 #define R_AARCH64_LDST32_ABS_LO12_NC 285
2364 #define R_AARCH64_LDST64_ABS_LO12_NC 286
2365 #define R_AARCH64_MOVW_PREL_G0	287
2366 #define R_AARCH64_MOVW_PREL_G0_NC 288
2367 #define R_AARCH64_MOVW_PREL_G1	289
2368 #define R_AARCH64_MOVW_PREL_G1_NC 290
2369 #define R_AARCH64_MOVW_PREL_G2	291
2370 #define R_AARCH64_MOVW_PREL_G2_NC 292
2371 #define R_AARCH64_MOVW_PREL_G3	293
2372 #define R_AARCH64_LDST128_ABS_LO12_NC 299
2373 #define R_AARCH64_MOVW_GOTOFF_G0 300
2374 #define R_AARCH64_MOVW_GOTOFF_G0_NC 301
2375 #define R_AARCH64_MOVW_GOTOFF_G1 302
2376 #define R_AARCH64_MOVW_GOTOFF_G1_NC 303
2377 #define R_AARCH64_MOVW_GOTOFF_G2 304
2378 #define R_AARCH64_MOVW_GOTOFF_G2_NC 305
2379 #define R_AARCH64_MOVW_GOTOFF_G3 306
2380 #define R_AARCH64_GOTREL64	307
2381 #define R_AARCH64_GOTREL32	308
2382 #define R_AARCH64_GOT_LD_PREL19	309
2383 #define R_AARCH64_LD64_GOTOFF_LO15 310
2384 #define R_AARCH64_ADR_GOT_PAGE	311
2385 #define R_AARCH64_LD64_GOT_LO12_NC 312
2386 #define R_AARCH64_LD64_GOTPAGE_LO15 313
2387 #define R_AARCH64_TLSGD_ADR_PREL21 512
2388 #define R_AARCH64_TLSGD_ADR_PAGE21 513
2389 #define R_AARCH64_TLSGD_ADD_LO12_NC 514
2390 #define R_AARCH64_TLSGD_MOVW_G1	515
2391 #define R_AARCH64_TLSGD_MOVW_G0_NC 516
2392 #define R_AARCH64_TLSLD_ADR_PREL21 517
2393 #define R_AARCH64_TLSLD_ADR_PAGE21 518
2394 #define R_AARCH64_TLSLD_ADD_LO12_NC 519
2395 #define R_AARCH64_TLSLD_MOVW_G1	520
2396 #define R_AARCH64_TLSLD_MOVW_G0_NC 521
2397 #define R_AARCH64_TLSLD_LD_PREL19 522
2398 #define R_AARCH64_TLSLD_MOVW_DTPREL_G2 523
2399 #define R_AARCH64_TLSLD_MOVW_DTPREL_G1 524
2400 #define R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 525
2401 #define R_AARCH64_TLSLD_MOVW_DTPREL_G0 526
2402 #define R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 527
2403 #define R_AARCH64_TLSLD_ADD_DTPREL_HI12 528
2404 #define R_AARCH64_TLSLD_ADD_DTPREL_LO12 529
2405 #define R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 530
2406 #define R_AARCH64_TLSLD_LDST8_DTPREL_LO12 531
2407 #define R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 532
2408 #define R_AARCH64_TLSLD_LDST16_DTPREL_LO12 533
2409 #define R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 534
2410 #define R_AARCH64_TLSLD_LDST32_DTPREL_LO12 535
2411 #define R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 536
2412 #define R_AARCH64_TLSLD_LDST64_DTPREL_LO12 537
2413 #define R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 538
2414 #define R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 539
2415 #define R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 540
2416 #define R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 541
2417 #define R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 542
2418 #define R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 543
2419 #define R_AARCH64_TLSLE_MOVW_TPREL_G2 544
2420 #define R_AARCH64_TLSLE_MOVW_TPREL_G1 545
2421 #define R_AARCH64_TLSLE_MOVW_TPREL_G1_NC 546
2422 #define R_AARCH64_TLSLE_MOVW_TPREL_G0 547
2423 #define R_AARCH64_TLSLE_MOVW_TPREL_G0_NC 548
2424 #define R_AARCH64_TLSLE_ADD_TPREL_HI12 549
2425 #define R_AARCH64_TLSLE_ADD_TPREL_LO12 550
2426 #define R_AARCH64_TLSLE_ADD_TPREL_LO12_NC 551
2427 #define R_AARCH64_TLSLE_LDST8_TPREL_LO12 552
2428 #define R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC 553
2429 #define R_AARCH64_TLSLE_LDST16_TPREL_LO12 554
2430 #define R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC 555
2431 #define R_AARCH64_TLSLE_LDST32_TPREL_LO12 556
2432 #define R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC 557
2433 #define R_AARCH64_TLSLE_LDST64_TPREL_LO12 558
2434 #define R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC 559
2435 #define R_AARCH64_TLSDESC_LD_PREL19 560
2436 #define R_AARCH64_TLSDESC_ADR_PREL21 561
2437 #define R_AARCH64_TLSDESC_ADR_PAGE21 562
2438 #define R_AARCH64_TLSDESC_LD64_LO12 563
2439 #define R_AARCH64_TLSDESC_ADD_LO12 564
2440 #define R_AARCH64_TLSDESC_OFF_G1 565
2441 #define R_AARCH64_TLSDESC_OFF_G0_NC 566
2442 #define R_AARCH64_TLSDESC_LDR	567
2443 #define R_AARCH64_TLSDESC_ADD	568
2444 #define R_AARCH64_TLSDESC_CALL	569
2445 #define R_AARCH64_TLSLE_LDST128_TPREL_LO12 570
2446 #define R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC 571
2447 #define R_AARCH64_TLSLD_LDST128_DTPREL_LO12 572
2448 #define R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC 573
2449 #define R_AARCH64_COPY         1024
2450 #define R_AARCH64_GLOB_DAT     1025
2451 #define R_AARCH64_JUMP_SLOT    1026
2452 #define R_AARCH64_RELATIVE     1027
2453 #define R_AARCH64_TLS_DTPMOD   1028
2454 #define R_AARCH64_TLS_DTPMOD64 1028
2455 #define R_AARCH64_TLS_DTPREL   1029
2456 #define R_AARCH64_TLS_DTPREL64 1029
2457 #define R_AARCH64_TLS_TPREL    1030
2458 #define R_AARCH64_TLS_TPREL64  1030
2459 #define R_AARCH64_TLSDESC      1031
2460 
2461 
2462 #define R_ARM_NONE		0
2463 #define R_ARM_PC24		1
2464 #define R_ARM_ABS32		2
2465 #define R_ARM_REL32		3
2466 #define R_ARM_PC13		4
2467 #define R_ARM_ABS16		5
2468 #define R_ARM_ABS12		6
2469 #define R_ARM_THM_ABS5		7
2470 #define R_ARM_ABS8		8
2471 #define R_ARM_SBREL32		9
2472 #define R_ARM_THM_PC22		10
2473 #define R_ARM_THM_PC8		11
2474 #define R_ARM_AMP_VCALL9	12
2475 #define R_ARM_TLS_DESC		13
2476 #define R_ARM_THM_SWI8		14
2477 #define R_ARM_XPC25		15
2478 #define R_ARM_THM_XPC22		16
2479 #define R_ARM_TLS_DTPMOD32	17
2480 #define R_ARM_TLS_DTPOFF32	18
2481 #define R_ARM_TLS_TPOFF32	19
2482 #define R_ARM_COPY		20
2483 #define R_ARM_GLOB_DAT		21
2484 #define R_ARM_JUMP_SLOT		22
2485 #define R_ARM_RELATIVE		23
2486 #define R_ARM_GOTOFF		24
2487 #define R_ARM_GOTPC		25
2488 #define R_ARM_GOT32		26
2489 #define R_ARM_PLT32		27
2490 #define R_ARM_CALL		28
2491 #define R_ARM_JUMP24		29
2492 #define R_ARM_THM_JUMP24	30
2493 #define R_ARM_BASE_ABS		31
2494 #define R_ARM_ALU_PCREL_7_0	32
2495 #define R_ARM_ALU_PCREL_15_8	33
2496 #define R_ARM_ALU_PCREL_23_15	34
2497 #define R_ARM_LDR_SBREL_11_0	35
2498 #define R_ARM_ALU_SBREL_19_12	36
2499 #define R_ARM_ALU_SBREL_27_20	37
2500 #define R_ARM_TARGET1		38
2501 #define R_ARM_SBREL31		39
2502 #define R_ARM_V4BX		40
2503 #define R_ARM_TARGET2		41
2504 #define R_ARM_PREL31		42
2505 #define R_ARM_MOVW_ABS_NC	43
2506 #define R_ARM_MOVT_ABS		44
2507 #define R_ARM_MOVW_PREL_NC	45
2508 #define R_ARM_MOVT_PREL		46
2509 #define R_ARM_THM_MOVW_ABS_NC	47
2510 #define R_ARM_THM_MOVT_ABS	48
2511 #define R_ARM_THM_MOVW_PREL_NC	49
2512 #define R_ARM_THM_MOVT_PREL	50
2513 #define R_ARM_THM_JUMP19	51
2514 #define R_ARM_THM_JUMP6		52
2515 #define R_ARM_THM_ALU_PREL_11_0	53
2516 #define R_ARM_THM_PC12		54
2517 #define R_ARM_ABS32_NOI		55
2518 #define R_ARM_REL32_NOI		56
2519 #define R_ARM_ALU_PC_G0_NC	57
2520 #define R_ARM_ALU_PC_G0		58
2521 #define R_ARM_ALU_PC_G1_NC	59
2522 #define R_ARM_ALU_PC_G1		60
2523 #define R_ARM_ALU_PC_G2		61
2524 #define R_ARM_LDR_PC_G1		62
2525 #define R_ARM_LDR_PC_G2		63
2526 #define R_ARM_LDRS_PC_G0	64
2527 #define R_ARM_LDRS_PC_G1	65
2528 #define R_ARM_LDRS_PC_G2	66
2529 #define R_ARM_LDC_PC_G0		67
2530 #define R_ARM_LDC_PC_G1		68
2531 #define R_ARM_LDC_PC_G2		69
2532 #define R_ARM_ALU_SB_G0_NC	70
2533 #define R_ARM_ALU_SB_G0		71
2534 #define R_ARM_ALU_SB_G1_NC	72
2535 #define R_ARM_ALU_SB_G1		73
2536 #define R_ARM_ALU_SB_G2		74
2537 #define R_ARM_LDR_SB_G0		75
2538 #define R_ARM_LDR_SB_G1		76
2539 #define R_ARM_LDR_SB_G2		77
2540 #define R_ARM_LDRS_SB_G0	78
2541 #define R_ARM_LDRS_SB_G1	79
2542 #define R_ARM_LDRS_SB_G2	80
2543 #define R_ARM_LDC_SB_G0		81
2544 #define R_ARM_LDC_SB_G1		82
2545 #define R_ARM_LDC_SB_G2		83
2546 #define R_ARM_MOVW_BREL_NC	84
2547 #define R_ARM_MOVT_BREL		85
2548 #define R_ARM_MOVW_BREL		86
2549 #define R_ARM_THM_MOVW_BREL_NC	87
2550 #define R_ARM_THM_MOVT_BREL	88
2551 #define R_ARM_THM_MOVW_BREL	89
2552 #define R_ARM_TLS_GOTDESC	90
2553 #define R_ARM_TLS_CALL		91
2554 #define R_ARM_TLS_DESCSEQ	92
2555 #define R_ARM_THM_TLS_CALL	93
2556 #define R_ARM_PLT32_ABS		94
2557 #define R_ARM_GOT_ABS		95
2558 #define R_ARM_GOT_PREL		96
2559 #define R_ARM_GOT_BREL12	97
2560 #define R_ARM_GOTOFF12		98
2561 #define R_ARM_GOTRELAX		99
2562 #define R_ARM_GNU_VTENTRY	100
2563 #define R_ARM_GNU_VTINHERIT	101
2564 #define R_ARM_THM_PC11		102
2565 #define R_ARM_THM_PC9		103
2566 #define R_ARM_TLS_GD32		104
2567 
2568 #define R_ARM_TLS_LDM32		105
2569 
2570 #define R_ARM_TLS_LDO32		106
2571 
2572 #define R_ARM_TLS_IE32		107
2573 
2574 #define R_ARM_TLS_LE32		108
2575 #define R_ARM_TLS_LDO12		109
2576 #define R_ARM_TLS_LE12		110
2577 #define R_ARM_TLS_IE12GP	111
2578 #define R_ARM_ME_TOO		128
2579 #define R_ARM_THM_TLS_DESCSEQ	129
2580 #define R_ARM_THM_TLS_DESCSEQ16	129
2581 #define R_ARM_THM_TLS_DESCSEQ32	130
2582 #define R_ARM_THM_GOT_BREL12	131
2583 #define R_ARM_IRELATIVE		160
2584 #define R_ARM_RXPC25		249
2585 #define R_ARM_RSBREL32		250
2586 #define R_ARM_THM_RPC22		251
2587 #define R_ARM_RREL32		252
2588 #define R_ARM_RABS22		253
2589 #define R_ARM_RPC24		254
2590 #define R_ARM_RBASE		255
2591 
2592 #define R_ARM_NUM		256
2593 
2594 
2595 
2596 
2597 #define EF_IA_64_MASKOS		0x0000000f
2598 #define EF_IA_64_ABI64		0x00000010
2599 #define EF_IA_64_ARCH		0xff000000
2600 
2601 
2602 #define PT_IA_64_ARCHEXT	(PT_LOPROC + 0)
2603 #define PT_IA_64_UNWIND		(PT_LOPROC + 1)
2604 #define PT_IA_64_HP_OPT_ANOT	(PT_LOOS + 0x12)
2605 #define PT_IA_64_HP_HSL_ANOT	(PT_LOOS + 0x13)
2606 #define PT_IA_64_HP_STACK	(PT_LOOS + 0x14)
2607 
2608 
2609 #define PF_IA_64_NORECOV	0x80000000
2610 
2611 
2612 #define SHT_IA_64_EXT		(SHT_LOPROC + 0)
2613 #define SHT_IA_64_UNWIND	(SHT_LOPROC + 1)
2614 
2615 
2616 #define SHF_IA_64_SHORT		0x10000000
2617 #define SHF_IA_64_NORECOV	0x20000000
2618 
2619 
2620 #define DT_IA_64_PLT_RESERVE	(DT_LOPROC + 0)
2621 #define DT_IA_64_NUM		1
2622 
2623 
2624 #define R_IA64_NONE		0x00
2625 #define R_IA64_IMM14		0x21
2626 #define R_IA64_IMM22		0x22
2627 #define R_IA64_IMM64		0x23
2628 #define R_IA64_DIR32MSB		0x24
2629 #define R_IA64_DIR32LSB		0x25
2630 #define R_IA64_DIR64MSB		0x26
2631 #define R_IA64_DIR64LSB		0x27
2632 #define R_IA64_GPREL22		0x2a
2633 #define R_IA64_GPREL64I		0x2b
2634 #define R_IA64_GPREL32MSB	0x2c
2635 #define R_IA64_GPREL32LSB	0x2d
2636 #define R_IA64_GPREL64MSB	0x2e
2637 #define R_IA64_GPREL64LSB	0x2f
2638 #define R_IA64_LTOFF22		0x32
2639 #define R_IA64_LTOFF64I		0x33
2640 #define R_IA64_PLTOFF22		0x3a
2641 #define R_IA64_PLTOFF64I	0x3b
2642 #define R_IA64_PLTOFF64MSB	0x3e
2643 #define R_IA64_PLTOFF64LSB	0x3f
2644 #define R_IA64_FPTR64I		0x43
2645 #define R_IA64_FPTR32MSB	0x44
2646 #define R_IA64_FPTR32LSB	0x45
2647 #define R_IA64_FPTR64MSB	0x46
2648 #define R_IA64_FPTR64LSB	0x47
2649 #define R_IA64_PCREL60B		0x48
2650 #define R_IA64_PCREL21B		0x49
2651 #define R_IA64_PCREL21M		0x4a
2652 #define R_IA64_PCREL21F		0x4b
2653 #define R_IA64_PCREL32MSB	0x4c
2654 #define R_IA64_PCREL32LSB	0x4d
2655 #define R_IA64_PCREL64MSB	0x4e
2656 #define R_IA64_PCREL64LSB	0x4f
2657 #define R_IA64_LTOFF_FPTR22	0x52
2658 #define R_IA64_LTOFF_FPTR64I	0x53
2659 #define R_IA64_LTOFF_FPTR32MSB	0x54
2660 #define R_IA64_LTOFF_FPTR32LSB	0x55
2661 #define R_IA64_LTOFF_FPTR64MSB	0x56
2662 #define R_IA64_LTOFF_FPTR64LSB	0x57
2663 #define R_IA64_SEGREL32MSB	0x5c
2664 #define R_IA64_SEGREL32LSB	0x5d
2665 #define R_IA64_SEGREL64MSB	0x5e
2666 #define R_IA64_SEGREL64LSB	0x5f
2667 #define R_IA64_SECREL32MSB	0x64
2668 #define R_IA64_SECREL32LSB	0x65
2669 #define R_IA64_SECREL64MSB	0x66
2670 #define R_IA64_SECREL64LSB	0x67
2671 #define R_IA64_REL32MSB		0x6c
2672 #define R_IA64_REL32LSB		0x6d
2673 #define R_IA64_REL64MSB		0x6e
2674 #define R_IA64_REL64LSB		0x6f
2675 #define R_IA64_LTV32MSB		0x74
2676 #define R_IA64_LTV32LSB		0x75
2677 #define R_IA64_LTV64MSB		0x76
2678 #define R_IA64_LTV64LSB		0x77
2679 #define R_IA64_PCREL21BI	0x79
2680 #define R_IA64_PCREL22		0x7a
2681 #define R_IA64_PCREL64I		0x7b
2682 #define R_IA64_IPLTMSB		0x80
2683 #define R_IA64_IPLTLSB		0x81
2684 #define R_IA64_COPY		0x84
2685 #define R_IA64_SUB		0x85
2686 #define R_IA64_LTOFF22X		0x86
2687 #define R_IA64_LDXMOV		0x87
2688 #define R_IA64_TPREL14		0x91
2689 #define R_IA64_TPREL22		0x92
2690 #define R_IA64_TPREL64I		0x93
2691 #define R_IA64_TPREL64MSB	0x96
2692 #define R_IA64_TPREL64LSB	0x97
2693 #define R_IA64_LTOFF_TPREL22	0x9a
2694 #define R_IA64_DTPMOD64MSB	0xa6
2695 #define R_IA64_DTPMOD64LSB	0xa7
2696 #define R_IA64_LTOFF_DTPMOD22	0xaa
2697 #define R_IA64_DTPREL14		0xb1
2698 #define R_IA64_DTPREL22		0xb2
2699 #define R_IA64_DTPREL64I	0xb3
2700 #define R_IA64_DTPREL32MSB	0xb4
2701 #define R_IA64_DTPREL32LSB	0xb5
2702 #define R_IA64_DTPREL64MSB	0xb6
2703 #define R_IA64_DTPREL64LSB	0xb7
2704 #define R_IA64_LTOFF_DTPREL22	0xba
2705 
2706 
2707 #define EF_SH_MACH_MASK		0x1f
2708 #define EF_SH_UNKNOWN		0x0
2709 #define EF_SH1			0x1
2710 #define EF_SH2			0x2
2711 #define EF_SH3			0x3
2712 #define EF_SH_DSP		0x4
2713 #define EF_SH3_DSP		0x5
2714 #define EF_SH4AL_DSP		0x6
2715 #define EF_SH3E			0x8
2716 #define EF_SH4			0x9
2717 #define EF_SH2E			0xb
2718 #define EF_SH4A			0xc
2719 #define EF_SH2A			0xd
2720 #define EF_SH4_NOFPU		0x10
2721 #define EF_SH4A_NOFPU		0x11
2722 #define EF_SH4_NOMMU_NOFPU	0x12
2723 #define EF_SH2A_NOFPU		0x13
2724 #define EF_SH3_NOMMU		0x14
2725 #define EF_SH2A_SH4_NOFPU	0x15
2726 #define EF_SH2A_SH3_NOFPU	0x16
2727 #define EF_SH2A_SH4		0x17
2728 #define EF_SH2A_SH3E		0x18
2729 
2730 #define	R_SH_NONE		0
2731 #define	R_SH_DIR32		1
2732 #define	R_SH_REL32		2
2733 #define	R_SH_DIR8WPN		3
2734 #define	R_SH_IND12W		4
2735 #define	R_SH_DIR8WPL		5
2736 #define	R_SH_DIR8WPZ		6
2737 #define	R_SH_DIR8BP		7
2738 #define	R_SH_DIR8W		8
2739 #define	R_SH_DIR8L		9
2740 #define	R_SH_SWITCH16		25
2741 #define	R_SH_SWITCH32		26
2742 #define	R_SH_USES		27
2743 #define	R_SH_COUNT		28
2744 #define	R_SH_ALIGN		29
2745 #define	R_SH_CODE		30
2746 #define	R_SH_DATA		31
2747 #define	R_SH_LABEL		32
2748 #define	R_SH_SWITCH8		33
2749 #define	R_SH_GNU_VTINHERIT	34
2750 #define	R_SH_GNU_VTENTRY	35
2751 #define	R_SH_TLS_GD_32		144
2752 #define	R_SH_TLS_LD_32		145
2753 #define	R_SH_TLS_LDO_32		146
2754 #define	R_SH_TLS_IE_32		147
2755 #define	R_SH_TLS_LE_32		148
2756 #define	R_SH_TLS_DTPMOD32	149
2757 #define	R_SH_TLS_DTPOFF32	150
2758 #define	R_SH_TLS_TPOFF32	151
2759 #define	R_SH_GOT32		160
2760 #define	R_SH_PLT32		161
2761 #define	R_SH_COPY		162
2762 #define	R_SH_GLOB_DAT		163
2763 #define	R_SH_JMP_SLOT		164
2764 #define	R_SH_RELATIVE		165
2765 #define	R_SH_GOTOFF		166
2766 #define	R_SH_GOTPC		167
2767 #define	R_SH_GOT20		201
2768 #define	R_SH_GOTOFF20		202
2769 #define	R_SH_GOTFUNCDESC	203
2770 #define	R_SH_GOTFUNCDEST20	204
2771 #define	R_SH_GOTOFFFUNCDESC	205
2772 #define	R_SH_GOTOFFFUNCDEST20	206
2773 #define	R_SH_FUNCDESC		207
2774 #define	R_SH_FUNCDESC_VALUE	208
2775 
2776 #define	R_SH_NUM		256
2777 
2778 
2779 
2780 #define R_390_NONE		0
2781 #define R_390_8			1
2782 #define R_390_12		2
2783 #define R_390_16		3
2784 #define R_390_32		4
2785 #define R_390_PC32		5
2786 #define R_390_GOT12		6
2787 #define R_390_GOT32		7
2788 #define R_390_PLT32		8
2789 #define R_390_COPY		9
2790 #define R_390_GLOB_DAT		10
2791 #define R_390_JMP_SLOT		11
2792 #define R_390_RELATIVE		12
2793 #define R_390_GOTOFF32		13
2794 #define R_390_GOTPC		14
2795 #define R_390_GOT16		15
2796 #define R_390_PC16		16
2797 #define R_390_PC16DBL		17
2798 #define R_390_PLT16DBL		18
2799 #define R_390_PC32DBL		19
2800 #define R_390_PLT32DBL		20
2801 #define R_390_GOTPCDBL		21
2802 #define R_390_64		22
2803 #define R_390_PC64		23
2804 #define R_390_GOT64		24
2805 #define R_390_PLT64		25
2806 #define R_390_GOTENT		26
2807 #define R_390_GOTOFF16		27
2808 #define R_390_GOTOFF64		28
2809 #define R_390_GOTPLT12		29
2810 #define R_390_GOTPLT16		30
2811 #define R_390_GOTPLT32		31
2812 #define R_390_GOTPLT64		32
2813 #define R_390_GOTPLTENT		33
2814 #define R_390_PLTOFF16		34
2815 #define R_390_PLTOFF32		35
2816 #define R_390_PLTOFF64		36
2817 #define R_390_TLS_LOAD		37
2818 #define R_390_TLS_GDCALL	38
2819 
2820 #define R_390_TLS_LDCALL	39
2821 
2822 #define R_390_TLS_GD32		40
2823 
2824 #define R_390_TLS_GD64		41
2825 
2826 #define R_390_TLS_GOTIE12	42
2827 
2828 #define R_390_TLS_GOTIE32	43
2829 
2830 #define R_390_TLS_GOTIE64	44
2831 
2832 #define R_390_TLS_LDM32		45
2833 
2834 #define R_390_TLS_LDM64		46
2835 
2836 #define R_390_TLS_IE32		47
2837 
2838 #define R_390_TLS_IE64		48
2839 
2840 #define R_390_TLS_IEENT		49
2841 
2842 #define R_390_TLS_LE32		50
2843 
2844 #define R_390_TLS_LE64		51
2845 
2846 #define R_390_TLS_LDO32		52
2847 
2848 #define R_390_TLS_LDO64		53
2849 
2850 #define R_390_TLS_DTPMOD	54
2851 #define R_390_TLS_DTPOFF	55
2852 #define R_390_TLS_TPOFF		56
2853 
2854 #define R_390_20		57
2855 #define R_390_GOT20		58
2856 #define R_390_GOTPLT20		59
2857 #define R_390_TLS_GOTIE20	60
2858 
2859 
2860 #define R_390_NUM		61
2861 
2862 
2863 
2864 #define R_CRIS_NONE		0
2865 #define R_CRIS_8		1
2866 #define R_CRIS_16		2
2867 #define R_CRIS_32		3
2868 #define R_CRIS_8_PCREL		4
2869 #define R_CRIS_16_PCREL		5
2870 #define R_CRIS_32_PCREL		6
2871 #define R_CRIS_GNU_VTINHERIT	7
2872 #define R_CRIS_GNU_VTENTRY	8
2873 #define R_CRIS_COPY		9
2874 #define R_CRIS_GLOB_DAT		10
2875 #define R_CRIS_JUMP_SLOT	11
2876 #define R_CRIS_RELATIVE		12
2877 #define R_CRIS_16_GOT		13
2878 #define R_CRIS_32_GOT		14
2879 #define R_CRIS_16_GOTPLT	15
2880 #define R_CRIS_32_GOTPLT	16
2881 #define R_CRIS_32_GOTREL	17
2882 #define R_CRIS_32_PLT_GOTREL	18
2883 #define R_CRIS_32_PLT_PCREL	19
2884 
2885 #define R_CRIS_NUM		20
2886 
2887 
2888 
2889 #define R_X86_64_NONE		0
2890 #define R_X86_64_64		1
2891 #define R_X86_64_PC32		2
2892 #define R_X86_64_GOT32		3
2893 #define R_X86_64_PLT32		4
2894 #define R_X86_64_COPY		5
2895 #define R_X86_64_GLOB_DAT	6
2896 #define R_X86_64_JUMP_SLOT	7
2897 #define R_X86_64_RELATIVE	8
2898 #define R_X86_64_GOTPCREL	9
2899 
2900 #define R_X86_64_32		10
2901 #define R_X86_64_32S		11
2902 #define R_X86_64_16		12
2903 #define R_X86_64_PC16		13
2904 #define R_X86_64_8		14
2905 #define R_X86_64_PC8		15
2906 #define R_X86_64_DTPMOD64	16
2907 #define R_X86_64_DTPOFF64	17
2908 #define R_X86_64_TPOFF64	18
2909 #define R_X86_64_TLSGD		19
2910 
2911 #define R_X86_64_TLSLD		20
2912 
2913 #define R_X86_64_DTPOFF32	21
2914 #define R_X86_64_GOTTPOFF	22
2915 
2916 #define R_X86_64_TPOFF32	23
2917 #define R_X86_64_PC64		24
2918 #define R_X86_64_GOTOFF64	25
2919 #define R_X86_64_GOTPC32	26
2920 #define R_X86_64_GOT64		27
2921 #define R_X86_64_GOTPCREL64	28
2922 #define R_X86_64_GOTPC64	29
2923 #define R_X86_64_GOTPLT64	30
2924 #define R_X86_64_PLTOFF64	31
2925 #define R_X86_64_SIZE32		32
2926 #define R_X86_64_SIZE64		33
2927 
2928 #define R_X86_64_GOTPC32_TLSDESC 34
2929 #define R_X86_64_TLSDESC_CALL   35
2930 
2931 #define R_X86_64_TLSDESC        36
2932 #define R_X86_64_IRELATIVE	37
2933 #define R_X86_64_RELATIVE64	38
2934 #define R_X86_64_GOTPCRELX	41
2935 #define R_X86_64_REX_GOTPCRELX	42
2936 #define R_X86_64_NUM		43
2937 
2938 
2939 
2940 #define R_MN10300_NONE		0
2941 #define R_MN10300_32		1
2942 #define R_MN10300_16		2
2943 #define R_MN10300_8		3
2944 #define R_MN10300_PCREL32	4
2945 #define R_MN10300_PCREL16	5
2946 #define R_MN10300_PCREL8	6
2947 #define R_MN10300_GNU_VTINHERIT	7
2948 #define R_MN10300_GNU_VTENTRY	8
2949 #define R_MN10300_24		9
2950 #define R_MN10300_GOTPC32	10
2951 #define R_MN10300_GOTPC16	11
2952 #define R_MN10300_GOTOFF32	12
2953 #define R_MN10300_GOTOFF24	13
2954 #define R_MN10300_GOTOFF16	14
2955 #define R_MN10300_PLT32		15
2956 #define R_MN10300_PLT16		16
2957 #define R_MN10300_GOT32		17
2958 #define R_MN10300_GOT24		18
2959 #define R_MN10300_GOT16		19
2960 #define R_MN10300_COPY		20
2961 #define R_MN10300_GLOB_DAT	21
2962 #define R_MN10300_JMP_SLOT	22
2963 #define R_MN10300_RELATIVE	23
2964 
2965 #define R_MN10300_NUM		24
2966 
2967 
2968 
2969 #define R_M32R_NONE		0
2970 #define R_M32R_16		1
2971 #define R_M32R_32		2
2972 #define R_M32R_24		3
2973 #define R_M32R_10_PCREL		4
2974 #define R_M32R_18_PCREL		5
2975 #define R_M32R_26_PCREL		6
2976 #define R_M32R_HI16_ULO		7
2977 #define R_M32R_HI16_SLO		8
2978 #define R_M32R_LO16		9
2979 #define R_M32R_SDA16		10
2980 #define R_M32R_GNU_VTINHERIT	11
2981 #define R_M32R_GNU_VTENTRY	12
2982 
2983 #define R_M32R_16_RELA		33
2984 #define R_M32R_32_RELA		34
2985 #define R_M32R_24_RELA		35
2986 #define R_M32R_10_PCREL_RELA	36
2987 #define R_M32R_18_PCREL_RELA	37
2988 #define R_M32R_26_PCREL_RELA	38
2989 #define R_M32R_HI16_ULO_RELA	39
2990 #define R_M32R_HI16_SLO_RELA	40
2991 #define R_M32R_LO16_RELA	41
2992 #define R_M32R_SDA16_RELA	42
2993 #define R_M32R_RELA_GNU_VTINHERIT	43
2994 #define R_M32R_RELA_GNU_VTENTRY	44
2995 #define R_M32R_REL32		45
2996 
2997 #define R_M32R_GOT24		48
2998 #define R_M32R_26_PLTREL	49
2999 #define R_M32R_COPY		50
3000 #define R_M32R_GLOB_DAT		51
3001 #define R_M32R_JMP_SLOT		52
3002 #define R_M32R_RELATIVE		53
3003 #define R_M32R_GOTOFF		54
3004 #define R_M32R_GOTPC24		55
3005 #define R_M32R_GOT16_HI_ULO	56
3006 
3007 #define R_M32R_GOT16_HI_SLO	57
3008 
3009 #define R_M32R_GOT16_LO		58
3010 #define R_M32R_GOTPC_HI_ULO	59
3011 
3012 #define R_M32R_GOTPC_HI_SLO	60
3013 
3014 #define R_M32R_GOTPC_LO		61
3015 
3016 #define R_M32R_GOTOFF_HI_ULO	62
3017 
3018 #define R_M32R_GOTOFF_HI_SLO	63
3019 
3020 #define R_M32R_GOTOFF_LO	64
3021 #define R_M32R_NUM		256
3022 
3023 #define R_MICROBLAZE_NONE 0
3024 #define R_MICROBLAZE_32 1
3025 #define R_MICROBLAZE_32_PCREL 2
3026 #define R_MICROBLAZE_64_PCREL 3
3027 #define R_MICROBLAZE_32_PCREL_LO 4
3028 #define R_MICROBLAZE_64 5
3029 #define R_MICROBLAZE_32_LO 6
3030 #define R_MICROBLAZE_SRO32 7
3031 #define R_MICROBLAZE_SRW32 8
3032 #define R_MICROBLAZE_64_NONE 9
3033 #define R_MICROBLAZE_32_SYM_OP_SYM 10
3034 #define R_MICROBLAZE_GNU_VTINHERIT 11
3035 #define R_MICROBLAZE_GNU_VTENTRY 12
3036 #define R_MICROBLAZE_GOTPC_64 13
3037 #define R_MICROBLAZE_GOT_64 14
3038 #define R_MICROBLAZE_PLT_64 15
3039 #define R_MICROBLAZE_REL 16
3040 #define R_MICROBLAZE_JUMP_SLOT 17
3041 #define R_MICROBLAZE_GLOB_DAT 18
3042 #define R_MICROBLAZE_GOTOFF_64 19
3043 #define R_MICROBLAZE_GOTOFF_32 20
3044 #define R_MICROBLAZE_COPY 21
3045 #define R_MICROBLAZE_TLS 22
3046 #define R_MICROBLAZE_TLSGD 23
3047 #define R_MICROBLAZE_TLSLD 24
3048 #define R_MICROBLAZE_TLSDTPMOD32 25
3049 #define R_MICROBLAZE_TLSDTPREL32 26
3050 #define R_MICROBLAZE_TLSDTPREL64 27
3051 #define R_MICROBLAZE_TLSGOTTPREL32 28
3052 #define R_MICROBLAZE_TLSTPREL32	 29
3053 
3054 #define DT_NIOS2_GP             0x70000002
3055 
3056 #define R_NIOS2_NONE		0
3057 #define R_NIOS2_S16		1
3058 #define R_NIOS2_U16		2
3059 #define R_NIOS2_PCREL16		3
3060 #define R_NIOS2_CALL26		4
3061 #define R_NIOS2_IMM5		5
3062 #define R_NIOS2_CACHE_OPX	6
3063 #define R_NIOS2_IMM6		7
3064 #define R_NIOS2_IMM8		8
3065 #define R_NIOS2_HI16		9
3066 #define R_NIOS2_LO16		10
3067 #define R_NIOS2_HIADJ16		11
3068 #define R_NIOS2_BFD_RELOC_32	12
3069 #define R_NIOS2_BFD_RELOC_16	13
3070 #define R_NIOS2_BFD_RELOC_8	14
3071 #define R_NIOS2_GPREL		15
3072 #define R_NIOS2_GNU_VTINHERIT	16
3073 #define R_NIOS2_GNU_VTENTRY	17
3074 #define R_NIOS2_UJMP		18
3075 #define R_NIOS2_CJMP		19
3076 #define R_NIOS2_CALLR		20
3077 #define R_NIOS2_ALIGN		21
3078 #define R_NIOS2_GOT16		22
3079 #define R_NIOS2_CALL16		23
3080 #define R_NIOS2_GOTOFF_LO	24
3081 #define R_NIOS2_GOTOFF_HA	25
3082 #define R_NIOS2_PCREL_LO	26
3083 #define R_NIOS2_PCREL_HA	27
3084 #define R_NIOS2_TLS_GD16	28
3085 #define R_NIOS2_TLS_LDM16	29
3086 #define R_NIOS2_TLS_LDO16	30
3087 #define R_NIOS2_TLS_IE16	31
3088 #define R_NIOS2_TLS_LE16	32
3089 #define R_NIOS2_TLS_DTPMOD	33
3090 #define R_NIOS2_TLS_DTPREL	34
3091 #define R_NIOS2_TLS_TPREL	35
3092 #define R_NIOS2_COPY		36
3093 #define R_NIOS2_GLOB_DAT	37
3094 #define R_NIOS2_JUMP_SLOT	38
3095 #define R_NIOS2_RELATIVE	39
3096 #define R_NIOS2_GOTOFF		40
3097 #define R_NIOS2_CALL26_NOAT	41
3098 #define R_NIOS2_GOT_LO		42
3099 #define R_NIOS2_GOT_HA		43
3100 #define R_NIOS2_CALL_LO		44
3101 #define R_NIOS2_CALL_HA		45
3102 
3103 #define R_OR1K_NONE		0
3104 #define R_OR1K_32		1
3105 #define R_OR1K_16		2
3106 #define R_OR1K_8		3
3107 #define R_OR1K_LO_16_IN_INSN	4
3108 #define R_OR1K_HI_16_IN_INSN	5
3109 #define R_OR1K_INSN_REL_26	6
3110 #define R_OR1K_GNU_VTENTRY	7
3111 #define R_OR1K_GNU_VTINHERIT	8
3112 #define R_OR1K_32_PCREL		9
3113 #define R_OR1K_16_PCREL		10
3114 #define R_OR1K_8_PCREL		11
3115 #define R_OR1K_GOTPC_HI16	12
3116 #define R_OR1K_GOTPC_LO16	13
3117 #define R_OR1K_GOT16		14
3118 #define R_OR1K_PLT26		15
3119 #define R_OR1K_GOTOFF_HI16	16
3120 #define R_OR1K_GOTOFF_LO16	17
3121 #define R_OR1K_COPY		18
3122 #define R_OR1K_GLOB_DAT		19
3123 #define R_OR1K_JMP_SLOT		20
3124 #define R_OR1K_RELATIVE		21
3125 #define R_OR1K_TLS_GD_HI16	22
3126 #define R_OR1K_TLS_GD_LO16	23
3127 #define R_OR1K_TLS_LDM_HI16	24
3128 #define R_OR1K_TLS_LDM_LO16	25
3129 #define R_OR1K_TLS_LDO_HI16	26
3130 #define R_OR1K_TLS_LDO_LO16	27
3131 #define R_OR1K_TLS_IE_HI16	28
3132 #define R_OR1K_TLS_IE_LO16	29
3133 #define R_OR1K_TLS_LE_HI16	30
3134 #define R_OR1K_TLS_LE_LO16	31
3135 #define R_OR1K_TLS_TPOFF	32
3136 #define R_OR1K_TLS_DTPOFF	33
3137 #define R_OR1K_TLS_DTPMOD	34
3138 
3139 #define R_BPF_NONE		0
3140 #define R_BPF_MAP_FD		1
3141 
3142 #ifdef __cplusplus
3143 }
3144 #endif
3145 
3146 
3147 #endif
3148