ldsocache

package
v1.1.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 19, 2026 License: Apache-2.0, Apache-2.0 Imports: 14 Imported by: 0

README

ldso-cache

reading and writing of glibc /etc/ld.so.cache files

Documentation

Index

Constants

View Source
const (
	FlagANY                 uint32 = 0xffff
	FlagTYPEMASK            uint32 = 0x00ff
	FlagLIBC4               uint32 = 0x0000
	FlagELF                 uint32 = 0x0001
	FlagELFLIBC5            uint32 = 0x0002
	FlagELFLIBC6            uint32 = 0x0003
	FlagREQUIREDMASK        uint32 = 0xff00
	FlagSPARCLIB64          uint32 = 0x0100
	FlagX8664LIB64          uint32 = 0x0300
	FlagS390LIB64           uint32 = 0x0400
	FlagPOWERPCLIB64        uint32 = 0x0500
	FlagMIPS64LIBN32        uint32 = 0x0600
	FlagMIPS64LIBN64        uint32 = 0x0700
	FlagX8664LIBX32         uint32 = 0x0800
	FlagARMLIBHF            uint32 = 0x0900
	FlagAARCH64LIB64        uint32 = 0x0a00
	FlagARMLIBSF            uint32 = 0x0b00
	FlagMIPSLIB32NAN2008    uint32 = 0x0c00
	FlagMIPS64LIBN32NAN2008 uint32 = 0x0d00
	FlagMIPS64LIBN64NAN2008 uint32 = 0x0e00
	FlagRISCVFLOATABISOFT   uint32 = 0x0f00
	FlagRISCVFLOATABIDOUBLE uint32 = 0x1000
	FlagLARCHFLOATABISOFT   uint32 = 0x1100
	FlagLARCHFLOATABIDOUBLE uint32 = 0x1200
)

Variables

This section is empty.

Functions

func ParseLDSOConf

func ParseLDSOConf(fsys fs.FS, ldsoconf string) ([]string, error)

Parse an ld.so.conf file, following include directives and globs Return a slice of directory paths

func ParseLibFilename

func ParseLibFilename(realname string) (string, string, error)

accepts a library name and returns its name and a version ex: "libfoo.so.1" -> "libfoo", "1" ex: "libbar.so" -> "libbar", ""

returns an error if realname doesn't comply w/ the name scheme

Types

type LDSOCacheEntry

type LDSOCacheEntry struct {
	Flags uint32

	Name string

	OSVersionNeeded uint32
	HWCapNeeded     uint64
}

func LDSOCacheEntriesForDirs added in v0.27.6

func LDSOCacheEntriesForDirs(fsys fs.FS, libdirs []string) ([]LDSOCacheEntry, error)

type LDSOCacheExtensionHeader

type LDSOCacheExtensionHeader struct {
	Magic uint32
	Count uint32
}

type LDSOCacheExtensionSection

type LDSOCacheExtensionSection struct {
	Header LDSOCacheExtensionSectionHeader
	Data   []byte
}

type LDSOCacheExtensionSectionHeader

type LDSOCacheExtensionSectionHeader struct {
	Tag    uint32
	Flags  uint32
	Offset uint32
	Size   uint32
}

type LDSOCacheFile

type LDSOCacheFile struct {
	Header     LDSORawCacheHeader
	Entries    []LDSOCacheEntry
	Extensions []LDSOCacheExtensionSection
}

func BuildCacheFileForDirs

func BuildCacheFileForDirs(fsys fs.FS, libdirs []string) (*LDSOCacheFile, error)

func LoadCacheFile

func LoadCacheFile(r io.ReadSeeker) (*LDSOCacheFile, error)

LoadCacheFile attempts to load a cache file from disk. When successful, it returns an LDSOCacheFile pointer which contains all relevant information from the cache file.

func (*LDSOCacheFile) Write

func (cf *LDSOCacheFile) Write(w io.Writer) error

type LDSORawCacheEntry

type LDSORawCacheEntry struct {
	Flags uint32

	// Offsets in string table.
	Key   uint32
	Value uint32

	OSVersionNeeded uint32
	HWCapNeeded     uint64
}

type LDSORawCacheHeader

type LDSORawCacheHeader struct {
	Magic   [17]byte
	Version [3]byte

	NumLibs      uint32
	StrTableSize uint32

	Flags   uint8
	Unused0 [3]byte

	ExtOffset uint32

	Unused1 [3]uint32
}

func (*LDSORawCacheHeader) Write

func (hdr *LDSORawCacheHeader) Write(w io.Writer) error

Write writes a header for a cache file to disk.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL