// Constants for the flags field of the mach_header /// the object file has no undefined references pubconst MH_NOUNDEFS: u32 = 0x1; /// the object file is the output of an incremental link against a base file and can't be /// link edited again pubconst MH_INCRLINK: u32 = 0x2; /// the object file is input for the dynamic linker and can't be staticly link edited again pubconst MH_DYLDLINK: u32 = 0x4; /// the object file's undefined references are bound by the dynamic linker when loaded. pubconst MH_BINDATLOAD: u32 = 0x8; /// the file has its dynamic undefined references prebound. pubconst MH_PREBOUND: u32 = 0x10; /// the file has its read-only and read-write segments split pubconst MH_SPLIT_SEGS: u32 = 0x20; /// the shared library init routine is to be run lazily via catching memory faults to its writeable /// segments (obsolete) pubconst MH_LAZY_INIT: u32 = 0x40; /// the image is using two-level name space bindings pubconst MH_TWOLEVEL: u32 = 0x80; /// the executable is forcing all images to use flat name space bindings pubconst MH_FORCE_FLAT: u32 = 0x100; /// this umbrella guarantees no multiple defintions of symbols in its sub-images so the /// two-level namespace hints can always be used. pubconst MH_NOMULTIDEFS: u32 = 0x200; /// do not have dyld notify the prebinding agent about this executable pubconst MH_NOFIXPREBINDING: u32 = 0x400; /// the binary is not prebound but can have its prebinding redone. only used when MH_PREBOUND is not set. pubconst MH_PREBINDABLE: u32 = 0x800; /// indicates that this binary binds to all two-level namespace modules of its dependent libraries. /// Only used when MH_PREBINDABLE and MH_TWOLEVEL are both set. pubconst MH_ALLMODSBOUND: u32 = 0x1000; /// safe to divide up the sections into sub-sections via symbols for dead code stripping pubconst MH_SUBSECTIONS_VIA_SYMBOLS: u32 = 0x2000; /// the binary has been canonicalized via the unprebind operation pubconst MH_CANONICAL: u32 = 0x4000; /// the final linked image contains external weak symbols pubconst MH_WEAK_DEFINES: u32 = 0x8000; /// the final linked image uses weak symbols pubconst MH_BINDS_TO_WEAK: u32 = 0x10000; /// When this bit is set, all stacks in the task will be given stack execution privilege. /// Only used in MH_EXECUTE filetypes. pubconst MH_ALLOW_STACK_EXECUTION: u32 = 0x20000; /// When this bit is set, the binary declares it is safe for use in processes with uid zero pubconst MH_ROOT_SAFE: u32 = 0x40000; /// When this bit is set, the binary declares it is safe for use in processes when issetugid() is true pubconst MH_SETUID_SAFE: u32 = 0x80000; /// When this bit is set on a dylib, the static linker does not need to examine dependent dylibs to /// see if any are re-exported pubconst MH_NO_REEXPORTED_DYLIBS: u32 = 0x0010_0000; /// When this bit is set, the OS will load the main executable at a random address. /// Only used in MH_EXECUTE filetypes. pubconst MH_PIE: u32 = 0x0020_0000; /// Only for use on dylibs. When linking against a dylib that has this bit set, the static linker /// will automatically not create a LC_LOAD_DYLIB load command to the dylib if no symbols are being /// referenced from the dylib. pubconst MH_DEAD_STRIPPABLE_DYLIB: u32 = 0x0040_0000; /// Contains a section of type S_THREAD_LOCAL_VARIABLES pubconst MH_HAS_TLV_DESCRIPTORS: u32 = 0x0080_0000; /// When this bit is set, the OS will run the main executable with a non-executable heap even on /// platforms (e.g. i386) that don't require it. Only used in MH_EXECUTE filetypes. pubconst MH_NO_HEAP_EXECUTION: u32 = 0x0100_0000;
// TODO: verify this number is correct, it was previously 0x02000000 which could indicate a typo/data entry error /// The code was linked for use in an application extension. pubconst MH_APP_EXTENSION_SAFE: u32 = 0x0200_0000;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.