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