package elf

Import Path
	debug/elf (on golang.org and go.dev)

Dependency Relation
	imports 10 packages, and imported by one package

Involved Source Files
	    elf.go
	d-> file.go
	    reader.go

Exported Type Names

type Chdr32 (struct) ELF32 Compression header. Addralign uint32 Size uint32 Type uint32
type Chdr64 (struct) ELF64 Compression header. Addralign uint64 Size uint64 Type uint32
type Class byte Class is found in Header.Ident[EI_CLASS] and Header.Class. (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : fmt.Stringer const ELFCLASS32 const ELFCLASS64 const ELFCLASSNONE
type CompressionType int Section compression type. (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : fmt.Stringer const COMPRESS_HIOS const COMPRESS_HIPROC const COMPRESS_LOOS const COMPRESS_LOPROC const COMPRESS_ZLIB
type Data byte Data is found in Header.Ident[EI_DATA] and Header.Data. (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : fmt.Stringer const ELFDATA2LSB const ELFDATA2MSB const ELFDATANONE
type Dyn32 (struct) ELF32 Dynamic structure. The ".dynamic" section contains an array of them. Tag int32 Val uint32
type Dyn64 (struct) ELF64 Dynamic structure. The ".dynamic" section contains an array of them. Tag int64 Val uint64
type DynFlag int DT_FLAGS values. (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : fmt.Stringer const DF_BIND_NOW const DF_ORIGIN const DF_STATIC_TLS const DF_SYMBOLIC const DF_TEXTREL
type DynTag int Dyn.Tag (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : fmt.Stringer func (*File).DynString(tag DynTag) ([]string, error) const DT_BIND_NOW const DT_DEBUG const DT_ENCODING const DT_FINI const DT_FINI_ARRAY const DT_FINI_ARRAYSZ const DT_FLAGS 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_NEEDED const DT_NULL const DT_PLTGOT const DT_PLTREL const DT_PLTRELSZ const DT_PREINIT_ARRAY const DT_PREINIT_ARRAYSZ const DT_REL const DT_RELA const DT_RELAENT const DT_RELASZ const DT_RELENT const DT_RELSZ const DT_RPATH const DT_RUNPATH const DT_SONAME const DT_STRSZ const DT_STRTAB const DT_SYMBOLIC const DT_SYMENT const DT_SYMTAB const DT_TEXTREL const DT_VERNEED const DT_VERNEEDNUM const DT_VERSYM
type File (struct) 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 (*T) Close() error (*T) DWARF() (*dwarf.Data, error) (*T) DynString(tag DynTag) ([]string, error) (*T) DynamicSymbols() ([]Symbol, error) (*T) ImportedLibraries() ([]string, error) (*T) ImportedSymbols() ([]ImportedSymbol, error) (*T) Section(name string) *Section (*T) SectionByType(typ SectionType) *Section (*T) Symbols() ([]Symbol, error) *T : io.Closer func NewFile(r io.ReaderAt) (*File, error) func Open(name string) (*File, error)
type FileHeader (struct) 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
type FormatError (struct) (*T) Error() string *T : error
type ImportedSymbol (struct) Library string Name string Version string func (*File).ImportedSymbols() ([]ImportedSymbol, error)
type Machine uint16 Machine is found in Header.Machine. (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : 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_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
type NType int NType values; used in core files. (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : fmt.Stringer const NT_FPREGSET const NT_PRPSINFO const NT_PRSTATUS
type OSABI byte OSABI is found in Header.Ident[EI_OSABI] and Header.OSABI. (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : 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
type Prog (struct) 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 ReaderAt io.ReaderAt (*T) Open() io.ReadSeeker (T) ReadAt(p []byte, off int64) (n int, err error) T : io.ReaderAt
type Prog32 (struct) ELF32 Program header. Align uint32 Filesz uint32 Flags uint32 Memsz uint32 Off uint32 Paddr uint32 Type uint32 Vaddr uint32
type Prog64 (struct) ELF64 Program header. Align uint64 Filesz uint64 Flags uint32 Memsz uint64 Off uint64 Paddr uint64 Type uint32 Vaddr uint64
type ProgFlag uint32 Prog.Flag (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : fmt.Stringer const PF_MASKOS const PF_MASKPROC const PF_R const PF_W const PF_X
type ProgHeader (struct) A ProgHeader represents a single ELF program header. Align uint64 Filesz uint64 Flags ProgFlag Memsz uint64 Off uint64 Paddr uint64 Type ProgType Vaddr uint64
type ProgType int Prog.Type (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : fmt.Stringer const PT_DYNAMIC const PT_HIOS const PT_HIPROC const PT_INTERP const PT_LOAD const PT_LOOS const PT_LOPROC const PT_NOTE const PT_NULL const PT_PHDR const PT_SHLIB const PT_TLS
type R_386 int Relocation types for 386. (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : 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
type R_390 int Relocation types for s390x processors. (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : 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
type R_AARCH64 int Relocation types for AArch64 (aka arm64) (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : 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
type R_ALPHA int Relocation types for Alpha. (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : 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
type R_ARM int Relocation types for ARM. (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : 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
type R_PPC int 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. (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : 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
type R_PPC64 int 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. (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : 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_HIGHERA const R_PPC64_ADDR16_HIGHEST const R_PPC64_ADDR16_HIGHESTA 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_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_DTPREL64 const R_PPC64_ENTRY 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_TLSGD16 const R_PPC64_GOT_TLSGD16_HA const R_PPC64_GOT_TLSGD16_HI const R_PPC64_GOT_TLSGD16_LO 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_TPREL16_DS const R_PPC64_GOT_TPREL16_HA const R_PPC64_GOT_TPREL16_HI const R_PPC64_GOT_TPREL16_LO_DS const R_PPC64_IRELATIVE const R_PPC64_JMP_IREL const R_PPC64_JMP_SLOT const R_PPC64_NONE const R_PPC64_PLT16_LO_DS 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_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_LO const R_PPC64_REL16DX_HA const R_PPC64_REL24 const R_PPC64_REL24_NOTOC const R_PPC64_REL32 const R_PPC64_REL64 const R_PPC64_SECTOFF_DS 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_TPREL64
type R_SPARC int Relocation types for SPARC. (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : 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
type Rel32 (struct) ELF32 Relocations that don't need an addend field. Info uint32 Off uint32
type Rel64 (struct) ELF64 relocations that don't need an addend field. Info uint64 Off uint64
type Rela32 (struct) ELF32 Relocations that need an addend field. Addend int32 Info uint32 Off uint32
type Rela64 (struct) ELF64 relocations that need an addend field. Addend int64 Info uint64 Off uint64
type Section (struct) A Section represents a single section in an ELF file. ReaderAt io.ReaderAt SectionHeader SectionHeader SectionHeader.Addr uint64 SectionHeader.Addralign uint64 SectionHeader.Entsize uint64 SectionHeader.FileSize uint64 SectionHeader.Flags SectionFlag SectionHeader.Info uint32 SectionHeader.Link uint32 SectionHeader.Name string SectionHeader.Offset uint64 SectionHeader.Size uint64 SectionHeader.Type SectionType (*T) Data() ([]byte, error) (*T) Open() io.ReadSeeker (T) ReadAt(p []byte, off int64) (n int, err error) T : io.ReaderAt func (*File).Section(name string) *Section func (*File).SectionByType(typ SectionType) *Section
type Section32 (struct) ELF32 Section header. Addr uint32 Addralign uint32 Entsize uint32 Flags uint32 Info uint32 Link uint32 Name uint32 Off uint32 Size uint32 Type uint32
type Section64 (struct) ELF64 Section header. Addr uint64 Addralign uint64 Entsize uint64 Flags uint64 Info uint32 Link uint32 Name uint32 Off uint64 Size uint64 Type uint32
type SectionFlag uint32 Section flags. (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : 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
type SectionHeader (struct) A SectionHeader represents a single ELF section header. Addr uint64 Addralign uint64 Entsize uint64 FileSize uint64 Flags SectionFlag Info uint32 Link uint32 Name string Offset uint64 Size uint64 Type SectionType
type SectionIndex int Special section indices. (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : 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
type SectionType uint32 Section type. (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : 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_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
type Sym32 (struct) ELF32 Symbol. Info uint8 Name uint32 Other uint8 Shndx uint16 Size uint32 Value uint32
type Sym64 (struct) ELF64 symbol table entries. Info uint8 Name uint32 Other uint8 Shndx uint16 Size uint64 Value uint64
type SymBind int Symbol Binding - ELFNN_ST_BIND - st_info (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : 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
type Symbol (struct) 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 string func (*File).DynamicSymbols() ([]Symbol, error) func (*File).Symbols() ([]Symbol, error)
type SymType int Symbol type - ELFNN_ST_TYPE - st_info (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : 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
type SymVis int Symbol visibility - ELFNN_ST_VISIBILITY - st_other (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : fmt.Stringer func ST_VISIBILITY(other uint8) SymVis const STV_DEFAULT const STV_HIDDEN const STV_INTERNAL const STV_PROTECTED
type Type uint16 Type is found in Header.Type. (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : 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
type Version byte Version is found in Header.Ident[EI_VERSION] and Header.Version. (T) GoString() string (T) String() string T : expvar.Var T : fmt.GoStringer T : fmt.Stringer const EV_CURRENT const EV_NONE
Exported Values
const ARM_MAGIC_TRAMP_NUMBER = 1543503875 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 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_BIND_NOW DynTag = 24 // [sup]
const DT_DEBUG DynTag = 21 // Reserved (not used).
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_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_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_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_PLTREL DynTag = 20 // Type of relocation used for PLT.
const DT_PLTRELSZ DynTag = 2 // Total size in bytes of PLT relocations.
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_RELAENT DynTag = 9 // Size of each ElfNN_Rela relocation entry.
const DT_RELASZ DynTag = 8 // Total size of ElfNN_Rela relocations.
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_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_SYMTAB DynTag = 6 // Address of symbol table.
const DT_TEXTREL DynTag = 22 // Indicates there may be relocations in non-writable segments. [sup]
const DT_VERNEED DynTag = 1879048190
const DT_VERNEEDNUM DynTag = 1879048191
const DT_VERSYM DynTag = 1879048176
const EI_ABIVERSION = 8 // ABI version Indexes into the Header.Ident array.
const EI_CLASS = 4 // Class of machine. Indexes into the Header.Ident array.
const EI_DATA = 5 // Data format. Indexes into the Header.Ident array.
const EI_NIDENT = 16 // Size of e_ident array. Indexes into the Header.Ident array.
const EI_OSABI = 7 // Operating system / ABI identification Indexes into the Header.Ident array.
const EI_PAD = 9 // Start of padding (per SVR4 ABI). Indexes into the Header.Ident array.
const EI_VERSION = 6 // ELF format version. 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.
const ELFMAG = "\u007fELF" 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 // GNU/Hurd
const ELFOSABI_IRIX OSABI = 8 // IRIX
const ELFOSABI_LINUX OSABI = 3 // GNU/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.
const EM_486 Machine = 6 // Intel i486. 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_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
var ErrNoSymbols error ErrNoSymbols is returned by File.Symbols and File.DynamicSymbols if there is no such section in the File.
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
func NewFile(r io.ReaderAt) (*File, error) 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.
const NT_FPREGSET NType = 2 // Floating point registers.
const NT_PRPSINFO NType = 3 // Process state info.
const NT_PRSTATUS NType = 1 // Process status.
func Open(name string) (*File, error) Open opens the named file using os.Open and prepares it for use as an ELF binary.
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_DYNAMIC ProgType = 2 // Dynamic linking information segment.
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_NOTE ProgType = 4 // Auxiliary information.
const PT_NULL ProgType = 0 // Unused entry.
const PT_PHDR ProgType = 6 // Location of program header itself.
const PT_SHLIB ProgType = 5 // Reserved (not used).
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
func R_INFO(sym, typ uint32) uint64
func R_INFO32(sym, typ uint32) uint32
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_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_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_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_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_REL32 R_PPC64 = 26 // R_POWERPC_REL32
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_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
func R_SYM32(info uint32) uint32
func R_SYM64(info uint64) uint32
func R_TYPE32(info uint32) uint32
func R_TYPE64(info uint64) uint32
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_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).
func ST_BIND(info uint8) SymBind
func ST_INFO(bind SymBind, typ SymType) uint8
func ST_TYPE(info uint8) SymType
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