From 175454e2aaef10a4e665467e32bc879e9ca5c174 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Fri, 18 Apr 2025 13:45:33 +0800 Subject: [PATCH 1/3] Add Mac Catalyst to the build set. --- .github/workflows/ci.yaml | 2 +- .github/workflows/release.yaml | 2 +- Makefile | 111 +++++++++++++--------- patch/libffi.patch | 167 +++++++++++++++++++++++++++------ patch/mpdecimal.patch | 12 ++- patch/xz.patch | 28 ++++-- 6 files changed, 232 insertions(+), 90 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b25183e..b28207e 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -20,7 +20,7 @@ jobs: runs-on: macOS-latest strategy: matrix: - target: [ "iOS", "tvOS", "watchOS", "visionOS" ] + target: [ "iOS", "MacCatalyst", "tvOS", "visionOS", "watchOS" ] steps: - name: Checkout uses: actions/checkout@v4.2.2 diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index fc315bb..be336f8 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -16,7 +16,7 @@ jobs: BUILD_NUMBER: ${{ steps.build-vars.outputs.BUILD_NUMBER }} strategy: matrix: - target: [ "iOS", "tvOS", "watchOS", "visionOS" ] + target: [ "iOS", "MacCatalyst", "tvOS", "visionOS", "watchOS" ] steps: - name: Checkout uses: actions/checkout@v4.2.2 diff --git a/Makefile b/Makefile index ab3b3ea..a43b9da 100644 --- a/Makefile +++ b/Makefile @@ -1,41 +1,46 @@ # # Useful targets: -# - all - build everything -# - iOS - build everything for iOS -# - tvOS - build everything for tvOS -# - watchOS - build everything for watchOS -# - visionOS - build everything for visionOS -# - BZip2 - build BZip2 for all platforms -# - BZip2-iOS - build BZip2 for iOS -# - BZip2-tvOS - build BZip2 for tvOS -# - BZip2-watchOS - build BZip2 for watchOS -# - BZip2-visionOS - build BZip2 for visionOS -# - XZ - build XZ for all platforms -# - XZ-iOS - build XZ for iOS -# - XZ-tvOS - build XZ for tvOS -# - XZ-watchOS - build XZ for watchOS -# - XZ-visionOS - build XZ for xrOS -# - OpenSSL - build OpenSSL for all platforms -# - OpenSSL-iOS - build OpenSSL for iOS -# - OpenSSL-tvOS - build OpenSSL for tvOS -# - OpenSSL-watchOS - build OpenSSL for watchOS -# - OpenSSL-visionOS - build OpenSSL for visionOS -# - mpdecimal - build mpdecimal for all platforms -# - mpdecimal-iOS - build mpdecimal for iOS -# - mpdecimal-tvOS - build mpdecimal for tvOS -# - mpdecimal-watchOS - build mpdecimal for watchOS -# - mpdecimal-visionOS - build mpdecimal for visionOS -# - libFFI-iOS - build libFFI for iOS -# - libFFI-tvOS - build libFFI for tvOS -# - libFFI-watchOS - build libFFI for watchOS -# - libFFI-visionOS - build libFFI for visionOS +# - all - build everything +# - iOS - build everything for iOS +# - tvOS - build everything for tvOS +# - watchOS - build everything for watchOS +# - visionOS - build everything for visionOS +# - BZip2 - build BZip2 for all platforms +# - BZip2-iOS - build BZip2 for iOS +# - BZip2-MacCatalyst - build BZip2 for MacCatalyst +# - BZip2-tvOS - build BZip2 for tvOS +# - BZip2-watchOS - build BZip2 for watchOS +# - BZip2-visionOS - build BZip2 for visionOS +# - XZ - build XZ for all platforms +# - XZ-iOS - build XZ for iOS +# - XZ-MacCatalyst - build XZ for MacCatalyst +# - XZ-tvOS - build XZ for tvOS +# - XZ-watchOS - build XZ for watchOS +# - XZ-visionOS - build XZ for xrOS +# - OpenSSL - build OpenSSL for all platforms +# - OpenSSL-iOS - build OpenSSL for iOS +# - OpenSSL-MacCatalyst - build OpenSSL for MacCatalyst +# - OpenSSL-tvOS - build OpenSSL for tvOS +# - OpenSSL-watchOS - build OpenSSL for watchOS +# - OpenSSL-visionOS - build OpenSSL for visionOS +# - mpdecimal - build mpdecimal for all platforms +# - mpdecimal-iOS - build mpdecimal for iOS +# - mpdecimal-MacCatalyst - build mpdecimal for MacCatalyst +# - mpdecimal-tvOS - build mpdecimal for tvOS +# - mpdecimal-watchOS - build mpdecimal for watchOS +# - mpdecimal-visionOS - build mpdecimal for visionOS +# - libFFI-iOS - build libFFI for iOS +# - libFFI-MacCatalyst - build libFFI for MacCatalyst +# - libFFI-tvOS - build libFFI for tvOS +# - libFFI-watchOS - build libFFI for watchOS +# - libFFI-visionOS - build libFFI for visionOS # Current directory PROJECT_DIR=$(shell pwd) # Supported OS and products PRODUCTS=BZip2 XZ OpenSSL libFFI -OS_LIST=iOS tvOS watchOS visionOS +OS_LIST=iOS MacCatalyst tvOS watchOS visionOS # The versions to compile by default. # In practice, these should be @@ -65,32 +70,48 @@ CURL_FLAGS=--disable --fail --location --create-dirs --progress-bar # iOS targets TARGETS-iOS=iphonesimulator.x86_64 iphonesimulator.arm64 iphoneos.arm64 TRIPLE_OS-iOS=ios +TRIPLE_SUFFIX-iphonesimulator=-simulator VERSION_MIN-iOS=13.0 CFLAGS-iOS=-mios-version-min=$(VERSION_MIN-iOS) +LIBFFI_HEADER_DIR-iOS=ios + +# MacCatalyst targets +TARGETS-MacCatalyst=macabi.x86_64 macabi.arm64 +TRIPLE_OS-MacCatalyst=ios +TRIPLE_SUFFIX-macabi=-macabi +VERSION_MIN-MacCatalyst=14.2 +CFLAGS-MacCatalyst=-mios-version-min=$(VERSION_MIN-MacCatalyst) +LIBFFI_HEADER_DIR-MacCatalyst=macabi # tvOS targets TARGETS-tvOS=appletvsimulator.x86_64 appletvsimulator.arm64 appletvos.arm64 TRIPLE_OS-tvOS=tvos +TRIPLE_SUFFIX-appletvsimulator=-simulator VERSION_MIN-tvOS=9.0 CFLAGS-tvOS=-mtvos-version-min=$(VERSION_MIN-tvOS) PYTHON_CONFIGURE-tvOS=ac_cv_func_sigaltstack=no - -# watchOS targets -TARGETS-watchOS=watchsimulator.x86_64 watchsimulator.arm64 watchos.arm64_32 -TRIPLE_OS-watchOS=watchos -VERSION_MIN-watchOS=4.0 -CFLAGS-watchOS=-mwatchos-version-min=$(VERSION_MIN-watchOS) -PYTHON_CONFIGURE-watchOS=ac_cv_func_sigaltstack=no +LIBFFI_HEADER_DIR-tvOS=tvos # visionOS targets TARGETS-visionOS=xrsimulator.arm64 xros.arm64 TRIPLE_OS-visionOS=xros +TRIPLE_SUFFIX-xrsimulator=-simulator VERSION_MIN-visionOS=2.0 # visionOS doesn't expose -mxros-version-min or similar; it uses the version # number in the -target triple, or a definition like: # CFLAGS-visionOS=-arch arm64 -mtargetos=xros$(VERSION_MIN-visionOS) # For consistency with existing tooling, we use the -target form. PYTHON_CONFIGURE-visionOS=ac_cv_func_sigaltstack=no +LIBFFI_HEADER_DIR-visionOS=visionos + +# watchOS targets +TARGETS-watchOS=watchsimulator.x86_64 watchsimulator.arm64 watchos.arm64_32 +TRIPLE_OS-watchOS=watchos +TRIPLE_SUFFIX-watchsimulator=-simulator +VERSION_MIN-watchOS=4.0 +CFLAGS-watchOS=-mwatchos-version-min=$(VERSION_MIN-watchOS) +PYTHON_CONFIGURE-watchOS=ac_cv_func_sigaltstack=no +LIBFFI_HEADER_DIR-watchOS=watchos # The architecture of the machine doing the build HOST_ARCH=$(shell uname -m) @@ -184,15 +205,12 @@ define build-target target=$1 os=$2 -# $(target) can be broken up into is composed of $(SDK).$(ARCH) -SDK-$(target)=$$(basename $(target)) +# $(target) can be broken up into is composed of $(ABI).$(ARCH) +ABI-$(target)=$$(basename $(target)) +SDK-$(target)=$$(subst macabi,macosx,$$(basename $(target))) ARCH-$(target)=$$(subst .,,$$(suffix $(target))) -ifeq ($$(findstring simulator,$$(SDK-$(target))),) -TARGET_TRIPLE-$(target)=$$(ARCH-$(target))-apple-$$(TRIPLE_OS-$(os))$$(VERSION_MIN-$(os)) -else -TARGET_TRIPLE-$(target)=$$(ARCH-$(target))-apple-$$(TRIPLE_OS-$(os))$$(VERSION_MIN-$(os))-simulator -endif +TARGET_TRIPLE-$(target)=$$(ARCH-$(target))-apple-$$(TRIPLE_OS-$(os))$$(VERSION_MIN-$(os))$$(TRIPLE_SUFFIX-$$(ABI-$(target))) SDK_ROOT-$(target)=$$(shell xcrun --sdk $$(SDK-$(target)) --show-sdk-path) CC-$(target)=xcrun --sdk $$(SDK-$(target)) clang -target $$(TARGET_TRIPLE-$(target)) @@ -425,7 +443,7 @@ mpdecimal-$(target): $$(MPDECIMAL_DIST-$(target)) # The configure step is performed as part of the OS-level build. LIBFFI_SRCDIR-$(os)=build/$(os)/libffi-$(LIBFFI_VERSION) -LIBFFI_SRCDIR-$(target)=$$(LIBFFI_SRCDIR-$(os))/build_$$(SDK-$(target))-$$(ARCH-$(target)) +LIBFFI_SRCDIR-$(target)=$$(LIBFFI_SRCDIR-$(os))/build_$$(ABI-$(target))-$$(ARCH-$(target)) LIBFFI_BUILD_LIB-$(target)=$$(LIBFFI_SRCDIR-$(target))/.libs/libffi.a LIBFFI_INSTALL-$(target)=$(PROJECT_DIR)/install/$(os)/$(target)/libffi-$(LIBFFI_VERSION) LIBFFI_LIB-$(target)=$$(LIBFFI_INSTALL-$(target))/lib/libffi.a @@ -445,7 +463,7 @@ $$(LIBFFI_LIB-$(target)): $$(LIBFFI_BUILD_LIB-$(target)) # Copy the set of platform headers cp -f -r $$(LIBFFI_SRCDIR-$(os))/darwin_common/include \ $$(LIBFFI_INSTALL-$(target)) - cp -f -r $$(LIBFFI_SRCDIR-$(os))/darwin_$$(TRIPLE_OS-$(os))/include/* \ + cp -f -r $$(LIBFFI_SRCDIR-$(os))/darwin_$$(LIBFFI_HEADER_DIR-$(os))/include/* \ $$(LIBFFI_INSTALL-$(target))/include $$(LIBFFI_DIST-$(target)): $$(LIBFFI_LIB-$(target)) @@ -464,6 +482,7 @@ libFFI-$(target): $$(LIBFFI_DIST-$(target)) .PHONY: vars-$(target) vars-$(target): @echo ">>> Environment variables for $(target)" + @echo "ABI-$(target): $$(ABI-$(target))" @echo "SDK-$(target): $$(SDK-$(target))" @echo "ARCH-$(target): $$(ARCH-$(target))" @echo "TARGET_TRIPLE-$(target): $$(TARGET_TRIPLE-$(target))" diff --git a/patch/libffi.patch b/patch/libffi.patch index c7cb41a..165f04e 100644 --- a/patch/libffi.patch +++ b/patch/libffi.patch @@ -1,39 +1,69 @@ -diff -ur libffi-3.4.7 2/config.sub libffi-3.4.7/config.sub ---- libffi-3.4.7 2/config.sub 2024-12-13 04:38:19 -+++ libffi-3.4.7/config.sub 2025-04-12 17:44:40 +diff -ru libffi-3.4.7-orig/config.sub libffi-3.4.7/config.sub +--- libffi-3.4.7-orig/config.sub 2024-12-13 18:38:19 ++++ libffi-3.4.7/config.sub 2025-04-18 13:12:04 @@ -1742,7 +1742,7 @@ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ | hiux* | abug | nacl* | netware* | windows* \ - | os9* | macos* | osx* | ios* | tvos* | watchos* \ -+ | os9* | macos* | osx* | ios* | tvos* | watchos* | xros* \ ++ | os9* | macos* | macabi | osx* | ios* | tvos* | watchos* | xros* \ | mpw* | magic* | mmixware* | mon960* | lnews* \ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ | aos* | aros* | cloudabi* | sortix* | twizzler* \ -@@ -1864,7 +1864,7 @@ +@@ -1864,8 +1864,8 @@ ;; os2-emx-) ;; - ios*-simulator* | tvos*-simulator* | watchos*-simulator*) -+ ios*-simulator* | tvos*-simulator* | watchos*-simulator* | xros*-simulator*) - ;; +- ;; ++ ios*-simulator* | ios*-macabi* | tvos*-simulator* | watchos*-simulator* | xros*-simulator*) ++ ;; *-eabi*- | *-gnueabi*-) ;; -diff -ur libffi-3.4.7 2/generate-darwin-source-and-headers.py libffi-3.4.7/generate-darwin-source-and-headers.py ---- libffi-3.4.7 2/generate-darwin-source-and-headers.py 2024-06-01 12:42:02 -+++ libffi-3.4.7/generate-darwin-source-and-headers.py 2025-04-12 18:02:51 -@@ -152,8 +152,22 @@ - sdk = 'watchos' - arch = 'arm64_32' + none--*) +diff -ru libffi-3.4.7-orig/generate-darwin-source-and-headers.py libffi-3.4.7/generate-darwin-source-and-headers.py +--- libffi-3.4.7-orig/generate-darwin-source-and-headers.py 2024-06-02 01:42:02 ++++ libffi-3.4.7/generate-darwin-source-and-headers.py 2025-04-18 13:06:46 +@@ -10,7 +10,6 @@ + class Platform(object): + pass + +- + class i386_platform(Platform): + arch = 'i386' + +@@ -96,6 +95,20 @@ + version_min = '-mmacosx-version-min=11.0' + + ++class maccatalyst_x86_64_platform(x86_64_platform): ++ target = 'x86_64-apple-ios-macabi' ++ directory = 'darwin_macabi' ++ sdk = 'macosx' ++ version_min = '-mios-version-min=14.2' ++ ++ ++class maccatalyst_arm64_platform(arm64_platform): ++ target = 'arm64-apple-ios-macabi' ++ directory = 'darwin_macabi' ++ sdk = 'macosx' ++ version_min = '-mios-version-min=14.2' ++ ++ + class tvos_simulator_x86_64_platform(x86_64_platform): + target = 'x86_64-apple-tvos-simulator' + directory = 'darwin_tvos' +@@ -154,6 +167,21 @@ version_min = '-mwatchos-version-min=4.0' -+ + + +class visionos_simulator_arm64_platform(arm64_platform): + target = 'arm64-apple-xros2.0-simulator' + directory = 'darwin_xros' + sdk = 'xrsimulator' + version_min = '' - - ++ ++ +class visionos_device_arm64_platform(arm64_platform): + target = 'arm64-apple-xros2.0' + directory = 'darwin_xros' @@ -45,17 +75,65 @@ diff -ur libffi-3.4.7 2/generate-darwin-source-and-headers.py libffi-3.4.7/gener def mkdir_p(path): try: os.makedirs(path) -@@ -243,6 +257,7 @@ +@@ -205,7 +233,8 @@ + def xcrun_cmd(cmd): + return 'xcrun -sdk %s %s -target %s' % (platform.sdk, cmd, platform.target) + +- tag='%s-%s' % (platform.sdk, platform.arch) ++ abi = "macabi" if platform.target.endswith("-macabi") else platform.sdk ++ tag='%s-%s' % (abi, platform.arch) + build_dir = 'build_%s' % tag + mkdir_p(build_dir) + env = dict(CC=xcrun_cmd('clang'), +@@ -219,7 +248,7 @@ + "../configure", + f"--host={platform.target}", + ] + ( +- [] if platform.sdk == "macosx" else [f"--build={os.uname().machine}-apple-darwin"] ++ [] if abi == "macosx" else [f"--build={os.uname().machine}-apple-darwin"] + ), + env=env + ) +@@ -240,19 +269,26 @@ + + def generate_source_and_headers( + generate_osx=True, ++ generate_maccatalyst=True, generate_ios=True, generate_tvos=True, generate_watchos=True, -+ generate_visionos=True ++ generate_visionos=True, ++ enable_32bit=False, ): copy_files('src', 'darwin_common/src', pattern='*.c') copy_files('include', 'darwin_common/include', pattern='*.h') -@@ -266,6 +281,9 @@ + + if generate_ios: +- copy_src_platform_files(ios_simulator_i386_platform) ++ if enable_32bit: ++ copy_src_platform_files(ios_simulator_i386_platform) ++ copy_src_platform_files(ios_device_armv7_platform) + copy_src_platform_files(ios_simulator_x86_64_platform) + copy_src_platform_files(ios_simulator_arm64_platform) +- copy_src_platform_files(ios_device_armv7_platform) + copy_src_platform_files(ios_device_arm64_platform) ++ if generate_maccatalyst: ++ copy_src_platform_files(maccatalyst_x86_64_platform) ++ copy_src_platform_files(maccatalyst_arm64_platform) + if generate_osx: + copy_src_platform_files(desktop_x86_64_platform) + copy_src_platform_files(desktop_arm64_platform) +@@ -261,20 +297,28 @@ + copy_src_platform_files(tvos_simulator_arm64_platform) + copy_src_platform_files(tvos_device_arm64_platform) + if generate_watchos: +- copy_src_platform_files(watchos_simulator_i386_platform) ++ if enable_32bit: ++ copy_src_platform_files(watchos_simulator_i386_platform) ++ copy_src_platform_files(watchos_device_armv7k_platform) + copy_src_platform_files(watchos_simulator_x86_64_platform) copy_src_platform_files(watchos_simulator_arm64_platform) - copy_src_platform_files(watchos_device_armv7k_platform) +- copy_src_platform_files(watchos_device_armv7k_platform) copy_src_platform_files(watchos_device_arm64_32_platform) + if generate_visionos: + copy_src_platform_files(visionos_simulator_arm64_platform) @@ -63,9 +141,32 @@ diff -ur libffi-3.4.7 2/generate-darwin-source-and-headers.py libffi-3.4.7/gener platform_headers = collections.defaultdict(set) -@@ -288,6 +306,9 @@ + if generate_ios: +- build_target(ios_simulator_i386_platform, platform_headers) ++ if enable_32bit: ++ build_target(ios_simulator_i386_platform, platform_headers) ++ build_target(ios_device_armv7_platform, platform_headers) + build_target(ios_simulator_x86_64_platform, platform_headers) + build_target(ios_simulator_arm64_platform, platform_headers) +- build_target(ios_device_armv7_platform, platform_headers) + build_target(ios_device_arm64_platform, platform_headers) ++ if generate_maccatalyst: ++ build_target(maccatalyst_x86_64_platform, platform_headers) ++ build_target(maccatalyst_arm64_platform, platform_headers) + if generate_osx: + build_target(desktop_x86_64_platform, platform_headers) + build_target(desktop_arm64_platform, platform_headers) +@@ -283,11 +327,15 @@ + build_target(tvos_simulator_arm64_platform, platform_headers) + build_target(tvos_device_arm64_platform, platform_headers) + if generate_watchos: +- build_target(watchos_simulator_i386_platform, platform_headers) ++ if enable_32bit: ++ build_target(watchos_simulator_i386_platform, platform_headers) ++ build_target(watchos_device_armv7k_platform, platform_headers) + build_target(watchos_simulator_x86_64_platform, platform_headers) build_target(watchos_simulator_arm64_platform, platform_headers) - build_target(watchos_device_armv7k_platform, platform_headers) +- build_target(watchos_device_armv7k_platform, platform_headers) build_target(watchos_device_arm64_32_platform, platform_headers) + if generate_visionos: + build_target(visionos_simulator_arm64_platform, platform_headers) @@ -73,11 +174,16 @@ diff -ur libffi-3.4.7 2/generate-darwin-source-and-headers.py libffi-3.4.7/gener mkdir_p('darwin_common/include') for header_name, tag_tuples in platform_headers.items(): -@@ -302,11 +323,13 @@ +@@ -299,14 +347,20 @@ + if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('--only-ios', action='store_true', default=False) ++ parser.add_argument('--only-maccatalyst', action='store_true', default=False) parser.add_argument('--only-osx', action='store_true', default=False) parser.add_argument('--only-tvos', action='store_true', default=False) - parser.add_argument('--only-watchos', action='store_true', default=False) + parser.add_argument('--only-visionos', action='store_true', default=False) + parser.add_argument('--only-watchos', action='store_true', default=False) ++ parser.add_argument('--enable-32bit', action='store_true', default=False) args = parser.parse_args() generate_source_and_headers( @@ -85,10 +191,11 @@ diff -ur libffi-3.4.7 2/generate-darwin-source-and-headers.py libffi-3.4.7/gener - generate_ios=not args.only_osx and not args.only_tvos and not args.only_watchos, - generate_tvos=not args.only_ios and not args.only_osx and not args.only_watchos, - generate_watchos=not args.only_ios and not args.only_osx and not args.only_tvos, -+ generate_osx=not args.only_ios and not args.only_tvos and not args.only_watchos and not args.only_visionos, -+ generate_ios=not args.only_osx and not args.only_tvos and not args.only_watchos and not args.only_visionos, -+ generate_tvos=not args.only_ios and not args.only_osx and not args.only_watchos and not args.only_visionos, -+ generate_watchos=not args.only_ios and not args.only_osx and not args.only_tvos and not args.only_visionos, -+ generate_visionos=not args.only_ios and not args.only_osx and not args.only_tvos and not args.only_watchos, ++ generate_osx=args.only_osx, ++ generate_maccatalyst=args.only_maccatalyst, ++ generate_ios=args.only_ios, ++ generate_tvos=args.only_tvos, ++ generate_watchos=args.only_watchos, ++ generate_visionos=args.only_visionos, ++ enable_32bit=args.enable_32bit, ) - diff --git a/patch/mpdecimal.patch b/patch/mpdecimal.patch index 0a8a187..e5d41f2 100644 --- a/patch/mpdecimal.patch +++ b/patch/mpdecimal.patch @@ -1,6 +1,6 @@ diff -ur mpdecimal-4.0.0-orig/config.sub mpdecimal-4.0.0/config.sub --- mpdecimal-4.0.0-orig/config.sub 2024-01-10 08:25:00 -+++ mpdecimal-4.0.0/config.sub 2024-07-24 13:16:35 ++++ mpdecimal-4.0.0/config.sub 2025-04-18 11:50:23 @@ -1127,7 +1127,7 @@ xscale-* | xscalee[bl]-*) cpu=`echo "$cpu" | sed 's/^xscale/arm/'` @@ -10,17 +10,21 @@ diff -ur mpdecimal-4.0.0-orig/config.sub mpdecimal-4.0.0/config.sub cpu=aarch64 ;; -@@ -1713,3 +1713,3 @@ +@@ -1710,7 +1710,7 @@ + | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ + | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ | hiux* | abug | nacl* | netware* | windows* \ - | os9* | macos* | osx* | ios* | tvos* | watchos* \ -+ | os9* | macos* | osx* | ios* | tvos* | watchos* | xros* \ ++ | os9* | macos* | macabi | osx* | ios* | tvos* | watchos* | xros* \ | mpw* | magic* | mmixware* | mon960* | lnews* \ + | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ + | aos* | aros* | cloudabi* | sortix* | twizzler* \ @@ -1792,6 +1792,8 @@ os2-emx) ;; *-eabi* | *-gnueabi*) + ;; -+ ios*-simulator | tvos*-simulator | watchos*-simulator | xros*-simulator) ++ ios*-simulator | ios*-macabi | tvos*-simulator | watchos*-simulator | xros*-simulator) ;; none-coff* | none-elf*) # None (no kernel, i.e. freestanding / bare metal), diff --git a/patch/xz.patch b/patch/xz.patch index f57b16b..42e3ae2 100644 --- a/patch/xz.patch +++ b/patch/xz.patch @@ -1,7 +1,7 @@ -diff -ru xz-5.4.7-orig/build-aux/config.sub xz-5.4.7/build-aux/config.sub ---- xz-5.4.7-orig/build-aux/config.sub 2024-05-29 23:13:51 -+++ xz-5.4.7/build-aux/config.sub 2024-07-24 14:20:00 -@@ -1127,7 +1127,7 @@ +diff -ur xz-5.6.4-orig/build-aux/config.sub xz-5.6.4/build-aux/config.sub +--- xz-5.6.4-orig/build-aux/config.sub 2025-01-23 17:58:05 ++++ xz-5.6.4/build-aux/config.sub 2025-04-18 11:48:46 +@@ -1194,7 +1194,7 @@ xscale-* | xscalee[bl]-*) cpu=`echo "$cpu" | sed 's/^xscale/arm/'` ;; @@ -10,16 +10,28 @@ diff -ru xz-5.4.7-orig/build-aux/config.sub xz-5.4.7/build-aux/config.sub cpu=aarch64 ;; -@@ -2150,2 +2150,3 @@ +@@ -2033,6 +2033,7 @@ + | lynxos* \ + | mach* \ + | macos* \ ++ | macabi \ + | magic* \ + | mbr* \ + | midipix* \ +@@ -2148,6 +2149,7 @@ + | winnt* \ + | xenix* \ | xray* \ + | xros* \ | zephyr* \ -@@ -1865,6 +1865,8 @@ - os2-emx-) + | zvmoe* ) + ;; +@@ -2248,6 +2250,8 @@ + rtmk-nova-) ;; *-eabi*- | *-gnueabi*-) + ;; -+ ios*-simulator- | tvos*-simulator- | watchos*-simulator- | xros*-simulator-) ++ ios*-simulator- | ios*-macabi- | tvos*-simulator- | watchos*-simulator- | xros*-simulator-) ;; none--*) # None (no kernel, i.e. freestanding / bare metal), From bfcbebdeed885c848cd291621e6928c67768f555 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Fri, 18 Apr 2025 13:49:13 +0800 Subject: [PATCH 2/3] Correct regression in visionOS compile target. --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index a43b9da..b518423 100644 --- a/Makefile +++ b/Makefile @@ -102,7 +102,7 @@ VERSION_MIN-visionOS=2.0 # CFLAGS-visionOS=-arch arm64 -mtargetos=xros$(VERSION_MIN-visionOS) # For consistency with existing tooling, we use the -target form. PYTHON_CONFIGURE-visionOS=ac_cv_func_sigaltstack=no -LIBFFI_HEADER_DIR-visionOS=visionos +LIBFFI_HEADER_DIR-visionOS=xros # watchOS targets TARGETS-watchOS=watchsimulator.x86_64 watchsimulator.arm64 watchos.arm64_32 From 4db03a8cc0178c6dee221635c1e06e61437d7dcb Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Fri, 18 Apr 2025 13:52:12 +0800 Subject: [PATCH 3/3] Disable fail-fast. --- .github/workflows/ci.yaml | 1 + .github/workflows/release.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b28207e..744d8f7 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -19,6 +19,7 @@ jobs: name: ${{ matrix.target }} runs-on: macOS-latest strategy: + fail-fast: false matrix: target: [ "iOS", "MacCatalyst", "tvOS", "visionOS", "watchOS" ] steps: diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index be336f8..1dd0949 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -15,6 +15,7 @@ jobs: PACKAGE_VERSION: ${{ steps.build-vars.outputs.PACKAGE_VERSION }} BUILD_NUMBER: ${{ steps.build-vars.outputs.BUILD_NUMBER }} strategy: + fail-fast: false matrix: target: [ "iOS", "MacCatalyst", "tvOS", "visionOS", "watchOS" ] steps: