From 1305a0d152a46b1ad7c2df20ff3a163bc45bafed Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Tue, 9 Dec 2025 12:59:07 +0100 Subject: [PATCH] Downgrade min Mac Catalyst version to 15.0 (from 15.2). * Mac Catalyst 15.0 is macOS 12.0, which is the min macOS version, so this way the min Mac Catalyst version matches the min macOS version. * Most of the bump to 15.2 was done in #122436, but that pull request doesn't explain why. * However, it seems to stem from #122010, which bumps to 15.2 in one place, to work around a linker warning, because we were compiling for 15.2 somewhere. * Compiling for 15.2 started in #101342, which seems like a mistake, because: * The pull request description says it's bumping to 15.0, not 15.2 * A comment for the line in question says it's 15.0, not 15.2. * My guess is that it's a typo, becuse the min iOS version was bumped to iOS 12.2, and thus a half-corrected copy-paste ended up bumping Mac Catalyst to 15.2 instead of 15.0 in one place. * https://github.com/dotnet/runtime/pull/101342/changes#diff-194ced50b86c5e2b046ca63ed5a07b792fbd198c4b234a5c187be5d5ff0d398fR252 --- Directory.Build.props | 2 +- eng/native/build-commons.sh | 2 +- eng/native/configurecompiler.cmake | 4 ++-- .../BuildIntegration/Microsoft.NETCore.Native.Unix.targets | 2 +- .../tools/Common/Compiler/ObjectWriter/MachObjectWriter.cs | 2 +- src/mono/mono/offsets/offsets-tool.py | 4 ++-- src/mono/msbuild/apple/build/AppleBuild.targets | 4 ++-- src/mono/msbuild/common/MonoAOTCompiler.props | 4 ++-- src/tasks/AppleAppBuilder/Xcode.cs | 4 ++-- src/tasks/Crossgen2Tasks/Microsoft.NET.CrossGen.targets | 2 +- src/tasks/MobileBuildTasks/Apple/AppleProject.cs | 2 +- 11 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index ad711a667cb0ca..8f3d4cb1be1735 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -43,7 +43,7 @@ 13.0 13.0 12.0 - 15.2 + 15.0 diff --git a/eng/native/build-commons.sh b/eng/native/build-commons.sh index 5f4fd788374096..bb6abc104fb348 100755 --- a/eng/native/build-commons.sh +++ b/eng/native/build-commons.sh @@ -93,7 +93,7 @@ build_native() # set default macCatalyst deployment target # keep in sync with SetOSTargetMinVersions in the root Directory.Build.props - cmakeArgs="-DCMAKE_SYSTEM_NAME=Darwin -DCMAKE_OSX_SYSROOT=macosx -DCMAKE_SYSTEM_VARIANT=maccatalyst -DCMAKE_OSX_DEPLOYMENT_TARGET=15.2 $cmakeArgs" + cmakeArgs="-DCMAKE_SYSTEM_NAME=Darwin -DCMAKE_OSX_SYSROOT=macosx -DCMAKE_SYSTEM_VARIANT=maccatalyst -DCMAKE_OSX_DEPLOYMENT_TARGET=15.0 $cmakeArgs" fi if [[ "$targetOS" == android || "$targetOS" == linux-bionic ]]; then diff --git a/eng/native/configurecompiler.cmake b/eng/native/configurecompiler.cmake index 504631762433bb..9caf3a14828599 100644 --- a/eng/native/configurecompiler.cmake +++ b/eng/native/configurecompiler.cmake @@ -705,10 +705,10 @@ if (CLR_CMAKE_HOST_UNIX OR CLR_CMAKE_HOST_WASI) endif() add_link_options(${DISABLE_OVERRIDING_MIN_VERSION_ERROR}) if(CLR_CMAKE_HOST_ARCH_ARM64) - set(CLR_CMAKE_MACCATALYST_COMPILER_TARGET "arm64-apple-ios15.2-macabi") + set(CLR_CMAKE_MACCATALYST_COMPILER_TARGET "arm64-apple-ios15.0-macabi") add_link_options(-target ${CLR_CMAKE_MACCATALYST_COMPILER_TARGET}) elseif(CLR_CMAKE_HOST_ARCH_AMD64) - set(CLR_CMAKE_MACCATALYST_COMPILER_TARGET "x86_64-apple-ios15.2-macabi") + set(CLR_CMAKE_MACCATALYST_COMPILER_TARGET "x86_64-apple-ios15.0-macabi") add_link_options(-target ${CLR_CMAKE_MACCATALYST_COMPILER_TARGET}) else() clr_unknown_arch() diff --git a/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets b/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets index a4fd6ffe5f4ee1..1c7fce767d73bd 100644 --- a/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets +++ b/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets @@ -78,7 +78,7 @@ The .NET Foundation licenses this file to you under the MIT license. - 15.2 + 15.0 13.0 <_AppleSdkName Condition="'$(_targetOS)' == 'ios'">iphoneos diff --git a/src/coreclr/tools/Common/Compiler/ObjectWriter/MachObjectWriter.cs b/src/coreclr/tools/Common/Compiler/ObjectWriter/MachObjectWriter.cs index 659c48acda2000..f59989a8445269 100644 --- a/src/coreclr/tools/Common/Compiler/ObjectWriter/MachObjectWriter.cs +++ b/src/coreclr/tools/Common/Compiler/ObjectWriter/MachObjectWriter.cs @@ -265,7 +265,7 @@ private protected override void EmitObjectFile(Stream outputFileStream) case TargetOS.MacCatalyst: buildVersion.Platform = PLATFORM_MACCATALYST; - buildVersion.MinimumPlatformVersion = 0x0F_02_00; // 15.2.0 + buildVersion.MinimumPlatformVersion = 0x0F_00_00; // 15.0.0 break; case TargetOS.iOS: diff --git a/src/mono/mono/offsets/offsets-tool.py b/src/mono/mono/offsets/offsets-tool.py index aec4a637dd614b..05fe89fc6297b0 100644 --- a/src/mono/mono/offsets/offsets-tool.py +++ b/src/mono/mono/offsets/offsets-tool.py @@ -186,13 +186,13 @@ def require_emscipten_path (args): elif "x86_64-apple-maccatalyst" == args.abi: require_sysroot (args) self.target = Target ("TARGET_AMD64", "TARGET_MACCAT", IOS_DEFINES) - self.target_args += ["-target", "x86_64-apple-ios15.2-macabi"] + self.target_args += ["-target", "x86_64-apple-ios15.0-macabi"] self.target_args += ["-isysroot", args.sysroot] elif "aarch64-apple-maccatalyst" == args.abi: require_sysroot (args) self.target = Target ("TARGET_ARM64", "TARGET_MACCAT", IOS_DEFINES) - self.target_args += ["-target", "arm64-apple-ios15.2-macabi"] + self.target_args += ["-target", "arm64-apple-ios15.0-macabi"] self.target_args += ["-isysroot", args.sysroot] # watchOS diff --git a/src/mono/msbuild/apple/build/AppleBuild.targets b/src/mono/msbuild/apple/build/AppleBuild.targets index 7647ce5ffcf520..1c3734f3d82655 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.targets +++ b/src/mono/msbuild/apple/build/AppleBuild.targets @@ -175,9 +175,9 @@ - + - + diff --git a/src/mono/msbuild/common/MonoAOTCompiler.props b/src/mono/msbuild/common/MonoAOTCompiler.props index 8b162a97060c29..d717c8e2df3a44 100644 --- a/src/mono/msbuild/common/MonoAOTCompiler.props +++ b/src/mono/msbuild/common/MonoAOTCompiler.props @@ -1,9 +1,9 @@ - + - + diff --git a/src/tasks/AppleAppBuilder/Xcode.cs b/src/tasks/AppleAppBuilder/Xcode.cs index e644aefc6ed498..ad849e3c538a8a 100644 --- a/src/tasks/AppleAppBuilder/Xcode.cs +++ b/src/tasks/AppleAppBuilder/Xcode.cs @@ -690,7 +690,7 @@ public string BuildAppBundle( .Append(" -UseModernBuildSystem=YES") .Append(" -archivePath \"").Append(Path.GetDirectoryName(xcodePrjPath)).Append('"') .Append(" -derivedDataPath \"").Append(Path.GetDirectoryName(xcodePrjPath)).Append('"') - .Append(" IPHONEOS_DEPLOYMENT_TARGET=15.2"); + .Append(" IPHONEOS_DEPLOYMENT_TARGET=15.0"); break; } } @@ -715,7 +715,7 @@ public string BuildAppBundle( .Append(" -UseModernBuildSystem=YES") .Append(" -archivePath \"").Append(Path.GetDirectoryName(xcodePrjPath)).Append('"') .Append(" -derivedDataPath \"").Append(Path.GetDirectoryName(xcodePrjPath)).Append('"') - .Append(" IPHONEOS_DEPLOYMENT_TARGET=15.2"); + .Append(" IPHONEOS_DEPLOYMENT_TARGET=15.0"); break; } } diff --git a/src/tasks/Crossgen2Tasks/Microsoft.NET.CrossGen.targets b/src/tasks/Crossgen2Tasks/Microsoft.NET.CrossGen.targets index 83b3dacde69272..4a8bd9efa6dbed 100644 --- a/src/tasks/Crossgen2Tasks/Microsoft.NET.CrossGen.targets +++ b/src/tasks/Crossgen2Tasks/Microsoft.NET.CrossGen.targets @@ -557,7 +557,7 @@ Copyright (c) .NET Foundation. All rights reserved. 12.0 - 15.2 + 15.0 13.0 <_AppleSdkName Condition="'$(_AppleTargetOS)' == 'ios'">iphoneos diff --git a/src/tasks/MobileBuildTasks/Apple/AppleProject.cs b/src/tasks/MobileBuildTasks/Apple/AppleProject.cs index 03604cd943fe93..000cb60620a85e 100644 --- a/src/tasks/MobileBuildTasks/Apple/AppleProject.cs +++ b/src/tasks/MobileBuildTasks/Apple/AppleProject.cs @@ -27,7 +27,7 @@ public AppleProject(string projectName, string runtimeIdentifier, TaskLoggingHel { GetTargets(runtimeIdentifier, out targetOS, out targetArchitecture); - defaultMinOSVersion = (targetOS == "maccatalyst") ? "15.2" : "13.0"; + defaultMinOSVersion = (targetOS == "maccatalyst") ? "15.0" : "13.0"; targetAbi = DetermineAbi(targetArchitecture); AppleSdk sdk = new AppleSdk(targetOS, logger);