1 /**
2  * D header file for GNU/Linux
3  *
4  * $(LINK2 http://sourceware.org/git/?p=glibc.git;a=blob;f=elf/elf.h, glibc elf/elf.h)
5  */
6 module core.sys.linux.elf;
7 
8 version (linux):
9 extern (C):
10 pure:
11 nothrow:
12 @system:
13 
14 import core.stdc.stdint;
15 
16 alias uint16_t Elf32_Half;
17 alias uint16_t Elf64_Half;
18 
19 alias uint32_t Elf32_Word;
20 alias int32_t  Elf32_Sword;
21 alias uint32_t Elf64_Word;
22 alias int32_t  Elf64_Sword;
23 
24 alias uint64_t Elf32_Xword;
25 alias int64_t  Elf32_Sxword;
26 alias uint64_t Elf64_Xword;
27 alias int64_t  Elf64_Sxword;
28 
29 alias uint32_t Elf32_Addr;
30 alias uint64_t Elf64_Addr;
31 
32 alias uint32_t Elf32_Off;
33 alias uint64_t Elf64_Off;
34 
35 alias uint16_t Elf32_Section;
36 alias uint16_t Elf64_Section;
37 
38 alias Elf32_Half Elf32_Versym;
39 alias Elf64_Half Elf64_Versym;
40 
41 
42 enum EI_NIDENT = 16;
43 
44 struct Elf32_Ehdr
45 {
46     char[EI_NIDENT] e_ident = 0;
47     Elf32_Half    e_type;
48     Elf32_Half    e_machine;
49     Elf32_Word    e_version;
50     Elf32_Addr    e_entry;
51     Elf32_Off     e_phoff;
52     Elf32_Off     e_shoff;
53     Elf32_Word    e_flags;
54     Elf32_Half    e_ehsize;
55     Elf32_Half    e_phentsize;
56     Elf32_Half    e_phnum;
57     Elf32_Half    e_shentsize;
58     Elf32_Half    e_shnum;
59     Elf32_Half    e_shstrndx;
60 }
61 
62 struct Elf64_Ehdr
63 {
64     char[EI_NIDENT] e_ident = 0;
65     Elf64_Half    e_type;
66     Elf64_Half    e_machine;
67     Elf64_Word    e_version;
68     Elf64_Addr    e_entry;
69     Elf64_Off     e_phoff;
70     Elf64_Off     e_shoff;
71     Elf64_Word    e_flags;
72     Elf64_Half    e_ehsize;
73     Elf64_Half    e_phentsize;
74     Elf64_Half    e_phnum;
75     Elf64_Half    e_shentsize;
76     Elf64_Half    e_shnum;
77     Elf64_Half    e_shstrndx;
78 }
79 
80 enum EI_MAG0 =         0;
81 enum ELFMAG0 =         0x7f;
82 
83 enum EI_MAG1 =         1;
84 enum ELFMAG1 =         'E';
85 
86 enum EI_MAG2 =         2;
87 enum ELFMAG2 =         'L';
88 
89 enum EI_MAG3 =         3;
90 enum ELFMAG3 =         'F';
91 enum ELFMAG =          "\177ELF";
92 enum SELFMAG =         4;
93 
94 enum EI_CLASS =        4;
95 enum ELFCLASSNONE =    0;
96 enum ELFCLASS32 =      1;
97 enum ELFCLASS64 =      2;
98 enum ELFCLASSNUM =     3;
99 
100 enum EI_DATA =         5;
101 enum ELFDATANONE =     0;
102 enum ELFDATA2LSB =     1;
103 enum ELFDATA2MSB =     2;
104 enum ELFDATANUM =      3;
105 
106 enum EI_VERSION =      6;
107 
108 enum EI_OSABI =        7;
109 enum ELFOSABI_NONE =           0;
110 enum ELFOSABI_SYSV =           0;
111 enum ELFOSABI_HPUX =           1;
112 enum ELFOSABI_NETBSD =         2;
113 enum ELFOSABI_GNU =            3;
114 enum ELFOSABI_LINUX =          ELFOSABI_GNU;
115 enum ELFOSABI_SOLARIS =        6;
116 enum ELFOSABI_AIX =            7;
117 enum ELFOSABI_IRIX =           8;
118 enum ELFOSABI_FREEBSD =        9;
119 enum ELFOSABI_TRU64 =          10;
120 enum ELFOSABI_MODESTO =        11;
121 enum ELFOSABI_OPENBSD =        12;
122 enum ELFOSABI_ARM_AEABI =      64;
123 enum ELFOSABI_ARM =            97;
124 enum ELFOSABI_STANDALONE =     255;
125 enum ELFOSABI_DRAGONFLYBSD =   ELFOSABI_NONE;
126 
127 enum EI_ABIVERSION =   8;
128 
129 enum EI_PAD =          9;
130 
131 enum ET_NONE =         0;
132 enum ET_REL =          1;
133 enum ET_EXEC =         2;
134 enum ET_DYN =          3;
135 enum ET_CORE =         4;
136 enum ET_NUM =          5;
137 enum ET_LOOS =         0xfe00;
138 enum ET_HIOS =         0xfeff;
139 enum ET_LOPROC =       0xff00;
140 enum ET_HIPROC =       0xffff;
141 
142 enum EM_NONE =          0;
143 enum EM_M32 =           1;
144 enum EM_SPARC =         2;
145 enum EM_386 =           3;
146 enum EM_68K =           4;
147 enum EM_88K =           5;
148 enum EM_860 =           7;
149 enum EM_MIPS =          8;
150 enum EM_S370 =          9;
151 enum EM_MIPS_RS3_LE =  10;
152 
153 enum EM_PARISC =       15;
154 enum EM_VPP500 =       17;
155 enum EM_SPARC32PLUS =  18;
156 enum EM_960 =          19;
157 enum EM_PPC =          20;
158 enum EM_PPC64 =        21;
159 enum EM_S390 =         22;
160 
161 enum EM_V800 =         36;
162 enum EM_FR20 =         37;
163 enum EM_RH32 =         38;
164 enum EM_RCE =          39;
165 enum EM_ARM =          40;
166 enum EM_FAKE_ALPHA =   41;
167 enum EM_SH =           42;
168 enum EM_SPARCV9 =      43;
169 enum EM_TRICORE =      44;
170 enum EM_ARC =          45;
171 enum EM_H8_300 =       46;
172 enum EM_H8_300H =      47;
173 enum EM_H8S =          48;
174 enum EM_H8_500 =       49;
175 enum EM_IA_64 =        50;
176 enum EM_MIPS_X =       51;
177 enum EM_COLDFIRE =     52;
178 enum EM_68HC12 =       53;
179 enum EM_MMA =          54;
180 enum EM_PCP =          55;
181 enum EM_NCPU =         56;
182 enum EM_NDR1 =         57;
183 enum EM_STARCORE =     58;
184 enum EM_ME16 =         59;
185 enum EM_ST100 =        60;
186 enum EM_TINYJ =        61;
187 enum EM_X86_64 =       62;
188 enum EM_PDSP =         63;
189 
190 enum EM_FX66 =         66;
191 enum EM_ST9PLUS =      67;
192 enum EM_ST7 =          68;
193 enum EM_68HC16 =       69;
194 enum EM_68HC11 =       70;
195 enum EM_68HC08 =       71;
196 enum EM_68HC05 =       72;
197 enum EM_SVX =          73;
198 enum EM_ST19 =         74;
199 enum EM_VAX =          75;
200 enum EM_CRIS =         76;
201 enum EM_JAVELIN =      77;
202 enum EM_FIREPATH =     78;
203 enum EM_ZSP =          79;
204 enum EM_MMIX =         80;
205 enum EM_HUANY =        81;
206 enum EM_PRISM =        82;
207 enum EM_AVR =          83;
208 enum EM_FR30 =         84;
209 enum EM_D10V =         85;
210 enum EM_D30V =         86;
211 enum EM_V850 =         87;
212 enum EM_M32R =         88;
213 enum EM_MN10300 =      89;
214 enum EM_MN10200 =      90;
215 enum EM_PJ =           91;
216 enum EM_OPENRISC =     92;
217 enum EM_ARC_A5 =       93;
218 enum EM_XTENSA =       94;
219 enum EM_AARCH64 =      183;
220 enum EM_TILEPRO =      188;
221 enum EM_TILEGX =       191;
222 enum EM_NUM =          192;
223 
224 enum EM_ALPHA =        0x9026;
225 
226 enum EV_NONE =         0;
227 enum EV_CURRENT =      1;
228 enum EV_NUM =          2;
229 
230 struct Elf32_Shdr
231 {
232   Elf32_Word    sh_name;
233   Elf32_Word    sh_type;
234   Elf32_Word    sh_flags;
235   Elf32_Addr    sh_addr;
236   Elf32_Off     sh_offset;
237   Elf32_Word    sh_size;
238   Elf32_Word    sh_link;
239   Elf32_Word    sh_info;
240   Elf32_Word    sh_addralign;
241   Elf32_Word    sh_entsize;
242 }
243 
244 struct Elf64_Shdr
245 {
246   Elf64_Word    sh_name;
247   Elf64_Word    sh_type;
248   Elf64_Xword   sh_flags;
249   Elf64_Addr    sh_addr;
250   Elf64_Off     sh_offset;
251   Elf64_Xword   sh_size;
252   Elf64_Word    sh_link;
253   Elf64_Word    sh_info;
254   Elf64_Xword   sh_addralign;
255   Elf64_Xword   sh_entsize;
256 }
257 
258 enum SHN_UNDEF =       0;
259 enum SHN_LORESERVE =   0xff00;
260 enum SHN_LOPROC =      0xff00;
261 enum SHN_BEFORE =      0xff00;
262 enum SHN_AFTER =       0xff01;
263 enum SHN_HIPROC =      0xff1f;
264 enum SHN_LOOS =        0xff20;
265 enum SHN_HIOS =        0xff3f;
266 enum SHN_ABS =         0xfff1;
267 enum SHN_COMMON =      0xfff2;
268 enum SHN_XINDEX =      0xffff;
269 enum SHN_HIRESERVE =   0xffff;
270 
271 enum SHT_NULL =          0;
272 enum SHT_PROGBITS =      1;
273 enum SHT_SYMTAB =        2;
274 enum SHT_STRTAB =        3;
275 enum SHT_RELA =          4;
276 enum SHT_HASH =          5;
277 enum SHT_DYNAMIC =       6;
278 enum SHT_NOTE =          7;
279 enum SHT_NOBITS =        8;
280 enum SHT_REL =           9;
281 enum SHT_SHLIB =         10;
282 enum SHT_DYNSYM =        11;
283 enum SHT_INIT_ARRAY =    14;
284 enum SHT_FINI_ARRAY =    15;
285 enum SHT_PREINIT_ARRAY = 16;
286 enum SHT_GROUP =         17;
287 enum SHT_SYMTAB_SHNDX =  18;
288 enum SHT_NUM =           19;
289 enum SHT_LOOS =          0x60000000;
290 enum SHT_GNU_ATTRIBUTES = 0x6ffffff5;
291 enum SHT_GNU_HASH =      0x6ffffff6;
292 enum SHT_GNU_LIBLIST =   0x6ffffff7;
293 enum SHT_CHECKSUM =      0x6ffffff8;
294 enum SHT_LOSUNW =        0x6ffffffa;
295 enum SHT_SUNW_move =     0x6ffffffa;
296 enum SHT_SUNW_COMDAT =   0x6ffffffb;
297 enum SHT_SUNW_syminfo =  0x6ffffffc;
298 enum SHT_GNU_verdef =    0x6ffffffd;
299 enum SHT_GNU_verneed =   0x6ffffffe;
300 enum SHT_GNU_versym =    0x6fffffff;
301 enum SHT_HISUNW =        0x6fffffff;
302 enum SHT_HIOS =          0x6fffffff;
303 enum SHT_LOPROC =        0x70000000;
304 enum SHT_HIPROC =        0x7fffffff;
305 enum SHT_LOUSER =        0x80000000;
306 enum SHT_HIUSER =        0x8fffffff;
307 
308 enum SHF_WRITE =            (1 << 0);
309 enum SHF_ALLOC =            (1 << 1);
310 enum SHF_EXECINSTR =        (1 << 2);
311 enum SHF_MERGE =            (1 << 4);
312 enum SHF_STRINGS =          (1 << 5);
313 enum SHF_INFO_LINK =        (1 << 6);
314 enum SHF_LINK_ORDER =       (1 << 7);
315 enum SHF_OS_NONCONFORMING = (1 << 8);
316 enum SHF_GROUP =            (1 << 9);
317 enum SHF_TLS =              (1 << 10);
318 enum SHF_COMPRESSED =       (1 << 11);
319 enum SHF_MASKOS =           0x0ff00000;
320 enum SHF_MASKPROC =         0xf0000000;
321 enum SHF_ORDERED =          (1 << 30);
322 enum SHF_EXCLUDE =          (1 << 31);
323 enum GRP_COMDAT =      0x1;
324 
325 struct Elf32_Sym
326 {
327   Elf32_Word    st_name;
328   Elf32_Addr    st_value;
329   Elf32_Word    st_size;
330   ubyte st_info;
331   ubyte st_other;
332   Elf32_Section st_shndx;
333 }
334 
335 struct Elf64_Sym
336 {
337   Elf64_Word    st_name;
338   ubyte st_info;
339   ubyte st_other;
340   Elf64_Section st_shndx;
341   Elf64_Addr    st_value;
342   Elf64_Xword   st_size;
343 }
344 
345 struct Elf32_Syminfo
346 {
347   Elf32_Half si_boundto;
348   Elf32_Half si_flags;
349 }
350 
351 struct Elf64_Syminfo
352 {
353   Elf64_Half si_boundto;
354   Elf64_Half si_flags;
355 }
356 enum SYMINFO_BT_SELF =         0xffff;
357 enum SYMINFO_BT_PARENT =       0xfffe;
358 enum SYMINFO_BT_LOWRESERVE =   0xff00;
359 enum SYMINFO_FLG_DIRECT =      0x0001;
360 enum SYMINFO_FLG_PASSTHRU =    0x0002;
361 enum SYMINFO_FLG_COPY =        0x0004;
362 enum SYMINFO_FLG_LAZYLOAD =    0x0008;
363 enum SYMINFO_NONE =            0;
364 enum SYMINFO_CURRENT =         1;
365 enum SYMINFO_NUM =             2;
366 
367 extern (D)
368 {
ELF32_ST_BIND(T)369     auto ELF32_ST_BIND(T)(T val) { return cast(ubyte)val >> 4; }
ELF32_ST_TYPE(T)370     auto ELF32_ST_TYPE(T)(T val) { return val & 0xf; }
ELF32_ST_INFO(B,T)371     auto ELF32_ST_INFO(B, T)(B bind, T type) { return (bind << 4) + (type & 0xf); }
372     alias ELF32_ST_BIND ELF64_ST_BIND;
373     alias ELF32_ST_TYPE ELF64_ST_TYPE;
374     alias ELF32_ST_INFO ELF64_ST_INFO;
375 }
376 
377 enum STB_LOCAL =       0;
378 enum STB_GLOBAL =      1;
379 enum STB_WEAK =        2;
380 enum STB_NUM =         3;
381 enum STB_LOOS =        10;
382 enum STB_GNU_UNIQUE =  10;
383 enum STB_HIOS =        12;
384 enum STB_LOPROC =      13;
385 enum STB_HIPROC =      15;
386 
387 enum STT_NOTYPE =      0;
388 enum STT_OBJECT =      1;
389 enum STT_FUNC =        2;
390 enum STT_SECTION =     3;
391 enum STT_FILE =        4;
392 enum STT_COMMON =      5;
393 enum STT_TLS =         6;
394 enum STT_NUM =         7;
395 enum STT_LOOS =        10;
396 enum STT_GNU_IFUNC =   10;
397 enum STT_HIOS =        12;
398 enum STT_LOPROC =      13;
399 enum STT_HIPROC =      15;
400 
401 enum STN_UNDEF =       0;
402 
403 extern (D)
404 {
ELF32_ST_VISIBILITY(O)405     auto ELF32_ST_VISIBILITY(O)(O o) { return o & 0x03; }
406     alias ELF32_ST_VISIBILITY ELF64_ST_VISIBILITY;
407 }
408 enum STV_DEFAULT =     0;
409 enum STV_INTERNAL =    1;
410 enum STV_HIDDEN =      2;
411 enum STV_PROTECTED =   3;
412 
413 struct Elf32_Rel
414 {
415   Elf32_Addr    r_offset;
416   Elf32_Word    r_info;
417 }
418 
419 struct Elf64_Rel
420 {
421   Elf64_Addr    r_offset;
422   Elf64_Xword   r_info;
423 }
424 
425 struct Elf32_Rela
426 {
427   Elf32_Addr    r_offset;
428   Elf32_Word    r_info;
429   Elf32_Sword   r_addend;
430 }
431 
432 struct Elf64_Rela
433 {
434   Elf64_Addr    r_offset;
435   Elf64_Xword   r_info;
436   Elf64_Sxword  r_addend;
437 }
438 
439 extern (D)
440 {
ELF32_R_SYM(V)441     auto ELF32_R_SYM(V)(V val) { return val >> 8; }
ELF32_R_TYPE(V)442     auto ELF32_R_TYPE(V)(V val) { return val & 0xff; }
ELF32_R_INFO(S,T)443     auto ELF32_R_INFO(S, T)(S sym, T type) { return (sym << 8) + (type & 0xff); }
444 
ELF64_R_SYM(I)445     auto ELF64_R_SYM(I)(I i) { return i >> 32; }
ELF64_R_TYPE(I)446     auto ELF64_R_TYPE(I)(I i) { return i & 0xffffffff; }
ELF64_R_INFO(S,T)447     auto ELF64_R_INFO(S, T)(S sym, T type) { return (sym << 32) + (type); }
448 }
449 
450 struct Elf32_Phdr
451 {
452   Elf32_Word    p_type;
453   Elf32_Off     p_offset;
454   Elf32_Addr    p_vaddr;
455   Elf32_Addr    p_paddr;
456   Elf32_Word    p_filesz;
457   Elf32_Word    p_memsz;
458   Elf32_Word    p_flags;
459   Elf32_Word    p_align;
460 }
461 
462 struct Elf64_Phdr
463 {
464   Elf64_Word    p_type;
465   Elf64_Word    p_flags;
466   Elf64_Off     p_offset;
467   Elf64_Addr    p_vaddr;
468   Elf64_Addr    p_paddr;
469   Elf64_Xword   p_filesz;
470   Elf64_Xword   p_memsz;
471   Elf64_Xword   p_align;
472 }
473 
474 enum PN_XNUM =         0xffff;
475 
476 enum PT_NULL =         0;
477 enum PT_LOAD =         1;
478 enum PT_DYNAMIC =      2;
479 enum PT_INTERP =       3;
480 enum PT_NOTE =         4;
481 enum PT_SHLIB =        5;
482 enum PT_PHDR =         6;
483 enum PT_TLS =          7;
484 enum PT_NUM =          8;
485 enum PT_LOOS =         0x60000000;
486 enum PT_GNU_EH_FRAME = 0x6474e550;
487 enum PT_GNU_STACK =    0x6474e551;
488 enum PT_GNU_RELRO =    0x6474e552;
489 enum PT_LOSUNW =       0x6ffffffa;
490 enum PT_SUNWBSS =      0x6ffffffa;
491 enum PT_SUNWSTACK =    0x6ffffffb;
492 enum PT_HISUNW =       0x6fffffff;
493 enum PT_HIOS =         0x6fffffff;
494 enum PT_LOPROC =       0x70000000;
495 enum PT_HIPROC =       0x7fffffff;
496 
497 enum PF_X =            (1 << 0);
498 enum PF_W =            (1 << 1);
499 enum PF_R =            (1 << 2);
500 enum PF_MASKOS =       0x0ff00000;
501 enum PF_MASKPROC =     0xf0000000;
502 
503 enum NT_PRSTATUS =     1;
504 enum NT_FPREGSET =     2;
505 enum NT_PRPSINFO =     3;
506 enum NT_PRXREG =       4;
507 enum NT_TASKSTRUCT =   4;
508 enum NT_PLATFORM =     5;
509 enum NT_AUXV =         6;
510 enum NT_GWINDOWS =     7;
511 enum NT_ASRS =         8;
512 enum NT_PSTATUS =      10;
513 enum NT_PSINFO =       13;
514 enum NT_PRCRED =       14;
515 enum NT_UTSNAME =      15;
516 enum NT_LWPSTATUS =    16;
517 enum NT_LWPSINFO =     17;
518 enum NT_PRFPXREG =     20;
519 enum NT_SIGINFO =      0x53494749;
520 enum NT_FILE =         0x46494c45;
521 enum NT_PRXFPREG =     0x46e62b7f;
522 enum NT_PPC_VMX =      0x100;
523 enum NT_PPC_SPE =      0x101;
524 enum NT_PPC_VSX =      0x102;
525 enum NT_386_TLS =      0x200;
526 enum NT_386_IOPERM =   0x201;
527 enum NT_X86_XSTATE =   0x202;
528 enum NT_S390_HIGH_GPRS =       0x300;
529 enum NT_S390_TIMER =   0x301;
530 enum NT_S390_TODCMP =  0x302;
531 enum NT_S390_TODPREG = 0x303;
532 enum NT_S390_CTRS =    0x304;
533 enum NT_S390_PREFIX =  0x305;
534 enum NT_S390_LAST_BREAK =      0x306;
535 enum NT_S390_SYSTEM_CALL =     0x307;
536 enum NT_S390_TDB =     0x308;
537 enum NT_ARM_VFP =      0x400;
538 enum NT_ARM_TLS =      0x401;
539 enum NT_ARM_HW_BREAK = 0x402;
540 enum NT_ARM_HW_WATCH = 0x403;
541 
542 enum NT_VERSION =      1;
543 
544 struct Elf32_Dyn
545 {
546   Elf32_Sword   d_tag;
547   union _d_un
548   {
549       Elf32_Word d_val;
550       Elf32_Addr d_ptr;
551   } _d_un d_un;
552 }
553 
554 struct Elf64_Dyn
555 {
556   Elf64_Sxword  d_tag;
557   union _d_un
558   {
559       Elf64_Xword d_val;
560       Elf64_Addr d_ptr;
561   } _d_un d_un;
562 }
563 
564 enum DT_NULL =         0;
565 enum DT_NEEDED =       1;
566 enum DT_PLTRELSZ =     2;
567 enum DT_PLTGOT =       3;
568 enum DT_HASH =         4;
569 enum DT_STRTAB =       5;
570 enum DT_SYMTAB =       6;
571 enum DT_RELA =         7;
572 enum DT_RELASZ =       8;
573 enum DT_RELAENT =      9;
574 enum DT_STRSZ =        10;
575 enum DT_SYMENT =       11;
576 enum DT_INIT =         12;
577 enum DT_FINI =         13;
578 enum DT_SONAME =       14;
579 enum DT_RPATH =        15;
580 enum DT_SYMBOLIC =     16;
581 enum DT_REL =          17;
582 enum DT_RELSZ =        18;
583 enum DT_RELENT =       19;
584 enum DT_PLTREL =       20;
585 enum DT_DEBUG =        21;
586 enum DT_TEXTREL =      22;
587 enum DT_JMPREL =       23;
588 enum DT_BIND_NOW =     24;
589 enum DT_INIT_ARRAY =   25;
590 enum DT_FINI_ARRAY =   26;
591 enum DT_INIT_ARRAYSZ = 27;
592 enum DT_FINI_ARRAYSZ = 28;
593 enum DT_RUNPATH =      29;
594 enum DT_FLAGS =        30;
595 enum DT_ENCODING =     32;
596 enum DT_PREINIT_ARRAY = 32;
597 enum DT_PREINIT_ARRAYSZ = 33;
598 enum DT_NUM =          34;
599 enum DT_LOOS =         0x6000000d;
600 enum DT_HIOS =         0x6ffff000;
601 enum DT_LOPROC =       0x70000000;
602 enum DT_HIPROC =       0x7fffffff;
603 enum DT_PROCNUM =      DT_MIPS_NUM;
604 enum DT_VALRNGLO =     0x6ffffd00;
605 enum DT_GNU_PRELINKED = 0x6ffffdf5;
606 enum DT_GNU_CONFLICTSZ = 0x6ffffdf6;
607 enum DT_GNU_LIBLISTSZ = 0x6ffffdf7;
608 enum DT_CHECKSUM =     0x6ffffdf8;
609 enum DT_PLTPADSZ =     0x6ffffdf9;
610 enum DT_MOVEENT =      0x6ffffdfa;
611 enum DT_MOVESZ =       0x6ffffdfb;
612 enum DT_FEATURE_1 =    0x6ffffdfc;
613 enum DT_POSFLAG_1 =    0x6ffffdfd;
614 enum DT_SYMINSZ =      0x6ffffdfe;
615 enum DT_SYMINENT =     0x6ffffdff;
616 enum DT_VALRNGHI =     0x6ffffdff;
DT_VALTAGIDX(T)617 extern (D) auto DT_VALTAGIDX(T)(T tag)
618 {
619     return DT_VALRNGHI - tag;
620 }
621 enum DT_VALNUM = 12;
622 enum DT_ADDRRNGLO =    0x6ffffe00;
623 enum DT_GNU_HASH =     0x6ffffef5;
624 enum DT_TLSDESC_PLT =  0x6ffffef6;
625 enum DT_TLSDESC_GOT =  0x6ffffef7;
626 enum DT_GNU_CONFLICT = 0x6ffffef8;
627 enum DT_GNU_LIBLIST =  0x6ffffef9;
628 enum DT_CONFIG =       0x6ffffefa;
629 enum DT_DEPAUDIT =     0x6ffffefb;
630 enum DT_AUDIT =        0x6ffffefc;
631 enum DT_PLTPAD =       0x6ffffefd;
632 enum DT_MOVETAB =      0x6ffffefe;
633 enum DT_SYMINFO =      0x6ffffeff;
634 enum DT_ADDRRNGHI =    0x6ffffeff;
DT_ADDRTAGIDX(T)635 extern (D) auto DT_ADDRTAGIDX(T)(T tag)
636 {
637     return DT_ADDRRNGHI - tag;
638 }
639 enum DT_ADDRNUM = 11;
640 enum DT_VERSYM =       0x6ffffff0;
641 
642 enum DT_RELACOUNT =    0x6ffffff9;
643 enum DT_RELCOUNT =     0x6ffffffa;
644 enum DT_FLAGS_1 =      0x6ffffffb;
645 enum DT_VERDEF =       0x6ffffffc;
646 enum DT_VERDEFNUM =    0x6ffffffd;
647 enum DT_VERNEED =      0x6ffffffe;
648 enum DT_VERNEEDNUM =   0x6fffffff;
DT_VERSIONTAGIDX(T)649 extern (D) auto DT_VERSIONTAGIDX(T)(T tag)
650 {
651     return DT_VERNEEDNUM - tag;
652 }
653 enum DT_VERSIONTAGNUM = 16;
654 enum DT_AUXILIARY =    0x7ffffffd;
655 enum DT_FILTER =       0x7fffffff;
DT_EXTRATAGIDX(T)656 extern (D) auto DT_EXTRATAGIDX(T)(T tag)
657 {
658     return cast(Elf32_Word)(-(cast(Elf32_Sword)(tag) <<1>>1)-1);
659 }
660 enum DT_EXTRANUM =     3;
661 enum DF_ORIGIN =       0x00000001;
662 enum DF_SYMBOLIC =     0x00000002;
663 enum DF_TEXTREL =      0x00000004;
664 enum DF_BIND_NOW =     0x00000008;
665 enum DF_STATIC_TLS =   0x00000010;
666 enum DF_1_NOW =        0x00000001;
667 enum DF_1_GLOBAL =     0x00000002;
668 enum DF_1_GROUP =      0x00000004;
669 enum DF_1_NODELETE =   0x00000008;
670 enum DF_1_LOADFLTR =   0x00000010;
671 enum DF_1_INITFIRST =  0x00000020;
672 enum DF_1_NOOPEN =     0x00000040;
673 enum DF_1_ORIGIN =     0x00000080;
674 enum DF_1_DIRECT =     0x00000100;
675 enum DF_1_TRANS =      0x00000200;
676 enum DF_1_INTERPOSE =  0x00000400;
677 enum DF_1_NODEFLIB =   0x00000800;
678 enum DF_1_NODUMP =     0x00001000;
679 enum DF_1_CONFALT =    0x00002000;
680 enum DF_1_ENDFILTEE =  0x00004000;
681 enum DF_1_DISPRELDNE = 0x00008000;
682 enum DF_1_DISPRELPND = 0x00010000;
683 enum DF_1_NODIRECT =   0x00020000;
684 enum DF_1_IGNMULDEF =  0x00040000;
685 enum DF_1_NOKSYMS =    0x00080000;
686 enum DF_1_NOHDR =      0x00100000;
687 enum DF_1_EDITED =     0x00200000;
688 enum DF_1_NORELOC =    0x00400000;
689 enum DF_1_SYMINTPOSE = 0x00800000;
690 enum DF_1_GLOBAUDIT =  0x01000000;
691 enum DF_1_SINGLETON =  0x02000000;
692 enum DTF_1_PARINIT =   0x00000001;
693 enum DTF_1_CONFEXP =   0x00000002;
694 enum DF_P1_LAZYLOAD =  0x00000001;
695 enum DF_P1_GROUPPERM = 0x00000002;
696 
697 struct Elf32_Verdef
698 {
699     Elf32_Half    vd_version;
700     Elf32_Half    vd_flags;
701     Elf32_Half    vd_ndx;
702     Elf32_Half    vd_cnt;
703     Elf32_Word    vd_hash;
704     Elf32_Word    vd_aux;
705     Elf32_Word    vd_next;
706 }
707 
708 struct Elf64_Verdef
709 {
710     Elf64_Half    vd_version;
711     Elf64_Half    vd_flags;
712     Elf64_Half    vd_ndx;
713     Elf64_Half    vd_cnt;
714     Elf64_Word    vd_hash;
715     Elf64_Word    vd_aux;
716     Elf64_Word    vd_next;
717 }
718 enum VER_DEF_NONE =    0;
719 enum VER_DEF_CURRENT = 1;
720 enum VER_DEF_NUM =     2;
721 enum VER_FLG_BASE =    0x1;
722 enum VER_FLG_WEAK =    0x2;
723 enum VER_NDX_LOCAL =           0;
724 enum VER_NDX_GLOBAL =          1;
725 enum VER_NDX_LORESERVE =       0xff00;
726 enum VER_NDX_ELIMINATE =       0xff01;
727 
728 struct Elf32_Verdaux
729 {
730     Elf32_Word    vda_name;
731     Elf32_Word    vda_next;
732 }
733 
734 struct Elf64_Verdaux
735 {
736     Elf64_Word    vda_name;
737     Elf64_Word    vda_next;
738 }
739 
740 struct Elf32_Verneed
741 {
742     Elf32_Half    vn_version;
743     Elf32_Half    vn_cnt;
744     Elf32_Word    vn_file;
745     Elf32_Word    vn_aux;
746     Elf32_Word    vn_next;
747 }
748 
749 struct Elf64_Verneed
750 {
751     Elf64_Half    vn_version;
752     Elf64_Half    vn_cnt;
753     Elf64_Word    vn_file;
754     Elf64_Word    vn_aux;
755     Elf64_Word    vn_next;
756 }
757 enum VER_NEED_NONE =    0;
758 enum VER_NEED_CURRENT = 1;
759 enum VER_NEED_NUM =     2;
760 
761 struct Elf32_Vernaux
762 {
763     Elf32_Word    vna_hash;
764     Elf32_Half    vna_flags;
765     Elf32_Half    vna_other;
766     Elf32_Word    vna_name;
767     Elf32_Word    vna_next;
768 }
769 
770 struct Elf64_Vernaux
771 {
772     Elf64_Word    vna_hash;
773     Elf64_Half    vna_flags;
774     Elf64_Half    vna_other;
775     Elf64_Word    vna_name;
776     Elf64_Word    vna_next;
777 }
778 // duplicate
779 // enum VER_FLG_WEAK =    0x2;
780 
781 struct Elf32_auxv_t
782 {
783     uint32_t a_type;
784     union _a_un
785     {
786         uint32_t a_val;
787     } _a_un a_un;
788 }
789 
790 struct Elf64_auxv_t
791 {
792     uint64_t a_type;
793     union _a_un
794     {
795         uint64_t a_val;
796     } _a_un a_un;
797 }
798 
799 enum AT_NULL =         0;
800 enum AT_IGNORE =       1;
801 enum AT_EXECFD =       2;
802 enum AT_PHDR =         3;
803 enum AT_PHENT =        4;
804 enum AT_PHNUM =        5;
805 enum AT_PAGESZ =       6;
806 enum AT_BASE =         7;
807 enum AT_FLAGS =        8;
808 enum AT_ENTRY =        9;
809 enum AT_NOTELF =       10;
810 enum AT_UID =          11;
811 enum AT_EUID =         12;
812 enum AT_GID =          13;
813 enum AT_EGID =         14;
814 enum AT_CLKTCK =       17;
815 enum AT_PLATFORM =     15;
816 enum AT_HWCAP =        16;
817 enum AT_FPUCW =        18;
818 enum AT_DCACHEBSIZE =  19;
819 enum AT_ICACHEBSIZE =  20;
820 enum AT_UCACHEBSIZE =  21;
821 enum AT_IGNOREPPC =    22;
822 
823 enum AT_SECURE =       23;
824 
825 enum AT_BASE_PLATFORM = 24;
826 
827 enum AT_RANDOM =       25;
828 
829 enum AT_HWCAP2 =       26;
830 
831 enum AT_EXECFN =       31;
832 enum AT_SYSINFO =      32;
833 enum AT_SYSINFO_EHDR = 33;
834 
835 enum AT_L1I_CACHESHAPE =       34;
836 enum AT_L1D_CACHESHAPE =       35;
837 enum AT_L2_CACHESHAPE =        36;
838 enum AT_L3_CACHESHAPE =        37;
839 
840 struct Elf32_Nhdr
841 {
842   Elf32_Word n_namesz;
843   Elf32_Word n_descsz;
844   Elf32_Word n_type;
845 }
846 
847 struct Elf64_Nhdr
848 {
849   Elf64_Word n_namesz;
850   Elf64_Word n_descsz;
851   Elf64_Word n_type;
852 }
853 enum ELF_NOTE_SOLARIS =        "SUNW Solaris";
854 enum ELF_NOTE_GNU =            "GNU";
855 enum ELF_NOTE_PAGESIZE_HINT =  1;
856 enum NT_GNU_ABI_TAG =  1;
857 enum ELF_NOTE_ABI =    NT_GNU_ABI_TAG;
858 enum ELF_NOTE_OS_LINUX =       0;
859 enum ELF_NOTE_OS_GNU =         1;
860 enum ELF_NOTE_OS_SOLARIS2 =    2;
861 enum ELF_NOTE_OS_FREEBSD =     3;
862 enum NT_GNU_HWCAP =    2;
863 enum NT_GNU_BUILD_ID = 3;
864 enum NT_GNU_GOLD_VERSION =     4;
865 struct Elf32_Move
866 {
867   Elf32_Xword m_value;
868   Elf32_Word m_info;
869   Elf32_Word m_poffset;
870   Elf32_Half m_repeat;
871   Elf32_Half m_stride;
872 }
873 
874 struct Elf64_Move
875 {
876   Elf64_Xword m_value;
877   Elf64_Xword m_info;
878   Elf64_Xword m_poffset;
879   Elf64_Half m_repeat;
880   Elf64_Half m_stride;
881 }
882 extern (D)
883 {
ELF32_M_SYM(I)884     auto ELF32_M_SYM(I)(I info) { return info >> 8; }
ELF32_M_SIZE(I)885     auto ELF32_M_SIZE(I)(I info) { return cast(ubyte)info; }
ELF32_M_INFO(S,SZ)886     auto ELF32_M_INFO(S, SZ)(S sym, SZ size) { return (sym << 8) + cast(ubyte)size; }
887 }
888 
889 alias ELF32_M_SYM ELF64_M_SYM;
890 alias ELF32_M_SIZE ELF64_M_SIZE;
891 alias ELF32_M_INFO ELF64_M_INFO;
892 enum EF_CPU32 =        0x00810000;
893 
894 enum R_68K_NONE =      0;
895 enum R_68K_32 =        1;
896 enum R_68K_16 =        2;
897 enum R_68K_8 =         3;
898 enum R_68K_PC32 =      4;
899 enum R_68K_PC16 =      5;
900 enum R_68K_PC8 =       6;
901 enum R_68K_GOT32 =     7;
902 enum R_68K_GOT16 =     8;
903 enum R_68K_GOT8 =      9;
904 enum R_68K_GOT32O =    10;
905 enum R_68K_GOT16O =    11;
906 enum R_68K_GOT8O =     12;
907 enum R_68K_PLT32 =     13;
908 enum R_68K_PLT16 =     14;
909 enum R_68K_PLT8 =      15;
910 enum R_68K_PLT32O =    16;
911 enum R_68K_PLT16O =    17;
912 enum R_68K_PLT8O =     18;
913 enum R_68K_COPY =      19;
914 enum R_68K_GLOB_DAT =  20;
915 enum R_68K_JMP_SLOT =  21;
916 enum R_68K_RELATIVE =  22;
917 enum R_68K_TLS_GD32 =      25;
918 enum R_68K_TLS_GD16 =      26;
919 enum R_68K_TLS_GD8 =       27;
920 enum R_68K_TLS_LDM32 =     28;
921 enum R_68K_TLS_LDM16 =     29;
922 enum R_68K_TLS_LDM8 =      30;
923 enum R_68K_TLS_LDO32 =     31;
924 enum R_68K_TLS_LDO16 =     32;
925 enum R_68K_TLS_LDO8 =      33;
926 enum R_68K_TLS_IE32 =      34;
927 enum R_68K_TLS_IE16 =      35;
928 enum R_68K_TLS_IE8 =       36;
929 enum R_68K_TLS_LE32 =      37;
930 enum R_68K_TLS_LE16 =      38;
931 enum R_68K_TLS_LE8 =       39;
932 enum R_68K_TLS_DTPMOD32 =  40;
933 enum R_68K_TLS_DTPREL32 =  41;
934 enum R_68K_TLS_TPREL32 =   42;
935 enum R_68K_NUM =       43;
936 
937 enum R_386_NONE =         0;
938 enum R_386_32 =           1;
939 enum R_386_PC32 =         2;
940 enum R_386_GOT32 =        3;
941 enum R_386_PLT32 =        4;
942 enum R_386_COPY =         5;
943 enum R_386_GLOB_DAT =     6;
944 enum R_386_JMP_SLOT =     7;
945 enum R_386_RELATIVE =     8;
946 enum R_386_GOTOFF =       9;
947 enum R_386_GOTPC =        10;
948 enum R_386_32PLT =        11;
949 enum R_386_TLS_TPOFF =    14;
950 enum R_386_TLS_IE =       15;
951 enum R_386_TLS_GOTIE =    16;
952 enum R_386_TLS_LE =       17;
953 enum R_386_TLS_GD =       18;
954 enum R_386_TLS_LDM =      19;
955 enum R_386_16 =           20;
956 enum R_386_PC16 =         21;
957 enum R_386_8 =            22;
958 enum R_386_PC8 =          23;
959 enum R_386_TLS_GD_32 =    24;
960 enum R_386_TLS_GD_PUSH =  25;
961 enum R_386_TLS_GD_CALL =  26;
962 enum R_386_TLS_GD_POP =   27;
963 enum R_386_TLS_LDM_32 =   28;
964 enum R_386_TLS_LDM_PUSH = 29;
965 enum R_386_TLS_LDM_CALL = 30;
966 enum R_386_TLS_LDM_POP =  31;
967 enum R_386_TLS_LDO_32 =   32;
968 enum R_386_TLS_IE_32 =    33;
969 enum R_386_TLS_LE_32 =    34;
970 enum R_386_TLS_DTPMOD32 = 35;
971 enum R_386_TLS_DTPOFF32 = 36;
972 enum R_386_TLS_TPOFF32 =  37;
973 enum R_386_SIZE32 =       38;
974 enum R_386_TLS_GOTDESC =  39;
975 enum R_386_TLS_DESC_CALL = 40;
976 enum R_386_TLS_DESC =     41;
977 enum R_386_IRELATIVE =    42;
978 enum R_386_NUM =          43;
979 
980 enum STT_SPARC_REGISTER =      13;
981 
982 enum EF_SPARCV9_MM =           3;
983 enum EF_SPARCV9_TSO =          0;
984 enum EF_SPARCV9_PSO =          1;
985 enum EF_SPARCV9_RMO =          2;
986 enum EF_SPARC_LEDATA =         0x800000;
987 enum EF_SPARC_EXT_MASK =       0xFFFF00;
988 enum EF_SPARC_32PLUS =         0x000100;
989 enum EF_SPARC_SUN_US1 =        0x000200;
990 enum EF_SPARC_HAL_R1 =         0x000400;
991 enum EF_SPARC_SUN_US3 =        0x000800;
992 
993 enum R_SPARC_NONE =            0;
994 enum R_SPARC_8 =               1;
995 enum R_SPARC_16 =              2;
996 enum R_SPARC_32 =              3;
997 enum R_SPARC_DISP8 =           4;
998 enum R_SPARC_DISP16 =          5;
999 enum R_SPARC_DISP32 =          6;
1000 enum R_SPARC_WDISP30 =         7;
1001 enum R_SPARC_WDISP22 =         8;
1002 enum R_SPARC_HI22 =            9;
1003 enum R_SPARC_22 =              10;
1004 enum R_SPARC_13 =              11;
1005 enum R_SPARC_LO10 =            12;
1006 enum R_SPARC_GOT10 =           13;
1007 enum R_SPARC_GOT13 =           14;
1008 enum R_SPARC_GOT22 =           15;
1009 enum R_SPARC_PC10 =            16;
1010 enum R_SPARC_PC22 =            17;
1011 enum R_SPARC_WPLT30 =          18;
1012 enum R_SPARC_COPY =            19;
1013 enum R_SPARC_GLOB_DAT =        20;
1014 enum R_SPARC_JMP_SLOT =        21;
1015 enum R_SPARC_RELATIVE =        22;
1016 enum R_SPARC_UA32 =            23;
1017 
1018 enum R_SPARC_PLT32 =           24;
1019 enum R_SPARC_HIPLT22 =         25;
1020 enum R_SPARC_LOPLT10 =         26;
1021 enum R_SPARC_PCPLT32 =         27;
1022 enum R_SPARC_PCPLT22 =         28;
1023 enum R_SPARC_PCPLT10 =         29;
1024 enum R_SPARC_10 =              30;
1025 enum R_SPARC_11 =              31;
1026 enum R_SPARC_64 =              32;
1027 enum R_SPARC_OLO10 =           33;
1028 enum R_SPARC_HH22 =            34;
1029 enum R_SPARC_HM10 =            35;
1030 enum R_SPARC_LM22 =            36;
1031 enum R_SPARC_PC_HH22 =         37;
1032 enum R_SPARC_PC_HM10 =         38;
1033 enum R_SPARC_PC_LM22 =         39;
1034 enum R_SPARC_WDISP16 =         40;
1035 enum R_SPARC_WDISP19 =         41;
1036 enum R_SPARC_GLOB_JMP =        42;
1037 enum R_SPARC_7 =               43;
1038 enum R_SPARC_5 =               44;
1039 enum R_SPARC_6 =               45;
1040 enum R_SPARC_DISP64 =          46;
1041 enum R_SPARC_PLT64 =           47;
1042 enum R_SPARC_HIX22 =           48;
1043 enum R_SPARC_LOX10 =           49;
1044 enum R_SPARC_H44 =             50;
1045 enum R_SPARC_M44 =             51;
1046 enum R_SPARC_L44 =             52;
1047 enum R_SPARC_REGISTER =        53;
1048 enum R_SPARC_UA64 =            54;
1049 enum R_SPARC_UA16 =            55;
1050 enum R_SPARC_TLS_GD_HI22 =     56;
1051 enum R_SPARC_TLS_GD_LO10 =     57;
1052 enum R_SPARC_TLS_GD_ADD =      58;
1053 enum R_SPARC_TLS_GD_CALL =     59;
1054 enum R_SPARC_TLS_LDM_HI22 =    60;
1055 enum R_SPARC_TLS_LDM_LO10 =    61;
1056 enum R_SPARC_TLS_LDM_ADD =     62;
1057 enum R_SPARC_TLS_LDM_CALL =    63;
1058 enum R_SPARC_TLS_LDO_HIX22 =   64;
1059 enum R_SPARC_TLS_LDO_LOX10 =   65;
1060 enum R_SPARC_TLS_LDO_ADD =     66;
1061 enum R_SPARC_TLS_IE_HI22 =     67;
1062 enum R_SPARC_TLS_IE_LO10 =     68;
1063 enum R_SPARC_TLS_IE_LD =       69;
1064 enum R_SPARC_TLS_IE_LDX =      70;
1065 enum R_SPARC_TLS_IE_ADD =      71;
1066 enum R_SPARC_TLS_LE_HIX22 =    72;
1067 enum R_SPARC_TLS_LE_LOX10 =    73;
1068 enum R_SPARC_TLS_DTPMOD32 =    74;
1069 enum R_SPARC_TLS_DTPMOD64 =    75;
1070 enum R_SPARC_TLS_DTPOFF32 =    76;
1071 enum R_SPARC_TLS_DTPOFF64 =    77;
1072 enum R_SPARC_TLS_TPOFF32 =     78;
1073 enum R_SPARC_TLS_TPOFF64 =     79;
1074 enum R_SPARC_GOTDATA_HIX22 =   80;
1075 enum R_SPARC_GOTDATA_LOX10 =   81;
1076 enum R_SPARC_GOTDATA_OP_HIX22 =        82;
1077 enum R_SPARC_GOTDATA_OP_LOX10 =        83;
1078 enum R_SPARC_GOTDATA_OP =      84;
1079 enum R_SPARC_H34 =             85;
1080 enum R_SPARC_SIZE32 =          86;
1081 enum R_SPARC_SIZE64 =          87;
1082 enum R_SPARC_WDISP10 =         88;
1083 enum R_SPARC_JMP_IREL =        248;
1084 enum R_SPARC_IRELATIVE =       249;
1085 enum R_SPARC_GNU_VTINHERIT =   250;
1086 enum R_SPARC_GNU_VTENTRY =     251;
1087 enum R_SPARC_REV32 =           252;
1088 enum R_SPARC_NUM =             253;
1089 
1090 enum DT_SPARC_REGISTER =       0x70000001;
1091 enum DT_SPARC_NUM =            2;
1092 
1093 enum EF_MIPS_NOREORDER =       1;
1094 enum EF_MIPS_PIC =             2;
1095 enum EF_MIPS_CPIC =            4;
1096 enum EF_MIPS_XGOT =            8;
1097 enum EF_MIPS_64BIT_WHIRL =     16;
1098 enum EF_MIPS_ABI2 =            32;
1099 enum EF_MIPS_ABI_ON32 =        64;
1100 enum EF_MIPS_ARCH =            0xf0000000;
1101 
1102 enum EF_MIPS_ARCH_1 =          0x00000000;
1103 enum EF_MIPS_ARCH_2 =          0x10000000;
1104 enum EF_MIPS_ARCH_3 =          0x20000000;
1105 enum EF_MIPS_ARCH_4 =          0x30000000;
1106 enum EF_MIPS_ARCH_5 =          0x40000000;
1107 enum EF_MIPS_ARCH_32 =         0x50000000;
1108 enum EF_MIPS_ARCH_64 =         0x60000000;
1109 enum EF_MIPS_ARCH_32R2 =       0x70000000;
1110 enum EF_MIPS_ARCH_64R2 =       0x80000000;
1111 
1112 enum E_MIPS_ARCH_1 =           EF_MIPS_ARCH_1;
1113 enum E_MIPS_ARCH_2 =           EF_MIPS_ARCH_2;
1114 enum E_MIPS_ARCH_3 =           EF_MIPS_ARCH_3;
1115 enum E_MIPS_ARCH_4 =           EF_MIPS_ARCH_4;
1116 enum E_MIPS_ARCH_5 =           EF_MIPS_ARCH_5;
1117 enum E_MIPS_ARCH_32 =          EF_MIPS_ARCH_32;
1118 enum E_MIPS_ARCH_64 =          EF_MIPS_ARCH_64;
1119 
1120 enum SHN_MIPS_ACOMMON =        0xff00;
1121 enum SHN_MIPS_TEXT =           0xff01;
1122 enum SHN_MIPS_DATA =           0xff02;
1123 enum SHN_MIPS_SCOMMON =        0xff03;
1124 enum SHN_MIPS_SUNDEFINED =     0xff04;
1125 
1126 enum SHT_MIPS_LIBLIST =        0x70000000;
1127 enum SHT_MIPS_MSYM =           0x70000001;
1128 enum SHT_MIPS_CONFLICT =       0x70000002;
1129 enum SHT_MIPS_GPTAB =          0x70000003;
1130 enum SHT_MIPS_UCODE =          0x70000004;
1131 enum SHT_MIPS_DEBUG =          0x70000005;
1132 enum SHT_MIPS_REGINFO =        0x70000006;
1133 enum SHT_MIPS_PACKAGE =        0x70000007;
1134 enum SHT_MIPS_PACKSYM =        0x70000008;
1135 enum SHT_MIPS_RELD =           0x70000009;
1136 enum SHT_MIPS_IFACE =          0x7000000b;
1137 enum SHT_MIPS_CONTENT =        0x7000000c;
1138 enum SHT_MIPS_OPTIONS =        0x7000000d;
1139 enum SHT_MIPS_SHDR =           0x70000010;
1140 enum SHT_MIPS_FDESC =          0x70000011;
1141 enum SHT_MIPS_EXTSYM =         0x70000012;
1142 enum SHT_MIPS_DENSE =          0x70000013;
1143 enum SHT_MIPS_PDESC =          0x70000014;
1144 enum SHT_MIPS_LOCSYM =         0x70000015;
1145 enum SHT_MIPS_AUXSYM =         0x70000016;
1146 enum SHT_MIPS_OPTSYM =         0x70000017;
1147 enum SHT_MIPS_LOCSTR =         0x70000018;
1148 enum SHT_MIPS_LINE =           0x70000019;
1149 enum SHT_MIPS_RFDESC =         0x7000001a;
1150 enum SHT_MIPS_DELTASYM =       0x7000001b;
1151 enum SHT_MIPS_DELTAINST =      0x7000001c;
1152 enum SHT_MIPS_DELTACLASS =     0x7000001d;
1153 enum SHT_MIPS_DWARF =          0x7000001e;
1154 enum SHT_MIPS_DELTADECL =      0x7000001f;
1155 enum SHT_MIPS_SYMBOL_LIB =     0x70000020;
1156 enum SHT_MIPS_EVENTS =         0x70000021;
1157 enum SHT_MIPS_TRANSLATE =      0x70000022;
1158 enum SHT_MIPS_PIXIE =          0x70000023;
1159 enum SHT_MIPS_XLATE =          0x70000024;
1160 enum SHT_MIPS_XLATE_DEBUG =    0x70000025;
1161 enum SHT_MIPS_WHIRL =          0x70000026;
1162 enum SHT_MIPS_EH_REGION =      0x70000027;
1163 enum SHT_MIPS_XLATE_OLD =      0x70000028;
1164 enum SHT_MIPS_PDR_EXCEPTION =  0x70000029;
1165 
1166 enum SHF_MIPS_GPREL =          0x10000000;
1167 enum SHF_MIPS_MERGE =          0x20000000;
1168 enum SHF_MIPS_ADDR =           0x40000000;
1169 enum SHF_MIPS_STRINGS =        0x80000000;
1170 enum SHF_MIPS_NOSTRIP =        0x08000000;
1171 enum SHF_MIPS_LOCAL =          0x04000000;
1172 enum SHF_MIPS_NAMES =          0x02000000;
1173 enum SHF_MIPS_NODUPE =         0x01000000;
1174 enum STO_MIPS_DEFAULT =                0x0;
1175 enum STO_MIPS_INTERNAL =               0x1;
1176 enum STO_MIPS_HIDDEN =                 0x2;
1177 enum STO_MIPS_PROTECTED =              0x3;
1178 enum STO_MIPS_PLT =                    0x8;
1179 enum STO_MIPS_SC_ALIGN_UNUSED =        0xff;
1180 enum STB_MIPS_SPLIT_COMMON =           13;
1181 
1182 union Elf32_gptab
1183 {
1184     struct _gt_header
1185     {
1186         Elf32_Word gt_current_g_value;
1187         Elf32_Word gt_unused;
1188     } _gt_header gt_header;
1189     struct _gt_entry
1190     {
1191         Elf32_Word gt_g_value;
1192         Elf32_Word gt_bytes;
1193     } _gt_entry gt_entry;
1194 }
1195 
1196 struct Elf32_RegInfo
1197 {
1198     Elf32_Word ri_gprmask;
1199     Elf32_Word[4] ri_cprmask;
1200     Elf32_Sword ri_gp_value;
1201 }
1202 
1203 struct Elf_Options
1204 {
1205     ubyte kind;
1206     ubyte size;
1207     Elf32_Section section;
1208     Elf32_Word info;
1209 }
1210 
1211 enum ODK_NULL =        0;
1212 enum ODK_REGINFO =     1;
1213 enum ODK_EXCEPTIONS =  2;
1214 enum ODK_PAD =         3;
1215 enum ODK_HWPATCH =     4;
1216 enum ODK_FILL =        5;
1217 enum ODK_TAGS =        6;
1218 enum ODK_HWAND =       7;
1219 enum ODK_HWOR =        8;
1220 
1221 enum OEX_FPU_MIN =     0x1f;
1222 enum OEX_FPU_MAX =     0x1f00;
1223 enum OEX_PAGE0 =       0x10000;
1224 enum OEX_SMM =         0x20000;
1225 enum OEX_FPDBUG =      0x40000;
1226 enum OEX_PRECISEFP =   OEX_FPDBUG;
1227 enum OEX_DISMISS =     0x80000;
1228 
1229 enum OEX_FPU_INVAL =   0x10;
1230 enum OEX_FPU_DIV0 =    0x08;
1231 enum OEX_FPU_OFLO =    0x04;
1232 enum OEX_FPU_UFLO =    0x02;
1233 enum OEX_FPU_INEX =    0x01;
1234 
1235 enum OHW_R4KEOP =      0x1;
1236 enum OHW_R8KPFETCH =   0x2;
1237 enum OHW_R5KEOP =      0x4;
1238 enum OHW_R5KCVTL =     0x8;
1239 
1240 enum OPAD_PREFIX =     0x1;
1241 enum OPAD_POSTFIX =    0x2;
1242 enum OPAD_SYMBOL =     0x4;
1243 
1244 struct Elf_Options_Hw
1245 {
1246     Elf32_Word hwp_flags1;
1247     Elf32_Word hwp_flags2;
1248 }
1249 
1250 enum OHWA0_R4KEOP_CHECKED =    0x00000001;
1251 enum OHWA1_R4KEOP_CLEAN =      0x00000002;
1252 
1253 enum R_MIPS_NONE =             0;
1254 enum R_MIPS_16 =               1;
1255 enum R_MIPS_32 =               2;
1256 enum R_MIPS_REL32 =            3;
1257 enum R_MIPS_26 =               4;
1258 enum R_MIPS_HI16 =             5;
1259 enum R_MIPS_LO16 =             6;
1260 enum R_MIPS_GPREL16 =          7;
1261 enum R_MIPS_LITERAL =          8;
1262 enum R_MIPS_GOT16 =            9;
1263 enum R_MIPS_PC16 =             10;
1264 enum R_MIPS_CALL16 =           11;
1265 enum R_MIPS_GPREL32 =          12;
1266 
1267 enum R_MIPS_SHIFT5 =           16;
1268 enum R_MIPS_SHIFT6 =           17;
1269 enum R_MIPS_64 =               18;
1270 enum R_MIPS_GOT_DISP =         19;
1271 enum R_MIPS_GOT_PAGE =         20;
1272 enum R_MIPS_GOT_OFST =         21;
1273 enum R_MIPS_GOT_HI16 =         22;
1274 enum R_MIPS_GOT_LO16 =         23;
1275 enum R_MIPS_SUB =              24;
1276 enum R_MIPS_INSERT_A =         25;
1277 enum R_MIPS_INSERT_B =         26;
1278 enum R_MIPS_DELETE =           27;
1279 enum R_MIPS_HIGHER =           28;
1280 enum R_MIPS_HIGHEST =          29;
1281 enum R_MIPS_CALL_HI16 =        30;
1282 enum R_MIPS_CALL_LO16 =        31;
1283 enum R_MIPS_SCN_DISP =         32;
1284 enum R_MIPS_REL16 =            33;
1285 enum R_MIPS_ADD_IMMEDIATE =    34;
1286 enum R_MIPS_PJUMP =            35;
1287 enum R_MIPS_RELGOT =           36;
1288 enum R_MIPS_JALR =             37;
1289 enum R_MIPS_TLS_DTPMOD32 =     38;
1290 enum R_MIPS_TLS_DTPREL32 =     39;
1291 enum R_MIPS_TLS_DTPMOD64 =     40;
1292 enum R_MIPS_TLS_DTPREL64 =     41;
1293 enum R_MIPS_TLS_GD =           42;
1294 enum R_MIPS_TLS_LDM =          43;
1295 enum R_MIPS_TLS_DTPREL_HI16 =  44;
1296 enum R_MIPS_TLS_DTPREL_LO16 =  45;
1297 enum R_MIPS_TLS_GOTTPREL =     46;
1298 enum R_MIPS_TLS_TPREL32 =      47;
1299 enum R_MIPS_TLS_TPREL64 =      48;
1300 enum R_MIPS_TLS_TPREL_HI16 =   49;
1301 enum R_MIPS_TLS_TPREL_LO16 =   50;
1302 enum R_MIPS_GLOB_DAT =         51;
1303 enum R_MIPS_COPY =             126;
1304 enum R_MIPS_JUMP_SLOT =        127;
1305 enum R_MIPS_NUM =              128;
1306 
1307 enum PT_MIPS_REGINFO = 0x70000000;
1308 enum PT_MIPS_RTPROC =  0x70000001;
1309 enum PT_MIPS_OPTIONS = 0x70000002;
1310 
1311 enum PF_MIPS_LOCAL =   0x10000000;
1312 
1313 enum DT_MIPS_RLD_VERSION =  0x70000001;
1314 enum DT_MIPS_TIME_STAMP =   0x70000002;
1315 enum DT_MIPS_ICHECKSUM =    0x70000003;
1316 enum DT_MIPS_IVERSION =     0x70000004;
1317 enum DT_MIPS_FLAGS =        0x70000005;
1318 enum DT_MIPS_BASE_ADDRESS = 0x70000006;
1319 enum DT_MIPS_MSYM =         0x70000007;
1320 enum DT_MIPS_CONFLICT =     0x70000008;
1321 enum DT_MIPS_LIBLIST =      0x70000009;
1322 enum DT_MIPS_LOCAL_GOTNO =  0x7000000a;
1323 enum DT_MIPS_CONFLICTNO =   0x7000000b;
1324 enum DT_MIPS_LIBLISTNO =    0x70000010;
1325 enum DT_MIPS_SYMTABNO =     0x70000011;
1326 enum DT_MIPS_UNREFEXTNO =   0x70000012;
1327 enum DT_MIPS_GOTSYM =       0x70000013;
1328 enum DT_MIPS_HIPAGENO =     0x70000014;
1329 enum DT_MIPS_RLD_MAP =      0x70000016;
1330 enum DT_MIPS_DELTA_CLASS =  0x70000017;
1331 enum DT_MIPS_DELTA_CLASS_NO =    0x70000018;
1332 enum DT_MIPS_DELTA_INSTANCE =    0x70000019;
1333 enum DT_MIPS_DELTA_INSTANCE_NO = 0x7000001a;
1334 enum DT_MIPS_DELTA_RELOC =  0x7000001b;
1335 enum DT_MIPS_DELTA_RELOC_NO = 0x7000001c;
1336 enum DT_MIPS_DELTA_SYM =    0x7000001d;
1337 enum DT_MIPS_DELTA_SYM_NO = 0x7000001e;
1338 enum DT_MIPS_DELTA_CLASSSYM = 0x70000020;
1339 enum DT_MIPS_DELTA_CLASSSYM_NO = 0x70000021;
1340 enum DT_MIPS_CXX_FLAGS =    0x70000022;
1341 enum DT_MIPS_PIXIE_INIT =   0x70000023;
1342 enum DT_MIPS_SYMBOL_LIB =   0x70000024;
1343 enum DT_MIPS_LOCALPAGE_GOTIDX = 0x70000025;
1344 enum DT_MIPS_LOCAL_GOTIDX = 0x70000026;
1345 enum DT_MIPS_HIDDEN_GOTIDX = 0x70000027;
1346 enum DT_MIPS_PROTECTED_GOTIDX = 0x70000028;
1347 enum DT_MIPS_OPTIONS =      0x70000029;
1348 enum DT_MIPS_INTERFACE =    0x7000002a;
1349 enum DT_MIPS_DYNSTR_ALIGN = 0x7000002b;
1350 enum DT_MIPS_INTERFACE_SIZE = 0x7000002c;
1351 enum DT_MIPS_RLD_TEXT_RESOLVE_ADDR = 0x7000002d;
1352 enum DT_MIPS_PERF_SUFFIX =  0x7000002e;
1353 enum DT_MIPS_COMPACT_SIZE = 0x7000002f;
1354 enum DT_MIPS_GP_VALUE =     0x70000030;
1355 enum DT_MIPS_AUX_DYNAMIC =  0x70000031;
1356 enum DT_MIPS_PLTGOT =       0x70000032;
1357 enum DT_MIPS_RWPLT =        0x70000034;
1358 enum DT_MIPS_NUM =          0x35;
1359 
1360 enum RHF_NONE =                   0;
1361 enum RHF_QUICKSTART =             (1 << 0);
1362 enum RHF_NOTPOT =                 (1 << 1);
1363 enum RHF_NO_LIBRARY_REPLACEMENT = (1 << 2);
1364 enum RHF_NO_MOVE =                (1 << 3);
1365 enum RHF_SGI_ONLY =               (1 << 4);
1366 enum RHF_GUARANTEE_INIT =         (1 << 5);
1367 enum RHF_DELTA_C_PLUS_PLUS =      (1 << 6);
1368 enum RHF_GUARANTEE_START_INIT =   (1 << 7);
1369 enum RHF_PIXIE =                  (1 << 8);
1370 enum RHF_DEFAULT_DELAY_LOAD =     (1 << 9);
1371 enum RHF_REQUICKSTART =           (1 << 10);
1372 enum RHF_REQUICKSTARTED =         (1 << 11);
1373 enum RHF_CORD =                   (1 << 12);
1374 enum RHF_NO_UNRES_UNDEF =         (1 << 13);
1375 enum RHF_RLD_ORDER_SAFE =         (1 << 14);
1376 
1377 struct Elf32_Lib
1378 {
1379     Elf32_Word l_name;
1380     Elf32_Word l_time_stamp;
1381     Elf32_Word l_checksum;
1382     Elf32_Word l_version;
1383     Elf32_Word l_flags;
1384 }
1385 
1386 struct Elf64_Lib
1387 {
1388     Elf64_Word l_name;
1389     Elf64_Word l_time_stamp;
1390     Elf64_Word l_checksum;
1391     Elf64_Word l_version;
1392     Elf64_Word l_flags;
1393 }
1394 
1395 enum LL_NONE =           0;
1396 enum LL_EXACT_MATCH =    (1 << 0);
1397 enum LL_IGNORE_INT_VER = (1 << 1);
1398 enum LL_REQUIRE_MINOR =  (1 << 2);
1399 enum LL_EXPORTS =        (1 << 3);
1400 enum LL_DELAY_LOAD =     (1 << 4);
1401 enum LL_DELTA =          (1 << 5);
1402 
1403 alias Elf32_Addr Elf32_Conflict;
1404 
1405 enum EF_PARISC_TRAPNIL =       0x00010000;
1406 enum EF_PARISC_EXT =           0x00020000;
1407 enum EF_PARISC_LSB =           0x00040000;
1408 enum EF_PARISC_WIDE =          0x00080000;
1409 enum EF_PARISC_NO_KABP =       0x00100000;
1410 enum EF_PARISC_LAZYSWAP =      0x00400000;
1411 enum EF_PARISC_ARCH =          0x0000ffff;
1412 
1413 enum EFA_PARISC_1_0 =              0x020b;
1414 enum EFA_PARISC_1_1 =              0x0210;
1415 enum EFA_PARISC_2_0 =              0x0214;
1416 
1417 enum SHN_PARISC_ANSI_COMMON =  0xff00;
1418 enum SHN_PARISC_HUGE_COMMON =  0xff01;
1419 
1420 enum SHT_PARISC_EXT =          0x70000000;
1421 enum SHT_PARISC_UNWIND =       0x70000001;
1422 enum SHT_PARISC_DOC =          0x70000002;
1423 
1424 enum SHF_PARISC_SHORT =        0x20000000;
1425 enum SHF_PARISC_HUGE =         0x40000000;
1426 enum SHF_PARISC_SBP =          0x80000000;
1427 
1428 enum STT_PARISC_MILLICODE =    13;
1429 
1430 enum STT_HP_OPAQUE =           (STT_LOOS + 0x1);
1431 enum STT_HP_STUB =             (STT_LOOS + 0x2);
1432 
1433 enum R_PARISC_NONE =           0;
1434 enum R_PARISC_DIR32 =          1;
1435 enum R_PARISC_DIR21L =         2;
1436 enum R_PARISC_DIR17R =         3;
1437 enum R_PARISC_DIR17F =         4;
1438 enum R_PARISC_DIR14R =         6;
1439 enum R_PARISC_PCREL32 =        9;
1440 enum R_PARISC_PCREL21L =       10;
1441 enum R_PARISC_PCREL17R =       11;
1442 enum R_PARISC_PCREL17F =       12;
1443 enum R_PARISC_PCREL14R =       14;
1444 enum R_PARISC_DPREL21L =       18;
1445 enum R_PARISC_DPREL14R =       22;
1446 enum R_PARISC_GPREL21L =       26;
1447 enum R_PARISC_GPREL14R =       30;
1448 enum R_PARISC_LTOFF21L =       34;
1449 enum R_PARISC_LTOFF14R =       38;
1450 enum R_PARISC_SECREL32 =       41;
1451 enum R_PARISC_SEGBASE =        48;
1452 enum R_PARISC_SEGREL32 =       49;
1453 enum R_PARISC_PLTOFF21L =      50;
1454 enum R_PARISC_PLTOFF14R =      54;
1455 enum R_PARISC_LTOFF_FPTR32 =   57;
1456 enum R_PARISC_LTOFF_FPTR21L =  58;
1457 enum R_PARISC_LTOFF_FPTR14R =  62;
1458 enum R_PARISC_FPTR64 =         64;
1459 enum R_PARISC_PLABEL32 =       65;
1460 enum R_PARISC_PLABEL21L =      66;
1461 enum R_PARISC_PLABEL14R =      70;
1462 enum R_PARISC_PCREL64 =        72;
1463 enum R_PARISC_PCREL22F =       74;
1464 enum R_PARISC_PCREL14WR =      75;
1465 enum R_PARISC_PCREL14DR =      76;
1466 enum R_PARISC_PCREL16F =       77;
1467 enum R_PARISC_PCREL16WF =      78;
1468 enum R_PARISC_PCREL16DF =      79;
1469 enum R_PARISC_DIR64 =          80;
1470 enum R_PARISC_DIR14WR =        83;
1471 enum R_PARISC_DIR14DR =        84;
1472 enum R_PARISC_DIR16F =         85;
1473 enum R_PARISC_DIR16WF =        86;
1474 enum R_PARISC_DIR16DF =        87;
1475 enum R_PARISC_GPREL64 =        88;
1476 enum R_PARISC_GPREL14WR =      91;
1477 enum R_PARISC_GPREL14DR =      92;
1478 enum R_PARISC_GPREL16F =       93;
1479 enum R_PARISC_GPREL16WF =      94;
1480 enum R_PARISC_GPREL16DF =      95;
1481 enum R_PARISC_LTOFF64 =        96;
1482 enum R_PARISC_LTOFF14WR =      99;
1483 enum R_PARISC_LTOFF14DR =      100;
1484 enum R_PARISC_LTOFF16F =       101;
1485 enum R_PARISC_LTOFF16WF =      102;
1486 enum R_PARISC_LTOFF16DF =      103;
1487 enum R_PARISC_SECREL64 =       104;
1488 enum R_PARISC_SEGREL64 =       112;
1489 enum R_PARISC_PLTOFF14WR =     115;
1490 enum R_PARISC_PLTOFF14DR =     116;
1491 enum R_PARISC_PLTOFF16F =      117;
1492 enum R_PARISC_PLTOFF16WF =     118;
1493 enum R_PARISC_PLTOFF16DF =     119;
1494 enum R_PARISC_LTOFF_FPTR64 =   120;
1495 enum R_PARISC_LTOFF_FPTR14WR = 123;
1496 enum R_PARISC_LTOFF_FPTR14DR = 124;
1497 enum R_PARISC_LTOFF_FPTR16F =  125;
1498 enum R_PARISC_LTOFF_FPTR16WF = 126;
1499 enum R_PARISC_LTOFF_FPTR16DF = 127;
1500 enum R_PARISC_LORESERVE =      128;
1501 enum R_PARISC_COPY =           128;
1502 enum R_PARISC_IPLT =           129;
1503 enum R_PARISC_EPLT =           130;
1504 enum R_PARISC_TPREL32 =        153;
1505 enum R_PARISC_TPREL21L =       154;
1506 enum R_PARISC_TPREL14R =       158;
1507 enum R_PARISC_LTOFF_TP21L =    162;
1508 enum R_PARISC_LTOFF_TP14R =    166;
1509 enum R_PARISC_LTOFF_TP14F =    167;
1510 enum R_PARISC_TPREL64 =        216;
1511 enum R_PARISC_TPREL14WR =      219;
1512 enum R_PARISC_TPREL14DR =      220;
1513 enum R_PARISC_TPREL16F =       221;
1514 enum R_PARISC_TPREL16WF =      222;
1515 enum R_PARISC_TPREL16DF =      223;
1516 enum R_PARISC_LTOFF_TP64 =     224;
1517 enum R_PARISC_LTOFF_TP14WR =   227;
1518 enum R_PARISC_LTOFF_TP14DR =   228;
1519 enum R_PARISC_LTOFF_TP16F =    229;
1520 enum R_PARISC_LTOFF_TP16WF =   230;
1521 enum R_PARISC_LTOFF_TP16DF =   231;
1522 enum R_PARISC_GNU_VTENTRY =    232;
1523 enum R_PARISC_GNU_VTINHERIT =  233;
1524 enum R_PARISC_TLS_GD21L =      234;
1525 enum R_PARISC_TLS_GD14R =      235;
1526 enum R_PARISC_TLS_GDCALL =     236;
1527 enum R_PARISC_TLS_LDM21L =     237;
1528 enum R_PARISC_TLS_LDM14R =     238;
1529 enum R_PARISC_TLS_LDMCALL =    239;
1530 enum R_PARISC_TLS_LDO21L =     240;
1531 enum R_PARISC_TLS_LDO14R =     241;
1532 enum R_PARISC_TLS_DTPMOD32 =   242;
1533 enum R_PARISC_TLS_DTPMOD64 =   243;
1534 enum R_PARISC_TLS_DTPOFF32 =   244;
1535 enum R_PARISC_TLS_DTPOFF64 =   245;
1536 enum R_PARISC_TLS_LE21L =      R_PARISC_TPREL21L;
1537 enum R_PARISC_TLS_LE14R =      R_PARISC_TPREL14R;
1538 enum R_PARISC_TLS_IE21L =      R_PARISC_LTOFF_TP21L;
1539 enum R_PARISC_TLS_IE14R =      R_PARISC_LTOFF_TP14R;
1540 enum R_PARISC_TLS_TPREL32 =    R_PARISC_TPREL32;
1541 enum R_PARISC_TLS_TPREL64 =    R_PARISC_TPREL64;
1542 enum R_PARISC_HIRESERVE =      255;
1543 
1544 enum PT_HP_TLS =               (PT_LOOS + 0x0);
1545 enum PT_HP_CORE_NONE =         (PT_LOOS + 0x1);
1546 enum PT_HP_CORE_VERSION =      (PT_LOOS + 0x2);
1547 enum PT_HP_CORE_KERNEL =       (PT_LOOS + 0x3);
1548 enum PT_HP_CORE_COMM =         (PT_LOOS + 0x4);
1549 enum PT_HP_CORE_PROC =         (PT_LOOS + 0x5);
1550 enum PT_HP_CORE_LOADABLE =     (PT_LOOS + 0x6);
1551 enum PT_HP_CORE_STACK =        (PT_LOOS + 0x7);
1552 enum PT_HP_CORE_SHM =          (PT_LOOS + 0x8);
1553 enum PT_HP_CORE_MMF =          (PT_LOOS + 0x9);
1554 enum PT_HP_PARALLEL =          (PT_LOOS + 0x10);
1555 enum PT_HP_FASTBIND =          (PT_LOOS + 0x11);
1556 enum PT_HP_OPT_ANNOT =         (PT_LOOS + 0x12);
1557 enum PT_HP_HSL_ANNOT =         (PT_LOOS + 0x13);
1558 enum PT_HP_STACK =             (PT_LOOS + 0x14);
1559 
1560 enum PT_PARISC_ARCHEXT =       0x70000000;
1561 enum PT_PARISC_UNWIND =        0x70000001;
1562 
1563 enum PF_PARISC_SBP =           0x08000000;
1564 
1565 enum PF_HP_PAGE_SIZE =         0x00100000;
1566 enum PF_HP_FAR_SHARED =        0x00200000;
1567 enum PF_HP_NEAR_SHARED =       0x00400000;
1568 enum PF_HP_CODE =              0x01000000;
1569 enum PF_HP_MODIFY =            0x02000000;
1570 enum PF_HP_LAZYSWAP =          0x04000000;
1571 enum PF_HP_SBP =               0x08000000;
1572 
1573 enum EF_ALPHA_32BIT =          1;
1574 enum EF_ALPHA_CANRELAX =       2;
1575 enum SHT_ALPHA_DEBUG =         0x70000001;
1576 enum SHT_ALPHA_REGINFO =       0x70000002;
1577 
1578 enum SHF_ALPHA_GPREL =         0x10000000;
1579 enum STO_ALPHA_NOPV =          0x80;
1580 enum STO_ALPHA_STD_GPLOAD =    0x88;
1581 
1582 enum R_ALPHA_NONE =            0;
1583 enum R_ALPHA_REFLONG =         1;
1584 enum R_ALPHA_REFQUAD =         2;
1585 enum R_ALPHA_GPREL32 =         3;
1586 enum R_ALPHA_LITERAL =         4;
1587 enum R_ALPHA_LITUSE =          5;
1588 enum R_ALPHA_GPDISP =          6;
1589 enum R_ALPHA_BRADDR =          7;
1590 enum R_ALPHA_HINT =            8;
1591 enum R_ALPHA_SREL16 =          9;
1592 enum R_ALPHA_SREL32 =          10;
1593 enum R_ALPHA_SREL64 =          11;
1594 enum R_ALPHA_GPRELHIGH =       17;
1595 enum R_ALPHA_GPRELLOW =        18;
1596 enum R_ALPHA_GPREL16 =         19;
1597 enum R_ALPHA_COPY =            24;
1598 enum R_ALPHA_GLOB_DAT =        25;
1599 enum R_ALPHA_JMP_SLOT =        26;
1600 enum R_ALPHA_RELATIVE =        27;
1601 enum R_ALPHA_TLS_GD_HI =       28;
1602 enum R_ALPHA_TLSGD =           29;
1603 enum R_ALPHA_TLS_LDM =         30;
1604 enum R_ALPHA_DTPMOD64 =        31;
1605 enum R_ALPHA_GOTDTPREL =       32;
1606 enum R_ALPHA_DTPREL64 =        33;
1607 enum R_ALPHA_DTPRELHI =        34;
1608 enum R_ALPHA_DTPRELLO =        35;
1609 enum R_ALPHA_DTPREL16 =        36;
1610 enum R_ALPHA_GOTTPREL =        37;
1611 enum R_ALPHA_TPREL64 =         38;
1612 enum R_ALPHA_TPRELHI =         39;
1613 enum R_ALPHA_TPRELLO =         40;
1614 enum R_ALPHA_TPREL16 =         41;
1615 enum R_ALPHA_NUM =             46;
1616 enum LITUSE_ALPHA_ADDR =       0;
1617 enum LITUSE_ALPHA_BASE =       1;
1618 enum LITUSE_ALPHA_BYTOFF =     2;
1619 enum LITUSE_ALPHA_JSR =        3;
1620 enum LITUSE_ALPHA_TLS_GD =     4;
1621 enum LITUSE_ALPHA_TLS_LDM =    5;
1622 enum DT_ALPHA_PLTRO =          (DT_LOPROC + 0);
1623 enum DT_ALPHA_NUM =            1;
1624 enum EF_PPC_EMB =              0x80000000;
1625 enum EF_PPC_RELOCATABLE =      0x00010000;
1626 enum EF_PPC_RELOCATABLE_LIB =  0x00008000;
1627 enum R_PPC_NONE =              0;
1628 enum R_PPC_ADDR32 =            1;
1629 enum R_PPC_ADDR24 =            2;
1630 enum R_PPC_ADDR16 =            3;
1631 enum R_PPC_ADDR16_LO =         4;
1632 enum R_PPC_ADDR16_HI =         5;
1633 enum R_PPC_ADDR16_HA =         6;
1634 enum R_PPC_ADDR14 =            7;
1635 enum R_PPC_ADDR14_BRTAKEN =    8;
1636 enum R_PPC_ADDR14_BRNTAKEN =   9;
1637 enum R_PPC_REL24 =             10;
1638 enum R_PPC_REL14 =             11;
1639 enum R_PPC_REL14_BRTAKEN =     12;
1640 enum R_PPC_REL14_BRNTAKEN =    13;
1641 enum R_PPC_GOT16 =             14;
1642 enum R_PPC_GOT16_LO =          15;
1643 enum R_PPC_GOT16_HI =          16;
1644 enum R_PPC_GOT16_HA =          17;
1645 enum R_PPC_PLTREL24 =          18;
1646 enum R_PPC_COPY =              19;
1647 enum R_PPC_GLOB_DAT =          20;
1648 enum R_PPC_JMP_SLOT =          21;
1649 enum R_PPC_RELATIVE =          22;
1650 enum R_PPC_LOCAL24PC =         23;
1651 enum R_PPC_UADDR32 =           24;
1652 enum R_PPC_UADDR16 =           25;
1653 enum R_PPC_REL32 =             26;
1654 enum R_PPC_PLT32 =             27;
1655 enum R_PPC_PLTREL32 =          28;
1656 enum R_PPC_PLT16_LO =          29;
1657 enum R_PPC_PLT16_HI =          30;
1658 enum R_PPC_PLT16_HA =          31;
1659 enum R_PPC_SDAREL16 =          32;
1660 enum R_PPC_SECTOFF =           33;
1661 enum R_PPC_SECTOFF_LO =        34;
1662 enum R_PPC_SECTOFF_HI =        35;
1663 enum R_PPC_SECTOFF_HA =        36;
1664 enum R_PPC_TLS =               67;
1665 enum R_PPC_DTPMOD32 =          68;
1666 enum R_PPC_TPREL16 =           69;
1667 enum R_PPC_TPREL16_LO =        70;
1668 enum R_PPC_TPREL16_HI =        71;
1669 enum R_PPC_TPREL16_HA =        72;
1670 enum R_PPC_TPREL32 =           73;
1671 enum R_PPC_DTPREL16 =          74;
1672 enum R_PPC_DTPREL16_LO =       75;
1673 enum R_PPC_DTPREL16_HI =       76;
1674 enum R_PPC_DTPREL16_HA =       77;
1675 enum R_PPC_DTPREL32 =          78;
1676 enum R_PPC_GOT_TLSGD16 =       79;
1677 enum R_PPC_GOT_TLSGD16_LO =    80;
1678 enum R_PPC_GOT_TLSGD16_HI =    81;
1679 enum R_PPC_GOT_TLSGD16_HA =    82;
1680 enum R_PPC_GOT_TLSLD16 =       83;
1681 enum R_PPC_GOT_TLSLD16_LO =    84;
1682 enum R_PPC_GOT_TLSLD16_HI =    85;
1683 enum R_PPC_GOT_TLSLD16_HA =    86;
1684 enum R_PPC_GOT_TPREL16 =       87;
1685 enum R_PPC_GOT_TPREL16_LO =    88;
1686 enum R_PPC_GOT_TPREL16_HI =    89;
1687 enum R_PPC_GOT_TPREL16_HA =    90;
1688 enum R_PPC_GOT_DTPREL16 =      91;
1689 enum R_PPC_GOT_DTPREL16_LO =   92;
1690 enum R_PPC_GOT_DTPREL16_HI =   93;
1691 enum R_PPC_GOT_DTPREL16_HA =   94;
1692 enum R_PPC_EMB_NADDR32 =       101;
1693 enum R_PPC_EMB_NADDR16 =       102;
1694 enum R_PPC_EMB_NADDR16_LO =    103;
1695 enum R_PPC_EMB_NADDR16_HI =    104;
1696 enum R_PPC_EMB_NADDR16_HA =    105;
1697 enum R_PPC_EMB_SDAI16 =        106;
1698 enum R_PPC_EMB_SDA2I16 =       107;
1699 enum R_PPC_EMB_SDA2REL =       108;
1700 enum R_PPC_EMB_SDA21 =         109;
1701 enum R_PPC_EMB_MRKREF =        110;
1702 enum R_PPC_EMB_RELSEC16 =      111;
1703 enum R_PPC_EMB_RELST_LO =      112;
1704 enum R_PPC_EMB_RELST_HI =      113;
1705 enum R_PPC_EMB_RELST_HA =      114;
1706 enum R_PPC_EMB_BIT_FLD =       115;
1707 enum R_PPC_EMB_RELSDA =        116;
1708 enum R_PPC_DIAB_SDA21_LO =     180;
1709 enum R_PPC_DIAB_SDA21_HI =     181;
1710 enum R_PPC_DIAB_SDA21_HA =     182;
1711 enum R_PPC_DIAB_RELSDA_LO =    183;
1712 enum R_PPC_DIAB_RELSDA_HI =    184;
1713 enum R_PPC_DIAB_RELSDA_HA =    185;
1714 enum R_PPC_IRELATIVE =         248;
1715 enum R_PPC_REL16 =             249;
1716 enum R_PPC_REL16_LO =          250;
1717 enum R_PPC_REL16_HI =          251;
1718 enum R_PPC_REL16_HA =          252;
1719 enum R_PPC_TOC16 =             255;
1720 enum DT_PPC_GOT =              (DT_LOPROC + 0);
1721 enum DT_PPC_NUM =              1;
1722 enum R_PPC64_NONE =            R_PPC_NONE;
1723 enum R_PPC64_ADDR32 =          R_PPC_ADDR32;
1724 enum R_PPC64_ADDR24 =          R_PPC_ADDR24;
1725 enum R_PPC64_ADDR16 =          R_PPC_ADDR16;
1726 enum R_PPC64_ADDR16_LO =       R_PPC_ADDR16_LO;
1727 enum R_PPC64_ADDR16_HI =       R_PPC_ADDR16_HI;
1728 enum R_PPC64_ADDR16_HA =       R_PPC_ADDR16_HA;
1729 enum R_PPC64_ADDR14 =          R_PPC_ADDR14;
1730 enum R_PPC64_ADDR14_BRTAKEN =  R_PPC_ADDR14_BRTAKEN;
1731 enum R_PPC64_ADDR14_BRNTAKEN = R_PPC_ADDR14_BRNTAKEN;
1732 enum R_PPC64_REL24 =           R_PPC_REL24;
1733 enum R_PPC64_REL14 =           R_PPC_REL14;
1734 enum R_PPC64_REL14_BRTAKEN =   R_PPC_REL14_BRTAKEN;
1735 enum R_PPC64_REL14_BRNTAKEN =  R_PPC_REL14_BRNTAKEN;
1736 enum R_PPC64_GOT16 =           R_PPC_GOT16;
1737 enum R_PPC64_GOT16_LO =        R_PPC_GOT16_LO;
1738 enum R_PPC64_GOT16_HI =        R_PPC_GOT16_HI;
1739 enum R_PPC64_GOT16_HA =        R_PPC_GOT16_HA;
1740 
1741 enum R_PPC64_COPY =            R_PPC_COPY;
1742 enum R_PPC64_GLOB_DAT =        R_PPC_GLOB_DAT;
1743 enum R_PPC64_JMP_SLOT =        R_PPC_JMP_SLOT;
1744 enum R_PPC64_RELATIVE =        R_PPC_RELATIVE;
1745 
1746 enum R_PPC64_UADDR32 =         R_PPC_UADDR32;
1747 enum R_PPC64_UADDR16 =         R_PPC_UADDR16;
1748 enum R_PPC64_REL32 =           R_PPC_REL32;
1749 enum R_PPC64_PLT32 =           R_PPC_PLT32;
1750 enum R_PPC64_PLTREL32 =        R_PPC_PLTREL32;
1751 enum R_PPC64_PLT16_LO =        R_PPC_PLT16_LO;
1752 enum R_PPC64_PLT16_HI =        R_PPC_PLT16_HI;
1753 enum R_PPC64_PLT16_HA =        R_PPC_PLT16_HA;
1754 
1755 enum R_PPC64_SECTOFF =         R_PPC_SECTOFF;
1756 enum R_PPC64_SECTOFF_LO =      R_PPC_SECTOFF_LO;
1757 enum R_PPC64_SECTOFF_HI =      R_PPC_SECTOFF_HI;
1758 enum R_PPC64_SECTOFF_HA =      R_PPC_SECTOFF_HA;
1759 enum R_PPC64_ADDR30 =          37;
1760 enum R_PPC64_ADDR64 =          38;
1761 enum R_PPC64_ADDR16_HIGHER =   39;
1762 enum R_PPC64_ADDR16_HIGHERA =  40;
1763 enum R_PPC64_ADDR16_HIGHEST =  41;
1764 enum R_PPC64_ADDR16_HIGHESTA = 42;
1765 enum R_PPC64_UADDR64 =         43;
1766 enum R_PPC64_REL64 =           44;
1767 enum R_PPC64_PLT64 =           45;
1768 enum R_PPC64_PLTREL64 =        46;
1769 enum R_PPC64_TOC16 =           47;
1770 enum R_PPC64_TOC16_LO =        48;
1771 enum R_PPC64_TOC16_HI =        49;
1772 enum R_PPC64_TOC16_HA =        50;
1773 enum R_PPC64_TOC =             51;
1774 enum R_PPC64_PLTGOT16 =        52;
1775 enum R_PPC64_PLTGOT16_LO =     53;
1776 enum R_PPC64_PLTGOT16_HI =     54;
1777 enum R_PPC64_PLTGOT16_HA =     55;
1778 
1779 enum R_PPC64_ADDR16_DS =       56;
1780 enum R_PPC64_ADDR16_LO_DS =    57;
1781 enum R_PPC64_GOT16_DS =        58;
1782 enum R_PPC64_GOT16_LO_DS =     59;
1783 enum R_PPC64_PLT16_LO_DS =     60;
1784 enum R_PPC64_SECTOFF_DS =      61;
1785 enum R_PPC64_SECTOFF_LO_DS =   62;
1786 enum R_PPC64_TOC16_DS =        63;
1787 enum R_PPC64_TOC16_LO_DS =     64;
1788 enum R_PPC64_PLTGOT16_DS =     65;
1789 enum R_PPC64_PLTGOT16_LO_DS =  66;
1790 enum R_PPC64_TLS =             67;
1791 enum R_PPC64_DTPMOD64 =        68;
1792 enum R_PPC64_TPREL16 =         69;
1793 enum R_PPC64_TPREL16_LO =      70;
1794 enum R_PPC64_TPREL16_HI =      71;
1795 enum R_PPC64_TPREL16_HA =      72;
1796 enum R_PPC64_TPREL64 =         73;
1797 enum R_PPC64_DTPREL16 =        74;
1798 enum R_PPC64_DTPREL16_LO =     75;
1799 enum R_PPC64_DTPREL16_HI =     76;
1800 enum R_PPC64_DTPREL16_HA =     77;
1801 enum R_PPC64_DTPREL64 =        78;
1802 enum R_PPC64_GOT_TLSGD16 =     79;
1803 enum R_PPC64_GOT_TLSGD16_LO =  80;
1804 enum R_PPC64_GOT_TLSGD16_HI =  81;
1805 enum R_PPC64_GOT_TLSGD16_HA =  82;
1806 enum R_PPC64_GOT_TLSLD16 =     83;
1807 enum R_PPC64_GOT_TLSLD16_LO =  84;
1808 enum R_PPC64_GOT_TLSLD16_HI =  85;
1809 enum R_PPC64_GOT_TLSLD16_HA =  86;
1810 enum R_PPC64_GOT_TPREL16_DS =  87;
1811 enum R_PPC64_GOT_TPREL16_LO_DS = 88;
1812 enum R_PPC64_GOT_TPREL16_HI =  89;
1813 enum R_PPC64_GOT_TPREL16_HA =  90;
1814 enum R_PPC64_GOT_DTPREL16_DS = 91;
1815 enum R_PPC64_GOT_DTPREL16_LO_DS = 92;
1816 enum R_PPC64_GOT_DTPREL16_HI = 93;
1817 enum R_PPC64_GOT_DTPREL16_HA = 94;
1818 enum R_PPC64_TPREL16_DS =      95;
1819 enum R_PPC64_TPREL16_LO_DS =   96;
1820 enum R_PPC64_TPREL16_HIGHER =  97;
1821 enum R_PPC64_TPREL16_HIGHERA = 98;
1822 enum R_PPC64_TPREL16_HIGHEST = 99;
1823 enum R_PPC64_TPREL16_HIGHESTA = 100;
1824 enum R_PPC64_DTPREL16_DS =     101;
1825 enum R_PPC64_DTPREL16_LO_DS =  102;
1826 enum R_PPC64_DTPREL16_HIGHER = 103;
1827 enum R_PPC64_DTPREL16_HIGHERA = 104;
1828 enum R_PPC64_DTPREL16_HIGHEST = 105;
1829 enum R_PPC64_DTPREL16_HIGHESTA = 106;
1830 enum R_PPC64_JMP_IREL =        247;
1831 enum R_PPC64_IRELATIVE =       248;
1832 enum R_PPC64_REL16 =           249;
1833 enum R_PPC64_REL16_LO =        250;
1834 enum R_PPC64_REL16_HI =        251;
1835 enum R_PPC64_REL16_HA =        252;
1836 enum DT_PPC64_GLINK =  (DT_LOPROC + 0);
1837 enum DT_PPC64_OPD =    (DT_LOPROC + 1);
1838 enum DT_PPC64_OPDSZ =  (DT_LOPROC + 2);
1839 enum DT_PPC64_NUM =    3;
1840 enum EF_ARM_RELEXEC =          0x01;
1841 enum EF_ARM_HASENTRY =         0x02;
1842 enum EF_ARM_INTERWORK =        0x04;
1843 enum EF_ARM_APCS_26 =          0x08;
1844 enum EF_ARM_APCS_FLOAT =       0x10;
1845 enum EF_ARM_PIC =              0x20;
1846 enum EF_ARM_ALIGN8 =           0x40;
1847 enum EF_ARM_NEW_ABI =          0x80;
1848 enum EF_ARM_OLD_ABI =          0x100;
1849 enum EF_ARM_SOFT_FLOAT =       0x200;
1850 enum EF_ARM_VFP_FLOAT =        0x400;
1851 enum EF_ARM_MAVERICK_FLOAT =   0x800;
1852 
1853 enum EF_ARM_ABI_FLOAT_SOFT =   0x200;
1854 enum EF_ARM_ABI_FLOAT_HARD =   0x400;
1855 enum EF_ARM_SYMSARESORTED =    0x04;
1856 enum EF_ARM_DYNSYMSUSESEGIDX = 0x08;
1857 enum EF_ARM_MAPSYMSFIRST =     0x10;
1858 enum EF_ARM_EABIMASK =         0XFF000000;
1859 enum EF_ARM_BE8 =          0x00800000;
1860 enum EF_ARM_LE8 =          0x00400000;
1861 
EF_ARM_EABI_VERSION(F)1862 extern (D) auto EF_ARM_EABI_VERSION(F)(F flags) { return flags & EF_ARM_EABIMASK; }
1863 enum EF_ARM_EABI_UNKNOWN =     0x00000000;
1864 enum EF_ARM_EABI_VER1 =        0x01000000;
1865 enum EF_ARM_EABI_VER2 =        0x02000000;
1866 enum EF_ARM_EABI_VER3 =        0x03000000;
1867 enum EF_ARM_EABI_VER4 =        0x04000000;
1868 enum EF_ARM_EABI_VER5 =        0x05000000;
1869 enum STT_ARM_TFUNC =           STT_LOPROC;
1870 enum STT_ARM_16BIT =           STT_HIPROC;
1871 enum SHF_ARM_ENTRYSECT =       0x10000000;
1872 enum SHF_ARM_COMDEF =          0x80000000;
1873 enum PF_ARM_SB =               0x10000000;
1874 enum PF_ARM_PI =               0x20000000;
1875 enum PF_ARM_ABS =              0x40000000;
1876 enum PT_ARM_EXIDX =            (PT_LOPROC + 1);
1877 enum SHT_ARM_EXIDX =           (SHT_LOPROC + 1);
1878 enum SHT_ARM_PREEMPTMAP =      (SHT_LOPROC + 2);
1879 enum SHT_ARM_ATTRIBUTES =      (SHT_LOPROC + 3);
1880 
1881 enum R_AARCH64_NONE =            0;
1882 enum R_AARCH64_ABS64 =         257;
1883 enum R_AARCH64_ABS32 =         258;
1884 enum R_AARCH64_COPY =         1024;
1885 enum R_AARCH64_GLOB_DAT =     1025;
1886 enum R_AARCH64_JUMP_SLOT =    1026;
1887 enum R_AARCH64_RELATIVE =     1027;
1888 enum R_AARCH64_TLS_DTPMOD64 = 1028;
1889 enum R_AARCH64_TLS_DTPREL64 = 1029;
1890 enum R_AARCH64_TLS_TPREL64 =  1030;
1891 enum R_AARCH64_TLSDESC =      1031;
1892 
1893 enum R_ARM_NONE =              0;
1894 enum R_ARM_PC24 =              1;
1895 enum R_ARM_ABS32 =             2;
1896 enum R_ARM_REL32 =             3;
1897 enum R_ARM_PC13 =              4;
1898 enum R_ARM_ABS16 =             5;
1899 enum R_ARM_ABS12 =             6;
1900 enum R_ARM_THM_ABS5 =          7;
1901 enum R_ARM_ABS8 =              8;
1902 enum R_ARM_SBREL32 =           9;
1903 enum R_ARM_THM_PC22 =          10;
1904 enum R_ARM_THM_PC8 =           11;
1905 enum R_ARM_AMP_VCALL9 =        12;
1906 enum R_ARM_SWI24 =             13;
1907 enum R_ARM_TLS_DESC =          13;
1908 enum R_ARM_THM_SWI8 =          14;
1909 enum R_ARM_XPC25 =             15;
1910 enum R_ARM_THM_XPC22 =         16;
1911 enum R_ARM_TLS_DTPMOD32 =      17;
1912 enum R_ARM_TLS_DTPOFF32 =      18;
1913 enum R_ARM_TLS_TPOFF32 =       19;
1914 enum R_ARM_COPY =              20;
1915 enum R_ARM_GLOB_DAT =          21;
1916 enum R_ARM_JUMP_SLOT =         22;
1917 enum R_ARM_RELATIVE =          23;
1918 enum R_ARM_GOTOFF =            24;
1919 enum R_ARM_GOTPC =             25;
1920 enum R_ARM_GOT32 =             26;
1921 enum R_ARM_PLT32 =             27;
1922 enum R_ARM_ALU_PCREL_7_0 =     32;
1923 enum R_ARM_ALU_PCREL_15_8 =    33;
1924 enum R_ARM_ALU_PCREL_23_15 =   34;
1925 enum R_ARM_LDR_SBREL_11_0 =    35;
1926 enum R_ARM_ALU_SBREL_19_12 =   36;
1927 enum R_ARM_ALU_SBREL_27_20 =   37;
1928 enum R_ARM_TLS_GOTDESC =       90;
1929 enum R_ARM_TLS_CALL =          91;
1930 enum R_ARM_TLS_DESCSEQ =       92;
1931 enum R_ARM_THM_TLS_CALL =      93;
1932 enum R_ARM_GNU_VTENTRY =       100;
1933 enum R_ARM_GNU_VTINHERIT =     101;
1934 enum R_ARM_THM_PC11 =          102;
1935 enum R_ARM_THM_PC9 =           103;
1936 enum R_ARM_TLS_GD32 =          104;
1937 enum R_ARM_TLS_LDM32 =         105;
1938 enum R_ARM_TLS_LDO32 =         106;
1939 enum R_ARM_TLS_IE32 =          107;
1940 enum R_ARM_TLS_LE32 =          108;
1941 enum R_ARM_THM_TLS_DESCSEQ =   129;
1942 enum R_ARM_IRELATIVE =         160;
1943 enum R_ARM_RXPC25 =            249;
1944 enum R_ARM_RSBREL32 =          250;
1945 enum R_ARM_THM_RPC22 =         251;
1946 enum R_ARM_RREL32 =            252;
1947 enum R_ARM_RABS22 =            253;
1948 enum R_ARM_RPC24 =             254;
1949 enum R_ARM_RBASE =             255;
1950 enum R_ARM_NUM =               256;
1951 enum EF_IA_64_MASKOS =         0x0000000f;
1952 enum EF_IA_64_ABI64 =          0x00000010;
1953 enum EF_IA_64_ARCH =           0xff000000;
1954 enum PT_IA_64_ARCHEXT =        (PT_LOPROC + 0);
1955 enum PT_IA_64_UNWIND =         (PT_LOPROC + 1);
1956 enum PT_IA_64_HP_OPT_ANOT =    (PT_LOOS + 0x12);
1957 enum PT_IA_64_HP_HSL_ANOT =    (PT_LOOS + 0x13);
1958 enum PT_IA_64_HP_STACK =       (PT_LOOS + 0x14);
1959 enum PF_IA_64_NORECOV =        0x80000000;
1960 enum SHT_IA_64_EXT =           (SHT_LOPROC + 0);
1961 enum SHT_IA_64_UNWIND =        (SHT_LOPROC + 1);
1962 enum SHF_IA_64_SHORT =         0x10000000;
1963 enum SHF_IA_64_NORECOV =       0x20000000;
1964 enum DT_IA_64_PLT_RESERVE =    (DT_LOPROC + 0);
1965 enum DT_IA_64_NUM =            1;
1966 enum R_IA64_NONE =             0x00;
1967 enum R_IA64_IMM14 =            0x21;
1968 enum R_IA64_IMM22 =            0x22;
1969 enum R_IA64_IMM64 =            0x23;
1970 enum R_IA64_DIR32MSB =         0x24;
1971 enum R_IA64_DIR32LSB =         0x25;
1972 enum R_IA64_DIR64MSB =         0x26;
1973 enum R_IA64_DIR64LSB =         0x27;
1974 enum R_IA64_GPREL22 =          0x2a;
1975 enum R_IA64_GPREL64I =         0x2b;
1976 enum R_IA64_GPREL32MSB =       0x2c;
1977 enum R_IA64_GPREL32LSB =       0x2d;
1978 enum R_IA64_GPREL64MSB =       0x2e;
1979 enum R_IA64_GPREL64LSB =       0x2f;
1980 enum R_IA64_LTOFF22 =          0x32;
1981 enum R_IA64_LTOFF64I =         0x33;
1982 enum R_IA64_PLTOFF22 =         0x3a;
1983 enum R_IA64_PLTOFF64I =        0x3b;
1984 enum R_IA64_PLTOFF64MSB =      0x3e;
1985 enum R_IA64_PLTOFF64LSB =      0x3f;
1986 enum R_IA64_FPTR64I =          0x43;
1987 enum R_IA64_FPTR32MSB =        0x44;
1988 enum R_IA64_FPTR32LSB =        0x45;
1989 enum R_IA64_FPTR64MSB =        0x46;
1990 enum R_IA64_FPTR64LSB =        0x47;
1991 enum R_IA64_PCREL60B =         0x48;
1992 enum R_IA64_PCREL21B =         0x49;
1993 enum R_IA64_PCREL21M =         0x4a;
1994 enum R_IA64_PCREL21F =         0x4b;
1995 enum R_IA64_PCREL32MSB =       0x4c;
1996 enum R_IA64_PCREL32LSB =       0x4d;
1997 enum R_IA64_PCREL64MSB =       0x4e;
1998 enum R_IA64_PCREL64LSB =       0x4f;
1999 enum R_IA64_LTOFF_FPTR22 =     0x52;
2000 enum R_IA64_LTOFF_FPTR64I =    0x53;
2001 enum R_IA64_LTOFF_FPTR32MSB =  0x54;
2002 enum R_IA64_LTOFF_FPTR32LSB =  0x55;
2003 enum R_IA64_LTOFF_FPTR64MSB =  0x56;
2004 enum R_IA64_LTOFF_FPTR64LSB =  0x57;
2005 enum R_IA64_SEGREL32MSB =      0x5c;
2006 enum R_IA64_SEGREL32LSB =      0x5d;
2007 enum R_IA64_SEGREL64MSB =      0x5e;
2008 enum R_IA64_SEGREL64LSB =      0x5f;
2009 enum R_IA64_SECREL32MSB =      0x64;
2010 enum R_IA64_SECREL32LSB =      0x65;
2011 enum R_IA64_SECREL64MSB =      0x66;
2012 enum R_IA64_SECREL64LSB =      0x67;
2013 enum R_IA64_REL32MSB =         0x6c;
2014 enum R_IA64_REL32LSB =         0x6d;
2015 enum R_IA64_REL64MSB =         0x6e;
2016 enum R_IA64_REL64LSB =         0x6f;
2017 enum R_IA64_LTV32MSB =         0x74;
2018 enum R_IA64_LTV32LSB =         0x75;
2019 enum R_IA64_LTV64MSB =         0x76;
2020 enum R_IA64_LTV64LSB =         0x77;
2021 enum R_IA64_PCREL21BI =        0x79;
2022 enum R_IA64_PCREL22 =          0x7a;
2023 enum R_IA64_PCREL64I =         0x7b;
2024 enum R_IA64_IPLTMSB =          0x80;
2025 enum R_IA64_IPLTLSB =          0x81;
2026 enum R_IA64_COPY =             0x84;
2027 enum R_IA64_SUB =              0x85;
2028 enum R_IA64_LTOFF22X =         0x86;
2029 enum R_IA64_LDXMOV =           0x87;
2030 enum R_IA64_TPREL14 =          0x91;
2031 enum R_IA64_TPREL22 =          0x92;
2032 enum R_IA64_TPREL64I =         0x93;
2033 enum R_IA64_TPREL64MSB =       0x96;
2034 enum R_IA64_TPREL64LSB =       0x97;
2035 enum R_IA64_LTOFF_TPREL22 =    0x9a;
2036 enum R_IA64_DTPMOD64MSB =      0xa6;
2037 enum R_IA64_DTPMOD64LSB =      0xa7;
2038 enum R_IA64_LTOFF_DTPMOD22 =   0xaa;
2039 enum R_IA64_DTPREL14 =         0xb1;
2040 enum R_IA64_DTPREL22 =         0xb2;
2041 enum R_IA64_DTPREL64I =        0xb3;
2042 enum R_IA64_DTPREL32MSB =      0xb4;
2043 enum R_IA64_DTPREL32LSB =      0xb5;
2044 enum R_IA64_DTPREL64MSB =      0xb6;
2045 enum R_IA64_DTPREL64LSB =      0xb7;
2046 enum R_IA64_LTOFF_DTPREL22 =   0xba;
2047 enum EF_SH_MACH_MASK =         0x1f;
2048 enum EF_SH_UNKNOWN =           0x0;
2049 enum EF_SH1 =                  0x1;
2050 enum EF_SH2 =                  0x2;
2051 enum EF_SH3 =                  0x3;
2052 enum EF_SH_DSP =               0x4;
2053 enum EF_SH3_DSP =              0x5;
2054 enum EF_SH4AL_DSP =            0x6;
2055 enum EF_SH3E =                 0x8;
2056 enum EF_SH4 =                  0x9;
2057 enum EF_SH2E =                 0xb;
2058 enum EF_SH4A =                 0xc;
2059 enum EF_SH2A =                 0xd;
2060 enum EF_SH4_NOFPU =            0x10;
2061 enum EF_SH4A_NOFPU =           0x11;
2062 enum EF_SH4_NOMMU_NOFPU =      0x12;
2063 enum EF_SH2A_NOFPU =           0x13;
2064 enum EF_SH3_NOMMU =            0x14;
2065 enum EF_SH2A_SH4_NOFPU =       0x15;
2066 enum EF_SH2A_SH3_NOFPU =       0x16;
2067 enum EF_SH2A_SH4 =             0x17;
2068 enum EF_SH2A_SH3E =            0x18;
2069 enum R_SH_NONE =               0;
2070 enum R_SH_DIR32 =              1;
2071 enum R_SH_REL32 =              2;
2072 enum R_SH_DIR8WPN =            3;
2073 enum R_SH_IND12W =             4;
2074 enum R_SH_DIR8WPL =            5;
2075 enum R_SH_DIR8WPZ =            6;
2076 enum R_SH_DIR8BP =             7;
2077 enum R_SH_DIR8W =              8;
2078 enum R_SH_DIR8L =              9;
2079 enum R_SH_SWITCH16 =           25;
2080 enum R_SH_SWITCH32 =           26;
2081 enum R_SH_USES =               27;
2082 enum R_SH_COUNT =              28;
2083 enum R_SH_ALIGN =              29;
2084 enum R_SH_CODE =               30;
2085 enum R_SH_DATA =               31;
2086 enum R_SH_LABEL =              32;
2087 enum R_SH_SWITCH8 =            33;
2088 enum R_SH_GNU_VTINHERIT =      34;
2089 enum R_SH_GNU_VTENTRY =        35;
2090 enum R_SH_TLS_GD_32 =          144;
2091 enum R_SH_TLS_LD_32 =          145;
2092 enum R_SH_TLS_LDO_32 =         146;
2093 enum R_SH_TLS_IE_32 =          147;
2094 enum R_SH_TLS_LE_32 =          148;
2095 enum R_SH_TLS_DTPMOD32 =       149;
2096 enum R_SH_TLS_DTPOFF32 =       150;
2097 enum R_SH_TLS_TPOFF32 =        151;
2098 enum R_SH_GOT32 =              160;
2099 enum R_SH_PLT32 =              161;
2100 enum R_SH_COPY =               162;
2101 enum R_SH_GLOB_DAT =           163;
2102 enum R_SH_JMP_SLOT =           164;
2103 enum R_SH_RELATIVE =           165;
2104 enum R_SH_GOTOFF =             166;
2105 enum R_SH_GOTPC =              167;
2106 enum R_SH_NUM =                256;
2107 
2108 enum EF_S390_HIGH_GPRS =    0x00000001;
2109 
2110 enum R_390_NONE =              0;
2111 enum R_390_8 =                 1;
2112 enum R_390_12 =                2;
2113 enum R_390_16 =                3;
2114 enum R_390_32 =                4;
2115 enum R_390_PC32 =              5;
2116 enum R_390_GOT12 =             6;
2117 enum R_390_GOT32 =             7;
2118 enum R_390_PLT32 =             8;
2119 enum R_390_COPY =              9;
2120 enum R_390_GLOB_DAT =          10;
2121 enum R_390_JMP_SLOT =          11;
2122 enum R_390_RELATIVE =          12;
2123 enum R_390_GOTOFF32 =          13;
2124 enum R_390_GOTPC =             14;
2125 enum R_390_GOT16 =             15;
2126 enum R_390_PC16 =              16;
2127 enum R_390_PC16DBL =           17;
2128 enum R_390_PLT16DBL =          18;
2129 enum R_390_PC32DBL =           19;
2130 enum R_390_PLT32DBL =          20;
2131 enum R_390_GOTPCDBL =          21;
2132 enum R_390_64 =                22;
2133 enum R_390_PC64 =              23;
2134 enum R_390_GOT64 =             24;
2135 enum R_390_PLT64 =             25;
2136 enum R_390_GOTENT =            26;
2137 enum R_390_GOTOFF16 =          27;
2138 enum R_390_GOTOFF64 =          28;
2139 enum R_390_GOTPLT12 =          29;
2140 enum R_390_GOTPLT16 =          30;
2141 enum R_390_GOTPLT32 =          31;
2142 enum R_390_GOTPLT64 =          32;
2143 enum R_390_GOTPLTENT =         33;
2144 enum R_390_PLTOFF16 =          34;
2145 enum R_390_PLTOFF32 =          35;
2146 enum R_390_PLTOFF64 =          36;
2147 enum R_390_TLS_LOAD =          37;
2148 enum R_390_TLS_GDCALL =        38;
2149 enum R_390_TLS_LDCALL =        39;
2150 enum R_390_TLS_GD32 =          40;
2151 enum R_390_TLS_GD64 =          41;
2152 enum R_390_TLS_GOTIE12 =       42;
2153 enum R_390_TLS_GOTIE32 =       43;
2154 enum R_390_TLS_GOTIE64 =       44;
2155 enum R_390_TLS_LDM32 =         45;
2156 enum R_390_TLS_LDM64 =         46;
2157 enum R_390_TLS_IE32 =          47;
2158 enum R_390_TLS_IE64 =          48;
2159 enum R_390_TLS_IEENT =         49;
2160 enum R_390_TLS_LE32 =          50;
2161 enum R_390_TLS_LE64 =          51;
2162 enum R_390_TLS_LDO32 =         52;
2163 enum R_390_TLS_LDO64 =         53;
2164 enum R_390_TLS_DTPMOD =        54;
2165 enum R_390_TLS_DTPOFF =        55;
2166 enum R_390_TLS_TPOFF =         56;
2167 enum R_390_20 =                57;
2168 enum R_390_GOT20 =             58;
2169 enum R_390_GOTPLT20 =          59;
2170 enum R_390_TLS_GOTIE20 =       60;
2171 enum R_390_IRELATIVE =         61;
2172 enum R_390_NUM =               62;
2173 enum R_CRIS_NONE =             0;
2174 enum R_CRIS_8 =                1;
2175 enum R_CRIS_16 =               2;
2176 enum R_CRIS_32 =               3;
2177 enum R_CRIS_8_PCREL =          4;
2178 enum R_CRIS_16_PCREL =         5;
2179 enum R_CRIS_32_PCREL =         6;
2180 enum R_CRIS_GNU_VTINHERIT =    7;
2181 enum R_CRIS_GNU_VTENTRY =      8;
2182 enum R_CRIS_COPY =             9;
2183 enum R_CRIS_GLOB_DAT =         10;
2184 enum R_CRIS_JUMP_SLOT =        11;
2185 enum R_CRIS_RELATIVE =         12;
2186 enum R_CRIS_16_GOT =           13;
2187 enum R_CRIS_32_GOT =           14;
2188 enum R_CRIS_16_GOTPLT =        15;
2189 enum R_CRIS_32_GOTPLT =        16;
2190 enum R_CRIS_32_GOTREL =        17;
2191 enum R_CRIS_32_PLT_GOTREL =    18;
2192 enum R_CRIS_32_PLT_PCREL =     19;
2193 
2194 enum R_CRIS_NUM =              20;
2195 enum R_X86_64_NONE =           0;
2196 enum R_X86_64_64 =             1;
2197 enum R_X86_64_PC32 =           2;
2198 enum R_X86_64_GOT32 =          3;
2199 enum R_X86_64_PLT32 =          4;
2200 enum R_X86_64_COPY =           5;
2201 enum R_X86_64_GLOB_DAT =       6;
2202 enum R_X86_64_JUMP_SLOT =      7;
2203 enum R_X86_64_RELATIVE =       8;
2204 enum R_X86_64_GOTPCREL =       9;
2205 enum R_X86_64_32 =             10;
2206 enum R_X86_64_32S =            11;
2207 enum R_X86_64_16 =             12;
2208 enum R_X86_64_PC16 =           13;
2209 enum R_X86_64_8 =              14;
2210 enum R_X86_64_PC8 =            15;
2211 enum R_X86_64_DTPMOD64 =       16;
2212 enum R_X86_64_DTPOFF64 =       17;
2213 enum R_X86_64_TPOFF64 =        18;
2214 enum R_X86_64_TLSGD =          19;
2215 enum R_X86_64_TLSLD =          20;
2216 enum R_X86_64_DTPOFF32 =       21;
2217 enum R_X86_64_GOTTPOFF =       22;
2218 enum R_X86_64_TPOFF32 =        23;
2219 enum R_X86_64_PC64 =           24;
2220 enum R_X86_64_GOTOFF64 =       25;
2221 enum R_X86_64_GOTPC32 =        26;
2222 enum R_X86_64_GOT64 =          27;
2223 enum R_X86_64_GOTPCREL64 =     28;
2224 enum R_X86_64_GOTPC64 =        29;
2225 enum R_X86_64_GOTPLT64 =       30;
2226 enum R_X86_64_PLTOFF64 =       31;
2227 enum R_X86_64_SIZE32 =         32;
2228 enum R_X86_64_SIZE64 =         33;
2229 enum R_X86_64_GOTPC32_TLSDESC = 34;
2230 enum R_X86_64_TLSDESC_CALL =   35;
2231 enum R_X86_64_TLSDESC =        36;
2232 enum R_X86_64_IRELATIVE =      37;
2233 enum R_X86_64_RELATIVE64 =     38;
2234 
2235 enum R_X86_64_NUM =            39;
2236 enum R_MN10300_NONE =          0;
2237 enum R_MN10300_32 =            1;
2238 enum R_MN10300_16 =            2;
2239 enum R_MN10300_8 =             3;
2240 enum R_MN10300_PCREL32 =       4;
2241 enum R_MN10300_PCREL16 =       5;
2242 enum R_MN10300_PCREL8 =        6;
2243 enum R_MN10300_GNU_VTINHERIT = 7;
2244 enum R_MN10300_GNU_VTENTRY =   8;
2245 enum R_MN10300_24 =            9;
2246 enum R_MN10300_GOTPC32 =       10;
2247 enum R_MN10300_GOTPC16 =       11;
2248 enum R_MN10300_GOTOFF32 =      12;
2249 enum R_MN10300_GOTOFF24 =      13;
2250 enum R_MN10300_GOTOFF16 =      14;
2251 enum R_MN10300_PLT32 =         15;
2252 enum R_MN10300_PLT16 =         16;
2253 enum R_MN10300_GOT32 =         17;
2254 enum R_MN10300_GOT24 =         18;
2255 enum R_MN10300_GOT16 =         19;
2256 enum R_MN10300_COPY =          20;
2257 enum R_MN10300_GLOB_DAT =      21;
2258 enum R_MN10300_JMP_SLOT =      22;
2259 enum R_MN10300_RELATIVE =      23;
2260 enum R_MN10300_TLS_GD =        24;
2261 enum R_MN10300_TLS_LD =        25;
2262 enum R_MN10300_TLS_LDO =       26;
2263 enum R_MN10300_TLS_GOTIE =     27;
2264 enum R_MN10300_TLS_IE =        28;
2265 enum R_MN10300_TLS_LE =        29;
2266 enum R_MN10300_TLS_DTPMOD =    30;
2267 enum R_MN10300_TLS_DTPOFF =    31;
2268 enum R_MN10300_TLS_TPOFF =     32;
2269 enum R_MN10300_SYM_DIFF =      33;
2270 enum R_MN10300_ALIGN =         34;
2271 enum R_MN10300_NUM =           35;
2272 enum R_M32R_NONE =             0;
2273 enum R_M32R_16 =               1;
2274 enum R_M32R_32 =               2;
2275 enum R_M32R_24 =               3;
2276 enum R_M32R_10_PCREL =         4;
2277 enum R_M32R_18_PCREL =         5;
2278 enum R_M32R_26_PCREL =         6;
2279 enum R_M32R_HI16_ULO =         7;
2280 enum R_M32R_HI16_SLO =         8;
2281 enum R_M32R_LO16 =             9;
2282 enum R_M32R_SDA16 =            10;
2283 enum R_M32R_GNU_VTINHERIT =    11;
2284 enum R_M32R_GNU_VTENTRY =      12;
2285 enum R_M32R_16_RELA =          33;
2286 enum R_M32R_32_RELA =          34;
2287 enum R_M32R_24_RELA =          35;
2288 enum R_M32R_10_PCREL_RELA =    36;
2289 enum R_M32R_18_PCREL_RELA =    37;
2290 enum R_M32R_26_PCREL_RELA =    38;
2291 enum R_M32R_HI16_ULO_RELA =    39;
2292 enum R_M32R_HI16_SLO_RELA =    40;
2293 enum R_M32R_LO16_RELA =        41;
2294 enum R_M32R_SDA16_RELA =       42;
2295 enum R_M32R_RELA_GNU_VTINHERIT =       43;
2296 enum R_M32R_RELA_GNU_VTENTRY = 44;
2297 enum R_M32R_REL32 =            45;
2298 
2299 enum R_M32R_GOT24 =            48;
2300 enum R_M32R_26_PLTREL =        49;
2301 enum R_M32R_COPY =             50;
2302 enum R_M32R_GLOB_DAT =         51;
2303 enum R_M32R_JMP_SLOT =         52;
2304 enum R_M32R_RELATIVE =         53;
2305 enum R_M32R_GOTOFF =           54;
2306 enum R_M32R_GOTPC24 =          55;
2307 enum R_M32R_GOT16_HI_ULO =     56;
2308 enum R_M32R_GOT16_HI_SLO =     57;
2309 enum R_M32R_GOT16_LO =         58;
2310 enum R_M32R_GOTPC_HI_ULO =     59;
2311 enum R_M32R_GOTPC_HI_SLO =     60;
2312 enum R_M32R_GOTPC_LO =         61;
2313 enum R_M32R_GOTOFF_HI_ULO =    62;
2314 enum R_M32R_GOTOFF_HI_SLO =    63;
2315 enum R_M32R_GOTOFF_LO =        64;
2316 enum R_M32R_NUM =              256;
2317 enum R_TILEPRO_NONE =          0;
2318 enum R_TILEPRO_32 =            1;
2319 enum R_TILEPRO_16 =            2;
2320 enum R_TILEPRO_8 =             3;
2321 enum R_TILEPRO_32_PCREL =      4;
2322 enum R_TILEPRO_16_PCREL =      5;
2323 enum R_TILEPRO_8_PCREL =       6;
2324 enum R_TILEPRO_LO16 =          7;
2325 enum R_TILEPRO_HI16 =          8;
2326 enum R_TILEPRO_HA16 =          9;
2327 enum R_TILEPRO_COPY =          10;
2328 enum R_TILEPRO_GLOB_DAT =      11;
2329 enum R_TILEPRO_JMP_SLOT =      12;
2330 enum R_TILEPRO_RELATIVE =      13;
2331 enum R_TILEPRO_BROFF_X1 =      14;
2332 enum R_TILEPRO_JOFFLONG_X1 =   15;
2333 enum R_TILEPRO_JOFFLONG_X1_PLT = 16;
2334 enum R_TILEPRO_IMM8_X0 =       17;
2335 enum R_TILEPRO_IMM8_Y0 =       18;
2336 enum R_TILEPRO_IMM8_X1 =       19;
2337 enum R_TILEPRO_IMM8_Y1 =       20;
2338 enum R_TILEPRO_MT_IMM15_X1 =   21;
2339 enum R_TILEPRO_MF_IMM15_X1 =   22;
2340 enum R_TILEPRO_IMM16_X0 =      23;
2341 enum R_TILEPRO_IMM16_X1 =      24;
2342 enum R_TILEPRO_IMM16_X0_LO =   25;
2343 enum R_TILEPRO_IMM16_X1_LO =   26;
2344 enum R_TILEPRO_IMM16_X0_HI =   27;
2345 enum R_TILEPRO_IMM16_X1_HI =   28;
2346 enum R_TILEPRO_IMM16_X0_HA =   29;
2347 enum R_TILEPRO_IMM16_X1_HA =   30;
2348 enum R_TILEPRO_IMM16_X0_PCREL = 31;
2349 enum R_TILEPRO_IMM16_X1_PCREL = 32;
2350 enum R_TILEPRO_IMM16_X0_LO_PCREL = 33;
2351 enum R_TILEPRO_IMM16_X1_LO_PCREL = 34;
2352 enum R_TILEPRO_IMM16_X0_HI_PCREL = 35;
2353 enum R_TILEPRO_IMM16_X1_HI_PCREL = 36;
2354 enum R_TILEPRO_IMM16_X0_HA_PCREL = 37;
2355 enum R_TILEPRO_IMM16_X1_HA_PCREL = 38;
2356 enum R_TILEPRO_IMM16_X0_GOT =  39;
2357 enum R_TILEPRO_IMM16_X1_GOT =  40;
2358 enum R_TILEPRO_IMM16_X0_GOT_LO = 41;
2359 enum R_TILEPRO_IMM16_X1_GOT_LO = 42;
2360 enum R_TILEPRO_IMM16_X0_GOT_HI = 43;
2361 enum R_TILEPRO_IMM16_X1_GOT_HI = 44;
2362 enum R_TILEPRO_IMM16_X0_GOT_HA = 45;
2363 enum R_TILEPRO_IMM16_X1_GOT_HA = 46;
2364 enum R_TILEPRO_MMSTART_X0 =    47;
2365 enum R_TILEPRO_MMEND_X0 =      48;
2366 enum R_TILEPRO_MMSTART_X1 =    49;
2367 enum R_TILEPRO_MMEND_X1 =      50;
2368 enum R_TILEPRO_SHAMT_X0 =      51;
2369 enum R_TILEPRO_SHAMT_X1 =      52;
2370 enum R_TILEPRO_SHAMT_Y0 =      53;
2371 enum R_TILEPRO_SHAMT_Y1 =      54;
2372 enum R_TILEPRO_DEST_IMM8_X1 =  55;
2373 enum R_TILEPRO_TLS_GD_CALL =   60;
2374 enum R_TILEPRO_IMM8_X0_TLS_GD_ADD = 61;
2375 enum R_TILEPRO_IMM8_X1_TLS_GD_ADD = 62;
2376 enum R_TILEPRO_IMM8_Y0_TLS_GD_ADD = 63;
2377 enum R_TILEPRO_IMM8_Y1_TLS_GD_ADD = 64;
2378 enum R_TILEPRO_TLS_IE_LOAD =   65;
2379 enum R_TILEPRO_IMM16_X0_TLS_GD = 66;
2380 enum R_TILEPRO_IMM16_X1_TLS_GD = 67;
2381 enum R_TILEPRO_IMM16_X0_TLS_GD_LO = 68;
2382 enum R_TILEPRO_IMM16_X1_TLS_GD_LO = 69;
2383 enum R_TILEPRO_IMM16_X0_TLS_GD_HI = 70;
2384 enum R_TILEPRO_IMM16_X1_TLS_GD_HI = 71;
2385 enum R_TILEPRO_IMM16_X0_TLS_GD_HA = 72;
2386 enum R_TILEPRO_IMM16_X1_TLS_GD_HA = 73;
2387 enum R_TILEPRO_IMM16_X0_TLS_IE = 74;
2388 enum R_TILEPRO_IMM16_X1_TLS_IE = 75;
2389 enum R_TILEPRO_IMM16_X0_TLS_IE_LO = 76;
2390 enum R_TILEPRO_IMM16_X1_TLS_IE_LO = 77;
2391 enum R_TILEPRO_IMM16_X0_TLS_IE_HI = 78;
2392 enum R_TILEPRO_IMM16_X1_TLS_IE_HI = 79;
2393 enum R_TILEPRO_IMM16_X0_TLS_IE_HA = 80;
2394 enum R_TILEPRO_IMM16_X1_TLS_IE_HA = 81;
2395 enum R_TILEPRO_TLS_DTPMOD32 =  82;
2396 enum R_TILEPRO_TLS_DTPOFF32 =  83;
2397 enum R_TILEPRO_TLS_TPOFF32 =   84;
2398 enum R_TILEPRO_IMM16_X0_TLS_LE = 85;
2399 enum R_TILEPRO_IMM16_X1_TLS_LE = 86;
2400 enum R_TILEPRO_IMM16_X0_TLS_LE_LO = 87;
2401 enum R_TILEPRO_IMM16_X1_TLS_LE_LO = 88;
2402 enum R_TILEPRO_IMM16_X0_TLS_LE_HI = 89;
2403 enum R_TILEPRO_IMM16_X1_TLS_LE_HI = 90;
2404 enum R_TILEPRO_IMM16_X0_TLS_LE_HA = 91;
2405 enum R_TILEPRO_IMM16_X1_TLS_LE_HA = 92;
2406 
2407 enum R_TILEPRO_GNU_VTINHERIT = 128;
2408 enum R_TILEPRO_GNU_VTENTRY =   129;
2409 
2410 enum R_TILEPRO_NUM =           130;
2411 enum R_TILEGX_NONE =           0;
2412 enum R_TILEGX_64 =             1;
2413 enum R_TILEGX_32 =             2;
2414 enum R_TILEGX_16 =             3;
2415 enum R_TILEGX_8 =              4;
2416 enum R_TILEGX_64_PCREL =       5;
2417 enum R_TILEGX_32_PCREL =       6;
2418 enum R_TILEGX_16_PCREL =       7;
2419 enum R_TILEGX_8_PCREL =        8;
2420 enum R_TILEGX_HW0 =            9;
2421 enum R_TILEGX_HW1 =            10;
2422 enum R_TILEGX_HW2 =            11;
2423 enum R_TILEGX_HW3 =            12;
2424 enum R_TILEGX_HW0_LAST =       13;
2425 enum R_TILEGX_HW1_LAST =       14;
2426 enum R_TILEGX_HW2_LAST =       15;
2427 enum R_TILEGX_COPY =           16;
2428 enum R_TILEGX_GLOB_DAT =       17;
2429 enum R_TILEGX_JMP_SLOT =       18;
2430 enum R_TILEGX_RELATIVE =       19;
2431 enum R_TILEGX_BROFF_X1 =       20;
2432 enum R_TILEGX_JUMPOFF_X1 =     21;
2433 enum R_TILEGX_JUMPOFF_X1_PLT = 22;
2434 enum R_TILEGX_IMM8_X0 =        23;
2435 enum R_TILEGX_IMM8_Y0 =        24;
2436 enum R_TILEGX_IMM8_X1 =        25;
2437 enum R_TILEGX_IMM8_Y1 =        26;
2438 enum R_TILEGX_DEST_IMM8_X1 =   27;
2439 enum R_TILEGX_MT_IMM14_X1 =    28;
2440 enum R_TILEGX_MF_IMM14_X1 =    29;
2441 enum R_TILEGX_MMSTART_X0 =     30;
2442 enum R_TILEGX_MMEND_X0 =       31;
2443 enum R_TILEGX_SHAMT_X0 =       32;
2444 enum R_TILEGX_SHAMT_X1 =       33;
2445 enum R_TILEGX_SHAMT_Y0 =       34;
2446 enum R_TILEGX_SHAMT_Y1 =       35;
2447 enum R_TILEGX_IMM16_X0_HW0 =   36;
2448 enum R_TILEGX_IMM16_X1_HW0 =   37;
2449 enum R_TILEGX_IMM16_X0_HW1 =   38;
2450 enum R_TILEGX_IMM16_X1_HW1 =   39;
2451 enum R_TILEGX_IMM16_X0_HW2 =   40;
2452 enum R_TILEGX_IMM16_X1_HW2 =   41;
2453 enum R_TILEGX_IMM16_X0_HW3 =   42;
2454 enum R_TILEGX_IMM16_X1_HW3 =   43;
2455 enum R_TILEGX_IMM16_X0_HW0_LAST = 44;
2456 enum R_TILEGX_IMM16_X1_HW0_LAST = 45;
2457 enum R_TILEGX_IMM16_X0_HW1_LAST = 46;
2458 enum R_TILEGX_IMM16_X1_HW1_LAST = 47;
2459 enum R_TILEGX_IMM16_X0_HW2_LAST = 48;
2460 enum R_TILEGX_IMM16_X1_HW2_LAST = 49;
2461 enum R_TILEGX_IMM16_X0_HW0_PCREL = 50;
2462 enum R_TILEGX_IMM16_X1_HW0_PCREL = 51;
2463 enum R_TILEGX_IMM16_X0_HW1_PCREL = 52;
2464 enum R_TILEGX_IMM16_X1_HW1_PCREL = 53;
2465 enum R_TILEGX_IMM16_X0_HW2_PCREL = 54;
2466 enum R_TILEGX_IMM16_X1_HW2_PCREL = 55;
2467 enum R_TILEGX_IMM16_X0_HW3_PCREL = 56;
2468 enum R_TILEGX_IMM16_X1_HW3_PCREL = 57;
2469 enum R_TILEGX_IMM16_X0_HW0_LAST_PCREL = 58;
2470 enum R_TILEGX_IMM16_X1_HW0_LAST_PCREL = 59;
2471 enum R_TILEGX_IMM16_X0_HW1_LAST_PCREL = 60;
2472 enum R_TILEGX_IMM16_X1_HW1_LAST_PCREL = 61;
2473 enum R_TILEGX_IMM16_X0_HW2_LAST_PCREL = 62;
2474 enum R_TILEGX_IMM16_X1_HW2_LAST_PCREL = 63;
2475 enum R_TILEGX_IMM16_X0_HW0_GOT = 64;
2476 enum R_TILEGX_IMM16_X1_HW0_GOT = 65;
2477 enum R_TILEGX_IMM16_X0_HW0_PLT_PCREL = 66;
2478 enum R_TILEGX_IMM16_X1_HW0_PLT_PCREL = 67;
2479 enum R_TILEGX_IMM16_X0_HW1_PLT_PCREL = 68;
2480 enum R_TILEGX_IMM16_X1_HW1_PLT_PCREL = 69;
2481 enum R_TILEGX_IMM16_X0_HW2_PLT_PCREL = 70;
2482 enum R_TILEGX_IMM16_X1_HW2_PLT_PCREL = 71;
2483 enum R_TILEGX_IMM16_X0_HW0_LAST_GOT = 72;
2484 enum R_TILEGX_IMM16_X1_HW0_LAST_GOT = 73;
2485 enum R_TILEGX_IMM16_X0_HW1_LAST_GOT = 74;
2486 enum R_TILEGX_IMM16_X1_HW1_LAST_GOT = 75;
2487 enum R_TILEGX_IMM16_X0_HW3_PLT_PCREL = 76;
2488 enum R_TILEGX_IMM16_X1_HW3_PLT_PCREL = 77;
2489 enum R_TILEGX_IMM16_X0_HW0_TLS_GD = 78;
2490 enum R_TILEGX_IMM16_X1_HW0_TLS_GD = 79;
2491 enum R_TILEGX_IMM16_X0_HW0_TLS_LE = 80;
2492 enum R_TILEGX_IMM16_X1_HW0_TLS_LE = 81;
2493 enum R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE = 82;
2494 enum R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE = 83;
2495 enum R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE = 84;
2496 enum R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE = 85;
2497 enum R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD = 86;
2498 enum R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD = 87;
2499 enum R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD = 88;
2500 enum R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD = 89;
2501 enum R_TILEGX_IMM16_X0_HW0_TLS_IE = 92;
2502 enum R_TILEGX_IMM16_X1_HW0_TLS_IE = 93;
2503 enum R_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL = 94;
2504 enum R_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL = 95;
2505 enum R_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL = 96;
2506 enum R_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL = 97;
2507 enum R_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL = 98;
2508 enum R_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL = 99;
2509 enum R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE = 100;
2510 enum R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE = 101;
2511 enum R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE = 102;
2512 enum R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE = 103;
2513 enum R_TILEGX_TLS_DTPMOD64 =   106;
2514 enum R_TILEGX_TLS_DTPOFF64 =   107;
2515 enum R_TILEGX_TLS_TPOFF64 =    108;
2516 enum R_TILEGX_TLS_DTPMOD32 =   109;
2517 enum R_TILEGX_TLS_DTPOFF32 =   110;
2518 enum R_TILEGX_TLS_TPOFF32 =    111;
2519 enum R_TILEGX_TLS_GD_CALL =    112;
2520 enum R_TILEGX_IMM8_X0_TLS_GD_ADD = 113;
2521 enum R_TILEGX_IMM8_X1_TLS_GD_ADD = 114;
2522 enum R_TILEGX_IMM8_Y0_TLS_GD_ADD = 115;
2523 enum R_TILEGX_IMM8_Y1_TLS_GD_ADD = 116;
2524 enum R_TILEGX_TLS_IE_LOAD =    117;
2525 enum R_TILEGX_IMM8_X0_TLS_ADD = 118;
2526 enum R_TILEGX_IMM8_X1_TLS_ADD = 119;
2527 enum R_TILEGX_IMM8_Y0_TLS_ADD = 120;
2528 enum R_TILEGX_IMM8_Y1_TLS_ADD = 121;
2529 
2530 enum R_TILEGX_GNU_VTINHERIT =  128;
2531 enum R_TILEGX_GNU_VTENTRY =    129;
2532 
2533 enum R_TILEGX_NUM =            130;
2534