From 81e867ea5dcf698471d664e797a83d03e467842a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6plinger?= Date: Mon, 12 Apr 2021 20:13:39 +0200 Subject: [PATCH] Fix minimum iOS/tvOS version and add iOS 14 to RID graph (#50167) As specified in https://github.com/dotnet/runtime/issues/44654 the minimum iOS/tvOS version we're targeting for .NET 6 is iOS 10. Bump the versions used in our build scripts and RID graph to that and also add iOS 14. --- .../src/runtime.compatibility.json | 303 ++++-------------- .../src/runtime.json | 120 ++----- .../src/runtimeGroups.props | 8 +- src/libraries/Native/build-native.sh | 48 ++- src/mono/Directory.Build.props | 4 +- src/mono/mono/eglib/goutput.c | 47 ++- src/mono/mono/utils/mono-log-darwin.c | 101 ++---- src/mono/mono/utils/mono-logger-internals.h | 8 +- src/mono/mono/utils/mono-logger.c | 8 +- 9 files changed, 177 insertions(+), 470 deletions(-) diff --git a/src/libraries/Microsoft.NETCore.Platforms/src/runtime.compatibility.json b/src/libraries/Microsoft.NETCore.Platforms/src/runtime.compatibility.json index a740ab7324f..bf3295d6351 100644 --- a/src/libraries/Microsoft.NETCore.Platforms/src/runtime.compatibility.json +++ b/src/libraries/Microsoft.NETCore.Platforms/src/runtime.compatibility.json @@ -2707,8 +2707,6 @@ ], "ios.10": [ "ios.10", - "ios.9", - "ios.8", "ios", "unix", "any", @@ -2717,10 +2715,6 @@ "ios.10-arm": [ "ios.10-arm", "ios.10", - "ios.9-arm", - "ios.9", - "ios.8-arm", - "ios.8", "ios-arm", "ios", "unix-arm", @@ -2731,10 +2725,6 @@ "ios.10-arm64": [ "ios.10-arm64", "ios.10", - "ios.9-arm64", - "ios.9", - "ios.8-arm64", - "ios.8", "ios-arm64", "ios", "unix-arm64", @@ -2745,10 +2735,6 @@ "ios.10-x64": [ "ios.10-x64", "ios.10", - "ios.9-x64", - "ios.9", - "ios.8-x64", - "ios.8", "ios-x64", "ios", "unix-x64", @@ -2759,10 +2745,6 @@ "ios.10-x86": [ "ios.10-x86", "ios.10", - "ios.9-x86", - "ios.9", - "ios.8-x86", - "ios.8", "ios-x86", "ios", "unix-x86", @@ -2773,8 +2755,6 @@ "ios.11": [ "ios.11", "ios.10", - "ios.9", - "ios.8", "ios", "unix", "any", @@ -2785,10 +2765,6 @@ "ios.11", "ios.10-arm64", "ios.10", - "ios.9-arm64", - "ios.9", - "ios.8-arm64", - "ios.8", "ios-arm64", "ios", "unix-arm64", @@ -2801,10 +2777,6 @@ "ios.11", "ios.10-x64", "ios.10", - "ios.9-x64", - "ios.9", - "ios.8-x64", - "ios.8", "ios-x64", "ios", "unix-x64", @@ -2816,8 +2788,6 @@ "ios.12", "ios.11", "ios.10", - "ios.9", - "ios.8", "ios", "unix", "any", @@ -2830,10 +2800,6 @@ "ios.11", "ios.10-arm64", "ios.10", - "ios.9-arm64", - "ios.9", - "ios.8-arm64", - "ios.8", "ios-arm64", "ios", "unix-arm64", @@ -2848,10 +2814,6 @@ "ios.11", "ios.10-x64", "ios.10", - "ios.9-x64", - "ios.9", - "ios.8-x64", - "ios.8", "ios-x64", "ios", "unix-x64", @@ -2864,8 +2826,6 @@ "ios.12", "ios.11", "ios.10", - "ios.9", - "ios.8", "ios", "unix", "any", @@ -2880,10 +2840,6 @@ "ios.11", "ios.10-arm64", "ios.10", - "ios.9-arm64", - "ios.9", - "ios.8-arm64", - "ios.8", "ios-arm64", "ios", "unix-arm64", @@ -2900,10 +2856,6 @@ "ios.11", "ios.10-x64", "ios.10", - "ios.9-x64", - "ios.9", - "ios.8-x64", - "ios.8", "ios-x64", "ios", "unix-x64", @@ -2911,78 +2863,28 @@ "any", "base" ], - "ios.8": [ - "ios.8", - "ios", - "unix", - "any", - "base" - ], - "ios.8-arm": [ - "ios.8-arm", - "ios.8", - "ios-arm", - "ios", - "unix-arm", - "unix", - "any", - "base" - ], - "ios.8-arm64": [ - "ios.8-arm64", - "ios.8", - "ios-arm64", - "ios", - "unix-arm64", - "unix", - "any", - "base" - ], - "ios.8-x64": [ - "ios.8-x64", - "ios.8", - "ios-x64", - "ios", - "unix-x64", - "unix", - "any", - "base" - ], - "ios.8-x86": [ - "ios.8-x86", - "ios.8", - "ios-x86", - "ios", - "unix-x86", - "unix", - "any", - "base" - ], - "ios.9": [ - "ios.9", - "ios.8", - "ios", - "unix", - "any", - "base" - ], - "ios.9-arm": [ - "ios.9-arm", - "ios.9", - "ios.8-arm", - "ios.8", - "ios-arm", + "ios.14": [ + "ios.14", + "ios.13", + "ios.12", + "ios.11", + "ios.10", "ios", - "unix-arm", "unix", "any", "base" ], - "ios.9-arm64": [ - "ios.9-arm64", - "ios.9", - "ios.8-arm64", - "ios.8", + "ios.14-arm64": [ + "ios.14-arm64", + "ios.14", + "ios.13-arm64", + "ios.13", + "ios.12-arm64", + "ios.12", + "ios.11-arm64", + "ios.11", + "ios.10-arm64", + "ios.10", "ios-arm64", "ios", "unix-arm64", @@ -2990,11 +2892,17 @@ "any", "base" ], - "ios.9-x64": [ - "ios.9-x64", - "ios.9", - "ios.8-x64", - "ios.8", + "ios.14-x64": [ + "ios.14-x64", + "ios.14", + "ios.13-x64", + "ios.13", + "ios.12-x64", + "ios.12", + "ios.11-x64", + "ios.11", + "ios.10-x64", + "ios.10", "ios-x64", "ios", "unix-x64", @@ -3002,18 +2910,6 @@ "any", "base" ], - "ios.9-x86": [ - "ios.9-x86", - "ios.9", - "ios.8-x86", - "ios.8", - "ios-x86", - "ios", - "unix-x86", - "unix", - "any", - "base" - ], "iossimulator": [ "iossimulator", "ios", @@ -3053,8 +2949,6 @@ ], "iossimulator.10": [ "iossimulator.10", - "iossimulator.9", - "iossimulator.8", "iossimulator", "ios", "unix", @@ -3064,10 +2958,6 @@ "iossimulator.10-arm64": [ "iossimulator.10-arm64", "iossimulator.10", - "iossimulator.9-arm64", - "iossimulator.9", - "iossimulator.8-arm64", - "iossimulator.8", "iossimulator-arm64", "iossimulator", "ios-arm64", @@ -3080,10 +2970,6 @@ "iossimulator.10-x64": [ "iossimulator.10-x64", "iossimulator.10", - "iossimulator.9-x64", - "iossimulator.9", - "iossimulator.8-x64", - "iossimulator.8", "iossimulator-x64", "iossimulator", "ios-x64", @@ -3096,10 +2982,6 @@ "iossimulator.10-x86": [ "iossimulator.10-x86", "iossimulator.10", - "iossimulator.9-x86", - "iossimulator.9", - "iossimulator.8-x86", - "iossimulator.8", "iossimulator-x86", "iossimulator", "ios-x86", @@ -3112,8 +2994,6 @@ "iossimulator.11": [ "iossimulator.11", "iossimulator.10", - "iossimulator.9", - "iossimulator.8", "iossimulator", "ios", "unix", @@ -3125,10 +3005,6 @@ "iossimulator.11", "iossimulator.10-arm64", "iossimulator.10", - "iossimulator.9-arm64", - "iossimulator.9", - "iossimulator.8-arm64", - "iossimulator.8", "iossimulator-arm64", "iossimulator", "ios-arm64", @@ -3143,10 +3019,6 @@ "iossimulator.11", "iossimulator.10-x64", "iossimulator.10", - "iossimulator.9-x64", - "iossimulator.9", - "iossimulator.8-x64", - "iossimulator.8", "iossimulator-x64", "iossimulator", "ios-x64", @@ -3160,8 +3032,6 @@ "iossimulator.12", "iossimulator.11", "iossimulator.10", - "iossimulator.9", - "iossimulator.8", "iossimulator", "ios", "unix", @@ -3175,10 +3045,6 @@ "iossimulator.11", "iossimulator.10-arm64", "iossimulator.10", - "iossimulator.9-arm64", - "iossimulator.9", - "iossimulator.8-arm64", - "iossimulator.8", "iossimulator-arm64", "iossimulator", "ios-arm64", @@ -3195,10 +3061,6 @@ "iossimulator.11", "iossimulator.10-x64", "iossimulator.10", - "iossimulator.9-x64", - "iossimulator.9", - "iossimulator.8-x64", - "iossimulator.8", "iossimulator-x64", "iossimulator", "ios-x64", @@ -3213,8 +3075,6 @@ "iossimulator.12", "iossimulator.11", "iossimulator.10", - "iossimulator.9", - "iossimulator.8", "iossimulator", "ios", "unix", @@ -3230,10 +3090,6 @@ "iossimulator.11", "iossimulator.10-arm64", "iossimulator.10", - "iossimulator.9-arm64", - "iossimulator.9", - "iossimulator.8-arm64", - "iossimulator.8", "iossimulator-arm64", "iossimulator", "ios-arm64", @@ -3252,42 +3108,6 @@ "iossimulator.11", "iossimulator.10-x64", "iossimulator.10", - "iossimulator.9-x64", - "iossimulator.9", - "iossimulator.8-x64", - "iossimulator.8", - "iossimulator-x64", - "iossimulator", - "ios-x64", - "ios", - "unix-x64", - "unix", - "any", - "base" - ], - "iossimulator.8": [ - "iossimulator.8", - "iossimulator", - "ios", - "unix", - "any", - "base" - ], - "iossimulator.8-arm64": [ - "iossimulator.8-arm64", - "iossimulator.8", - "iossimulator-arm64", - "iossimulator", - "ios-arm64", - "ios", - "unix-arm64", - "unix", - "any", - "base" - ], - "iossimulator.8-x64": [ - "iossimulator.8-x64", - "iossimulator.8", "iossimulator-x64", "iossimulator", "ios-x64", @@ -3297,32 +3117,29 @@ "any", "base" ], - "iossimulator.8-x86": [ - "iossimulator.8-x86", - "iossimulator.8", - "iossimulator-x86", - "iossimulator", - "ios-x86", - "ios", - "unix-x86", - "unix", - "any", - "base" - ], - "iossimulator.9": [ - "iossimulator.9", - "iossimulator.8", + "iossimulator.14": [ + "iossimulator.14", + "iossimulator.13", + "iossimulator.12", + "iossimulator.11", + "iossimulator.10", "iossimulator", "ios", "unix", "any", "base" ], - "iossimulator.9-arm64": [ - "iossimulator.9-arm64", - "iossimulator.9", - "iossimulator.8-arm64", - "iossimulator.8", + "iossimulator.14-arm64": [ + "iossimulator.14-arm64", + "iossimulator.14", + "iossimulator.13-arm64", + "iossimulator.13", + "iossimulator.12-arm64", + "iossimulator.12", + "iossimulator.11-arm64", + "iossimulator.11", + "iossimulator.10-arm64", + "iossimulator.10", "iossimulator-arm64", "iossimulator", "ios-arm64", @@ -3332,11 +3149,17 @@ "any", "base" ], - "iossimulator.9-x64": [ - "iossimulator.9-x64", - "iossimulator.9", - "iossimulator.8-x64", - "iossimulator.8", + "iossimulator.14-x64": [ + "iossimulator.14-x64", + "iossimulator.14", + "iossimulator.13-x64", + "iossimulator.13", + "iossimulator.12-x64", + "iossimulator.12", + "iossimulator.11-x64", + "iossimulator.11", + "iossimulator.10-x64", + "iossimulator.10", "iossimulator-x64", "iossimulator", "ios-x64", @@ -3346,20 +3169,6 @@ "any", "base" ], - "iossimulator.9-x86": [ - "iossimulator.9-x86", - "iossimulator.9", - "iossimulator.8-x86", - "iossimulator.8", - "iossimulator-x86", - "iossimulator", - "ios-x86", - "ios", - "unix-x86", - "unix", - "any", - "base" - ], "linux": [ "linux", "unix", diff --git a/src/libraries/Microsoft.NETCore.Platforms/src/runtime.json b/src/libraries/Microsoft.NETCore.Platforms/src/runtime.json index 9ce5b6033f6..ee7d87d9329 100644 --- a/src/libraries/Microsoft.NETCore.Platforms/src/runtime.json +++ b/src/libraries/Microsoft.NETCore.Platforms/src/runtime.json @@ -1116,31 +1116,31 @@ }, "ios.10": { "#import": [ - "ios.9" + "ios" ] }, "ios.10-arm": { "#import": [ "ios.10", - "ios.9-arm" + "ios-arm" ] }, "ios.10-arm64": { "#import": [ "ios.10", - "ios.9-arm64" + "ios-arm64" ] }, "ios.10-x64": { "#import": [ "ios.10", - "ios.9-x64" + "ios-x64" ] }, "ios.10-x86": { "#import": [ "ios.10", - "ios.9-x86" + "ios-x86" ] }, "ios.11": { @@ -1194,62 +1194,21 @@ "ios.12-x64" ] }, - "ios.8": { - "#import": [ - "ios" - ] - }, - "ios.8-arm": { - "#import": [ - "ios.8", - "ios-arm" - ] - }, - "ios.8-arm64": { - "#import": [ - "ios.8", - "ios-arm64" - ] - }, - "ios.8-x64": { - "#import": [ - "ios.8", - "ios-x64" - ] - }, - "ios.8-x86": { - "#import": [ - "ios.8", - "ios-x86" - ] - }, - "ios.9": { - "#import": [ - "ios.8" - ] - }, - "ios.9-arm": { - "#import": [ - "ios.9", - "ios.8-arm" - ] - }, - "ios.9-arm64": { + "ios.14": { "#import": [ - "ios.9", - "ios.8-arm64" + "ios.13" ] }, - "ios.9-x64": { + "ios.14-arm64": { "#import": [ - "ios.9", - "ios.8-x64" + "ios.14", + "ios.13-arm64" ] }, - "ios.9-x86": { + "ios.14-x64": { "#import": [ - "ios.9", - "ios.8-x86" + "ios.14", + "ios.13-x64" ] }, "iossimulator": { @@ -1277,25 +1236,25 @@ }, "iossimulator.10": { "#import": [ - "iossimulator.9" + "iossimulator" ] }, "iossimulator.10-arm64": { "#import": [ "iossimulator.10", - "iossimulator.9-arm64" + "iossimulator-arm64" ] }, "iossimulator.10-x64": { "#import": [ "iossimulator.10", - "iossimulator.9-x64" + "iossimulator-x64" ] }, "iossimulator.10-x86": { "#import": [ "iossimulator.10", - "iossimulator.9-x86" + "iossimulator-x86" ] }, "iossimulator.11": { @@ -1349,50 +1308,21 @@ "iossimulator.12-x64" ] }, - "iossimulator.8": { - "#import": [ - "iossimulator" - ] - }, - "iossimulator.8-arm64": { - "#import": [ - "iossimulator.8", - "iossimulator-arm64" - ] - }, - "iossimulator.8-x64": { - "#import": [ - "iossimulator.8", - "iossimulator-x64" - ] - }, - "iossimulator.8-x86": { - "#import": [ - "iossimulator.8", - "iossimulator-x86" - ] - }, - "iossimulator.9": { - "#import": [ - "iossimulator.8" - ] - }, - "iossimulator.9-arm64": { + "iossimulator.14": { "#import": [ - "iossimulator.9", - "iossimulator.8-arm64" + "iossimulator.13" ] }, - "iossimulator.9-x64": { + "iossimulator.14-arm64": { "#import": [ - "iossimulator.9", - "iossimulator.8-x64" + "iossimulator.14", + "iossimulator.13-arm64" ] }, - "iossimulator.9-x86": { + "iossimulator.14-x64": { "#import": [ - "iossimulator.9", - "iossimulator.8-x86" + "iossimulator.14", + "iossimulator.13-x64" ] }, "linux": { diff --git a/src/libraries/Microsoft.NETCore.Platforms/src/runtimeGroups.props b/src/libraries/Microsoft.NETCore.Platforms/src/runtimeGroups.props index 75f41db1169..16394756f92 100644 --- a/src/libraries/Microsoft.NETCore.Platforms/src/runtimeGroups.props +++ b/src/libraries/Microsoft.NETCore.Platforms/src/runtimeGroups.props @@ -83,23 +83,23 @@ unix arm;x86 - 8;9;10 + 10 unix arm64;x64 - 8;9;10;11;12;13 + 10;11;12;13;14 ios x86 - 8;9;10 + 10 ios arm64;x64 - 8;9;10;11;12;13 + 10;11;12;13;14 diff --git a/src/libraries/Native/build-native.sh b/src/libraries/Native/build-native.sh index 55d56a7099c..f95f1f622f0 100755 --- a/src/libraries/Native/build-native.sh +++ b/src/libraries/Native/build-native.sh @@ -104,57 +104,49 @@ elif [[ "$__TargetOS" == Android && -z "$ROOTFS_DIR" ]]; then exit 1 fi elif [[ "$__TargetOS" == iOSSimulator ]]; then - __CMakeArgs="-DCMAKE_SYSTEM_NAME=iOS $__CMakeArgs" + # set default iOS simulator deployment target + # keep in sync with src/mono/Directory.Build.props + __CMakeArgs="-DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=10.0 $__CMakeArgs" if [[ "$__BuildArch" == x64 ]]; then - # set default iOS simulator deployment target (8.0 is the minimum supported by Xcode 11) - # keep in sync with src/mono/Directory.Build.props - __CMakeArgs="-DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=8.0 -DCMAKE_OSX_ARCHITECTURES=\"x86_64\" $__CMakeArgs" + __CMakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"x86_64\" $__CMakeArgs" elif [[ "$__BuildArch" == x86 ]]; then - # set default iOS simulator deployment target (8.0 is the minimum supported by Xcode 11) - # keep in sync with src/mono/Directory.Build.props - __CMakeArgs="-DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=8.0 -DCMAKE_OSX_ARCHITECTURES=\"i386\" $__CMakeArgs" + __CMakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"i386\" $__CMakeArgs" elif [[ "$__BuildArch" == arm64 ]]; then - # set default iOS device deployment target - # keep in sync with src/mono/Directory.Build.props - __CMakeArgs="-DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=8.0 -DCMAKE_OSX_ARCHITECTURES=\"arm64\" $__CMakeArgs" + __CMakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"arm64\" $__CMakeArgs" else echo "Error: Unknown iOSSimulator architecture $__BuildArch." exit 1 fi elif [[ "$__TargetOS" == iOS ]]; then - __CMakeArgs="-DCMAKE_SYSTEM_NAME=iOS $__CMakeArgs" + # set default iOS device deployment target + # keep in sync with src/mono/Directory.Build.props + __CMakeArgs="-DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos -DCMAKE_OSX_DEPLOYMENT_TARGET=10.0 $__CMakeArgs" if [[ "$__BuildArch" == arm64 ]]; then - # set default iOS device deployment target - # keep in sync with src/mono/Directory.Build.props - __CMakeArgs="-DCMAKE_OSX_SYSROOT=iphoneos -DCMAKE_OSX_DEPLOYMENT_TARGET=8.0 -DCMAKE_OSX_ARCHITECTURES=\"arm64\" $__CMakeArgs" + __CMakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"arm64\" $__CMakeArgs" elif [[ "$__BuildArch" == arm ]]; then - # set default iOS device deployment target - # keep in sync with src/mono/Directory.Build.props - __CMakeArgs="-DCMAKE_OSX_SYSROOT=iphoneos -DCMAKE_OSX_DEPLOYMENT_TARGET=8.0 -DCMAKE_OSX_ARCHITECTURES=\"armv7;armv7s\" $__CMakeArgs" + __CMakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"armv7;armv7s\" $__CMakeArgs" else echo "Error: Unknown iOS architecture $__BuildArch." exit 1 fi elif [[ "$__TargetOS" == tvOSSimulator ]]; then - __CMakeArgs="-DCMAKE_SYSTEM_NAME=tvOS $__CMakeArgs" - # set default tvOS device deployment target - # keep in sync with tvOSVersionMin in src/mono/Directory.Build.props - __CMakeArgs="-DCMAKE_OSX_DEPLOYMENT_TARGET=9.0 $__CMakeArgs" + # set default tvOS simulator deployment target + # keep in sync with src/mono/Directory.Build.props + __CMakeArgs="-DCMAKE_SYSTEM_NAME=tvOS -DCMAKE_OSX_SYSROOT=appletvsimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=10.0 $__CMakeArgs" if [[ "$__BuildArch" == x64 ]]; then - __CMakeArgs="-DCMAKE_OSX_SYSROOT=appletvsimulator -DCMAKE_OSX_ARCHITECTURES=\"x86_64\" $__CMakeArgs" + __CMakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"x86_64\" $__CMakeArgs" elif [[ "$__BuildArch" == arm64 ]]; then - __CMakeArgs="-DCMAKE_OSX_SYSROOT=appletvsimulator -DCMAKE_OSX_ARCHITECTURES=\"arm64\" $__CMakeArgs" + __CMakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"arm64\" $__CMakeArgs" else echo "Error: Unknown tvOSSimulator architecture $__BuildArch." exit 1 fi elif [[ "$__TargetOS" == tvOS ]]; then - __CMakeArgs="-DCMAKE_SYSTEM_NAME=tvOS $__CMakeArgs" - # set default tvOS device deployment target - # keep in sync with tvOSVersionMin in src/mono/Directory.Build.props - __CMakeArgs="-DCMAKE_OSX_DEPLOYMENT_TARGET=9.0 $__CMakeArgs" + # set default tvOS device deployment target + # keep in sync with src/mono/Directory.Build.props + __CMakeArgs="-DCMAKE_SYSTEM_NAME=tvOS -DCMAKE_OSX_SYSROOT=appletvos -DCMAKE_OSX_DEPLOYMENT_TARGET=10.0 $__CMakeArgs" if [[ "$__BuildArch" == arm64 ]]; then - __CMakeArgs="-DCMAKE_OSX_SYSROOT=appletvos -DCMAKE_OSX_ARCHITECTURES=\"arm64\" $__CMakeArgs" + __CMakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"arm64\" $__CMakeArgs" else echo "Error: Unknown tvOS architecture $__BuildArch." exit 1 diff --git a/src/mono/Directory.Build.props b/src/mono/Directory.Build.props index 36fb3de4103..9f8a62f110d 100644 --- a/src/mono/Directory.Build.props +++ b/src/mono/Directory.Build.props @@ -13,8 +13,8 @@ - 8.0 - 9.0 + 10.0 + 10.0 2.0 5.1 10.13 diff --git a/src/mono/mono/eglib/goutput.c b/src/mono/mono/eglib/goutput.c index b54b1e0d8b5..82ba7c09d03 100644 --- a/src/mono/mono/eglib/goutput.c +++ b/src/mono/mono/eglib/goutput.c @@ -322,28 +322,49 @@ default_stderr_handler (const gchar *message) } -#elif defined(HOST_IOS) -#include +#elif defined(HOST_IOS) || defined(HOST_TVOS) || defined(HOST_WATCHOS) || defined(HOST_MACCAT) +#include static int -to_asl_priority (GLogLevelFlags log_level) +to_os_log_priority (GLogLevelFlags log_level) { switch (log_level & G_LOG_LEVEL_MASK) { - case G_LOG_LEVEL_ERROR: return ASL_LEVEL_CRIT; - case G_LOG_LEVEL_CRITICAL: return ASL_LEVEL_ERR; - case G_LOG_LEVEL_WARNING: return ASL_LEVEL_WARNING; - case G_LOG_LEVEL_MESSAGE: return ASL_LEVEL_NOTICE; - case G_LOG_LEVEL_INFO: return ASL_LEVEL_INFO; - case G_LOG_LEVEL_DEBUG: return ASL_LEVEL_DEBUG; + case G_LOG_LEVEL_ERROR: return OS_LOG_TYPE_ERROR; + case G_LOG_LEVEL_CRITICAL: return OS_LOG_TYPE_ERROR; + case G_LOG_LEVEL_WARNING: return OS_LOG_TYPE_DEFAULT; + case G_LOG_LEVEL_MESSAGE: return OS_LOG_TYPE_DEFAULT; + case G_LOG_LEVEL_INFO: return OS_LOG_TYPE_DEFAULT; + case G_LOG_LEVEL_DEBUG: return OS_LOG_TYPE_DEFAULT; } - return ASL_LEVEL_ERR; + return OS_LOG_TYPE_ERROR; } +static const char * +to_log_level_name (GLogLevelFlags log_level) +{ + switch (log_level & G_LOG_LEVEL_MASK) + { + case G_LOG_LEVEL_ERROR: return "error"; + case G_LOG_LEVEL_CRITICAL: return "critical"; + case G_LOG_LEVEL_WARNING: return "warning"; + case G_LOG_LEVEL_MESSAGE: return "message"; + case G_LOG_LEVEL_INFO: return "info"; + case G_LOG_LEVEL_DEBUG: return "debug"; + } + return "unknown"; +} + +// keep in sync with mono_log_write_os_log void g_log_default_handler (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer unused_data) { - asl_log (NULL, NULL, to_asl_priority (log_level), "%s", message); + os_log_with_type (OS_LOG_DEFAULT, to_os_log_priority (log_level), "%{public}s%{public}s%{public}s: %{public}s", + log_domain != NULL ? log_domain : "", + log_domain != NULL ? ": " : "", + to_log_level_name(log_level), + message); + if (log_level & fatal) g_assert_abort (); } @@ -351,13 +372,13 @@ g_log_default_handler (const gchar *log_domain, GLogLevelFlags log_level, const static void default_stdout_handler (const gchar *message) { - asl_log (NULL, NULL, ASL_LEVEL_WARNING, "%s", message); + os_log (OS_LOG_DEFAULT, "%{public}s", message); } static void default_stderr_handler (const gchar *message) { - asl_log (NULL, NULL, ASL_LEVEL_WARNING, "%s", message); + os_log_error (OS_LOG_DEFAULT, "%{public}s", message); } #else diff --git a/src/mono/mono/utils/mono-log-darwin.c b/src/mono/mono/utils/mono-log-darwin.c index 2cb41b1481e..039dc8e79d1 100644 --- a/src/mono/mono/utils/mono-log-darwin.c +++ b/src/mono/mono/utils/mono-log-darwin.c @@ -5,106 +5,61 @@ */ #include -#if (defined(HOST_WATCHOS) && (__WATCH_OS_VERSION_MIN_REQUIRED >= __WATCHOS_3_0)) || defined(HOST_MACCAT) -/* emitted by clang: - * > /Users/lewurm/work/mono-watch4/mono/utils/mono-log-darwin.c:35:2: error: 'asl_log' is \ - * > deprecated: first deprecated in watchOS 3.0 - os_log(3) has replaced \ - * > asl(3) [-Werror,-Wdeprecated-declarations] - */ - -/* untested stuff: */ +#if defined(HOST_IOS) || defined(HOST_TVOS) || defined(HOST_WATCHOS) || defined(HOST_MACCAT) #include #include "mono-logger-internals.h" -void -mono_log_open_asl (const char *path, void *userData) -{ -} void -mono_log_write_asl (const char *log_domain, GLogLevelFlags level, mono_bool hdr, const char *message) +mono_log_open_os_log (const char *path, void *userData) { - switch (level & G_LOG_LEVEL_MASK) - { - case G_LOG_LEVEL_MESSAGE: - os_log (OS_LOG_DEFAULT, "%s%s%s\n", - log_domain != NULL ? log_domain : "", - log_domain != NULL ? ": " : "", - message); - break; - case G_LOG_LEVEL_INFO: - os_log_info (OS_LOG_DEFAULT, "%s%s%s\n", - log_domain != NULL ? log_domain : "", - log_domain != NULL ? ": " : "", - message); - break; - case G_LOG_LEVEL_DEBUG: - os_log_debug (OS_LOG_DEFAULT, "%s%s%s\n", - log_domain != NULL ? log_domain : "", - log_domain != NULL ? ": " : "", - message); - break; - case G_LOG_LEVEL_ERROR: - case G_LOG_LEVEL_WARNING: - os_log_error (OS_LOG_DEFAULT, "%s%s%s\n", - log_domain != NULL ? log_domain : "", - log_domain != NULL ? ": " : "", - message); - case G_LOG_LEVEL_CRITICAL: - default: - os_log_fault (OS_LOG_DEFAULT, "%s%s%s\n", - log_domain != NULL ? log_domain : "", - log_domain != NULL ? ": " : "", - message); - break; - } - - if (level & G_LOG_LEVEL_ERROR) - abort(); } -void -mono_log_close_asl () -{ -} - -#elif defined(HOST_IOS) - -#include -#include "mono-logger-internals.h" static int -to_asl_priority (GLogLevelFlags log_level) +to_os_log_priority (GLogLevelFlags log_level) { switch (log_level & G_LOG_LEVEL_MASK) { - case G_LOG_LEVEL_ERROR: return ASL_LEVEL_CRIT; - case G_LOG_LEVEL_CRITICAL: return ASL_LEVEL_ERR; - case G_LOG_LEVEL_WARNING: return ASL_LEVEL_WARNING; - case G_LOG_LEVEL_MESSAGE: return ASL_LEVEL_NOTICE; - case G_LOG_LEVEL_INFO: return ASL_LEVEL_INFO; - case G_LOG_LEVEL_DEBUG: return ASL_LEVEL_DEBUG; + case G_LOG_LEVEL_ERROR: return OS_LOG_TYPE_ERROR; + case G_LOG_LEVEL_CRITICAL: return OS_LOG_TYPE_ERROR; + case G_LOG_LEVEL_WARNING: return OS_LOG_TYPE_DEFAULT; + case G_LOG_LEVEL_MESSAGE: return OS_LOG_TYPE_DEFAULT; + case G_LOG_LEVEL_INFO: return OS_LOG_TYPE_DEFAULT; + case G_LOG_LEVEL_DEBUG: return OS_LOG_TYPE_DEFAULT; } - return ASL_LEVEL_ERR; + return OS_LOG_TYPE_ERROR; } -void -mono_log_open_asl (const char *path, void *userData) +static const char * +to_log_level_name (GLogLevelFlags log_level) { + switch (log_level & G_LOG_LEVEL_MASK) + { + case G_LOG_LEVEL_ERROR: return "error"; + case G_LOG_LEVEL_CRITICAL: return "critical"; + case G_LOG_LEVEL_WARNING: return "warning"; + case G_LOG_LEVEL_MESSAGE: return "message"; + case G_LOG_LEVEL_INFO: return "info"; + case G_LOG_LEVEL_DEBUG: return "debug"; + } + return "unknown"; } +// keep in sync with g_log_default_handler void -mono_log_write_asl (const char *log_domain, GLogLevelFlags level, mono_bool hdr, const char *message) +mono_log_write_os_log (const char *log_domain, GLogLevelFlags level, mono_bool hdr, const char *message) { - asl_log (NULL, NULL, to_asl_priority (level), "%s%s%s\n", + os_log_with_type (OS_LOG_DEFAULT, to_os_log_priority (level), "%{public}s%{public}s%{public}s: %{public}s", log_domain != NULL ? log_domain : "", log_domain != NULL ? ": " : "", + to_log_level_name(level), message); if (level & G_LOG_LEVEL_ERROR) - g_assert_abort (); + abort(); } void -mono_log_close_asl () +mono_log_close_os_log () { } diff --git a/src/mono/mono/utils/mono-logger-internals.h b/src/mono/mono/utils/mono-logger-internals.h index d32f69378ae..48db7fa1750 100644 --- a/src/mono/mono/utils/mono-logger-internals.h +++ b/src/mono/mono/utils/mono-logger-internals.h @@ -151,10 +151,10 @@ void mono_log_write_logcat (const char *log_domain, GLogLevelFlags level, mono_b void mono_log_close_logcat (void); #endif -#if defined(HOST_IOS) -void mono_log_open_asl (const char *path, void *userData); -void mono_log_write_asl (const char *log_domain, GLogLevelFlags level, mono_bool hdr, const char *message); -void mono_log_close_asl (void); +#if defined(HOST_IOS) || defined(HOST_TVOS) || defined(HOST_WATCHOS) || defined(HOST_MACCAT) +void mono_log_open_os_log (const char *path, void *userData); +void mono_log_write_os_log (const char *log_domain, GLogLevelFlags level, mono_bool hdr, const char *message); +void mono_log_close_os_log (void); #endif void mono_log_open_recorder (const char *path, void *userData); diff --git a/src/mono/mono/utils/mono-logger.c b/src/mono/mono/utils/mono-logger.c index b157a3fb787..b688a0dda7d 100644 --- a/src/mono/mono/utils/mono-logger.c +++ b/src/mono/mono/utils/mono-logger.c @@ -137,10 +137,10 @@ mono_trace_set_logdest_string (const char *dest) logger.writer = mono_log_write_logcat; logger.closer = mono_log_close_logcat; logger.dest = (char*) dest; -#elif defined (HOST_IOS) - logger.opener = mono_log_open_asl; - logger.writer = mono_log_write_asl; - logger.closer = mono_log_close_asl; +#elif defined(HOST_IOS) || defined(HOST_TVOS) || defined(HOST_WATCHOS) || defined(HOST_MACCAT) + logger.opener = mono_log_open_os_log; + logger.writer = mono_log_write_os_log; + logger.closer = mono_log_close_os_log; logger.dest = (char*) dest; #else if (dest && !strcmp("flight-recorder", dest)) { -- GitLab