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