| Value | Meaning |
|---|---|
| MH_NOUNDEFS | The object file has no undefined references. |
| MH_INCRLINK | The object file is the output of an incremental link against a base file and can't be link edited again. |
| MH_DYLDLINK | The object file is input for the dynamic linker and can't be statically link edited again. |
| MH_BINDATLOAD | The object file's undefined references are bound by the dynamic linker when loaded. |
| MH_PREBOUND | The file has its dynamic undefined references prebound. |
| MH_SPLIT_SEGS | The file has its read-only and read-write segments split. |
| MH_LAZY_INIT | The shared library init routine is to be run lazily via catching memory faults to its writeable segments (obsolete). |
| MH_TWOLEVEL | The image is using two-level name space bindings. |
| MH_FORCE_FLAT | The executable is forcing all images to use flat name space bindings. |
| MH_NOMULTIDEFS | This umbrella guarantees no multiple definitions of symbols in its sub-images so the two-level namespace hints can always be used. |
| MH_NOFIXPREBINDING | Do not have dyld notify the prebinding agent about this executable. |
| MH_PREBINDABLE | The binary is not prebound but can have its prebinding redone. only used when MH_PREBOUND is not set. |
| MH_ALLMODSBOUND | 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. |
| MH_SUBSECTIONS_VIA_SYMBOLS | Safe to divide up the sections into sub-sections via symbols for dead code stripping. |
| MH_CANONICAL | The binary has been canonicalized via the unprebind operation. |
| MH_WEAK_DEFINES | The final linked image contains external weak symbols. |
| MH_BINDS_TO_WEAK | The final linked image uses weak symbols. |
| MH_ALLOW_STACK_EXECUTION | When this bit is set, all stacks in the task will be given stack execution privilege. Only used in MH_EXECUTE filetypes. |
| MH_ROOT_SAFE | When this bit is set, the binary declares it is safe for use in processes with uid zero. |
| MH_SETUID_SAFE | When this bit is set, the binary declares it is safe for use in processes when issetugid() is true. |
| MH_NO_REEXPORTED_DYLIBS | 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. |
| MH_PIE | When this bit is set, the OS will load the main executable at a random address. Only used in MH_EXECUTE filetypes. |
| MH_DEAD_STRIPPABLE_DYLIB | 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.. |
| MH_HAS_TLV_DESCRIPTORS | Contains a section of type S_THREAD_LOCAL_VARIABLES. |
| MH_NO_HEAP_EXECUTION | 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. |
| MH_APP_EXTENSION_SAFE | The code was linked for use in an application extension.. |
| MH_NLIST_OUTOFSYNC_WITH_DYLDINFO | The external symbols listed in the nlist symbol table do not include all the symbols listed in the dyld info. |
| MH_SIM_SUPPORT | Allow LC_MIN_VERSION_MACOS and LC_BUILD_VERSION load commands with the platforms macOS, iOSMac, iOSSimulator, tvOSSimulator and watchOSSimulator. |
| MH_DYLIB_IN_CACHE | Only for use on dylibs. When this bit is set, the dylib is part of the dyld shared cache, rather than loose in the filesystem. |
Constants for the flags field of the mach_header