1/**
2 * D header file for NetBSD.
3 *
4 * http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/sys/exec_elf.h
5 */
6module core.sys.netbsd.sys.elf_common;
7
8version (NetBSD):
9extern (C):
10pure:
11nothrow:
12
13import core.stdc.stdint;
14
15struct Elf_Note
16{
17    uint32_t      n_namesz;
18    uint32_t      n_descsz;
19    uint32_t      n_type;
20}
21
22struct Elf_GNU_Hash_Header
23{
24    uint32_t      gh_nbuckets;
25    uint32_t      gh_symndx;
26    uint32_t      gh_maskwords;
27    uint32_t      gh_shift2;
28}
29
30enum EI_MAG0 =         0;
31enum EI_MAG1 =         1;
32enum EI_MAG2 =         2;
33enum EI_MAG3 =         3;
34enum EI_CLASS =        4;
35enum EI_DATA =         5;
36enum EI_VERSION =      6;
37enum EI_OSABI =        7;
38enum EI_ABIVERSION =   8;
39enum OLD_EI_BRAND =    8;
40enum EI_PAD =          9;
41enum EI_NIDENT =       16;
42
43enum ELFMAG0 =         0x7f;
44enum ELFMAG1 =         'E';
45enum ELFMAG2 =         'L';
46enum ELFMAG3 =         'F';
47enum ELFMAG =          "\177ELF";
48enum SELFMAG =         4;
49
50enum EV_NONE =         0;
51enum EV_CURRENT =      1;
52
53enum ELFCLASSNONE =    0;
54enum ELFCLASS32 =      1;
55enum ELFCLASS64 =      2;
56
57enum ELFDATANONE =     0;
58enum ELFDATA2LSB =     1;
59enum ELFDATA2MSB =     2;
60
61enum ELFOSABI_NONE =           0;
62enum ELFOSABI_SYSV =           0;
63enum ELFOSABI_HPUX =           1;
64enum ELFOSABI_NETBSD =         2;
65enum ELFOSABI_LINUX =          3;
66enum ELFOSABI_HURD  =          4;
67enum ELFOSABI_86OPEN =         5;
68enum ELFOSABI_SOLARIS =        6;
69enum ELFOSABI_AIX =            7;
70enum ELFOSABI_MONTEREY =       7;
71enum ELFOSABI_IRIX =           8;
72enum ELFOSABI_FREEBSD =        9;
73enum ELFOSABI_TRU64 =          10;
74enum ELFOSABI_MODESTO =        11;
75enum ELFOSABI_OPENBSD =        12;
76enum ELFOSABI_OPENVMS =        13;
77enum ELFOSABI_NSK =            14;
78enum ELFOSABI_AROS =           15;
79enum ELFOSABI_ARM =            97;
80enum ELFOSABI_STANDALONE =     255;
81enum ELFOSABI_DRAGONFLYBSD =   ELFOSABI_NONE;
82
83extern (D)
84{
85    auto IS_ELF(T)(T ehdr) { return ehdr.e_ident[EI_MAG0] == ELFMAG0 &&
86                                    ehdr.e_ident[EI_MAG1] == ELFMAG1 &&
87                                    ehdr.e_ident[EI_MAG2] == ELFMAG2 &&
88                                    ehdr.e_ident[EI_MAG3] == ELFMAG3; }
89}
90
91enum ET_NONE =         0;
92enum ET_REL =          1;
93enum ET_EXEC =         2;
94enum ET_DYN =          3;
95enum ET_CORE =         4;
96enum ET_LOOS =         0xfe00;
97enum ET_HIOS =         0xfeff;
98enum ET_LOPROC =       0xff00;
99enum ET_HIPROC =       0xffff;
100
101enum EM_NONE =          0;
102enum EM_M32 =           1;
103enum EM_SPARC =         2;
104enum EM_386 =           3;
105enum EM_68K =           4;
106enum EM_88K =           5;
107enum EM_860 =           7;
108enum EM_MIPS =          8;
109enum EM_S370 =          9;
110enum EM_MIPS_RS3_LE =  10;
111enum EM_PARISC =       15;
112enum EM_VPP500 =       17;
113enum EM_SPARC32PLUS =  18;
114enum EM_960 =          19;
115enum EM_PPC =          20;
116enum EM_PPC64 =        21;
117enum EM_S390 =         22;
118enum EM_V800 =         36;
119enum EM_FR20 =         37;
120enum EM_RH32 =         38;
121enum EM_RCE =          39;
122enum EM_ARM =          40;
123enum EM_SH =           42;
124enum EM_SPARCV9 =      43;
125enum EM_TRICORE =      44;
126enum EM_ARC =          45;
127enum EM_H8_300 =       46;
128enum EM_H8_300H =      47;
129enum EM_H8S =          48;
130enum EM_H8_500 =       49;
131enum EM_IA_64 =        50;
132enum EM_MIPS_X =       51;
133enum EM_COLDFIRE =     52;
134enum EM_68HC12 =       53;
135enum EM_MMA =          54;
136enum EM_PCP =          55;
137enum EM_NCPU =         56;
138enum EM_NDR1 =         57;
139enum EM_STARCORE =     58;
140enum EM_ME16 =         59;
141enum EM_ST100 =        60;
142enum EM_TINYJ =        61;
143enum EM_X86_64 =       62;
144enum EM_AMD64 =        62;
145enum EM_PDSP =         63;
146enum EM_FX66 =         66;
147enum EM_ST9PLUS =      67;
148enum EM_ST7 =          68;
149enum EM_68HC16 =       69;
150enum EM_68HC11 =       70;
151enum EM_68HC08 =       71;
152enum EM_68HC05 =       72;
153enum EM_SVX =          73;
154enum EM_ST19 =         74;
155enum EM_VAX =          75;
156enum EM_CRIS =         76;
157enum EM_JAVELIN =      77;
158enum EM_FIREPATH =     78;
159enum EM_ZSP =          79;
160enum EM_MMIX =         80;
161enum EM_HUANY =        81;
162enum EM_PRISM =        82;
163enum EM_AVR =          83;
164enum EM_FR30 =         84;
165enum EM_D10V =         85;
166enum EM_D30V =         86;
167enum EM_V850 =         87;
168enum EM_M32R =         88;
169enum EM_MN10300 =      89;
170enum EM_MN10200 =      90;
171enum EM_PJ =           91;
172enum EM_OPENRISC =     92;
173enum EM_ARC_A5 =       93;
174enum EM_XTENSA =       94;
175enum EM_VIDEOCORE =    95;
176enum EM_TMM_GPP =      96;
177enum EM_NS32K =        97;
178enum EM_TPC =          98;
179enum EM_SNP1K =        99;
180enum EM_ST200 =       100;
181enum EM_IP2K =        101;
182enum EM_MAX =         102;
183enum EM_CR =          103;
184enum EM_F2MC16 =      104;
185enum EM_MSP430 =      105;
186enum EM_BLACKFIN =    106;
187enum EM_SE_C33 =      107;
188enum EM_SEP =         108;
189enum EM_ARCA =        109;
190enum EM_UNICORE =     110;
191enum EM_AARCH64 =     183;     /* AArch64 64-bit ARM microprocessor */
192
193/* Unofficial machine types follow */
194enum EM_AVR32  =       6317;    /* used by NetBSD/avr32 */
195enum EM_ALPHA_EXP  =  36902;   /* used by NetBSD/alpha; obsolete */
196
197enum EM_486 =           6;
198enum EM_MIPS_RS4_BE =  10;
199enum EM_ALPHA_STD =    41;
200enum EM_ALPHA =    0x9026;
201
202enum SHN_UNDEF =       0;
203enum SHN_LORESERVE =   0xff00;
204enum SHN_LOPROC =      0xff00;
205enum SHN_HIPROC =      0xff1f;
206enum SHN_LOOS =        0xff20;
207enum SHN_HIOS =        0xff3f;
208enum SHN_ABS =         0xfff1;
209enum SHN_COMMON =      0xfff2;
210enum SHN_XINDEX =      0xffff;
211enum SHN_HIRESERVE =   0xffff;
212
213enum SHT_NULL =          0;
214enum SHT_PROGBITS =      1;
215enum SHT_SYMTAB =        2;
216enum SHT_STRTAB =        3;
217enum SHT_RELA =          4;
218enum SHT_HASH =          5;
219enum SHT_DYNAMIC =       6;
220enum SHT_NOTE =          7;
221enum SHT_NOBITS =        8;
222enum SHT_REL =           9;
223enum SHT_SHLIB =         10;
224enum SHT_DYNSYM =        11;
225enum SHT_INIT_ARRAY =    14;
226enum SHT_FINI_ARRAY =    15;
227enum SHT_PREINIT_ARRAY = 16;
228enum SHT_GROUP =         17;
229enum SHT_SYMTAB_SHNDX =  18;
230enum SHT_LOOS =          0x60000000;
231enum SHT_LOSUNW =        0x6ffffff4;
232enum SHT_SUNW_dof =      0x6ffffff4;
233enum SHT_SUNW_cap =      0x6ffffff5;
234enum SHT_SUNW_SIGNATURE = 0x6ffffff6;
235enum SHT_GNU_HASH =      0x6ffffff6;
236enum SHT_SUNW_ANNOTATE = 0x6ffffff7;
237enum SHT_SUNW_DEBUGSTR = 0x6ffffff8;
238enum SHT_SUNW_DEBUG =    0x6ffffff9;
239enum SHT_SUNW_move =     0x6ffffffa;
240enum SHT_SUNW_COMDAT =   0x6ffffffb;
241enum SHT_SUNW_syminfo =  0x6ffffffc;
242enum SHT_SUNW_verdef =   0x6ffffffd;
243enum SHT_GNU_verdef =    0x6ffffffd;
244enum SHT_SUNW_verneed =  0x6ffffffe;
245enum SHT_GNU_verneed =   0x6ffffffe;
246enum SHT_SUNW_versym =   0x6fffffff;
247enum SHT_GNU_versym =    0x6fffffff;
248enum SHT_HISUNW =        0x6fffffff;
249enum SHT_HIOS =          0x6fffffff;
250enum SHT_LOPROC =        0x70000000;
251enum SHT_AMD64_UNWIND =  0x70000001;
252enum SHT_ARM_EXIDX =     0x70000001;
253enum SHT_ARM_PREEMPTMAP = 0x70000002;
254enum SHT_ARM_ATTRIBUTES = 0x70000003;
255enum SHT_ARM_DEBUGOVERLAY = 0x70000004;
256enum SHT_ARM_OVERLAYSECTION = 0x70000005;
257enum SHT_MIPS_REGINFO =  0x70000006;
258enum SHT_MIPS_OPTIONS =  0x7000000d;
259enum SHT_MIPS_DWARF =    0x7000001e;
260enum SHT_HIPROC =        0x7fffffff;
261enum SHT_LOUSER =        0x80000000;
262enum SHT_HIUSER =        0x8fffffff;
263
264enum SHF_WRITE =            (1 << 0);
265enum SHF_ALLOC =            (1 << 1);
266enum SHF_EXECINSTR =        (1 << 2);
267enum SHF_MERGE =            (1 << 4);
268enum SHF_STRINGS =          (1 << 5);
269enum SHF_INFO_LINK =        (1 << 6);
270enum SHF_LINK_ORDER =       (1 << 7);
271enum SHF_OS_NONCONFORMING = (1 << 8);
272enum SHF_GROUP =            (1 << 9);
273enum SHF_TLS =              (1 << 10);
274enum SHF_MASKOS =           0x0ff00000;
275enum SHF_MASKPROC =         0xf0000000;
276
277enum PT_NULL =         0;
278enum PT_LOAD =         1;
279enum PT_DYNAMIC =      2;
280enum PT_INTERP =       3;
281enum PT_NOTE =         4;
282enum PT_SHLIB =        5;
283enum PT_PHDR =         6;
284enum PT_TLS =          7;
285enum PT_LOOS =         0x60000000;
286enum PT_SUNW_UNWIND =  0x6464e550;
287enum PT_GNU_EH_FRAME = 0x6474e550;
288enum PT_GNU_STACK =    0x6474e551;
289enum PT_GNU_RELRO =    0x6474e552;
290enum PT_LOSUNW =       0x6ffffffa;
291enum PT_SUNWBSS =      0x6ffffffa;
292enum PT_SUNWSTACK =    0x6ffffffb;
293enum PT_SUNWDTRACE =   0x6ffffffc;
294enum PT_SUNWCAP =      0x6ffffffd;
295enum PT_HISUNW =       0x6fffffff;
296enum PT_HIOS =         0x6fffffff;
297enum PT_LOPROC =       0x70000000;
298enum PT_HIPROC =       0x7fffffff;
299
300enum PF_X =            (1 << 0);
301enum PF_W =            (1 << 1);
302enum PF_R =            (1 << 2);
303enum PF_MASKOS =       0x0ff00000;
304enum PF_MASKPROC =     0xf0000000;
305
306enum PN_XNUM =         0xffff;
307
308enum DT_NULL =         0;
309enum DT_NEEDED =       1;
310enum DT_PLTRELSZ =     2;
311enum DT_PLTGOT =       3;
312enum DT_HASH =         4;
313enum DT_STRTAB =       5;
314enum DT_SYMTAB =       6;
315enum DT_RELA =         7;
316enum DT_RELASZ =       8;
317enum DT_RELAENT =      9;
318enum DT_STRSZ =        10;
319enum DT_SYMENT =       11;
320enum DT_INIT =         12;
321enum DT_FINI =         13;
322enum DT_SONAME =       14;
323enum DT_RPATH =        15;
324enum DT_SYMBOLIC =     16;
325enum DT_REL =          17;
326enum DT_RELSZ =        18;
327enum DT_RELENT =       19;
328enum DT_PLTREL =       20;
329enum DT_DEBUG =        21;
330enum DT_TEXTREL =      22;
331enum DT_JMPREL =       23;
332enum DT_BIND_NOW =     24;
333enum DT_INIT_ARRAY =   25;
334enum DT_FINI_ARRAY =   26;
335enum DT_INIT_ARRAYSZ = 27;
336enum DT_FINI_ARRAYSZ = 28;
337enum DT_RUNPATH =      29;
338enum DT_FLAGS =        30;
339enum DT_ENCODING =     32;
340enum DT_PREINIT_ARRAY = 32;
341enum DT_PREINIT_ARRAYSZ = 33;
342enum DT_MAXPOSTAGS =   34;
343enum DT_LOOS =         0x6000000d;
344enum DT_SUNW_AUXILIARY = 0x6000000d;
345enum DT_SUNW_RTLDINF = 0x6000000e;
346enum DT_SUNW_FILTER =  0x6000000f;
347enum DT_SUNW_CAP =     0x60000010;
348enum DT_HIOS =         0x6ffff000;
349enum DT_VALRNGLO =     0x6ffffd00;
350enum DT_CHECKSUM =     0x6ffffdf8;
351enum DT_PLTPADSZ =     0x6ffffdf9;
352enum DT_MOVEENT =      0x6ffffdfa;
353enum DT_MOVESZ =       0x6ffffdfb;
354enum DT_FEATURE_1 =    0x6ffffdfc;
355enum DT_POSFLAG_1 =    0x6ffffdfd;
356enum DT_SYMINSZ =      0x6ffffdfe;
357enum DT_SYMINENT =     0x6ffffdff;
358enum DT_VALRNGHI =     0x6ffffdff;
359enum DT_ADDRRNGLO =    0x6ffffe00;
360enum DT_GNU_HASH =     0x6ffffef5;
361enum DT_CONFIG =       0x6ffffefa;
362enum DT_DEPAUDIT =     0x6ffffefb;
363enum DT_AUDIT =        0x6ffffefc;
364enum DT_PLTPAD =       0x6ffffefd;
365enum DT_MOVETAB =      0x6ffffefe;
366enum DT_SYMINFO =      0x6ffffeff;
367enum DT_ADDRRNGHI =    0x6ffffeff;
368enum DT_VERSYM =       0x6ffffff0;
369enum DT_RELACOUNT =    0x6ffffff9;
370enum DT_RELCOUNT =     0x6ffffffa;
371enum DT_FLAGS_1 =      0x6ffffffb;
372enum DT_VERDEF =       0x6ffffffc;
373enum DT_VERDEFNUM =    0x6ffffffd;
374enum DT_VERNEED =      0x6ffffffe;
375enum DT_VERNEEDNUM =   0x6fffffff;
376enum DT_LOPROC =       0x70000000;
377enum DT_DEPRECATED_SPARC_REGISTER = 0x7000001;
378enum DT_AUXILIARY =    0x7ffffffd;
379enum DT_USED =         0x7ffffffe;
380enum DT_FILTER =       0x7fffffff;
381enum DT_HIPROC =       0x7fffffff;
382
383enum DF_ORIGIN =       0x00000001;
384enum DF_SYMBOLIC =     0x00000002;
385enum DF_TEXTREL =      0x00000004;
386enum DF_BIND_NOW =     0x00000008;
387enum DF_STATIC_TLS =   0x00000010;
388
389enum DF_1_BIND_NOW =   0x00000001;
390enum DF_1_GLOBAL =     0x00000002;
391enum DF_1_NODELETE =   0x00000008;
392enum DF_1_LOADFLTR =   0x00000010;
393enum DF_1_NOOPEN =     0x00000040;
394enum DF_1_NODEFLIB =   0x00000800;
395
396enum NT_PRSTATUS =     1;
397enum NT_FPREGSET =     2;
398enum NT_PRPSINFO =     3;
399enum NT_THRMISC =      7;
400enum NT_PROCSTAT_PROC = 8;
401enum NT_PROCSTAT_FILES = 9;
402enum NT_PROCSTAT_VMMAP = 10;
403enum NT_PROCSTAT_GROUPS = 11;
404enum NT_PROCSTAT_UMASK = 12;
405enum NT_PROCSTAT_RLIMIT = 13;
406enum NT_PROCSTAT_OSREL = 14;
407enum NT_PROCSTAT_PSSTRINGS = 15;
408enum NT_PROCSTAT_AUXV = 16;
409
410enum STB_LOCAL =       0;
411enum STB_GLOBAL =      1;
412enum STB_WEAK =        2;
413enum STB_NUM =         3;
414enum STB_LOOS =        10;
415enum STB_HIOS =        12;
416enum STB_LOPROC =      13;
417enum STB_HIPROC =      15;
418
419enum STT_NOTYPE =      0;
420enum STT_OBJECT =      1;
421enum STT_FUNC =        2;
422enum STT_SECTION =     3;
423enum STT_FILE =        4;
424enum STT_COMMON =      5;
425enum STT_TLS =         6;
426enum STT_NUM =         7;
427enum STT_LOOS =        10;
428enum STT_GNU_IFUNC =   10;
429enum STT_HIOS =        12;
430enum STT_LOPROC =      13;
431enum STT_HIPROC =      15;
432
433enum STV_DEFAULT =     0;
434enum STV_INTERNAL =    1;
435enum STV_HIDDEN =      2;
436enum STV_PROTECTED =   3;
437enum STV_EXPORTED =    4;
438enum STV_SINGLETON =   5;
439enum STV_ELIMINATE =   6;
440
441enum STN_UNDEF =       0;
442
443enum VER_DEF_CURRENT = 1;
444alias VER_NDX VER_DEF_IDX;
445
446enum VER_FLG_BASE =    0x1;
447enum VER_FLG_WEAK =    0x2;
448
449enum VER_NEED_CURRENT = 1;
450enum VER_NEED_WEAK =    32768;
451enum VER_NEED_HIDDEN = VER_NDX_HIDDEN;
452alias VER_NDX VER_NEED_IDX;
453
454enum VER_NDX_LOCAL =           0;
455enum VER_NDX_GLOBAL =          1;
456enum VER_NDX_GIVEN =           2;
457
458enum VER_NDX_HIDDEN =      32768;
459extern (D)
460{
461    auto VER_NDX(V)(V v) { return v & ~(1u << 15); }
462}
463
464enum CA_SUNW_NULL =    0;
465enum CA_SUNW_HW_1 =    1;
466enum CA_SUNW_SF_1 =    2;
467
468enum SYMINFO_FLG_DIRECT =      0x0001;
469enum SYMINFO_FLG_PASSTHRU =    0x0002;
470enum SYMINFO_FLG_COPY =        0x0004;
471enum SYMINFO_FLG_LAZYLOAD =    0x0008;
472enum SYMINFO_FLG_DIRECTBIND =  0x0010;
473enum SYMINFO_FLG_NOEXTDIRECT = 0x0020;
474enum SYMINFO_FLG_FILTER =      0x0002;
475enum SYMINFO_FLG_AUXILIARY =   0x0040;
476
477enum SYMINFO_BT_SELF =         0xffff;
478enum SYMINFO_BT_PARENT =       0xfffe;
479enum SYMINFO_BT_NONE =         0xfffd;
480enum SYMINFO_BT_EXTERN =       0xfffc;
481enum SYMINFO_BT_LOWRESERVE =   0xff00;
482
483enum SYMINFO_NONE =            0;
484enum SYMINFO_CURRENT =         1;
485enum SYMINFO_NUM =             2;
486
487enum R_386_NONE =               0;
488enum R_386_32 =                 1;
489enum R_386_PC32 =               2;
490enum R_386_GOT32 =              3;
491enum R_386_PLT32 =              4;
492enum R_386_COPY =               5;
493enum R_386_GLOB_DAT =           6;
494enum R_386_JMP_SLOT =           7;
495enum R_386_RELATIVE =           8;
496enum R_386_GOTOFF =             9;
497enum R_386_GOTPC =              10;
498enum R_386_TLS_TPOFF =          14;
499enum R_386_TLS_IE =             15;
500enum R_386_TLS_GOTIE =          16;
501enum R_386_TLS_LE =             17;
502enum R_386_TLS_GD =             18;
503enum R_386_TLS_LDM =            19;
504enum R_386_TLS_GD_32 =          24;
505enum R_386_TLS_GD_PUSH =        25;
506enum R_386_TLS_GD_CALL =        26;
507enum R_386_TLS_GD_POP =         27;
508enum R_386_TLS_LDM_32 =         28;
509enum R_386_TLS_LDM_PUSH =       29;
510enum R_386_TLS_LDM_CALL =       30;
511enum R_386_TLS_LDM_POP =        31;
512enum R_386_TLS_LDO_32 =         32;
513enum R_386_TLS_IE_32 =          33;
514enum R_386_TLS_LE_32 =          34;
515enum R_386_TLS_DTPMOD32 =       35;
516enum R_386_TLS_DTPOFF32 =       36;
517enum R_386_TLS_TPOFF32 =        37;
518enum R_386_IRELATIVE =          42;
519
520enum R_ARM_NONE =               0;
521enum R_ARM_PC24 =               1;
522enum R_ARM_ABS32 =              2;
523enum R_ARM_REL32 =              3;
524enum R_ARM_PC13 =               4;
525enum R_ARM_ABS16 =              5;
526enum R_ARM_ABS12 =              6;
527enum R_ARM_THM_ABS5 =           7;
528enum R_ARM_ABS8 =               8;
529enum R_ARM_SBREL32 =            9;
530enum R_ARM_THM_PC22 =           10;
531enum R_ARM_THM_PC8 =            11;
532enum R_ARM_AMP_VCALL9 =         12;
533enum R_ARM_SWI24 =              13;
534enum R_ARM_THM_SWI8 =           14;
535enum R_ARM_XPC25 =              15;
536enum R_ARM_THM_XPC22 =          16;
537enum R_ARM_TLS_DTPMOD32 =       17;
538enum R_ARM_TLS_DTPOFF32 =       18;
539enum R_ARM_TLS_TPOFF32 =        19;
540enum R_ARM_COPY =               20;
541enum R_ARM_GLOB_DAT =           21;
542enum R_ARM_JUMP_SLOT =          22;
543enum R_ARM_RELATIVE =           23;
544enum R_ARM_GOTOFF =             24;
545enum R_ARM_GOTPC =              25;
546enum R_ARM_GOT32 =              26;
547enum R_ARM_PLT32 =              27;
548enum R_ARM_GNU_VTENTRY =        100;
549enum R_ARM_GNU_VTINHERIT =      101;
550enum R_ARM_RSBREL32 =           250;
551enum R_ARM_THM_RPC22 =          251;
552enum R_ARM_RREL32 =             252;
553enum R_ARM_RABS32 =             253;
554enum R_ARM_RPC24 =              254;
555enum R_ARM_RBASE =              255;
556
557enum R_IA_64_NONE =             0;
558enum R_IA_64_IMM14 =            0x21;
559enum R_IA_64_IMM22 =            0x22;
560enum R_IA_64_IMM64 =            0x23;
561enum R_IA_64_DIR32MSB =         0x24;
562enum R_IA_64_DIR32LSB =         0x25;
563enum R_IA_64_DIR64MSB =         0x26;
564enum R_IA_64_DIR64LSB =         0x27;
565enum R_IA_64_GPREL22 =          0x2a;
566enum R_IA_64_GPREL64I =         0x2b;
567enum R_IA_64_GPREL32MSB =       0x2c;
568enum R_IA_64_GPREL32LSB =       0x2d;
569enum R_IA_64_GPREL64MSB =       0x2e;
570enum R_IA_64_GPREL64LSB =       0x2f;
571enum R_IA_64_LTOFF22 =          0x32;
572enum R_IA_64_LTOFF64I =         0x33;
573enum R_IA_64_PLTOFF22 =         0x3a;
574enum R_IA_64_PLTOFF64I =        0x3b;
575enum R_IA_64_PLTOFF64MSB =      0x3e;
576enum R_IA_64_PLTOFF64LSB =      0x3f;
577enum R_IA_64_FPTR64I =          0x43;
578enum R_IA_64_FPTR32MSB =        0x44;
579enum R_IA_64_FPTR32LSB =        0x45;
580enum R_IA_64_FPTR64MSB =        0x46;
581enum R_IA_64_FPTR64LSB =        0x47;
582enum R_IA_64_PCREL60B =         0x48;
583enum R_IA_64_PCREL21B =         0x49;
584enum R_IA_64_PCREL21M =         0x4a;
585enum R_IA_64_PCREL21F =         0x4b;
586enum R_IA_64_PCREL32MSB =       0x4c;
587enum R_IA_64_PCREL32LSB =       0x4d;
588enum R_IA_64_PCREL64MSB =       0x4e;
589enum R_IA_64_PCREL64LSB =       0x4f;
590enum R_IA_64_LTOFF_FPTR22 =     0x52;
591enum R_IA_64_LTOFF_FPTR64I =    0x53;
592enum R_IA_64_LTOFF_FPTR32MSB =  0x54;
593enum R_IA_64_LTOFF_FPTR32LSB =  0x55;
594enum R_IA_64_LTOFF_FPTR64MSB =  0x56;
595enum R_IA_64_LTOFF_FPTR64LSB =  0x57;
596enum R_IA_64_SEGREL32MSB =      0x5c;
597enum R_IA_64_SEGREL32LSB =      0x5d;
598enum R_IA_64_SEGREL64MSB =      0x5e;
599enum R_IA_64_SEGREL64LSB =      0x5f;
600enum R_IA_64_SECREL32MSB =      0x64;
601enum R_IA_64_SECREL32LSB =      0x65;
602enum R_IA_64_SECREL64MSB =      0x66;
603enum R_IA_64_SECREL64LSB =      0x67;
604enum R_IA_64_REL32MSB =         0x6c;
605enum R_IA_64_REL32LSB =         0x6d;
606enum R_IA_64_REL64MSB =         0x6e;
607enum R_IA_64_REL64LSB =         0x6f;
608enum R_IA_64_LTV32MSB =         0x74;
609enum R_IA_64_LTV32LSB =         0x75;
610enum R_IA_64_LTV64MSB =         0x76;
611enum R_IA_64_LTV64LSB =         0x77;
612enum R_IA_64_PCREL21BI =        0x79;
613enum R_IA_64_PCREL22 =          0x7a;
614enum R_IA_64_PCREL64I =         0x7b;
615enum R_IA_64_IPLTMSB =          0x80;
616enum R_IA_64_IPLTLSB =          0x81;
617enum R_IA_64_SUB =              0x85;
618enum R_IA_64_LTOFF22X =         0x86;
619enum R_IA_64_LDXMOV =           0x87;
620enum R_IA_64_TPREL14 =          0x91;
621enum R_IA_64_TPREL22 =          0x92;
622enum R_IA_64_TPREL64I =         0x93;
623enum R_IA_64_TPREL64MSB =       0x96;
624enum R_IA_64_TPREL64LSB =       0x97;
625enum R_IA_64_LTOFF_TPREL22 =    0x9a;
626enum R_IA_64_DTPMOD64MSB =      0xa6;
627enum R_IA_64_DTPMOD64LSB =      0xa7;
628enum R_IA_64_LTOFF_DTPMOD22 =   0xaa;
629enum R_IA_64_DTPREL14 =         0xb1;
630enum R_IA_64_DTPREL22 =         0xb2;
631enum R_IA_64_DTPREL64I =        0xb3;
632enum R_IA_64_DTPREL32MSB =      0xb4;
633enum R_IA_64_DTPREL32LSB =      0xb5;
634enum R_IA_64_DTPREL64MSB =      0xb6;
635enum R_IA_64_DTPREL64LSB =      0xb7;
636enum R_IA_64_LTOFF_DTPREL22 =   0xba;
637
638enum R_MIPS_NONE =              0;
639enum R_MIPS_16 =                1;
640enum R_MIPS_32 =                2;
641enum R_MIPS_REL32 =             3;
642enum R_MIPS_26 =                4;
643enum R_MIPS_HI16 =              5;
644enum R_MIPS_LO16 =              6;
645enum R_MIPS_GPREL16 =           7;
646enum R_MIPS_LITERAL =           8;
647enum R_MIPS_GOT16 =             9;
648enum R_MIPS_PC16 =              10;
649enum R_MIPS_CALL16 =            11;
650enum R_MIPS_GPREL32 =           12;
651enum R_MIPS_GOTHI16 =           21;
652enum R_MIPS_GOTLO16 =           22;
653enum R_MIPS_CALLHI16 =          30;
654enum R_MIPS_CALLLO16 =          31;
655
656enum R_PPC_NONE =               0;
657enum R_PPC_ADDR32 =             1;
658enum R_PPC_ADDR24 =             2;
659enum R_PPC_ADDR16 =             3;
660enum R_PPC_ADDR16_LO =          4;
661enum R_PPC_ADDR16_HI =          5;
662enum R_PPC_ADDR16_HA =          6;
663enum R_PPC_ADDR14 =             7;
664enum R_PPC_ADDR14_BRTAKEN =     8;
665enum R_PPC_ADDR14_BRNTAKEN =    9;
666enum R_PPC_REL24 =              10;
667enum R_PPC_REL14 =              11;
668enum R_PPC_REL14_BRTAKEN =      12;
669enum R_PPC_REL14_BRNTAKEN =     13;
670enum R_PPC_GOT16 =              14;
671enum R_PPC_GOT16_LO =           15;
672enum R_PPC_GOT16_HI =           16;
673enum R_PPC_GOT16_HA =           17;
674enum R_PPC_PLTREL24 =           18;
675enum R_PPC_COPY =               19;
676enum R_PPC_GLOB_DAT =           20;
677enum R_PPC_JMP_SLOT =           21;
678enum R_PPC_RELATIVE =           22;
679enum R_PPC_LOCAL24PC =          23;
680enum R_PPC_UADDR32 =            24;
681enum R_PPC_UADDR16 =            25;
682enum R_PPC_REL32 =              26;
683enum R_PPC_PLT32 =              27;
684enum R_PPC_PLTREL32 =           28;
685enum R_PPC_PLT16_LO =           29;
686enum R_PPC_PLT16_HI =           30;
687enum R_PPC_PLT16_HA =           31;
688enum R_PPC_SDAREL16 =           32;
689enum R_PPC_SECTOFF =            33;
690enum R_PPC_SECTOFF_LO =         34;
691enum R_PPC_SECTOFF_HI =         35;
692enum R_PPC_SECTOFF_HA =         36;
693
694enum R_PPC64_ADDR64 =           38;
695enum R_PPC64_ADDR16_HIGHER =    39;
696enum R_PPC64_ADDR16_HIGHERA =   40;
697enum R_PPC64_ADDR16_HIGHEST =   41;
698enum R_PPC64_ADDR16_HIGHESTA =  42;
699enum R_PPC64_UADDR64 =          43;
700enum R_PPC64_REL64 =            44;
701enum R_PPC64_PLT64 =            45;
702enum R_PPC64_PLTREL64 =         46;
703enum R_PPC64_TOC16 =            47;
704enum R_PPC64_TOC16_LO =         48;
705enum R_PPC64_TOC16_HI =         49;
706enum R_PPC64_TOC16_HA =         50;
707enum R_PPC64_TOC =              51;
708enum R_PPC64_DTPMOD64 =         68;
709enum R_PPC64_TPREL64 =          73;
710enum R_PPC64_DTPREL64 =         78;
711
712enum R_PPC_TLS =                67;
713enum R_PPC_DTPMOD32 =           68;
714enum R_PPC_TPREL16 =            69;
715enum R_PPC_TPREL16_LO =         70;
716enum R_PPC_TPREL16_HI =         71;
717enum R_PPC_TPREL16_HA =         72;
718enum R_PPC_TPREL32 =            73;
719enum R_PPC_DTPREL16 =           74;
720enum R_PPC_DTPREL16_LO =        75;
721enum R_PPC_DTPREL16_HI =        76;
722enum R_PPC_DTPREL16_HA =        77;
723enum R_PPC_DTPREL32 =           78;
724enum R_PPC_GOT_TLSGD16 =        79;
725enum R_PPC_GOT_TLSGD16_LO =     80;
726enum R_PPC_GOT_TLSGD16_HI =     81;
727enum R_PPC_GOT_TLSGD16_HA =     82;
728enum R_PPC_GOT_TLSLD16 =        83;
729enum R_PPC_GOT_TLSLD16_LO =     84;
730enum R_PPC_GOT_TLSLD16_HI =     85;
731enum R_PPC_GOT_TLSLD16_HA =     86;
732enum R_PPC_GOT_TPREL16 =        87;
733enum R_PPC_GOT_TPREL16_LO =     88;
734enum R_PPC_GOT_TPREL16_HI =     89;
735enum R_PPC_GOT_TPREL16_HA =     90;
736
737enum R_PPC_EMB_NADDR32 =        101;
738enum R_PPC_EMB_NADDR16 =        102;
739enum R_PPC_EMB_NADDR16_LO =     103;
740enum R_PPC_EMB_NADDR16_HI =     104;
741enum R_PPC_EMB_NADDR16_HA =     105;
742enum R_PPC_EMB_SDAI16 =         106;
743enum R_PPC_EMB_SDA2I16 =        107;
744enum R_PPC_EMB_SDA2REL =        108;
745enum R_PPC_EMB_SDA21 =          109;
746enum R_PPC_EMB_MRKREF =         110;
747enum R_PPC_EMB_RELSEC16 =       111;
748enum R_PPC_EMB_RELST_LO =       112;
749enum R_PPC_EMB_RELST_HI =       113;
750enum R_PPC_EMB_RELST_HA =       114;
751enum R_PPC_EMB_BIT_FLD =        115;
752enum R_PPC_EMB_RELSDA =         116;
753
754enum R_SPARC_NONE =             0;
755enum R_SPARC_8 =                1;
756enum R_SPARC_16 =               2;
757enum R_SPARC_32 =               3;
758enum R_SPARC_DISP8 =            4;
759enum R_SPARC_DISP16 =           5;
760enum R_SPARC_DISP32 =           6;
761enum R_SPARC_WDISP30 =          7;
762enum R_SPARC_WDISP22 =          8;
763enum R_SPARC_HI22 =             9;
764enum R_SPARC_22 =               10;
765enum R_SPARC_13 =               11;
766enum R_SPARC_LO10 =             12;
767enum R_SPARC_GOT10 =            13;
768enum R_SPARC_GOT13 =            14;
769enum R_SPARC_GOT22 =            15;
770enum R_SPARC_PC10 =             16;
771enum R_SPARC_PC22 =             17;
772enum R_SPARC_WPLT30 =           18;
773enum R_SPARC_COPY =             19;
774enum R_SPARC_GLOB_DAT =         20;
775enum R_SPARC_JMP_SLOT =         21;
776enum R_SPARC_RELATIVE =         22;
777enum R_SPARC_UA32 =             23;
778enum R_SPARC_PLT32 =            24;
779enum R_SPARC_HIPLT22 =          25;
780enum R_SPARC_LOPLT10 =          26;
781enum R_SPARC_PCPLT32 =          27;
782enum R_SPARC_PCPLT22 =          28;
783enum R_SPARC_PCPLT10 =          29;
784enum R_SPARC_10 =               30;
785enum R_SPARC_11 =               31;
786enum R_SPARC_64 =               32;
787enum R_SPARC_OLO10 =            33;
788enum R_SPARC_HH22 =             34;
789enum R_SPARC_HM10 =             35;
790enum R_SPARC_LM22 =             36;
791enum R_SPARC_PC_HH22 =          37;
792enum R_SPARC_PC_HM10 =          38;
793enum R_SPARC_PC_LM22 =          39;
794enum R_SPARC_WDISP16 =          40;
795enum R_SPARC_WDISP19 =          41;
796enum R_SPARC_GLOB_JMP =         42;
797enum R_SPARC_7 =                43;
798enum R_SPARC_5 =                44;
799enum R_SPARC_6 =                45;
800enum R_SPARC_DISP64 =           46;
801enum R_SPARC_PLT64 =            47;
802enum R_SPARC_HIX22 =            48;
803enum R_SPARC_LOX10 =            49;
804enum R_SPARC_H44 =              50;
805enum R_SPARC_M44 =              51;
806enum R_SPARC_L44 =              52;
807enum R_SPARC_REGISTER =         53;
808enum R_SPARC_UA64 =             54;
809enum R_SPARC_UA16 =             55;
810enum R_SPARC_TLS_GD_HI22 =      56;
811enum R_SPARC_TLS_GD_LO10 =      57;
812enum R_SPARC_TLS_GD_ADD =       58;
813enum R_SPARC_TLS_GD_CALL =      59;
814enum R_SPARC_TLS_LDM_HI22 =     60;
815enum R_SPARC_TLS_LDM_LO10 =     61;
816enum R_SPARC_TLS_LDM_ADD =      62;
817enum R_SPARC_TLS_LDM_CALL =     63;
818enum R_SPARC_TLS_LDO_HIX22 =    64;
819enum R_SPARC_TLS_LDO_LOX10 =    65;
820enum R_SPARC_TLS_LDO_ADD =      66;
821enum R_SPARC_TLS_IE_HI22 =      67;
822enum R_SPARC_TLS_IE_LO10 =      68;
823enum R_SPARC_TLS_IE_LD =        69;
824enum R_SPARC_TLS_IE_LDX =       70;
825enum R_SPARC_TLS_IE_ADD =       71;
826enum R_SPARC_TLS_LE_HIX22 =     72;
827enum R_SPARC_TLS_LE_LOX10 =     73;
828enum R_SPARC_TLS_DTPMOD32 =     74;
829enum R_SPARC_TLS_DTPMOD64 =     75;
830enum R_SPARC_TLS_DTPOFF32 =     76;
831enum R_SPARC_TLS_DTPOFF64 =     77;
832enum R_SPARC_TLS_TPOFF32 =      78;
833enum R_SPARC_TLS_TPOFF64 =      79;
834
835enum R_X86_64_NONE =            0;
836enum R_X86_64_64 =              1;
837enum R_X86_64_PC32 =            2;
838enum R_X86_64_GOT32 =           3;
839enum R_X86_64_PLT32 =           4;
840enum R_X86_64_COPY =            5;
841enum R_X86_64_GLOB_DAT =        6;
842enum R_X86_64_JMP_SLOT =        7;
843enum R_X86_64_RELATIVE =        8;
844enum R_X86_64_GOTPCREL =        9;
845enum R_X86_64_32 =              10;
846enum R_X86_64_32S =             11;
847enum R_X86_64_16 =              12;
848enum R_X86_64_PC16 =            13;
849enum R_X86_64_8 =               14;
850enum R_X86_64_PC8 =             15;
851enum R_X86_64_DTPMOD64 =        16;
852enum R_X86_64_DTPOFF64 =        17;
853enum R_X86_64_TPOFF64 =         18;
854enum R_X86_64_TLSGD =           19;
855enum R_X86_64_TLSLD =           20;
856enum R_X86_64_DTPOFF32 =        21;
857enum R_X86_64_GOTTPOFF =        22;
858enum R_X86_64_TPOFF32 =         23;
859enum R_X86_64_IRELATIVE =       37;
860