aboutsummaryrefslogtreecommitdiff
path: root/lib/std/macho.zig
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2020-12-08 16:52:50 +0100
committerJakub Konka <kubkon@jakubkonka.com>2020-12-09 20:36:58 +0100
commit4c3e6c5bff967388dddc7ec352017c7b712d9f06 (patch)
tree994837c7efe2d145bdba169985016c7288aa9fff /lib/std/macho.zig
parentae3fd86dcc6f39601aa26ce1a6dc51a0db5cbf30 (diff)
downloadzig-4c3e6c5bff967388dddc7ec352017c7b712d9f06.tar.gz
zig-4c3e6c5bff967388dddc7ec352017c7b712d9f06.zip
macho: cleanup export trie generation and parsing
Now, ExportTrie is becoming usable for larger linking contexts such as linking in multiple object files, or relinking dylibs, etc.
Diffstat (limited to 'lib/std/macho.zig')
-rw-r--r--lib/std/macho.zig9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/std/macho.zig b/lib/std/macho.zig
index 90b6ca74e7..ec0d23cd92 100644
--- a/lib/std/macho.zig
+++ b/lib/std/macho.zig
@@ -1333,6 +1333,15 @@ pub const N_WEAK_DEF: u16 = 0x80;
/// This bit is only available in .o files (MH_OBJECT filetype)
pub const N_SYMBOL_RESOLVER: u16 = 0x100;
+// The following are used on the flags byte of a terminal node // in the export information.
+pub const EXPORT_SYMBOL_FLAGS_KIND_MASK: u8 = 0x03;
+pub const EXPORT_SYMBOL_FLAGS_KIND_REGULAR: u8 = 0x00;
+pub const EXPORT_SYMBOL_FLAGS_KIND_THREAD_LOCAL: u8 = 0x01;
+pub const EXPORT_SYMBOL_FLAGS_KIND_ABSOLUTE: u8 = 0x02;
+pub const EXPORT_SYMBOL_FLAGS_KIND_WEAK_DEFINITION: u8 = 0x04;
+pub const EXPORT_SYMBOL_FLAGS_REEXPORT: u8 = 0x08;
+pub const EXPORT_SYMBOL_FLAGS_STUB_AND_RESOLVER: u8 = 0x10;
+
// Codesign consts and structs taken from:
// https://opensource.apple.com/source/xnu/xnu-6153.81.5/osfmk/kern/cs_blobs.h.auto.html