OVMS3-idf/tools/esp_app_trace/pylibelf/constants/__init__.py
Alexey Gerenkov 55f1a63faf esp32: Adds functionality for application tracing over JTAG
- Implements application tracing module which allows to send arbitrary
   data to host over JTAG. This feature is useful for analyzing
   program modules behavior, dumping run-time application data etc.
 - Implements printf-like logging functions on top of apptrace module.
   This feature is a kind of semihosted printf functionality with lower
   overhead and impact on system behaviour as compared to standard printf.
2017-04-17 23:26:29 +03:00

1851 lines
86 KiB
Python

# Really simple expression types to handle arithmetic expressions referring
# to other # defines
class MacroExp: pass
class MacroRef(MacroExp):
def __init__(s, name):
s._name = name;
def eval(s):
return lookup(s._name)
def __add__(s, o):
return MacroAdd(s, o)
def __radd__(s, o):
return MacroAdd(o, s)
class MacroAdd(MacroExp):
def __init__(s, l, r):
s.l = l;
s.r = r;
def eval(s):
l = s.l.eval() if (isinstance(s.l, MacroExp)) else s.l
r = s.r.eval() if (isinstance(s.r, MacroExp)) else s.r
return l + r
def __add__(s, o):
return MacroAdd(s, o)
def __radd__(s, o):
return MacroAdd(o, s)
def lookup(n):
v = _consts[n]
if isinstance(v, MacroExp):
return v.eval()
else:
return v
# Macro constants
_consts = {
"EI_NIDENT": 16 , #
"EI_MAG0": 0 , # File identification byte 0 index
"ELFMAG0": 0x7f , # Magic number byte 0
"EI_MAG1": 1 , # File identification byte 1 index
"ELFMAG1": 'E' , # Magic number byte 1
"EI_MAG2": 2 , # File identification byte 2 index
"ELFMAG2": 'L' , # Magic number byte 2
"EI_MAG3": 3 , # File identification byte 3 index
"ELFMAG3": 'F' , # Magic number byte 3
"ELFMAG": "\177ELF" , #
"SELFMAG": 4 , #
"EI_CLASS": 4 , # File class byte index
"ELFCLASSNONE": 0 , # Invalid class
"ELFCLASS32": 1 , # 32-bit objects
"ELFCLASS64": 2 , # 64-bit objects
"ELFCLASSNUM": 3 , #
"EI_DATA": 5 , # Data encoding byte index
"ELFDATANONE": 0 , # Invalid data encoding
"ELFDATA2LSB": 1 , # 2's complement, little endian
"ELFDATA2MSB": 2 , # 2's complement, big endian
"ELFDATANUM": 3 , #
"EI_VERSION": 6 , # File version byte index
"EI_OSABI": 7 , # OS ABI identification
"ELFOSABI_NONE": 0 , # UNIX System V ABI
"ELFOSABI_SYSV": 0 , # Alias.
"ELFOSABI_HPUX": 1 , # HP-UX
"ELFOSABI_NETBSD": 2 , # NetBSD.
"ELFOSABI_GNU": 3 , # Object uses GNU ELF extensions.
"ELFOSABI_LINUX": MacroRef("ELFOSABI_GNU") , # Compatibility alias.
"ELFOSABI_SOLARIS": 6 , # Sun Solaris.
"ELFOSABI_AIX": 7 , # IBM AIX.
"ELFOSABI_IRIX": 8 , # SGI Irix.
"ELFOSABI_FREEBSD": 9 , # FreeBSD.
"ELFOSABI_TRU64": 10 , # Compaq TRU64 UNIX.
"ELFOSABI_MODESTO": 11 , # Novell Modesto.
"ELFOSABI_OPENBSD": 12 , # OpenBSD.
"ELFOSABI_ARM_AEABI": 64 , # ARM EABI
"ELFOSABI_ARM": 97 , # ARM
"ELFOSABI_STANDALONE": 255 , # Standalone (embedded) application
"EI_ABIVERSION": 8 , # ABI version
"EI_PAD": 9 , # Byte index of padding bytes
"ET_NONE": 0 , # No file type
"ET_REL": 1 , # Relocatable file
"ET_EXEC": 2 , # Executable file
"ET_DYN": 3 , # Shared object file
"ET_CORE": 4 , # Core file
"ET_NUM": 5 , # Number of defined types
"ET_LOOS": 0xfe00 , # OS-specific range start
"ET_HIOS": 0xfeff , # OS-specific range end
"ET_LOPROC": 0xff00 , # Processor-specific range start
"ET_HIPROC": 0xffff , # Processor-specific range end
"EM_NONE": 0 , # No machine
"EM_M32": 1 , # AT&T WE 32100
"EM_SPARC": 2 , # SUN SPARC
"EM_386": 3 , # Intel 80386
"EM_68K": 4 , # Motorola m68k family
"EM_88K": 5 , # Motorola m88k family
"EM_860": 7 , # Intel 80860
"EM_MIPS": 8 , # MIPS R3000 big-endian
"EM_S370": 9 , # IBM System/370
"EM_MIPS_RS3_LE": 10 , # MIPS R3000 little-endian
"EM_PARISC": 15 , # HPPA
"EM_VPP500": 17 , # Fujitsu VPP500
"EM_SPARC32PLUS": 18 , # Sun's "v8plus"
"EM_960": 19 , # Intel 80960
"EM_PPC": 20 , # PowerPC
"EM_PPC64": 21 , # PowerPC 64-bit
"EM_S390": 22 , # IBM S390
"EM_V800": 36 , # NEC V800 series
"EM_FR20": 37 , # Fujitsu FR20
"EM_RH32": 38 , # TRW RH-32
"EM_RCE": 39 , # Motorola RCE
"EM_ARM": 40 , # ARM
"EM_FAKE_ALPHA": 41 , # Digital Alpha
"EM_SH": 42 , # Hitachi SH
"EM_SPARCV9": 43 , # SPARC v9 64-bit
"EM_TRICORE": 44 , # Siemens Tricore
"EM_ARC": 45 , # Argonaut RISC Core
"EM_H8_300": 46 , # Hitachi H8/300
"EM_H8_300H": 47 , # Hitachi H8/300H
"EM_H8S": 48 , # Hitachi H8S
"EM_H8_500": 49 , # Hitachi H8/500
"EM_IA_64": 50 , # Intel Merced
"EM_MIPS_X": 51 , # Stanford MIPS-X
"EM_COLDFIRE": 52 , # Motorola Coldfire
"EM_68HC12": 53 , # Motorola M68HC12
"EM_MMA": 54 , # Fujitsu MMA Multimedia Accelerator
"EM_PCP": 55 , # Siemens PCP
"EM_NCPU": 56 , # Sony nCPU embeeded RISC
"EM_NDR1": 57 , # Denso NDR1 microprocessor
"EM_STARCORE": 58 , # Motorola Start*Core processor
"EM_ME16": 59 , # Toyota ME16 processor
"EM_ST100": 60 , # STMicroelectronic ST100 processor
"EM_TINYJ": 61 , # Advanced Logic Corp. Tinyj emb.fam
"EM_X86_64": 62 , # AMD x86-64 architecture
"EM_PDSP": 63 , # Sony DSP Processor
"EM_FX66": 66 , # Siemens FX66 microcontroller
"EM_ST9PLUS": 67 , # STMicroelectronics ST9+ 8/16 mc
"EM_ST7": 68 , # STmicroelectronics ST7 8 bit mc
"EM_68HC16": 69 , # Motorola MC68HC16 microcontroller
"EM_68HC11": 70 , # Motorola MC68HC11 microcontroller
"EM_68HC08": 71 , # Motorola MC68HC08 microcontroller
"EM_68HC05": 72 , # Motorola MC68HC05 microcontroller
"EM_SVX": 73 , # Silicon Graphics SVx
"EM_ST19": 74 , # STMicroelectronics ST19 8 bit mc
"EM_VAX": 75 , # Digital VAX
"EM_CRIS": 76 , # Axis Communications 32-bit embedded processor
"EM_JAVELIN": 77 , # Infineon Technologies 32-bit embedded processor
"EM_FIREPATH": 78 , # Element 14 64-bit DSP Processor
"EM_ZSP": 79 , # LSI Logic 16-bit DSP Processor
"EM_MMIX": 80 , # Donald Knuth's educational 64-bit processor
"EM_HUANY": 81 , # Harvard University machine-independent object files
"EM_PRISM": 82 , # SiTera Prism
"EM_AVR": 83 , # Atmel AVR 8-bit microcontroller
"EM_FR30": 84 , # Fujitsu FR30
"EM_D10V": 85 , # Mitsubishi D10V
"EM_D30V": 86 , # Mitsubishi D30V
"EM_V850": 87 , # NEC v850
"EM_M32R": 88 , # Mitsubishi M32R
"EM_MN10300": 89 , # Matsushita MN10300
"EM_MN10200": 90 , # Matsushita MN10200
"EM_PJ": 91 , # picoJava
"EM_OPENRISC": 92 , # OpenRISC 32-bit embedded processor
"EM_ARC_A5": 93 , # ARC Cores Tangent-A5
"EM_XTENSA": 94 , # Tensilica Xtensa Architecture
"EM_NUM": 95 , #
"EM_ALPHA": 0x9026 , #
"EV_NONE": 0 , # Invalid ELF version
"EV_CURRENT": 1 , # Current version
"EV_NUM": 2 , #
"SHN_UNDEF": 0 , # Undefined section
"SHN_LORESERVE": 0xff00 , # Start of reserved indices
"SHN_LOPROC": 0xff00 , # Start of processor-specific
"SHN_BEFORE": 0xff00 , # Order section before all others
"SHN_AFTER": 0xff01 , # Order section after all others
"SHN_HIPROC": 0xff1f , # End of processor-specific
"SHN_LOOS": 0xff20 , # Start of OS-specific
"SHN_HIOS": 0xff3f , # End of OS-specific
"SHN_ABS": 0xfff1 , # Associated symbol is absolute
"SHN_COMMON": 0xfff2 , # Associated symbol is common
"SHN_XINDEX": 0xffff , # Index is in extra table.
"SHN_HIRESERVE": 0xffff , # End of reserved indices
"SHT_NULL": 0 , # Section header table entry unused
"SHT_PROGBITS": 1 , # Program data
"SHT_SYMTAB": 2 , # Symbol table
"SHT_STRTAB": 3 , # String table
"SHT_RELA": 4 , # Relocation entries with addends
"SHT_HASH": 5 , # Symbol hash table
"SHT_DYNAMIC": 6 , # Dynamic linking information
"SHT_NOTE": 7 , # Notes
"SHT_NOBITS": 8 , # Program space with no data (bss)
"SHT_REL": 9 , # Relocation entries, no addends
"SHT_SHLIB": 10 , # Reserved
"SHT_DYNSYM": 11 , # Dynamic linker symbol table
"SHT_INIT_ARRAY": 14 , # Array of constructors
"SHT_FINI_ARRAY": 15 , # Array of destructors
"SHT_PREINIT_ARRAY": 16 , # Array of pre-constructors
"SHT_GROUP": 17 , # Section group
"SHT_SYMTAB_SHNDX": 18 , # Extended section indeces
"SHT_NUM": 19 , # Number of defined types.
"SHT_LOOS": 0x60000000 , # Start OS-specific.
"SHT_GNU_ATTRIBUTES": 0x6ffffff5 , # Object attributes.
"SHT_GNU_HASH": 0x6ffffff6 , # GNU-style hash table.
"SHT_GNU_LIBLIST": 0x6ffffff7 , # Prelink library list
"SHT_CHECKSUM": 0x6ffffff8 , # Checksum for DSO content.
"SHT_LOSUNW": 0x6ffffffa , # Sun-specific low bound.
"SHT_SUNW_move": 0x6ffffffa , #
"SHT_SUNW_COMDAT": 0x6ffffffb , #
"SHT_SUNW_syminfo": 0x6ffffffc , #
"SHT_GNU_verdef": 0x6ffffffd , # Version definition section.
"SHT_GNU_verneed": 0x6ffffffe , # Version needs section.
"SHT_GNU_versym": 0x6fffffff , # Version symbol table.
"SHT_HISUNW": 0x6fffffff , # Sun-specific high bound.
"SHT_HIOS": 0x6fffffff , # End OS-specific type
"SHT_LOPROC": 0x70000000 , # Start of processor-specific
"SHT_HIPROC": 0x7fffffff , # End of processor-specific
"SHT_LOUSER": 0x80000000 , # Start of application-specific
"SHT_HIUSER": 0x8fffffff , # End of application-specific
"SHF_MASKOS": 0x0ff00000 , # OS-specific.
"SHF_MASKPROC": 0xf0000000 , # Processor-specific
"SHF_ORDERED": (1 << 30) , # Special ordering requirement
"SHF_EXCLUDE": (1 << 31) , # Section is excluded unless
"GRP_COMDAT": 0x1 , # Mark group as COMDAT.
"SYMINFO_BT_SELF": 0xffff , # Symbol bound to self
"SYMINFO_BT_PARENT": 0xfffe , # Symbol bound to parent
"SYMINFO_BT_LOWRESERVE": 0xff00 , # Beginning of reserved entries
"SYMINFO_FLG_DIRECT": 0x0001 , # Direct bound symbol
"SYMINFO_FLG_PASSTHRU": 0x0002 , # Pass-thru symbol for translator
"SYMINFO_FLG_COPY": 0x0004 , # Symbol is a copy-reloc
"SYMINFO_FLG_LAZYLOAD": 0x0008 , # Symbol bound to object to be lazy
"SYMINFO_NONE": 0 , #
"SYMINFO_CURRENT": 1 , #
"SYMINFO_NUM": 2 , #
"STB_LOCAL": 0 , # Local symbol
"STB_GLOBAL": 1 , # Global symbol
"STB_WEAK": 2 , # Weak symbol
"STB_NUM": 3 , # Number of defined types.
"STB_LOOS": 10 , # Start of OS-specific
"STB_GNU_UNIQUE": 10 , # Unique symbol.
"STB_HIOS": 12 , # End of OS-specific
"STB_LOPROC": 13 , # Start of processor-specific
"STB_HIPROC": 15 , # End of processor-specific
"STT_NOTYPE": 0 , # Symbol type is unspecified
"STT_OBJECT": 1 , # Symbol is a data object
"STT_FUNC": 2 , # Symbol is a code object
"STT_SECTION": 3 , # Symbol associated with a section
"STT_FILE": 4 , # Symbol's name is file name
"STT_COMMON": 5 , # Symbol is a common data object
"STT_TLS": 6 , # Symbol is thread-local data object
"STT_NUM": 7 , # Number of defined types.
"STT_LOOS": 10 , # Start of OS-specific
"STT_GNU_IFUNC": 10 , # Symbol is indirect code object
"STT_HIOS": 12 , # End of OS-specific
"STT_LOPROC": 13 , # Start of processor-specific
"STT_HIPROC": 15 , # End of processor-specific
"STN_UNDEF": 0 , # End of a chain.
"STV_DEFAULT": 0 , # Default symbol visibility rules
"STV_INTERNAL": 1 , # Processor specific hidden class
"STV_HIDDEN": 2 , # Sym unavailable in other modules
"STV_PROTECTED": 3 , # Not preemptible, not exported
"PN_XNUM": 0xffff , #
"PT_NULL": 0 , # Program header table entry unused
"PT_LOAD": 1 , # Loadable program segment
"PT_DYNAMIC": 2 , # Dynamic linking information
"PT_INTERP": 3 , # Program interpreter
"PT_NOTE": 4 , # Auxiliary information
"PT_SHLIB": 5 , # Reserved
"PT_PHDR": 6 , # Entry for header table itself
"PT_TLS": 7 , # Thread-local storage segment
"PT_NUM": 8 , # Number of defined types
"PT_LOOS": 0x60000000 , # Start of OS-specific
"PT_GNU_EH_FRAME": 0x6474e550 , # GCC .eh_frame_hdr segment
"PT_GNU_STACK": 0x6474e551 , # Indicates stack executability
"PT_GNU_RELRO": 0x6474e552 , # Read-only after relocation
"PT_LOSUNW": 0x6ffffffa , #
"PT_SUNWBSS": 0x6ffffffa , # Sun Specific segment
"PT_SUNWSTACK": 0x6ffffffb , # Stack segment
"PT_HISUNW": 0x6fffffff , #
"PT_HIOS": 0x6fffffff , # End of OS-specific
"PT_LOPROC": 0x70000000 , # Start of processor-specific
"PT_HIPROC": 0x7fffffff , # End of processor-specific
"PF_X": (1 << 0) , # Segment is executable
"PF_W": (1 << 1) , # Segment is writable
"PF_R": (1 << 2) , # Segment is readable
"PF_MASKOS": 0x0ff00000 , # OS-specific
"PF_MASKPROC": 0xf0000000 , # Processor-specific
"NT_PRSTATUS": 1 , # Contains copy of prstatus struct
"NT_FPREGSET": 2 , # Contains copy of fpregset struct
"NT_PRPSINFO": 3 , # Contains copy of prpsinfo struct
"NT_PRXREG": 4 , # Contains copy of prxregset struct
"NT_TASKSTRUCT": 4 , # Contains copy of task structure
"NT_PLATFORM": 5 , # String from sysinfo(SI_PLATFORM)
"NT_AUXV": 6 , # Contains copy of auxv array
"NT_GWINDOWS": 7 , # Contains copy of gwindows struct
"NT_ASRS": 8 , # Contains copy of asrset struct
"NT_PSTATUS": 10 , # Contains copy of pstatus struct
"NT_PSINFO": 13 , # Contains copy of psinfo struct
"NT_PRCRED": 14 , # Contains copy of prcred struct
"NT_UTSNAME": 15 , # Contains copy of utsname struct
"NT_LWPSTATUS": 16 , # Contains copy of lwpstatus struct
"NT_LWPSINFO": 17 , # Contains copy of lwpinfo struct
"NT_PRFPXREG": 20 , # Contains copy of fprxregset struct
"NT_PRXFPREG": 0x46e62b7f , # Contains copy of user_fxsr_struct
"NT_PPC_VMX": 0x100 , # PowerPC Altivec/VMX registers
"NT_PPC_SPE": 0x101 , # PowerPC SPE/EVR registers
"NT_PPC_VSX": 0x102 , # PowerPC VSX registers
"NT_386_TLS": 0x200 , # i386 TLS slots (struct user_desc)
"NT_386_IOPERM": 0x201 , # x86 io permission bitmap (1=deny)
"NT_X86_XSTATE": 0x202 , # x86 extended state using xsave
"NT_VERSION": 1 , # Contains a version string.
"DT_NULL": 0 , # Marks end of dynamic section
"DT_NEEDED": 1 , # Name of needed library
"DT_PLTRELSZ": 2 , # Size in bytes of PLT relocs
"DT_PLTGOT": 3 , # Processor defined value
"DT_HASH": 4 , # Address of symbol hash table
"DT_STRTAB": 5 , # Address of string table
"DT_SYMTAB": 6 , # Address of symbol table
"DT_RELA": 7 , # Address of Rela relocs
"DT_RELASZ": 8 , # Total size of Rela relocs
"DT_RELAENT": 9 , # Size of one Rela reloc
"DT_STRSZ": 10 , # Size of string table
"DT_SYMENT": 11 , # Size of one symbol table entry
"DT_INIT": 12 , # Address of init function
"DT_FINI": 13 , # Address of termination function
"DT_SONAME": 14 , # Name of shared object
"DT_RPATH": 15 , # Library search path (deprecated)
"DT_SYMBOLIC": 16 , # Start symbol search here
"DT_REL": 17 , # Address of Rel relocs
"DT_RELSZ": 18 , # Total size of Rel relocs
"DT_RELENT": 19 , # Size of one Rel reloc
"DT_PLTREL": 20 , # Type of reloc in PLT
"DT_DEBUG": 21 , # For debugging; unspecified
"DT_TEXTREL": 22 , # Reloc might modify .text
"DT_JMPREL": 23 , # Address of PLT relocs
"DT_BIND_NOW": 24 , # Process relocations of object
"DT_INIT_ARRAY": 25 , # Array with addresses of init fct
"DT_FINI_ARRAY": 26 , # Array with addresses of fini fct
"DT_INIT_ARRAYSZ": 27 , # Size in bytes of DT_INIT_ARRAY
"DT_FINI_ARRAYSZ": 28 , # Size in bytes of DT_FINI_ARRAY
"DT_RUNPATH": 29 , # Library search path
"DT_FLAGS": 30 , # Flags for the object being loaded
"DT_ENCODING": 32 , # Start of encoded range
"DT_PREINIT_ARRAY": 32 , # Array with addresses of preinit fct
"DT_PREINIT_ARRAYSZ": 33 , # size in bytes of DT_PREINIT_ARRAY
"DT_NUM": 34 , # Number used
"DT_LOOS": 0x6000000d , # Start of OS-specific
"DT_HIOS": 0x6ffff000 , # End of OS-specific
"DT_LOPROC": 0x70000000 , # Start of processor-specific
"DT_HIPROC": 0x7fffffff , # End of processor-specific
"DT_PROCNUM": MacroRef("DT_MIPS_NUM") , # Most used by any processor
"DT_VALRNGLO": 0x6ffffd00 , #
"DT_GNU_PRELINKED": 0x6ffffdf5 , # Prelinking timestamp
"DT_GNU_CONFLICTSZ": 0x6ffffdf6 , # Size of conflict section
"DT_GNU_LIBLISTSZ": 0x6ffffdf7 , # Size of library list
"DT_CHECKSUM": 0x6ffffdf8 , #
"DT_PLTPADSZ": 0x6ffffdf9 , #
"DT_MOVEENT": 0x6ffffdfa , #
"DT_MOVESZ": 0x6ffffdfb , #
"DT_FEATURE_1": 0x6ffffdfc , # Feature selection (DTF_*).
"DT_POSFLAG_1": 0x6ffffdfd , # Flags for DT_* entries, effecting
"DT_SYMINSZ": 0x6ffffdfe , # Size of syminfo table (in bytes)
"DT_SYMINENT": 0x6ffffdff , # Entry size of syminfo
"DT_VALRNGHI": 0x6ffffdff , #
"DT_VALNUM": 12 , #
"DT_ADDRRNGLO": 0x6ffffe00 , #
"DT_GNU_HASH": 0x6ffffef5 , # GNU-style hash table.
"DT_TLSDESC_PLT": 0x6ffffef6 , #
"DT_TLSDESC_GOT": 0x6ffffef7 , #
"DT_GNU_CONFLICT": 0x6ffffef8 , # Start of conflict section
"DT_GNU_LIBLIST": 0x6ffffef9 , # Library list
"DT_CONFIG": 0x6ffffefa , # Configuration information.
"DT_DEPAUDIT": 0x6ffffefb , # Dependency auditing.
"DT_AUDIT": 0x6ffffefc , # Object auditing.
"DT_PLTPAD": 0x6ffffefd , # PLT padding.
"DT_MOVETAB": 0x6ffffefe , # Move table.
"DT_SYMINFO": 0x6ffffeff , # Syminfo table.
"DT_ADDRRNGHI": 0x6ffffeff , #
"DT_ADDRNUM": 11 , #
"DT_VERSYM": 0x6ffffff0 , #
"DT_RELACOUNT": 0x6ffffff9 , #
"DT_RELCOUNT": 0x6ffffffa , #
"DT_FLAGS_1": 0x6ffffffb , # State flags, see DF_1_* below.
"DT_VERDEF": 0x6ffffffc , # Address of version definition
"DT_VERDEFNUM": 0x6ffffffd , # Number of version definitions
"DT_VERNEED": 0x6ffffffe , # Address of table with needed
"DT_VERNEEDNUM": 0x6fffffff , # Number of needed versions
"DT_VERSIONTAGNUM": 16 , #
"DT_AUXILIARY": 0x7ffffffd , # Shared object to load before self
"DT_FILTER": 0x7fffffff , # Shared object to get values from
"DT_EXTRANUM": 3 , #
"DF_ORIGIN": 0x00000001 , # Object may use DF_ORIGIN
"DF_SYMBOLIC": 0x00000002 , # Symbol resolutions starts here
"DF_TEXTREL": 0x00000004 , # Object contains text relocations
"DF_BIND_NOW": 0x00000008 , # No lazy binding for this object
"DF_STATIC_TLS": 0x00000010 , # Module uses the static TLS model
"DF_1_NOW": 0x00000001 , # Set RTLD_NOW for this object.
"DF_1_GLOBAL": 0x00000002 , # Set RTLD_GLOBAL for this object.
"DF_1_GROUP": 0x00000004 , # Set RTLD_GROUP for this object.
"DF_1_NODELETE": 0x00000008 , # Set RTLD_NODELETE for this object.
"DF_1_LOADFLTR": 0x00000010 , # Trigger filtee loading at runtime.
"DF_1_INITFIRST": 0x00000020 , # Set RTLD_INITFIRST for this object
"DF_1_NOOPEN": 0x00000040 , # Set RTLD_NOOPEN for this object.
"DF_1_ORIGIN": 0x00000080 , # $ORIGIN must be handled.
"DF_1_DIRECT": 0x00000100 , # Direct binding enabled.
"DF_1_TRANS": 0x00000200 , #
"DF_1_INTERPOSE": 0x00000400 , # Object is used to interpose.
"DF_1_NODEFLIB": 0x00000800 , # Ignore default lib search path.
"DF_1_NODUMP": 0x00001000 , # Object can't be dldump'ed.
"DF_1_CONFALT": 0x00002000 , # Configuration alternative created.
"DF_1_ENDFILTEE": 0x00004000 , # Filtee terminates filters search.
"DF_1_DISPRELDNE": 0x00008000 , # Disp reloc applied at build time.
"DF_1_DISPRELPND": 0x00010000 , # Disp reloc applied at run-time.
"DTF_1_PARINIT": 0x00000001 , #
"DTF_1_CONFEXP": 0x00000002 , #
"DF_P1_LAZYLOAD": 0x00000001 , # Lazyload following object.
"DF_P1_GROUPPERM": 0x00000002 , # Symbols from next object are not
"VER_DEF_NONE": 0 , # No version
"VER_DEF_CURRENT": 1 , # Current version
"VER_DEF_NUM": 2 , # Given version number
"VER_FLG_BASE": 0x1 , # Version definition of file itself
"VER_FLG_WEAK": 0x2 , # Weak version identifier
"VER_NDX_LOCAL": 0 , # Symbol is local.
"VER_NDX_GLOBAL": 1 , # Symbol is global.
"VER_NDX_LORESERVE": 0xff00 , # Beginning of reserved entries.
"VER_NDX_ELIMINATE": 0xff01 , # Symbol is to be eliminated.
"VER_NEED_NONE": 0 , # No version
"VER_NEED_CURRENT": 1 , # Current version
"VER_NEED_NUM": 2 , # Given version number
"VER_FLG_WEAK": 0x2 , # Weak version identifier
"AT_NULL": 0 , # End of vector
"AT_IGNORE": 1 , # Entry should be ignored
"AT_EXECFD": 2 , # File descriptor of program
"AT_PHDR": 3 , # Program headers for program
"AT_PHENT": 4 , # Size of program header entry
"AT_PHNUM": 5 , # Number of program headers
"AT_PAGESZ": 6 , # System page size
"AT_BASE": 7 , # Base address of interpreter
"AT_FLAGS": 8 , # Flags
"AT_ENTRY": 9 , # Entry point of program
"AT_NOTELF": 10 , # Program is not ELF
"AT_UID": 11 , # Real uid
"AT_EUID": 12 , # Effective uid
"AT_GID": 13 , # Real gid
"AT_EGID": 14 , # Effective gid
"AT_CLKTCK": 17 , # Frequency of times()
"AT_PLATFORM": 15 , # String identifying platform.
"AT_HWCAP": 16 , # Machine dependent hints about
"AT_FPUCW": 18 , # Used FPU control word.
"AT_DCACHEBSIZE": 19 , # Data cache block size.
"AT_ICACHEBSIZE": 20 , # Instruction cache block size.
"AT_UCACHEBSIZE": 21 , # Unified cache block size.
"AT_IGNOREPPC": 22 , # Entry should be ignored.
"AT_SECURE": 23 , # Boolean, was exec setuid-like?
"AT_BASE_PLATFORM": 24 , # String identifying real platforms.
"AT_RANDOM": 25 , # Address of 16 random bytes.
"AT_EXECFN": 31 , # Filename of executable.
"AT_SYSINFO": 32 , #
"AT_SYSINFO_EHDR": 33 , #
"AT_L1I_CACHESHAPE": 34 , #
"AT_L1D_CACHESHAPE": 35 , #
"AT_L2_CACHESHAPE": 36 , #
"AT_L3_CACHESHAPE": 37 , #
"ELF_NOTE_SOLARIS": "SUNW Solaris" , #
"ELF_NOTE_GNU": "GNU" , #
"ELF_NOTE_PAGESIZE_HINT": 1 , #
"NT_GNU_ABI_TAG": 1 , #
"ELF_NOTE_ABI": MacroRef("NT_GNU_ABI_TAG") , # Old name.
"ELF_NOTE_OS_LINUX": 0 , #
"ELF_NOTE_OS_GNU": 1 , #
"ELF_NOTE_OS_SOLARIS2": 2 , #
"ELF_NOTE_OS_FREEBSD": 3 , #
"NT_GNU_HWCAP": 2 , #
"NT_GNU_BUILD_ID": 3 , #
"NT_GNU_GOLD_VERSION": 4 , #
"EF_CPU32": 0x00810000 , #
"R_68K_NONE": 0 , # No reloc
"R_68K_32": 1 , # Direct 32 bit
"R_68K_16": 2 , # Direct 16 bit
"R_68K_8": 3 , # Direct 8 bit
"R_68K_PC32": 4 , # PC relative 32 bit
"R_68K_PC16": 5 , # PC relative 16 bit
"R_68K_PC8": 6 , # PC relative 8 bit
"R_68K_GOT32": 7 , # 32 bit PC relative GOT entry
"R_68K_GOT16": 8 , # 16 bit PC relative GOT entry
"R_68K_GOT8": 9 , # 8 bit PC relative GOT entry
"R_68K_GOT32O": 10 , # 32 bit GOT offset
"R_68K_GOT16O": 11 , # 16 bit GOT offset
"R_68K_GOT8O": 12 , # 8 bit GOT offset
"R_68K_PLT32": 13 , # 32 bit PC relative PLT address
"R_68K_PLT16": 14 , # 16 bit PC relative PLT address
"R_68K_PLT8": 15 , # 8 bit PC relative PLT address
"R_68K_PLT32O": 16 , # 32 bit PLT offset
"R_68K_PLT16O": 17 , # 16 bit PLT offset
"R_68K_PLT8O": 18 , # 8 bit PLT offset
"R_68K_COPY": 19 , # Copy symbol at runtime
"R_68K_GLOB_DAT": 20 , # Create GOT entry
"R_68K_JMP_SLOT": 21 , # Create PLT entry
"R_68K_RELATIVE": 22 , # Adjust by program base
"R_68K_TLS_GD32": 25 , # 32 bit GOT offset for GD
"R_68K_TLS_GD16": 26 , # 16 bit GOT offset for GD
"R_68K_TLS_GD8": 27 , # 8 bit GOT offset for GD
"R_68K_TLS_LDM32": 28 , # 32 bit GOT offset for LDM
"R_68K_TLS_LDM16": 29 , # 16 bit GOT offset for LDM
"R_68K_TLS_LDM8": 30 , # 8 bit GOT offset for LDM
"R_68K_TLS_LDO32": 31 , # 32 bit module-relative offset
"R_68K_TLS_LDO16": 32 , # 16 bit module-relative offset
"R_68K_TLS_LDO8": 33 , # 8 bit module-relative offset
"R_68K_TLS_IE32": 34 , # 32 bit GOT offset for IE
"R_68K_TLS_IE16": 35 , # 16 bit GOT offset for IE
"R_68K_TLS_IE8": 36 , # 8 bit GOT offset for IE
"R_68K_TLS_LE32": 37 , # 32 bit offset relative to
"R_68K_TLS_LE16": 38 , # 16 bit offset relative to
"R_68K_TLS_LE8": 39 , # 8 bit offset relative to
"R_68K_TLS_DTPMOD32": 40 , # 32 bit module number
"R_68K_TLS_DTPREL32": 41 , # 32 bit module-relative offset
"R_68K_TLS_TPREL32": 42 , # 32 bit TP-relative offset
"R_68K_NUM": 43 , #
"R_386_NONE": 0 , # No reloc
"R_386_32": 1 , # Direct 32 bit
"R_386_PC32": 2 , # PC relative 32 bit
"R_386_GOT32": 3 , # 32 bit GOT entry
"R_386_PLT32": 4 , # 32 bit PLT address
"R_386_COPY": 5 , # Copy symbol at runtime
"R_386_GLOB_DAT": 6 , # Create GOT entry
"R_386_JMP_SLOT": 7 , # Create PLT entry
"R_386_RELATIVE": 8 , # Adjust by program base
"R_386_GOTOFF": 9 , # 32 bit offset to GOT
"R_386_GOTPC": 10 , # 32 bit PC relative offset to GOT
"R_386_32PLT": 11 , #
"R_386_TLS_TPOFF": 14 , # Offset in static TLS block
"R_386_TLS_IE": 15 , # Address of GOT entry for static TLS
"R_386_TLS_GOTIE": 16 , # GOT entry for static TLS block
"R_386_TLS_LE": 17 , # Offset relative to static TLS
"R_386_TLS_GD": 18 , # Direct 32 bit for GNU version of
"R_386_TLS_LDM": 19 , # Direct 32 bit for GNU version of
"R_386_16": 20 , #
"R_386_PC16": 21 , #
"R_386_8": 22 , #
"R_386_PC8": 23 , #
"R_386_TLS_GD_32": 24 , # Direct 32 bit for general dynamic
"R_386_TLS_GD_PUSH": 25 , # Tag for pushl in GD TLS code
"R_386_TLS_GD_CALL": 26 , # Relocation for call to
"R_386_TLS_GD_POP": 27 , # Tag for popl in GD TLS code
"R_386_TLS_LDM_32": 28 , # Direct 32 bit for local dynamic
"R_386_TLS_LDM_PUSH": 29 , # Tag for pushl in LDM TLS code
"R_386_TLS_LDM_CALL": 30 , # Relocation for call to
"R_386_TLS_LDM_POP": 31 , # Tag for popl in LDM TLS code
"R_386_TLS_LDO_32": 32 , # Offset relative to TLS block
"R_386_TLS_IE_32": 33 , # GOT entry for negated static TLS
"R_386_TLS_LE_32": 34 , # Negated offset relative to static
"R_386_TLS_DTPMOD32": 35 , # ID of module containing symbol
"R_386_TLS_DTPOFF32": 36 , # Offset in TLS block
"R_386_TLS_TPOFF32": 37 , # Negated offset in static TLS block
"R_386_TLS_GOTDESC": 39 , # GOT offset for TLS descriptor.
"R_386_TLS_DESC_CALL": 40 , # Marker of call through TLS
"R_386_TLS_DESC": 41 , # TLS descriptor containing
"R_386_IRELATIVE": 42 , # Adjust indirectly by program base
"R_386_NUM": 43 , #
"STT_SPARC_REGISTER": 13 , # Global register reserved to app.
"EF_SPARCV9_MM": 3 , #
"EF_SPARCV9_TSO": 0 , #
"EF_SPARCV9_PSO": 1 , #
"EF_SPARCV9_RMO": 2 , #
"EF_SPARC_LEDATA": 0x800000 , # little endian data
"EF_SPARC_EXT_MASK": 0xFFFF00 , #
"EF_SPARC_32PLUS": 0x000100 , # generic V8+ features
"EF_SPARC_SUN_US1": 0x000200 , # Sun UltraSPARC1 extensions
"EF_SPARC_HAL_R1": 0x000400 , # HAL R1 extensions
"EF_SPARC_SUN_US3": 0x000800 , # Sun UltraSPARCIII extensions
"R_SPARC_NONE": 0 , # No reloc
"R_SPARC_8": 1 , # Direct 8 bit
"R_SPARC_16": 2 , # Direct 16 bit
"R_SPARC_32": 3 , # Direct 32 bit
"R_SPARC_DISP8": 4 , # PC relative 8 bit
"R_SPARC_DISP16": 5 , # PC relative 16 bit
"R_SPARC_DISP32": 6 , # PC relative 32 bit
"R_SPARC_WDISP30": 7 , # PC relative 30 bit shifted
"R_SPARC_WDISP22": 8 , # PC relative 22 bit shifted
"R_SPARC_HI22": 9 , # High 22 bit
"R_SPARC_22": 10 , # Direct 22 bit
"R_SPARC_13": 11 , # Direct 13 bit
"R_SPARC_LO10": 12 , # Truncated 10 bit
"R_SPARC_GOT10": 13 , # Truncated 10 bit GOT entry
"R_SPARC_GOT13": 14 , # 13 bit GOT entry
"R_SPARC_GOT22": 15 , # 22 bit GOT entry shifted
"R_SPARC_PC10": 16 , # PC relative 10 bit truncated
"R_SPARC_PC22": 17 , # PC relative 22 bit shifted
"R_SPARC_WPLT30": 18 , # 30 bit PC relative PLT address
"R_SPARC_COPY": 19 , # Copy symbol at runtime
"R_SPARC_GLOB_DAT": 20 , # Create GOT entry
"R_SPARC_JMP_SLOT": 21 , # Create PLT entry
"R_SPARC_RELATIVE": 22 , # Adjust by program base
"R_SPARC_UA32": 23 , # Direct 32 bit unaligned
"R_SPARC_PLT32": 24 , # Direct 32 bit ref to PLT entry
"R_SPARC_HIPLT22": 25 , # High 22 bit PLT entry
"R_SPARC_LOPLT10": 26 , # Truncated 10 bit PLT entry
"R_SPARC_PCPLT32": 27 , # PC rel 32 bit ref to PLT entry
"R_SPARC_PCPLT22": 28 , # PC rel high 22 bit PLT entry
"R_SPARC_PCPLT10": 29 , # PC rel trunc 10 bit PLT entry
"R_SPARC_10": 30 , # Direct 10 bit
"R_SPARC_11": 31 , # Direct 11 bit
"R_SPARC_64": 32 , # Direct 64 bit
"R_SPARC_OLO10": 33 , # 10bit with secondary 13bit addend
"R_SPARC_HH22": 34 , # Top 22 bits of direct 64 bit
"R_SPARC_HM10": 35 , # High middle 10 bits of ...
"R_SPARC_LM22": 36 , # Low middle 22 bits of ...
"R_SPARC_PC_HH22": 37 , # Top 22 bits of pc rel 64 bit
"R_SPARC_PC_HM10": 38 , # High middle 10 bit of ...
"R_SPARC_PC_LM22": 39 , # Low miggle 22 bits of ...
"R_SPARC_WDISP16": 40 , # PC relative 16 bit shifted
"R_SPARC_WDISP19": 41 , # PC relative 19 bit shifted
"R_SPARC_GLOB_JMP": 42 , # was part of v9 ABI but was removed
"R_SPARC_7": 43 , # Direct 7 bit
"R_SPARC_5": 44 , # Direct 5 bit
"R_SPARC_6": 45 , # Direct 6 bit
"R_SPARC_DISP64": 46 , # PC relative 64 bit
"R_SPARC_PLT64": 47 , # Direct 64 bit ref to PLT entry
"R_SPARC_HIX22": 48 , # High 22 bit complemented
"R_SPARC_LOX10": 49 , # Truncated 11 bit complemented
"R_SPARC_H44": 50 , # Direct high 12 of 44 bit
"R_SPARC_M44": 51 , # Direct mid 22 of 44 bit
"R_SPARC_L44": 52 , # Direct low 10 of 44 bit
"R_SPARC_REGISTER": 53 , # Global register usage
"R_SPARC_UA64": 54 , # Direct 64 bit unaligned
"R_SPARC_UA16": 55 , # Direct 16 bit unaligned
"R_SPARC_TLS_GD_HI22": 56 , #
"R_SPARC_TLS_GD_LO10": 57 , #
"R_SPARC_TLS_GD_ADD": 58 , #
"R_SPARC_TLS_GD_CALL": 59 , #
"R_SPARC_TLS_LDM_HI22": 60 , #
"R_SPARC_TLS_LDM_LO10": 61 , #
"R_SPARC_TLS_LDM_ADD": 62 , #
"R_SPARC_TLS_LDM_CALL": 63 , #
"R_SPARC_TLS_LDO_HIX22": 64 , #
"R_SPARC_TLS_LDO_LOX10": 65 , #
"R_SPARC_TLS_LDO_ADD": 66 , #
"R_SPARC_TLS_IE_HI22": 67 , #
"R_SPARC_TLS_IE_LO10": 68 , #
"R_SPARC_TLS_IE_LD": 69 , #
"R_SPARC_TLS_IE_LDX": 70 , #
"R_SPARC_TLS_IE_ADD": 71 , #
"R_SPARC_TLS_LE_HIX22": 72 , #
"R_SPARC_TLS_LE_LOX10": 73 , #
"R_SPARC_TLS_DTPMOD32": 74 , #
"R_SPARC_TLS_DTPMOD64": 75 , #
"R_SPARC_TLS_DTPOFF32": 76 , #
"R_SPARC_TLS_DTPOFF64": 77 , #
"R_SPARC_TLS_TPOFF32": 78 , #
"R_SPARC_TLS_TPOFF64": 79 , #
"R_SPARC_GOTDATA_HIX22": 80 , #
"R_SPARC_GOTDATA_LOX10": 81 , #
"R_SPARC_GOTDATA_OP_HIX22": 82 , #
"R_SPARC_GOTDATA_OP_LOX10": 83 , #
"R_SPARC_GOTDATA_OP": 84 , #
"R_SPARC_H34": 85 , #
"R_SPARC_SIZE32": 86 , #
"R_SPARC_SIZE64": 87 , #
"R_SPARC_JMP_IREL": 248 , #
"R_SPARC_IRELATIVE": 249 , #
"R_SPARC_GNU_VTINHERIT": 250 , #
"R_SPARC_GNU_VTENTRY": 251 , #
"R_SPARC_REV32": 252 , #
"R_SPARC_NUM": 253 , #
"DT_SPARC_REGISTER": 0x70000001 , #
"DT_SPARC_NUM": 2 , #
"EF_MIPS_NOREORDER": 1 , # A .noreorder directive was used
"EF_MIPS_PIC": 2 , # Contains PIC code
"EF_MIPS_CPIC": 4 , # Uses PIC calling sequence
"EF_MIPS_XGOT": 8 , #
"EF_MIPS_64BIT_WHIRL": 16 , #
"EF_MIPS_ABI2": 32 , #
"EF_MIPS_ABI_ON32": 64 , #
"EF_MIPS_ARCH": 0xf0000000 , # MIPS architecture level
"EF_MIPS_ARCH_1": 0x00000000 , # -mips1 code.
"EF_MIPS_ARCH_2": 0x10000000 , # -mips2 code.
"EF_MIPS_ARCH_3": 0x20000000 , # -mips3 code.
"EF_MIPS_ARCH_4": 0x30000000 , # -mips4 code.
"EF_MIPS_ARCH_5": 0x40000000 , # -mips5 code.
"EF_MIPS_ARCH_32": 0x60000000 , # MIPS32 code.
"EF_MIPS_ARCH_64": 0x70000000 , # MIPS64 code.
"E_MIPS_ARCH_1": 0x00000000 , # -mips1 code.
"E_MIPS_ARCH_2": 0x10000000 , # -mips2 code.
"E_MIPS_ARCH_3": 0x20000000 , # -mips3 code.
"E_MIPS_ARCH_4": 0x30000000 , # -mips4 code.
"E_MIPS_ARCH_5": 0x40000000 , # -mips5 code.
"E_MIPS_ARCH_32": 0x60000000 , # MIPS32 code.
"E_MIPS_ARCH_64": 0x70000000 , # MIPS64 code.
"SHN_MIPS_ACOMMON": 0xff00 , # Allocated common symbols
"SHN_MIPS_TEXT": 0xff01 , # Allocated test symbols.
"SHN_MIPS_DATA": 0xff02 , # Allocated data symbols.
"SHN_MIPS_SCOMMON": 0xff03 , # Small common symbols
"SHN_MIPS_SUNDEFINED": 0xff04 , # Small undefined symbols
"SHT_MIPS_LIBLIST": 0x70000000 , # Shared objects used in link
"SHT_MIPS_MSYM": 0x70000001 , #
"SHT_MIPS_CONFLICT": 0x70000002 , # Conflicting symbols
"SHT_MIPS_GPTAB": 0x70000003 , # Global data area sizes
"SHT_MIPS_UCODE": 0x70000004 , # Reserved for SGI/MIPS compilers
"SHT_MIPS_DEBUG": 0x70000005 , # MIPS ECOFF debugging information
"SHT_MIPS_REGINFO": 0x70000006 , # Register usage information
"SHT_MIPS_PACKAGE": 0x70000007 , #
"SHT_MIPS_PACKSYM": 0x70000008 , #
"SHT_MIPS_RELD": 0x70000009 , #
"SHT_MIPS_IFACE": 0x7000000b , #
"SHT_MIPS_CONTENT": 0x7000000c , #
"SHT_MIPS_OPTIONS": 0x7000000d , # Miscellaneous options.
"SHT_MIPS_SHDR": 0x70000010 , #
"SHT_MIPS_FDESC": 0x70000011 , #
"SHT_MIPS_EXTSYM": 0x70000012 , #
"SHT_MIPS_DENSE": 0x70000013 , #
"SHT_MIPS_PDESC": 0x70000014 , #
"SHT_MIPS_LOCSYM": 0x70000015 , #
"SHT_MIPS_AUXSYM": 0x70000016 , #
"SHT_MIPS_OPTSYM": 0x70000017 , #
"SHT_MIPS_LOCSTR": 0x70000018 , #
"SHT_MIPS_LINE": 0x70000019 , #
"SHT_MIPS_RFDESC": 0x7000001a , #
"SHT_MIPS_DELTASYM": 0x7000001b , #
"SHT_MIPS_DELTAINST": 0x7000001c , #
"SHT_MIPS_DELTACLASS": 0x7000001d , #
"SHT_MIPS_DWARF": 0x7000001e , # DWARF debugging information.
"SHT_MIPS_DELTADECL": 0x7000001f , #
"SHT_MIPS_SYMBOL_LIB": 0x70000020 , #
"SHT_MIPS_EVENTS": 0x70000021 , # Event section.
"SHT_MIPS_TRANSLATE": 0x70000022 , #
"SHT_MIPS_PIXIE": 0x70000023 , #
"SHT_MIPS_XLATE": 0x70000024 , #
"SHT_MIPS_XLATE_DEBUG": 0x70000025 , #
"SHT_MIPS_WHIRL": 0x70000026 , #
"SHT_MIPS_EH_REGION": 0x70000027 , #
"SHT_MIPS_XLATE_OLD": 0x70000028 , #
"SHT_MIPS_PDR_EXCEPTION": 0x70000029 , #
"SHF_MIPS_GPREL": 0x10000000 , # Must be part of global data area
"SHF_MIPS_MERGE": 0x20000000 , #
"SHF_MIPS_ADDR": 0x40000000 , #
"SHF_MIPS_STRINGS": 0x80000000 , #
"SHF_MIPS_NOSTRIP": 0x08000000 , #
"SHF_MIPS_LOCAL": 0x04000000 , #
"SHF_MIPS_NAMES": 0x02000000 , #
"SHF_MIPS_NODUPE": 0x01000000 , #
"STO_MIPS_DEFAULT": 0x0 , #
"STO_MIPS_INTERNAL": 0x1 , #
"STO_MIPS_HIDDEN": 0x2 , #
"STO_MIPS_PROTECTED": 0x3 , #
"STO_MIPS_PLT": 0x8 , #
"STO_MIPS_SC_ALIGN_UNUSED": 0xff , #
"STB_MIPS_SPLIT_COMMON": 13 , #
"ODK_NULL": 0 , # Undefined.
"ODK_REGINFO": 1 , # Register usage information.
"ODK_EXCEPTIONS": 2 , # Exception processing options.
"ODK_PAD": 3 , # Section padding options.
"ODK_HWPATCH": 4 , # Hardware workarounds performed
"ODK_FILL": 5 , # record the fill value used by the linker.
"ODK_TAGS": 6 , # reserve space for desktop tools to write.
"ODK_HWAND": 7 , # HW workarounds. 'AND' bits when merging.
"ODK_HWOR": 8 , # HW workarounds. 'OR' bits when merging.
"OEX_FPU_MIN": 0x1f , # FPE's which MUST be enabled.
"OEX_FPU_MAX": 0x1f00 , # FPE's which MAY be enabled.
"OEX_PAGE0": 0x10000 , # page zero must be mapped.
"OEX_SMM": 0x20000 , # Force sequential memory mode?
"OEX_FPDBUG": 0x40000 , # Force floating point debug mode?
"OEX_PRECISEFP": MacroRef("OEX_FPDBUG") , #
"OEX_DISMISS": 0x80000 , # Dismiss invalid address faults?
"OEX_FPU_INVAL": 0x10 , #
"OEX_FPU_DIV0": 0x08 , #
"OEX_FPU_OFLO": 0x04 , #
"OEX_FPU_UFLO": 0x02 , #
"OEX_FPU_INEX": 0x01 , #
"OHW_R4KEOP": 0x1 , # R4000 end-of-page patch.
"OHW_R8KPFETCH": 0x2 , # may need R8000 prefetch patch.
"OHW_R5KEOP": 0x4 , # R5000 end-of-page patch.
"OHW_R5KCVTL": 0x8 , # R5000 cvt.[ds].l bug. clean=1.
"OPAD_PREFIX": 0x1 , #
"OPAD_POSTFIX": 0x2 , #
"OPAD_SYMBOL": 0x4 , #
"OHWA0_R4KEOP_CHECKED": 0x00000001 , #
"OHWA1_R4KEOP_CLEAN": 0x00000002 , #
"R_MIPS_NONE": 0 , # No reloc
"R_MIPS_16": 1 , # Direct 16 bit
"R_MIPS_32": 2 , # Direct 32 bit
"R_MIPS_REL32": 3 , # PC relative 32 bit
"R_MIPS_26": 4 , # Direct 26 bit shifted
"R_MIPS_HI16": 5 , # High 16 bit
"R_MIPS_LO16": 6 , # Low 16 bit
"R_MIPS_GPREL16": 7 , # GP relative 16 bit
"R_MIPS_LITERAL": 8 , # 16 bit literal entry
"R_MIPS_GOT16": 9 , # 16 bit GOT entry
"R_MIPS_PC16": 10 , # PC relative 16 bit
"R_MIPS_CALL16": 11 , # 16 bit GOT entry for function
"R_MIPS_GPREL32": 12 , # GP relative 32 bit
"R_MIPS_SHIFT5": 16 , #
"R_MIPS_SHIFT6": 17 , #
"R_MIPS_64": 18 , #
"R_MIPS_GOT_DISP": 19 , #
"R_MIPS_GOT_PAGE": 20 , #
"R_MIPS_GOT_OFST": 21 , #
"R_MIPS_GOT_HI16": 22 , #
"R_MIPS_GOT_LO16": 23 , #
"R_MIPS_SUB": 24 , #
"R_MIPS_INSERT_A": 25 , #
"R_MIPS_INSERT_B": 26 , #
"R_MIPS_DELETE": 27 , #
"R_MIPS_HIGHER": 28 , #
"R_MIPS_HIGHEST": 29 , #
"R_MIPS_CALL_HI16": 30 , #
"R_MIPS_CALL_LO16": 31 , #
"R_MIPS_SCN_DISP": 32 , #
"R_MIPS_REL16": 33 , #
"R_MIPS_ADD_IMMEDIATE": 34 , #
"R_MIPS_PJUMP": 35 , #
"R_MIPS_RELGOT": 36 , #
"R_MIPS_JALR": 37 , #
"R_MIPS_TLS_DTPMOD32": 38 , # Module number 32 bit
"R_MIPS_TLS_DTPREL32": 39 , # Module-relative offset 32 bit
"R_MIPS_TLS_DTPMOD64": 40 , # Module number 64 bit
"R_MIPS_TLS_DTPREL64": 41 , # Module-relative offset 64 bit
"R_MIPS_TLS_GD": 42 , # 16 bit GOT offset for GD
"R_MIPS_TLS_LDM": 43 , # 16 bit GOT offset for LDM
"R_MIPS_TLS_DTPREL_HI16": 44 , # Module-relative offset, high 16 bits
"R_MIPS_TLS_DTPREL_LO16": 45 , # Module-relative offset, low 16 bits
"R_MIPS_TLS_GOTTPREL": 46 , # 16 bit GOT offset for IE
"R_MIPS_TLS_TPREL32": 47 , # TP-relative offset, 32 bit
"R_MIPS_TLS_TPREL64": 48 , # TP-relative offset, 64 bit
"R_MIPS_TLS_TPREL_HI16": 49 , # TP-relative offset, high 16 bits
"R_MIPS_TLS_TPREL_LO16": 50 , # TP-relative offset, low 16 bits
"R_MIPS_GLOB_DAT": 51 , #
"R_MIPS_COPY": 126 , #
"R_MIPS_JUMP_SLOT": 127 , #
"R_MIPS_NUM": 128 , #
"PT_MIPS_REGINFO": 0x70000000 , # Register usage information
"PT_MIPS_RTPROC": 0x70000001 , # Runtime procedure table.
"PT_MIPS_OPTIONS": 0x70000002 , #
"PF_MIPS_LOCAL": 0x10000000 , #
"DT_MIPS_RLD_VERSION": 0x70000001 , # Runtime linker interface version
"DT_MIPS_TIME_STAMP": 0x70000002 , # Timestamp
"DT_MIPS_ICHECKSUM": 0x70000003 , # Checksum
"DT_MIPS_IVERSION": 0x70000004 , # Version string (string tbl index)
"DT_MIPS_FLAGS": 0x70000005 , # Flags
"DT_MIPS_BASE_ADDRESS": 0x70000006 , # Base address
"DT_MIPS_MSYM": 0x70000007 , #
"DT_MIPS_CONFLICT": 0x70000008 , # Address of CONFLICT section
"DT_MIPS_LIBLIST": 0x70000009 , # Address of LIBLIST section
"DT_MIPS_LOCAL_GOTNO": 0x7000000a , # Number of local GOT entries
"DT_MIPS_CONFLICTNO": 0x7000000b , # Number of CONFLICT entries
"DT_MIPS_LIBLISTNO": 0x70000010 , # Number of LIBLIST entries
"DT_MIPS_SYMTABNO": 0x70000011 , # Number of DYNSYM entries
"DT_MIPS_UNREFEXTNO": 0x70000012 , # First external DYNSYM
"DT_MIPS_GOTSYM": 0x70000013 , # First GOT entry in DYNSYM
"DT_MIPS_HIPAGENO": 0x70000014 , # Number of GOT page table entries
"DT_MIPS_RLD_MAP": 0x70000016 , # Address of run time loader map.
"DT_MIPS_DELTA_CLASS": 0x70000017 , # Delta C++ class definition.
"DT_MIPS_DELTA_CLASS_NO": 0x70000018 , # Number of entries in
"DT_MIPS_DELTA_INSTANCE": 0x70000019 , # Delta C++ class instances.
"DT_MIPS_DELTA_INSTANCE_NO": 0x7000001a , # Number of entries in
"DT_MIPS_DELTA_RELOC": 0x7000001b , # Delta relocations.
"DT_MIPS_DELTA_RELOC_NO": 0x7000001c , # Number of entries in
"DT_MIPS_DELTA_SYM": 0x7000001d , # Delta symbols that Delta
"DT_MIPS_DELTA_SYM_NO": 0x7000001e , # Number of entries in
"DT_MIPS_DELTA_CLASSSYM": 0x70000020 , # Delta symbols that hold the
"DT_MIPS_DELTA_CLASSSYM_NO": 0x70000021 , # Number of entries in
"DT_MIPS_CXX_FLAGS": 0x70000022 , # Flags indicating for C++ flavor.
"DT_MIPS_PIXIE_INIT": 0x70000023 , #
"DT_MIPS_SYMBOL_LIB": 0x70000024 , #
"DT_MIPS_LOCALPAGE_GOTIDX": 0x70000025 , #
"DT_MIPS_LOCAL_GOTIDX": 0x70000026 , #
"DT_MIPS_HIDDEN_GOTIDX": 0x70000027 , #
"DT_MIPS_PROTECTED_GOTIDX": 0x70000028 , #
"DT_MIPS_OPTIONS": 0x70000029 , # Address of .options.
"DT_MIPS_INTERFACE": 0x7000002a , # Address of .interface.
"DT_MIPS_DYNSTR_ALIGN": 0x7000002b , #
"DT_MIPS_INTERFACE_SIZE": 0x7000002c , # Size of the .interface section.
"DT_MIPS_RLD_TEXT_RESOLVE_ADDR": 0x7000002d , # Address of rld_text_rsolve
"DT_MIPS_PERF_SUFFIX": 0x7000002e , # Default suffix of dso to be added
"DT_MIPS_COMPACT_SIZE": 0x7000002f , # (O32)Size of compact rel section.
"DT_MIPS_GP_VALUE": 0x70000030 , # GP value for aux GOTs.
"DT_MIPS_AUX_DYNAMIC": 0x70000031 , # Address of aux .dynamic.
"DT_MIPS_PLTGOT": 0x70000032 , #
"DT_MIPS_RWPLT": 0x70000034 , #
"DT_MIPS_NUM": 0x35 , #
"RHF_NONE": 0 , # No flags
"RHF_QUICKSTART": (1 << 0) , # Use quickstart
"RHF_NOTPOT": (1 << 1) , # Hash size not power of 2
"RHF_NO_LIBRARY_REPLACEMENT": (1 << 2) , # Ignore LD_LIBRARY_PATH
"RHF_NO_MOVE": (1 << 3) , #
"RHF_SGI_ONLY": (1 << 4) , #
"RHF_GUARANTEE_INIT": (1 << 5) , #
"RHF_DELTA_C_PLUS_PLUS": (1 << 6) , #
"RHF_GUARANTEE_START_INIT": (1 << 7) , #
"RHF_PIXIE": (1 << 8) , #
"RHF_DEFAULT_DELAY_LOAD": (1 << 9) , #
"RHF_REQUICKSTART": (1 << 10) , #
"RHF_REQUICKSTARTED": (1 << 11) , #
"RHF_CORD": (1 << 12) , #
"RHF_NO_UNRES_UNDEF": (1 << 13) , #
"RHF_RLD_ORDER_SAFE": (1 << 14) , #
"LL_NONE": 0 , #
"LL_EXACT_MATCH": (1 << 0) , # Require exact match
"LL_IGNORE_INT_VER": (1 << 1) , # Ignore interface version
"LL_REQUIRE_MINOR": (1 << 2) , #
"LL_EXPORTS": (1 << 3) , #
"LL_DELAY_LOAD": (1 << 4) , #
"LL_DELTA": (1 << 5) , #
"EF_PARISC_TRAPNIL": 0x00010000 , # Trap nil pointer dereference.
"EF_PARISC_EXT": 0x00020000 , # Program uses arch. extensions.
"EF_PARISC_LSB": 0x00040000 , # Program expects little endian.
"EF_PARISC_WIDE": 0x00080000 , # Program expects wide mode.
"EF_PARISC_NO_KABP": 0x00100000 , # No kernel assisted branch
"EF_PARISC_LAZYSWAP": 0x00400000 , # Allow lazy swapping.
"EF_PARISC_ARCH": 0x0000ffff , # Architecture version.
"EFA_PARISC_1_0": 0x020b , # PA-RISC 1.0 big-endian.
"EFA_PARISC_1_1": 0x0210 , # PA-RISC 1.1 big-endian.
"EFA_PARISC_2_0": 0x0214 , # PA-RISC 2.0 big-endian.
"SHN_PARISC_ANSI_COMMON": 0xff00 , # Section for tenatively declared
"SHN_PARISC_HUGE_COMMON": 0xff01 , # Common blocks in huge model.
"SHT_PARISC_EXT": 0x70000000 , # Contains product specific ext.
"SHT_PARISC_UNWIND": 0x70000001 , # Unwind information.
"SHT_PARISC_DOC": 0x70000002 , # Debug info for optimized code.
"SHF_PARISC_SHORT": 0x20000000 , # Section with short addressing.
"SHF_PARISC_HUGE": 0x40000000 , # Section far from gp.
"SHF_PARISC_SBP": 0x80000000 , # Static branch prediction code.
"STT_PARISC_MILLICODE": 13 , # Millicode function entry point.
"STT_HP_OPAQUE": (MacroRef("STT_LOOS") + 0x1) , #
"STT_HP_STUB": (MacroRef("STT_LOOS") + 0x2) , #
"R_PARISC_NONE": 0 , # No reloc.
"R_PARISC_DIR32": 1 , # Direct 32-bit reference.
"R_PARISC_DIR21L": 2 , # Left 21 bits of eff. address.
"R_PARISC_DIR17R": 3 , # Right 17 bits of eff. address.
"R_PARISC_DIR17F": 4 , # 17 bits of eff. address.
"R_PARISC_DIR14R": 6 , # Right 14 bits of eff. address.
"R_PARISC_PCREL32": 9 , # 32-bit rel. address.
"R_PARISC_PCREL21L": 10 , # Left 21 bits of rel. address.
"R_PARISC_PCREL17R": 11 , # Right 17 bits of rel. address.
"R_PARISC_PCREL17F": 12 , # 17 bits of rel. address.
"R_PARISC_PCREL14R": 14 , # Right 14 bits of rel. address.
"R_PARISC_DPREL21L": 18 , # Left 21 bits of rel. address.
"R_PARISC_DPREL14R": 22 , # Right 14 bits of rel. address.
"R_PARISC_GPREL21L": 26 , # GP-relative, left 21 bits.
"R_PARISC_GPREL14R": 30 , # GP-relative, right 14 bits.
"R_PARISC_LTOFF21L": 34 , # LT-relative, left 21 bits.
"R_PARISC_LTOFF14R": 38 , # LT-relative, right 14 bits.
"R_PARISC_SECREL32": 41 , # 32 bits section rel. address.
"R_PARISC_SEGBASE": 48 , # No relocation, set segment base.
"R_PARISC_SEGREL32": 49 , # 32 bits segment rel. address.
"R_PARISC_PLTOFF21L": 50 , # PLT rel. address, left 21 bits.
"R_PARISC_PLTOFF14R": 54 , # PLT rel. address, right 14 bits.
"R_PARISC_LTOFF_FPTR32": 57 , # 32 bits LT-rel. function pointer.
"R_PARISC_LTOFF_FPTR21L": 58 , # LT-rel. fct ptr, left 21 bits.
"R_PARISC_LTOFF_FPTR14R": 62 , # LT-rel. fct ptr, right 14 bits.
"R_PARISC_FPTR64": 64 , # 64 bits function address.
"R_PARISC_PLABEL32": 65 , # 32 bits function address.
"R_PARISC_PLABEL21L": 66 , # Left 21 bits of fdesc address.
"R_PARISC_PLABEL14R": 70 , # Right 14 bits of fdesc address.
"R_PARISC_PCREL64": 72 , # 64 bits PC-rel. address.
"R_PARISC_PCREL22F": 74 , # 22 bits PC-rel. address.
"R_PARISC_PCREL14WR": 75 , # PC-rel. address, right 14 bits.
"R_PARISC_PCREL14DR": 76 , # PC rel. address, right 14 bits.
"R_PARISC_PCREL16F": 77 , # 16 bits PC-rel. address.
"R_PARISC_PCREL16WF": 78 , # 16 bits PC-rel. address.
"R_PARISC_PCREL16DF": 79 , # 16 bits PC-rel. address.
"R_PARISC_DIR64": 80 , # 64 bits of eff. address.
"R_PARISC_DIR14WR": 83 , # 14 bits of eff. address.
"R_PARISC_DIR14DR": 84 , # 14 bits of eff. address.
"R_PARISC_DIR16F": 85 , # 16 bits of eff. address.
"R_PARISC_DIR16WF": 86 , # 16 bits of eff. address.
"R_PARISC_DIR16DF": 87 , # 16 bits of eff. address.
"R_PARISC_GPREL64": 88 , # 64 bits of GP-rel. address.
"R_PARISC_GPREL14WR": 91 , # GP-rel. address, right 14 bits.
"R_PARISC_GPREL14DR": 92 , # GP-rel. address, right 14 bits.
"R_PARISC_GPREL16F": 93 , # 16 bits GP-rel. address.
"R_PARISC_GPREL16WF": 94 , # 16 bits GP-rel. address.
"R_PARISC_GPREL16DF": 95 , # 16 bits GP-rel. address.
"R_PARISC_LTOFF64": 96 , # 64 bits LT-rel. address.
"R_PARISC_LTOFF14WR": 99 , # LT-rel. address, right 14 bits.
"R_PARISC_LTOFF14DR": 100 , # LT-rel. address, right 14 bits.
"R_PARISC_LTOFF16F": 101 , # 16 bits LT-rel. address.
"R_PARISC_LTOFF16WF": 102 , # 16 bits LT-rel. address.
"R_PARISC_LTOFF16DF": 103 , # 16 bits LT-rel. address.
"R_PARISC_SECREL64": 104 , # 64 bits section rel. address.
"R_PARISC_SEGREL64": 112 , # 64 bits segment rel. address.
"R_PARISC_PLTOFF14WR": 115 , # PLT-rel. address, right 14 bits.
"R_PARISC_PLTOFF14DR": 116 , # PLT-rel. address, right 14 bits.
"R_PARISC_PLTOFF16F": 117 , # 16 bits LT-rel. address.
"R_PARISC_PLTOFF16WF": 118 , # 16 bits PLT-rel. address.
"R_PARISC_PLTOFF16DF": 119 , # 16 bits PLT-rel. address.
"R_PARISC_LTOFF_FPTR64": 120 , # 64 bits LT-rel. function ptr.
"R_PARISC_LTOFF_FPTR14WR": 123 , # LT-rel. fct. ptr., right 14 bits.
"R_PARISC_LTOFF_FPTR14DR": 124 , # LT-rel. fct. ptr., right 14 bits.
"R_PARISC_LTOFF_FPTR16F": 125 , # 16 bits LT-rel. function ptr.
"R_PARISC_LTOFF_FPTR16WF": 126 , # 16 bits LT-rel. function ptr.
"R_PARISC_LTOFF_FPTR16DF": 127 , # 16 bits LT-rel. function ptr.
"R_PARISC_LORESERVE": 128 , #
"R_PARISC_COPY": 128 , # Copy relocation.
"R_PARISC_IPLT": 129 , # Dynamic reloc, imported PLT
"R_PARISC_EPLT": 130 , # Dynamic reloc, exported PLT
"R_PARISC_TPREL32": 153 , # 32 bits TP-rel. address.
"R_PARISC_TPREL21L": 154 , # TP-rel. address, left 21 bits.
"R_PARISC_TPREL14R": 158 , # TP-rel. address, right 14 bits.
"R_PARISC_LTOFF_TP21L": 162 , # LT-TP-rel. address, left 21 bits.
"R_PARISC_LTOFF_TP14R": 166 , # LT-TP-rel. address, right 14 bits.
"R_PARISC_LTOFF_TP14F": 167 , # 14 bits LT-TP-rel. address.
"R_PARISC_TPREL64": 216 , # 64 bits TP-rel. address.
"R_PARISC_TPREL14WR": 219 , # TP-rel. address, right 14 bits.
"R_PARISC_TPREL14DR": 220 , # TP-rel. address, right 14 bits.
"R_PARISC_TPREL16F": 221 , # 16 bits TP-rel. address.
"R_PARISC_TPREL16WF": 222 , # 16 bits TP-rel. address.
"R_PARISC_TPREL16DF": 223 , # 16 bits TP-rel. address.
"R_PARISC_LTOFF_TP64": 224 , # 64 bits LT-TP-rel. address.
"R_PARISC_LTOFF_TP14WR": 227 , # LT-TP-rel. address, right 14 bits.
"R_PARISC_LTOFF_TP14DR": 228 , # LT-TP-rel. address, right 14 bits.
"R_PARISC_LTOFF_TP16F": 229 , # 16 bits LT-TP-rel. address.
"R_PARISC_LTOFF_TP16WF": 230 , # 16 bits LT-TP-rel. address.
"R_PARISC_LTOFF_TP16DF": 231 , # 16 bits LT-TP-rel. address.
"R_PARISC_GNU_VTENTRY": 232 , #
"R_PARISC_GNU_VTINHERIT": 233 , #
"R_PARISC_TLS_GD21L": 234 , # GD 21-bit left.
"R_PARISC_TLS_GD14R": 235 , # GD 14-bit right.
"R_PARISC_TLS_GDCALL": 236 , # GD call to __t_g_a.
"R_PARISC_TLS_LDM21L": 237 , # LD module 21-bit left.
"R_PARISC_TLS_LDM14R": 238 , # LD module 14-bit right.
"R_PARISC_TLS_LDMCALL": 239 , # LD module call to __t_g_a.
"R_PARISC_TLS_LDO21L": 240 , # LD offset 21-bit left.
"R_PARISC_TLS_LDO14R": 241 , # LD offset 14-bit right.
"R_PARISC_TLS_DTPMOD32": 242 , # DTP module 32-bit.
"R_PARISC_TLS_DTPMOD64": 243 , # DTP module 64-bit.
"R_PARISC_TLS_DTPOFF32": 244 , # DTP offset 32-bit.
"R_PARISC_TLS_DTPOFF64": 245 , # DTP offset 32-bit.
"R_PARISC_TLS_LE21L": MacroRef("R_PARISC_TPREL21L"), #
"R_PARISC_TLS_LE14R": MacroRef("R_PARISC_TPREL14R"), #
"R_PARISC_TLS_IE21L": MacroRef("R_PARISC_LTOFF_TP21L") , #
"R_PARISC_TLS_IE14R": MacroRef("R_PARISC_LTOFF_TP14R") , #
"R_PARISC_TLS_TPREL32": MacroRef("R_PARISC_TPREL32") , #
"R_PARISC_TLS_TPREL64": MacroRef("R_PARISC_TPREL64") , #
"R_PARISC_HIRESERVE": 255 , #
"PT_HP_TLS": (MacroRef("PT_LOOS") + 0x0) , #
"PT_HP_CORE_NONE": (MacroRef("PT_LOOS") + 0x1) , #
"PT_HP_CORE_VERSION": (MacroRef("PT_LOOS") + 0x2) , #
"PT_HP_CORE_KERNEL": (MacroRef("PT_LOOS") + 0x3) , #
"PT_HP_CORE_COMM": (MacroRef("PT_LOOS") + 0x4) , #
"PT_HP_CORE_PROC": (MacroRef("PT_LOOS") + 0x5) , #
"PT_HP_CORE_LOADABLE": (MacroRef("PT_LOOS") + 0x6) , #
"PT_HP_CORE_STACK": (MacroRef("PT_LOOS") + 0x7) , #
"PT_HP_CORE_SHM": (MacroRef("PT_LOOS") + 0x8) , #
"PT_HP_CORE_MMF": (MacroRef("PT_LOOS") + 0x9) , #
"PT_HP_PARALLEL": (MacroRef("PT_LOOS") + 0x10) , #
"PT_HP_FASTBIND": (MacroRef("PT_LOOS") + 0x11) , #
"PT_HP_OPT_ANNOT": (MacroRef("PT_LOOS") + 0x12) , #
"PT_HP_HSL_ANNOT": (MacroRef("PT_LOOS") + 0x13) , #
"PT_HP_STACK": (MacroRef("PT_LOOS") + 0x14) , #
"PT_PARISC_ARCHEXT": 0x70000000 , #
"PT_PARISC_UNWIND": 0x70000001 , #
"PF_PARISC_SBP": 0x08000000 , #
"PF_HP_PAGE_SIZE": 0x00100000 , #
"PF_HP_FAR_SHARED": 0x00200000 , #
"PF_HP_NEAR_SHARED": 0x00400000 , #
"PF_HP_CODE": 0x01000000 , #
"PF_HP_MODIFY": 0x02000000 , #
"PF_HP_LAZYSWAP": 0x04000000 , #
"PF_HP_SBP": 0x08000000 , #
"EF_ALPHA_32BIT": 1 , # All addresses must be < 2GB.
"EF_ALPHA_CANRELAX": 2 , # Relocations for relaxing exist.
"SHT_ALPHA_DEBUG": 0x70000001 , #
"SHT_ALPHA_REGINFO": 0x70000002 , #
"SHF_ALPHA_GPREL": 0x10000000 , #
"STO_ALPHA_NOPV": 0x80 , # No PV required.
"STO_ALPHA_STD_GPLOAD": 0x88 , # PV only used for initial ldgp.
"R_ALPHA_NONE": 0 , # No reloc
"R_ALPHA_REFLONG": 1 , # Direct 32 bit
"R_ALPHA_REFQUAD": 2 , # Direct 64 bit
"R_ALPHA_GPREL32": 3 , # GP relative 32 bit
"R_ALPHA_LITERAL": 4 , # GP relative 16 bit w/optimization
"R_ALPHA_LITUSE": 5 , # Optimization hint for LITERAL
"R_ALPHA_GPDISP": 6 , # Add displacement to GP
"R_ALPHA_BRADDR": 7 , # PC+4 relative 23 bit shifted
"R_ALPHA_HINT": 8 , # PC+4 relative 16 bit shifted
"R_ALPHA_SREL16": 9 , # PC relative 16 bit
"R_ALPHA_SREL32": 10 , # PC relative 32 bit
"R_ALPHA_SREL64": 11 , # PC relative 64 bit
"R_ALPHA_GPRELHIGH": 17 , # GP relative 32 bit, high 16 bits
"R_ALPHA_GPRELLOW": 18 , # GP relative 32 bit, low 16 bits
"R_ALPHA_GPREL16": 19 , # GP relative 16 bit
"R_ALPHA_COPY": 24 , # Copy symbol at runtime
"R_ALPHA_GLOB_DAT": 25 , # Create GOT entry
"R_ALPHA_JMP_SLOT": 26 , # Create PLT entry
"R_ALPHA_RELATIVE": 27 , # Adjust by program base
"R_ALPHA_TLS_GD_HI": 28 , #
"R_ALPHA_TLSGD": 29 , #
"R_ALPHA_TLS_LDM": 30 , #
"R_ALPHA_DTPMOD64": 31 , #
"R_ALPHA_GOTDTPREL": 32 , #
"R_ALPHA_DTPREL64": 33 , #
"R_ALPHA_DTPRELHI": 34 , #
"R_ALPHA_DTPRELLO": 35 , #
"R_ALPHA_DTPREL16": 36 , #
"R_ALPHA_GOTTPREL": 37 , #
"R_ALPHA_TPREL64": 38 , #
"R_ALPHA_TPRELHI": 39 , #
"R_ALPHA_TPRELLO": 40 , #
"R_ALPHA_TPREL16": 41 , #
"R_ALPHA_NUM": 46 , #
"LITUSE_ALPHA_ADDR": 0 , #
"LITUSE_ALPHA_BASE": 1 , #
"LITUSE_ALPHA_BYTOFF": 2 , #
"LITUSE_ALPHA_JSR": 3 , #
"LITUSE_ALPHA_TLS_GD": 4 , #
"LITUSE_ALPHA_TLS_LDM": 5 , #
"DT_ALPHA_PLTRO": (MacroRef("DT_LOPROC") + 0) , #
"DT_ALPHA_NUM": 1 , #
"EF_PPC_EMB": 0x80000000 , # PowerPC embedded flag
"EF_PPC_RELOCATABLE": 0x00010000 , # PowerPC -mrelocatable flag
"EF_PPC_RELOCATABLE_LIB": 0x00008000 , # PowerPC -mrelocatable-lib
"R_PPC_NONE": 0 , #
"R_PPC_ADDR32": 1 , # 32bit absolute address
"R_PPC_ADDR24": 2 , # 26bit address, 2 bits ignored.
"R_PPC_ADDR16": 3 , # 16bit absolute address
"R_PPC_ADDR16_LO": 4 , # lower 16bit of absolute address
"R_PPC_ADDR16_HI": 5 , # high 16bit of absolute address
"R_PPC_ADDR16_HA": 6 , # adjusted high 16bit
"R_PPC_ADDR14": 7 , # 16bit address, 2 bits ignored
"R_PPC_ADDR14_BRTAKEN": 8 , #
"R_PPC_ADDR14_BRNTAKEN": 9 , #
"R_PPC_REL24": 10 , # PC relative 26 bit
"R_PPC_REL14": 11 , # PC relative 16 bit
"R_PPC_REL14_BRTAKEN": 12 , #
"R_PPC_REL14_BRNTAKEN": 13 , #
"R_PPC_GOT16": 14 , #
"R_PPC_GOT16_LO": 15 , #
"R_PPC_GOT16_HI": 16 , #
"R_PPC_GOT16_HA": 17 , #
"R_PPC_PLTREL24": 18 , #
"R_PPC_COPY": 19 , #
"R_PPC_GLOB_DAT": 20 , #
"R_PPC_JMP_SLOT": 21 , #
"R_PPC_RELATIVE": 22 , #
"R_PPC_LOCAL24PC": 23 , #
"R_PPC_UADDR32": 24 , #
"R_PPC_UADDR16": 25 , #
"R_PPC_REL32": 26 , #
"R_PPC_PLT32": 27 , #
"R_PPC_PLTREL32": 28 , #
"R_PPC_PLT16_LO": 29 , #
"R_PPC_PLT16_HI": 30 , #
"R_PPC_PLT16_HA": 31 , #
"R_PPC_SDAREL16": 32 , #
"R_PPC_SECTOFF": 33 , #
"R_PPC_SECTOFF_LO": 34 , #
"R_PPC_SECTOFF_HI": 35 , #
"R_PPC_SECTOFF_HA": 36 , #
"R_PPC_TLS": 67 , # none (sym+add)@tls
"R_PPC_DTPMOD32": 68 , # word32 (sym+add)@dtpmod
"R_PPC_TPREL16": 69 , # half16* (sym+add)@tprel
"R_PPC_TPREL16_LO": 70 , # half16 (sym+add)@tprel@l
"R_PPC_TPREL16_HI": 71 , # half16 (sym+add)@tprel@h
"R_PPC_TPREL16_HA": 72 , # half16 (sym+add)@tprel@ha
"R_PPC_TPREL32": 73 , # word32 (sym+add)@tprel
"R_PPC_DTPREL16": 74 , # half16* (sym+add)@dtprel
"R_PPC_DTPREL16_LO": 75 , # half16 (sym+add)@dtprel@l
"R_PPC_DTPREL16_HI": 76 , # half16 (sym+add)@dtprel@h
"R_PPC_DTPREL16_HA": 77 , # half16 (sym+add)@dtprel@ha
"R_PPC_DTPREL32": 78 , # word32 (sym+add)@dtprel
"R_PPC_GOT_TLSGD16": 79 , # half16* (sym+add)@got@tlsgd
"R_PPC_GOT_TLSGD16_LO": 80 , # half16 (sym+add)@got@tlsgd@l
"R_PPC_GOT_TLSGD16_HI": 81 , # half16 (sym+add)@got@tlsgd@h
"R_PPC_GOT_TLSGD16_HA": 82 , # half16 (sym+add)@got@tlsgd@ha
"R_PPC_GOT_TLSLD16": 83 , # half16* (sym+add)@got@tlsld
"R_PPC_GOT_TLSLD16_LO": 84 , # half16 (sym+add)@got@tlsld@l
"R_PPC_GOT_TLSLD16_HI": 85 , # half16 (sym+add)@got@tlsld@h
"R_PPC_GOT_TLSLD16_HA": 86 , # half16 (sym+add)@got@tlsld@ha
"R_PPC_GOT_TPREL16": 87 , # half16* (sym+add)@got@tprel
"R_PPC_GOT_TPREL16_LO": 88 , # half16 (sym+add)@got@tprel@l
"R_PPC_GOT_TPREL16_HI": 89 , # half16 (sym+add)@got@tprel@h
"R_PPC_GOT_TPREL16_HA": 90 , # half16 (sym+add)@got@tprel@ha
"R_PPC_GOT_DTPREL16": 91 , # half16* (sym+add)@got@dtprel
"R_PPC_GOT_DTPREL16_LO": 92 , # half16* (sym+add)@got@dtprel@l
"R_PPC_GOT_DTPREL16_HI": 93 , # half16* (sym+add)@got@dtprel@h
"R_PPC_GOT_DTPREL16_HA": 94 , # half16* (sym+add)@got@dtprel@ha
"R_PPC_EMB_NADDR32": 101 , #
"R_PPC_EMB_NADDR16": 102 , #
"R_PPC_EMB_NADDR16_LO": 103 , #
"R_PPC_EMB_NADDR16_HI": 104 , #
"R_PPC_EMB_NADDR16_HA": 105 , #
"R_PPC_EMB_SDAI16": 106 , #
"R_PPC_EMB_SDA2I16": 107 , #
"R_PPC_EMB_SDA2REL": 108 , #
"R_PPC_EMB_SDA21": 109 , # 16 bit offset in SDA
"R_PPC_EMB_MRKREF": 110 , #
"R_PPC_EMB_RELSEC16": 111 , #
"R_PPC_EMB_RELST_LO": 112 , #
"R_PPC_EMB_RELST_HI": 113 , #
"R_PPC_EMB_RELST_HA": 114 , #
"R_PPC_EMB_BIT_FLD": 115 , #
"R_PPC_EMB_RELSDA": 116 , # 16 bit relative offset in SDA
"R_PPC_DIAB_SDA21_LO": 180 , # like EMB_SDA21, but lower 16 bit
"R_PPC_DIAB_SDA21_HI": 181 , # like EMB_SDA21, but high 16 bit
"R_PPC_DIAB_SDA21_HA": 182 , # like EMB_SDA21, adjusted high 16
"R_PPC_DIAB_RELSDA_LO": 183 , # like EMB_RELSDA, but lower 16 bit
"R_PPC_DIAB_RELSDA_HI": 184 , # like EMB_RELSDA, but high 16 bit
"R_PPC_DIAB_RELSDA_HA": 185 , # like EMB_RELSDA, adjusted high 16
"R_PPC_IRELATIVE": 248 , #
"R_PPC_REL16": 249 , # half16 (sym+add-.)
"R_PPC_REL16_LO": 250 , # half16 (sym+add-.)@l
"R_PPC_REL16_HI": 251 , # half16 (sym+add-.)@h
"R_PPC_REL16_HA": 252 , # half16 (sym+add-.)@ha
"R_PPC_TOC16": 255 , #
"DT_PPC_GOT": (MacroRef("DT_LOPROC") + 0) , #
"DT_PPC_NUM": 1 , #
"R_PPC64_NONE": MacroRef("R_PPC_NONE") , #
"R_PPC64_ADDR32": MacroRef("R_PPC_ADDR32") , # 32bit absolute address
"R_PPC64_ADDR24": MacroRef("R_PPC_ADDR24") , # 26bit address, word aligned
"R_PPC64_ADDR16": MacroRef("R_PPC_ADDR16") , # 16bit absolute address
"R_PPC64_ADDR16_LO": MacroRef("R_PPC_ADDR16_LO") , # lower 16bits of address
"R_PPC64_ADDR16_HI": MacroRef("R_PPC_ADDR16_HI") , # high 16bits of address.
"R_PPC64_ADDR16_HA": MacroRef("R_PPC_ADDR16_HA") , # adjusted high 16bits.
"R_PPC64_ADDR14": MacroRef("R_PPC_ADDR14") , # 16bit address, word aligned
"R_PPC64_ADDR14_BRTAKEN": MacroRef("R_PPC_ADDR14_BRTAKEN") , #
"R_PPC64_ADDR14_BRNTAKEN": MacroRef("R_PPC_ADDR14_BRNTAKEN") , #
"R_PPC64_REL24": MacroRef("R_PPC_REL24") , # PC-rel. 26 bit, word aligned
"R_PPC64_REL14": MacroRef("R_PPC_REL14") , # PC relative 16 bit
"R_PPC64_REL14_BRTAKEN": MacroRef("R_PPC_REL14_BRTAKEN") , #
"R_PPC64_REL14_BRNTAKEN": MacroRef("R_PPC_REL14_BRNTAKEN") , #
"R_PPC64_GOT16": MacroRef("R_PPC_GOT16") , #
"R_PPC64_GOT16_LO": MacroRef("R_PPC_GOT16_LO") , #
"R_PPC64_GOT16_HI": MacroRef("R_PPC_GOT16_HI") , #
"R_PPC64_GOT16_HA": MacroRef("R_PPC_GOT16_HA") , #
"R_PPC64_COPY": MacroRef("R_PPC_COPY") , #
"R_PPC64_GLOB_DAT": MacroRef("R_PPC_GLOB_DAT") , #
"R_PPC64_JMP_SLOT": MacroRef("R_PPC_JMP_SLOT") , #
"R_PPC64_RELATIVE": MacroRef("R_PPC_RELATIVE") , #
"R_PPC64_UADDR32": MacroRef("R_PPC_UADDR32") , #
"R_PPC64_UADDR16": MacroRef("R_PPC_UADDR16") , #
"R_PPC64_REL32": MacroRef("R_PPC_REL32") , #
"R_PPC64_PLT32": MacroRef("R_PPC_PLT32") , #
"R_PPC64_PLTREL32": MacroRef("R_PPC_PLTREL32") , #
"R_PPC64_PLT16_LO": MacroRef("R_PPC_PLT16_LO") , #
"R_PPC64_PLT16_HI": MacroRef("R_PPC_PLT16_HI") , #
"R_PPC64_PLT16_HA": MacroRef("R_PPC_PLT16_HA") , #
"R_PPC64_SECTOFF": MacroRef("R_PPC_SECTOFF") , #
"R_PPC64_SECTOFF_LO": MacroRef("R_PPC_SECTOFF_LO") , #
"R_PPC64_SECTOFF_HI": MacroRef("R_PPC_SECTOFF_HI") , #
"R_PPC64_SECTOFF_HA": MacroRef("R_PPC_SECTOFF_HA") , #
"R_PPC64_ADDR30": 37 , # word30 (S + A - P) >> 2
"R_PPC64_ADDR64": 38 , # doubleword64 S + A
"R_PPC64_ADDR16_HIGHER": 39 , # half16 #higher(S + A)
"R_PPC64_ADDR16_HIGHERA": 40 , # half16 #highera(S + A)
"R_PPC64_ADDR16_HIGHEST": 41 , # half16 #highest(S + A)
"R_PPC64_ADDR16_HIGHESTA": 42 , # half16 #highesta(S + A)
"R_PPC64_UADDR64": 43 , # doubleword64 S + A
"R_PPC64_REL64": 44 , # doubleword64 S + A - P
"R_PPC64_PLT64": 45 , # doubleword64 L + A
"R_PPC64_PLTREL64": 46 , # doubleword64 L + A - P
"R_PPC64_TOC16": 47 , # half16* S + A - .TOC
"R_PPC64_TOC16_LO": 48 , # half16 #lo(S + A - .TOC.)
"R_PPC64_TOC16_HI": 49 , # half16 #hi(S + A - .TOC.)
"R_PPC64_TOC16_HA": 50 , # half16 #ha(S + A - .TOC.)
"R_PPC64_TOC": 51 , # doubleword64 .TOC
"R_PPC64_PLTGOT16": 52 , # half16* M + A
"R_PPC64_PLTGOT16_LO": 53 , # half16 #lo(M + A)
"R_PPC64_PLTGOT16_HI": 54 , # half16 #hi(M + A)
"R_PPC64_PLTGOT16_HA": 55 , # half16 #ha(M + A)
"R_PPC64_ADDR16_DS": 56 , # half16ds* (S + A) >> 2
"R_PPC64_ADDR16_LO_DS": 57 , # half16ds #lo(S + A) >> 2
"R_PPC64_GOT16_DS": 58 , # half16ds* (G + A) >> 2
"R_PPC64_GOT16_LO_DS": 59 , # half16ds #lo(G + A) >> 2
"R_PPC64_PLT16_LO_DS": 60 , # half16ds #lo(L + A) >> 2
"R_PPC64_SECTOFF_DS": 61 , # half16ds* (R + A) >> 2
"R_PPC64_SECTOFF_LO_DS": 62 , # half16ds #lo(R + A) >> 2
"R_PPC64_TOC16_DS": 63 , # half16ds* (S + A - .TOC.) >> 2
"R_PPC64_TOC16_LO_DS": 64 , # half16ds #lo(S + A - .TOC.) >> 2
"R_PPC64_PLTGOT16_DS": 65 , # half16ds* (M + A) >> 2
"R_PPC64_PLTGOT16_LO_DS": 66 , # half16ds #lo(M + A) >> 2
"R_PPC64_TLS": 67 , # none (sym+add)@tls
"R_PPC64_DTPMOD64": 68 , # doubleword64 (sym+add)@dtpmod
"R_PPC64_TPREL16": 69 , # half16* (sym+add)@tprel
"R_PPC64_TPREL16_LO": 70 , # half16 (sym+add)@tprel@l
"R_PPC64_TPREL16_HI": 71 , # half16 (sym+add)@tprel@h
"R_PPC64_TPREL16_HA": 72 , # half16 (sym+add)@tprel@ha
"R_PPC64_TPREL64": 73 , # doubleword64 (sym+add)@tprel
"R_PPC64_DTPREL16": 74 , # half16* (sym+add)@dtprel
"R_PPC64_DTPREL16_LO": 75 , # half16 (sym+add)@dtprel@l
"R_PPC64_DTPREL16_HI": 76 , # half16 (sym+add)@dtprel@h
"R_PPC64_DTPREL16_HA": 77 , # half16 (sym+add)@dtprel@ha
"R_PPC64_DTPREL64": 78 , # doubleword64 (sym+add)@dtprel
"R_PPC64_GOT_TLSGD16": 79 , # half16* (sym+add)@got@tlsgd
"R_PPC64_GOT_TLSGD16_LO": 80 , # half16 (sym+add)@got@tlsgd@l
"R_PPC64_GOT_TLSGD16_HI": 81 , # half16 (sym+add)@got@tlsgd@h
"R_PPC64_GOT_TLSGD16_HA": 82 , # half16 (sym+add)@got@tlsgd@ha
"R_PPC64_GOT_TLSLD16": 83 , # half16* (sym+add)@got@tlsld
"R_PPC64_GOT_TLSLD16_LO": 84 , # half16 (sym+add)@got@tlsld@l
"R_PPC64_GOT_TLSLD16_HI": 85 , # half16 (sym+add)@got@tlsld@h
"R_PPC64_GOT_TLSLD16_HA": 86 , # half16 (sym+add)@got@tlsld@ha
"R_PPC64_GOT_TPREL16_DS": 87 , # half16ds* (sym+add)@got@tprel
"R_PPC64_GOT_TPREL16_LO_DS": 88 , # half16ds (sym+add)@got@tprel@l
"R_PPC64_GOT_TPREL16_HI": 89 , # half16 (sym+add)@got@tprel@h
"R_PPC64_GOT_TPREL16_HA": 90 , # half16 (sym+add)@got@tprel@ha
"R_PPC64_GOT_DTPREL16_DS": 91 , # half16ds* (sym+add)@got@dtprel
"R_PPC64_GOT_DTPREL16_LO_DS": 92 , # half16ds (sym+add)@got@dtprel@l
"R_PPC64_GOT_DTPREL16_HI": 93 , # half16 (sym+add)@got@dtprel@h
"R_PPC64_GOT_DTPREL16_HA": 94 , # half16 (sym+add)@got@dtprel@ha
"R_PPC64_TPREL16_DS": 95 , # half16ds* (sym+add)@tprel
"R_PPC64_TPREL16_LO_DS": 96 , # half16ds (sym+add)@tprel@l
"R_PPC64_TPREL16_HIGHER": 97 , # half16 (sym+add)@tprel@higher
"R_PPC64_TPREL16_HIGHERA": 98 , # half16 (sym+add)@tprel@highera
"R_PPC64_TPREL16_HIGHEST": 99 , # half16 (sym+add)@tprel@highest
"R_PPC64_TPREL16_HIGHESTA": 100 , # half16 (sym+add)@tprel@highesta
"R_PPC64_DTPREL16_DS": 101 , # half16ds* (sym+add)@dtprel
"R_PPC64_DTPREL16_LO_DS": 102 , # half16ds (sym+add)@dtprel@l
"R_PPC64_DTPREL16_HIGHER": 103 , # half16 (sym+add)@dtprel@higher
"R_PPC64_DTPREL16_HIGHERA": 104 , # half16 (sym+add)@dtprel@highera
"R_PPC64_DTPREL16_HIGHEST": 105 , # half16 (sym+add)@dtprel@highest
"R_PPC64_DTPREL16_HIGHESTA": 106 , # half16 (sym+add)@dtprel@highesta
"R_PPC64_JMP_IREL": 247 , #
"R_PPC64_IRELATIVE": 248 , #
"R_PPC64_REL16": 249 , # half16 (sym+add-.)
"R_PPC64_REL16_LO": 250 , # half16 (sym+add-.)@l
"R_PPC64_REL16_HI": 251 , # half16 (sym+add-.)@h
"R_PPC64_REL16_HA": 252 , # half16 (sym+add-.)@ha
"DT_PPC64_GLINK": (MacroRef("DT_LOPROC") + 0) , #
"DT_PPC64_OPD": (MacroRef("DT_LOPROC") + 1) , #
"DT_PPC64_OPDSZ": (MacroRef("DT_LOPROC") + 2) , #
"DT_PPC64_NUM": 3 , #
"EF_ARM_RELEXEC": 0x01 , #
"EF_ARM_HASENTRY": 0x02 , #
"EF_ARM_INTERWORK": 0x04 , #
"EF_ARM_APCS_26": 0x08 , #
"EF_ARM_APCS_FLOAT": 0x10 , #
"EF_ARM_PIC": 0x20 , #
"EF_ARM_ALIGN8": 0x40 , # 8-bit structure alignment is in use
"EF_ARM_NEW_ABI": 0x80 , #
"EF_ARM_OLD_ABI": 0x100 , #
"EF_ARM_SOFT_FLOAT": 0x200 , #
"EF_ARM_VFP_FLOAT": 0x400 , #
"EF_ARM_MAVERICK_FLOAT": 0x800 , #
"EF_ARM_SYMSARESORTED": 0x04 , #
"EF_ARM_DYNSYMSUSESEGIDX": 0x08 , #
"EF_ARM_MAPSYMSFIRST": 0x10 , #
"EF_ARM_EABIMASK": 0XFF000000 , #
"EF_ARM_BE8": 0x00800000 , #
"EF_ARM_LE8": 0x00400000 , #
"EF_ARM_EABI_UNKNOWN": 0x00000000 , #
"EF_ARM_EABI_VER1": 0x01000000 , #
"EF_ARM_EABI_VER2": 0x02000000 , #
"EF_ARM_EABI_VER3": 0x03000000 , #
"EF_ARM_EABI_VER4": 0x04000000 , #
"EF_ARM_EABI_VER5": 0x05000000 , #
"STT_ARM_TFUNC": MacroRef("STT_LOPROC") , # A Thumb function.
"STT_ARM_16BIT": MacroRef("STT_HIPROC") , # A Thumb label.
"SHF_ARM_ENTRYSECT": 0x10000000 , # Section contains an entry point
"SHF_ARM_COMDEF": 0x80000000 , # Section may be multiply defined
"PF_ARM_SB": 0x10000000 , # Segment contains the location
"PF_ARM_PI": 0x20000000 , # Position-independent segment.
"PF_ARM_ABS": 0x40000000 , # Absolute segment.
"PT_ARM_EXIDX": (MacroRef("PT_LOPROC") + 1) , # ARM unwind segment.
"SHT_ARM_EXIDX": (MacroRef("SHT_LOPROC") + 1) , # ARM unwind section.
"SHT_ARM_PREEMPTMAP": (MacroRef("SHT_LOPROC") + 2) , # Preemption details.
"SHT_ARM_ATTRIBUTES": (MacroRef("SHT_LOPROC") + 3) , # ARM attributes section.
"R_ARM_NONE": 0 , # No reloc
"R_ARM_PC24": 1 , # PC relative 26 bit branch
"R_ARM_ABS32": 2 , # Direct 32 bit
"R_ARM_REL32": 3 , # PC relative 32 bit
"R_ARM_PC13": 4 , #
"R_ARM_ABS16": 5 , # Direct 16 bit
"R_ARM_ABS12": 6 , # Direct 12 bit
"R_ARM_THM_ABS5": 7 , #
"R_ARM_ABS8": 8 , # Direct 8 bit
"R_ARM_SBREL32": 9 , #
"R_ARM_THM_PC22": 10 , #
"R_ARM_THM_PC8": 11 , #
"R_ARM_AMP_VCALL9": 12 , #
"R_ARM_SWI24": 13 , # Obsolete static relocation.
"R_ARM_TLS_DESC": 13 , # Dynamic relocation.
"R_ARM_THM_SWI8": 14 , #
"R_ARM_XPC25": 15 , #
"R_ARM_THM_XPC22": 16 , #
"R_ARM_TLS_DTPMOD32": 17 , # ID of module containing symbol
"R_ARM_TLS_DTPOFF32": 18 , # Offset in TLS block
"R_ARM_TLS_TPOFF32": 19 , # Offset in static TLS block
"R_ARM_COPY": 20 , # Copy symbol at runtime
"R_ARM_GLOB_DAT": 21 , # Create GOT entry
"R_ARM_JUMP_SLOT": 22 , # Create PLT entry
"R_ARM_RELATIVE": 23 , # Adjust by program base
"R_ARM_GOTOFF": 24 , # 32 bit offset to GOT
"R_ARM_GOTPC": 25 , # 32 bit PC relative offset to GOT
"R_ARM_GOT32": 26 , # 32 bit GOT entry
"R_ARM_PLT32": 27 , # 32 bit PLT address
"R_ARM_ALU_PCREL_7_0": 32 , #
"R_ARM_ALU_PCREL_15_8": 33 , #
"R_ARM_ALU_PCREL_23_15": 34 , #
"R_ARM_LDR_SBREL_11_0": 35 , #
"R_ARM_ALU_SBREL_19_12": 36 , #
"R_ARM_ALU_SBREL_27_20": 37 , #
"R_ARM_TLS_GOTDESC": 90 , #
"R_ARM_TLS_CALL": 91 , #
"R_ARM_TLS_DESCSEQ": 92 , #
"R_ARM_THM_TLS_CALL": 93 , #
"R_ARM_GNU_VTENTRY": 100 , #
"R_ARM_GNU_VTINHERIT": 101 , #
"R_ARM_THM_PC11": 102 , # thumb unconditional branch
"R_ARM_THM_PC9": 103 , # thumb conditional branch
"R_ARM_TLS_GD32": 104 , # PC-rel 32 bit for global dynamic
"R_ARM_TLS_LDM32": 105 , # PC-rel 32 bit for local dynamic
"R_ARM_TLS_LDO32": 106 , # 32 bit offset relative to TLS
"R_ARM_TLS_IE32": 107 , # PC-rel 32 bit for GOT entry of
"R_ARM_TLS_LE32": 108 , # 32 bit offset relative to static
"R_ARM_THM_TLS_DESCSEQ": 129 , #
"R_ARM_IRELATIVE": 160 , #
"R_ARM_RXPC25": 249 , #
"R_ARM_RSBREL32": 250 , #
"R_ARM_THM_RPC22": 251 , #
"R_ARM_RREL32": 252 , #
"R_ARM_RABS22": 253 , #
"R_ARM_RPC24": 254 , #
"R_ARM_RBASE": 255 , #
"R_ARM_NUM": 256 , #
"EF_IA_64_MASKOS": 0x0000000f , # os-specific flags
"EF_IA_64_ABI64": 0x00000010 , # 64-bit ABI
"EF_IA_64_ARCH": 0xff000000 , # arch. version mask
"PT_IA_64_ARCHEXT": (MacroRef("PT_LOPROC") + 0) , # arch extension bits
"PT_IA_64_UNWIND": (MacroRef("PT_LOPROC") + 1) , # ia64 unwind bits
"PT_IA_64_HP_OPT_ANOT": (MacroRef("PT_LOOS") + 0x12) , #
"PT_IA_64_HP_HSL_ANOT": (MacroRef("PT_LOOS") + 0x13) , #
"PT_IA_64_HP_STACK": (MacroRef("PT_LOOS") + 0x14) , #
"PF_IA_64_NORECOV": 0x80000000 , # spec insns w/o recovery
"SHT_IA_64_EXT": (MacroRef("SHT_LOPROC") + 0) , # extension bits
"SHT_IA_64_UNWIND": (MacroRef("SHT_LOPROC") + 1) , # unwind bits
"SHF_IA_64_SHORT": 0x10000000 , # section near gp
"SHF_IA_64_NORECOV": 0x20000000 , # spec insns w/o recovery
"DT_IA_64_PLT_RESERVE": (MacroRef("DT_LOPROC") + 0) , #
"DT_IA_64_NUM": 1 , #
"R_IA64_NONE": 0x00 , # none
"R_IA64_IMM14": 0x21 , # symbol + addend, add imm14
"R_IA64_IMM22": 0x22 , # symbol + addend, add imm22
"R_IA64_IMM64": 0x23 , # symbol + addend, mov imm64
"R_IA64_DIR32MSB": 0x24 , # symbol + addend, data4 MSB
"R_IA64_DIR32LSB": 0x25 , # symbol + addend, data4 LSB
"R_IA64_DIR64MSB": 0x26 , # symbol + addend, data8 MSB
"R_IA64_DIR64LSB": 0x27 , # symbol + addend, data8 LSB
"R_IA64_GPREL22": 0x2a , # @gprel(sym + add), add imm22
"R_IA64_GPREL64I": 0x2b , # @gprel(sym + add), mov imm64
"R_IA64_GPREL32MSB": 0x2c , # @gprel(sym + add), data4 MSB
"R_IA64_GPREL32LSB": 0x2d , # @gprel(sym + add), data4 LSB
"R_IA64_GPREL64MSB": 0x2e , # @gprel(sym + add), data8 MSB
"R_IA64_GPREL64LSB": 0x2f , # @gprel(sym + add), data8 LSB
"R_IA64_LTOFF22": 0x32 , # @ltoff(sym + add), add imm22
"R_IA64_LTOFF64I": 0x33 , # @ltoff(sym + add), mov imm64
"R_IA64_PLTOFF22": 0x3a , # @pltoff(sym + add), add imm22
"R_IA64_PLTOFF64I": 0x3b , # @pltoff(sym + add), mov imm64
"R_IA64_PLTOFF64MSB": 0x3e , # @pltoff(sym + add), data8 MSB
"R_IA64_PLTOFF64LSB": 0x3f , # @pltoff(sym + add), data8 LSB
"R_IA64_FPTR64I": 0x43 , # @fptr(sym + add), mov imm64
"R_IA64_FPTR32MSB": 0x44 , # @fptr(sym + add), data4 MSB
"R_IA64_FPTR32LSB": 0x45 , # @fptr(sym + add), data4 LSB
"R_IA64_FPTR64MSB": 0x46 , # @fptr(sym + add), data8 MSB
"R_IA64_FPTR64LSB": 0x47 , # @fptr(sym + add), data8 LSB
"R_IA64_PCREL60B": 0x48 , # @pcrel(sym + add), brl
"R_IA64_PCREL21B": 0x49 , # @pcrel(sym + add), ptb, call
"R_IA64_PCREL21M": 0x4a , # @pcrel(sym + add), chk.s
"R_IA64_PCREL21F": 0x4b , # @pcrel(sym + add), fchkf
"R_IA64_PCREL32MSB": 0x4c , # @pcrel(sym + add), data4 MSB
"R_IA64_PCREL32LSB": 0x4d , # @pcrel(sym + add), data4 LSB
"R_IA64_PCREL64MSB": 0x4e , # @pcrel(sym + add), data8 MSB
"R_IA64_PCREL64LSB": 0x4f , # @pcrel(sym + add), data8 LSB
"R_IA64_LTOFF_FPTR22": 0x52 , # @ltoff(@fptr(s+a)), imm22
"R_IA64_LTOFF_FPTR64I": 0x53 , # @ltoff(@fptr(s+a)), imm64
"R_IA64_LTOFF_FPTR32MSB": 0x54 , # @ltoff(@fptr(s+a)), data4 MSB
"R_IA64_LTOFF_FPTR32LSB": 0x55 , # @ltoff(@fptr(s+a)), data4 LSB
"R_IA64_LTOFF_FPTR64MSB": 0x56 , # @ltoff(@fptr(s+a)), data8 MSB
"R_IA64_LTOFF_FPTR64LSB": 0x57 , # @ltoff(@fptr(s+a)), data8 LSB
"R_IA64_SEGREL32MSB": 0x5c , # @segrel(sym + add), data4 MSB
"R_IA64_SEGREL32LSB": 0x5d , # @segrel(sym + add), data4 LSB
"R_IA64_SEGREL64MSB": 0x5e , # @segrel(sym + add), data8 MSB
"R_IA64_SEGREL64LSB": 0x5f , # @segrel(sym + add), data8 LSB
"R_IA64_SECREL32MSB": 0x64 , # @secrel(sym + add), data4 MSB
"R_IA64_SECREL32LSB": 0x65 , # @secrel(sym + add), data4 LSB
"R_IA64_SECREL64MSB": 0x66 , # @secrel(sym + add), data8 MSB
"R_IA64_SECREL64LSB": 0x67 , # @secrel(sym + add), data8 LSB
"R_IA64_REL32MSB": 0x6c , # data 4 + REL
"R_IA64_REL32LSB": 0x6d , # data 4 + REL
"R_IA64_REL64MSB": 0x6e , # data 8 + REL
"R_IA64_REL64LSB": 0x6f , # data 8 + REL
"R_IA64_LTV32MSB": 0x74 , # symbol + addend, data4 MSB
"R_IA64_LTV32LSB": 0x75 , # symbol + addend, data4 LSB
"R_IA64_LTV64MSB": 0x76 , # symbol + addend, data8 MSB
"R_IA64_LTV64LSB": 0x77 , # symbol + addend, data8 LSB
"R_IA64_PCREL21BI": 0x79 , # @pcrel(sym + add), 21bit inst
"R_IA64_PCREL22": 0x7a , # @pcrel(sym + add), 22bit inst
"R_IA64_PCREL64I": 0x7b , # @pcrel(sym + add), 64bit inst
"R_IA64_IPLTMSB": 0x80 , # dynamic reloc, imported PLT, MSB
"R_IA64_IPLTLSB": 0x81 , # dynamic reloc, imported PLT, LSB
"R_IA64_COPY": 0x84 , # copy relocation
"R_IA64_SUB": 0x85 , # Addend and symbol difference
"R_IA64_LTOFF22X": 0x86 , # LTOFF22, relaxable.
"R_IA64_LDXMOV": 0x87 , # Use of LTOFF22X.
"R_IA64_TPREL14": 0x91 , # @tprel(sym + add), imm14
"R_IA64_TPREL22": 0x92 , # @tprel(sym + add), imm22
"R_IA64_TPREL64I": 0x93 , # @tprel(sym + add), imm64
"R_IA64_TPREL64MSB": 0x96 , # @tprel(sym + add), data8 MSB
"R_IA64_TPREL64LSB": 0x97 , # @tprel(sym + add), data8 LSB
"R_IA64_LTOFF_TPREL22": 0x9a , # @ltoff(@tprel(s+a)), imm2
"R_IA64_DTPMOD64MSB": 0xa6 , # @dtpmod(sym + add), data8 MSB
"R_IA64_DTPMOD64LSB": 0xa7 , # @dtpmod(sym + add), data8 LSB
"R_IA64_LTOFF_DTPMOD22": 0xaa , # @ltoff(@dtpmod(sym + add)), imm22
"R_IA64_DTPREL14": 0xb1 , # @dtprel(sym + add), imm14
"R_IA64_DTPREL22": 0xb2 , # @dtprel(sym + add), imm22
"R_IA64_DTPREL64I": 0xb3 , # @dtprel(sym + add), imm64
"R_IA64_DTPREL32MSB": 0xb4 , # @dtprel(sym + add), data4 MSB
"R_IA64_DTPREL32LSB": 0xb5 , # @dtprel(sym + add), data4 LSB
"R_IA64_DTPREL64MSB": 0xb6 , # @dtprel(sym + add), data8 MSB
"R_IA64_DTPREL64LSB": 0xb7 , # @dtprel(sym + add), data8 LSB
"R_IA64_LTOFF_DTPREL22": 0xba , # @ltoff(@dtprel(s+a)), imm22
"EF_SH_MACH_MASK": 0x1f , #
"EF_SH_UNKNOWN": 0x0 , #
"EF_SH1": 0x1 , #
"EF_SH2": 0x2 , #
"EF_SH3": 0x3 , #
"EF_SH_DSP": 0x4 , #
"EF_SH3_DSP": 0x5 , #
"EF_SH4AL_DSP": 0x6 , #
"EF_SH3E": 0x8 , #
"EF_SH4": 0x9 , #
"EF_SH2E": 0xb , #
"EF_SH4A": 0xc , #
"EF_SH2A": 0xd , #
"EF_SH4_NOFPU": 0x10 , #
"EF_SH4A_NOFPU": 0x11 , #
"EF_SH4_NOMMU_NOFPU": 0x12 , #
"EF_SH2A_NOFPU": 0x13 , #
"EF_SH3_NOMMU": 0x14 , #
"EF_SH2A_SH4_NOFPU": 0x15 , #
"EF_SH2A_SH3_NOFPU": 0x16 , #
"EF_SH2A_SH4": 0x17 , #
"EF_SH2A_SH3E": 0x18 , #
"R_SH_NONE": 0 , #
"R_SH_DIR32": 1 , #
"R_SH_REL32": 2 , #
"R_SH_DIR8WPN": 3 , #
"R_SH_IND12W": 4 , #
"R_SH_DIR8WPL": 5 , #
"R_SH_DIR8WPZ": 6 , #
"R_SH_DIR8BP": 7 , #
"R_SH_DIR8W": 8 , #
"R_SH_DIR8L": 9 , #
"R_SH_SWITCH16": 25 , #
"R_SH_SWITCH32": 26 , #
"R_SH_USES": 27 , #
"R_SH_COUNT": 28 , #
"R_SH_ALIGN": 29 , #
"R_SH_CODE": 30 , #
"R_SH_DATA": 31 , #
"R_SH_LABEL": 32 , #
"R_SH_SWITCH8": 33 , #
"R_SH_GNU_VTINHERIT": 34 , #
"R_SH_GNU_VTENTRY": 35 , #
"R_SH_TLS_GD_32": 144 , #
"R_SH_TLS_LD_32": 145 , #
"R_SH_TLS_LDO_32": 146 , #
"R_SH_TLS_IE_32": 147 , #
"R_SH_TLS_LE_32": 148 , #
"R_SH_TLS_DTPMOD32": 149 , #
"R_SH_TLS_DTPOFF32": 150 , #
"R_SH_TLS_TPOFF32": 151 , #
"R_SH_GOT32": 160 , #
"R_SH_PLT32": 161 , #
"R_SH_COPY": 162 , #
"R_SH_GLOB_DAT": 163 , #
"R_SH_JMP_SLOT": 164 , #
"R_SH_RELATIVE": 165 , #
"R_SH_GOTOFF": 166 , #
"R_SH_GOTPC": 167 , #
"R_SH_NUM": 256 , #
"EF_S390_HIGH_GPRS": 0x00000001 , # High GPRs kernel facility needed.
"R_390_NONE": 0 , # No reloc.
"R_390_8": 1 , # Direct 8 bit.
"R_390_12": 2 , # Direct 12 bit.
"R_390_16": 3 , # Direct 16 bit.
"R_390_32": 4 , # Direct 32 bit.
"R_390_PC32": 5 , # PC relative 32 bit.
"R_390_GOT12": 6 , # 12 bit GOT offset.
"R_390_GOT32": 7 , # 32 bit GOT offset.
"R_390_PLT32": 8 , # 32 bit PC relative PLT address.
"R_390_COPY": 9 , # Copy symbol at runtime.
"R_390_GLOB_DAT": 10 , # Create GOT entry.
"R_390_JMP_SLOT": 11 , # Create PLT entry.
"R_390_RELATIVE": 12 , # Adjust by program base.
"R_390_GOTOFF32": 13 , # 32 bit offset to GOT.
"R_390_GOTPC": 14 , # 32 bit PC relative offset to GOT.
"R_390_GOT16": 15 , # 16 bit GOT offset.
"R_390_PC16": 16 , # PC relative 16 bit.
"R_390_PC16DBL": 17 , # PC relative 16 bit shifted by 1.
"R_390_PLT16DBL": 18 , # 16 bit PC rel. PLT shifted by 1.
"R_390_PC32DBL": 19 , # PC relative 32 bit shifted by 1.
"R_390_PLT32DBL": 20 , # 32 bit PC rel. PLT shifted by 1.
"R_390_GOTPCDBL": 21 , # 32 bit PC rel. GOT shifted by 1.
"R_390_64": 22 , # Direct 64 bit.
"R_390_PC64": 23 , # PC relative 64 bit.
"R_390_GOT64": 24 , # 64 bit GOT offset.
"R_390_PLT64": 25 , # 64 bit PC relative PLT address.
"R_390_GOTENT": 26 , # 32 bit PC rel. to GOT entry >> 1.
"R_390_GOTOFF16": 27 , # 16 bit offset to GOT.
"R_390_GOTOFF64": 28 , # 64 bit offset to GOT.
"R_390_GOTPLT12": 29 , # 12 bit offset to jump slot.
"R_390_GOTPLT16": 30 , # 16 bit offset to jump slot.
"R_390_GOTPLT32": 31 , # 32 bit offset to jump slot.
"R_390_GOTPLT64": 32 , # 64 bit offset to jump slot.
"R_390_GOTPLTENT": 33 , # 32 bit rel. offset to jump slot.
"R_390_PLTOFF16": 34 , # 16 bit offset from GOT to PLT.
"R_390_PLTOFF32": 35 , # 32 bit offset from GOT to PLT.
"R_390_PLTOFF64": 36 , # 16 bit offset from GOT to PLT.
"R_390_TLS_LOAD": 37 , # Tag for load insn in TLS code.
"R_390_TLS_GDCALL": 38 , # Tag for function call in general
"R_390_TLS_LDCALL": 39 , # Tag for function call in local
"R_390_TLS_GD32": 40 , # Direct 32 bit for general dynamic
"R_390_TLS_GD64": 41 , # Direct 64 bit for general dynamic
"R_390_TLS_GOTIE12": 42 , # 12 bit GOT offset for static TLS
"R_390_TLS_GOTIE32": 43 , # 32 bit GOT offset for static TLS
"R_390_TLS_GOTIE64": 44 , # 64 bit GOT offset for static TLS
"R_390_TLS_LDM32": 45 , # Direct 32 bit for local dynamic
"R_390_TLS_LDM64": 46 , # Direct 64 bit for local dynamic
"R_390_TLS_IE32": 47 , # 32 bit address of GOT entry for
"R_390_TLS_IE64": 48 , # 64 bit address of GOT entry for
"R_390_TLS_IEENT": 49 , # 32 bit rel. offset to GOT entry for
"R_390_TLS_LE32": 50 , # 32 bit negated offset relative to
"R_390_TLS_LE64": 51 , # 64 bit negated offset relative to
"R_390_TLS_LDO32": 52 , # 32 bit offset relative to TLS
"R_390_TLS_LDO64": 53 , # 64 bit offset relative to TLS
"R_390_TLS_DTPMOD": 54 , # ID of module containing symbol.
"R_390_TLS_DTPOFF": 55 , # Offset in TLS block.
"R_390_TLS_TPOFF": 56 , # Negated offset in static TLS
"R_390_20": 57 , # Direct 20 bit.
"R_390_GOT20": 58 , # 20 bit GOT offset.
"R_390_GOTPLT20": 59 , # 20 bit offset to jump slot.
"R_390_TLS_GOTIE20": 60 , # 20 bit GOT offset for static TLS
"R_390_NUM": 61 , #
"R_CRIS_NONE": 0 , #
"R_CRIS_8": 1 , #
"R_CRIS_16": 2 , #
"R_CRIS_32": 3 , #
"R_CRIS_8_PCREL": 4 , #
"R_CRIS_16_PCREL": 5 , #
"R_CRIS_32_PCREL": 6 , #
"R_CRIS_GNU_VTINHERIT": 7 , #
"R_CRIS_GNU_VTENTRY": 8 , #
"R_CRIS_COPY": 9 , #
"R_CRIS_GLOB_DAT": 10 , #
"R_CRIS_JUMP_SLOT": 11 , #
"R_CRIS_RELATIVE": 12 , #
"R_CRIS_16_GOT": 13 , #
"R_CRIS_32_GOT": 14 , #
"R_CRIS_16_GOTPLT": 15 , #
"R_CRIS_32_GOTPLT": 16 , #
"R_CRIS_32_GOTREL": 17 , #
"R_CRIS_32_PLT_GOTREL": 18 , #
"R_CRIS_32_PLT_PCREL": 19 , #
"R_CRIS_NUM": 20 , #
"R_X86_64_NONE": 0 , # No reloc
"R_X86_64_64": 1 , # Direct 64 bit
"R_X86_64_PC32": 2 , # PC relative 32 bit signed
"R_X86_64_GOT32": 3 , # 32 bit GOT entry
"R_X86_64_PLT32": 4 , # 32 bit PLT address
"R_X86_64_COPY": 5 , # Copy symbol at runtime
"R_X86_64_GLOB_DAT": 6 , # Create GOT entry
"R_X86_64_JUMP_SLOT": 7 , # Create PLT entry
"R_X86_64_RELATIVE": 8 , # Adjust by program base
"R_X86_64_GOTPCREL": 9 , # 32 bit signed PC relative
"R_X86_64_32": 10 , # Direct 32 bit zero extended
"R_X86_64_32S": 11 , # Direct 32 bit sign extended
"R_X86_64_16": 12 , # Direct 16 bit zero extended
"R_X86_64_PC16": 13 , # 16 bit sign extended pc relative
"R_X86_64_8": 14 , # Direct 8 bit sign extended
"R_X86_64_PC8": 15 , # 8 bit sign extended pc relative
"R_X86_64_DTPMOD64": 16 , # ID of module containing symbol
"R_X86_64_DTPOFF64": 17 , # Offset in module's TLS block
"R_X86_64_TPOFF64": 18 , # Offset in initial TLS block
"R_X86_64_TLSGD": 19 , # 32 bit signed PC relative offset
"R_X86_64_TLSLD": 20 , # 32 bit signed PC relative offset
"R_X86_64_DTPOFF32": 21 , # Offset in TLS block
"R_X86_64_GOTTPOFF": 22 , # 32 bit signed PC relative offset
"R_X86_64_TPOFF32": 23 , # Offset in initial TLS block
"R_X86_64_PC64": 24 , # PC relative 64 bit
"R_X86_64_GOTOFF64": 25 , # 64 bit offset to GOT
"R_X86_64_GOTPC32": 26 , # 32 bit signed pc relative
"R_X86_64_GOT64": 27 , # 64-bit GOT entry offset
"R_X86_64_GOTPCREL64": 28 , # 64-bit PC relative offset
"R_X86_64_GOTPC64": 29 , # 64-bit PC relative offset to GOT
"R_X86_64_GOTPLT64": 30 , # like GOT64, says PLT entry needed
"R_X86_64_PLTOFF64": 31 , # 64-bit GOT relative offset
"R_X86_64_SIZE32": 32 , # Size of symbol plus 32-bit addend
"R_X86_64_SIZE64": 33 , # Size of symbol plus 64-bit addend
"R_X86_64_GOTPC32_TLSDESC": 34 , # GOT offset for TLS descriptor.
"R_X86_64_TLSDESC_CALL": 35 , # Marker for call through TLS
"R_X86_64_TLSDESC": 36 , # TLS descriptor.
"R_X86_64_IRELATIVE": 37 , # Adjust indirectly by program base
"R_X86_64_NUM": 38 , #
"R_MN10300_NONE": 0 , # No reloc.
"R_MN10300_32": 1 , # Direct 32 bit.
"R_MN10300_16": 2 , # Direct 16 bit.
"R_MN10300_8": 3 , # Direct 8 bit.
"R_MN10300_PCREL32": 4 , # PC-relative 32-bit.
"R_MN10300_PCREL16": 5 , # PC-relative 16-bit signed.
"R_MN10300_PCREL8": 6 , # PC-relative 8-bit signed.
"R_MN10300_GNU_VTINHERIT": 7 , # Ancient C++ vtable garbage...
"R_MN10300_GNU_VTENTRY": 8 , # ... collection annotation.
"R_MN10300_24": 9 , # Direct 24 bit.
"R_MN10300_GOTPC32": 10 , # 32-bit PCrel offset to GOT.
"R_MN10300_GOTPC16": 11 , # 16-bit PCrel offset to GOT.
"R_MN10300_GOTOFF32": 12 , # 32-bit offset from GOT.
"R_MN10300_GOTOFF24": 13 , # 24-bit offset from GOT.
"R_MN10300_GOTOFF16": 14 , # 16-bit offset from GOT.
"R_MN10300_PLT32": 15 , # 32-bit PCrel to PLT entry.
"R_MN10300_PLT16": 16 , # 16-bit PCrel to PLT entry.
"R_MN10300_GOT32": 17 , # 32-bit offset to GOT entry.
"R_MN10300_GOT24": 18 , # 24-bit offset to GOT entry.
"R_MN10300_GOT16": 19 , # 16-bit offset to GOT entry.
"R_MN10300_COPY": 20 , # Copy symbol at runtime.
"R_MN10300_GLOB_DAT": 21 , # Create GOT entry.
"R_MN10300_JMP_SLOT": 22 , # Create PLT entry.
"R_MN10300_RELATIVE": 23 , # Adjust by program base.
"R_MN10300_NUM": 24 , #
"R_M32R_NONE": 0 , # No reloc.
"R_M32R_16": 1 , # Direct 16 bit.
"R_M32R_32": 2 , # Direct 32 bit.
"R_M32R_24": 3 , # Direct 24 bit.
"R_M32R_10_PCREL": 4 , # PC relative 10 bit shifted.
"R_M32R_18_PCREL": 5 , # PC relative 18 bit shifted.
"R_M32R_26_PCREL": 6 , # PC relative 26 bit shifted.
"R_M32R_HI16_ULO": 7 , # High 16 bit with unsigned low.
"R_M32R_HI16_SLO": 8 , # High 16 bit with signed low.
"R_M32R_LO16": 9 , # Low 16 bit.
"R_M32R_SDA16": 10 , # 16 bit offset in SDA.
"R_M32R_GNU_VTINHERIT": 11 , #
"R_M32R_GNU_VTENTRY": 12 , #
"R_M32R_16_RELA": 33 , # Direct 16 bit.
"R_M32R_32_RELA": 34 , # Direct 32 bit.
"R_M32R_24_RELA": 35 , # Direct 24 bit.
"R_M32R_10_PCREL_RELA": 36 , # PC relative 10 bit shifted.
"R_M32R_18_PCREL_RELA": 37 , # PC relative 18 bit shifted.
"R_M32R_26_PCREL_RELA": 38 , # PC relative 26 bit shifted.
"R_M32R_HI16_ULO_RELA": 39 , # High 16 bit with unsigned low
"R_M32R_HI16_SLO_RELA": 40 , # High 16 bit with signed low
"R_M32R_LO16_RELA": 41 , # Low 16 bit
"R_M32R_SDA16_RELA": 42 , # 16 bit offset in SDA
"R_M32R_RELA_GNU_VTINHERIT": 43 , #
"R_M32R_RELA_GNU_VTENTRY": 44 , #
"R_M32R_REL32": 45 , # PC relative 32 bit.
"R_M32R_GOT24": 48 , # 24 bit GOT entry
"R_M32R_26_PLTREL": 49 , # 26 bit PC relative to PLT shifted
"R_M32R_COPY": 50 , # Copy symbol at runtime
"R_M32R_GLOB_DAT": 51 , # Create GOT entry
"R_M32R_JMP_SLOT": 52 , # Create PLT entry
"R_M32R_RELATIVE": 53 , # Adjust by program base
"R_M32R_GOTOFF": 54 , # 24 bit offset to GOT
"R_M32R_GOTPC24": 55 , # 24 bit PC relative offset to GOT
"R_M32R_GOT16_HI_ULO": 56 , # High 16 bit GOT entry with unsigned
"R_M32R_GOT16_HI_SLO": 57 , # High 16 bit GOT entry with signed
"R_M32R_GOT16_LO": 58 , # Low 16 bit GOT entry
"R_M32R_GOTPC_HI_ULO": 59 , # High 16 bit PC relative offset to
"R_M32R_GOTPC_HI_SLO": 60 , # High 16 bit PC relative offset to
"R_M32R_GOTPC_LO": 61 , # Low 16 bit PC relative offset to
"R_M32R_GOTOFF_HI_ULO": 62 , # High 16 bit offset to GOT
"R_M32R_GOTOFF_HI_SLO": 63 , # High 16 bit offset to GOT
"R_M32R_GOTOFF_LO": 64 , # Low 16 bit offset to GOT
"R_M32R_NUM": 256 , # Keep this the last entry.
"SHF_WRITE": (1 << 0) , # Writable
"SHF_ALLOC": (1 << 1) , # Occupies memory during execution
"SHF_EXECINSTR": (1 << 2) , # Executable
"SHF_MERGE": (1 << 4) , # Might be merged
"SHF_STRINGS": (1 << 5) , # Contains nul-terminated strings
"SHF_INFO_LINK": (1 << 6) , # `sh_info' contains SHT index
"SHF_LINK_ORDER": (1 << 7) , # Preserve order after combining
"SHF_OS_NONCONFORMING": (1 << 8) , # Non-standard OS specific handling
"SHF_GROUP": (1 << 9) , # Section is member of a group.
"SHF_TLS": (1 << 10) , # Section hold thread-local data.
# libelf.h constants
# ELF_C
"ELF_C_NULL": 0,
"ELF_C_READ": 1,
"ELF_C_WRITE": 2,
"ELF_C_CLR": 3,
"ELF_C_SET": 4,
"ELF_C_FDDONE": 5,
"ELF_C_FDREAD": 6,
"ELF_C_RDWR": 7,
"ELF_C_NUM": 8,
# ELF_K
"ELF_K_NONE": 0,
"ELF_K_AR": 1,
"ELF_K_COFF": 2,
"ELF_K_ELF": 3,
"ELF_K_NUM": 4,
# ELF_T
"ELF_T_BYTE": 00,
"ELF_T_ADDR": 01,
"ELF_T_DYN": 02,
"ELF_T_EHDR": 03,
"ELF_T_HALF": 04,
"ELF_T_OFF": 05,
"ELF_T_PHDR": 06,
"ELF_T_RELA": 07,
"ELF_T_REL": 8,
"ELF_T_SHDR": 9,
"ELF_T_SWORD": 10,
"ELF_T_SYM": 11,
"ELF_T_WORD": 12,
"ELF_T_SXWORD": 13,
"ELF_T_XWORD": 14,
"ELF_T_VDEF": 15,
"ELF_T_VNEED": 16,
"ELF_T_NUM": 17,
# ELF_F (ELF flags)
"ELF_F_DIRTY": 0x1 , #
"ELF_F_LAYOUT": 0x4 , #
"ELF_F_LAYOUT_OVERLAP": 0x10000000 , #
}
# Now lets generate constants for all
g = globals()
for c in _consts:
g[c] = _consts[c]
__all__ = _consts.keys()
# TODO: Move these to the macros module
#elf.h
# Macro functions
#define ELF32_ST_VISIBILITY(o) ((o) & 0x03)
#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o)
#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag)) # Reverse order!
#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag)) # Reverse order!
#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) # Reverse order!
#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
#define ELF32_M_SYM(info) ((info) >> 8)
#define ELF32_M_SIZE(info) ((unsigned char) (info))
#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size))
#define ELF64_M_SYM(info) ELF32_M_SYM (info)
#define ELF64_M_SIZE(info) ELF32_M_SIZE (info)
#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size)
#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK)
#libelf.h