From adf2e2c3cad70b32bc6bee9c67fef1d8e0081fe3 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 11 Apr 2023 20:54:32 -0400 Subject: [PATCH] user/dotnet8-build: upgrade to 8.0.100_pre3 --- user/dotnet8-build/APKBUILD | 36 ++-- .../check_rid-alpine-generation.diff | 42 ----- ...thread-coop-undefine-fortify-source.patch} | 0 ...ime_82676-make-pal-console-c-use-int.patch | 26 --- ...-add-stub-for-mini-is-gsharedvt-inst.patch | 66 ------- ...t-adding-rids-with-dash-in-base-part.patch | 164 ++++++++++++++++++ .../runtime_more-clang-16-suppression.patch | 13 ++ .../runtime_remove-usage-of-off64-t.patch | 26 +++ .../sdk_dotnet-watch-nowarn-ad0001.patch | 24 --- 9 files changed, 219 insertions(+), 178 deletions(-) delete mode 100644 user/dotnet8-build/check_rid-alpine-generation.diff rename user/dotnet8-build/{runtime_mono-thread-coop-undefine-fortify-source.patch => runtime_82269-mono-thread-coop-undefine-fortify-source.patch} (100%) delete mode 100644 user/dotnet8-build/runtime_82676-make-pal-console-c-use-int.patch delete mode 100644 user/dotnet8-build/runtime_82678-add-stub-for-mini-is-gsharedvt-inst.patch create mode 100644 user/dotnet8-build/runtime_84413-support-adding-rids-with-dash-in-base-part.patch create mode 100644 user/dotnet8-build/runtime_more-clang-16-suppression.patch create mode 100644 user/dotnet8-build/runtime_remove-usage-of-off64-t.patch delete mode 100644 user/dotnet8-build/sdk_dotnet-watch-nowarn-ad0001.patch diff --git a/user/dotnet8-build/APKBUILD b/user/dotnet8-build/APKBUILD index ae605f1..49f0d66 100644 --- a/user/dotnet8-build/APKBUILD +++ b/user/dotnet8-build/APKBUILD @@ -2,24 +2,23 @@ # Contributor: Antoine Martin (ayakael) pkgname=dotnet8-build -pkgver=8.0.100_pre2 +pkgver=8.0.100_pre3 pkgrel=0 -_gittag=v8.0.100-preview.2 +_gittag=v8.0.100-preview.3.23178.7 _giturl="https://github.com/dotnet/dotnet" -_testtag=16c3c04f3ae6620a474fa0474e8b298190e506c1 +_testtag=e1cc0f181ffd4d755756d30d985513897d592ba4 _bunnytag=v12 -_stage0ver=8.0.100_pre2-r0 +_stage0ver=8.0.100_pre3-r0 _patches=" build_enable-timestamps.patch - check_rid-alpine-generation.diff roslyn-analyzer_disable-apphost.patch runtime_79856-save-errno-when-using-posix-semaphores.patch - runtime_82676-make-pal-console-c-use-int.patch - runtime_82678-add-stub-for-mini-is-gsharedvt-inst.patch + runtime_82269-mono-thread-coop-undefine-fortify-source.patch + runtime_84413-support-adding-rids-with-dash-in-base-part.patch runtime_enable-system-libunwind.diff - runtime_mono-thread-coop-undefine-fortify-source.patch + runtime_more-clang-16-suppression.patch + runtime_remove-usage-of-off64-t.patch sdk_14239-add-zsh-compdef-completion-script.patch - sdk_dotnet-watch-nowarn-ad0001.patch " _pkgver_macro=${pkgver%.*} @@ -192,10 +191,6 @@ snapshot() { prepare() { default_prepare - # check patches - msg "check_rid-alpine-generation.diff" - patch -p1 -d "$_testdir" -i "$srcdir"/check_rid-alpine-generation.diff - # Using system libunwind is broken on aarch64|armv7, and unused on mono-based builds # see https://github.com/dotnet/source-build/issues/2408, case $CARCH in @@ -307,6 +302,8 @@ check() { case $CARCH in armv7) local _disabled_tests="$_disabled_tests nativeaot" esac + # debugging-via-dotnet-dump hangs + local _disabled_tests="$_disabled_tests debugging-via-dotnet-dump" msg "Unpacking produced dotnet" export DOTNET_ROOT="$_checkdir/release" @@ -502,17 +499,16 @@ doc() { } sha512sums=" -ea01bedda56bd7f2a3a856672ee75a444ad97988631d6dd9b52e513cb333248fff00cdd7f0da5635cf6c7012629bdb8cc44fc5b49a0e8bea4e1421cc1dec4244 dotnet-v8.0.100-preview.2.tar.xz -81428356e4b9691c54cacd242368a42d3939732918a608c2a5ae3f23fff45af2d9e981ead70a977f34f4e498c422f708e523bfbbf590cfdafb5c16ef1f0fed8a dotnet-testsuite-16c3c04f3ae6620a474fa0474e8b298190e506c1.tar.gz +4bc1cbe52fef05e6e343a0b2cc759e6fdbf4479540694676eb095d02fd3a542fc6807bda8ecdbd11f1b60e65180afa217e25c8f47b2c5e7beb53ee2e90118053 dotnet-v8.0.100-preview.3.23178.7.tar.xz +e9f3df13d093fac214778c1137857e065f58d4e0d2a48d540d8ed7bb41e2fd73b2b3f62a0aa5b0e80fa80a5b58ba77ff19b9d10a492802f8539e3a6ed79d299d dotnet-testsuite-e1cc0f181ffd4d755756d30d985513897d592ba4.tar.gz 0028d5d97b814b122d73137b4e0d64ca5d788aa0ae5fde500de722e23522827f2538f06e75acb17cc39b8917961ee78d1f0bbc84b2b624ae0e9bf88adca2ba6f dotnet-bunny-v12.tar.gz eed7a7481a967f6938de956a6df485efa6dd61bf36ae4a768493cb1f7da0296dc91e0f2f89f7c302083ba9cf0c778e28228ec1b52e902077a00072d7d9957ef3 build_enable-timestamps.patch -941b430b55e323f723bbc5160447f060f40d18ce32e5803ab7dda16bfc60a0f5ec1dccd246e68475d7115ee265a9433824d8a5d997c302531311194a90deeca9 check_rid-alpine-generation.diff 4ac92d2d9190a55ee20d3e145a28a6953c98d3eb838c8acfb808b8839316443cb64da4a2c5787df0171fce7ef96ff6381043085ed90c23ec09ce9ac81571e675 roslyn-analyzer_disable-apphost.patch 77fa6d9987a7c43725582c9c493e9d4d5965a611a1d795dad4e3d46cd730caced095f994d93f91a131df7fa4b6a7277bcd3d915bae2dcd869559f22076fbc575 runtime_79856-save-errno-when-using-posix-semaphores.patch -18f2be488e4d6c667b90f6b6faed12a84f8c5748c6da91a291542e0a9e8b43effc3bba92a6b38da1b2a904466e3e9bd66b01ad0d3f521bd27a067eb362e2add6 runtime_82676-make-pal-console-c-use-int.patch -5452b7c5037210fd273476c58fb8bf30ec9f0e6824489808c6d2af82057c5401bbd244a5aa8aa20a0c6ae122dd55a76cda40ccfd7838530fd23b5ad7bbd5550f runtime_82678-add-stub-for-mini-is-gsharedvt-inst.patch +d732df247c721c9f677baabdd7f36dbf4b564814ff64164361065bb1c196b767494a1d39f634eadf01a23032c7b3e64102614b7213065c81096bbf3f8022e6a0 runtime_82269-mono-thread-coop-undefine-fortify-source.patch +2ed962096eb9d8ae61831d224ceb05b8f77f5692f38a3457048d1b4abef705e8e4f676b81bb1a833e338e75ac8dc80b0631b1a45ad9a15c5597740b7320bfbb5 runtime_84413-support-adding-rids-with-dash-in-base-part.patch 293742ab307bef459a21deadcc4ad7c7996cc4b490910a36c2763b8ad25cc8a91c4e03b6290567cd1030f69638d0156c5b6970887858fb091f8482b67356065d runtime_enable-system-libunwind.diff -d732df247c721c9f677baabdd7f36dbf4b564814ff64164361065bb1c196b767494a1d39f634eadf01a23032c7b3e64102614b7213065c81096bbf3f8022e6a0 runtime_mono-thread-coop-undefine-fortify-source.patch +887112eb2b103eadd6887529ebae7f9a75df2c2cb168e84fd40cc09f9bcd20917d428bbba06968b07b0a463890da82b1b2b1d033a3dd016e6494067464ae6f74 runtime_more-clang-16-suppression.patch +0c25319125ef5b0ad490b37a643c0c5257c796d5ed24f9ac404f698710b07de790bcbb0b6336d4a50025b94c3bff99b214951bd8f0a79a8d6f543ebaa300740f runtime_remove-usage-of-off64-t.patch d1b4ebcbb1a6815fc0ce4c471485c232618e60968a879309fb8336821a9351d2e0028d9f7726c0c041c750b497a0baa47400c78c9ceff550b91b4a6c2816fc41 sdk_14239-add-zsh-compdef-completion-script.patch -89d008944bf0ba16250ff078e650619b2087654d98b4f7dd614b8197774236e946d92ea17d81d037251ab16880e7bb8f74dbd8a244ca713ecd3efbea17e09318 sdk_dotnet-watch-nowarn-ad0001.patch " diff --git a/user/dotnet8-build/check_rid-alpine-generation.diff b/user/dotnet8-build/check_rid-alpine-generation.diff deleted file mode 100644 index ee389e9..0000000 --- a/user/dotnet8-build/check_rid-alpine-generation.diff +++ /dev/null @@ -1,42 +0,0 @@ -From 5bbd0366f3caa6281fbafb49882a226453371b6a Mon Sep 17 00:00:00 2001 -From: Antoine Martin (ayakael) -Date: Wed, 10 Aug 2022 00:57:30 +0000 -Subject: [PATCH 1/1] fix-runtme-id - -General fix for RID normalisation in testing suite - ---- - runtime-id | 19 +++++++++++-------- - 1 file changed, 11 insertions(+), 8 deletions(-) - -diff --git a/runtime-id b/runtime-id -index 5673bba..7369776 100755 ---- a/runtime-id -+++ b/runtime-id -@@ -44,12 +44,15 @@ if [[ ${portable_rid} == 1 ]]; then - echo "linux-${arch}" - fi - else -- case "${ID}" in -- # Remove the minor version -- alpine|ol|rhel|rocky) rid_version=${VERSION_ID%.*} ;; -- -- *) rid_version=${VERSION_ID} ;; -- esac -- -- echo "${ID}.${rid_version}-${arch}" -+ VERSION_ID_DOT="${VERSION_ID//[^.]}" -+ while [[ ${#VERSION_ID_DOT} -gt 1 ]]; do -+ VERSION_ID="${VERSION_ID%.*}" -+ VERSION_ID_DOT="${VERSION_ID//[^.]}" -+ done -+ VERSION_ID_DASH="${VERSION_ID//[^_]}" -+ while [[ ${#VERSION_ID_DASH} -ge 1 ]]; do -+ VERSION_ID="${VERSION_ID%_*}" -+ VERSION_ID_DASH="${VERSION_ID//[^_]}" -+ done -+ echo "${ID}.${VERSION_ID}-${arch}" - fi --- -2.37.1 - diff --git a/user/dotnet8-build/runtime_mono-thread-coop-undefine-fortify-source.patch b/user/dotnet8-build/runtime_82269-mono-thread-coop-undefine-fortify-source.patch similarity index 100% rename from user/dotnet8-build/runtime_mono-thread-coop-undefine-fortify-source.patch rename to user/dotnet8-build/runtime_82269-mono-thread-coop-undefine-fortify-source.patch diff --git a/user/dotnet8-build/runtime_82676-make-pal-console-c-use-int.patch b/user/dotnet8-build/runtime_82676-make-pal-console-c-use-int.patch deleted file mode 100644 index 2252b6a..0000000 --- a/user/dotnet8-build/runtime_82676-make-pal-console-c-use-int.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 86033acaa1dbc61833142ffa60cee0f1a0fb4a14 Mon Sep 17 00:00:00 2001 -Patch-Source: https://github.com/dotnet/runtime/pull/82676 -From: Antoine Martin -Date: Sat, 25 Feb 2023 14:39:43 -0500 -Subject: [PATCH] pal_console.c: cast TIOCSWINSZ to int when - HAVE_IOCTL_WITH_INT_REQUEST - ---- - src/native/libs/System.Native/pal_console.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/src/runtime/src/native/libs/System.Native/pal_console.c b/src/runtime/src/native/libs/System.Native/pal_console.c -index d217075e5..52241f47d 100644 ---- a/src/runtime/src/native/libs/System.Native/pal_console.c -+++ b/src/runtime/src/native/libs/System.Native/pal_console.c -@@ -43,7 +43,9 @@ int32_t SystemNative_SetWindowSize(WinSize* windowSize) - { - assert(windowSize != NULL); - --#if HAVE_IOCTL && HAVE_TIOCSWINSZ -+#if HAVE_IOCTL_WITH_INT_REQUEST && HAVE_TIOCSWINSZ -+ return ioctl(STDOUT_FILENO, (int)TIOCSWINSZ, windowSize); -+#elif HAVE_IOCTL && HAVE_TIOCSWINSZ - return ioctl(STDOUT_FILENO, TIOCSWINSZ, windowSize); - #else - // Not supported on e.g. Android. Also, prevent a compiler error because windowSize is unused diff --git a/user/dotnet8-build/runtime_82678-add-stub-for-mini-is-gsharedvt-inst.patch b/user/dotnet8-build/runtime_82678-add-stub-for-mini-is-gsharedvt-inst.patch deleted file mode 100644 index 8161072..0000000 --- a/user/dotnet8-build/runtime_82678-add-stub-for-mini-is-gsharedvt-inst.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 30a1cfa37f87fc1100022ca82b833f3f486e84bb Mon Sep 17 00:00:00 2001 -Patch-Source: https://github.com/dotnet/runtime/pull/82678 -From: Adeel Mujahid <3840695+am11@users.noreply.github.com> -Date: Sat, 25 Feb 2023 23:32:43 +0200 -Subject: [PATCH 1/2] Add guard around mini_is_gsharedvt_inst call - ---- - src/mono/mono/mini/aot-runtime.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/runtime/src/mono/mono/mini/aot-runtime.c b/src/runtime/src/mono/mono/mini/aot-runtime.c -index 683fee00852e7..edc401a5fada2 100644 ---- a/src/runtime/src/mono/mono/mini/aot-runtime.c -+++ b/src/runtime/src/mono/mono/mini/aot-runtime.c -@@ -4530,8 +4530,10 @@ mono_aot_can_dedup (MonoMethod *method) - !mini_is_gsharedvt_signature (mono_method_signature_internal (method)) && - !mini_is_gsharedvt_klass (method->klass)) { - MonoGenericContext *context = mono_method_get_context (method); -+#ifdef MONO_ARCH_GSHAREDVT_SUPPORTED - if (context->method_inst && mini_is_gsharedvt_inst (context->method_inst)) - return FALSE; -+#endif - /* No point in dedup-ing private instances */ - if ((context->class_inst && inst_is_private (context->class_inst)) || - (context->method_inst && inst_is_private (context->method_inst))) - -From f8f685624d361a76bb425f91c2ab2558dd67ace6 Mon Sep 17 00:00:00 2001 -From: Adeel Mujahid <3840695+am11@users.noreply.github.com> -Date: Sun, 26 Feb 2023 06:22:08 +0200 -Subject: [PATCH 2/2] Add stub for mini_is_gsharedvt_inst - ---- - src/mono/mono/mini/aot-runtime.c | 2 -- - src/mono/mono/mini/mini-generic-sharing.c | 6 ++++++ - 2 files changed, 6 insertions(+), 2 deletions(-) - -diff --git a/src/runtime/src/mono/mono/mini/aot-runtime.c b/src/runtime/src/mono/mono/mini/aot-runtime.c -index edc401a5fada2..683fee00852e7 100644 ---- a/src/runtime/src/mono/mono/mini/aot-runtime.c -+++ b/src/runtime/src/mono/mono/mini/aot-runtime.c -@@ -4530,10 +4530,8 @@ mono_aot_can_dedup (MonoMethod *method) - !mini_is_gsharedvt_signature (mono_method_signature_internal (method)) && - !mini_is_gsharedvt_klass (method->klass)) { - MonoGenericContext *context = mono_method_get_context (method); --#ifdef MONO_ARCH_GSHAREDVT_SUPPORTED - if (context->method_inst && mini_is_gsharedvt_inst (context->method_inst)) - return FALSE; --#endif - /* No point in dedup-ing private instances */ - if ((context->class_inst && inst_is_private (context->class_inst)) || - (context->method_inst && inst_is_private (context->method_inst))) -diff --git a/src/runtime/src/mono/mono/mini/mini-generic-sharing.c b/src/runtime/src/mono/mono/mini/mini-generic-sharing.c -index 6b81872c4f307..3f4823477e115 100644 ---- a/src/runtime/src/mono/mono/mini/mini-generic-sharing.c -+++ b/src/runtime/src/mono/mono/mini/mini-generic-sharing.c -@@ -4859,4 +4859,10 @@ mini_method_to_shared (MonoMethod *method) - return NULL; - } - -+gboolean -+mini_is_gsharedvt_inst (MonoGenericInst *inst) -+{ -+ return FALSE; -+} -+ - #endif /* !MONO_ARCH_GSHAREDVT_SUPPORTED */ diff --git a/user/dotnet8-build/runtime_84413-support-adding-rids-with-dash-in-base-part.patch b/user/dotnet8-build/runtime_84413-support-adding-rids-with-dash-in-base-part.patch new file mode 100644 index 0000000..b9990ec --- /dev/null +++ b/user/dotnet8-build/runtime_84413-support-adding-rids-with-dash-in-base-part.patch @@ -0,0 +1,164 @@ +From abc761c2c5694e4029fea1a60dc1934951c66e26 Mon Sep 17 00:00:00 2001 +Patch-Source: https://github.com/dotnet/runtime/pull/84413 +From: Tom Deseyn +Date: Thu, 6 Apr 2023 13:18:11 +0200 +Subject: [PATCH 1/2] Microsoft.NETCore.Platforms: support adding rids with '-' + in the base part. + +Currently when trying to add a rid like 'linux-musl-x64' +the rid is not understood to be base = 'linux-musl', arch = 'x64'. + +Instead the parser considers a potential optional qualifier. +This causes the rid to be parsed as base = 'linux', arch = 'musl', +and qualifier = 'x64'. + +We know the rids being added won't have a qualifier. If we take +this into account while parsing, we can parse the rid correctly. +--- + .../Microsoft.NETCore.Platforms/src/RID.cs | 11 +++- + .../src/RuntimeGroupCollection.cs | 2 +- + .../tests/RidTests.cs | 50 +++++++++++++------ + 3 files changed, 47 insertions(+), 16 deletions(-) + +diff --git a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RID.cs b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RID.cs +index 6457fd29cadf0..b464d5f0f54e3 100644 +--- a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RID.cs ++++ b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RID.cs +@@ -56,7 +56,7 @@ private enum RIDPart : int + Max = Qualifier + } + +- public static RID Parse(string runtimeIdentifier) ++ public static RID Parse(string runtimeIdentifier, bool noQualifier) + { + string[] parts = new string[(int)RIDPart.Max + 1]; + bool omitVersionDelimiter = true; +@@ -90,6 +90,15 @@ public static RID Parse(string runtimeIdentifier) + // version might be omitted + else if (current == ArchitectureDelimiter) + { ++ // The qualifier delimiter and architecture delimiter are the same. ++ // When there is no qualifier, there will be one delimiter past the base part ++ // for the architecture. ++ // So if we see another delimiter later in the string (for the architecture), ++ // extend the base part instead of starting the architecture part. ++ if (noQualifier && runtimeIdentifier.IndexOf(ArchitectureDelimiter, i + 1) != -1) ++ { ++ break; ++ } + // ensure there's no version later in the string + if (runtimeIdentifier.IndexOf(VersionDelimiter, i) != -1) + { +diff --git a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RuntimeGroupCollection.cs b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RuntimeGroupCollection.cs +index e069508053105..31009a8d28e5e 100644 +--- a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RuntimeGroupCollection.cs ++++ b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RuntimeGroupCollection.cs +@@ -34,7 +34,7 @@ public RuntimeGroupCollection(ICollection runtimeGroups) + /// + public void AddRuntimeIdentifier(string runtimeIdentifier, string parent) + { +- RID rid = RID.Parse(runtimeIdentifier); ++ RID rid = RID.Parse(runtimeIdentifier, noQualifier: true); + + AddRuntimeIdentifier(rid, parent); + } +diff --git a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/tests/RidTests.cs b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/tests/RidTests.cs +index 227bcbdd10d4d..8dee0ebeda17a 100644 +--- a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/tests/RidTests.cs ++++ b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/tests/RidTests.cs +@@ -10,35 +10,57 @@ public class RidTests + { + public static IEnumerable ValidRIDData() + { +- yield return new object[] { "win10-x64", new RID() { BaseRID = "win", OmitVersionDelimiter = true, Version = new RuntimeVersion("10"), Architecture = "x64" } }; +- yield return new object[] { "win10", new RID() { BaseRID = "win", OmitVersionDelimiter = true, Version = new RuntimeVersion("10")} }; +- yield return new object[] { "linux", new RID() { BaseRID = "linux" } }; +- yield return new object[] { "linux-x64", new RID() { BaseRID = "linux", Architecture = "x64" } }; +- yield return new object[] { "linux-x64", new RID() { BaseRID = "linux", Architecture = "x64" } }; +- yield return new object[] { "debian.10-x64", new RID() { BaseRID = "debian", Version = new RuntimeVersion("10"), Architecture = "x64" } }; +- yield return new object[] { "linuxmint.19.2-x64", new RID() { BaseRID = "linuxmint", Version = new RuntimeVersion("19.2"), Architecture = "x64" } }; +- yield return new object[] { "ubuntu.14.04-x64", new RID() { BaseRID = "ubuntu", Version = new RuntimeVersion("14.04"), Architecture = "x64" } }; +- yield return new object[] { "foo-bar.42-arm", new RID() { BaseRID = "foo-bar", Version = new RuntimeVersion("42"), Architecture = "arm" } }; +- yield return new object[] { "foo-bar-arm", new RID() { BaseRID = "foo", Architecture = "bar", Qualifier = "arm" } }; // demonstrates ambiguity, avoid using `-` in base +- yield return new object[] { "linux-musl-x64", new RID() { BaseRID = "linux", Architecture = "musl", Qualifier = "x64" } }; // yes, we already have ambiguous RIDs ++ yield return new object[] { "win10-x64", new RID() { BaseRID = "win", OmitVersionDelimiter = true, Version = new RuntimeVersion("10"), Architecture = "x64" }, null }; ++ yield return new object[] { "win10", new RID() { BaseRID = "win", OmitVersionDelimiter = true, Version = new RuntimeVersion("10")}, null }; ++ yield return new object[] { "linux", new RID() { BaseRID = "linux" }, null }; ++ yield return new object[] { "linux-x64", new RID() { BaseRID = "linux", Architecture = "x64" }, null }; ++ yield return new object[] { "linux-x64", new RID() { BaseRID = "linux", Architecture = "x64" }, null }; ++ yield return new object[] { "debian.10-x64", new RID() { BaseRID = "debian", Version = new RuntimeVersion("10"), Architecture = "x64" }, null }; ++ yield return new object[] { "linuxmint.19.2-x64", new RID() { BaseRID = "linuxmint", Version = new RuntimeVersion("19.2"), Architecture = "x64" }, null }; ++ yield return new object[] { "ubuntu.14.04-x64", new RID() { BaseRID = "ubuntu", Version = new RuntimeVersion("14.04"), Architecture = "x64" }, null }; ++ yield return new object[] { "foo-bar.42-arm", new RID() { BaseRID = "foo-bar", Version = new RuntimeVersion("42"), Architecture = "arm" }, null }; ++ yield return new object[] { "foo-bar-arm", new RID() { BaseRID = "foo", Architecture = "bar", Qualifier = "arm" }, // demonstrates ambiguity, avoid using `-` in base ++ new RID() { BaseRID = "foo-bar", Architecture = "arm" } }; ++ yield return new object[] { "linux-musl-x64", new RID() { BaseRID = "linux", Architecture = "musl", Qualifier = "x64" }, // yes, we already have ambiguous RIDs ++ new RID() { BaseRID = "linux-musl", Architecture = "x64" } }; + } + + [Theory] + [MemberData(nameof(ValidRIDData))] +- internal void ParseCorrectly(string input, RID expected) ++ internal void ParseCorrectly(string input, RID expected, RID? expectedNoQualifier) + { +- RID actual = RID.Parse(input); ++ _ = expectedNoQualifier; // unused ++ ++ RID actual = RID.Parse(input, noQualifier: false); + + Assert.Equal(expected, actual); + } + + [Theory] + [MemberData(nameof(ValidRIDData))] +- internal void ToStringAsExpected(string expected, RID rid) ++ internal void ParseCorrectlyNoQualifier(string input, RID expected, RID? expectedNoQualifier) ++ { ++ expectedNoQualifier ??= expected; ++ ++ RID actual = RID.Parse(input, noQualifier: true); ++ ++ Assert.Equal(expectedNoQualifier, actual); ++ } ++ ++ [Theory] ++ [MemberData(nameof(ValidRIDData))] ++ internal void ToStringAsExpected(string expected, RID rid, RID? expectedNoQualifierRid) + { + string actual = rid.ToString(); + + Assert.Equal(expected, actual); ++ ++ if (expectedNoQualifierRid is not null) ++ { ++ actual = expectedNoQualifierRid.ToString(); ++ ++ Assert.Equal(expected, actual); ++ } + } + } + } + +From f70da467ca94291039e0ea5b0723cb9db5e090e7 Mon Sep 17 00:00:00 2001 +From: Tom Deseyn +Date: Thu, 6 Apr 2023 18:14:31 +0200 +Subject: [PATCH 2/2] Update + src/libraries/Microsoft.NETCore.Platforms/src/RuntimeGroupCollection.cs + +Co-authored-by: Eric StJohn +--- + .../Microsoft.NETCore.Platforms/src/RuntimeGroupCollection.cs | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RuntimeGroupCollection.cs b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RuntimeGroupCollection.cs +index 31009a8d28e5e..ec4762d71424c 100644 +--- a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RuntimeGroupCollection.cs ++++ b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RuntimeGroupCollection.cs +@@ -34,6 +34,7 @@ public RuntimeGroupCollection(ICollection runtimeGroups) + /// + public void AddRuntimeIdentifier(string runtimeIdentifier, string parent) + { ++ // don't parse qualifier since we don't use them and they are ambiguous with `-` in base RID + RID rid = RID.Parse(runtimeIdentifier, noQualifier: true); + + AddRuntimeIdentifier(rid, parent); diff --git a/user/dotnet8-build/runtime_more-clang-16-suppression.patch b/user/dotnet8-build/runtime_more-clang-16-suppression.patch new file mode 100644 index 0000000..1e94419 --- /dev/null +++ b/user/dotnet8-build/runtime_more-clang-16-suppression.patch @@ -0,0 +1,13 @@ +diff --git a/src/runtime/eng/native/configurecompiler.cmake b/src/runtime/eng/native/configurecompiler.cmake +index c9a54547c0a..931da2cae5b 100644 +--- a/src/runtime/eng/native/configurecompiler.cmake ++++ b/src/runtime/eng/native/configurecompiler.cmake +@@ -488,6 +488,8 @@ if (CLR_CMAKE_HOST_UNIX) + # other clang 16.0 suppressions + add_compile_options(-Wno-single-bit-bitfield-constant-conversion) + add_compile_options(-Wno-cast-function-type-strict) ++ add_compile_options(-Wno-incompatible-function-pointer-types-strict) ++ add_compile_options(-Wno-ignored-attributes) + else() + add_compile_options(-Wno-uninitialized) + add_compile_options(-Wno-strict-aliasing) diff --git a/user/dotnet8-build/runtime_remove-usage-of-off64-t.patch b/user/dotnet8-build/runtime_remove-usage-of-off64-t.patch new file mode 100644 index 0000000..cec5877 --- /dev/null +++ b/user/dotnet8-build/runtime_remove-usage-of-off64-t.patch @@ -0,0 +1,26 @@ +diff --git a/src/runtime/src/coreclr/debug/createdump/crashinfounix.cpp.orig b/src/runtime/src/coreclr/debug/createdump/crashinfounix.cpp +index 20b2494..165b190 100644 +--- a/src/runtime/src/coreclr/debug/createdump/crashinfounix.cpp.orig ++++ b/src/runtime/src/coreclr/debug/createdump/crashinfounix.cpp +@@ -469,7 +469,7 @@ CrashInfo::ReadProcessMemory(void* address, void* buffer, size_t size, size_t* r + // performance optimization. + m_canUseProcVmReadSyscall = false; + assert(m_fdMem != -1); +- *read = pread64(m_fdMem, buffer, size, (off64_t)address); ++ *read = pread(m_fdMem, buffer, size, (off_t)address); + } + + if (*read == (size_t)-1) +diff --git a/src/runtime/src/coreclr/debug/createdump/crashinfo.cpp.orig b/src/runtime/src/coreclr/debug/createdump/crashinfo.cpp +index 5addb79..79655d1 100644 +--- a/src/runtime/src/coreclr/debug/createdump/crashinfo.cpp.orig ++++ b/src/runtime/src/coreclr/debug/createdump/crashinfo.cpp +@@ -760,7 +760,7 @@ CrashInfo::PageMappedToPhysicalMemory(uint64_t start) + } + + uint64_t pagemapOffset = (start / PAGE_SIZE) * sizeof(uint64_t); +- uint64_t seekResult = lseek64(m_fdPagemap, (off64_t) pagemapOffset, SEEK_SET); ++ uint64_t seekResult = lseek(m_fdPagemap, (off_t) pagemapOffset, SEEK_SET); + if (seekResult != pagemapOffset) + { + int seekErrno = errno; diff --git a/user/dotnet8-build/sdk_dotnet-watch-nowarn-ad0001.patch b/user/dotnet8-build/sdk_dotnet-watch-nowarn-ad0001.patch deleted file mode 100644 index 3987891..0000000 --- a/user/dotnet8-build/sdk_dotnet-watch-nowarn-ad0001.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 8f8fa898b907192462834cced1bc39bca8ade9f7 Mon Sep 17 00:00:00 2001 -From: Antoine Martin -Date: Tue, 21 Feb 2023 19:14:55 -0500 -Subject: [PATCH 1/1] sdk_dotnet-watch-nowarn-ad0001 - ---- - src/sdk/src/BuiltInTools/dotnet-watch/dotnet-watch.csproj | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/sdk/src/BuiltInTools/dotnet-watch/dotnet-watch.csproj b/src/sdk/src/BuiltInTools/dotnet-watch/dotnet-watch.csproj -index 0e8811a7b..a359ae5e8 100644 ---- a/src/sdk/src/BuiltInTools/dotnet-watch/dotnet-watch.csproj -+++ b/src/sdk/src/BuiltInTools/dotnet-watch/dotnet-watch.csproj -@@ -9,6 +9,7 @@ - MicrosoftAspNetCore - false - -+ AD0001 - - - --- -2.38.2 -