APPLE: Update to latest SDK

This also needs a newer LLVM with an additional fix in compiler-rt.
osxcross is also updated.
This commit is contained in:
Le Philousophe
2025-11-11 16:29:02 +00:00
parent ee6bb2a91c
commit 4648bf5766
27 changed files with 116 additions and 53 deletions
+2 -2
View File
@@ -410,7 +410,7 @@ def macosx_arm64():
# configure script doesn't compile discord check with proper flags
platform.env["DISCORD_LIBS"] = "-framework AppKit"
platform.configureargs.append("--host=aarch64-apple-darwin24.5")
platform.configureargs.append("--host=aarch64-apple-darwin25.1")
platform.buildconfigureargs = {
builds.ScummVMBuild: [ "--enable-static",
"--with-staticlib-prefix=${DESTDIR}/${PREFIX}",
@@ -451,7 +451,7 @@ def macosx_x86_64():
# configure script doesn't compile discord check with proper flags
platform.env["DISCORD_LIBS"] = "-framework AppKit"
platform.configureargs.append("--host=x86_64-apple-darwin24.5")
platform.configureargs.append("--host=x86_64-apple-darwin25.1")
platform.buildconfigureargs = {
builds.ScummVMBuild: [ "--enable-static",
"--with-staticlib-prefix=${DESTDIR}/${PREFIX}",
+1 -1
View File
@@ -166,7 +166,7 @@ VERSIONS = {
('./toolchains/apple-common/packages/cctools-port/build.sh', 'CCTOOLS_PORT'): {
'check': 'git commit',
'repository': 'https://github.com/tpoechtrager/cctools-port.git',
'branch': '1024.3-ld64-955.13',
'branch': '1030.6.3-ld64-956.6',
},
('./toolchains/apple-common/packages/cctools-port/build.sh', 'LDID'): {
'check': 'git commit',
@@ -1,6 +1,6 @@
#! /bin/sh
CCTOOLS_PORT_VERSION=eea1c9ee2a3a386d96898b39feaa62a58a33f82a
CCTOOLS_PORT_VERSION=1cce4a06877992f708b2e0e2ab217a0cfb923a4f
export LDID_VERSION=4bf8f4d60384a0693dbbe2084ce62a35bfeb87ab
export LIBDISPATCH_VERSION=323b9b4e0ca05d6c56a0c2f2d7d8d47363e612b7
@@ -51,6 +51,13 @@ do_http_fetch cmake "https://github.com/llvm/llvm-project/releases/download/llvm
mv "$(pwd)" ../cmake
cd ..
if [ "${CLANG_MAJOR}" -ge 17 ]; then
# Fetch third-party
do_http_fetch third-party "https://github.com/llvm/llvm-project/releases/download/llvmorg-${CLANG_VERSION}/third-party-${CLANG_VERSION}.src.tar.xz" 'tar xJf'
mv "$(pwd)" ../third-party
cd ..
fi
do_http_fetch compiler-rt "https://github.com/llvm/llvm-project/releases/download/llvmorg-${CLANG_VERSION}/compiler-rt-${CLANG_VERSION}.src.tar.xz" 'tar xJf'
# We try to support as much versions as we can so fallback on a common ground and fix it
@@ -86,6 +93,9 @@ fi
# Don't build for osx
sed -i 's/set(BUILTIN_SUPPORTED_OS .*)$/set(BUILTIN_SUPPORTED_OS )/' cmake/builtin-config-ix.cmake
# armv7 fails to build with tvos but is misdetected
sed -i '/set(DARWIN_tvos_BUILTIN_ALL_POSSIBLE_ARCHS/s/ armv7//' cmake/builtin-config-ix.cmake
# Disable all modules by default, we will enable builtins afterwards
sed -i '/option(COMPILER_RT_BUILD_/s/ON)/OFF)/' CMakeLists.txt
@@ -1,6 +1,6 @@
#! /bin/sh
OSXCROSS_VERSION=3b544be4cc879afaee041207af99c7a380634a44
OSXCROSS_VERSION=121ce150c7857a9474dfff8a8e431482806b3e1b
PACKAGE_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
HELPERS_DIR=$PACKAGE_DIR/../..
@@ -1,6 +1,6 @@
#! /bin/sh
OSXCROSS_VERSION=3b544be4cc879afaee041207af99c7a380634a44
OSXCROSS_VERSION=121ce150c7857a9474dfff8a8e431482806b3e1b
export XAR_VERSION=5fa4675419cfec60ac19a9c7f7c2d0e7c831a497
export LIBDISPATCH_VERSION=323b9b4e0ca05d6c56a0c2f2d7d8d47363e612b7
@@ -1,7 +1,7 @@
From b0112ce3d8ce82bb74ef7b7b47be4b44c6aaac6e Mon Sep 17 00:00:00 2001
From 062777073b2f3251cf90d0769589f8b9d2a694ea Mon Sep 17 00:00:00 2001
From: Le Philousophe <lephilousophe@users.noreply.github.com>
Date: Sun, 24 Jan 2021 19:15:52 +0100
Subject: [PATCH 1/4] Set versions
Subject: [PATCH 1/5] Set versions
---
tools/tools.sh | 4 ++--
@@ -30,5 +30,5 @@ index f903f0b..12305ea 100644
if [ $f_res -eq 1 ]; then
pushd $CURRENT_BUILD_PROJECT_NAME &>/dev/null
--
2.49.1
2.48.1
@@ -1,7 +1,7 @@
From fddc0832c78cd41cbaaa4613859acfbec8223b3d Mon Sep 17 00:00:00 2001
From 7ffb02d472f5701fd17be062c2d5659a0bdd0f6d Mon Sep 17 00:00:00 2001
From: Le Philousophe <lephilousophe@users.noreply.github.com>
Date: Sat, 17 Sep 2022 11:36:50 +0200
Subject: [PATCH 2/4] Handle MacPorts variants
Subject: [PATCH 2/5] Handle MacPorts variants
---
tools/osxcross-macports | 13 ++++++++++---
@@ -48,5 +48,5 @@ index cd8e7eb..f52e805 100755
fi
if [ -z "$pkg" ]; then
--
2.49.1
2.48.1
@@ -1,7 +1,7 @@
From c57255de8f2a4369204e14c3cd12aacfc03097db Mon Sep 17 00:00:00 2001
From 6cc29752b76506be89987ac7d664530f61f23246 Mon Sep 17 00:00:00 2001
From: Le Philousophe <lephilousophe@users.noreply.github.com>
Date: Tue, 25 Jun 2024 05:56:44 +0000
Subject: [PATCH 3/4] Disable ORC which uses C++17 features on older SDKs
Subject: [PATCH 3/5] Disable ORC which uses C++17 features on older SDKs
---
build_compiler_rt.sh | 6 ++++++
@@ -25,5 +25,5 @@ index 5ce8697..17c0e6c 100755
pushd $build_dir &>/dev/null
--
2.49.1
2.48.1
@@ -1,7 +1,7 @@
From 00ec2f88f739e4b0aa439f56d62cd4f02e038358 Mon Sep 17 00:00:00 2001
From 7c3c611d9c02fecf3fe37d6db8d96db93364efec Mon Sep 17 00:00:00 2001
From: Le Philousophe <lephilousophe@users.noreply.github.com>
Date: Thu, 24 Apr 2025 08:31:19 +0200
Subject: [PATCH 4/4] Update cctools-port to improve compatibility
Subject: [PATCH 4/5] Update cctools-port to improve compatibility
Latest libraries from MacPorts need objc_msgSend support
@@ -11,10 +11,10 @@ Latest cctools-port need libdispatch
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/build.sh b/build.sh
index 68e4210..2130744 100755
index b87522b..4bb1f8c 100755
--- a/build.sh
+++ b/build.sh
@@ -144,10 +144,24 @@ if [ $NEED_TAPI_SUPPORT -eq 1 ]; then
@@ -145,10 +145,24 @@ if [ $NEED_TAPI_SUPPORT -eq 1 ]; then
fi
fi
@@ -41,7 +41,7 @@ index 68e4210..2130744 100755
get_sources \
https://github.com/tpoechtrager/cctools-port.git \
@@ -161,6 +175,7 @@ if [ $f_res -eq 1 ]; then
@@ -162,6 +176,7 @@ if [ $f_res -eq 1 ]; then
if [ $NEED_TAPI_SUPPORT -eq 1 ]; then
CONFFLAGS+="--with-libtapi=$TARGET_DIR "
fi
@@ -50,5 +50,5 @@ index 68e4210..2130744 100755
[ -n "$DISABLE_CLANG_AS" ] && CONFFLAGS+="--disable-clang-as "
[ -n "$DISABLE_LTO_SUPPORT" ] && CONFFLAGS+="--disable-lto-support "
--
2.49.1
2.48.1
@@ -0,0 +1,51 @@
From 716cfe22487980cf51e46d66296a9f9b70b1221e Mon Sep 17 00:00:00 2001
From: Le Philousophe <lephilousophe@users.noreply.github.com>
Date: Sun, 2 Nov 2025 18:51:37 +0100
Subject: [PATCH 5/5] Fix build on MacOS i386
---
build_compiler_rt.sh | 6 ++++++
patches/compiler-rt_i386_type.patch | 14 ++++++++++++++
2 files changed, 20 insertions(+)
create mode 100644 patches/compiler-rt_i386_type.patch
diff --git a/build_compiler_rt.sh b/build_compiler_rt.sh
index 17c0e6c..374d0d8 100755
--- a/build_compiler_rt.sh
+++ b/build_compiler_rt.sh
@@ -105,6 +105,12 @@ if [ $f_res -eq 1 ]; then
# https://github.com/tpoechtrager/osxcross/issues/178
patch -p1 < $PATCH_DIR/compiler-rt_clock-gettime.patch
fi
+ if [ $(osxcross-cmp $SDK_VERSION "<=" 10.13) -eq 1 ] &&
+ [ $(osxcross-cmp $CLANG_VERSION ">=" 20.0) -eq 1 ]; then
+ # fix type discrepancy between INTPTR_TYPE and ptrdiff_t on i386
+ patch -p1 < $PATCH_DIR/compiler-rt_i386_type.patch
+ fi
+
EXTRA_MAKE_FLAGS=""
if [ -n "$OCDEBUG" ]; then
diff --git a/patches/compiler-rt_i386_type.patch b/patches/compiler-rt_i386_type.patch
new file mode 100644
index 0000000..aaea5a2
--- /dev/null
+++ b/patches/compiler-rt_i386_type.patch
@@ -0,0 +1,14 @@
+diff --git a/compiler-rt/lib/interception/interception_type_test.cpp b/compiler-rt/lib/interception/interception_type_test.cpp
+index 41041ce6f..588d3f8d8 100644
+--- a/lib/interception/interception_type_test.cpp
++++ b/lib/interception/interception_type_test.cpp
+@@ -23,7 +23,9 @@
+ COMPILER_CHECK((__sanitizer::is_same<__sanitizer::uptr, ::uintptr_t>::value));
+ COMPILER_CHECK((__sanitizer::is_same<__sanitizer::sptr, ::intptr_t>::value));
+ COMPILER_CHECK((__sanitizer::is_same<__sanitizer::usize, ::size_t>::value));
++#if !SANITIZER_I386
+ COMPILER_CHECK((__sanitizer::is_same<::PTRDIFF_T, ::ptrdiff_t>::value));
++#endif
+ COMPILER_CHECK((__sanitizer::is_same<::SIZE_T, ::size_t>::value));
+ #if !SANITIZER_WINDOWS
+ // No ssize_t on Windows.
--
2.48.1
+1 -1
View File
@@ -26,7 +26,7 @@ COPY Xcode_`'I386_XCODE_VERSION.xip* ${PACKAGES_LOCATION}
local_package(xcode-extractor, , PACKAGE=Xcode_`'I386_XCODE_VERSION.xip SDK_PLATFORMS="MacOSX")
# Extract latest MacOS X, AppleTVOS and iPhoneOS SDK
m4_define(`XCODE_VERSION', 16.4)
m4_define(`XCODE_VERSION', 26.1)
COPY Xcode_`'XCODE_VERSION.xip* ${PACKAGES_LOCATION}
local_package(xcode-extractor, , PACKAGE=Xcode_`'XCODE_VERSION.xip SDK_PLATFORMS="MacOSX iPhoneOS AppleTVOS")
@@ -1,6 +1,6 @@
#! /bin/sh
OSXCROSS_VERSION=3b544be4cc879afaee041207af99c7a380634a44
OSXCROSS_VERSION=121ce150c7857a9474dfff8a8e431482806b3e1b
export PBZX_VERSION=2a4d7c3300c826d918def713a24d25c237c8ed53
export XAR_VERSION=5fa4675419cfec60ac19a9c7f7c2d0e7c831a497
+2 -2
View File
@@ -1,6 +1,6 @@
m4_dnl These settings must be kept in sync between toolchain and worker
m4_define(`DEBIAN_CLANG',-19)m4_dnl
m4_define(`XOS_SDK_VERSION',18.5)m4_dnl
m4_define(`PPA_CLANG',-21)m4_dnl
m4_define(`XOS_SDK_VERSION',26.1)m4_dnl
m4_define(`XOS_DEPLOYMENT_TARGET',9.0)m4_dnl
m4_define(`XOS_SDK_BASE',AppleTVOS)m4_dnl
+2 -2
View File
@@ -1,6 +1,6 @@
m4_dnl These settings must be kept in sync between toolchain and worker
m4_define(`DEBIAN_CLANG',-19)m4_dnl
m4_define(`XOS_SDK_VERSION',18.5)m4_dnl
m4_define(`PPA_CLANG',-21)m4_dnl
m4_define(`XOS_SDK_VERSION',26.1)m4_dnl
m4_define(`XOS_DEPLOYMENT_TARGET',7.0)m4_dnl
m4_define(`XOS_SDK_BASE',iPhoneOS)m4_dnl
+1 -1
View File
@@ -45,7 +45,7 @@ RUN . /etc/os-release && \
libomp`'PPA_CLANG`'-dev \
&& \
rm -rf /var/lib/apt/lists/* && \
rm /etc/apt/sources.list.d/clang.list /etc/apt/trusted.gpg
rm /etc/apt/sources.list.d/clang.list /usr/share/keyrings/llvm.gpg
# Add newly installed LLVM to path
ENV PATH=$PATH:/usr/lib/llvm`'PPA_CLANG`'/bin
+1 -1
View File
@@ -38,7 +38,7 @@ RUN . /etc/os-release && \
libomp`'PPA_CLANG`'-dev \
&& \
rm -rf /var/lib/apt/lists/* && \
rm /etc/apt/sources.list.d/clang.list /etc/apt/trusted.gpg
rm /etc/apt/sources.list.d/clang.list /usr/share/keyrings/llvm.gpg
# Add newly installed LLVM to path
ENV PATH=$PATH:/usr/lib/llvm`'PPA_CLANG`'/bin
+3 -3
View File
@@ -1,8 +1,8 @@
m4_dnl These settings must be kept in sync between toolchain and worker
m4_define(`DEBIAN_CLANG',-19)m4_dnl
m4_define(`MACOSX_SDK_VERSION',15.5)m4_dnl
m4_define(`PPA_CLANG',-21)m4_dnl
m4_define(`MACOSX_SDK_VERSION',26.1)m4_dnl
m4_define(`MACOSX_TARGET_ARCH',aarch64)m4_dnl
m4_define(`MACOSX_TARGET_VERSION',24.5)m4_dnl
m4_define(`MACOSX_TARGET_VERSION',25.1)m4_dnl
m4_define(`MACOSX_DEPLOYMENT_TARGET',13.0)m4_dnl
m4_define(`MACOSX_ARCHITECTURES',`arm64')m4_dnl
m4_define(`MACOSX_PORTS_ARCH_ARG',`--arm64')m4_dnl
+1 -1
View File
@@ -1,6 +1,6 @@
# This worker is used for old i386 only Mac
m4_dnl These settings must be kept in sync between toolchain and worker
m4_define(`DEBIAN_CLANG',-19)m4_dnl
m4_define(`PPA_CLANG',-21)m4_dnl
m4_define(`MACOSX_SDK_VERSION',10.13)m4_dnl
m4_define(`MACOSX_TARGET_ARCH',i386)m4_dnl
m4_define(`MACOSX_TARGET_VERSION',17)m4_dnl
+3 -3
View File
@@ -1,8 +1,8 @@
m4_dnl These settings must be kept in sync between toolchain and worker
m4_define(`DEBIAN_CLANG',-19)m4_dnl
m4_define(`MACOSX_SDK_VERSION',15.5)m4_dnl
m4_define(`PPA_CLANG',-21)m4_dnl
m4_define(`MACOSX_SDK_VERSION',26.1)m4_dnl
m4_define(`MACOSX_TARGET_ARCH',x86_64)m4_dnl
m4_define(`MACOSX_TARGET_VERSION',24.5)m4_dnl
m4_define(`MACOSX_TARGET_VERSION',25.1)m4_dnl
m4_define(`MACOSX_DEPLOYMENT_TARGET',10.9)m4_dnl
m4_define(`MACOSX_ARCHITECTURES',`x86_64')m4_dnl
m4_define(`MACOSX_PORTS_ARCH_ARG',`')m4_dnl
+2 -2
View File
@@ -1,8 +1,8 @@
FROM toolchains/appletv AS toolchain
m4_dnl These settings must be kept in sync between toolchain and worker
m4_define(`DEBIAN_CLANG',-19)m4_dnl
m4_define(`XOS_SDK_VERSION',18.5)m4_dnl
m4_define(`PPA_CLANG',-21)m4_dnl
m4_define(`XOS_SDK_VERSION',26.1)m4_dnl
m4_define(`XOS_DEPLOYMENT_TARGET',9.0)m4_dnl
m4_define(`XOS_SDK_BASE',AppleTVOS)m4_dnl
+2 -2
View File
@@ -1,8 +1,8 @@
FROM toolchains/iphone AS toolchain
m4_dnl These settings must be kept in sync between toolchain and worker
m4_define(`DEBIAN_CLANG',-19)m4_dnl
m4_define(`XOS_SDK_VERSION',18.5)m4_dnl
m4_define(`PPA_CLANG',-21)m4_dnl
m4_define(`XOS_SDK_VERSION',26.1)m4_dnl
m4_define(`XOS_DEPLOYMENT_TARGET',7.0)m4_dnl
m4_define(`XOS_SDK_BASE',iPhoneOS)m4_dnl
+4 -3
View File
@@ -20,15 +20,16 @@ RUN apt-get update && \
rm -rf /var/lib/apt/lists/*
RUN . /etc/os-release && \
echo "deb http://apt.llvm.org/$VERSION_CODENAME/ llvm-toolchain-$VERSION_CODENAME`'PPA_CLANG`' main" > /etc/apt/sources.list.d/clang.list && \
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor -o /usr/share/keyrings/llvm.gpg && \
echo "deb [signed-by=/usr/share/keyrings/llvm.gpg] http://apt.llvm.org/$VERSION_CODENAME/ llvm-toolchain-$VERSION_CODENAME`'PPA_CLANG`' main" > /etc/apt/sources.list.d/clang.list && \
rm -f "${HOME}/.wget-hsts" && \
apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
clang`'PPA_CLANG`' \
llvm`'PPA_CLANG`' \
&& \
rm -rf /var/lib/apt/lists/* && \
rm /etc/apt/sources.list.d/clang.list /etc/apt/trusted.gpg
rm /etc/apt/sources.list.d/clang.list /usr/share/keyrings/llvm.gpg
# Add newly installed LLVM to path
ENV PATH=$PATH:/usr/lib/llvm`'PPA_CLANG`'/bin
+4 -3
View File
@@ -16,15 +16,16 @@ RUN apt-get update && \
rm -rf /var/lib/apt/lists/*
RUN . /etc/os-release && \
echo "deb http://apt.llvm.org/$VERSION_CODENAME/ llvm-toolchain-$VERSION_CODENAME`'PPA_CLANG`' main" > /etc/apt/sources.list.d/clang.list && \
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor -o /usr/share/keyrings/llvm.gpg && \
echo "deb [signed-by=/usr/share/keyrings/llvm.gpg] http://apt.llvm.org/$VERSION_CODENAME/ llvm-toolchain-$VERSION_CODENAME`'PPA_CLANG`' main" > /etc/apt/sources.list.d/clang.list && \
rm -f "${HOME}/.wget-hsts" && \
apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
clang`'PPA_CLANG`' \
llvm`'PPA_CLANG`' \
&& \
rm -rf /var/lib/apt/lists/* && \
rm /etc/apt/sources.list.d/clang.list /etc/apt/trusted.gpg
rm /etc/apt/sources.list.d/clang.list /usr/share/keyrings/llvm.gpg
# Add newly installed LLVM to path
ENV PATH=$PATH:/usr/lib/llvm`'PPA_CLANG`'/bin
+3 -3
View File
@@ -1,10 +1,10 @@
m4_define(`TOOLCHAIN',macosx-arm64)m4_dnl
m4_dnl These settings must be kept in sync between toolchain and worker
m4_define(`DEBIAN_CLANG',-19)m4_dnl
m4_define(`MACOSX_SDK_VERSION',15.5)m4_dnl
m4_define(`PPA_CLANG',-21)m4_dnl
m4_define(`MACOSX_SDK_VERSION',26.1)m4_dnl
m4_define(`MACOSX_TARGET_ARCH',aarch64)m4_dnl
m4_define(`MACOSX_TARGET_VERSION',24.5)m4_dnl
m4_define(`MACOSX_TARGET_VERSION',25.1)m4_dnl
m4_define(`MACOSX_DEPLOYMENT_TARGET',13.0)m4_dnl
m4_define(`MACOSX_ARCHITECTURES',`arm64')m4_dnl
m4_define(`MACOSX_PORTS_ARCH_ARG',`--arm64')m4_dnl
+1 -1
View File
@@ -2,7 +2,7 @@
m4_define(`TOOLCHAIN',macosx-i386)m4_dnl
m4_dnl These settings must be kept in sync between toolchain and worker
m4_define(`DEBIAN_CLANG',-19)m4_dnl
m4_define(`PPA_CLANG',-21)m4_dnl
m4_define(`MACOSX_SDK_VERSION',10.13)m4_dnl
m4_define(`MACOSX_TARGET_ARCH',i386)m4_dnl
m4_define(`MACOSX_TARGET_VERSION',17)m4_dnl
+3 -3
View File
@@ -1,10 +1,10 @@
m4_define(`TOOLCHAIN',macosx-x86_64)m4_dnl
m4_dnl These settings must be kept in sync between toolchain and worker
m4_define(`DEBIAN_CLANG',-19)m4_dnl
m4_define(`MACOSX_SDK_VERSION',15.5)m4_dnl
m4_define(`PPA_CLANG',-21)m4_dnl
m4_define(`MACOSX_SDK_VERSION',26.1)m4_dnl
m4_define(`MACOSX_TARGET_ARCH',x86_64)m4_dnl
m4_define(`MACOSX_TARGET_VERSION',24.5)m4_dnl
m4_define(`MACOSX_TARGET_VERSION',25.1)m4_dnl
m4_define(`MACOSX_DEPLOYMENT_TARGET',10.9)m4_dnl
m4_define(`MACOSX_ARCHITECTURES',`x86_64')m4_dnl
m4_define(`MACOSX_PORTS_ARCH_ARG',`')m4_dnl