diff --git a/NuGet.config b/NuGet.config index cc821d0d5225..4b98d4115eb7 100644 --- a/NuGet.config +++ b/NuGet.config @@ -24,6 +24,7 @@ + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7f415f551985..d08305d6613b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -15,42 +15,42 @@ 9887f549bbf4a5eb3796e3d783826a3758b6b1a9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 @@ -59,18 +59,18 @@ https://github.com/dotnet/core-setup 7d57652f33493fa022125b7f63aad0d70c52d810 - + https://github.com/dotnet/emsdk - b65413ac057eb0a54c51b76b1855bc377c2132c3 + f364bf26bf50d8cbdd8652d284d25a8ccb55039a - + https://github.com/dotnet/emsdk - b65413ac057eb0a54c51b76b1855bc377c2132c3 + f364bf26bf50d8cbdd8652d284d25a8ccb55039a - + https://github.com/dotnet/emsdk - b65413ac057eb0a54c51b76b1855bc377c2132c3 + f364bf26bf50d8cbdd8652d284d25a8ccb55039a @@ -135,13 +135,13 @@ https://github.com/dotnet/roslyn fc52718eccdb37693a40a518b1178b1e23114e68 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d3aba8fe1a0d0f5c145506f292b72ea9d28406fc + f736effe82a61eb6f5eba46e4173eae3b7d3dffd - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d3aba8fe1a0d0f5c145506f292b72ea9d28406fc + f736effe82a61eb6f5eba46e4173eae3b7d3dffd https://github.com/nuget/nuget.client @@ -230,99 +230,99 @@ bc9161306b23641b0364b8f93d546da4d48da1eb - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 6c65543c1f1eb7afc55533a107775e6e5004f023 + 9b9a26408ddd07dc51c232082af1ca6863af7bc9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 6c65543c1f1eb7afc55533a107775e6e5004f023 + 9b9a26408ddd07dc51c232082af1ca6863af7bc9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 6c65543c1f1eb7afc55533a107775e6e5004f023 + 9b9a26408ddd07dc51c232082af1ca6863af7bc9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 6c65543c1f1eb7afc55533a107775e6e5004f023 + 9b9a26408ddd07dc51c232082af1ca6863af7bc9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-wpf - 88a1aae37eae3f1a0fb51bc828a9b302df178b2a + 58060180f2776452976616ae4894118dfd21f8d5 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d3aba8fe1a0d0f5c145506f292b72ea9d28406fc + f736effe82a61eb6f5eba46e4173eae3b7d3dffd - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d3aba8fe1a0d0f5c145506f292b72ea9d28406fc + f736effe82a61eb6f5eba46e4173eae3b7d3dffd - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d3aba8fe1a0d0f5c145506f292b72ea9d28406fc + f736effe82a61eb6f5eba46e4173eae3b7d3dffd - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d3aba8fe1a0d0f5c145506f292b72ea9d28406fc + f736effe82a61eb6f5eba46e4173eae3b7d3dffd - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d3aba8fe1a0d0f5c145506f292b72ea9d28406fc + f736effe82a61eb6f5eba46e4173eae3b7d3dffd - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d3aba8fe1a0d0f5c145506f292b72ea9d28406fc + f736effe82a61eb6f5eba46e4173eae3b7d3dffd - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d3aba8fe1a0d0f5c145506f292b72ea9d28406fc + f736effe82a61eb6f5eba46e4173eae3b7d3dffd - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d3aba8fe1a0d0f5c145506f292b72ea9d28406fc + f736effe82a61eb6f5eba46e4173eae3b7d3dffd - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d3aba8fe1a0d0f5c145506f292b72ea9d28406fc + f736effe82a61eb6f5eba46e4173eae3b7d3dffd - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d3aba8fe1a0d0f5c145506f292b72ea9d28406fc + f736effe82a61eb6f5eba46e4173eae3b7d3dffd - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d3aba8fe1a0d0f5c145506f292b72ea9d28406fc + f736effe82a61eb6f5eba46e4173eae3b7d3dffd - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d3aba8fe1a0d0f5c145506f292b72ea9d28406fc + f736effe82a61eb6f5eba46e4173eae3b7d3dffd @@ -343,21 +343,21 @@ 2920c71a15b90cb85e1847a32dfe9f13b1d77da2 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d3aba8fe1a0d0f5c145506f292b72ea9d28406fc + f736effe82a61eb6f5eba46e4173eae3b7d3dffd - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d3aba8fe1a0d0f5c145506f292b72ea9d28406fc + f736effe82a61eb6f5eba46e4173eae3b7d3dffd - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d3aba8fe1a0d0f5c145506f292b72ea9d28406fc + f736effe82a61eb6f5eba46e4173eae3b7d3dffd - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d3aba8fe1a0d0f5c145506f292b72ea9d28406fc + f736effe82a61eb6f5eba46e4173eae3b7d3dffd https://github.com/dotnet/test-templates @@ -390,13 +390,13 @@ - + https://dev.azure.com/dnceng/internal/_git/dotnet-winforms - 3bcdfce6d4b5e6825ae33f1e464b73264e36017f + b05fe71693c6c70b537911f88865ea456a9015f5 - + https://dev.azure.com/dnceng/internal/_git/dotnet-wpf - 88a1aae37eae3f1a0fb51bc828a9b302df178b2a + 58060180f2776452976616ae4894118dfd21f8d5 https://github.com/dotnet/xdt @@ -503,89 +503,89 @@ - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - d3aba8fe1a0d0f5c145506f292b72ea9d28406fc + f736effe82a61eb6f5eba46e4173eae3b7d3dffd - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 @@ -619,9 +619,9 @@ 7d6bcdd1e851735273e4eed39e40366d48f335c9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - fa7cdded37981a97cec9a3e233c4a6af58a91c57 + 2f124007573374800632d39177cde00ca9fe1ef0 https://github.com/dotnet/arcade-services diff --git a/eng/Versions.props b/eng/Versions.props index f3cbe517e066..10a472949a42 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -77,7 +77,7 @@ - 9.0.11-servicing.25519.1 + 9.0.12-servicing.25608.3 @@ -86,54 +86,54 @@ - 9.0.11 - 9.0.11-servicing.25517.16 - 9.0.11 - 9.0.11 - 9.0.11-servicing.25517.16 - 9.0.11 - 9.0.11 - 9.0.11 - 9.0.11 - 9.0.11 - 9.0.11 + 9.0.12 + 9.0.12-servicing.25606.9 + 9.0.12 + 9.0.12 + 9.0.12-servicing.25606.9 + 9.0.12 + 9.0.12 + 9.0.12 + 9.0.12 + 9.0.12 + 9.0.12 8.0.0-rc.1.23414.4 - 9.0.11-servicing.25517.16 - 9.0.11-servicing.25517.16 - 9.0.11 - 9.0.11 - 9.0.11 - 9.0.11 + 9.0.12-servicing.25606.9 + 9.0.12-servicing.25606.9 + 9.0.12 + 9.0.12 + 9.0.12 + 9.0.12 2.1.0 - 9.0.11 + 9.0.12 8.0.0 - 9.0.11 - 9.0.11 - 9.0.11 - 9.0.11 - 9.0.11 - 9.0.11 - 9.0.11 + 9.0.12 + 9.0.12 + 9.0.12 + 9.0.12 + 9.0.12 + 9.0.12 + 9.0.12 8.0.0 - 9.0.11 - 9.0.11 - 9.0.11 - 9.0.11 - 9.0.11 - 9.0.11 - 9.0.11 + 9.0.12 + 9.0.12 + 9.0.12 + 9.0.12 + 9.0.12 + 9.0.12 + 9.0.12 8.0.5 - 9.0.11 - 9.0.11 + 9.0.12 + 9.0.12 - 9.0.11-servicing.25520.1 - 9.0.11-servicing.25520.1 - 9.0.11 - 9.0.11 + 9.0.12-servicing.25609.4 + 9.0.12-servicing.25609.4 + 9.0.12 + 9.0.12 @@ -215,19 +215,19 @@ - 9.0.11 - 9.0.11-servicing.25520.6 - 9.0.11-servicing.25520.6 - 9.0.11-servicing.25520.6 - 9.0.11-servicing.25520.6 - 9.0.11-servicing.25520.6 - 9.0.11 - 9.0.11 - 9.0.11-servicing.25520.6 - 9.0.11-servicing.25520.6 - 9.0.11-servicing.25520.6 - 9.0.11-servicing.25520.6 - 9.0.11-servicing.25520.6 + 9.0.12 + 9.0.12-servicing.25609.3 + 9.0.12-servicing.25609.3 + 9.0.12-servicing.25609.3 + 9.0.12-servicing.25609.3 + 9.0.12-servicing.25609.3 + 9.0.12 + 9.0.12 + 9.0.12-servicing.25609.3 + 9.0.12-servicing.25609.3 + 9.0.12-servicing.25609.3 + 9.0.12-servicing.25609.3 + 9.0.12-servicing.25609.3 @@ -237,8 +237,8 @@ - 9.0.11-rtm.25520.2 - 9.0.11-rtm.25520.2 + 9.0.12-rtm.25609.3 + 9.0.12-rtm.25609.3 @@ -317,8 +317,8 @@ 15.0.9617 18.0.9617 - 9.0.11-servicing.25516.4 - 9.0.11 + 9.0.12-servicing.25602.39 + 9.0.12 $(MicrosoftNETWorkloadEmscriptenCurrentManifest90100PackageVersion) 9.0.100$([System.Text.RegularExpressions.Regex]::Match($(EmscriptenWorkloadManifestVersion), `-(?!rtm)[A-z]*[\.]*\d*`)) diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/SdkContentTests/SdkFileDiffExclusions.txt b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/SdkContentTests/SdkFileDiffExclusions.txt index d10fb0eca178..33a1265a0d38 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/SdkContentTests/SdkFileDiffExclusions.txt +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/SdkContentTests/SdkFileDiffExclusions.txt @@ -20,7 +20,7 @@ ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/|msft # Intentional - explicitly excluded from source-build # netfx tooling and tasks, not building in source-build - https://github.com/dotnet/source-build/issues/3514 -./sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/netframework/|msft +./sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/net*/|msft ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/net472/|msft ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net472/|msft ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/|msft @@ -30,11 +30,11 @@ ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/tools/net472/|msft ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WebAssembly/tools/net472/|msft ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Worker/tools/net472/|msft -./sdk/x.y.z/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/netframework/|msft -./sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/netframework/|msft -./sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/tools/netframework/|msft -./sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/tools/netframework/|msft -./sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/tools/netframework/|msft +./sdk/x.y.z/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net*/|msft +./sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net*/|msft +./sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/tools/net*/|msft +./sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/tools/net*/|msft +./sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/tools/net*/|msft # vstest localization is disabled in Linux builds - https://github.com/dotnet/source-build/issues/3517 ./sdk/x.y.z/*/Microsoft.CodeCoverage.IO.resources.dll|msft diff --git a/src/SourceBuild/patches/runtime/0001-release-9.0-staging-Add-flags-when-the-clang-s-major.patch b/src/SourceBuild/patches/runtime/0001-release-9.0-staging-Add-flags-when-the-clang-s-major.patch deleted file mode 100644 index 395dea35c1ae..000000000000 --- a/src/SourceBuild/patches/runtime/0001-release-9.0-staging-Add-flags-when-the-clang-s-major.patch +++ /dev/null @@ -1,145 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Aaron R Robinson -Date: Fri, 14 Nov 2025 11:01:28 -0800 -Subject: [PATCH] [release/9.0-staging] Add flags when the clang's major - version is > 20.0 (#121151) -Backport: https://github.com/dotnet/runtime/pull/121151 - -## Customer Impact - -- [x] Customer reported -- [ ] Found internally - -These issues were reported in -https://github.com/dotnet/runtime/issues/119706 as problems with -clang-21 on Fedora 43. The investigation uncovered that clang introduced -a potentially breaking change in clang-20 that we do not currently -consume. These build changes impact VMR related builds when linux -distrobutions performing source build adopt clang-21. - -clang-20 breaking change log - -https://releases.llvm.org/20.1.0/tools/clang/docs/ReleaseNotes.html#potentially-breaking-changes. - -This PR contains the minimal changes needed to fix issues from the -following PR https://github.com/dotnet/runtime/pull/120775. - -.NET 10: https://github.com/dotnet/runtime/pull/121124 -.NET 8: https://github.com/dotnet/runtime/pull/121150 - -## Regression - -- [ ] Yes -- [x] No - -Build with the new clang-21 compiler will cause the runtime to crash. - -## Testing - -This has been validated using various legs and examples to demonstrate -the usage of undefined behavior these flags convert into "defined" -behavior in C/C++. - -## Risk - -Low. This has zero impact on our production build since we specifically -target clang-18. This is only valid for those partners that are using -clang-20+. ---- - eng/native/configurecompiler.cmake | 18 +++++++++++++++--- - src/coreclr/debug/di/rspriv.h | 4 ++-- - src/coreclr/debug/di/rsthread.cpp | 12 ++++++------ - 3 files changed, 23 insertions(+), 11 deletions(-) - -diff --git a/eng/native/configurecompiler.cmake b/eng/native/configurecompiler.cmake -index 109b947e4eb..c114c03a9a1 100644 ---- a/eng/native/configurecompiler.cmake -+++ b/eng/native/configurecompiler.cmake -@@ -526,9 +526,21 @@ if (CLR_CMAKE_HOST_UNIX) - # Disable frame pointer optimizations so profilers can get better call stacks - add_compile_options(-fno-omit-frame-pointer) - -- # Make signed arithmetic overflow of addition, subtraction, and multiplication wrap around -- # using twos-complement representation (this is normally undefined according to the C++ spec). -- add_compile_options(-fwrapv) -+ if((CMAKE_C_COMPILER_ID STREQUAL "Clang" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 20.0) OR -+ (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 20.0)) -+ # Make signed overflow well-defined. Implies the following flags in clang-20 and above. -+ # -fwrapv - Make signed arithmetic overflow of addition, subtraction, and multiplication wrap around -+ # using twos-complement representation (this is normally undefined according to the C++ spec). -+ # -fwrapv-pointer - The same as -fwrapv but for pointers. -+ add_compile_options(-fno-strict-overflow) -+ -+ # Suppress C++ strict aliasing rules. This matches our use of MSVC. -+ add_compile_options(-fno-strict-aliasing) -+ else() -+ # Make signed arithmetic overflow of addition, subtraction, and multiplication wrap around -+ # using twos-complement representation (this is normally undefined according to the C++ spec). -+ add_compile_options(-fwrapv) -+ endif() - - if(CLR_CMAKE_HOST_APPLE) - # Clang will by default emit objc_msgSend stubs in Xcode 14, which ld from earlier Xcodes doesn't understand. -diff --git a/src/coreclr/debug/di/rspriv.h b/src/coreclr/debug/di/rspriv.h -index 7e2b49b3170..119ca6f7c08 100644 ---- a/src/coreclr/debug/di/rspriv.h -+++ b/src/coreclr/debug/di/rspriv.h -@@ -6404,8 +6404,8 @@ private: - // Lazily initialized. - EXCEPTION_RECORD * m_pExceptionRecord; - -- static const CorDebugUserState kInvalidUserState = CorDebugUserState(-1); -- CorDebugUserState m_userState; // This is the current state of the -+ static const int kInvalidUserState = -1; -+ int m_userState; // This is the current state of the - // thread, at the time that the - // left side synchronized - -diff --git a/src/coreclr/debug/di/rsthread.cpp b/src/coreclr/debug/di/rsthread.cpp -index cd7f79867a5..8c4f3317eff 100644 ---- a/src/coreclr/debug/di/rsthread.cpp -+++ b/src/coreclr/debug/di/rsthread.cpp -@@ -783,7 +783,7 @@ CorDebugUserState CordbThread::GetUserState() - m_userState = pDAC->GetUserState(m_vmThreadToken); - } - -- return m_userState; -+ return (CorDebugUserState)m_userState; - } - - -@@ -887,7 +887,7 @@ HRESULT CordbThread::CreateStepper(ICorDebugStepper ** ppStepper) - //Returns true if current user state of a thread is USER_WAIT_SLEEP_JOIN - bool CordbThread::IsThreadWaitingOrSleeping() - { -- CorDebugUserState userState = m_userState; -+ int userState = m_userState; - if (userState == kInvalidUserState) - { - //If m_userState is not ready, we'll read from DAC only part of it which -@@ -3721,14 +3721,14 @@ HRESULT CordbUnmanagedThread::SetupFirstChanceHijackForSync() - LOG((LF_CORDB, LL_INFO10000, "CUT::SFCHFS: hijackCtx started as:\n")); - LogContext(GetHijackCtx()); - -- // Save the thread's full context for all platforms except for x86 because we need the -+ // Save the thread's full context for all platforms except for x86 because we need the - // DT_CONTEXT_EXTENDED_REGISTERS to avoid getting incomplete information and corrupt the thread context - DT_CONTEXT context; --#ifdef TARGET_X86 -+#ifdef TARGET_X86 - context.ContextFlags = DT_CONTEXT_FULL | DT_CONTEXT_EXTENDED_REGISTERS; - #else - context.ContextFlags = DT_CONTEXT_FULL; --#endif -+#endif - - BOOL succ = DbiGetThreadContext(m_handle, &context); - _ASSERTE(succ); -@@ -3739,7 +3739,7 @@ HRESULT CordbUnmanagedThread::SetupFirstChanceHijackForSync() - LOG((LF_CORDB, LL_ERROR, "CUT::SFCHFS: DbiGetThreadContext error=0x%x\n", error)); - } - --#ifdef TARGET_X86 -+#ifdef TARGET_X86 - GetHijackCtx()->ContextFlags = DT_CONTEXT_FULL | DT_CONTEXT_EXTENDED_REGISTERS; - #else - GetHijackCtx()->ContextFlags = DT_CONTEXT_FULL;