Expand description
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_ ABSOLUT E32 - BIND_
TYPE_ TEXT_ PCRE L32