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