Enum elfkit::relocation::RelocationType[][src]

pub enum RelocationType {
    R_X86_64_NONE,
    R_X86_64_64,
    R_X86_64_PC32,
    R_X86_64_GOT32,
    R_X86_64_PLT32,
    R_X86_64_COPY,
    R_X86_64_GLOB_DAT,
    R_X86_64_JUMP_SLOT,
    R_X86_64_RELATIVE,
    R_X86_64_GOTPCREL,
    R_X86_64_32,
    R_X86_64_32S,
    R_X86_64_16,
    R_X86_64_PC16,
    R_X86_64_8,
    R_X86_64_PC8,
    R_X86_64_DTPMOD64,
    R_X86_64_DTPOFF64,
    R_X86_64_TPOFF64,
    R_X86_64_TLSGD,
    R_X86_64_TLSLD,
    R_X86_64_DTPOFF32,
    R_X86_64_GOTTPOFF,
    R_X86_64_TPOFF32,
    R_X86_64_PC64,
    R_X86_64_GOTOFF64,
    R_X86_64_GOTPC32,
    R_X86_64_SIZE32,
    R_X86_64_SIZE64,
    R_X86_64_GOTPC32_TLSDESC,
    R_X86_64_TLSDESC_CALL,
    R_X86_64_TLSDESC,
    R_X86_64_IRELATIVE,
    R_X86_64_RELATIVE64,
    R_X86_64_GOTPCRELX,
    R_X86_64_REX_GOTPCRELX,
}

Variants

First part of the tls_index structure: ID of module containing symbol writes the module id at this location in an executable this is always exactly 1, so this reloc is only emitted for DYN where the dynamic linker needs to give the module an id

Second part of tls_index: The Offset of the symbol in the TLS Block this is written into the GOT of this unit by the dynamic linker, and the offset is into the TLS block of some other unit that actually defines that symbol

Offset in initial TLS Block in initial exec model no idea why this needs a different reloc type, this appears to be identical to R_X86_64_DTPOFF64

PC Relative address to the tls_index structure in the GOT in general dynamic model

PC Relative address to the tls_index structure in the GOT in local dynamic model. that index only contains the module id, since the offset is known at link time and will be accessed via R_X86_64_DTPOFF32

Offset of the symbol in TLS Block (local dynamic model)

in initial exec model, this is a PC Relative offset to a GOT entry which contains the 32bit offset into the thread local block. this is emitted by the compiler when the thread local var will definately be inside the executable.

for initial exec model, this is the reloc on the GOT entry.

Trait Implementations

impl Debug for RelocationType
[src]

Formats the value using the given formatter. Read more

impl FromPrimitive for RelocationType
[src]

Convert an u64 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert an i64 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert an isize to return an optional value of this type. If the value cannot be represented by this value, then None is returned. Read more

Convert an i8 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert an i16 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert an i32 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert an i128 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert a usize to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert an u8 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert an u16 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert an u32 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert an u128 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert a f32 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

Convert a f64 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

impl ToPrimitive for RelocationType
[src]

Converts the value of self to an u64.

Converts the value of self to an i64.

Converts the value of self to an isize.

Converts the value of self to an i8.

Converts the value of self to an i16.

Converts the value of self to an i32.

Converts the value of self to an i128. Read more

Converts the value of self to a usize.

Converts the value of self to an u8.

Converts the value of self to an u16.

Converts the value of self to an u32.

Converts the value of self to an u128. Read more

Converts the value of self to an f32.

Converts the value of self to an f64.

impl PartialEq for RelocationType
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Clone for RelocationType
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Default for RelocationType
[src]

Returns the "default value" for a type. Read more

Auto Trait Implementations