package elf

Import Path
	debug/elf (on go.dev)

Dependency Relation
	imports 12 packages, and imported by 2 packages

Involved Source Files elf.go Package elf implements access to ELF object files. # Security This package is not designed to be hardened against adversarial inputs, and is outside the scope of https://go.dev/security/policy. In particular, only basic validation is done when parsing object files. As such, care should be taken when parsing untrusted inputs, as parsing malformed files may consume significant resources, or cause panics. reader.go
Package-Level Type Names (total 56)
/* sort by: | */
ELF32 Compression header. Addralign uint32 Size uint32 Type uint32
ELF64 Compression header. Addralign uint64 Size uint64 Type uint32
Class is found in Header.Ident[EI_CLASS] and Header.Class. ( Class) GoString() string ( Class) String() string Class : expvar.Var Class : fmt.GoStringer Class : fmt.Stringer const ELFCLASS32 const ELFCLASS64 const ELFCLASSNONE
Section compression type. ( CompressionType) GoString() string ( CompressionType) String() string CompressionType : expvar.Var CompressionType : fmt.GoStringer CompressionType : fmt.Stringer const COMPRESS_HIOS const COMPRESS_HIPROC const COMPRESS_LOOS const COMPRESS_LOPROC const COMPRESS_ZLIB const COMPRESS_ZSTD
Data is found in Header.Ident[EI_DATA] and Header.Data. ( Data) GoString() string ( Data) String() string Data : expvar.Var Data : fmt.GoStringer Data : fmt.Stringer const ELFDATA2LSB const ELFDATA2MSB const ELFDATANONE
ELF32 Dynamic structure. The ".dynamic" section contains an array of them. // Entry type. // Integer/Address value.
ELF64 Dynamic structure. The ".dynamic" section contains an array of them. // Entry type. // Integer/address value
DT_FLAGS values. ( DynFlag) GoString() string ( DynFlag) String() string DynFlag : expvar.Var DynFlag : fmt.GoStringer DynFlag : fmt.Stringer const DF_BIND_NOW const DF_ORIGIN const DF_STATIC_TLS const DF_SYMBOLIC const DF_TEXTREL
DT_FLAGS_1 values. ( DynFlag1) GoString() string ( DynFlag1) String() string DynFlag1 : expvar.Var DynFlag1 : fmt.GoStringer DynFlag1 : fmt.Stringer const DF_1_CONFALT const DF_1_DIRECT const DF_1_DISPRELDNE const DF_1_DISPRELPND const DF_1_EDITED const DF_1_ENDFILTEE const DF_1_GLOBAL const DF_1_GLOBAUDIT const DF_1_GROUP const DF_1_IGNMULDEF const DF_1_INITFIRST const DF_1_INTERPOSE const DF_1_KMOD const DF_1_LOADFLTR const DF_1_NOCOMMON const DF_1_NODEFLIB const DF_1_NODELETE const DF_1_NODIRECT const DF_1_NODUMP const DF_1_NOHDR const DF_1_NOKSYMS const DF_1_NOOPEN const DF_1_NORELOC const DF_1_NOW const DF_1_ORIGIN const DF_1_PIE const DF_1_SINGLETON const DF_1_STUB const DF_1_SYMINTPOSE const DF_1_TRANS const DF_1_WEAKFILTER
Dyn.Tag ( DynTag) GoString() string ( DynTag) String() string DynTag : expvar.Var DynTag : fmt.GoStringer DynTag : fmt.Stringer func (*File).DynString(tag DynTag) ([]string, error) func (*File).DynValue(tag DynTag) ([]uint64, error) const DT_ADDRRNGHI const DT_ADDRRNGLO const DT_AUDIT const DT_AUXILIARY const DT_BIND_NOW const DT_CHECKSUM const DT_CONFIG const DT_DEBUG const DT_DEPAUDIT const DT_ENCODING const DT_FEATURE const DT_FILTER const DT_FINI const DT_FINI_ARRAY const DT_FINI_ARRAYSZ const DT_FLAGS const DT_FLAGS_1 const DT_GNU_CONFLICT const DT_GNU_CONFLICTSZ const DT_GNU_HASH const DT_GNU_LIBLIST const DT_GNU_LIBLISTSZ const DT_GNU_PRELINKED const DT_HASH const DT_HIOS const DT_HIPROC const DT_INIT const DT_INIT_ARRAY const DT_INIT_ARRAYSZ const DT_JMPREL const DT_LOOS const DT_LOPROC const DT_MIPS_AUX_DYNAMIC const DT_MIPS_BASE_ADDRESS const DT_MIPS_COMPACT_SIZE const DT_MIPS_CONFLICT const DT_MIPS_CONFLICTNO const DT_MIPS_CXX_FLAGS const DT_MIPS_DELTA_CLASS const DT_MIPS_DELTA_CLASS_NO const DT_MIPS_DELTA_CLASSSYM const DT_MIPS_DELTA_CLASSSYM_NO const DT_MIPS_DELTA_INSTANCE const DT_MIPS_DELTA_INSTANCE_NO const DT_MIPS_DELTA_RELOC const DT_MIPS_DELTA_RELOC_NO const DT_MIPS_DELTA_SYM const DT_MIPS_DELTA_SYM_NO const DT_MIPS_DYNSTR_ALIGN const DT_MIPS_FLAGS const DT_MIPS_GOTSYM const DT_MIPS_GP_VALUE const DT_MIPS_HIDDEN_GOTIDX const DT_MIPS_HIPAGENO const DT_MIPS_ICHECKSUM const DT_MIPS_INTERFACE const DT_MIPS_INTERFACE_SIZE const DT_MIPS_IVERSION const DT_MIPS_LIBLIST const DT_MIPS_LIBLISTNO const DT_MIPS_LOCAL_GOTIDX const DT_MIPS_LOCAL_GOTNO const DT_MIPS_LOCALPAGE_GOTIDX const DT_MIPS_MSYM const DT_MIPS_OPTIONS const DT_MIPS_PERF_SUFFIX const DT_MIPS_PIXIE_INIT const DT_MIPS_PLTGOT const DT_MIPS_PROTECTED_GOTIDX const DT_MIPS_RLD_MAP const DT_MIPS_RLD_MAP_REL const DT_MIPS_RLD_TEXT_RESOLVE_ADDR const DT_MIPS_RLD_VERSION const DT_MIPS_RWPLT const DT_MIPS_SYMBOL_LIB const DT_MIPS_SYMTABNO const DT_MIPS_TIME_STAMP const DT_MIPS_UNREFEXTNO const DT_MOVEENT const DT_MOVESZ const DT_MOVETAB const DT_NEEDED const DT_NULL const DT_PLTGOT const DT_PLTPAD const DT_PLTPADSZ const DT_PLTREL const DT_PLTRELSZ const DT_POSFLAG_1 const DT_PPC64_GLINK const DT_PPC64_OPD const DT_PPC64_OPDSZ const DT_PPC64_OPT const DT_PPC_GOT const DT_PPC_OPT const DT_PREINIT_ARRAY const DT_PREINIT_ARRAYSZ const DT_REL const DT_RELA const DT_RELACOUNT const DT_RELAENT const DT_RELASZ const DT_RELCOUNT const DT_RELENT const DT_RELSZ const DT_RPATH const DT_RUNPATH const DT_SONAME const DT_SPARC_REGISTER const DT_STRSZ const DT_STRTAB const DT_SYMBOLIC const DT_SYMENT const DT_SYMINENT const DT_SYMINFO const DT_SYMINSZ const DT_SYMTAB const DT_SYMTAB_SHNDX const DT_TEXTREL const DT_TLSDESC_GOT const DT_TLSDESC_PLT const DT_USED const DT_VALRNGHI const DT_VALRNGLO const DT_VERDEF const DT_VERDEFNUM const DT_VERNEED const DT_VERNEEDNUM const DT_VERSYM
A File represents an open ELF file. FileHeader FileHeader FileHeader.ABIVersion uint8 FileHeader.ByteOrder binary.ByteOrder FileHeader.Class Class FileHeader.Data Data FileHeader.Entry uint64 FileHeader.Machine Machine FileHeader.OSABI OSABI FileHeader.Type Type FileHeader.Version Version Progs []*Prog Sections []*Section Close closes the [File]. If the [File] was created using [NewFile] directly instead of [Open], Close has no effect. (*File) DWARF() (*dwarf.Data, error) DynString returns the strings listed for the given tag in the file's dynamic section. The tag must be one that takes string values: [DT_NEEDED], [DT_SONAME], [DT_RPATH], or [DT_RUNPATH]. DynValue returns the values listed for the given tag in the file's dynamic section. DynamicSymbols returns the dynamic symbol table for f. The symbols will be listed in the order they appear in f. If f has a symbol version table, the returned [File.Symbols] will have initialized [Version] and Library fields. For compatibility with [File.Symbols], [File.DynamicSymbols] omits the null symbol at index 0. After retrieving the symbols as symtab, an externally supplied index x corresponds to symtab[x-1], not symtab[x]. ImportedLibraries returns the names of all libraries referred to by the binary f that are expected to be linked with the binary at dynamic link time. ImportedSymbols returns the names of all symbols referred to by the binary f that are expected to be satisfied by other libraries at dynamic load time. It does not return weak symbols. Section returns a section with the given name, or nil if no such section exists. SectionByType returns the first section in f with the given type, or nil if there is no such section. Symbols returns the symbol table for f. The symbols will be listed in the order they appear in f. For compatibility with Go 1.0, Symbols omits the null symbol at index 0. After retrieving the symbols as symtab, an externally supplied index x corresponds to symtab[x-1], not symtab[x]. *File : io.Closer func NewFile(r io.ReaderAt) (*File, error) func Open(name string) (*File, error)
A FileHeader represents an ELF file header. ABIVersion uint8 ByteOrder binary.ByteOrder Class Class Data Data Entry uint64 Machine Machine OSABI OSABI Type Type Version Version
(*FormatError) Error() string *FormatError : error
ELF32 File header. // Size of ELF header in bytes. // Entry point. // Architecture-specific flags. // File identification. // Machine architecture. // Size of program header entry. // Number of program header entries. // Program header file offset. // Size of section header entry. // Number of section header entries. // Section header file offset. // Section name strings section. // File type. // ELF format version.
ELF64 file header. // Size of ELF header in bytes. // Entry point. // Architecture-specific flags. // File identification. // Machine architecture. // Size of program header entry. // Number of program header entries. // Program header file offset. // Size of section header entry. // Number of section header entries. // Section header file offset. // Section name strings section. // File type. // ELF format version.
Library string Name string Version string func (*File).ImportedSymbols() ([]ImportedSymbol, error)
Machine is found in Header.Machine. ( Machine) GoString() string ( Machine) String() string Machine : expvar.Var Machine : fmt.GoStringer Machine : fmt.Stringer const EM_386 const EM_486 const EM_56800EX const EM_68HC05 const EM_68HC08 const EM_68HC11 const EM_68HC12 const EM_68HC16 const EM_68K const EM_78KOR const EM_8051 const EM_860 const EM_88K const EM_960 const EM_AARCH64 const EM_ALPHA const EM_ALPHA_STD const EM_ALTERA_NIOS2 const EM_AMDGPU const EM_ARC const EM_ARC_COMPACT const EM_ARC_COMPACT2 const EM_ARCA const EM_ARM const EM_AVR const EM_AVR32 const EM_BA1 const EM_BA2 const EM_BLACKFIN const EM_BPF const EM_C166 const EM_CDP const EM_CE const EM_CLOUDSHIELD const EM_COGE const EM_COLDFIRE const EM_COOL const EM_COREA_1ST const EM_COREA_2ND const EM_CR const EM_CR16 const EM_CRAYNV2 const EM_CRIS const EM_CRX const EM_CSR_KALIMBA const EM_CUDA const EM_CYPRESS_M8C const EM_D10V const EM_D30V const EM_DSP24 const EM_DSPIC30F const EM_DXP const EM_ECOG1 const EM_ECOG16 const EM_ECOG1X const EM_ECOG2 const EM_ETPU const EM_EXCESS const EM_F2MC16 const EM_FIREPATH const EM_FR20 const EM_FR30 const EM_FT32 const EM_FX66 const EM_H8_300 const EM_H8_300H const EM_H8_500 const EM_H8S const EM_HUANY const EM_IA_64 const EM_INTEL205 const EM_INTEL206 const EM_INTEL207 const EM_INTEL208 const EM_INTEL209 const EM_IP2K const EM_JAVELIN const EM_K10M const EM_KM32 const EM_KMX16 const EM_KMX32 const EM_KMX8 const EM_KVARC const EM_L10M const EM_LANAI const EM_LATTICEMICO32 const EM_LOONGARCH const EM_M16C const EM_M32 const EM_M32C const EM_M32R const EM_MANIK const EM_MAX const EM_MAXQ30 const EM_MCHP_PIC const EM_MCST_ELBRUS const EM_ME16 const EM_METAG const EM_MICROBLAZE const EM_MIPS const EM_MIPS_RS3_LE const EM_MIPS_RS4_BE const EM_MIPS_X const EM_MMA const EM_MMDSP_PLUS const EM_MMIX const EM_MN10200 const EM_MN10300 const EM_MOXIE const EM_MSP430 const EM_NCPU const EM_NDR1 const EM_NDS32 const EM_NONE const EM_NORC const EM_NS32K const EM_OPEN8 const EM_OPENRISC const EM_PARISC const EM_PCP const EM_PDP10 const EM_PDP11 const EM_PDSP const EM_PJ const EM_PPC const EM_PPC64 const EM_PRISM const EM_QDSP6 const EM_R32C const EM_RCE const EM_RH32 const EM_RISCV const EM_RL78 const EM_RS08 const EM_RX const EM_S370 const EM_S390 const EM_SCORE7 const EM_SE_C17 const EM_SE_C33 const EM_SEP const EM_SH const EM_SHARC const EM_SLE9X const EM_SNP1K const EM_SPARC const EM_SPARC32PLUS const EM_SPARCV9 const EM_ST100 const EM_ST19 const EM_ST200 const EM_ST7 const EM_ST9PLUS const EM_STARCORE const EM_STM8 const EM_STXP7X const EM_SVX const EM_TI_ARP32 const EM_TI_C2000 const EM_TI_C5500 const EM_TI_C6000 const EM_TI_PRU const EM_TILE64 const EM_TILEGX const EM_TILEPRO const EM_TINYJ const EM_TMM_GPP const EM_TPC const EM_TRICORE const EM_TRIMEDIA const EM_TSK3000 const EM_UNICORE const EM_V800 const EM_V850 const EM_VAX const EM_VIDEOCORE const EM_VIDEOCORE3 const EM_VIDEOCORE5 const EM_VISIUM const EM_VPP500 const EM_X86_64 const EM_XCORE const EM_XGATE const EM_XIMO16 const EM_XTENSA const EM_Z80 const EM_ZSP
NType values; used in core files. ( NType) GoString() string ( NType) String() string NType : expvar.Var NType : fmt.GoStringer NType : fmt.Stringer const NT_FPREGSET const NT_PRPSINFO const NT_PRSTATUS
OSABI is found in Header.Ident[EI_OSABI] and Header.OSABI. ( OSABI) GoString() string ( OSABI) String() string OSABI : expvar.Var OSABI : fmt.GoStringer OSABI : fmt.Stringer const ELFOSABI_86OPEN const ELFOSABI_AIX const ELFOSABI_ARM const ELFOSABI_AROS const ELFOSABI_CLOUDABI const ELFOSABI_FENIXOS const ELFOSABI_FREEBSD const ELFOSABI_HPUX const ELFOSABI_HURD const ELFOSABI_IRIX const ELFOSABI_LINUX const ELFOSABI_MODESTO const ELFOSABI_NETBSD const ELFOSABI_NONE const ELFOSABI_NSK const ELFOSABI_OPENBSD const ELFOSABI_OPENVMS const ELFOSABI_SOLARIS const ELFOSABI_STANDALONE const ELFOSABI_TRU64
A Prog represents a single ELF program header in an ELF binary. ProgHeader ProgHeader ProgHeader.Align uint64 ProgHeader.Filesz uint64 ProgHeader.Flags ProgFlag ProgHeader.Memsz uint64 ProgHeader.Off uint64 ProgHeader.Paddr uint64 ProgHeader.Type ProgType ProgHeader.Vaddr uint64 Embed ReaderAt for ReadAt method. Do not embed SectionReader directly to avoid having Read and Seek. If a client wants Read and Seek it must use Open() to avoid fighting over the seek offset with other clients. Open returns a new ReadSeeker reading the ELF program body. ( Prog) ReadAt(p []byte, off int64) (n int, err error) Prog : io.ReaderAt
ELF32 Program header. // Alignment in memory and file. // Size of contents in file. // Access permission flags. // Size of contents in memory. // File offset of contents. // Physical address (not used). // Entry type. // Virtual address in memory image.
ELF64 Program header. // Alignment in memory and file. // Size of contents in file. // Access permission flags. // Size of contents in memory. // File offset of contents. // Physical address (not used). // Entry type. // Virtual address in memory image.
Prog.Flag ( ProgFlag) GoString() string ( ProgFlag) String() string ProgFlag : expvar.Var ProgFlag : fmt.GoStringer ProgFlag : fmt.Stringer const PF_MASKOS const PF_MASKPROC const PF_R const PF_W const PF_X
A ProgHeader represents a single ELF program header. Align uint64 Filesz uint64 Flags ProgFlag Memsz uint64 Off uint64 Paddr uint64 Type ProgType Vaddr uint64
Prog.Type ( ProgType) GoString() string ( ProgType) String() string ProgType : expvar.Var ProgType : fmt.GoStringer ProgType : fmt.Stringer const PT_AARCH64_ARCHEXT const PT_AARCH64_UNWIND const PT_ARM_ARCHEXT const PT_ARM_EXIDX const PT_DYNAMIC const PT_GNU_EH_FRAME const PT_GNU_MBIND_HI const PT_GNU_MBIND_LO const PT_GNU_PROPERTY const PT_GNU_RELRO const PT_GNU_STACK const PT_HIOS const PT_HIPROC const PT_INTERP const PT_LOAD const PT_LOOS const PT_LOPROC const PT_MIPS_ABIFLAGS const PT_MIPS_OPTIONS const PT_MIPS_REGINFO const PT_MIPS_RTPROC const PT_NOTE const PT_NULL const PT_OPENBSD_BOOTDATA const PT_OPENBSD_RANDOMIZE const PT_OPENBSD_WXNEEDED const PT_PAX_FLAGS const PT_PHDR const PT_S390_PGSTE const PT_SHLIB const PT_SUNW_EH_FRAME const PT_SUNWSTACK const PT_TLS
Relocation types for 386. ( R_386) GoString() string ( R_386) String() string R_386 : expvar.Var R_386 : fmt.GoStringer R_386 : fmt.Stringer const R_386_16 const R_386_32 const R_386_32PLT const R_386_8 const R_386_COPY const R_386_GLOB_DAT const R_386_GOT32 const R_386_GOT32X const R_386_GOTOFF const R_386_GOTPC const R_386_IRELATIVE const R_386_JMP_SLOT const R_386_NONE const R_386_PC16 const R_386_PC32 const R_386_PC8 const R_386_PLT32 const R_386_RELATIVE const R_386_SIZE32 const R_386_TLS_DESC const R_386_TLS_DESC_CALL const R_386_TLS_DTPMOD32 const R_386_TLS_DTPOFF32 const R_386_TLS_GD const R_386_TLS_GD_32 const R_386_TLS_GD_CALL const R_386_TLS_GD_POP const R_386_TLS_GD_PUSH const R_386_TLS_GOTDESC const R_386_TLS_GOTIE const R_386_TLS_IE const R_386_TLS_IE_32 const R_386_TLS_LDM const R_386_TLS_LDM_32 const R_386_TLS_LDM_CALL const R_386_TLS_LDM_POP const R_386_TLS_LDM_PUSH const R_386_TLS_LDO_32 const R_386_TLS_LE const R_386_TLS_LE_32 const R_386_TLS_TPOFF const R_386_TLS_TPOFF32
Relocation types for s390x processors. ( R_390) GoString() string ( R_390) String() string R_390 : expvar.Var R_390 : fmt.GoStringer R_390 : fmt.Stringer const R_390_12 const R_390_16 const R_390_20 const R_390_32 const R_390_64 const R_390_8 const R_390_COPY const R_390_GLOB_DAT const R_390_GOT12 const R_390_GOT16 const R_390_GOT20 const R_390_GOT32 const R_390_GOT64 const R_390_GOTENT const R_390_GOTOFF const R_390_GOTOFF16 const R_390_GOTOFF64 const R_390_GOTPC const R_390_GOTPCDBL const R_390_GOTPLT12 const R_390_GOTPLT16 const R_390_GOTPLT20 const R_390_GOTPLT32 const R_390_GOTPLT64 const R_390_GOTPLTENT const R_390_GOTPLTOFF16 const R_390_GOTPLTOFF32 const R_390_GOTPLTOFF64 const R_390_JMP_SLOT const R_390_NONE const R_390_PC16 const R_390_PC16DBL const R_390_PC32 const R_390_PC32DBL const R_390_PC64 const R_390_PLT16DBL const R_390_PLT32 const R_390_PLT32DBL const R_390_PLT64 const R_390_RELATIVE const R_390_TLS_DTPMOD const R_390_TLS_DTPOFF const R_390_TLS_GD32 const R_390_TLS_GD64 const R_390_TLS_GDCALL const R_390_TLS_GOTIE12 const R_390_TLS_GOTIE20 const R_390_TLS_GOTIE32 const R_390_TLS_GOTIE64 const R_390_TLS_IE32 const R_390_TLS_IE64 const R_390_TLS_IEENT const R_390_TLS_LDCALL const R_390_TLS_LDM32 const R_390_TLS_LDM64 const R_390_TLS_LDO32 const R_390_TLS_LDO64 const R_390_TLS_LE32 const R_390_TLS_LE64 const R_390_TLS_LOAD const R_390_TLS_TPOFF
Relocation types for AArch64 (aka arm64) ( R_AARCH64) GoString() string ( R_AARCH64) String() string R_AARCH64 : expvar.Var R_AARCH64 : fmt.GoStringer R_AARCH64 : fmt.Stringer const R_AARCH64_ABS16 const R_AARCH64_ABS32 const R_AARCH64_ABS64 const R_AARCH64_ADD_ABS_LO12_NC const R_AARCH64_ADR_GOT_PAGE const R_AARCH64_ADR_PREL_LO21 const R_AARCH64_ADR_PREL_PG_HI21 const R_AARCH64_ADR_PREL_PG_HI21_NC const R_AARCH64_CALL26 const R_AARCH64_CONDBR19 const R_AARCH64_COPY const R_AARCH64_GLOB_DAT const R_AARCH64_GOT_LD_PREL19 const R_AARCH64_IRELATIVE const R_AARCH64_JUMP26 const R_AARCH64_JUMP_SLOT const R_AARCH64_LD64_GOT_LO12_NC const R_AARCH64_LD64_GOTOFF_LO15 const R_AARCH64_LD64_GOTPAGE_LO15 const R_AARCH64_LD_PREL_LO19 const R_AARCH64_LDST128_ABS_LO12_NC const R_AARCH64_LDST16_ABS_LO12_NC const R_AARCH64_LDST32_ABS_LO12_NC const R_AARCH64_LDST64_ABS_LO12_NC const R_AARCH64_LDST8_ABS_LO12_NC const R_AARCH64_MOVW_SABS_G0 const R_AARCH64_MOVW_SABS_G1 const R_AARCH64_MOVW_SABS_G2 const R_AARCH64_MOVW_UABS_G0 const R_AARCH64_MOVW_UABS_G0_NC const R_AARCH64_MOVW_UABS_G1 const R_AARCH64_MOVW_UABS_G1_NC const R_AARCH64_MOVW_UABS_G2 const R_AARCH64_MOVW_UABS_G2_NC const R_AARCH64_MOVW_UABS_G3 const R_AARCH64_NONE const R_AARCH64_NULL const R_AARCH64_P32_ABS16 const R_AARCH64_P32_ABS32 const R_AARCH64_P32_ADD_ABS_LO12_NC const R_AARCH64_P32_ADR_GOT_PAGE const R_AARCH64_P32_ADR_PREL_LO21 const R_AARCH64_P32_ADR_PREL_PG_HI21 const R_AARCH64_P32_CALL26 const R_AARCH64_P32_CONDBR19 const R_AARCH64_P32_COPY const R_AARCH64_P32_GLOB_DAT const R_AARCH64_P32_GOT_LD_PREL19 const R_AARCH64_P32_IRELATIVE const R_AARCH64_P32_JUMP26 const R_AARCH64_P32_JUMP_SLOT const R_AARCH64_P32_LD32_GOT_LO12_NC const R_AARCH64_P32_LD_PREL_LO19 const R_AARCH64_P32_LDST128_ABS_LO12_NC const R_AARCH64_P32_LDST16_ABS_LO12_NC const R_AARCH64_P32_LDST32_ABS_LO12_NC const R_AARCH64_P32_LDST64_ABS_LO12_NC const R_AARCH64_P32_LDST8_ABS_LO12_NC const R_AARCH64_P32_MOVW_SABS_G0 const R_AARCH64_P32_MOVW_UABS_G0 const R_AARCH64_P32_MOVW_UABS_G0_NC const R_AARCH64_P32_MOVW_UABS_G1 const R_AARCH64_P32_PREL16 const R_AARCH64_P32_PREL32 const R_AARCH64_P32_RELATIVE const R_AARCH64_P32_TLS_DTPMOD const R_AARCH64_P32_TLS_DTPREL const R_AARCH64_P32_TLS_TPREL const R_AARCH64_P32_TLSDESC const R_AARCH64_P32_TLSDESC_ADD_LO12_NC const R_AARCH64_P32_TLSDESC_ADR_PAGE21 const R_AARCH64_P32_TLSDESC_ADR_PREL21 const R_AARCH64_P32_TLSDESC_CALL const R_AARCH64_P32_TLSDESC_LD32_LO12_NC const R_AARCH64_P32_TLSDESC_LD_PREL19 const R_AARCH64_P32_TLSGD_ADD_LO12_NC const R_AARCH64_P32_TLSGD_ADR_PAGE21 const R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21 const R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC const R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19 const R_AARCH64_P32_TLSLE_ADD_TPREL_HI12 const R_AARCH64_P32_TLSLE_ADD_TPREL_LO12 const R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC const R_AARCH64_P32_TLSLE_MOVW_TPREL_G0 const R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC const R_AARCH64_P32_TLSLE_MOVW_TPREL_G1 const R_AARCH64_P32_TSTBR14 const R_AARCH64_PREL16 const R_AARCH64_PREL32 const R_AARCH64_PREL64 const R_AARCH64_RELATIVE const R_AARCH64_TLS_DTPMOD64 const R_AARCH64_TLS_DTPREL64 const R_AARCH64_TLS_TPREL64 const R_AARCH64_TLSDESC const R_AARCH64_TLSDESC_ADD const R_AARCH64_TLSDESC_ADD_LO12_NC const R_AARCH64_TLSDESC_ADR_PAGE21 const R_AARCH64_TLSDESC_ADR_PREL21 const R_AARCH64_TLSDESC_CALL const R_AARCH64_TLSDESC_LD64_LO12_NC const R_AARCH64_TLSDESC_LD_PREL19 const R_AARCH64_TLSDESC_LDR const R_AARCH64_TLSDESC_OFF_G0_NC const R_AARCH64_TLSDESC_OFF_G1 const R_AARCH64_TLSGD_ADD_LO12_NC const R_AARCH64_TLSGD_ADR_PAGE21 const R_AARCH64_TLSGD_ADR_PREL21 const R_AARCH64_TLSGD_MOVW_G0_NC const R_AARCH64_TLSGD_MOVW_G1 const R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 const R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC const R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 const R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC const R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 const R_AARCH64_TLSLD_ADR_PAGE21 const R_AARCH64_TLSLD_ADR_PREL21 const R_AARCH64_TLSLD_LDST128_DTPREL_LO12 const R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC const R_AARCH64_TLSLE_ADD_TPREL_HI12 const R_AARCH64_TLSLE_ADD_TPREL_LO12 const R_AARCH64_TLSLE_ADD_TPREL_LO12_NC const R_AARCH64_TLSLE_LDST128_TPREL_LO12 const R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC const R_AARCH64_TLSLE_MOVW_TPREL_G0 const R_AARCH64_TLSLE_MOVW_TPREL_G0_NC const R_AARCH64_TLSLE_MOVW_TPREL_G1 const R_AARCH64_TLSLE_MOVW_TPREL_G1_NC const R_AARCH64_TLSLE_MOVW_TPREL_G2 const R_AARCH64_TSTBR14
Relocation types for Alpha. ( R_ALPHA) GoString() string ( R_ALPHA) String() string R_ALPHA : expvar.Var R_ALPHA : fmt.GoStringer R_ALPHA : fmt.Stringer const R_ALPHA_BRADDR const R_ALPHA_COPY const R_ALPHA_GLOB_DAT const R_ALPHA_GPDISP const R_ALPHA_GPREL32 const R_ALPHA_GPRELHIGH const R_ALPHA_GPRELLOW const R_ALPHA_GPVALUE const R_ALPHA_HINT const R_ALPHA_IMMED_BR_HI32 const R_ALPHA_IMMED_GP_16 const R_ALPHA_IMMED_GP_HI32 const R_ALPHA_IMMED_LO32 const R_ALPHA_IMMED_SCN_HI32 const R_ALPHA_JMP_SLOT const R_ALPHA_LITERAL const R_ALPHA_LITUSE const R_ALPHA_NONE const R_ALPHA_OP_PRSHIFT const R_ALPHA_OP_PSUB const R_ALPHA_OP_PUSH const R_ALPHA_OP_STORE const R_ALPHA_REFLONG const R_ALPHA_REFQUAD const R_ALPHA_RELATIVE const R_ALPHA_SREL16 const R_ALPHA_SREL32 const R_ALPHA_SREL64
Relocation types for ARM. ( R_ARM) GoString() string ( R_ARM) String() string R_ARM : expvar.Var R_ARM : fmt.GoStringer R_ARM : fmt.Stringer const R_ARM_ABS12 const R_ARM_ABS16 const R_ARM_ABS32 const R_ARM_ABS32_NOI const R_ARM_ABS8 const R_ARM_ALU_PC_G0 const R_ARM_ALU_PC_G0_NC const R_ARM_ALU_PC_G1 const R_ARM_ALU_PC_G1_NC const R_ARM_ALU_PC_G2 const R_ARM_ALU_PCREL_15_8 const R_ARM_ALU_PCREL_23_15 const R_ARM_ALU_PCREL_7_0 const R_ARM_ALU_SB_G0 const R_ARM_ALU_SB_G0_NC const R_ARM_ALU_SB_G1 const R_ARM_ALU_SB_G1_NC const R_ARM_ALU_SB_G2 const R_ARM_ALU_SBREL_19_12_NC const R_ARM_ALU_SBREL_27_20_CK const R_ARM_AMP_VCALL9 const R_ARM_BASE_ABS const R_ARM_CALL const R_ARM_COPY const R_ARM_GLOB_DAT const R_ARM_GNU_VTENTRY const R_ARM_GNU_VTINHERIT const R_ARM_GOT32 const R_ARM_GOT_ABS const R_ARM_GOT_BREL12 const R_ARM_GOT_PREL const R_ARM_GOTOFF const R_ARM_GOTOFF12 const R_ARM_GOTPC const R_ARM_GOTRELAX const R_ARM_IRELATIVE const R_ARM_JUMP24 const R_ARM_JUMP_SLOT const R_ARM_LDC_PC_G0 const R_ARM_LDC_PC_G1 const R_ARM_LDC_PC_G2 const R_ARM_LDC_SB_G0 const R_ARM_LDC_SB_G1 const R_ARM_LDC_SB_G2 const R_ARM_LDR_PC_G1 const R_ARM_LDR_PC_G2 const R_ARM_LDR_SB_G0 const R_ARM_LDR_SB_G1 const R_ARM_LDR_SB_G2 const R_ARM_LDR_SBREL_11_10_NC const R_ARM_LDRS_PC_G0 const R_ARM_LDRS_PC_G1 const R_ARM_LDRS_PC_G2 const R_ARM_LDRS_SB_G0 const R_ARM_LDRS_SB_G1 const R_ARM_LDRS_SB_G2 const R_ARM_ME_TOO const R_ARM_MOVT_ABS const R_ARM_MOVT_BREL const R_ARM_MOVT_PREL const R_ARM_MOVW_ABS_NC const R_ARM_MOVW_BREL const R_ARM_MOVW_BREL_NC const R_ARM_MOVW_PREL_NC const R_ARM_NONE const R_ARM_PC13 const R_ARM_PC24 const R_ARM_PLT32 const R_ARM_PLT32_ABS const R_ARM_PREL31 const R_ARM_PRIVATE_0 const R_ARM_PRIVATE_1 const R_ARM_PRIVATE_10 const R_ARM_PRIVATE_11 const R_ARM_PRIVATE_12 const R_ARM_PRIVATE_13 const R_ARM_PRIVATE_14 const R_ARM_PRIVATE_15 const R_ARM_PRIVATE_2 const R_ARM_PRIVATE_3 const R_ARM_PRIVATE_4 const R_ARM_PRIVATE_5 const R_ARM_PRIVATE_6 const R_ARM_PRIVATE_7 const R_ARM_PRIVATE_8 const R_ARM_PRIVATE_9 const R_ARM_RABS32 const R_ARM_RBASE const R_ARM_REL32 const R_ARM_REL32_NOI const R_ARM_RELATIVE const R_ARM_RPC24 const R_ARM_RREL32 const R_ARM_RSBREL32 const R_ARM_RXPC25 const R_ARM_SBREL31 const R_ARM_SBREL32 const R_ARM_SWI24 const R_ARM_TARGET1 const R_ARM_TARGET2 const R_ARM_THM_ABS5 const R_ARM_THM_ALU_ABS_G0_NC const R_ARM_THM_ALU_ABS_G1_NC const R_ARM_THM_ALU_ABS_G2_NC const R_ARM_THM_ALU_ABS_G3 const R_ARM_THM_ALU_PREL_11_0 const R_ARM_THM_GOT_BREL12 const R_ARM_THM_JUMP11 const R_ARM_THM_JUMP19 const R_ARM_THM_JUMP24 const R_ARM_THM_JUMP6 const R_ARM_THM_JUMP8 const R_ARM_THM_MOVT_ABS const R_ARM_THM_MOVT_BREL const R_ARM_THM_MOVT_PREL const R_ARM_THM_MOVW_ABS_NC const R_ARM_THM_MOVW_BREL const R_ARM_THM_MOVW_BREL_NC const R_ARM_THM_MOVW_PREL_NC const R_ARM_THM_PC12 const R_ARM_THM_PC22 const R_ARM_THM_PC8 const R_ARM_THM_RPC22 const R_ARM_THM_SWI8 const R_ARM_THM_TLS_CALL const R_ARM_THM_TLS_DESCSEQ16 const R_ARM_THM_TLS_DESCSEQ32 const R_ARM_THM_XPC22 const R_ARM_TLS_CALL const R_ARM_TLS_DESCSEQ const R_ARM_TLS_DTPMOD32 const R_ARM_TLS_DTPOFF32 const R_ARM_TLS_GD32 const R_ARM_TLS_GOTDESC const R_ARM_TLS_IE12GP const R_ARM_TLS_IE32 const R_ARM_TLS_LDM32 const R_ARM_TLS_LDO12 const R_ARM_TLS_LDO32 const R_ARM_TLS_LE12 const R_ARM_TLS_LE32 const R_ARM_TLS_TPOFF32 const R_ARM_V4BX const R_ARM_XPC25
Relocation types for LoongArch. ( R_LARCH) GoString() string ( R_LARCH) String() string R_LARCH : expvar.Var R_LARCH : fmt.GoStringer R_LARCH : fmt.Stringer const R_LARCH_32 const R_LARCH_32_PCREL const R_LARCH_64 const R_LARCH_64_PCREL const R_LARCH_ABS64_HI12 const R_LARCH_ABS64_LO20 const R_LARCH_ABS_HI20 const R_LARCH_ABS_LO12 const R_LARCH_ADD16 const R_LARCH_ADD24 const R_LARCH_ADD32 const R_LARCH_ADD6 const R_LARCH_ADD64 const R_LARCH_ADD8 const R_LARCH_ADD_ULEB128 const R_LARCH_ALIGN const R_LARCH_B16 const R_LARCH_B21 const R_LARCH_B26 const R_LARCH_CFA const R_LARCH_COPY const R_LARCH_DELETE const R_LARCH_GNU_VTENTRY const R_LARCH_GNU_VTINHERIT const R_LARCH_GOT64_HI12 const R_LARCH_GOT64_LO20 const R_LARCH_GOT64_PC_HI12 const R_LARCH_GOT64_PC_LO20 const R_LARCH_GOT_HI20 const R_LARCH_GOT_LO12 const R_LARCH_GOT_PC_HI20 const R_LARCH_GOT_PC_LO12 const R_LARCH_IRELATIVE const R_LARCH_JUMP_SLOT const R_LARCH_MARK_LA const R_LARCH_MARK_PCREL const R_LARCH_NONE const R_LARCH_PCALA64_HI12 const R_LARCH_PCALA64_LO20 const R_LARCH_PCALA_HI20 const R_LARCH_PCALA_LO12 const R_LARCH_PCREL20_S2 const R_LARCH_RELATIVE const R_LARCH_RELAX const R_LARCH_SOP_ADD const R_LARCH_SOP_AND const R_LARCH_SOP_ASSERT const R_LARCH_SOP_IF_ELSE const R_LARCH_SOP_NOT const R_LARCH_SOP_POP_32_S_0_10_10_16_S2 const R_LARCH_SOP_POP_32_S_0_5_10_16_S2 const R_LARCH_SOP_POP_32_S_10_12 const R_LARCH_SOP_POP_32_S_10_16 const R_LARCH_SOP_POP_32_S_10_16_S2 const R_LARCH_SOP_POP_32_S_10_5 const R_LARCH_SOP_POP_32_S_5_20 const R_LARCH_SOP_POP_32_U const R_LARCH_SOP_POP_32_U_10_12 const R_LARCH_SOP_PUSH_ABSOLUTE const R_LARCH_SOP_PUSH_DUP const R_LARCH_SOP_PUSH_GPREL const R_LARCH_SOP_PUSH_PCREL const R_LARCH_SOP_PUSH_PLT_PCREL const R_LARCH_SOP_PUSH_TLS_GD const R_LARCH_SOP_PUSH_TLS_GOT const R_LARCH_SOP_PUSH_TLS_TPREL const R_LARCH_SOP_SL const R_LARCH_SOP_SR const R_LARCH_SOP_SUB const R_LARCH_SUB16 const R_LARCH_SUB24 const R_LARCH_SUB32 const R_LARCH_SUB6 const R_LARCH_SUB64 const R_LARCH_SUB8 const R_LARCH_SUB_ULEB128 const R_LARCH_TLS_DTPMOD32 const R_LARCH_TLS_DTPMOD64 const R_LARCH_TLS_DTPREL32 const R_LARCH_TLS_DTPREL64 const R_LARCH_TLS_GD_HI20 const R_LARCH_TLS_GD_PC_HI20 const R_LARCH_TLS_IE64_HI12 const R_LARCH_TLS_IE64_LO20 const R_LARCH_TLS_IE64_PC_HI12 const R_LARCH_TLS_IE64_PC_LO20 const R_LARCH_TLS_IE_HI20 const R_LARCH_TLS_IE_LO12 const R_LARCH_TLS_IE_PC_HI20 const R_LARCH_TLS_IE_PC_LO12 const R_LARCH_TLS_LD_HI20 const R_LARCH_TLS_LD_PC_HI20 const R_LARCH_TLS_LE64_HI12 const R_LARCH_TLS_LE64_LO20 const R_LARCH_TLS_LE_HI20 const R_LARCH_TLS_LE_LO12 const R_LARCH_TLS_TPREL32 const R_LARCH_TLS_TPREL64
Relocation types for MIPS. ( R_MIPS) GoString() string ( R_MIPS) String() string R_MIPS : expvar.Var R_MIPS : fmt.GoStringer R_MIPS : fmt.Stringer const R_MIPS_16 const R_MIPS_26 const R_MIPS_32 const R_MIPS_64 const R_MIPS_ADD_IMMEDIATE const R_MIPS_CALL16 const R_MIPS_CALL_HI16 const R_MIPS_CALL_LO16 const R_MIPS_DELETE const R_MIPS_GOT16 const R_MIPS_GOT_DISP const R_MIPS_GOT_HI16 const R_MIPS_GOT_LO16 const R_MIPS_GOT_OFST const R_MIPS_GOT_PAGE const R_MIPS_GPREL16 const R_MIPS_GPREL32 const R_MIPS_HI16 const R_MIPS_HIGHER const R_MIPS_HIGHEST const R_MIPS_INSERT_A const R_MIPS_INSERT_B const R_MIPS_JALR const R_MIPS_LITERAL const R_MIPS_LO16 const R_MIPS_NONE const R_MIPS_PC16 const R_MIPS_PC32 const R_MIPS_PJUMP const R_MIPS_REL16 const R_MIPS_REL32 const R_MIPS_RELGOT const R_MIPS_SCN_DISP const R_MIPS_SHIFT5 const R_MIPS_SHIFT6 const R_MIPS_SUB const R_MIPS_TLS_DTPMOD32 const R_MIPS_TLS_DTPMOD64 const R_MIPS_TLS_DTPREL32 const R_MIPS_TLS_DTPREL64 const R_MIPS_TLS_DTPREL_HI16 const R_MIPS_TLS_DTPREL_LO16 const R_MIPS_TLS_GD const R_MIPS_TLS_GOTTPREL const R_MIPS_TLS_LDM const R_MIPS_TLS_TPREL32 const R_MIPS_TLS_TPREL64 const R_MIPS_TLS_TPREL_HI16 const R_MIPS_TLS_TPREL_LO16
Relocation types for PowerPC. Values that are shared by both R_PPC and R_PPC64 are prefixed with R_POWERPC_ in the ELF standard. For the R_PPC type, the relevant shared relocations have been renamed with the prefix R_PPC_. The original name follows the value in a comment. ( R_PPC) GoString() string ( R_PPC) String() string R_PPC : expvar.Var R_PPC : fmt.GoStringer R_PPC : fmt.Stringer const R_PPC_ADDR14 const R_PPC_ADDR14_BRNTAKEN const R_PPC_ADDR14_BRTAKEN const R_PPC_ADDR16 const R_PPC_ADDR16_HA const R_PPC_ADDR16_HI const R_PPC_ADDR16_LO const R_PPC_ADDR24 const R_PPC_ADDR32 const R_PPC_COPY const R_PPC_DTPMOD32 const R_PPC_DTPREL16 const R_PPC_DTPREL16_HA const R_PPC_DTPREL16_HI const R_PPC_DTPREL16_LO const R_PPC_DTPREL32 const R_PPC_EMB_BIT_FLD const R_PPC_EMB_MRKREF const R_PPC_EMB_NADDR16 const R_PPC_EMB_NADDR16_HA const R_PPC_EMB_NADDR16_HI const R_PPC_EMB_NADDR16_LO const R_PPC_EMB_NADDR32 const R_PPC_EMB_RELSDA const R_PPC_EMB_RELSEC16 const R_PPC_EMB_RELST_HA const R_PPC_EMB_RELST_HI const R_PPC_EMB_RELST_LO const R_PPC_EMB_SDA21 const R_PPC_EMB_SDA2I16 const R_PPC_EMB_SDA2REL const R_PPC_EMB_SDAI16 const R_PPC_GLOB_DAT const R_PPC_GOT16 const R_PPC_GOT16_HA const R_PPC_GOT16_HI const R_PPC_GOT16_LO const R_PPC_GOT_TLSGD16 const R_PPC_GOT_TLSGD16_HA const R_PPC_GOT_TLSGD16_HI const R_PPC_GOT_TLSGD16_LO const R_PPC_GOT_TLSLD16 const R_PPC_GOT_TLSLD16_HA const R_PPC_GOT_TLSLD16_HI const R_PPC_GOT_TLSLD16_LO const R_PPC_GOT_TPREL16 const R_PPC_GOT_TPREL16_HA const R_PPC_GOT_TPREL16_HI const R_PPC_GOT_TPREL16_LO const R_PPC_JMP_SLOT const R_PPC_LOCAL24PC const R_PPC_NONE const R_PPC_PLT16_HA const R_PPC_PLT16_HI const R_PPC_PLT16_LO const R_PPC_PLT32 const R_PPC_PLTREL24 const R_PPC_PLTREL32 const R_PPC_REL14 const R_PPC_REL14_BRNTAKEN const R_PPC_REL14_BRTAKEN const R_PPC_REL24 const R_PPC_REL32 const R_PPC_RELATIVE const R_PPC_SDAREL16 const R_PPC_SECTOFF const R_PPC_SECTOFF_HA const R_PPC_SECTOFF_HI const R_PPC_SECTOFF_LO const R_PPC_TLS const R_PPC_TPREL16 const R_PPC_TPREL16_HA const R_PPC_TPREL16_HI const R_PPC_TPREL16_LO const R_PPC_TPREL32 const R_PPC_UADDR16 const R_PPC_UADDR32
Relocation types for 64-bit PowerPC or Power Architecture processors. Values that are shared by both R_PPC and R_PPC64 are prefixed with R_POWERPC_ in the ELF standard. For the R_PPC64 type, the relevant shared relocations have been renamed with the prefix R_PPC64_. The original name follows the value in a comment. ( R_PPC64) GoString() string ( R_PPC64) String() string R_PPC64 : expvar.Var R_PPC64 : fmt.GoStringer R_PPC64 : fmt.Stringer const R_PPC64_ADDR14 const R_PPC64_ADDR14_BRNTAKEN const R_PPC64_ADDR14_BRTAKEN const R_PPC64_ADDR16 const R_PPC64_ADDR16_DS const R_PPC64_ADDR16_HA const R_PPC64_ADDR16_HI const R_PPC64_ADDR16_HIGH const R_PPC64_ADDR16_HIGHA const R_PPC64_ADDR16_HIGHER const R_PPC64_ADDR16_HIGHER34 const R_PPC64_ADDR16_HIGHERA const R_PPC64_ADDR16_HIGHERA34 const R_PPC64_ADDR16_HIGHEST const R_PPC64_ADDR16_HIGHEST34 const R_PPC64_ADDR16_HIGHESTA const R_PPC64_ADDR16_HIGHESTA34 const R_PPC64_ADDR16_LO const R_PPC64_ADDR16_LO_DS const R_PPC64_ADDR24 const R_PPC64_ADDR32 const R_PPC64_ADDR64 const R_PPC64_ADDR64_LOCAL const R_PPC64_COPY const R_PPC64_D28 const R_PPC64_D34 const R_PPC64_D34_HA30 const R_PPC64_D34_HI30 const R_PPC64_D34_LO const R_PPC64_DTPMOD64 const R_PPC64_DTPREL16 const R_PPC64_DTPREL16_DS const R_PPC64_DTPREL16_HA const R_PPC64_DTPREL16_HI const R_PPC64_DTPREL16_HIGH const R_PPC64_DTPREL16_HIGHA const R_PPC64_DTPREL16_HIGHER const R_PPC64_DTPREL16_HIGHERA const R_PPC64_DTPREL16_HIGHEST const R_PPC64_DTPREL16_HIGHESTA const R_PPC64_DTPREL16_LO const R_PPC64_DTPREL16_LO_DS const R_PPC64_DTPREL34 const R_PPC64_DTPREL64 const R_PPC64_ENTRY const R_PPC64_GLOB_DAT const R_PPC64_GNU_VTENTRY const R_PPC64_GNU_VTINHERIT const R_PPC64_GOT16 const R_PPC64_GOT16_DS const R_PPC64_GOT16_HA const R_PPC64_GOT16_HI const R_PPC64_GOT16_LO const R_PPC64_GOT16_LO_DS const R_PPC64_GOT_DTPREL16_DS const R_PPC64_GOT_DTPREL16_HA const R_PPC64_GOT_DTPREL16_HI const R_PPC64_GOT_DTPREL16_LO_DS const R_PPC64_GOT_DTPREL_PCREL34 const R_PPC64_GOT_PCREL34 const R_PPC64_GOT_TLSGD16 const R_PPC64_GOT_TLSGD16_HA const R_PPC64_GOT_TLSGD16_HI const R_PPC64_GOT_TLSGD16_LO const R_PPC64_GOT_TLSGD_PCREL34 const R_PPC64_GOT_TLSLD16 const R_PPC64_GOT_TLSLD16_HA const R_PPC64_GOT_TLSLD16_HI const R_PPC64_GOT_TLSLD16_LO const R_PPC64_GOT_TLSLD_PCREL34 const R_PPC64_GOT_TPREL16_DS const R_PPC64_GOT_TPREL16_HA const R_PPC64_GOT_TPREL16_HI const R_PPC64_GOT_TPREL16_LO_DS const R_PPC64_GOT_TPREL_PCREL34 const R_PPC64_IRELATIVE const R_PPC64_JMP_IREL const R_PPC64_JMP_SLOT const R_PPC64_NONE const R_PPC64_PCREL28 const R_PPC64_PCREL34 const R_PPC64_PCREL_OPT const R_PPC64_PLT16_HA const R_PPC64_PLT16_HI const R_PPC64_PLT16_LO const R_PPC64_PLT16_LO_DS const R_PPC64_PLT32 const R_PPC64_PLT64 const R_PPC64_PLT_PCREL34 const R_PPC64_PLT_PCREL34_NOTOC const R_PPC64_PLTCALL const R_PPC64_PLTCALL_NOTOC const R_PPC64_PLTGOT16 const R_PPC64_PLTGOT16_DS const R_PPC64_PLTGOT16_HA const R_PPC64_PLTGOT16_HI const R_PPC64_PLTGOT16_LO const R_PPC64_PLTGOT_LO_DS const R_PPC64_PLTREL32 const R_PPC64_PLTREL64 const R_PPC64_PLTSEQ const R_PPC64_PLTSEQ_NOTOC const R_PPC64_REL14 const R_PPC64_REL14_BRNTAKEN const R_PPC64_REL14_BRTAKEN const R_PPC64_REL16 const R_PPC64_REL16_HA const R_PPC64_REL16_HI const R_PPC64_REL16_HIGH const R_PPC64_REL16_HIGHA const R_PPC64_REL16_HIGHER const R_PPC64_REL16_HIGHER34 const R_PPC64_REL16_HIGHERA const R_PPC64_REL16_HIGHERA34 const R_PPC64_REL16_HIGHEST const R_PPC64_REL16_HIGHEST34 const R_PPC64_REL16_HIGHESTA const R_PPC64_REL16_HIGHESTA34 const R_PPC64_REL16_LO const R_PPC64_REL16DX_HA const R_PPC64_REL24 const R_PPC64_REL24_NOTOC const R_PPC64_REL24_P9NOTOC const R_PPC64_REL30 const R_PPC64_REL32 const R_PPC64_REL64 const R_PPC64_RELATIVE const R_PPC64_SECTOFF const R_PPC64_SECTOFF_DS const R_PPC64_SECTOFF_HA const R_PPC64_SECTOFF_HI const R_PPC64_SECTOFF_LO const R_PPC64_SECTOFF_LO_DS const R_PPC64_TLS const R_PPC64_TLSGD const R_PPC64_TLSLD const R_PPC64_TOC const R_PPC64_TOC16 const R_PPC64_TOC16_DS const R_PPC64_TOC16_HA const R_PPC64_TOC16_HI const R_PPC64_TOC16_LO const R_PPC64_TOC16_LO_DS const R_PPC64_TOCSAVE const R_PPC64_TPREL16 const R_PPC64_TPREL16_DS const R_PPC64_TPREL16_HA const R_PPC64_TPREL16_HI const R_PPC64_TPREL16_HIGH const R_PPC64_TPREL16_HIGHA const R_PPC64_TPREL16_HIGHER const R_PPC64_TPREL16_HIGHERA const R_PPC64_TPREL16_HIGHEST const R_PPC64_TPREL16_HIGHESTA const R_PPC64_TPREL16_LO const R_PPC64_TPREL16_LO_DS const R_PPC64_TPREL34 const R_PPC64_TPREL64 const R_PPC64_UADDR16 const R_PPC64_UADDR32 const R_PPC64_UADDR64
Relocation types for SPARC. ( R_SPARC) GoString() string ( R_SPARC) String() string R_SPARC : expvar.Var R_SPARC : fmt.GoStringer R_SPARC : fmt.Stringer const R_SPARC_10 const R_SPARC_11 const R_SPARC_13 const R_SPARC_16 const R_SPARC_22 const R_SPARC_32 const R_SPARC_5 const R_SPARC_6 const R_SPARC_64 const R_SPARC_7 const R_SPARC_8 const R_SPARC_COPY const R_SPARC_DISP16 const R_SPARC_DISP32 const R_SPARC_DISP64 const R_SPARC_DISP8 const R_SPARC_GLOB_DAT const R_SPARC_GLOB_JMP const R_SPARC_GOT10 const R_SPARC_GOT13 const R_SPARC_GOT22 const R_SPARC_H44 const R_SPARC_HH22 const R_SPARC_HI22 const R_SPARC_HIPLT22 const R_SPARC_HIX22 const R_SPARC_HM10 const R_SPARC_JMP_SLOT const R_SPARC_L44 const R_SPARC_LM22 const R_SPARC_LO10 const R_SPARC_LOPLT10 const R_SPARC_LOX10 const R_SPARC_M44 const R_SPARC_NONE const R_SPARC_OLO10 const R_SPARC_PC10 const R_SPARC_PC22 const R_SPARC_PC_HH22 const R_SPARC_PC_HM10 const R_SPARC_PC_LM22 const R_SPARC_PCPLT10 const R_SPARC_PCPLT22 const R_SPARC_PCPLT32 const R_SPARC_PLT32 const R_SPARC_PLT64 const R_SPARC_REGISTER const R_SPARC_RELATIVE const R_SPARC_UA16 const R_SPARC_UA32 const R_SPARC_UA64 const R_SPARC_WDISP16 const R_SPARC_WDISP19 const R_SPARC_WDISP22 const R_SPARC_WDISP30 const R_SPARC_WPLT30
Relocation types for x86-64. ( R_X86_64) GoString() string ( R_X86_64) String() string R_X86_64 : expvar.Var R_X86_64 : fmt.GoStringer R_X86_64 : fmt.Stringer const R_X86_64_16 const R_X86_64_32 const R_X86_64_32S const R_X86_64_64 const R_X86_64_8 const R_X86_64_COPY const R_X86_64_DTPMOD64 const R_X86_64_DTPOFF32 const R_X86_64_DTPOFF64 const R_X86_64_GLOB_DAT const R_X86_64_GOT32 const R_X86_64_GOT64 const R_X86_64_GOTOFF64 const R_X86_64_GOTPC32 const R_X86_64_GOTPC32_TLSDESC const R_X86_64_GOTPC64 const R_X86_64_GOTPCREL const R_X86_64_GOTPCREL64 const R_X86_64_GOTPCRELX const R_X86_64_GOTPLT64 const R_X86_64_GOTTPOFF const R_X86_64_IRELATIVE const R_X86_64_JMP_SLOT const R_X86_64_NONE const R_X86_64_PC16 const R_X86_64_PC32 const R_X86_64_PC32_BND const R_X86_64_PC64 const R_X86_64_PC8 const R_X86_64_PLT32 const R_X86_64_PLT32_BND const R_X86_64_PLTOFF64 const R_X86_64_RELATIVE const R_X86_64_RELATIVE64 const R_X86_64_REX_GOTPCRELX const R_X86_64_SIZE32 const R_X86_64_SIZE64 const R_X86_64_TLSDESC const R_X86_64_TLSDESC_CALL const R_X86_64_TLSGD const R_X86_64_TLSLD const R_X86_64_TPOFF32 const R_X86_64_TPOFF64
ELF32 Relocations that don't need an addend field. // Relocation type and symbol index. // Location to be relocated.
ELF64 relocations that don't need an addend field. // Relocation type and symbol index. // Location to be relocated.
ELF32 Relocations that need an addend field. // Addend. // Relocation type and symbol index. // Location to be relocated.
ELF64 relocations that need an addend field. // Addend. // Relocation type and symbol index. // Location to be relocated.
A Section represents a single section in an ELF file. Embed ReaderAt for ReadAt method. Do not embed SectionReader directly to avoid having Read and Seek. If a client wants Read and Seek it must use Open() to avoid fighting over the seek offset with other clients. ReaderAt may be nil if the section is not easily available in a random-access form. For example, a compressed section may have a nil ReaderAt. SectionHeader SectionHeader SectionHeader.Addr uint64 SectionHeader.Addralign uint64 SectionHeader.Entsize uint64 FileSize is the size of this section in the file in bytes. If a section is compressed, FileSize is the size of the compressed data, while Size (above) is the size of the uncompressed data. SectionHeader.Flags SectionFlag SectionHeader.Info uint32 SectionHeader.Link uint32 SectionHeader.Name string SectionHeader.Offset uint64 SectionHeader.Size uint64 SectionHeader.Type SectionType Data reads and returns the contents of the ELF section. Even if the section is stored compressed in the ELF file, Data returns uncompressed data. For an [SHT_NOBITS] section, Data always returns a non-nil error. Open returns a new ReadSeeker reading the ELF section. Even if the section is stored compressed in the ELF file, the ReadSeeker reads uncompressed data. For an [SHT_NOBITS] section, all calls to the opened reader will return a non-nil error. ( Section) ReadAt(p []byte, off int64) (n int, err error) Section : io.ReaderAt func (*File).Section(name string) *Section func (*File).SectionByType(typ SectionType) *Section
ELF32 Section header. // Address in memory image. // Alignment in bytes. // Size of each entry in section. // Section flags. // Depends on section type. // Index of a related section. // Section name (index into the section header string table). // Offset in file. // Size in bytes. // Section type.
ELF64 Section header. // Address in memory image. // Alignment in bytes. // Size of each entry in section. // Section flags. // Depends on section type. // Index of a related section. // Section name (index into the section header string table). // Offset in file. // Size in bytes. // Section type.
Section flags. ( SectionFlag) GoString() string ( SectionFlag) String() string SectionFlag : expvar.Var SectionFlag : fmt.GoStringer SectionFlag : fmt.Stringer const SHF_ALLOC const SHF_COMPRESSED const SHF_EXECINSTR const SHF_GROUP const SHF_INFO_LINK const SHF_LINK_ORDER const SHF_MASKOS const SHF_MASKPROC const SHF_MERGE const SHF_OS_NONCONFORMING const SHF_STRINGS const SHF_TLS const SHF_WRITE
A SectionHeader represents a single ELF section header. Addr uint64 Addralign uint64 Entsize uint64 FileSize is the size of this section in the file in bytes. If a section is compressed, FileSize is the size of the compressed data, while Size (above) is the size of the uncompressed data. Flags SectionFlag Info uint32 Link uint32 Name string Offset uint64 Size uint64 Type SectionType
Special section indices. ( SectionIndex) GoString() string ( SectionIndex) String() string SectionIndex : expvar.Var SectionIndex : fmt.GoStringer SectionIndex : fmt.Stringer const SHN_ABS const SHN_COMMON const SHN_HIOS const SHN_HIPROC const SHN_HIRESERVE const SHN_LOOS const SHN_LOPROC const SHN_LORESERVE const SHN_UNDEF const SHN_XINDEX
Section type. ( SectionType) GoString() string ( SectionType) String() string SectionType : expvar.Var SectionType : fmt.GoStringer SectionType : fmt.Stringer func (*File).SectionByType(typ SectionType) *Section const SHT_DYNAMIC const SHT_DYNSYM const SHT_FINI_ARRAY const SHT_GNU_ATTRIBUTES const SHT_GNU_HASH const SHT_GNU_LIBLIST const SHT_GNU_VERDEF const SHT_GNU_VERNEED const SHT_GNU_VERSYM const SHT_GROUP const SHT_HASH const SHT_HIOS const SHT_HIPROC const SHT_HIUSER const SHT_INIT_ARRAY const SHT_LOOS const SHT_LOPROC const SHT_LOUSER const SHT_MIPS_ABIFLAGS const SHT_NOBITS const SHT_NOTE const SHT_NULL const SHT_PREINIT_ARRAY const SHT_PROGBITS const SHT_REL const SHT_RELA const SHT_SHLIB const SHT_STRTAB const SHT_SYMTAB const SHT_SYMTAB_SHNDX
ELF32 Symbol. Info uint8 Name uint32 Other uint8 Shndx uint16 Size uint32 Value uint32
ELF64 symbol table entries. // Type and binding information. // String table index of name. // Reserved (not used). // Section index of symbol. // Size of associated object. // Symbol value.
Symbol Binding - ELFNN_ST_BIND - st_info ( SymBind) GoString() string ( SymBind) String() string SymBind : expvar.Var SymBind : fmt.GoStringer SymBind : fmt.Stringer func ST_BIND(info uint8) SymBind func ST_INFO(bind SymBind, typ SymType) uint8 const STB_GLOBAL const STB_HIOS const STB_HIPROC const STB_LOCAL const STB_LOOS const STB_LOPROC const STB_WEAK
A Symbol represents an entry in an ELF symbol table section. Info byte Library string Name string Other byte Section SectionIndex Size uint64 Value uint64 Version and Library are present only for the dynamic symbol table. func (*File).DynamicSymbols() ([]Symbol, error) func (*File).Symbols() ([]Symbol, error)
Symbol type - ELFNN_ST_TYPE - st_info ( SymType) GoString() string ( SymType) String() string SymType : expvar.Var SymType : fmt.GoStringer SymType : fmt.Stringer func ST_TYPE(info uint8) SymType func ST_INFO(bind SymBind, typ SymType) uint8 const STT_COMMON const STT_FILE const STT_FUNC const STT_HIOS const STT_HIPROC const STT_LOOS const STT_LOPROC const STT_NOTYPE const STT_OBJECT const STT_SECTION const STT_TLS
Symbol visibility - ELFNN_ST_VISIBILITY - st_other ( SymVis) GoString() string ( SymVis) String() string SymVis : expvar.Var SymVis : fmt.GoStringer SymVis : fmt.Stringer func ST_VISIBILITY(other uint8) SymVis const STV_DEFAULT const STV_HIDDEN const STV_INTERNAL const STV_PROTECTED
Type is found in Header.Type. ( Type) GoString() string ( Type) String() string Type : expvar.Var Type : fmt.GoStringer Type : fmt.Stringer const ET_CORE const ET_DYN const ET_EXEC const ET_HIOS const ET_HIPROC const ET_LOOS const ET_LOPROC const ET_NONE const ET_REL
Version is found in Header.Ident[EI_VERSION] and Header.Version. ( Version) GoString() string ( Version) String() string Version : expvar.Var Version : fmt.GoStringer Version : fmt.Stringer const EV_CURRENT const EV_NONE
Package-Level Functions (total 12)
NewFile creates a new [File] for accessing an ELF binary in an underlying reader. The ELF binary is expected to start at position 0 in the ReaderAt.
Open opens the named file using [os.Open] and prepares it for use as an ELF binary.
func R_INFO(sym, typ uint32) uint64
func R_INFO32(sym, typ uint32) uint32
func R_SYM32(info uint32) uint32
func R_SYM64(info uint64) uint32
func R_TYPE32(info uint32) uint32
func R_TYPE64(info uint64) uint32
func ST_BIND(info uint8) SymBind
func ST_INFO(bind SymBind, typ SymType) uint8
func ST_TYPE(info uint8) SymType
Package-Level Variables (only one)
ErrNoSymbols is returned by [File.Symbols] and [File.DynamicSymbols] if there is no such section in the File.
Package-Level Constants (total 1465)
Magic number for the elf trampoline, chosen wisely to be an immediate value.
const COMPRESS_HIOS CompressionType = 1879048191 // Last OS-specific.
const COMPRESS_HIPROC CompressionType = 2147483647 // Last processor-specific type.
const COMPRESS_LOOS CompressionType = 1610612736 // First OS-specific.
const COMPRESS_LOPROC CompressionType = 1879048192 // First processor-specific type.
const COMPRESS_ZLIB CompressionType = 1 // ZLIB compression.
const COMPRESS_ZSTD CompressionType = 2 // ZSTD compression.
Identifies this object as a configuration alternative object generated by crle. Triggers the runtime linker to search for a configuration file $ORIGIN/ld.config.app-name.
Indicates that the object should use direct binding information.
Indicates that this object has displacement relocations applied.
Indicates that this object has displacement relocations pending.
Indicates that this object has been edited or has been modified since the objects original construction by the link-editor.
Meaningful only for filtees. Terminates a filters search for any further filtees.
Unused.
Indicates that the executable requires global auditing.
Indicates that the object is a member of a group.
Reserved for internal use by the kernel runtime-linker.
Indicates that this object's initialization section be run before any other objects loaded.
Indicates that the objects symbol table is to interpose before all symbols except the primary load object, which is typically the executable.
Indicates that the object is a kernel module.
Meaningful only for filters. Indicates that all associated filtees be processed immediately.
Unused.
Indicates that the search for dependencies of this object ignores any default library search paths.
Indicates that the object cannot be deleted from a process.
Indicates that this object contains symbols that cannot be directly bound to.
Indicates that this object is not dumped by dldump. Candidates are objects with no relocations that might get included when generating alternative objects using.
Reserved for internal use by the kernel runtime-linker.
Reserved for internal use by the kernel runtime-linker.
Indicates that the object cannot be added to a running process with dlopen.
Reserved for internal use by the kernel runtime-linker.
Indicates that all relocations for this object must be processed before returning control to the program.
Indicates the object requires $ORIGIN processing.
Indicates that the object is a position-independent executable.
Indicates that the object defines, or makes reference to singleton symbols.
Indicates that the object is a stub.
Indicates that the object contains individual symbols that should interpose before all symbols except the primary load object, which is typically the executable.
Unused.
Indicates that the object is a weak standard filter.
const DF_BIND_NOW DynFlag = 8 // Indicates that the dynamic linker should process all relocations for the object containing this entry before transferring control to the program.
const DF_ORIGIN DynFlag = 1 // Indicates that the object being loaded may make reference to the $ORIGIN substitution string
const DF_STATIC_TLS DynFlag = 16 // Indicates that the shared object or executable contains code using a static thread-local storage scheme.
const DF_SYMBOLIC DynFlag = 2 // Indicates "symbolic" linking.
const DF_TEXTREL DynFlag = 4 // Indicates there may be relocations in non-writable segments.
const DT_ADDRRNGHI DynTag = 1879047935
const DT_ADDRRNGLO DynTag = 1879047680
const DT_AUDIT DynTag = 1879047932
const DT_AUXILIARY DynTag = 2147483645
const DT_BIND_NOW DynTag = 24 // [sup]
const DT_CHECKSUM DynTag = 1879047672
const DT_CONFIG DynTag = 1879047930
const DT_DEBUG DynTag = 21 // Reserved (not used).
const DT_DEPAUDIT DynTag = 1879047931
const DT_ENCODING DynTag = 32 // Values greater than or equal to DT_ENCODING and less than DT_LOOS follow the rules for the interpretation of the d_un union as follows: even == 'd_ptr', even == 'd_val' or none
const DT_FEATURE DynTag = 1879047676
const DT_FILTER DynTag = 2147483647
const DT_FINI DynTag = 13 // Address of finalization function.
const DT_FINI_ARRAY DynTag = 26 // Address of the array of pointers to termination functions
const DT_FINI_ARRAYSZ DynTag = 28 // Size in bytes of the array of termination functions.
const DT_FLAGS DynTag = 30 // Object specific flag values.
const DT_FLAGS_1 DynTag = 1879048187
const DT_GNU_CONFLICT DynTag = 1879047928
const DT_GNU_CONFLICTSZ DynTag = 1879047670
const DT_GNU_HASH DynTag = 1879047925
const DT_GNU_LIBLIST DynTag = 1879047929
const DT_GNU_LIBLISTSZ DynTag = 1879047671
const DT_GNU_PRELINKED DynTag = 1879047669
const DT_HASH DynTag = 4 // Address of symbol hash table.
const DT_HIOS DynTag = 1879044096 // Last OS-specific
const DT_HIPROC DynTag = 2147483647 // Last processor-specific type.
const DT_INIT DynTag = 12 // Address of initialization function.
const DT_INIT_ARRAY DynTag = 25 // Address of the array of pointers to initialization functions
const DT_INIT_ARRAYSZ DynTag = 27 // Size in bytes of the array of initialization functions.
const DT_JMPREL DynTag = 23 // Address of PLT relocations.
const DT_LOOS DynTag = 1610612749 // First OS-specific
const DT_LOPROC DynTag = 1879048192 // First processor-specific type.
const DT_MIPS_AUX_DYNAMIC DynTag = 1879048241
const DT_MIPS_BASE_ADDRESS DynTag = 1879048198
const DT_MIPS_COMPACT_SIZE DynTag = 1879048239
const DT_MIPS_CONFLICT DynTag = 1879048200
const DT_MIPS_CONFLICTNO DynTag = 1879048203
const DT_MIPS_CXX_FLAGS DynTag = 1879048226
const DT_MIPS_DELTA_CLASS DynTag = 1879048215
const DT_MIPS_DELTA_CLASS_NO DynTag = 1879048216
const DT_MIPS_DELTA_CLASSSYM DynTag = 1879048224
const DT_MIPS_DELTA_CLASSSYM_NO DynTag = 1879048225
const DT_MIPS_DELTA_INSTANCE DynTag = 1879048217
const DT_MIPS_DELTA_INSTANCE_NO DynTag = 1879048218
const DT_MIPS_DELTA_RELOC DynTag = 1879048219
const DT_MIPS_DELTA_RELOC_NO DynTag = 1879048220
const DT_MIPS_DELTA_SYM DynTag = 1879048221
const DT_MIPS_DELTA_SYM_NO DynTag = 1879048222
const DT_MIPS_DYNSTR_ALIGN DynTag = 1879048235
const DT_MIPS_FLAGS DynTag = 1879048197
const DT_MIPS_GOTSYM DynTag = 1879048211
const DT_MIPS_GP_VALUE DynTag = 1879048240
const DT_MIPS_HIDDEN_GOTIDX DynTag = 1879048231
const DT_MIPS_HIPAGENO DynTag = 1879048212
const DT_MIPS_ICHECKSUM DynTag = 1879048195
const DT_MIPS_INTERFACE DynTag = 1879048234
const DT_MIPS_INTERFACE_SIZE DynTag = 1879048236
const DT_MIPS_IVERSION DynTag = 1879048196
const DT_MIPS_LIBLIST DynTag = 1879048201
const DT_MIPS_LIBLISTNO DynTag = 1879048208
const DT_MIPS_LOCAL_GOTIDX DynTag = 1879048230
const DT_MIPS_LOCAL_GOTNO DynTag = 1879048202
const DT_MIPS_LOCALPAGE_GOTIDX DynTag = 1879048229
const DT_MIPS_MSYM DynTag = 1879048199
const DT_MIPS_OPTIONS DynTag = 1879048233
const DT_MIPS_PERF_SUFFIX DynTag = 1879048238
const DT_MIPS_PIXIE_INIT DynTag = 1879048227
const DT_MIPS_PLTGOT DynTag = 1879048242
const DT_MIPS_PROTECTED_GOTIDX DynTag = 1879048232
const DT_MIPS_RLD_MAP DynTag = 1879048214
const DT_MIPS_RLD_MAP_REL DynTag = 1879048245
const DT_MIPS_RLD_VERSION DynTag = 1879048193
const DT_MIPS_RWPLT DynTag = 1879048244
const DT_MIPS_SYMBOL_LIB DynTag = 1879048228
const DT_MIPS_SYMTABNO DynTag = 1879048209
const DT_MIPS_TIME_STAMP DynTag = 1879048194
const DT_MIPS_UNREFEXTNO DynTag = 1879048210
const DT_MOVEENT DynTag = 1879047674
const DT_MOVESZ DynTag = 1879047675
const DT_MOVETAB DynTag = 1879047934
const DT_NEEDED DynTag = 1 // String table offset of a needed shared library.
const DT_NULL DynTag = 0 // Terminating entry.
const DT_PLTGOT DynTag = 3 // Processor-dependent address.
const DT_PLTPAD DynTag = 1879047933
const DT_PLTPADSZ DynTag = 1879047673
const DT_PLTREL DynTag = 20 // Type of relocation used for PLT.
const DT_PLTRELSZ DynTag = 2 // Total size in bytes of PLT relocations.
const DT_POSFLAG_1 DynTag = 1879047677
const DT_PPC64_OPD DynTag = 1879048193
const DT_PPC64_OPDSZ DynTag = 1879048194
const DT_PPC64_OPT DynTag = 1879048195
const DT_PPC_GOT DynTag = 1879048192
const DT_PPC_OPT DynTag = 1879048193
const DT_PREINIT_ARRAY DynTag = 32 // Address of the array of pointers to pre-initialization functions.
const DT_PREINIT_ARRAYSZ DynTag = 33 // Size in bytes of the array of pre-initialization functions.
const DT_REL DynTag = 17 // Address of ElfNN_Rel relocations.
const DT_RELA DynTag = 7 // Address of ElfNN_Rela relocations.
const DT_RELACOUNT DynTag = 1879048185
const DT_RELAENT DynTag = 9 // Size of each ElfNN_Rela relocation entry.
const DT_RELASZ DynTag = 8 // Total size of ElfNN_Rela relocations.
const DT_RELCOUNT DynTag = 1879048186
const DT_RELENT DynTag = 19 // Size of each ElfNN_Rel relocation.
const DT_RELSZ DynTag = 18 // Total size of ElfNN_Rel relocations.
const DT_RPATH DynTag = 15 // String table offset of library path. [sup]
const DT_RUNPATH DynTag = 29 // String table offset of a null-terminated library search path string.
const DT_SONAME DynTag = 14 // String table offset of shared object name.
const DT_SPARC_REGISTER DynTag = 1879048193
const DT_STRSZ DynTag = 10 // Size of string table.
const DT_STRTAB DynTag = 5 // Address of string table.
const DT_SYMBOLIC DynTag = 16 // Indicates "symbolic" linking. [sup]
const DT_SYMENT DynTag = 11 // Size of each symbol table entry.
const DT_SYMINENT DynTag = 1879047679
const DT_SYMINFO DynTag = 1879047935
const DT_SYMINSZ DynTag = 1879047678
const DT_SYMTAB DynTag = 6 // Address of symbol table.
const DT_SYMTAB_SHNDX DynTag = 34 // Address of SHT_SYMTAB_SHNDX section.
const DT_TEXTREL DynTag = 22 // Indicates there may be relocations in non-writable segments. [sup]
const DT_TLSDESC_GOT DynTag = 1879047927
const DT_TLSDESC_PLT DynTag = 1879047926
const DT_USED DynTag = 2147483646
const DT_VALRNGHI DynTag = 1879047679
const DT_VALRNGLO DynTag = 1879047424
const DT_VERDEF DynTag = 1879048188
const DT_VERDEFNUM DynTag = 1879048189
const DT_VERNEED DynTag = 1879048190
const DT_VERNEEDNUM DynTag = 1879048191
const DT_VERSYM DynTag = 1879048176
Indexes into the Header.Ident array.
Indexes into the Header.Ident array.
Indexes into the Header.Ident array.
Indexes into the Header.Ident array.
Indexes into the Header.Ident array.
Indexes into the Header.Ident array.
Indexes into the Header.Ident array.
const ELFCLASS32 Class = 1 // 32-bit architecture.
const ELFCLASS64 Class = 2 // 64-bit architecture.
const ELFCLASSNONE Class = 0 // Unknown class.
const ELFDATA2LSB Data = 1 // 2's complement little-endian.
const ELFDATA2MSB Data = 2 // 2's complement big-endian.
const ELFDATANONE Data = 0 // Unknown data format.
Initial magic number for ELF files.
const ELFOSABI_86OPEN OSABI = 5 // 86Open common IA32 ABI
const ELFOSABI_AIX OSABI = 7 // AIX
const ELFOSABI_ARM OSABI = 97 // ARM
const ELFOSABI_AROS OSABI = 15 // Amiga Research OS
const ELFOSABI_CLOUDABI OSABI = 17 // Nuxi CloudABI
const ELFOSABI_FENIXOS OSABI = 16 // The FenixOS highly scalable multi-core OS
const ELFOSABI_FREEBSD OSABI = 9 // FreeBSD
const ELFOSABI_HPUX OSABI = 1 // HP-UX operating system
const ELFOSABI_HURD OSABI = 4 // Hurd
const ELFOSABI_IRIX OSABI = 8 // IRIX
const ELFOSABI_LINUX OSABI = 3 // Linux
const ELFOSABI_MODESTO OSABI = 11 // Novell Modesto
const ELFOSABI_NETBSD OSABI = 2 // NetBSD
const ELFOSABI_NONE OSABI = 0 // UNIX System V ABI
const ELFOSABI_NSK OSABI = 14 // HP Non-Stop Kernel
const ELFOSABI_OPENBSD OSABI = 12 // OpenBSD
const ELFOSABI_OPENVMS OSABI = 13 // Open VMS
const ELFOSABI_SOLARIS OSABI = 6 // Solaris
const ELFOSABI_STANDALONE OSABI = 255 // Standalone (embedded) application
const ELFOSABI_TRU64 OSABI = 10 // TRU64 UNIX
const EM_386 Machine = 3 // Intel i386.
Non-standard or deprecated.
const EM_56800EX Machine = 200 // Freescale 56800EX Digital Signal Controller (DSC)
const EM_68HC05 Machine = 72 // Motorola MC68HC05 Microcontroller
const EM_68HC08 Machine = 71 // Motorola MC68HC08 Microcontroller
const EM_68HC11 Machine = 70 // Motorola MC68HC11 Microcontroller
const EM_68HC12 Machine = 53 // Motorola M68HC12.
const EM_68HC16 Machine = 69 // Motorola MC68HC16 Microcontroller
const EM_68K Machine = 4 // Motorola 68000.
const EM_78KOR Machine = 199 // Renesas 78KOR family
const EM_8051 Machine = 165 // Intel 8051 and variants
const EM_860 Machine = 7 // Intel i860.
const EM_88K Machine = 5 // Motorola 88000.
const EM_960 Machine = 19 // Intel 80960.
const EM_AARCH64 Machine = 183 // ARM 64-bit Architecture (AArch64)
const EM_ALPHA Machine = 36902 // Alpha (written in the absence of an ABI)
const EM_ALPHA_STD Machine = 41 // Digital Alpha (standard value).
const EM_ALTERA_NIOS2 Machine = 113 // Altera Nios II soft-core processor
const EM_AMDGPU Machine = 224 // AMD GPU architecture
const EM_ARC Machine = 45 // Argonaut RISC Core.
const EM_ARC_COMPACT Machine = 93 // ARC International ARCompact processor (old spelling/synonym: EM_ARC_A5)
const EM_ARC_COMPACT2 Machine = 195 // Synopsys ARCompact V2
const EM_ARCA Machine = 109 // Arca RISC Microprocessor
const EM_ARM Machine = 40 // ARM.
const EM_AVR Machine = 83 // Atmel AVR 8-bit microcontroller
const EM_AVR32 Machine = 185 // Atmel Corporation 32-bit microprocessor family
const EM_BA1 Machine = 201 // Beyond BA1 CPU architecture
const EM_BA2 Machine = 202 // Beyond BA2 CPU architecture
const EM_BLACKFIN Machine = 106 // Analog Devices Blackfin (DSP) processor
const EM_BPF Machine = 247 // Linux BPF – in-kernel virtual machine
const EM_C166 Machine = 116 // Infineon C16x/XC16x processor
const EM_CDP Machine = 215 // Paneve CDP architecture family
const EM_CE Machine = 119 // Freescale Communication Engine RISC core
const EM_CLOUDSHIELD Machine = 192 // CloudShield architecture family
const EM_COGE Machine = 216 // Cognitive Smart Memory Processor
const EM_COLDFIRE Machine = 52 // Motorola ColdFire.
const EM_COOL Machine = 217 // Bluechip Systems CoolEngine
const EM_COREA_1ST Machine = 193 // KIPO-KAIST Core-A 1st generation processor family
const EM_COREA_2ND Machine = 194 // KIPO-KAIST Core-A 2nd generation processor family
const EM_CR Machine = 103 // National Semiconductor CompactRISC microprocessor
const EM_CR16 Machine = 177 // National Semiconductor CompactRISC CR16 16-bit microprocessor
const EM_CRAYNV2 Machine = 172 // Cray Inc. NV2 vector architecture
const EM_CRIS Machine = 76 // Axis Communications 32-bit embedded processor
const EM_CRX Machine = 114 // National Semiconductor CompactRISC CRX microprocessor
const EM_CSR_KALIMBA Machine = 219 // CSR Kalimba architecture family
const EM_CUDA Machine = 190 // NVIDIA CUDA architecture
const EM_CYPRESS_M8C Machine = 161 // Cypress M8C microprocessor
const EM_D10V Machine = 85 // Mitsubishi D10V
const EM_D30V Machine = 86 // Mitsubishi D30V
const EM_DSP24 Machine = 136 // New Japan Radio (NJR) 24-bit DSP Processor
const EM_DSPIC30F Machine = 118 // Microchip Technology dsPIC30F Digital Signal Controller
const EM_DXP Machine = 112 // Icera Semiconductor Inc. Deep Execution Processor
const EM_ECOG1 Machine = 168 // Cyan Technology eCOG1X family
const EM_ECOG16 Machine = 176 // Cyan Technology eCOG16 family
const EM_ECOG1X Machine = 168 // Cyan Technology eCOG1X family
const EM_ECOG2 Machine = 134 // Cyan Technology eCOG2 microprocessor
const EM_ETPU Machine = 178 // Freescale Extended Time Processing Unit
const EM_EXCESS Machine = 111 // eXcess: 16/32/64-bit configurable embedded CPU
const EM_F2MC16 Machine = 104 // Fujitsu F2MC16
const EM_FIREPATH Machine = 78 // Element 14 64-bit DSP Processor
const EM_FR20 Machine = 37 // Fujitsu FR20.
const EM_FR30 Machine = 84 // Fujitsu FR30
const EM_FT32 Machine = 222 // FTDI Chip FT32 high performance 32-bit RISC architecture
const EM_FX66 Machine = 66 // Siemens FX66 microcontroller
const EM_H8_300 Machine = 46 // Hitachi H8/300.
const EM_H8_300H Machine = 47 // Hitachi H8/300H.
const EM_H8_500 Machine = 49 // Hitachi H8/500.
const EM_H8S Machine = 48 // Hitachi H8S.
const EM_HUANY Machine = 81 // Harvard University machine-independent object files
const EM_IA_64 Machine = 50 // Intel IA-64 Processor.
const EM_INTEL205 Machine = 205 // Reserved by Intel
const EM_INTEL206 Machine = 206 // Reserved by Intel
const EM_INTEL207 Machine = 207 // Reserved by Intel
const EM_INTEL208 Machine = 208 // Reserved by Intel
const EM_INTEL209 Machine = 209 // Reserved by Intel
const EM_IP2K Machine = 101 // Ubicom IP2xxx microcontroller family
const EM_JAVELIN Machine = 77 // Infineon Technologies 32-bit embedded processor
const EM_K10M Machine = 181 // Intel K10M
const EM_KM32 Machine = 210 // KM211 KM32 32-bit processor
const EM_KMX16 Machine = 212 // KM211 KMX16 16-bit processor
const EM_KMX32 Machine = 211 // KM211 KMX32 32-bit processor
const EM_KMX8 Machine = 213 // KM211 KMX8 8-bit processor
const EM_KVARC Machine = 214 // KM211 KVARC processor
const EM_L10M Machine = 180 // Intel L10M
const EM_LANAI Machine = 244 // Lanai 32-bit processor
const EM_LATTICEMICO32 Machine = 138 // RISC processor for Lattice FPGA architecture
const EM_LOONGARCH Machine = 258 // LoongArch
const EM_M16C Machine = 117 // Renesas M16C series microprocessors
const EM_M32 Machine = 1 // AT&T WE32100.
const EM_M32C Machine = 120 // Renesas M32C series microprocessors
const EM_M32R Machine = 88 // Mitsubishi M32R
const EM_MANIK Machine = 171 // M2000 Reconfigurable RISC Microprocessor
const EM_MAX Machine = 102 // MAX Processor
const EM_MAXQ30 Machine = 169 // Dallas Semiconductor MAXQ30 Core Micro-controllers
const EM_MCHP_PIC Machine = 204 // Microchip 8-bit PIC(r) family
const EM_MCST_ELBRUS Machine = 175 // MCST Elbrus general purpose hardware architecture
const EM_ME16 Machine = 59 // Toyota ME16 processor.
const EM_METAG Machine = 174 // Imagination Technologies META processor architecture
const EM_MICROBLAZE Machine = 189 // Xilinx MicroBlaze 32-bit RISC soft processor core
const EM_MIPS Machine = 8 // MIPS R3000 Big-Endian only.
const EM_MIPS_RS3_LE Machine = 10 // MIPS R3000 Little-Endian.
const EM_MIPS_RS4_BE Machine = 10 // MIPS R4000 Big-Endian
const EM_MIPS_X Machine = 51 // Stanford MIPS-X.
const EM_MMA Machine = 54 // Fujitsu MMA.
const EM_MMDSP_PLUS Machine = 160 // STMicroelectronics 64bit VLIW Data Signal Processor
const EM_MMIX Machine = 80 // Donald Knuth's educational 64-bit processor
const EM_MN10200 Machine = 90 // Matsushita MN10200
const EM_MN10300 Machine = 89 // Matsushita MN10300
const EM_MOXIE Machine = 223 // Moxie processor family
const EM_MSP430 Machine = 105 // Texas Instruments embedded microcontroller msp430
const EM_NCPU Machine = 56 // Sony nCPU.
const EM_NDR1 Machine = 57 // Denso NDR1 microprocessor.
const EM_NDS32 Machine = 167 // Andes Technology compact code size embedded RISC processor family
const EM_NONE Machine = 0 // Unknown machine.
const EM_NORC Machine = 218 // Nanoradio Optimized RISC
const EM_NS32K Machine = 97 // National Semiconductor 32000 series
const EM_OPEN8 Machine = 196 // Open8 8-bit RISC soft processor core
const EM_OPENRISC Machine = 92 // OpenRISC 32-bit embedded processor
const EM_PARISC Machine = 15 // HP PA-RISC.
const EM_PCP Machine = 55 // Siemens PCP.
const EM_PDP10 Machine = 64 // Digital Equipment Corp. PDP-10
const EM_PDP11 Machine = 65 // Digital Equipment Corp. PDP-11
const EM_PDSP Machine = 63 // Sony DSP Processor
const EM_PJ Machine = 91 // picoJava
const EM_PPC Machine = 20 // PowerPC 32-bit.
const EM_PPC64 Machine = 21 // PowerPC 64-bit.
const EM_PRISM Machine = 82 // SiTera Prism
const EM_QDSP6 Machine = 164 // QUALCOMM DSP6 Processor
const EM_R32C Machine = 162 // Renesas R32C series microprocessors
const EM_RCE Machine = 39 // Motorola RCE.
const EM_RH32 Machine = 38 // TRW RH-32.
const EM_RISCV Machine = 243 // RISC-V
const EM_RL78 Machine = 197 // Renesas RL78 family
const EM_RS08 Machine = 132 // Freescale RS08 embedded processor
const EM_RX Machine = 173 // Renesas RX family
const EM_S370 Machine = 9 // IBM System/370.
const EM_S390 Machine = 22 // IBM System/390.
const EM_SCORE7 Machine = 135 // Sunplus S+core7 RISC processor
const EM_SE_C17 Machine = 139 // Seiko Epson C17 family
const EM_SE_C33 Machine = 107 // S1C33 Family of Seiko Epson processors
const EM_SEP Machine = 108 // Sharp embedded microprocessor
const EM_SH Machine = 42 // Hitachi SH.
const EM_SHARC Machine = 133 // Analog Devices SHARC family of 32-bit DSP processors
const EM_SLE9X Machine = 179 // Infineon Technologies SLE9X core
const EM_SNP1K Machine = 99 // Trebia SNP 1000 processor
const EM_SPARC Machine = 2 // Sun SPARC.
const EM_SPARC32PLUS Machine = 18 // SPARC v8plus.
const EM_SPARCV9 Machine = 43 // SPARC v9 64-bit.
const EM_ST100 Machine = 60 // STMicroelectronics ST100 processor.
const EM_ST19 Machine = 74 // STMicroelectronics ST19 8-bit microcontroller
const EM_ST200 Machine = 100 // STMicroelectronics (www.st.com) ST200 microcontroller
const EM_ST7 Machine = 68 // STMicroelectronics ST7 8-bit microcontroller
const EM_ST9PLUS Machine = 67 // STMicroelectronics ST9+ 8/16 bit microcontroller
const EM_STARCORE Machine = 58 // Motorola Star*Core processor.
const EM_STM8 Machine = 186 // STMicroeletronics STM8 8-bit microcontroller
const EM_STXP7X Machine = 166 // STMicroelectronics STxP7x family of configurable and extensible RISC processors
const EM_SVX Machine = 73 // Silicon Graphics SVx
const EM_TI_ARP32 Machine = 143 // Texas Instruments Application Specific RISC Processor, 32bit fetch
const EM_TI_C2000 Machine = 141 // The Texas Instruments TMS320C2000 DSP family
const EM_TI_C5500 Machine = 142 // The Texas Instruments TMS320C55x DSP family
const EM_TI_C6000 Machine = 140 // The Texas Instruments TMS320C6000 DSP family
const EM_TI_PRU Machine = 144 // Texas Instruments Programmable Realtime Unit
const EM_TILE64 Machine = 187 // Tilera TILE64 multicore architecture family
const EM_TILEGX Machine = 191 // Tilera TILE-Gx multicore architecture family
const EM_TILEPRO Machine = 188 // Tilera TILEPro multicore architecture family
const EM_TINYJ Machine = 61 // Advanced Logic Corp. TinyJ processor.
const EM_TMM_GPP Machine = 96 // Thompson Multimedia General Purpose Processor
const EM_TPC Machine = 98 // Tenor Network TPC processor
const EM_TRICORE Machine = 44 // Siemens TriCore embedded processor.
const EM_TRIMEDIA Machine = 163 // NXP Semiconductors TriMedia architecture family
const EM_TSK3000 Machine = 131 // Altium TSK3000 core
const EM_UNICORE Machine = 110 // Microprocessor series from PKU-Unity Ltd. and MPRC of Peking University
const EM_V800 Machine = 36 // NEC V800.
const EM_V850 Machine = 87 // NEC v850
const EM_VAX Machine = 75 // Digital VAX
const EM_VIDEOCORE Machine = 95 // Alphamosaic VideoCore processor
const EM_VIDEOCORE3 Machine = 137 // Broadcom VideoCore III processor
const EM_VIDEOCORE5 Machine = 198 // Broadcom VideoCore V processor
const EM_VISIUM Machine = 221 // Controls and Data Services VISIUMcore processor
const EM_VPP500 Machine = 17 // Fujitsu VPP500.
const EM_X86_64 Machine = 62 // Advanced Micro Devices x86-64
const EM_XCORE Machine = 203 // XMOS xCORE processor family
const EM_XGATE Machine = 115 // Motorola XGATE embedded processor
const EM_XIMO16 Machine = 170 // New Japan Radio (NJR) 16-bit DSP Processor
const EM_XTENSA Machine = 94 // Tensilica Xtensa Architecture
const EM_Z80 Machine = 220 // Zilog Z80
const EM_ZSP Machine = 79 // LSI Logic 16-bit DSP Processor
const ET_CORE Type = 4 // Core file.
const ET_DYN Type = 3 // Shared object.
const ET_EXEC Type = 2 // Executable.
const ET_HIOS Type = 65279 // Last operating system-specific.
const ET_HIPROC Type = 65535 // Last processor-specific.
const ET_LOOS Type = 65024 // First operating system specific.
const ET_LOPROC Type = 65280 // First processor-specific.
const ET_NONE Type = 0 // Unknown type.
const ET_REL Type = 1 // Relocatable.
const EV_CURRENT Version = 1
const EV_NONE Version = 0
const NT_FPREGSET NType = 2 // Floating point registers.
const NT_PRPSINFO NType = 3 // Process state info.
const NT_PRSTATUS NType = 1 // Process status.
const PF_MASKOS ProgFlag = 267386880 // Operating system-specific.
const PF_MASKPROC ProgFlag = 4026531840 // Processor-specific.
const PF_R ProgFlag = 4 // Readable.
const PF_W ProgFlag = 2 // Writable.
const PF_X ProgFlag = 1 // Executable.
const PT_AARCH64_ARCHEXT ProgType = 1879048192 // Architecture compatibility
const PT_AARCH64_UNWIND ProgType = 1879048193 // Exception unwind tables
const PT_ARM_ARCHEXT ProgType = 1879048192 // Architecture compatibility
const PT_ARM_EXIDX ProgType = 1879048193 // Exception unwind tables
const PT_DYNAMIC ProgType = 2 // Dynamic linking information segment.
const PT_GNU_EH_FRAME ProgType = 1685382480 // Frame unwind information
const PT_GNU_MBIND_HI ProgType = 1685386580 // Mbind segments finish
const PT_GNU_MBIND_LO ProgType = 1685382485 // Mbind segments start
const PT_GNU_PROPERTY ProgType = 1685382483 // GNU property
const PT_GNU_RELRO ProgType = 1685382482 // Read only after relocs
const PT_GNU_STACK ProgType = 1685382481 // Stack flags
const PT_HIOS ProgType = 1879048191 // Last OS-specific.
const PT_HIPROC ProgType = 2147483647 // Last processor-specific type.
const PT_INTERP ProgType = 3 // Pathname of interpreter.
const PT_LOAD ProgType = 1 // Loadable segment.
const PT_LOOS ProgType = 1610612736 // First OS-specific.
const PT_LOPROC ProgType = 1879048192 // First processor-specific type.
const PT_MIPS_ABIFLAGS ProgType = 1879048195 // ABI flags
const PT_MIPS_OPTIONS ProgType = 1879048194 // Options
const PT_MIPS_REGINFO ProgType = 1879048192 // Register usage
const PT_MIPS_RTPROC ProgType = 1879048193 // Runtime procedures
const PT_NOTE ProgType = 4 // Auxiliary information.
const PT_NULL ProgType = 0 // Unused entry.
const PT_OPENBSD_BOOTDATA ProgType = 1705253862 // Boot arguments
const PT_OPENBSD_RANDOMIZE ProgType = 1705237478 // Random data
const PT_OPENBSD_WXNEEDED ProgType = 1705237479 // W^X violations
const PT_PAX_FLAGS ProgType = 1694766464 // PAX flags
const PT_PHDR ProgType = 6 // Location of program header itself.
const PT_S390_PGSTE ProgType = 1879048192 // 4k page table size
const PT_SHLIB ProgType = 5 // Reserved (not used).
const PT_SUNW_EH_FRAME ProgType = 1685382480 // Frame unwind information
const PT_SUNWSTACK ProgType = 1879048187 // Stack segment
const PT_TLS ProgType = 7 // Thread local storage segment
const R_386_16 R_386 = 20
const R_386_32 R_386 = 1 // Add symbol value.
const R_386_32PLT R_386 = 11
const R_386_8 R_386 = 22
const R_386_COPY R_386 = 5 // Copy data from shared object.
const R_386_GLOB_DAT R_386 = 6 // Set GOT entry to data address.
const R_386_GOT32 R_386 = 3 // Add PC-relative GOT offset.
const R_386_GOT32X R_386 = 43
const R_386_GOTOFF R_386 = 9 // Add GOT-relative symbol address.
const R_386_GOTPC R_386 = 10 // Add PC-relative GOT table address.
const R_386_JMP_SLOT R_386 = 7 // Set GOT entry to code address.
const R_386_NONE R_386 = 0 // No relocation.
const R_386_PC16 R_386 = 21
const R_386_PC32 R_386 = 2 // Add PC-relative symbol value.
const R_386_PC8 R_386 = 23
const R_386_PLT32 R_386 = 4 // Add PC-relative PLT offset.
const R_386_RELATIVE R_386 = 8 // Add load address of shared object.
const R_386_SIZE32 R_386 = 38
const R_386_TLS_DESC R_386 = 41
const R_386_TLS_DTPMOD32 R_386 = 35 // GOT entry containing TLS index
const R_386_TLS_DTPOFF32 R_386 = 36 // GOT entry containing TLS offset
const R_386_TLS_GD R_386 = 18 // 32 bit offset to GOT (index,off) pair
const R_386_TLS_GD_32 R_386 = 24 // 32 bit offset to GOT (index,off) pair
const R_386_TLS_GD_CALL R_386 = 26 // call instruction for Sun ABI GD sequence
const R_386_TLS_GD_POP R_386 = 27 // popl instruction for Sun ABI GD sequence
const R_386_TLS_GD_PUSH R_386 = 25 // pushl instruction for Sun ABI GD sequence
const R_386_TLS_GOTIE R_386 = 16 // GOT entry for negative static TLS block
const R_386_TLS_IE R_386 = 15 // Absolute address of GOT for -ve static TLS
const R_386_TLS_IE_32 R_386 = 33 // 32 bit offset to GOT static TLS offset entry
const R_386_TLS_LDM R_386 = 19 // 32 bit offset to GOT (index,zero) pair
const R_386_TLS_LDM_32 R_386 = 28 // 32 bit offset to GOT (index,zero) pair
const R_386_TLS_LDM_CALL R_386 = 30 // call instruction for Sun ABI LD sequence
const R_386_TLS_LDM_POP R_386 = 31 // popl instruction for Sun ABI LD sequence
const R_386_TLS_LDM_PUSH R_386 = 29 // pushl instruction for Sun ABI LD sequence
const R_386_TLS_LDO_32 R_386 = 32 // 32 bit offset from start of TLS block
const R_386_TLS_LE R_386 = 17 // Negative offset relative to static TLS
const R_386_TLS_LE_32 R_386 = 34 // 32 bit offset within static TLS block
const R_386_TLS_TPOFF R_386 = 14 // Negative offset in static TLS block
const R_386_TLS_TPOFF32 R_386 = 37 // GOT entry of -ve static TLS offset
const R_390_12 R_390 = 2
const R_390_16 R_390 = 3
const R_390_20 R_390 = 57
const R_390_32 R_390 = 4
const R_390_64 R_390 = 22
const R_390_8 R_390 = 1
const R_390_COPY R_390 = 9
const R_390_GLOB_DAT R_390 = 10
const R_390_GOT12 R_390 = 6
const R_390_GOT16 R_390 = 15
const R_390_GOT20 R_390 = 58
const R_390_GOT32 R_390 = 7
const R_390_GOT64 R_390 = 24
const R_390_GOTENT R_390 = 26
const R_390_GOTOFF R_390 = 13
const R_390_GOTOFF16 R_390 = 27
const R_390_GOTOFF64 R_390 = 28
const R_390_GOTPC R_390 = 14
const R_390_GOTPCDBL R_390 = 21
const R_390_GOTPLT12 R_390 = 29
const R_390_GOTPLT16 R_390 = 30
const R_390_GOTPLT20 R_390 = 59
const R_390_GOTPLT32 R_390 = 31
const R_390_GOTPLT64 R_390 = 32
const R_390_JMP_SLOT R_390 = 11
const R_390_NONE R_390 = 0
const R_390_PC16 R_390 = 16
const R_390_PC16DBL R_390 = 17
const R_390_PC32 R_390 = 5
const R_390_PC32DBL R_390 = 19
const R_390_PC64 R_390 = 23
const R_390_PLT16DBL R_390 = 18
const R_390_PLT32 R_390 = 8
const R_390_PLT32DBL R_390 = 20
const R_390_PLT64 R_390 = 25
const R_390_RELATIVE R_390 = 12
const R_390_TLS_GD32 R_390 = 40
const R_390_TLS_GD64 R_390 = 41
const R_390_TLS_IE32 R_390 = 47
const R_390_TLS_IE64 R_390 = 48
const R_390_TLS_LE32 R_390 = 50
const R_390_TLS_LE64 R_390 = 51
const R_390_TLS_LOAD R_390 = 37
const R_ALPHA_BRADDR R_ALPHA = 7 // PC+4 relative 23 bit shifted
const R_ALPHA_COPY R_ALPHA = 24 // Copy symbol at runtime
const R_ALPHA_GLOB_DAT R_ALPHA = 25 // Create GOT entry
const R_ALPHA_GPDISP R_ALPHA = 6 // Add displacement to GP
const R_ALPHA_GPREL32 R_ALPHA = 3 // GP relative 32 bit
const R_ALPHA_HINT R_ALPHA = 8 // PC+4 relative 16 bit shifted
const R_ALPHA_JMP_SLOT R_ALPHA = 26 // Create PLT entry
const R_ALPHA_LITERAL R_ALPHA = 4 // GP relative 16 bit w/optimization
const R_ALPHA_LITUSE R_ALPHA = 5 // Optimization hint for LITERAL
const R_ALPHA_NONE R_ALPHA = 0 // No reloc
const R_ALPHA_OP_PRSHIFT R_ALPHA = 15 // OP stack right shift
const R_ALPHA_OP_PSUB R_ALPHA = 14 // OP stack subtract
const R_ALPHA_OP_PUSH R_ALPHA = 12 // OP stack push
const R_ALPHA_OP_STORE R_ALPHA = 13 // OP stack pop and store
const R_ALPHA_REFLONG R_ALPHA = 1 // Direct 32 bit
const R_ALPHA_REFQUAD R_ALPHA = 2 // Direct 64 bit
const R_ALPHA_RELATIVE R_ALPHA = 27 // Adjust by program base
const R_ALPHA_SREL16 R_ALPHA = 9 // PC relative 16 bit
const R_ALPHA_SREL32 R_ALPHA = 10 // PC relative 32 bit
const R_ALPHA_SREL64 R_ALPHA = 11 // PC relative 64 bit
const R_ARM_ABS12 R_ARM = 6
const R_ARM_ABS16 R_ARM = 5
const R_ARM_ABS32 R_ARM = 2
const R_ARM_ABS8 R_ARM = 8
const R_ARM_BASE_ABS R_ARM = 31
const R_ARM_CALL R_ARM = 28
const R_ARM_COPY R_ARM = 20 // Copy data from shared object.
const R_ARM_GLOB_DAT R_ARM = 21 // Set GOT entry to data address.
const R_ARM_GOT32 R_ARM = 26 // Add PC-relative GOT offset.
const R_ARM_GOT_ABS R_ARM = 95
const R_ARM_GOT_PREL R_ARM = 96
const R_ARM_GOTOFF R_ARM = 24 // Add GOT-relative symbol address.
const R_ARM_GOTOFF12 R_ARM = 98
const R_ARM_GOTPC R_ARM = 25 // Add PC-relative GOT table address.
const R_ARM_GOTRELAX R_ARM = 99
const R_ARM_IRELATIVE R_ARM = 160
const R_ARM_JUMP24 R_ARM = 29
const R_ARM_JUMP_SLOT R_ARM = 22 // Set GOT entry to code address.
const R_ARM_ME_TOO R_ARM = 128
const R_ARM_MOVT_ABS R_ARM = 44
const R_ARM_NONE R_ARM = 0 // No relocation.
const R_ARM_PC13 R_ARM = 4
const R_ARM_PC24 R_ARM = 1
const R_ARM_PLT32 R_ARM = 27 // Add PC-relative PLT offset.
const R_ARM_PREL31 R_ARM = 42
const R_ARM_PRIVATE_0 R_ARM = 112
const R_ARM_PRIVATE_1 R_ARM = 113
const R_ARM_PRIVATE_10 R_ARM = 122
const R_ARM_PRIVATE_11 R_ARM = 123
const R_ARM_PRIVATE_12 R_ARM = 124
const R_ARM_PRIVATE_13 R_ARM = 125
const R_ARM_PRIVATE_14 R_ARM = 126
const R_ARM_PRIVATE_15 R_ARM = 127
const R_ARM_PRIVATE_2 R_ARM = 114
const R_ARM_PRIVATE_3 R_ARM = 115
const R_ARM_PRIVATE_4 R_ARM = 116
const R_ARM_PRIVATE_5 R_ARM = 117
const R_ARM_PRIVATE_6 R_ARM = 118
const R_ARM_PRIVATE_7 R_ARM = 119
const R_ARM_PRIVATE_8 R_ARM = 120
const R_ARM_PRIVATE_9 R_ARM = 121
const R_ARM_RABS32 R_ARM = 253
const R_ARM_RBASE R_ARM = 255
const R_ARM_REL32 R_ARM = 3
const R_ARM_RELATIVE R_ARM = 23 // Add load address of shared object.
const R_ARM_RPC24 R_ARM = 254
const R_ARM_RREL32 R_ARM = 252
const R_ARM_RSBREL32 R_ARM = 250
const R_ARM_RXPC25 R_ARM = 249
const R_ARM_SBREL31 R_ARM = 39
const R_ARM_SBREL32 R_ARM = 9
const R_ARM_SWI24 R_ARM = 13
const R_ARM_TARGET1 R_ARM = 38
const R_ARM_TARGET2 R_ARM = 41
const R_ARM_THM_JUMP11 R_ARM = 102
const R_ARM_THM_JUMP8 R_ARM = 103
const R_ARM_THM_PC12 R_ARM = 54
const R_ARM_THM_PC22 R_ARM = 10
const R_ARM_THM_PC8 R_ARM = 11
const R_ARM_THM_RPC22 R_ARM = 251
const R_ARM_THM_SWI8 R_ARM = 14
const R_ARM_TLS_CALL R_ARM = 91
const R_ARM_TLS_GD32 R_ARM = 104
const R_ARM_TLS_IE12GP R_ARM = 111
const R_ARM_TLS_IE32 R_ARM = 107
const R_ARM_TLS_LDM32 R_ARM = 105
const R_ARM_TLS_LDO12 R_ARM = 109
const R_ARM_TLS_LDO32 R_ARM = 106
const R_ARM_TLS_LE12 R_ARM = 110
const R_ARM_TLS_LE32 R_ARM = 108
const R_ARM_V4BX R_ARM = 40
const R_ARM_XPC25 R_ARM = 15
const R_LARCH_32 R_LARCH = 1
const R_LARCH_64 R_LARCH = 2
const R_LARCH_ADD6 R_LARCH = 105
const R_LARCH_ADD8 R_LARCH = 47
const R_LARCH_ALIGN R_LARCH = 102
const R_LARCH_B16 R_LARCH = 64
const R_LARCH_B21 R_LARCH = 65
const R_LARCH_B26 R_LARCH = 66
const R_LARCH_CFA R_LARCH = 104
const R_LARCH_DELETE R_LARCH = 101
const R_LARCH_RELAX R_LARCH = 100
const R_LARCH_SUB6 R_LARCH = 106
const R_LARCH_SUB8 R_LARCH = 52
const R_MIPS_16 R_MIPS = 1
const R_MIPS_26 R_MIPS = 4
const R_MIPS_32 R_MIPS = 2
const R_MIPS_64 R_MIPS = 18
const R_MIPS_CALL16 R_MIPS = 11 // 16 bit call through glbl offset tbl
const R_MIPS_DELETE R_MIPS = 27
const R_MIPS_GOT16 R_MIPS = 9 // Reference to global offset table
const R_MIPS_GPREL16 R_MIPS = 7 // GP-relative reference
const R_MIPS_HI16 R_MIPS = 5 // high 16 bits of symbol value
const R_MIPS_HIGHER R_MIPS = 28
const R_MIPS_JALR R_MIPS = 37
const R_MIPS_LITERAL R_MIPS = 8 // Reference to literal section
const R_MIPS_LO16 R_MIPS = 6 // low 16 bits of symbol value
const R_MIPS_NONE R_MIPS = 0
const R_MIPS_PC16 R_MIPS = 10 // 16 bit PC relative reference
const R_MIPS_PC32 R_MIPS = 248 // 32 bit PC relative reference
const R_MIPS_PJUMP R_MIPS = 35
const R_MIPS_REL16 R_MIPS = 33
const R_MIPS_REL32 R_MIPS = 3
const R_MIPS_RELGOT R_MIPS = 36
const R_MIPS_SHIFT5 R_MIPS = 16
const R_MIPS_SHIFT6 R_MIPS = 17
const R_MIPS_SUB R_MIPS = 24
const R_MIPS_TLS_DTPMOD32 R_MIPS = 38 // Module number 32 bit
const R_MIPS_TLS_DTPMOD64 R_MIPS = 40 // Module number 64 bit
const R_MIPS_TLS_DTPREL32 R_MIPS = 39 // Module-relative offset 32 bit
const R_MIPS_TLS_DTPREL64 R_MIPS = 41 // Module-relative offset 64 bit
const R_MIPS_TLS_DTPREL_HI16 R_MIPS = 44 // Module-relative offset, high 16 bits
const R_MIPS_TLS_DTPREL_LO16 R_MIPS = 45 // Module-relative offset, low 16 bits
const R_MIPS_TLS_GD R_MIPS = 42 // 16 bit GOT offset for GD
const R_MIPS_TLS_GOTTPREL R_MIPS = 46 // 16 bit GOT offset for IE
const R_MIPS_TLS_LDM R_MIPS = 43 // 16 bit GOT offset for LDM
const R_MIPS_TLS_TPREL32 R_MIPS = 47 // TP-relative offset, 32 bit
const R_MIPS_TLS_TPREL64 R_MIPS = 48 // TP-relative offset, 64 bit
const R_MIPS_TLS_TPREL_HI16 R_MIPS = 49 // TP-relative offset, high 16 bits
const R_MIPS_TLS_TPREL_LO16 R_MIPS = 50 // TP-relative offset, low 16 bits
const R_PPC64_ADDR14 R_PPC64 = 7 // R_POWERPC_ADDR14
const R_PPC64_ADDR14_BRNTAKEN R_PPC64 = 9 // R_POWERPC_ADDR14_BRNTAKEN
const R_PPC64_ADDR14_BRTAKEN R_PPC64 = 8 // R_POWERPC_ADDR14_BRTAKEN
const R_PPC64_ADDR16 R_PPC64 = 3 // R_POWERPC_ADDR16
const R_PPC64_ADDR16_HA R_PPC64 = 6 // R_POWERPC_ADDR16_HA
const R_PPC64_ADDR16_HI R_PPC64 = 5 // R_POWERPC_ADDR16_HI
const R_PPC64_ADDR16_LO R_PPC64 = 4 // R_POWERPC_ADDR16_LO
const R_PPC64_ADDR24 R_PPC64 = 2 // R_POWERPC_ADDR24
const R_PPC64_ADDR32 R_PPC64 = 1 // R_POWERPC_ADDR32
const R_PPC64_COPY R_PPC64 = 19 // R_POWERPC_COPY
const R_PPC64_D28 R_PPC64 = 144
const R_PPC64_D34 R_PPC64 = 128
const R_PPC64_D34_LO R_PPC64 = 129
const R_PPC64_DTPMOD64 R_PPC64 = 68 // R_POWERPC_DTPMOD64
const R_PPC64_DTPREL16 R_PPC64 = 74 // R_POWERPC_DTPREL16
const R_PPC64_DTPREL16_HA R_PPC64 = 77 // R_POWERPC_DTPREL16_HA
const R_PPC64_DTPREL16_HI R_PPC64 = 76 // R_POWERPC_DTPREL16_HI
const R_PPC64_DTPREL16_LO R_PPC64 = 75 // R_POWERPC_DTPREL16_LO
const R_PPC64_DTPREL64 R_PPC64 = 78 // R_POWERPC_DTPREL64
const R_PPC64_ENTRY R_PPC64 = 118
const R_PPC64_GLOB_DAT R_PPC64 = 20 // R_POWERPC_GLOB_DAT
const R_PPC64_GOT16 R_PPC64 = 14 // R_POWERPC_GOT16
const R_PPC64_GOT16_HA R_PPC64 = 17 // R_POWERPC_GOT16_HA
const R_PPC64_GOT16_HI R_PPC64 = 16 // R_POWERPC_GOT16_HI
const R_PPC64_GOT16_LO R_PPC64 = 15 // R_POWERPC_GOT16_LO
const R_PPC64_GOT_DTPREL16_DS R_PPC64 = 91 // R_POWERPC_GOT_DTPREL16_DS
const R_PPC64_GOT_DTPREL16_HA R_PPC64 = 94 // R_POWERPC_GOT_DTPREL16_HA
const R_PPC64_GOT_DTPREL16_HI R_PPC64 = 93 // R_POWERPC_GOT_DTPREL16_HI
const R_PPC64_GOT_DTPREL16_LO_DS R_PPC64 = 92 // R_POWERPC_GOT_DTPREL16_LO_DS
const R_PPC64_GOT_TLSGD16 R_PPC64 = 79 // R_POWERPC_GOT_TLSGD16
const R_PPC64_GOT_TLSGD16_HA R_PPC64 = 82 // R_POWERPC_GOT_TLSGD16_HA
const R_PPC64_GOT_TLSGD16_HI R_PPC64 = 81 // R_POWERPC_GOT_TLSGD16_HI
const R_PPC64_GOT_TLSGD16_LO R_PPC64 = 80 // R_POWERPC_GOT_TLSGD16_LO
const R_PPC64_GOT_TLSLD16 R_PPC64 = 83 // R_POWERPC_GOT_TLSLD16
const R_PPC64_GOT_TLSLD16_HA R_PPC64 = 86 // R_POWERPC_GOT_TLSLD16_HA
const R_PPC64_GOT_TLSLD16_HI R_PPC64 = 85 // R_POWERPC_GOT_TLSLD16_HI
const R_PPC64_GOT_TLSLD16_LO R_PPC64 = 84 // R_POWERPC_GOT_TLSLD16_LO
const R_PPC64_GOT_TPREL16_DS R_PPC64 = 87 // R_POWERPC_GOT_TPREL16_DS
const R_PPC64_GOT_TPREL16_HA R_PPC64 = 90 // R_POWERPC_GOT_TPREL16_HA
const R_PPC64_GOT_TPREL16_HI R_PPC64 = 89 // R_POWERPC_GOT_TPREL16_HI
const R_PPC64_GOT_TPREL16_LO_DS R_PPC64 = 88 // R_POWERPC_GOT_TPREL16_LO_DS
const R_PPC64_IRELATIVE R_PPC64 = 248 // R_POWERPC_IRELATIVE
const R_PPC64_JMP_SLOT R_PPC64 = 21 // R_POWERPC_JMP_SLOT
const R_PPC64_NONE R_PPC64 = 0 // R_POWERPC_NONE
const R_PPC64_PLT16_HA R_PPC64 = 31 // R_POWERPC_PLT16_HA
const R_PPC64_PLT16_HI R_PPC64 = 30 // R_POWERPC_PLT16_HI
const R_PPC64_PLT16_LO R_PPC64 = 29 // R_POWERPC_PLT16_LO
const R_PPC64_PLT32 R_PPC64 = 27 // R_POWERPC_PLT32
const R_PPC64_PLTREL32 R_PPC64 = 28 // R_POWERPC_PLTREL32
const R_PPC64_PLTSEQ R_PPC64 = 119
const R_PPC64_REL14 R_PPC64 = 11 // R_POWERPC_REL14
const R_PPC64_REL14_BRNTAKEN R_PPC64 = 13 // R_POWERPC_REL14_BRNTAKEN
const R_PPC64_REL14_BRTAKEN R_PPC64 = 12 // R_POWERPC_REL14_BRTAKEN
const R_PPC64_REL16 R_PPC64 = 249 // R_POWERPC_REL16
const R_PPC64_REL16_HA R_PPC64 = 252 // R_POWERPC_REL16_HA
const R_PPC64_REL16_HI R_PPC64 = 251 // R_POWERPC_REL16_HI
const R_PPC64_REL16_LO R_PPC64 = 250 // R_POWERPC_REL16_LO
const R_PPC64_REL16DX_HA R_PPC64 = 246 // R_POWERPC_REL16DX_HA
const R_PPC64_REL24 R_PPC64 = 10 // R_POWERPC_REL24
const R_PPC64_REL30 R_PPC64 = 37 // R_POWERPC_ADDR30
const R_PPC64_REL32 R_PPC64 = 26 // R_POWERPC_REL32
const R_PPC64_RELATIVE R_PPC64 = 22 // R_POWERPC_RELATIVE
const R_PPC64_SECTOFF R_PPC64 = 33 // R_POWERPC_SECTOFF
const R_PPC64_SECTOFF_HA R_PPC64 = 36 // R_POWERPC_SECTOFF_HA
const R_PPC64_SECTOFF_HI R_PPC64 = 35 // R_POWERPC_SECTOFF_HI
const R_PPC64_SECTOFF_LO R_PPC64 = 34 // R_POWERPC_SECTOFF_LO
const R_PPC64_TLS R_PPC64 = 67 // R_POWERPC_TLS
const R_PPC64_TLSGD R_PPC64 = 107
const R_PPC64_TLSLD R_PPC64 = 108
const R_PPC64_TOC R_PPC64 = 51
const R_PPC64_TPREL16 R_PPC64 = 69 // R_POWERPC_TPREL16
const R_PPC64_TPREL16_HA R_PPC64 = 72 // R_POWERPC_TPREL16_HA
const R_PPC64_TPREL16_HI R_PPC64 = 71 // R_POWERPC_TPREL16_HI
const R_PPC64_TPREL16_LO R_PPC64 = 70 // R_POWERPC_TPREL16_LO
const R_PPC64_TPREL64 R_PPC64 = 73 // R_POWERPC_TPREL64
const R_PPC64_UADDR16 R_PPC64 = 25 // R_POWERPC_UADDR16
const R_PPC64_UADDR32 R_PPC64 = 24 // R_POWERPC_UADDR32
const R_PPC_ADDR14 R_PPC = 7 // R_POWERPC_ADDR14
const R_PPC_ADDR14_BRNTAKEN R_PPC = 9 // R_POWERPC_ADDR14_BRNTAKEN
const R_PPC_ADDR14_BRTAKEN R_PPC = 8 // R_POWERPC_ADDR14_BRTAKEN
const R_PPC_ADDR16 R_PPC = 3 // R_POWERPC_ADDR16
const R_PPC_ADDR16_HA R_PPC = 6 // R_POWERPC_ADDR16_HA
const R_PPC_ADDR16_HI R_PPC = 5 // R_POWERPC_ADDR16_HI
const R_PPC_ADDR16_LO R_PPC = 4 // R_POWERPC_ADDR16_LO
const R_PPC_ADDR24 R_PPC = 2 // R_POWERPC_ADDR24
const R_PPC_ADDR32 R_PPC = 1 // R_POWERPC_ADDR32
const R_PPC_COPY R_PPC = 19 // R_POWERPC_COPY
const R_PPC_DTPMOD32 R_PPC = 68 // R_POWERPC_DTPMOD32
const R_PPC_DTPREL16 R_PPC = 74 // R_POWERPC_DTPREL16
const R_PPC_DTPREL16_HA R_PPC = 77 // R_POWERPC_DTPREL16_HA
const R_PPC_DTPREL16_HI R_PPC = 76 // R_POWERPC_DTPREL16_HI
const R_PPC_DTPREL16_LO R_PPC = 75 // R_POWERPC_DTPREL16_LO
const R_PPC_DTPREL32 R_PPC = 78 // R_POWERPC_DTPREL32
const R_PPC_EMB_MRKREF R_PPC = 110
const R_PPC_EMB_RELSDA R_PPC = 116
const R_PPC_EMB_SDA21 R_PPC = 109
const R_PPC_EMB_SDAI16 R_PPC = 106
const R_PPC_GLOB_DAT R_PPC = 20 // R_POWERPC_GLOB_DAT
const R_PPC_GOT16 R_PPC = 14 // R_POWERPC_GOT16
const R_PPC_GOT16_HA R_PPC = 17 // R_POWERPC_GOT16_HA
const R_PPC_GOT16_HI R_PPC = 16 // R_POWERPC_GOT16_HI
const R_PPC_GOT16_LO R_PPC = 15 // R_POWERPC_GOT16_LO
const R_PPC_GOT_TLSGD16 R_PPC = 79 // R_POWERPC_GOT_TLSGD16
const R_PPC_GOT_TLSGD16_HA R_PPC = 82 // R_POWERPC_GOT_TLSGD16_HA
const R_PPC_GOT_TLSGD16_HI R_PPC = 81 // R_POWERPC_GOT_TLSGD16_HI
const R_PPC_GOT_TLSGD16_LO R_PPC = 80 // R_POWERPC_GOT_TLSGD16_LO
const R_PPC_GOT_TLSLD16 R_PPC = 83 // R_POWERPC_GOT_TLSLD16
const R_PPC_GOT_TLSLD16_HA R_PPC = 86 // R_POWERPC_GOT_TLSLD16_HA
const R_PPC_GOT_TLSLD16_HI R_PPC = 85 // R_POWERPC_GOT_TLSLD16_HI
const R_PPC_GOT_TLSLD16_LO R_PPC = 84 // R_POWERPC_GOT_TLSLD16_LO
const R_PPC_GOT_TPREL16 R_PPC = 87 // R_POWERPC_GOT_TPREL16
const R_PPC_GOT_TPREL16_HA R_PPC = 90 // R_POWERPC_GOT_TPREL16_HA
const R_PPC_GOT_TPREL16_HI R_PPC = 89 // R_POWERPC_GOT_TPREL16_HI
const R_PPC_GOT_TPREL16_LO R_PPC = 88 // R_POWERPC_GOT_TPREL16_LO
const R_PPC_JMP_SLOT R_PPC = 21 // R_POWERPC_JMP_SLOT
const R_PPC_NONE R_PPC = 0 // R_POWERPC_NONE
const R_PPC_PLT16_HA R_PPC = 31 // R_POWERPC_PLT16_HA
const R_PPC_PLT16_HI R_PPC = 30 // R_POWERPC_PLT16_HI
const R_PPC_PLT16_LO R_PPC = 29 // R_POWERPC_PLT16_LO
const R_PPC_PLT32 R_PPC = 27 // R_POWERPC_PLT32
const R_PPC_PLTREL24 R_PPC = 18
const R_PPC_PLTREL32 R_PPC = 28 // R_POWERPC_PLTREL32
const R_PPC_REL14 R_PPC = 11 // R_POWERPC_REL14
const R_PPC_REL14_BRNTAKEN R_PPC = 13 // R_POWERPC_REL14_BRNTAKEN
const R_PPC_REL14_BRTAKEN R_PPC = 12 // R_POWERPC_REL14_BRTAKEN
const R_PPC_REL24 R_PPC = 10 // R_POWERPC_REL24
const R_PPC_REL32 R_PPC = 26 // R_POWERPC_REL32
const R_PPC_RELATIVE R_PPC = 22 // R_POWERPC_RELATIVE
const R_PPC_SDAREL16 R_PPC = 32
const R_PPC_SECTOFF R_PPC = 33 // R_POWERPC_SECTOFF
const R_PPC_SECTOFF_HA R_PPC = 36 // R_POWERPC_SECTOFF_HA
const R_PPC_SECTOFF_HI R_PPC = 35 // R_POWERPC_SECTOFF_HI
const R_PPC_SECTOFF_LO R_PPC = 34 // R_POWERPC_SECTOFF_LO
const R_PPC_TLS R_PPC = 67 // R_POWERPC_TLS
const R_PPC_TPREL16 R_PPC = 69 // R_POWERPC_TPREL16
const R_PPC_TPREL16_HA R_PPC = 72 // R_POWERPC_TPREL16_HA
const R_PPC_TPREL16_HI R_PPC = 71 // R_POWERPC_TPREL16_HI
const R_PPC_TPREL16_LO R_PPC = 70 // R_POWERPC_TPREL16_LO
const R_PPC_TPREL32 R_PPC = 73 // R_POWERPC_TPREL32
const R_PPC_UADDR16 R_PPC = 25 // R_POWERPC_UADDR16
const R_PPC_UADDR32 R_PPC = 24 // R_POWERPC_UADDR32
const R_RISCV_32 R_RISCV = 1 // Add 32 bit zero extended symbol value
const R_RISCV_32_PCREL R_RISCV = 57 // 32-bit PC relative
const R_RISCV_64 R_RISCV = 2 // Add 64 bit symbol value.
const R_RISCV_ADD16 R_RISCV = 34 // 16-bit label addition
const R_RISCV_ADD32 R_RISCV = 35 // 32-bit label addition
const R_RISCV_ADD64 R_RISCV = 36 // 64-bit label addition
const R_RISCV_ADD8 R_RISCV = 33 // 8-bit label addition
const R_RISCV_ALIGN R_RISCV = 43 // Alignment statement
const R_RISCV_BRANCH R_RISCV = 16 // PC-relative branch
const R_RISCV_CALL R_RISCV = 18 // PC-relative call
const R_RISCV_CALL_PLT R_RISCV = 19 // PC-relative call (PLT)
const R_RISCV_COPY R_RISCV = 4 // Copy data from shared object.
const R_RISCV_GNU_VTENTRY R_RISCV = 42 // GNU C++ vtable member usage
const R_RISCV_GNU_VTINHERIT R_RISCV = 41 // GNU C++ vtable hierarchy
const R_RISCV_GOT_HI20 R_RISCV = 20 // PC-relative GOT reference
const R_RISCV_GPREL_I R_RISCV = 47 // GP-relative reference
const R_RISCV_GPREL_S R_RISCV = 48 // GP-relative reference
const R_RISCV_HI20 R_RISCV = 26 // Absolute address
const R_RISCV_JAL R_RISCV = 17 // PC-relative jump
const R_RISCV_JUMP_SLOT R_RISCV = 5 // Set GOT entry to code address.
const R_RISCV_LO12_I R_RISCV = 27 // Absolute address
const R_RISCV_LO12_S R_RISCV = 28 // Absolute address
const R_RISCV_NONE R_RISCV = 0 // No relocation.
const R_RISCV_PCREL_HI20 R_RISCV = 23 // PC-relative reference
const R_RISCV_PCREL_LO12_I R_RISCV = 24 // PC-relative reference
const R_RISCV_PCREL_LO12_S R_RISCV = 25 // PC-relative reference
const R_RISCV_RELATIVE R_RISCV = 3 // Add load address of shared object.
const R_RISCV_RELAX R_RISCV = 51 // Instruction pair can be relaxed
const R_RISCV_RVC_BRANCH R_RISCV = 44 // PC-relative branch offset
const R_RISCV_RVC_JUMP R_RISCV = 45 // PC-relative jump offset
const R_RISCV_RVC_LUI R_RISCV = 46 // Absolute address
const R_RISCV_SET16 R_RISCV = 55 // Local label subtraction
const R_RISCV_SET32 R_RISCV = 56 // Local label subtraction
const R_RISCV_SET6 R_RISCV = 53 // Local label subtraction
const R_RISCV_SET8 R_RISCV = 54 // Local label subtraction
const R_RISCV_SUB16 R_RISCV = 38 // 16-bit label subtraction
const R_RISCV_SUB32 R_RISCV = 39 // 32-bit label subtraction
const R_RISCV_SUB6 R_RISCV = 52 // Local label subtraction
const R_RISCV_SUB64 R_RISCV = 40 // 64-bit label subtraction
const R_RISCV_SUB8 R_RISCV = 37 // 8-bit label subtraction
const R_RISCV_TLS_DTPMOD32 R_RISCV = 6 // 32 bit ID of module containing symbol
const R_RISCV_TLS_DTPMOD64 R_RISCV = 7 // ID of module containing symbol
const R_RISCV_TLS_DTPREL32 R_RISCV = 8 // 32 bit relative offset in TLS block
const R_RISCV_TLS_DTPREL64 R_RISCV = 9 // Relative offset in TLS block
const R_RISCV_TLS_GD_HI20 R_RISCV = 22 // PC-relative TLS GD reference
const R_RISCV_TLS_GOT_HI20 R_RISCV = 21 // PC-relative TLS IE GOT offset
const R_RISCV_TLS_TPREL32 R_RISCV = 10 // 32 bit relative offset in static TLS block
const R_RISCV_TLS_TPREL64 R_RISCV = 11 // Relative offset in static TLS block
const R_RISCV_TPREL_ADD R_RISCV = 32 // TLS LE thread usage
const R_RISCV_TPREL_HI20 R_RISCV = 29 // TLS LE thread offset
const R_RISCV_TPREL_I R_RISCV = 49 // TP-relative TLS LE load
const R_RISCV_TPREL_LO12_I R_RISCV = 30 // TLS LE thread offset
const R_RISCV_TPREL_LO12_S R_RISCV = 31 // TLS LE thread offset
const R_RISCV_TPREL_S R_RISCV = 50 // TP-relative TLS LE store
const R_SPARC_10 R_SPARC = 30
const R_SPARC_11 R_SPARC = 31
const R_SPARC_13 R_SPARC = 11
const R_SPARC_16 R_SPARC = 2
const R_SPARC_22 R_SPARC = 10
const R_SPARC_32 R_SPARC = 3
const R_SPARC_5 R_SPARC = 44
const R_SPARC_6 R_SPARC = 45
const R_SPARC_64 R_SPARC = 32
const R_SPARC_7 R_SPARC = 43
const R_SPARC_8 R_SPARC = 1
const R_SPARC_COPY R_SPARC = 19
const R_SPARC_H44 R_SPARC = 50
const R_SPARC_HH22 R_SPARC = 34
const R_SPARC_HM10 R_SPARC = 35
const R_SPARC_L44 R_SPARC = 52
const R_SPARC_LM22 R_SPARC = 36
const R_SPARC_LO10 R_SPARC = 12
const R_SPARC_M44 R_SPARC = 51
const R_SPARC_PC10 R_SPARC = 16
const R_SPARC_PC22 R_SPARC = 17
const R_SPARC_UA16 R_SPARC = 55
const R_SPARC_UA32 R_SPARC = 23
const R_SPARC_UA64 R_SPARC = 54
const R_X86_64_16 R_X86_64 = 12 // Add 16 bit zero extended symbol value
const R_X86_64_32 R_X86_64 = 10 // Add 32 bit zero extended symbol value
const R_X86_64_32S R_X86_64 = 11 // Add 32 bit sign extended symbol value
const R_X86_64_64 R_X86_64 = 1 // Add 64 bit symbol value.
const R_X86_64_8 R_X86_64 = 14 // Add 8 bit zero extended symbol value
const R_X86_64_COPY R_X86_64 = 5 // Copy data from shared object.
const R_X86_64_DTPMOD64 R_X86_64 = 16 // ID of module containing symbol
const R_X86_64_DTPOFF32 R_X86_64 = 21 // Offset in TLS block
const R_X86_64_DTPOFF64 R_X86_64 = 17 // Offset in TLS block
const R_X86_64_GLOB_DAT R_X86_64 = 6 // Set GOT entry to data address.
const R_X86_64_GOT32 R_X86_64 = 3 // PC-relative 32 bit GOT offset.
const R_X86_64_GOTPCREL R_X86_64 = 9 // Add 32 bit signed pcrel offset to GOT.
const R_X86_64_GOTTPOFF R_X86_64 = 22 // PC relative offset to IE GOT entry
const R_X86_64_JMP_SLOT R_X86_64 = 7 // Set GOT entry to code address.
const R_X86_64_NONE R_X86_64 = 0 // No relocation.
const R_X86_64_PC16 R_X86_64 = 13 // Add 16 bit signed extended pc relative symbol value
const R_X86_64_PC32 R_X86_64 = 2 // PC-relative 32 bit signed sym value.
const R_X86_64_PC64 R_X86_64 = 24 // PC relative 64-bit sign extended symbol value.
const R_X86_64_PC8 R_X86_64 = 15 // Add 8 bit signed extended pc relative symbol value
const R_X86_64_PLT32 R_X86_64 = 4 // PC-relative 32 bit PLT offset.
const R_X86_64_RELATIVE R_X86_64 = 8 // Add load address of shared object.
const R_X86_64_TLSGD R_X86_64 = 19 // PC relative offset to GD GOT entry
const R_X86_64_TLSLD R_X86_64 = 20 // PC relative offset to LD GOT entry
const R_X86_64_TPOFF32 R_X86_64 = 23 // Offset in static TLS block
const R_X86_64_TPOFF64 R_X86_64 = 18 // Offset in static TLS block
const SHF_ALLOC SectionFlag = 2 // Section occupies memory.
const SHF_COMPRESSED SectionFlag = 2048 // Section is compressed.
const SHF_EXECINSTR SectionFlag = 4 // Section contains instructions.
const SHF_GROUP SectionFlag = 512 // Member of section group.
const SHF_MASKOS SectionFlag = 267386880 // OS-specific semantics.
const SHF_MASKPROC SectionFlag = 4026531840 // Processor-specific semantics.
const SHF_MERGE SectionFlag = 16 // Section may be merged.
const SHF_OS_NONCONFORMING SectionFlag = 256 // OS-specific processing required.
const SHF_STRINGS SectionFlag = 32 // Section contains strings.
const SHF_TLS SectionFlag = 1024 // Section contains TLS data.
const SHF_WRITE SectionFlag = 1 // Section contains writable data.
const SHN_ABS SectionIndex = 65521 // Absolute values.
const SHN_COMMON SectionIndex = 65522 // Common data.
const SHN_HIOS SectionIndex = 65343 // Last operating system-specific.
const SHN_HIPROC SectionIndex = 65311 // Last processor-specific.
const SHN_HIRESERVE SectionIndex = 65535 // Last of reserved range.
const SHN_LOOS SectionIndex = 65312 // First operating system-specific.
const SHN_LOPROC SectionIndex = 65280 // First processor-specific.
const SHN_LORESERVE SectionIndex = 65280 // First of reserved range.
const SHN_UNDEF SectionIndex = 0 // Undefined, missing, irrelevant.
const SHN_XINDEX SectionIndex = 65535 // Escape; index stored elsewhere.
const SHT_DYNAMIC SectionType = 6 // dynamic section
const SHT_DYNSYM SectionType = 11 // dynamic symbol table section
const SHT_FINI_ARRAY SectionType = 15 // Termination function pointers.
const SHT_GNU_ATTRIBUTES SectionType = 1879048181 // GNU object attributes
const SHT_GNU_HASH SectionType = 1879048182 // GNU hash table
const SHT_GNU_LIBLIST SectionType = 1879048183 // GNU prelink library list
const SHT_GNU_VERDEF SectionType = 1879048189 // GNU version definition section
const SHT_GNU_VERNEED SectionType = 1879048190 // GNU version needs section
const SHT_GNU_VERSYM SectionType = 1879048191 // GNU version symbol table
const SHT_GROUP SectionType = 17 // Section group.
const SHT_HASH SectionType = 5 // symbol hash table section
const SHT_HIOS SectionType = 1879048191 // Last of OS specific semantics
const SHT_HIPROC SectionType = 2147483647 // specific section header types
const SHT_HIUSER SectionType = 4294967295 // specific indexes
const SHT_INIT_ARRAY SectionType = 14 // Initialization function pointers.
const SHT_LOOS SectionType = 1610612736 // First of OS specific semantics
const SHT_LOPROC SectionType = 1879048192 // reserved range for processor
const SHT_LOUSER SectionType = 2147483648 // reserved range for application
const SHT_MIPS_ABIFLAGS SectionType = 1879048234 // .MIPS.abiflags
const SHT_NOBITS SectionType = 8 // no space section
const SHT_NOTE SectionType = 7 // note section
const SHT_NULL SectionType = 0 // inactive
const SHT_PREINIT_ARRAY SectionType = 16 // Pre-initialization function ptrs.
const SHT_PROGBITS SectionType = 1 // program defined information
const SHT_REL SectionType = 9 // relocation section - no addends
const SHT_RELA SectionType = 4 // relocation section with addends
const SHT_SHLIB SectionType = 10 // reserved - purpose unknown
const SHT_STRTAB SectionType = 3 // string table section
const SHT_SYMTAB SectionType = 2 // symbol table section
const SHT_SYMTAB_SHNDX SectionType = 18 // Section indexes (see SHN_XINDEX).
const STB_GLOBAL SymBind = 1 // Global symbol
const STB_HIOS SymBind = 12 // specific semantics.
const STB_HIPROC SymBind = 15 // specific semantics.
const STB_LOCAL SymBind = 0 // Local symbol
const STB_LOOS SymBind = 10 // Reserved range for operating system
const STB_LOPROC SymBind = 13 // reserved range for processor
const STB_WEAK SymBind = 2 // like global - lower precedence
const STT_COMMON SymType = 5 // Uninitialized common block.
const STT_FILE SymType = 4 // Source file.
const STT_FUNC SymType = 2 // Function.
const STT_HIOS SymType = 12 // specific semantics.
const STT_HIPROC SymType = 15 // specific semantics.
const STT_LOOS SymType = 10 // Reserved range for operating system
const STT_LOPROC SymType = 13 // reserved range for processor
const STT_NOTYPE SymType = 0 // Unspecified type.
const STT_OBJECT SymType = 1 // Data object.
const STT_SECTION SymType = 3 // Section.
const STT_TLS SymType = 6 // TLS object.
const STV_DEFAULT SymVis = 0 // Default visibility (see binding).
const STV_HIDDEN SymVis = 2 // Not visible.
const STV_INTERNAL SymVis = 1 // Special meaning in relocatable objects.
const STV_PROTECTED SymVis = 3 // Visible but not preemptible.
const Sym32Size = 16
const Sym64Size = 24