[][src]Module goblin::mach::bind_opcodes

Bind opcodes are interpreted by the dynamic linker to efficiently collect every symbol imported by this binary, and from which library using two-level namespacing

Some uses of external symbols do not need to be bound immediately. Instead they can be lazily bound on first use. The lazy_bind are contains a stream of BIND opcodes to bind all lazy symbols. Normal use is that dyld ignores the lazy_bind section when loading an image. Instead the static linker arranged for a lazy pointer to initially point to a helper function which pushes the offset into the lazy_bind area for the symbol needing to be bound, then jumps to dyld which simply adds the offset to lazy_bind_off to get the information on what to bind.

Constants

BIND_IMMEDIATE_MASK
BIND_OPCODE_ADD_ADDR_ULEB
BIND_OPCODE_DONE
BIND_OPCODE_DO_BIND
BIND_OPCODE_DO_BIND_ADD_ADDR_IMM_SCALED
BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB
BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB
BIND_OPCODE_MASK
BIND_OPCODE_SET_ADDEND_SLEB
BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB
BIND_OPCODE_SET_DYLIB_SPECIAL_IMM
BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
BIND_OPCODE_SET_TYPE_IMM
BIND_SPECIAL_DYLIB_FLAT_LOOKUP
BIND_SPECIAL_DYLIB_MAIN_EXECUTABLE
BIND_SPECIAL_DYLIB_SELF
BIND_SYMBOL_FLAGS_NON_WEAK_DEFINITION
BIND_SYMBOL_FLAGS_WEAK_IMPORT
BIND_TYPE_POINTER
BIND_TYPE_TEXT_ABSOLUTE32
BIND_TYPE_TEXT_PCREL32

Functions

opcode_to_str

Type Definitions

Opcode