ElfRelocator

Struct ElfRelocator 

Source
pub struct ElfRelocator { /* private fields */ }
Available on crate feature relocate only.
Expand description

Relocates ELF together with its dependencies.

Implementations§

Source§

impl ElfRelocator

Source

pub fn new(loader: DynamicLoader) -> Self

Create new relocator that uses the specified dynamic loader.

Source

pub fn relocate<P1: Into<PathBuf>, P2: AsRef<Path>>( &self, file: P1, directory: P2, ) -> Result<PathBuf, Error>

Relocates ELF file to directory together with its dependencies.

Each ELF is copied to the subdirectory which name is BASE32-encoded hash of the file. The dependencies are then symlinked into this directory. Each ELF’s RUNPATH is set to the containing directory. Each ELF’s interpreter is changed to point to the interpreter from that directory. All executables are symlinked into directory/bin.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.