Black Lives Matter. Support the Equal Justice Initiative.

Package loadelf

import "cmd/link/internal/loadelf"
Overview
Index

Overview ▾

Package loadelf implements an ELF file reader.

Constants

const (
    TagFile               = 1
    TagCPUName            = 4
    TagCPURawName         = 5
    TagCompatibility      = 32
    TagNoDefaults         = 64
    TagAlsoCompatibleWith = 65
    TagABIVFPArgs         = 28
)
const (
    SHT_ARM_ATTRIBUTES = 0x70000003
)

func Load

func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, f *bio.Reader, pkg string, length int64, pn string, initEhdrFlags uint32) (textp []loader.Sym, ehdrFlags uint32, err error)

Load loads the ELF file pn from f. Symbols are installed into the loader, and a slice of the text symbols is returned.

On ARM systems, Load will attempt to determine what ELF header flags to emit by scanning the attributes in the ELF file being loaded. The parameter initEhdrFlags contains the current header flags for the output object, and the returned ehdrFlags contains what this Load function computes. TODO: find a better place for this logic.

type ElfObj

type ElfObj struct {
    // contains filtered or unexported fields
}

type ElfSect

type ElfSect struct {
    // contains filtered or unexported fields
}

type ElfSym

type ElfSym struct {
    // contains filtered or unexported fields
}