Added DT_MIPS_* constants
[pyelftools.git] / elftools / elf / enums.py
1 #-------------------------------------------------------------------------------
2 # elftools: elf/enums.py
3 #
4 # Mappings of enum names to values
5 #
6 # Eli Bendersky (eliben@gmail.com)
7 # This code is in the public domain
8 #-------------------------------------------------------------------------------
9 from ..construct import Pass
10
11
12 # e_ident[EI_CLASS] in the ELF header
13 ENUM_EI_CLASS = dict(
14 ELFCLASSNONE=0,
15 ELFCLASS32=1,
16 ELFCLASS64=2
17 )
18
19 # e_ident[EI_DATA] in the ELF header
20 ENUM_EI_DATA = dict(
21 ELFDATANONE=0,
22 ELFDATA2LSB=1,
23 ELFDATA2MSB=2
24 )
25
26 # e_version in the ELF header
27 ENUM_E_VERSION = dict(
28 EV_NONE=0,
29 EV_CURRENT=1,
30 _default_=Pass,
31 )
32
33 # e_ident[EI_OSABI] in the ELF header
34 ENUM_EI_OSABI = dict(
35 ELFOSABI_SYSV=0,
36 ELFOSABI_HPUX=1,
37 ELFOSABI_NETBSD=2,
38 ELFOSABI_LINUX=3,
39 ELFOSABI_HURD=4,
40 ELFOSABI_SOLARIS=6,
41 ELFOSABI_AIX=7,
42 ELFOSABI_IRIX=8,
43 ELFOSABI_FREEBSD=9,
44 ELFOSABI_TRU64=10,
45 ELFOSABI_MODESTO=11,
46 ELFOSABI_OPENBSD=12,
47 ELFOSABI_OPENVMS=13,
48 ELFOSABI_NSK=14,
49 ELFOSABI_AROS=15,
50 ELFOSABI_ARM_AEABI=64,
51 ELFOSABI_ARM=97,
52 ELFOSABI_STANDALONE=255,
53 _default_=Pass,
54 )
55
56 # e_type in the ELF header
57 ENUM_E_TYPE = dict(
58 ET_NONE=0,
59 ET_REL=1,
60 ET_EXEC=2,
61 ET_DYN=3,
62 ET_CORE=4,
63 ET_LOPROC=0xff00,
64 ET_HIPROC=0xffff,
65 _default_=Pass,
66 )
67
68 # e_machine in the ELF header
69 ENUM_E_MACHINE = dict(
70 EM_NONE=0,
71 EM_M32=1,
72 EM_SPARC=2,
73 EM_386=3,
74 EM_68K=4,
75 EM_88K=5,
76 EM_860=7,
77 EM_MIPS=8,
78 EM_S370=9,
79 EM_MIPS_RS3_LE=10,
80 EM_PARISC=15,
81 EM_VPP500=17,
82 EM_SPARC32PLUS=18,
83 EM_960=19,
84 EM_PPC=20,
85 EM_PPC64=21,
86 EM_S390=22,
87 EM_V800=36,
88 EM_FR20=37,
89 EM_RH32=38,
90 EM_RCE=39,
91 EM_ARM=40,
92 EM_ALPHA=41,
93 EM_SH=42,
94 EM_SPARCV9=43,
95 EM_TRICORE=44,
96 EM_ARC=45,
97 EM_H8_300=46,
98 EM_H8_300H=47,
99 EM_H8S=48,
100 EM_H8_500=49,
101 EM_IA_64=50,
102 EM_MIPS_X=51,
103 EM_COLDFIRE=52,
104 EM_68HC12=53,
105 EM_MMA=54,
106 EM_PCP=55,
107 EM_NCPU=56,
108 EM_NDR1=57,
109 EM_STARCORE=58,
110 EM_ME16=59,
111 EM_ST100=60,
112 EM_TINYJ=61,
113 EM_X86_64=62,
114 EM_PDSP=63,
115 EM_PDP10=64,
116 EM_PDP11=65,
117 EM_FX66=66,
118 EM_ST9PLUS=67,
119 EM_ST7=68,
120 EM_68HC16=69,
121 EM_68HC11=70,
122 EM_68HC08=71,
123 EM_68HC05=72,
124 EM_SVX=73,
125 EM_ST19=74,
126 EM_VAX=75,
127 EM_CRIS=76,
128 EM_JAVELIN=77,
129 EM_FIREPATH=78,
130 EM_ZSP=79,
131 EM_MMIX=80,
132 EM_HUANY=81,
133 EM_PRISM=82,
134 EM_AVR=83,
135 EM_FR30=84,
136 EM_D10V=85,
137 EM_D30V=86,
138 EM_V850=87,
139 EM_M32R=88,
140 EM_MN10300=89,
141 EM_MN10200=90,
142 EM_PJ=91,
143 EM_OPENRISC=92,
144 EM_ARC_A5=93,
145 EM_XTENSA=94,
146 EM_VIDEOCORE=95,
147 EM_TMM_GPP=96,
148 EM_NS32K=97,
149 EM_TPC=98,
150 EM_SNP1K=99,
151 EM_ST200=100,
152 EM_IP2K=101,
153 EM_MAX=102,
154 EM_CR=103,
155 EM_F2MC16=104,
156 EM_MSP430=105,
157 EM_BLACKFIN=106,
158 EM_SE_C33=107,
159 EM_SEP=108,
160 EM_ARCA=109,
161 EM_UNICORE=110,
162 EM_L10M=180,
163 EM_AARCH64=183,
164 _default_=Pass,
165 )
166
167 # sh_type in the section header
168 ENUM_SH_TYPE = dict(
169 SHT_NULL=0,
170 SHT_PROGBITS=1,
171 SHT_SYMTAB=2,
172 SHT_STRTAB=3,
173 SHT_RELA=4,
174 SHT_HASH=5,
175 SHT_DYNAMIC=6,
176 SHT_NOTE=7,
177 SHT_NOBITS=8,
178 SHT_REL=9,
179 SHT_SHLIB=10,
180 SHT_DYNSYM=11,
181 SHT_INIT_ARRAY=14,
182 SHT_FINI_ARRAY=15,
183 SHT_PREINIT_ARRAY=16,
184 SHT_GROUP=17,
185 SHT_SYMTAB_SHNDX=18,
186 SHT_NUM=19,
187 SHT_LOOS=0x60000000,
188 SHT_GNU_HASH=0x6ffffff6,
189 SHT_GNU_LIBLIST=0x6ffffff7,
190 SHT_GNU_verdef=0x6ffffffd, # also SHT_SUNW_verdef
191 SHT_GNU_verneed=0x6ffffffe, # also SHT_SUNW_verneed
192 SHT_GNU_versym=0x6fffffff, # also SHT_SUNW_versym, SHT_HIOS
193 SHT_LOPROC=0x70000000,
194 SHT_HIPROC=0x7fffffff,
195 SHT_LOUSER=0x80000000,
196 SHT_HIUSER=0xffffffff,
197 SHT_AMD64_UNWIND=0x70000001,
198 SHT_SUNW_LDYNSYM=0x6ffffff3,
199 SHT_SUNW_syminfo=0x6ffffffc,
200 SHT_ARM_EXIDX=0x70000001, # also SHT_MIPS_MSYM
201 SHT_ARM_PREEMPTMAP=0x70000002, # also SHT_MIPS_CONFLICT
202 SHT_ARM_ATTRIBUTES=0x70000003, # also SHT_MIPS_GPTAB
203 SHT_ARM_DEBUGOVERLAY=0x70000004, # also SHT_MIPS_UCODE
204 SHT_MIPS_LIBLIST=0x70000000,
205 SHT_MIPS_DEBUG=0x70000005,
206 SHT_MIPS_REGINFO=0x70000006,
207 SHT_MIPS_PACKAGE=0x70000007,
208 SHT_MIPS_PACKSYM=0x70000008,
209 SHT_MIPS_RELD=0x70000009,
210 SHT_MIPS_IFACE=0x7000000b,
211 SHT_MIPS_CONTENT=0x7000000c,
212 SHT_MIPS_OPTIONS=0x7000000d,
213 SHT_MIPS_SHDR=0x70000010,
214 SHT_MIPS_FDESC=0x70000011,
215 SHT_MIPS_EXTSYM=0x70000012,
216 SHT_MIPS_DENSE=0x70000013,
217 SHT_MIPS_PDESC=0x70000014,
218 SHT_MIPS_LOCSYM=0x70000015,
219 SHT_MIPS_AUXSYM=0x70000016,
220 SHT_MIPS_OPTSYM=0x70000017,
221 SHT_MIPS_LOCSTR=0x70000018,
222 SHT_MIPS_LINE=0x70000019,
223 SHT_MIPS_RFDESC=0x7000001a,
224 SHT_MIPS_DELTASYM=0x7000001b,
225 SHT_MIPS_DELTAINST=0x7000001c,
226 SHT_MIPS_DELTACLASS=0x7000001d,
227 SHT_MIPS_DWARF=0x7000001e,
228 SHT_MIPS_DELTADECL=0x7000001f,
229 SHT_MIPS_SYMBOL_LIB=0x70000020,
230 SHT_MIPS_EVENTS=0x70000021,
231 SHT_MIPS_TRANSLATE=0x70000022,
232 SHT_MIPS_PIXIE=0x70000023,
233 SHT_MIPS_XLATE=0x70000024,
234 SHT_MIPS_XLATE_DEBUG=0x70000025,
235 SHT_MIPS_WHIRL=0x70000026,
236 SHT_MIPS_EH_REGION=0x70000027,
237 SHT_MIPS_XLATE_OLD=0x70000028,
238 SHT_MIPS_PDR_EXCEPTION=0x70000029,
239 _default_=Pass,
240 )
241
242 # p_type in the program header
243 # some values scavenged from the ELF headers in binutils-2.21
244 ENUM_P_TYPE = dict(
245 PT_NULL=0,
246 PT_LOAD=1,
247 PT_DYNAMIC=2,
248 PT_INTERP=3,
249 PT_NOTE=4,
250 PT_SHLIB=5,
251 PT_PHDR=6,
252 PT_TLS=7,
253 PT_LOOS=0x60000000,
254 PT_HIOS=0x6fffffff,
255 PT_LOPROC=0x70000000,
256 PT_HIPROC=0x7fffffff,
257 PT_GNU_EH_FRAME=0x6474e550,
258 PT_GNU_STACK=0x6474e551,
259 PT_GNU_RELRO=0x6474e552,
260 PT_ARM_ARCHEXT=0x70000000,
261 PT_ARM_EXIDX=0x70000001,
262 PT_ARM_UNWIND=0x70000001,
263 PT_AARCH64_ARCHEXT=0x70000000,
264 PT_AARCH64_UNWIND=0x70000001,
265 _default_=Pass,
266 )
267
268 # st_info bindings in the symbol header
269 ENUM_ST_INFO_BIND = dict(
270 STB_LOCAL=0,
271 STB_GLOBAL=1,
272 STB_WEAK=2,
273 STB_NUM=3,
274 STB_LOOS=10,
275 STB_HIOS=12,
276 STB_LOPROC=13,
277 STB_HIPROC=15,
278 _default_=Pass,
279 )
280
281 # st_info type in the symbol header
282 ENUM_ST_INFO_TYPE = dict(
283 STT_NOTYPE=0,
284 STT_OBJECT=1,
285 STT_FUNC=2,
286 STT_SECTION=3,
287 STT_FILE=4,
288 STT_COMMON=5,
289 STT_TLS=6,
290 STT_NUM=7,
291 STT_RELC=8,
292 STT_SRELC=9,
293 STT_LOOS=10,
294 STT_HIOS=12,
295 STT_LOPROC=13,
296 STT_HIPROC=15,
297 _default_=Pass,
298 )
299
300 # visibility from st_other
301 ENUM_ST_VISIBILITY = dict(
302 STV_DEFAULT=0,
303 STV_INTERNAL=1,
304 STV_HIDDEN=2,
305 STV_PROTECTED=3,
306 STV_EXPORTED=4,
307 STV_SINGLETON=5,
308 STV_ELIMINATE=6,
309 _default_=Pass,
310 )
311
312 # st_shndx
313 ENUM_ST_SHNDX = dict(
314 SHN_UNDEF=0,
315 SHN_ABS=0xfff1,
316 SHN_COMMON=0xfff2,
317 _default_=Pass,
318 )
319
320 # d_tag
321 ENUM_D_TAG = dict(
322 DT_NULL=0,
323 DT_NEEDED=1,
324 DT_PLTRELSZ=2,
325 DT_PLTGOT=3,
326 DT_HASH=4,
327 DT_STRTAB=5,
328 DT_SYMTAB=6,
329 DT_RELA=7,
330 DT_RELASZ=8,
331 DT_RELAENT=9,
332 DT_STRSZ=10,
333 DT_SYMENT=11,
334 DT_INIT=12,
335 DT_FINI=13,
336 DT_SONAME=14,
337 DT_RPATH=15,
338 DT_SYMBOLIC=16,
339 DT_REL=17,
340 DT_RELSZ=18,
341 DT_RELENT=19,
342 DT_PLTREL=20,
343 DT_DEBUG=21,
344 DT_TEXTREL=22,
345 DT_JMPREL=23,
346 DT_BIND_NOW=24,
347 DT_INIT_ARRAY=25,
348 DT_FINI_ARRAY=26,
349 DT_INIT_ARRAYSZ=27,
350 DT_FINI_ARRAYSZ=28,
351 DT_RUNPATH=29,
352 DT_FLAGS=30,
353 DT_ENCODING=32,
354 DT_PREINIT_ARRAY=32,
355 DT_PREINIT_ARRAYSZ=33,
356 DT_NUM=34,
357 DT_LOOS=0x6000000d,
358 DT_SUNW_AUXILIARY=0x6000000d,
359 DT_SUNW_RTLDINF=0x6000000e,
360 DT_SUNW_FILTER=0x6000000f,
361 DT_SUNW_CAP=0x60000010,
362 DT_SUNW_SYMTAB=0x60000011,
363 DT_SUNW_SYMSZ=0x60000012,
364 DT_SUNW_ENCODING=0x60000013,
365 DT_SUNW_SORTENT=0x60000013,
366 DT_SUNW_SYMSORT=0x60000014,
367 DT_SUNW_SYMSORTSZ=0x60000015,
368 DT_SUNW_TLSSORT=0x60000016,
369 DT_SUNW_TLSSORTSZ=0x60000017,
370 DT_SUNW_CAPINFO=0x60000018,
371 DT_SUNW_STRPAD=0x60000019,
372 DT_SUNW_CAPCHAIN=0x6000001a,
373 DT_SUNW_LDMACH=0x6000001b,
374 DT_SUNW_CAPCHAINENT=0x6000001d,
375 DT_SUNW_CAPCHAINSZ=0x6000001f,
376 DT_HIOS=0x6ffff000,
377 DT_LOPROC=0x70000000,
378 DT_HIPROC=0x7fffffff,
379 DT_PROCNUM=0x35,
380 DT_VALRNGLO=0x6ffffd00,
381 DT_GNU_PRELINKED=0x6ffffdf5,
382 DT_GNU_CONFLICTSZ=0x6ffffdf6,
383 DT_GNU_LIBLISTSZ=0x6ffffdf7,
384 DT_CHECKSUM=0x6ffffdf8,
385 DT_PLTPADSZ=0x6ffffdf9,
386 DT_MOVEENT=0x6ffffdfa,
387 DT_MOVESZ=0x6ffffdfb,
388 DT_SYMINSZ=0x6ffffdfe,
389 DT_SYMINENT=0x6ffffdff,
390 DT_GNU_HASH=0x6ffffef5,
391 DT_TLSDESC_PLT=0x6ffffef6,
392 DT_TLSDESC_GOT=0x6ffffef7,
393 DT_GNU_CONFLICT=0x6ffffef8,
394 DT_GNU_LIBLIST=0x6ffffef9,
395 DT_CONFIG=0x6ffffefa,
396 DT_DEPAUDIT=0x6ffffefb,
397 DT_AUDIT=0x6ffffefc,
398 DT_PLTPAD=0x6ffffefd,
399 DT_MOVETAB=0x6ffffefe,
400 DT_SYMINFO=0x6ffffeff,
401 DT_VERSYM=0x6ffffff0,
402 DT_RELACOUNT=0x6ffffff9,
403 DT_RELCOUNT=0x6ffffffa,
404 DT_FLAGS_1=0x6ffffffb,
405 DT_VERDEF=0x6ffffffc,
406 DT_VERDEFNUM=0x6ffffffd,
407 DT_VERNEED=0x6ffffffe,
408 DT_VERNEEDNUM=0x6fffffff,
409 DT_MIPS_RLD_VERSION=0x70000001,
410 DT_MIPS_TIME_STAMP=0x70000002,
411 DT_MIPS_ICHECKSUM=0x70000003,
412 DT_MIPS_IVERSION=0x70000004,
413 DT_MIPS_FLAGS=0x70000005,
414 DT_MIPS_BASE_ADDRESS=0x70000006,
415 DT_MIPS_CONFLICT=0x70000008,
416 DT_MIPS_LIBLIST=0x70000009,
417 DT_MIPS_LOCAL_GOTNO=0x7000000a,
418 DT_MIPS_CONFLICTNO=0x7000000b,
419 DT_MIPS_LIBLISTNO=0x70000010,
420 DT_MIPS_SYMTABNO=0x70000011,
421 DT_MIPS_UNREFEXTNO=0x70000012,
422 DT_MIPS_GOTSYM=0x70000013,
423 DT_MIPS_HIPAGENO=0x70000014,
424 DT_MIPS_RLD_MAP=0x70000016,
425 DT_AUXILIARY=0x7ffffffd,
426 DT_FILTER=0x7fffffff,
427 _default_=Pass,
428 )
429
430 ENUM_RELOC_TYPE_MIPS = dict(
431 R_MIPS_NONE=0,
432 R_MIPS_16=1,
433 R_MIPS_32=2,
434 R_MIPS_REL32=3,
435 R_MIPS_26=4,
436 R_MIPS_HI16=5,
437 R_MIPS_LO16=6,
438 R_MIPS_GPREL16=7,
439 R_MIPS_LITERAL=8,
440 R_MIPS_GOT16=9,
441 R_MIPS_PC16=10,
442 R_MIPS_CALL16=11,
443 R_MIPS_GPREL32=12,
444 R_MIPS_SHIFT5=16,
445 R_MIPS_SHIFT6=17,
446 R_MIPS_64=18,
447 R_MIPS_GOT_DISP=19,
448 R_MIPS_GOT_PAGE=20,
449 R_MIPS_GOT_OFST=21,
450 R_MIPS_GOT_HI16=22,
451 R_MIPS_GOT_LO16=23,
452 R_MIPS_SUB=24,
453 R_MIPS_INSERT_A=25,
454 R_MIPS_INSERT_B=26,
455 R_MIPS_DELETE=27,
456 R_MIPS_HIGHER=28,
457 R_MIPS_HIGHEST=29,
458 R_MIPS_CALL_HI16=30,
459 R_MIPS_CALL_LO16=31,
460 R_MIPS_SCN_DISP=32,
461 R_MIPS_REL16=33,
462 R_MIPS_ADD_IMMEDIATE=34,
463 R_MIPS_PJUMP=35,
464 R_MIPS_RELGOT=36,
465 R_MIPS_JALR=37,
466 R_MIPS_TLS_DTPMOD32=38,
467 R_MIPS_TLS_DTPREL32=39,
468 R_MIPS_TLS_DTPMOD64=40,
469 R_MIPS_TLS_DTPREL64=41,
470 R_MIPS_TLS_GD=42,
471 R_MIPS_TLS_LDM=43,
472 R_MIPS_TLS_DTPREL_HI16=44,
473 R_MIPS_TLS_DTPREL_LO16=45,
474 R_MIPS_TLS_GOTTPREL=46,
475 R_MIPS_TLS_TPREL32=47,
476 R_MIPS_TLS_TPREL64=48,
477 R_MIPS_TLS_TPREL_HI16=49,
478 R_MIPS_TLS_TPREL_LO16=50,
479 R_MIPS_GLOB_DAT=51,
480 R_MIPS_COPY=126,
481 R_MIPS_JUMP_SLOT=127,
482 _default_=Pass,
483 )
484
485 ENUM_RELOC_TYPE_i386 = dict(
486 R_386_NONE=0,
487 R_386_32=1,
488 R_386_PC32=2,
489 R_386_GOT32=3,
490 R_386_PLT32=4,
491 R_386_COPY=5,
492 R_386_GLOB_DAT=6,
493 R_386_JUMP_SLOT=7,
494 R_386_RELATIVE=8,
495 R_386_GOTOFF=9,
496 R_386_GOTPC=10,
497 R_386_32PLT=11,
498 R_386_TLS_TPOFF=14,
499 R_386_TLS_IE=15,
500 R_386_TLS_GOTIE=16,
501 R_386_TLS_LE=17,
502 R_386_TLS_GD=18,
503 R_386_TLS_LDM=19,
504 R_386_16=20,
505 R_386_PC16=21,
506 R_386_8=22,
507 R_386_PC8=23,
508 R_386_TLS_GD_32=24,
509 R_386_TLS_GD_PUSH=25,
510 R_386_TLS_GD_CALL=26,
511 R_386_TLS_GD_POP=27,
512 R_386_TLS_LDM_32=28,
513 R_386_TLS_LDM_PUSH=29,
514 R_386_TLS_LDM_CALL=30,
515 R_386_TLS_LDM_POP=31,
516 R_386_TLS_LDO_32=32,
517 R_386_TLS_IE_32=33,
518 R_386_TLS_LE_32=34,
519 R_386_TLS_DTPMOD32=35,
520 R_386_TLS_DTPOFF32=36,
521 R_386_TLS_TPOFF32=37,
522 R_386_TLS_GOTDESC=39,
523 R_386_TLS_DESC_CALL=40,
524 R_386_TLS_DESC=41,
525 R_386_IRELATIVE=42,
526 R_386_USED_BY_INTEL_200=200,
527 R_386_GNU_VTINHERIT=250,
528 R_386_GNU_VTENTRY=251,
529 _default_=Pass,
530 )
531
532 ENUM_RELOC_TYPE_x64 = dict(
533 R_X86_64_NONE=0,
534 R_X86_64_64=1,
535 R_X86_64_PC32=2,
536 R_X86_64_GOT32=3,
537 R_X86_64_PLT32=4,
538 R_X86_64_COPY=5,
539 R_X86_64_GLOB_DAT=6,
540 R_X86_64_JUMP_SLOT=7,
541 R_X86_64_RELATIVE=8,
542 R_X86_64_GOTPCREL=9,
543 R_X86_64_32=10,
544 R_X86_64_32S=11,
545 R_X86_64_16=12,
546 R_X86_64_PC16=13,
547 R_X86_64_8=14,
548 R_X86_64_PC8=15,
549 R_X86_64_DTPMOD64=16,
550 R_X86_64_DTPOFF64=17,
551 R_X86_64_TPOFF64=18,
552 R_X86_64_TLSGD=19,
553 R_X86_64_TLSLD=20,
554 R_X86_64_DTPOFF32=21,
555 R_X86_64_GOTTPOFF=22,
556 R_X86_64_TPOFF32=23,
557 R_X86_64_PC64=24,
558 R_X86_64_GOTOFF64=25,
559 R_X86_64_GOTPC32=26,
560 R_X86_64_GOT64=27,
561 R_X86_64_GOTPCREL64=28,
562 R_X86_64_GOTPC64=29,
563 R_X86_64_GOTPLT64=30,
564 R_X86_64_PLTOFF64=31,
565 R_X86_64_GOTPC32_TLSDESC=34,
566 R_X86_64_TLSDESC_CALL=35,
567 R_X86_64_TLSDESC=36,
568 R_X86_64_IRELATIVE=37,
569 R_X86_64_GNU_VTINHERIT=250,
570 R_X86_64_GNU_VTENTRY=251,
571 _default_=Pass,
572 )
573
574 # Sunw Syminfo Bound To special values
575 ENUM_SUNW_SYMINFO_BOUNDTO = dict(
576 SYMINFO_BT_SELF=0xffff,
577 SYMINFO_BT_PARENT=0xfffe,
578 SYMINFO_BT_NONE=0xfffd,
579 SYMINFO_BT_EXTERN=0xfffc,
580 _default_=Pass,
581 )
582
583 # Versym section, version dependency index
584 ENUM_VERSYM = dict(
585 VER_NDX_LOCAL=0,
586 VER_NDX_GLOBAL=1,
587 VER_NDX_LORESERVE=0xff00,
588 VER_NDX_ELIMINATE=0xff01,
589 _default_=Pass,
590 )
591 # Sunw Syminfo Bound To special values
592 ENUM_SUNW_SYMINFO_BOUNDTO = dict(
593 SYMINFO_BT_SELF=0xffff,
594 SYMINFO_BT_PARENT=0xfffe,
595 SYMINFO_BT_NONE=0xfffd,
596 SYMINFO_BT_EXTERN=0xfffc,
597 _default_=Pass,
598 )
599
600 # PT_NOTE section types
601 ENUM_NOTE_N_TYPE = dict(
602 NT_GNU_ABI_TAG=1,
603 NT_GNU_HWCAP=2,
604 NT_GNU_BUILD_ID=3,
605 NT_GNU_GOLD_VERSION=4,
606 _default_=Pass,
607 )
608
609 # Values in GNU .note.ABI-tag notes (n_type=='NT_GNU_ABI_TAG')
610 ENUM_NOTE_ABI_TAG_OS = dict(
611 ELF_NOTE_OS_LINUX=0,
612 ELF_NOTE_OS_GNU=1,
613 ELF_NOTE_OS_SOLARIS2=2,
614 ELF_NOTE_OS_FREEBSD=3,
615 ELF_NOTE_OS_NETBSD=4,
616 ELF_NOTE_OS_SYLLABLE=5,
617 _default_=Pass,
618 )
619
620 ENUM_RELOC_TYPE_ARM = dict(
621 R_ARM_NONE=0,
622 R_ARM_PC24=1,
623 R_ARM_ABS32=2,
624 R_ARM_REL32=3,
625 R_ARM_LDR_PC_G0=4,
626 R_ARM_ABS16=5,
627 R_ARM_ABS12=6,
628 R_ARM_THM_ABS5=7,
629 R_ARM_ABS8=8,
630 R_ARM_SBREL32=9,
631 R_ARM_THM_CALL=10,
632 R_ARM_THM_PC8=11,
633 R_ARM_BREL_ADJ=12,
634 R_ARM_SWI24=13,
635 R_ARM_THM_SWI8=14,
636 R_ARM_XPC25=15,
637 R_ARM_THM_XPC22=16,
638 R_ARM_TLS_DTPMOD32=17,
639 R_ARM_TLS_DTPOFF32=18,
640 R_ARM_TLS_TPOFF32=19,
641 R_ARM_COPY=20,
642 R_ARM_GLOB_DAT=21,
643 R_ARM_JUMP_SLOT=22,
644 R_ARM_RELATIVE=23,
645 R_ARM_GOTOFF32=24,
646 R_ARM_BASE_PREL=25,
647 R_ARM_GOT_BREL=26,
648 R_ARM_PLT32=27,
649 R_ARM_CALL=28,
650 R_ARM_JUMP24=29,
651 R_ARM_THM_JUMP24=30,
652 R_ARM_BASE_ABS=31,
653 R_ARM_ALU_PCREL_7_0=32,
654 R_ARM_ALU_PCREL_15_8=33,
655 R_ARM_ALU_PCREL_23_15=34,
656 R_ARM_LDR_SBREL_11_0_NC=35,
657 R_ARM_ALU_SBREL_19_12_NC=36,
658 R_ARM_ALU_SBREL_27_20_CK=37,
659 R_ARM_TARGET1=38,
660 R_ARM_SBREL31=39,
661 R_ARM_V4BX=40,
662 R_ARM_TARGET2=41,
663 R_ARM_PREL31=42,
664 R_ARM_MOVW_ABS_NC=43,
665 R_ARM_MOVT_ABS=44,
666 R_ARM_MOVW_PREL_NC=45,
667 R_ARM_MOVT_PREL=46,
668 R_ARM_THM_MOVW_ABS_NC=47,
669 R_ARM_THM_MOVT_ABS=48,
670 R_ARM_THM_MOVW_PREL_NC=49,
671 R_ARM_THM_MOVT_PREL=50,
672 R_ARM_THM_JUMP19=51,
673 R_ARM_THM_JUMP6=52,
674 R_ARM_THM_ALU_PREL_11_0=53,
675 R_ARM_THM_PC12=54,
676 R_ARM_ABS32_NOI=55,
677 R_ARM_REL32_NOI=56,
678 R_ARM_ALU_PC_G0_NC=57,
679 R_ARM_ALU_PC_G0=58,
680 R_ARM_ALU_PC_G1_NC=59,
681 R_ARM_ALU_PC_G1=60,
682 R_ARM_ALU_PC_G2=61,
683 R_ARM_LDR_PC_G1=62,
684 R_ARM_LDR_PC_G2=63,
685 R_ARM_LDRS_PC_G0=64,
686 R_ARM_LDRS_PC_G1=65,
687 R_ARM_LDRS_PC_G2=66,
688 R_ARM_LDC_PC_G0=67,
689 R_ARM_LDC_PC_G1=68,
690 R_ARM_LDC_PC_G2=69,
691 R_ARM_ALU_SB_G0_NC=70,
692 R_ARM_ALU_SB_G0=71,
693 R_ARM_ALU_SB_G1_NC=72,
694 R_ARM_ALU_SB_G1=73,
695 R_ARM_ALU_SB_G2=74,
696 R_ARM_LDR_SB_G0=75,
697 R_ARM_LDR_SB_G1=76,
698 R_ARM_LDR_SB_G2=77,
699 R_ARM_LDRS_SB_G0=78,
700 R_ARM_LDRS_SB_G1=79,
701 R_ARM_LDRS_SB_G2=80,
702 R_ARM_LDC_SB_G0=81,
703 R_ARM_LDC_SB_G1=82,
704 R_ARM_LDC_SB_G2=83,
705 R_ARM_MOVW_BREL_NC=84,
706 R_ARM_MOVT_BREL=85,
707 R_ARM_MOVW_BREL=86,
708 R_ARM_THM_MOVW_BREL_NC=87,
709 R_ARM_THM_MOVT_BREL=88,
710 R_ARM_THM_MOVW_BREL=89,
711 R_ARM_PLT32_ABS=94,
712 R_ARM_GOT_ABS=95,
713 R_ARM_GOT_PREL=96,
714 R_ARM_GOT_BREL12=97,
715 R_ARM_GOTOFF12=98,
716 R_ARM_GOTRELAX=99,
717 R_ARM_GNU_VTENTRY=100,
718 R_ARM_GNU_VTINHERIT=101,
719 R_ARM_THM_JUMP11=102,
720 R_ARM_THM_JUMP8=103,
721 R_ARM_TLS_GD32=104,
722 R_ARM_TLS_LDM32=105,
723 R_ARM_TLS_LDO32=106,
724 R_ARM_TLS_IE32=107,
725 R_ARM_TLS_LE32=108,
726 R_ARM_TLS_LDO12=109,
727 R_ARM_TLS_LE12=110,
728 R_ARM_TLS_IE12GP=111,
729 R_ARM_PRIVATE_0=112,
730 R_ARM_PRIVATE_1=113,
731 R_ARM_PRIVATE_2=114,
732 R_ARM_PRIVATE_3=115,
733 R_ARM_PRIVATE_4=116,
734 R_ARM_PRIVATE_5=117,
735 R_ARM_PRIVATE_6=118,
736 R_ARM_PRIVATE_7=119,
737 R_ARM_PRIVATE_8=120,
738 R_ARM_PRIVATE_9=121,
739 R_ARM_PRIVATE_10=122,
740 R_ARM_PRIVATE_11=123,
741 R_ARM_PRIVATE_12=124,
742 R_ARM_PRIVATE_13=125,
743 R_ARM_PRIVATE_14=126,
744 R_ARM_PRIVATE_15=127,
745 R_ARM_ME_TOO=128,
746 R_ARM_THM_TLS_DESCSEQ16=129,
747 R_ARM_THM_TLS_DESCSEQ32=130,
748 R_ARM_THM_GOT_BREL12=131,
749 R_ARM_IRELATIVE=140,
750 )
751
752 ENUM_RELOC_TYPE_AARCH64 = dict(
753 R_AARCH64_NONE=256,
754 R_AARCH64_ABS64=257,
755 R_AARCH64_ABS32=258,
756 R_AARCH64_ABS16=259,
757 R_AARCH64_PREL64=260,
758 R_AARCH64_PREL32=261,
759 R_AARCH64_PREL16=262,
760 R_AARCH64_MOVW_UABS_G0=263,
761 R_AARCH64_MOVW_UABS_G0_NC=264,
762 R_AARCH64_MOVW_UABS_G1=265,
763 R_AARCH64_MOVW_UABS_G1_NC=266,
764 R_AARCH64_MOVW_UABS_G2=267,
765 R_AARCH64_MOVW_UABS_G2_NC=268,
766 R_AARCH64_MOVW_UABS_G3=269,
767 R_AARCH64_MOVW_SABS_G0=270,
768 R_AARCH64_MOVW_SABS_G1=271,
769 R_AARCH64_MOVW_SABS_G2=272,
770 R_AARCH64_LD_PREL_LO19=273,
771 R_AARCH64_ADR_PREL_LO21=274,
772 R_AARCH64_ADR_PREL_PG_HI21=275,
773 R_AARCH64_ADR_PREL_PG_HI21_NC=276,
774 R_AARCH64_ADD_ABS_LO12_NC=277,
775 R_AARCH64_LDST8_ABS_LO12_NC=278,
776 R_AARCH64_TSTBR14=279,
777 R_AARCH64_CONDBR19=280,
778 R_AARCH64_JUMP26=282,
779 R_AARCH64_CALL26=283,
780 R_AARCH64_LDST16_ABS_LO12_NC=284,
781 R_AARCH64_LDST32_ABS_LO12_NC=285,
782 R_AARCH64_LDST64_ABS_LO12_NC=286,
783 R_AARCH64_MOVW_PREL_G0=287,
784 R_AARCH64_MOVW_PREL_G0_NC=288,
785 R_AARCH64_MOVW_PREL_G1=289,
786 R_AARCH64_MOVW_PREL_G1_NC=290,
787 R_AARCH64_MOVW_PREL_G2=291,
788 R_AARCH64_MOVW_PREL_G2_NC=292,
789 R_AARCH64_MOVW_PREL_G3=293,
790 R_AARCH64_MOVW_GOTOFF_G0=300,
791 R_AARCH64_MOVW_GOTOFF_G0_NC=301,
792 R_AARCH64_MOVW_GOTOFF_G1=302,
793 R_AARCH64_MOVW_GOTOFF_G1_NC=303,
794 R_AARCH64_MOVW_GOTOFF_G2=304,
795 R_AARCH64_MOVW_GOTOFF_G2_NC=305,
796 R_AARCH64_MOVW_GOTOFF_G3=306,
797 R_AARCH64_GOTREL64=307,
798 R_AARCH64_GOTREL32=308,
799 R_AARCH64_GOT_LD_PREL19=309,
800 R_AARCH64_LD64_GOTOFF_LO15=310,
801 R_AARCH64_ADR_GOT_PAGE=311,
802 R_AARCH64_LD64_GOT_LO12_NC=312,
803 R_AARCH64_TLSGD_ADR_PREL21=512,
804 R_AARCH64_TLSGD_ADR_PAGE21=513,
805 R_AARCH64_TLSGD_ADD_LO12_NC=514,
806 R_AARCH64_TLSGD_MOVW_G1=515,
807 R_AARCH64_TLSGD_MOVW_G0_NC=516,
808 R_AARCH64_TLSLD_ADR_PREL21=517,
809 R_AARCH64_TLSLD_ADR_PAGE21=518,
810 R_AARCH64_TLSLD_ADD_LO12_NC=519,
811 R_AARCH64_TLSLD_MOVW_G1=520,
812 R_AARCH64_TLSLD_MOVW_G0_NC=521,
813 R_AARCH64_TLSLD_LD_PREL19=522,
814 R_AARCH64_TLSLD_MOVW_DTPREL_G2=523,
815 R_AARCH64_TLSLD_MOVW_DTPREL_G1=524,
816 R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC=525,
817 R_AARCH64_TLSLD_MOVW_DTPREL_G0=526,
818 R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC=527,
819 R_AARCH64_TLSLD_ADD_DTPREL_HI12=528,
820 R_AARCH64_TLSLD_ADD_DTPREL_LO12=529,
821 R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC=530,
822 R_AARCH64_TLSLD_LDST8_DTPREL_LO12=531,
823 R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC=532,
824 R_AARCH64_TLSLD_LDST16_DTPREL_LO12=533,
825 R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC=534,
826 R_AARCH64_TLSLD_LDST32_DTPREL_LO12=535,
827 R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC=536,
828 R_AARCH64_TLSLD_LDST64_DTPREL_LO12=537,
829 R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC=538,
830 R_AARCH64_TLSIE_MOVW_GOTTPREL_G1=539,
831 R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC=540,
832 R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21=541,
833 R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC=542,
834 R_AARCH64_TLSIE_LD_GOTTPREL_PREL19=543,
835 R_AARCH64_TLSLE_MOVW_TPREL_G2=544,
836 R_AARCH64_TLSLE_MOVW_TPREL_G1=545,
837 R_AARCH64_TLSLE_MOVW_TPREL_G1_NC=546,
838 R_AARCH64_TLSLE_MOVW_TPREL_G0=547,
839 R_AARCH64_TLSLE_MOVW_TPREL_G0_NC=548,
840 R_AARCH64_TLSLE_ADD_TPREL_HI12=549,
841 R_AARCH64_TLSLE_ADD_TPREL_LO12=550,
842 R_AARCH64_TLSLE_ADD_TPREL_LO12_NC=551,
843 R_AARCH64_TLSLE_LDST8_TPREL_LO12=552,
844 R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC=553,
845 R_AARCH64_TLSLE_LDST16_TPREL_LO12=554,
846 R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC=555,
847 R_AARCH64_TLSLE_LDST32_TPREL_LO12=556,
848 R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC=557,
849 R_AARCH64_TLSLE_LDST64_TPREL_LO12=558,
850 R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC=559,
851 R_AARCH64_COPY=1024,
852 R_AARCH64_GLOB_DAT=1025,
853 R_AARCH64_JUMP_SLOT=1026,
854 R_AARCH64_RELATIVE=1027,
855 R_AARCH64_TLS_DTPREL64=1028,
856 R_AARCH64_TLS_DTPMOD64=1029,
857 R_AARCH64_TLS_TPREL64=1030,
858 R_AARCH64_TLS_DTPREL32=1031,
859 R_AARCH64_TLS_DTPMOD32=1032,
860 R_AARCH64_TLS_TPREL32=1033,
861 )