bind_opcodes.rs |
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. |
3240 |
constants.rs |
Miscellaneous constants used inside of and when constructing, Mach-o binaries |
22851 |
exports.rs |
Symbols exported by this binary and available for dynamic linking are encoded in mach-o binaries using a special trie
**Note**: the trie is constructed lazily in case it won't be used, and since computing exports will require allocation, to compute the exports, you need call the export trie's [exports()](struct.ExportTrie.html#method.exports) method. |
14850 |
fat.rs |
A Mach-o fat binary is a multi-architecture binary container |
4020 |
header.rs |
A header contains minimal architecture information, the binary kind, the number of load commands, as well as an endianness hint |
15126 |
imports.rs |
Dynamically linked symbolic imports |
13044 |
load_command.rs |
Load commands tell the kernel and dynamic linker anything from how to load this binary into memory, what the entry point is, apple specific information, to which libraries it requires for dynamic linking |
68484 |
mod.rs |
The Mach-o, mostly zero-copy, binary format parser and raw struct definitions |
23138 |
relocation.rs |
|
9924 |
segment.rs |
|
19200 |
symbols.rs |
"Nlist" style symbols in this binary - beware, like most symbol tables in most binary formats, they are strippable, and should not be relied upon, see the imports and exports modules for something more permanent.
Symbols are essentially a type, offset, and the symbol name |
16100 |