rebase, bind, weak_bind, lazy_bind, and export
Compressed by opcodes
0x000C BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB(0x02, 0x00000040) 0x000E BIND_OPCODE_SET_DYLIB_ORDINAL_IMM(1) 0x000F BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM(0x00, _puts) 0x0016 BIND_OPCODE_DO_BIND()
and uleb128 (variable length code)
static uint64_t uleb128(const uint8_t*& p) {
uint64_t r = 0;
int s = 0;
do {
r |= (uint64_t)(*p & 0x7f) << s;
s += 7;
} while (*p++ >= 0x80);
return r;
}
Similar technique is used in DWARF