elf_loader 0.17.0

A no_std-friendly ELF loader and runtime linker for Rust.
Documentation
//! Public image types returned by the loader and relocation pipeline.
//!
//! `Loader` produces raw image types such as [`RawElf`], [`RawDynamic`], [`RawDylib`],
//! and [`RawExec`].
//! Those raw values are mapped into memory but not yet relocated.
//!
//! After passing a raw image to [`crate::Relocator::run`] and calling
//! `relocate()`, you get loaded image types such as [`LoadedElf`], [`LoadedExec`],
//! and [`LoadedCore`], which expose symbol lookup, metadata, and dependency
//! retention.

mod core;
mod elf;
mod module;
mod scanned;
mod search;
mod synthetic;
mod traits;

pub use crate::elf::SymbolLookup;
pub use crate::segment::{ElfSegments, MappedRange};
pub(crate) use core::CoreRuntime;
pub use core::{ElfCore, ElfCoreRef, ElfModule, LoadedCore, Symbol};
pub(crate) use elf::DynamicInfo;
pub(crate) use elf::PltRelocInfo;
pub use elf::{LoadedElf, LoadedExec, RawDylib, RawDynamic, RawElf, RawExec, StaticExec};
#[cfg(feature = "object")]
pub use elf::{LoadedObject, RawObject};
pub(crate) use module::WeakLocalScope;
pub use module::{
    GlobalScope, LocalScope, ModuleHandle, ModuleInstanceId, ModuleScope, ModuleState,
};
pub(crate) use scanned::ScannedDynamicLoadParts;
pub use scanned::{ModuleCapability, ScannedDynamic, ScannedElf, ScannedExec, ScannedSection};
pub(crate) use search::DEFAULT_MODULE_SEARCH;
pub use search::{ModuleSearch, SearchPathPool};
pub(crate) use search::{PathTokens, SharedDir, normalize_dir};
pub use synthetic::{ResolveHook, SymbolVersion, SyntheticModule, SyntheticSymbol};
pub use traits::{Module, SymbolExports};