source: trunk/libs/newlib/src/newlib/libc/include/elf.h @ 444

Last change on this file since 444 was 444, checked in by satin@…, 6 years ago

add newlib,libalmos-mkh, restructure shared_syscalls.h and mini-libc

File size: 74.1 KB
Line 
1/*
2From musl include/elf.h
3
4Copyright © 2005-2014 Rich Felker, et al.
5
6Permission is hereby granted, free of charge, to any person obtaining
7a copy of this software and associated documentation files (the
8"Software"), to deal in the Software without restriction, including
9without limitation the rights to use, copy, modify, merge, publish,
10distribute, sublicense, and/or sell copies of the Software, and to
11permit persons to whom the Software is furnished to do so, subject to
12the following conditions:
13
14The above copyright notice and this permission notice shall be
15included in all copies or substantial portions of the Software.
16
17THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
20IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
21CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
22TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
23SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24*/
25
26#ifndef _ELF_H
27#define _ELF_H
28
29#ifdef __cplusplus
30extern "C" {
31#endif
32
33#include <stdint.h>
34
35typedef uint16_t Elf32_Half;
36typedef uint16_t Elf64_Half;
37
38typedef uint32_t Elf32_Word;
39typedef int32_t  Elf32_Sword;
40typedef uint32_t Elf64_Word;
41typedef int32_t  Elf64_Sword;
42
43typedef uint64_t Elf32_Xword;
44typedef int64_t  Elf32_Sxword;
45typedef uint64_t Elf64_Xword;
46typedef int64_t  Elf64_Sxword;
47
48typedef uint32_t Elf32_Addr;
49typedef uint64_t Elf64_Addr;
50
51typedef uint32_t Elf32_Off;
52typedef uint64_t Elf64_Off;
53
54typedef uint16_t Elf32_Section;
55typedef uint16_t Elf64_Section;
56
57typedef Elf32_Half Elf32_Versym;
58typedef Elf64_Half Elf64_Versym;
59
60#define EI_NIDENT (16)
61
62typedef 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
79typedef 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
350typedef 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
363typedef 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
449typedef struct {
450  Elf32_Word    ch_type;
451  Elf32_Word    ch_size;
452  Elf32_Word    ch_addralign;
453} Elf32_Chdr;
454
455typedef 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
471typedef 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
480typedef 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
489typedef struct {
490  Elf32_Half si_boundto;
491  Elf32_Half si_flags;
492} Elf32_Syminfo;
493
494typedef 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
557typedef struct {
558  Elf32_Addr    r_offset;
559  Elf32_Word    r_info;
560} Elf32_Rel;
561
562typedef struct {
563  Elf64_Addr    r_offset;
564  Elf64_Xword   r_info;
565} Elf64_Rel;
566
567
568
569typedef struct {
570  Elf32_Addr    r_offset;
571  Elf32_Word    r_info;
572  Elf32_Sword   r_addend;
573} Elf32_Rela;
574
575typedef 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
593typedef 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
604typedef 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
698typedef 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
706typedef 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
861typedef 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
871typedef 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
899typedef struct {
900  Elf32_Word    vda_name;
901  Elf32_Word    vda_next;
902} Elf32_Verdaux;
903
904typedef struct {
905  Elf64_Word    vda_name;
906  Elf64_Word    vda_next;
907} Elf64_Verdaux;
908
909
910
911
912typedef 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
920typedef 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
936typedef 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
944typedef 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
958typedef struct {
959  uint32_t a_type;
960  union {
961      uint32_t a_val;
962  } a_un;
963} Elf32_auxv_t;
964
965typedef 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
1034typedef struct {
1035  Elf32_Word n_namesz;
1036  Elf32_Word n_descsz;
1037  Elf32_Word n_type;
1038} Elf32_Nhdr;
1039
1040typedef 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
1076typedef 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
1084typedef 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
1405typedef 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
1418typedef struct {
1419  Elf32_Word    ri_gprmask;
1420  Elf32_Word    ri_cprmask[4];
1421  Elf32_Sword   ri_gp_value;
1422} Elf32_RegInfo;
1423
1424
1425
1426typedef 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
1476typedef 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
1636typedef 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
1644typedef 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
1665typedef Elf32_Addr Elf32_Conflict;
1666
1667typedef 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
1722enum
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
Note: See TracBrowser for help on using the repository browser.