]> gitweb.factorcode.org Git - factor.git/commitdiff
macho: update mach-o/loader.h
authorJohn Benediktsson <mrjbq7@gmail.com>
Sun, 4 Feb 2024 21:08:33 +0000 (13:08 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Sun, 4 Feb 2024 21:08:33 +0000 (13:08 -0800)
extra/macho/macho.factor

index 94864865cf725f00e170f68ca80cc459eb7022d9..dcd378fe368bd54faa751073a6ab9aca11f57ecc 100644 (file)
@@ -61,6 +61,9 @@ CONSTANT: MH_BUNDLE       0x8
 CONSTANT: MH_DYLIB_STUB   0x9
 CONSTANT: MH_DSYM         0xa
 CONSTANT: MH_KEXT_BUNDLE  0xb
+CONSTANT: MH_FILESET      0xc
+CONSTANT: MH_GPU_EXECUTE  0xd
+CONSTANT: MH_GPU_DYLIB    0xe
 
 CONSTANT: MH_NOUNDEFS                0x1
 CONSTANT: MH_INCRLINK                0x2
@@ -80,11 +83,17 @@ CONSTANT: MH_CANONICAL               0x4000
 CONSTANT: MH_WEAK_DEFINES            0x8000
 CONSTANT: MH_BINDS_TO_WEAK           0x10000
 CONSTANT: MH_ALLOW_STACK_EXECUTION   0x20000
-CONSTANT: MH_DEAD_STRIPPABLE_DYLIB   0x400000
 CONSTANT: MH_ROOT_SAFE               0x40000
 CONSTANT: MH_SETUID_SAFE             0x80000
 CONSTANT: MH_NO_REEXPORTED_DYLIBS    0x100000
 CONSTANT: MH_PIE                     0x200000
+CONSTANT: MH_DEAD_STRIPPABLE_DYLIB   0x400000
+CONSTANT: MH_HAS_TLV_DESCRIPTORS     0x800000
+CONSTANT: MH_NO_HEAP_EXECUTION       0x1000000
+CONSTANT: MH_APP_EXTENSION_SAFE      0x2000000
+CONSTANT: MH_NLIST_OUTOFSYNC_WITH_DYLDINFO 0x4000000
+CONSTANT: MH_SIM_SUPPORT             0x8000000
+CONSTANT: MH_DYLIB_IN_CACHE          0x80000000
 
 STRUCT: load_command
     { cmd     uint }
@@ -92,50 +101,61 @@ STRUCT: load_command
 
 CONSTANT: LC_REQ_DYLD 0x80000000
 
-CONSTANT: LC_SEGMENT            0x1
-CONSTANT: LC_SYMTAB             0x2
-CONSTANT: LC_SYMSEG             0x3
-CONSTANT: LC_THREAD             0x4
-CONSTANT: LC_UNIXTHREAD         0x5
-CONSTANT: LC_LOADFVMLIB         0x6
-CONSTANT: LC_IDFVMLIB           0x7
-CONSTANT: LC_IDENT              0x8
-CONSTANT: LC_FVMFILE            0x9
-CONSTANT: LC_PREPAGE            0xa
-CONSTANT: LC_DYSYMTAB           0xb
-CONSTANT: LC_LOAD_DYLIB         0xc
-CONSTANT: LC_ID_DYLIB           0xd
-CONSTANT: LC_LOAD_DYLINKER      0xe
-CONSTANT: LC_ID_DYLINKER        0xf
-CONSTANT: LC_PREBOUND_DYLIB     0x10
-CONSTANT: LC_ROUTINES           0x11
-CONSTANT: LC_SUB_FRAMEWORK      0x12
-CONSTANT: LC_SUB_UMBRELLA       0x13
-CONSTANT: LC_SUB_CLIENT         0x14
-CONSTANT: LC_SUB_LIBRARY        0x15
-CONSTANT: LC_TWOLEVEL_HINTS     0x16
-CONSTANT: LC_PREBIND_CKSUM      0x17
-CONSTANT: LC_LOAD_WEAK_DYLIB    0x80000018
-CONSTANT: LC_SEGMENT_64         0x19
-CONSTANT: LC_ROUTINES_64        0x1a
-CONSTANT: LC_UUID               0x1b
-CONSTANT: LC_RPATH              0x8000001c
-CONSTANT: LC_CODE_SIGNATURE     0x1d
-CONSTANT: LC_SEGMENT_SPLIT_INFO 0x1e
-CONSTANT: LC_REEXPORT_DYLIB     0x8000001f
-CONSTANT: LC_LAZY_LOAD_DYLIB    0x20
-CONSTANT: LC_ENCRYPTION_INFO    0x21
-CONSTANT: LC_DYLD_INFO          0x22
-CONSTANT: LC_DYLD_INFO_ONLY     0x80000022
-CONSTANT: LC_LOAD_UPWARD_DYLIB 0x80000023
-CONSTANT: LC_VERSION_MIN_MACOSX 0x24
+CONSTANT: LC_SEGMENT             0x1
+CONSTANT: LC_SYMTAB              0x2
+CONSTANT: LC_SYMSEG              0x3
+CONSTANT: LC_THREAD              0x4
+CONSTANT: LC_UNIXTHREAD          0x5
+CONSTANT: LC_LOADFVMLIB          0x6
+CONSTANT: LC_IDFVMLIB            0x7
+CONSTANT: LC_IDENT               0x8
+CONSTANT: LC_FVMFILE             0x9
+CONSTANT: LC_PREPAGE             0xa
+CONSTANT: LC_DYSYMTAB            0xb
+CONSTANT: LC_LOAD_DYLIB          0xc
+CONSTANT: LC_ID_DYLIB            0xd
+CONSTANT: LC_LOAD_DYLINKER       0xe
+CONSTANT: LC_ID_DYLINKER         0xf
+CONSTANT: LC_PREBOUND_DYLIB      0x10
+CONSTANT: LC_ROUTINES            0x11
+CONSTANT: LC_SUB_FRAMEWORK       0x12
+CONSTANT: LC_SUB_UMBRELLA        0x13
+CONSTANT: LC_SUB_CLIENT          0x14
+CONSTANT: LC_SUB_LIBRARY         0x15
+CONSTANT: LC_TWOLEVEL_HINTS      0x16
+CONSTANT: LC_PREBIND_CKSUM       0x17
+CONSTANT: LC_LOAD_WEAK_DYLIB     0x80000018
+CONSTANT: LC_SEGMENT_64          0x19
+CONSTANT: LC_ROUTINES_64         0x1a
+CONSTANT: LC_UUID                0x1b
+CONSTANT: LC_RPATH               0x8000001c
+CONSTANT: LC_CODE_SIGNATURE      0x1d
+CONSTANT: LC_SEGMENT_SPLIT_INFO  0x1e
+CONSTANT: LC_REEXPORT_DYLIB      0x8000001f
+CONSTANT: LC_LAZY_LOAD_DYLIB     0x20
+CONSTANT: LC_ENCRYPTION_INFO     0x21
+CONSTANT: LC_DYLD_INFO           0x22
+CONSTANT: LC_DYLD_INFO_ONLY      0x80000022
+CONSTANT: LC_LOAD_UPWARD_DYLIB   0x80000023
+CONSTANT: LC_VERSION_MIN_MACOSX  0x24
 CONSTANT: LC_VERSION_MIN_IPHONEOS 0x25
-CONSTANT: LC_FUNCTION_STARTS 0x26
-CONSTANT: LC_DYLD_ENVIRONMENT 0x27
-CONSTANT: LC_MAIN 0x80000028
-CONSTANT: LC_DATA_IN_CODE 0x29
-CONSTANT: LC_SOURCE_VERSION 0x2A
+CONSTANT: LC_FUNCTION_STARTS     0x26
+CONSTANT: LC_DYLD_ENVIRONMENT    0x27
+CONSTANT: LC_MAIN                0x80000028
+CONSTANT: LC_DATA_IN_CODE        0x29
+CONSTANT: LC_SOURCE_VERSION      0x2A
 CONSTANT: LC_DYLIB_CODE_SIGN_DRS 0x2B
+CONSTANT: LC_ENCRYPTION_INFO_64  0x2C
+CONSTANT: LC_LINKER_OPTION       0x2D
+CONSTANT: LC_LINKER_OPTIMIZATION_HINT 0x2E
+CONSTANT: LC_VERSION_MIN_TVOS    0x2F
+CONSTANT: LC_VERSION_MIN_WATCHOS 0x30
+CONSTANT: LC_NOTE                0x31
+CONSTANT: LC_BUILD_VERSION       0x32
+CONSTANT: LC_DYLD_EXPORTS_TRIE   0x80000033
+CONSTANT: LC_DYLD_CHAINED_FIXUPS 0x80000034
+CONSTANT: LC_FILESET_ENTRY       0x80000035
+CONSTANT: LC_ATOM_INFO           0x36
 
 UNION-STRUCT: lc_str
     { offset    uint     }
@@ -171,6 +191,7 @@ CONSTANT: SG_HIGHVM               0x1
 CONSTANT: SG_FVMLIB               0x2
 CONSTANT: SG_NORELOC              0x4
 CONSTANT: SG_PROTECTED_VERSION_1  0x8
+CONSTANT: SG_READ_ONLY            0x10
 
 STRUCT: section
     { sectname        char[16] }
@@ -219,6 +240,12 @@ CONSTANT: S_INTERPOSING                   0xd
 CONSTANT: S_16BYTE_LITERALS               0xe
 CONSTANT: S_DTRACE_DOF                    0xf
 CONSTANT: S_LAZY_DYLIB_SYMBOL_POINTERS    0x10
+CONSTANT: S_THREAD_LOCAL_REGULAR          0x11
+CONSTANT: S_THREAD_LOCAL_ZEROFILL         0x12
+CONSTANT: S_THREAD_LOCAL_VARIABLES        0x13
+CONSTANT: S_THREAD_LOCAL_VARIABLE_POINTERS 0x14
+CONSTANT: S_THREAD_LOCAL_INIT_FUNCTION_POINTERS 0x15
+CONSTANT: S_INIT_FUNC_OFFSETS             0x16
 
 CONSTANT: SECTION_ATTRIBUTES_USR     0xff000000
 CONSTANT: S_ATTR_PURE_INSTRUCTIONS   0x80000000
@@ -462,6 +489,47 @@ STRUCT: version_min_command
     { version uint32_t }
     { sdk uint32_t } ;
 
+STRUCT: build_version_command
+    { cmd uint32_t }
+    { cmdsize uint32_t }
+    { platform uint32_t }
+    { minos uint32_t }
+    { sdk uint32_t }
+    { ntools uint32_t } ;
+
+STRUCT: build_tool_version
+    { tool uint32_t }
+    { version uint32_t } ;
+
+CONSTANT: PLATFORM_UNKNOWN                        0
+CONSTANT: PLATFORM_ANY                            0xFFFFFFFF
+CONSTANT: PLATFORM_MACOS                          1
+CONSTANT: PLATFORM_IOS                            2
+CONSTANT: PLATFORM_TVOS                           3
+CONSTANT: PLATFORM_WATCHOS                        4
+CONSTANT: PLATFORM_BRIDGEOS                       5
+CONSTANT: PLATFORM_MACCATALYST                    6
+CONSTANT: PLATFORM_IOSSIMULATOR                   7
+CONSTANT: PLATFORM_TVOSSIMULATOR                  8
+CONSTANT: PLATFORM_WATCHOSSIMULATOR               9
+CONSTANT: PLATFORM_DRIVERKIT                      10
+CONSTANT: PLATFORM_VISIONOS                       11
+CONSTANT: PLATFORM_VISIONOSSIMULATOR              12
+CONSTANT: PLATFORM_FIRMWARE                       13
+CONSTANT: PLATFORM_SEPOS                          14
+
+CONSTANT: TOOL_CLANG           1
+CONSTANT: TOOL_SWIFT           2
+CONSTANT: TOOL_LD              3
+CONSTANT: TOOL_LLD             4
+CONSTANT: TOOL_METAL           1024
+CONSTANT: TOOL_AIRLLD          1025
+CONSTANT: TOOL_AIRNT           1026
+CONSTANT: TOOL_AIRNT_PLUGIN    1027
+CONSTANT: TOOL_AIRPACK         1028
+CONSTANT: TOOL_GPUARCHIVER     1031
+CONSTANT: TOOL_METAL_FRAMEWORK 1032
+
 CONSTANT: REBASE_TYPE_POINTER                     1
 CONSTANT: REBASE_TYPE_TEXT_ABSOLUTE32             2
 CONSTANT: REBASE_TYPE_TEXT_PCREL32                3
@@ -485,6 +553,7 @@ CONSTANT: BIND_TYPE_TEXT_PCREL32                  3
 CONSTANT: BIND_SPECIAL_DYLIB_SELF                     0
 CONSTANT: BIND_SPECIAL_DYLIB_MAIN_EXECUTABLE          -1
 CONSTANT: BIND_SPECIAL_DYLIB_FLAT_LOOKUP              -2
+CONSTANT: BIND_SPECIAL_DYLIB_WEAK_LOOKUP              -3
 
 CONSTANT: BIND_SYMBOL_FLAGS_WEAK_IMPORT                   0x1
 CONSTANT: BIND_SYMBOL_FLAGS_NON_WEAK_DEFINITION           0x8
@@ -504,6 +573,9 @@ CONSTANT: BIND_OPCODE_DO_BIND                                 0x90
 CONSTANT: BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB                   0xA0
 CONSTANT: BIND_OPCODE_DO_BIND_ADD_ADDR_IMM_SCALED             0xB0
 CONSTANT: BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB        0xC0
+CONSTANT: BIND_OPCODE_THREADED                                0xD0
+CONSTANT: BIND_SUBOPCODE_THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB 0x00
+CONSTANT: BIND_SUBOPCODE_THREADED_APPLY                       0x01
 
 CONSTANT: EXPORT_SYMBOL_FLAGS_KIND_MASK                   0x03
 CONSTANT: EXPORT_SYMBOL_FLAGS_KIND_REGULAR                0x00
@@ -511,6 +583,7 @@ CONSTANT: EXPORT_SYMBOL_FLAGS_KIND_THREAD_LOCAL           0x01
 CONSTANT: EXPORT_SYMBOL_FLAGS_WEAK_DEFINITION             0x04
 CONSTANT: EXPORT_SYMBOL_FLAGS_INDIRECT_DEFINITION         0x08
 CONSTANT: EXPORT_SYMBOL_FLAGS_HAS_SPECIALIZATIONS         0x10
+CONSTANT: EXPORT_SYMBOL_FLAGS_STATIC_RESOLVER             0x20
 
 STRUCT: symseg_command
     { cmd        uint }
@@ -920,6 +993,7 @@ TYPED: 64-bit? ( macho: mach_header_32/64 -- ? )
         { LC_DATA_IN_CODE [ data_in_code_entry ] }
         { LC_SOURCE_VERSION [ source_version_command ] }
         { LC_DYLIB_CODE_SIGN_DRS [ linkedit_data_command ] }
+        { LC_BUILD_VERSION [ build_version_command ] }
     } case ;
 
 : read-command ( cmd -- next-cmd )