Module macho
Mach-O definitions.
These definitions are independent of read/write support, although we do implement some traits useful for those.
This module is based heavily on header files from MacOSX11.1.sdk.
Structs
- BuildToolVersion
- BuildVersionCommand
- DataInCodeEntry
- DyldCacheHeader The dyld cache header. Corresponds to struct dyld_cache_header from dyld_cache_format.h. This header has grown over time. Only the fields up to and including dyld_base_address are guaranteed to be present. For all other fields, check the header size before accessing the field. The header size is stored in mapping_offset; the mappings start right after the theader.
- DyldCacheImageInfo Corresponds to struct dyld_cache_image_info from dyld_cache_format.h.
- DyldCacheMappingInfo Corresponds to struct dyld_cache_mapping_info from dyld_cache_format.h.
- DyldInfoCommand
-
DyldSubCacheEntryV1
Added in dyld-940, which shipped with macOS 12 / iOS 15.
Originally called
dyld_subcache_entry, renamed todyld_subcache_entry_v1in dyld-1042.1. -
DyldSubCacheEntryV2
Added in dyld-1042.1, which shipped with macOS 13 / iOS 16.
Called
dyld_subcache_entryas of dyld-1042.1. - Dylib
- DylibCommand
- DylibModule32
- DylibModule64
- DylibReference
- DylibTableOfContents
- DylinkerCommand
- DysymtabCommand
- EncryptionInfoCommand32
- EncryptionInfoCommand64
- EntryPointCommand
- FatArch32
- FatArch64
- FatHeader
- FilesetEntryCommand
- FvmfileCommand
- Fvmlib
- FvmlibCommand
- IdentCommand
- LcStr A variable length string in a load command.
- LinkeditDataCommand
- LinkerOptionCommand
- LoadCommand Common fields at the start of every load command.
- MachHeader32 The 32-bit mach header.
- MachHeader64 The 64-bit mach header.
- Nlist32
- Nlist64
- NoteCommand
- PrebindCksumCommand
- PreboundDylibCommand
- Relocation A relocation entry.
- RelocationInfo
- RoutinesCommand32
- RoutinesCommand64
- RpathCommand
- ScatteredRelocationInfo
- Section32 32-bit section.
- Section64 64-bit section.
- SegmentCommand32 32-bit segment load command.
- SegmentCommand64 64-bit segment load command.
- SourceVersionCommand
- SubClientCommand
- SubFrameworkCommand
- SubLibraryCommand
- SubUmbrellaCommand
- SymsegCommand
- SymtabCommand
- ThreadCommand
- TwolevelHint
- TwolevelHintsCommand
- UuidCommand
- VersionMinCommand
Functions
Constants
- ARM64_RELOC_ADDEND must be followed by PAGE21 or PAGEOFF12
- ARM64_RELOC_AUTHENTICATED_POINTER
- ARM64_RELOC_BRANCH26 a B/BL instruction with 26-bit displacement
- ARM64_RELOC_GOT_LOAD_PAGE21 pc-rel distance to page of GOT slot
- ARM64_RELOC_GOT_LOAD_PAGEOFF12 offset within page of GOT slot, scaled by r_length
- ARM64_RELOC_PAGE21 pc-rel distance to page of target
- ARM64_RELOC_PAGEOFF12 offset within page, scaled by r_length
- ARM64_RELOC_POINTER_TO_GOT for pointers to GOT slots
- ARM64_RELOC_SUBTRACTOR must be followed by a ARM64_RELOC_UNSIGNED
- ARM64_RELOC_TLVP_LOAD_PAGE21 pc-rel distance to page of TLVP slot
- ARM64_RELOC_TLVP_LOAD_PAGEOFF12 offset within page of TLVP slot, scaled by r_length
- ARM64_RELOC_UNSIGNED for pointers
- ARM_RELOC_BR24 24 bit branch displacement (to a word address)
- ARM_RELOC_HALF
- ARM_RELOC_HALF_SECTDIFF
- ARM_RELOC_LOCAL_SECTDIFF like ARM_RELOC_SECTDIFF, but the symbol referenced was local.
- ARM_RELOC_PAIR the second relocation entry of a pair
- ARM_RELOC_PB_LA_PTR prebound lazy pointer
- ARM_RELOC_SECTDIFF a PAIR follows with subtract symbol value
- ARM_RELOC_VANILLA generic relocation as described above
- ARM_THUMB_32BIT_BRANCH obsolete - a thumb 32-bit branch instruction possibly needing page-spanning branch workaround
- ARM_THUMB_RELOC_BR22 22 bit branch displacement (to a half-word address)
- BIND_IMMEDIATE_MASK
- BIND_OPCODE_ADD_ADDR_ULEB
- BIND_OPCODE_DONE
- BIND_OPCODE_DO_BIND
- BIND_OPCODE_DO_BIND_ADD_ADDR_IMM_SCALED
- BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB
- BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB
- BIND_OPCODE_MASK
- BIND_OPCODE_SET_ADDEND_SLEB
- BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
- BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB
- BIND_OPCODE_SET_DYLIB_SPECIAL_IMM
- BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
- BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
- BIND_OPCODE_SET_TYPE_IMM
- BIND_OPCODE_THREADED
- BIND_SPECIAL_DYLIB_FLAT_LOOKUP
- BIND_SPECIAL_DYLIB_MAIN_EXECUTABLE
- BIND_SPECIAL_DYLIB_SELF
- BIND_SPECIAL_DYLIB_WEAK_LOOKUP
- BIND_SUBOPCODE_THREADED_APPLY
- BIND_SUBOPCODE_THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB
- BIND_SYMBOL_FLAGS_NON_WEAK_DEFINITION
- BIND_SYMBOL_FLAGS_WEAK_IMPORT
- BIND_TYPE_POINTER
- BIND_TYPE_TEXT_ABSOLUTE32
- BIND_TYPE_TEXT_PCREL32
- CPU_ARCH_ABI64 64 bit ABI
- CPU_ARCH_ABI64_32 ABI for 64-bit hardware with 32-bit types; LP32
- CPU_ARCH_MASK mask for architecture bits
- CPU_SUBTYPE_386
- CPU_SUBTYPE_486
- CPU_SUBTYPE_486SX
- CPU_SUBTYPE_586
- CPU_SUBTYPE_ANY When selecting a slice, ANY will pick the slice with the best grading for the selected cpu_type_t, unlike the "ALL" subtypes, which are the slices that can run on any hardware for that cpu type.
- CPU_SUBTYPE_ARM64E
- CPU_SUBTYPE_ARM64_32_ALL
- CPU_SUBTYPE_ARM64_32_V8
- CPU_SUBTYPE_ARM64_ALL
- CPU_SUBTYPE_ARM64_V8
- CPU_SUBTYPE_ARM_ALL
- CPU_SUBTYPE_ARM_V4T
- CPU_SUBTYPE_ARM_V5TEJ
- CPU_SUBTYPE_ARM_V6
- CPU_SUBTYPE_ARM_V6M Not meant to be run under xnu
- CPU_SUBTYPE_ARM_V7 ARMv7-A and ARMv7-R
- CPU_SUBTYPE_ARM_V7EM Not meant to be run under xnu
- CPU_SUBTYPE_ARM_V7F Cortex A9
- CPU_SUBTYPE_ARM_V7K
- CPU_SUBTYPE_ARM_V7M Not meant to be run under xnu
- CPU_SUBTYPE_ARM_V7S Swift
- CPU_SUBTYPE_ARM_V8
- CPU_SUBTYPE_ARM_V8M Not meant to be run under xnu
- CPU_SUBTYPE_ARM_XSCALE
- CPU_SUBTYPE_BIG_ENDIAN
- CPU_SUBTYPE_CELERON
- CPU_SUBTYPE_CELERON_MOBILE
- CPU_SUBTYPE_HPPA_7100LC
- CPU_SUBTYPE_HPPA_ALL
- CPU_SUBTYPE_I386_ALL
- CPU_SUBTYPE_I860_860
- CPU_SUBTYPE_I860_ALL
- CPU_SUBTYPE_INTEL_FAMILY_MAX
- CPU_SUBTYPE_INTEL_MODEL_ALL
- CPU_SUBTYPE_ITANIUM
- CPU_SUBTYPE_ITANIUM_2
- CPU_SUBTYPE_LIB64 64 bit libraries
- CPU_SUBTYPE_LITTLE_ENDIAN
- CPU_SUBTYPE_MASK mask for feature flags
- CPU_SUBTYPE_MC68030
- CPU_SUBTYPE_MC68030_ONLY
- CPU_SUBTYPE_MC68040
- CPU_SUBTYPE_MC680X0_ALL
- CPU_SUBTYPE_MC88000_ALL
- CPU_SUBTYPE_MC88100
- CPU_SUBTYPE_MC88110
- CPU_SUBTYPE_MC98000_ALL
- CPU_SUBTYPE_MC98601
- CPU_SUBTYPE_MIPS_ALL
- CPU_SUBTYPE_MIPS_R2000
- CPU_SUBTYPE_MIPS_R2000A pmax
- CPU_SUBTYPE_MIPS_R2300
- CPU_SUBTYPE_MIPS_R2600
- CPU_SUBTYPE_MIPS_R2800
- CPU_SUBTYPE_MIPS_R3000
- CPU_SUBTYPE_MIPS_R3000A 3max
- CPU_SUBTYPE_MULTIPLE
- CPU_SUBTYPE_PENT
- CPU_SUBTYPE_PENTII_M3
- CPU_SUBTYPE_PENTII_M5
- CPU_SUBTYPE_PENTIUM_3
- CPU_SUBTYPE_PENTIUM_3_M
- CPU_SUBTYPE_PENTIUM_3_XEON
- CPU_SUBTYPE_PENTIUM_4
- CPU_SUBTYPE_PENTIUM_4_M
- CPU_SUBTYPE_PENTIUM_M
- CPU_SUBTYPE_PENTPRO
- CPU_SUBTYPE_POWERPC_601
- CPU_SUBTYPE_POWERPC_602
- CPU_SUBTYPE_POWERPC_603
- CPU_SUBTYPE_POWERPC_603E
- CPU_SUBTYPE_POWERPC_603EV
- CPU_SUBTYPE_POWERPC_604
- CPU_SUBTYPE_POWERPC_604E
- CPU_SUBTYPE_POWERPC_620
- CPU_SUBTYPE_POWERPC_7400
- CPU_SUBTYPE_POWERPC_7450
- CPU_SUBTYPE_POWERPC_750
- CPU_SUBTYPE_POWERPC_970
- CPU_SUBTYPE_POWERPC_ALL
- CPU_SUBTYPE_PTRAUTH_ABI pointer authentication with versioned ABI
- CPU_SUBTYPE_SPARC_ALL
- CPU_SUBTYPE_UVAXI
- CPU_SUBTYPE_UVAXII
- CPU_SUBTYPE_UVAXIII
- CPU_SUBTYPE_VAX730
- CPU_SUBTYPE_VAX750
- CPU_SUBTYPE_VAX780
- CPU_SUBTYPE_VAX785
- CPU_SUBTYPE_VAX8200
- CPU_SUBTYPE_VAX8500
- CPU_SUBTYPE_VAX8600
- CPU_SUBTYPE_VAX8650
- CPU_SUBTYPE_VAX8800
- CPU_SUBTYPE_VAX_ALL
- CPU_SUBTYPE_X86_64_ALL
- CPU_SUBTYPE_X86_64_H Haswell feature subset
- CPU_SUBTYPE_X86_ALL
- CPU_SUBTYPE_X86_ARCH1
- CPU_SUBTYPE_XEON
- CPU_SUBTYPE_XEON_MP
- CPU_TYPE_ALPHA
- CPU_TYPE_ANY
- CPU_TYPE_ARM
- CPU_TYPE_ARM64
- CPU_TYPE_ARM64_32
- CPU_TYPE_HPPA
- CPU_TYPE_I860
- CPU_TYPE_MC680X0
- CPU_TYPE_MC88000
- CPU_TYPE_MC98000
- CPU_TYPE_MIPS
- CPU_TYPE_POWERPC
- CPU_TYPE_POWERPC64
- CPU_TYPE_SPARC
- CPU_TYPE_VAX
- CPU_TYPE_X86
- CPU_TYPE_X86_64
- DICE_KIND_ABS_JUMP_TABLE32
- DICE_KIND_DATA
- DICE_KIND_JUMP_TABLE16
- DICE_KIND_JUMP_TABLE32
- DICE_KIND_JUMP_TABLE8
- DYNAMIC_LOOKUP_ORDINAL
- EXECUTABLE_ORDINAL
- EXPORT_SYMBOL_FLAGS_KIND_ABSOLUTE
- EXPORT_SYMBOL_FLAGS_KIND_MASK
- EXPORT_SYMBOL_FLAGS_KIND_REGULAR
- EXPORT_SYMBOL_FLAGS_KIND_THREAD_LOCAL
- EXPORT_SYMBOL_FLAGS_REEXPORT
- EXPORT_SYMBOL_FLAGS_STUB_AND_RESOLVER
- EXPORT_SYMBOL_FLAGS_WEAK_DEFINITION
- FAT_CIGAM NXSwapLong(FAT_MAGIC)
- FAT_CIGAM_64 NXSwapLong(FAT_MAGIC_64)
- FAT_MAGIC
- FAT_MAGIC_64
- GENERIC_RELOC_LOCAL_SECTDIFF
- GENERIC_RELOC_PAIR Only follows a GENERIC_RELOC_SECTDIFF
- GENERIC_RELOC_PB_LA_PTR prebound lazy pointer
- GENERIC_RELOC_SECTDIFF
- GENERIC_RELOC_TLV thread local variables
- GENERIC_RELOC_VANILLA generic relocation as described above
- INDIRECT_SYMBOL_ABS
- INDIRECT_SYMBOL_LOCAL
- LC_BUILD_VERSION build for platform min OS version
- LC_CODE_SIGNATURE local of code signature
- LC_DATA_IN_CODE table of non-instructions in __text
-
LC_DYLD_CHAINED_FIXUPS
used with
LinkeditDataCommand - LC_DYLD_ENVIRONMENT string for dyld to treat like environment variable
-
LC_DYLD_EXPORTS_TRIE
used with
LinkeditDataCommand, payload is trie - LC_DYLD_INFO compressed dyld information
- LC_DYLD_INFO_ONLY compressed dyld information only
- LC_DYLIB_CODE_SIGN_DRS Code signing DRs copied from linked dylibs
- LC_DYSYMTAB dynamic link-edit symbol table info
- LC_ENCRYPTION_INFO encrypted segment information
- LC_ENCRYPTION_INFO_64 64-bit encrypted segment information
-
LC_FILESET_ENTRY
used with
FilesetEntryCommand - LC_FUNCTION_STARTS compressed table of function start addresses
- LC_FVMFILE fixed VM file inclusion (internal use)
- LC_IDENT object identification info (obsolete)
- LC_IDFVMLIB fixed VM shared library identification
- LC_ID_DYLIB dynamically linked shared lib ident
- LC_ID_DYLINKER dynamic linker identification
- LC_LAZY_LOAD_DYLIB delay load of dylib until first use
- LC_LINKER_OPTIMIZATION_HINT optimization hints in MH_OBJECT files
- LC_LINKER_OPTION linker options in MH_OBJECT files
- LC_LOADFVMLIB load a specified fixed VM shared library
- LC_LOAD_DYLIB load a dynamically linked shared library
- LC_LOAD_DYLINKER load a dynamic linker
- LC_LOAD_UPWARD_DYLIB load upward dylib
- LC_LOAD_WEAK_DYLIB load a dynamically linked shared library that is allowed to be missing (all symbols are weak imported).
- LC_MAIN replacement for LC_UNIXTHREAD
- LC_NOTE arbitrary data included within a Mach-O file
- LC_PREBIND_CKSUM prebind checksum
- LC_PREBOUND_DYLIB modules prebound for a dynamically linked shared library
- LC_PREPAGE prepage command (internal use)
- LC_REEXPORT_DYLIB load and re-export dylib
- LC_REQ_DYLD
- LC_ROUTINES image routines
- LC_ROUTINES_64 64-bit image routines
- LC_RPATH runpath additions
- LC_SEGMENT segment of this file to be mapped
- LC_SEGMENT_64 64-bit segment of this file to be mapped
- LC_SEGMENT_SPLIT_INFO local of info to split segments
- LC_SOURCE_VERSION source version used to build binary
- LC_SUB_CLIENT sub client
- LC_SUB_FRAMEWORK sub framework
- LC_SUB_LIBRARY sub library
- LC_SUB_UMBRELLA sub umbrella
- LC_SYMSEG link-edit gdb symbol table info (obsolete)
- LC_SYMTAB link-edit stab symbol table info
- LC_THREAD thread
- LC_TWOLEVEL_HINTS two-level namespace lookup hints
- LC_UNIXTHREAD unix thread (includes a stack)
- LC_UUID the uuid
- LC_VERSION_MIN_IPHONEOS build for iPhoneOS min OS version
- LC_VERSION_MIN_MACOSX build for MacOSX min OS version
- LC_VERSION_MIN_TVOS build for AppleTV min OS version
- LC_VERSION_MIN_WATCHOS build for Watch min OS version
- MAX_LIBRARY_ORDINAL
- MAX_SECT 1 thru 255 inclusive
- 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_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_APP_EXTENSION_SAFE The code was linked for use in an application extension.
- MH_BINDATLOAD the object file's undefined references are bound by the dynamic linker when loaded.
- MH_BINDS_TO_WEAK the final linked image uses weak symbols
- MH_BUNDLE dynamically bound bundle file
- MH_CANONICAL the binary has been canonicalized via the unprebind operation
- MH_CIGAM NXSwapInt(MH_MAGIC)
- MH_CIGAM_64 NXSwapInt(MH_MAGIC_64)
- MH_CORE core file
- 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_DSYM companion file with only debug sections
- MH_DYLDLINK the object file is input for the dynamic linker and can't be statically link edited again
- MH_DYLIB dynamically bound shared library
- 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.
- MH_DYLIB_STUB shared library stub for static linking only, no section contents
- MH_DYLINKER dynamic link editor
- MH_EXECUTE demand paged executable file
- MH_FILESET set of mach-o's
- MH_FORCE_FLAT the executable is forcing all images to use flat name space bindings
- MH_FVMLIB fixed VM shared library file
- MH_HAS_TLV_DESCRIPTORS Contains a section of type S_THREAD_LOCAL_VARIABLES
- MH_INCRLINK the object file is the output of an incremental link against a base file and can't be link edited again
- MH_KEXT_BUNDLE x86_64 kexts
- MH_LAZY_INIT the shared library init routine is to be run lazily via catching memory faults to its writeable segments (obsolete)
- MH_MAGIC the mach magic number
- MH_MAGIC_64 the 64-bit mach magic number
- 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_NOFIXPREBINDING do not have dyld notify the prebinding agent about this executable
- 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_NOUNDEFS the object file has no undefined references
- 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_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_OBJECT relocatable object file
- 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_PREBINDABLE the binary is not prebound but can have its prebinding redone. only used when MH_PREBOUND is not set.
- MH_PREBOUND the file has its dynamic undefined references prebound.
- MH_PRELOAD preloaded executable file
- 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_SIM_SUPPORT Allow LC_MIN_VERSION_MACOS and LC_BUILD_VERSION load commands with the platforms macOS, iOSMac, iOSSimulator, tvOSSimulator and watchOSSimulator.
- MH_SPLIT_SEGS the file has its read-only and read-write segments split
- MH_SUBSECTIONS_VIA_SYMBOLS safe to divide up the sections into sub-sections via symbols for dead code stripping
- MH_TWOLEVEL the image is using two-level name space bindings
- MH_WEAK_DEFINES the final linked image contains external weak symbols
- NO_SECT symbol is not in any section
- N_ABS absolute, n_sect == NO_SECT
- N_ALT_ENTRY
- N_ARM_THUMB_DEF symbol is a Thumb function (ARM)
- N_AST AST file path: name,,NO_SECT,0,0
- N_BCOMM begin common: name,,NO_SECT,0,0
- N_BINCL include file beginning: name,,NO_SECT,0,sum
- N_BNSYM begin nsect sym: 0,,n_sect,0,address
- N_DESC_DISCARDED symbol is discarded
- N_ECOML end common (local name): 0,,n_sect,0,address
- N_ECOMM end common: name,,n_sect,0,0
- N_EINCL include file end: name,,NO_SECT,0,0
- N_ENSYM end nsect sym: 0,,n_sect,0,address
- N_ENTRY alternate entry: name,,n_sect,linenumber,address
- N_EXCL deleted include file: name,,NO_SECT,0,sum
- N_EXT external symbol bit, set for external symbols
- N_FNAME procedure name (f77 kludge): name,,NO_SECT,0,0
- N_FUN procedure: name,,n_sect,linenumber,address
- N_GSYM global symbol: name,,NO_SECT,type,0
- N_INDR indirect
- N_LBRAC left bracket: 0,,NO_SECT,nesting level,address
- N_LCSYM .lcomm symbol: name,,n_sect,type,address
- N_LENG second stab entry with length information
- N_LSYM local sym: name,,NO_SECT,type,offset
- N_NO_DEAD_STRIP symbol is not to be dead stripped
- N_OLEVEL compiler -O level: name,,NO_SECT,0,0
- N_OPT emitted with gcc2_compiled and in gcc source
- N_OSO object file name: name,,0,0,st_mtime
- N_PARAMS compiler parameters: name,,NO_SECT,0,0
- N_PBUD prebound undefined (defined in a dylib)
- N_PC global pascal symbol: name,,NO_SECT,subtype,line
- N_PEXT private external symbol bit
- N_PSYM parameter: name,,NO_SECT,type,offset
- N_RBRAC right bracket: 0,,NO_SECT,nesting level,address
- N_REF_TO_WEAK reference to a weak symbol
- N_RSYM register sym: name,,NO_SECT,type,register
- N_SECT defined in section number n_sect
- N_SLINE src line: 0,,n_sect,linenumber,address
- N_SO source file name: name,,n_sect,0,address
- N_SOL #included file name: name,,n_sect,0,address
- N_SSYM structure elt: name,,NO_SECT,type,struct_offset
- N_STAB if any of these bits set, a symbolic debugging entry
- N_STSYM static symbol: name,,n_sect,type,address
- N_SYMBOL_RESOLVER
- N_TYPE mask for the type bits
- N_UNDF undefined, n_sect == NO_SECT
- N_VERSION compiler version: name,,NO_SECT,0,0
- N_WEAK_DEF coalesced symbol is a weak definition
- N_WEAK_REF symbol is weak referenced
- PLATFORM_BRIDGEOS
- PLATFORM_DRIVERKIT
- PLATFORM_IOS
- PLATFORM_IOSSIMULATOR
- PLATFORM_MACCATALYST
- PLATFORM_MACOS
- PLATFORM_TVOS
- PLATFORM_TVOSSIMULATOR
- PLATFORM_WATCHOS
- PLATFORM_WATCHOSSIMULATOR
- PLATFORM_XROS
- PLATFORM_XROSSIMULATOR
- PPC_RELOC_BR14 14 bit branch displacement (to a word address)
- PPC_RELOC_BR24 24 bit branch displacement (to a word address)
- PPC_RELOC_HA16 Same as the RELOC_HI16 except the low 16 bits and the high 16 bits are added together with the low 16 bits sign extended first. This means if bit 15 of the low 16 bits is set the high 16 bits stored in the instruction will be adjusted.
- PPC_RELOC_HA16_SECTDIFF
- PPC_RELOC_HI16 a PAIR follows with the low half
- PPC_RELOC_HI16_SECTDIFF section difference forms of above. a PAIR
- PPC_RELOC_JBSR
- PPC_RELOC_LO14 Same as the LO16 except that the low 2 bits are not stored in the instruction and are always zero. This is used in double word load/store instructions.
- PPC_RELOC_LO14_SECTDIFF
- PPC_RELOC_LO16 a PAIR follows with the high half
- PPC_RELOC_LO16_SECTDIFF follows these with subtract symbol value
- PPC_RELOC_LOCAL_SECTDIFF like PPC_RELOC_SECTDIFF, but the symbol referenced was local.
- PPC_RELOC_PAIR the second relocation entry of a pair
- PPC_RELOC_PB_LA_PTR prebound lazy pointer
- PPC_RELOC_SECTDIFF a PAIR follows with subtract symbol value
- PPC_RELOC_VANILLA generic relocation as described above
- REBASE_IMMEDIATE_MASK
- REBASE_OPCODE_ADD_ADDR_IMM_SCALED
- REBASE_OPCODE_ADD_ADDR_ULEB
- REBASE_OPCODE_DONE
- REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
- REBASE_OPCODE_DO_REBASE_IMM_TIMES
- REBASE_OPCODE_DO_REBASE_ULEB_TIMES
- REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
- REBASE_OPCODE_MASK
- REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
- REBASE_OPCODE_SET_TYPE_IMM
- REBASE_TYPE_POINTER
- REBASE_TYPE_TEXT_ABSOLUTE32
- REBASE_TYPE_TEXT_PCREL32
- REFERENCED_DYNAMICALLY
- REFERENCE_FLAG_DEFINED
- REFERENCE_FLAG_PRIVATE_DEFINED
- REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY
- REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY
- REFERENCE_FLAG_UNDEFINED_LAZY
- REFERENCE_FLAG_UNDEFINED_NON_LAZY
- REFERENCE_TYPE
- R_ABS absolute relocation type for Mach-O files
-
R_SCATTERED
Bit set in
Relocation::r_word0for scattered relocations. - SECTION_ATTRIBUTES 24 section attributes
- SECTION_ATTRIBUTES_SYS system setable attributes
- SECTION_ATTRIBUTES_USR User setable attributes
- SECTION_TYPE 256 section types
- SECT_BSS the real uninitialized data section no padding
- SECT_COMMON the section common symbols are allocated in by the link editor
- SECT_DATA the real initialized data section no padding, no bss overlap
- SECT_FVMLIB_INIT0 the fvmlib initialization section
- SECT_FVMLIB_INIT1 the section following the fvmlib initialization section
- SECT_ICON_HEADER the icon headers
- SECT_ICON_TIFF the icons in tiff format
- SECT_OBJC_MODULES module information
- SECT_OBJC_REFS string table
- SECT_OBJC_STRINGS string table
- SECT_OBJC_SYMBOLS symbol table
- SECT_TEXT the real text part of the text section no headers, and no padding
- SEG_DATA the tradition UNIX data segment
- SEG_ICON the icon segment
- SEG_IMPORT the segment for the self (dyld) modifying code stubs that has read, write and execute permissions
- SEG_LINKEDIT the segment containing all structs created and maintained by the link editor. Created with -seglinkedit option to ld(1) for MH_EXECUTE and FVMLIB file types only
- SEG_LINKINFO the segment overlapping with linkedit containing linking information
- SEG_OBJC objective-C runtime segment
- SEG_PAGEZERO the pagezero segment which has no protections and catches NULL references for MH_EXECUTE files
- SEG_TEXT the tradition UNIX text segment
- SEG_UNIXSTACK the unix stack segment
- SELF_LIBRARY_ORDINAL
- SG_FVMLIB this segment is the VM that is allocated by a fixed VM library, for overlap checking in the link editor
- SG_HIGHVM the file contents for this segment is for the high part of the VM space, the low part is zero filled (for stacks in core files)
- SG_NORELOC this segment has nothing that was relocated in it and nothing relocated to it, that is it maybe safely replaced without relocation
- SG_PROTECTED_VERSION_1 This segment is protected. If the segment starts at file offset 0, the first page of the segment is not protected. All other pages of the segment are protected.
- SG_READ_ONLY This segment is made read-only after fixups
- S_16BYTE_LITERALS section with only 16 byte literals
- S_4BYTE_LITERALS section with only 4 byte literals
- S_8BYTE_LITERALS section with only 8 byte literals
- S_ATTR_DEBUG a debug section
- S_ATTR_EXT_RELOC section has external relocation entries
- S_ATTR_LIVE_SUPPORT blocks are live if they reference live blocks
- S_ATTR_LOC_RELOC section has local relocation entries
- S_ATTR_NO_DEAD_STRIP no dead stripping
- S_ATTR_NO_TOC section contains coalesced symbols that are not to be in a ranlib table of contents
- S_ATTR_PURE_INSTRUCTIONS section contains only true machine instructions
- S_ATTR_SELF_MODIFYING_CODE Used with i386 code stubs written on by dyld
- S_ATTR_SOME_INSTRUCTIONS section contains some machine instructions
- S_ATTR_STRIP_STATIC_SYMS ok to strip static symbols in this section in files with the MH_DYLDLINK flag
- S_COALESCED section contains symbols that are to be coalesced
- S_CSTRING_LITERALS section with only literal C strings
- S_DTRACE_DOF section contains DTrace Object Format
- S_GB_ZEROFILL zero fill on demand section (that can be larger than 4 gigabytes)
- S_INIT_FUNC_OFFSETS 32-bit offsets to initializers
- S_INTERPOSING section with only pairs of function pointers for interposing
- S_LAZY_DYLIB_SYMBOL_POINTERS section with only lazy symbol pointers to lazy loaded dylibs
- S_LAZY_SYMBOL_POINTERS section with only lazy symbol pointers
- S_LITERAL_POINTERS section with only pointers to literals
- S_MOD_INIT_FUNC_POINTERS section with only function pointers for initialization
- S_MOD_TERM_FUNC_POINTERS section with only function pointers for termination
- S_NON_LAZY_SYMBOL_POINTERS section with only non-lazy symbol pointers
- S_REGULAR regular section
- S_SYMBOL_STUBS section with only symbol stubs, byte size of stub in the reserved2 field
- S_THREAD_LOCAL_INIT_FUNCTION_POINTERS functions to call to initialize TLV values
- S_THREAD_LOCAL_REGULAR template of initial values for TLVs
- S_THREAD_LOCAL_VARIABLES TLV descriptors
- S_THREAD_LOCAL_VARIABLE_POINTERS pointers to TLV descriptors
- S_THREAD_LOCAL_ZEROFILL template of initial values for TLVs
- S_ZEROFILL zero fill on demand section
- TOOL_CLANG
- TOOL_LD
- TOOL_SWIFT
- VM_PROT_EXECUTE execute permission
- VM_PROT_READ read permission
- VM_PROT_WRITE write permission
- X86_64_RELOC_BRANCH a CALL/JMP instruction with 32-bit displacement
- X86_64_RELOC_GOT other GOT references
- X86_64_RELOC_GOT_LOAD a MOVQ load of a GOT entry
- X86_64_RELOC_SIGNED for signed 32-bit displacement
- X86_64_RELOC_SIGNED_1 for signed 32-bit displacement with a -1 addend
- X86_64_RELOC_SIGNED_2 for signed 32-bit displacement with a -2 addend
- X86_64_RELOC_SIGNED_4 for signed 32-bit displacement with a -4 addend
- X86_64_RELOC_SUBTRACTOR must be followed by a X86_64_RELOC_UNSIGNED
- X86_64_RELOC_TLV for thread local variables
- X86_64_RELOC_UNSIGNED for absolute addresses