From 270c745b66e2b5a9a9bceff1ebd73cc5b44ad8fb Mon Sep 17 00:00:00 2001 From: Marek Habersack Date: Fri, 5 Apr 2024 09:43:01 +0000 Subject: [PATCH 1/4] Bumps LLVM to v18.1.3 and XA utils version to 8.0.0 (#8852) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changes: https://discourse.llvm.org/t/llvm-18-1-0-released/77448 Changes: https://discourse.llvm.org/t/llvm-18-1-1-released/77540 Changes: https://discourse.llvm.org/t/18-1-2-released/77821 Changes: https://discourse.llvm.org/t/18-1-3-released/78136 Changes interesting for us: * AArch64 backend * Added support for Cortex-A520, Cortex-A720 and Cortex-X4 CPUs. * Assembler/disassembler support has been added for 2023 architecture extensions. * Support has been added for Stack Clash Protection. During function frame creation and dynamic stack allocations, the compiler will issue memory accesses at regular intervals so that a guard area at the top of the stack can’t be skipped over. * x86 backend * The i128 type now matches GCC and clang’s __int128 type. This mainly benefits external projects such as Rust which aim to be binary compatible with C, but also fixes code generation where LLVM already assumed that the type matched and called into libgcc helper functions. **Full Changelog**: https://github.com/xamarin/xamarin-android-binutils/compare/L_17.0.6-7.2.1...L_18.1.3-8.0.0 --- build-tools/installers/unix-binutils.projitems | 4 +++- .../xaprepare/xaprepare/ConfigAndData/Configurables.cs | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/build-tools/installers/unix-binutils.projitems b/build-tools/installers/unix-binutils.projitems index b1df3153b61..519c1daed2b 100644 --- a/build-tools/installers/unix-binutils.projitems +++ b/build-tools/installers/unix-binutils.projitems @@ -1,7 +1,7 @@ - <_LlvmLibExtension Condition=" '$(HostOS)' == 'Linux' ">so.17 + <_LlvmLibExtension Condition=" '$(HostOS)' == 'Linux' ">so.18.1 <_LlvmLibExtension Condition=" '$(HostOS)' == 'Darwin' ">dylib @@ -62,8 +62,10 @@ <_BinUtilsFilesUnixSign Include="$(MicrosoftAndroidSdkOutDir)$(HostOS)\binutils\lib\libLLVMDebugInfoPDB.$(_LlvmLibExtension)" /> <_BinUtilsFilesUnixSign Include="$(MicrosoftAndroidSdkOutDir)$(HostOS)\binutils\lib\libLLVMDemangle.$(_LlvmLibExtension)" /> <_BinUtilsFilesUnixSign Include="$(MicrosoftAndroidSdkOutDir)$(HostOS)\binutils\lib\libLLVMExtensions.$(_LlvmLibExtension)" /> + <_BinUtilsFilesUnixSign Include="$(MicrosoftAndroidSdkOutDir)$(HostOS)\binutils\lib\libLLVMFrontendOffloading.$(_LlvmLibExtension)" /> <_BinUtilsFilesUnixSign Include="$(MicrosoftAndroidSdkOutDir)$(HostOS)\binutils\lib\libLLVMFrontendOpenMP.$(_LlvmLibExtension)" /> <_BinUtilsFilesUnixSign Include="$(MicrosoftAndroidSdkOutDir)$(HostOS)\binutils\lib\libLLVMGlobalISel.$(_LlvmLibExtension)" /> + <_BinUtilsFilesUnixSign Include="$(MicrosoftAndroidSdkOutDir)$(HostOS)\binutils\lib\libLLVMHipStdPar.$(_LlvmLibExtension)" /> <_BinUtilsFilesUnixSign Include="$(MicrosoftAndroidSdkOutDir)$(HostOS)\binutils\lib\libLLVMInstCombine.$(_LlvmLibExtension)" /> <_BinUtilsFilesUnixSign Include="$(MicrosoftAndroidSdkOutDir)$(HostOS)\binutils\lib\libLLVMInstrumentation.$(_LlvmLibExtension)" /> <_BinUtilsFilesUnixSign Include="$(MicrosoftAndroidSdkOutDir)$(HostOS)\binutils\lib\libLLVMipo.$(_LlvmLibExtension)" /> diff --git a/build-tools/xaprepare/xaprepare/ConfigAndData/Configurables.cs b/build-tools/xaprepare/xaprepare/ConfigAndData/Configurables.cs index 89c29ba32c5..cc349751b43 100644 --- a/build-tools/xaprepare/xaprepare/ConfigAndData/Configurables.cs +++ b/build-tools/xaprepare/xaprepare/ConfigAndData/Configurables.cs @@ -15,7 +15,7 @@ namespace Xamarin.Android.Prepare // partial class Configurables { - const string BinutilsVersion = "L_17.0.6-7.2.1"; + const string BinutilsVersion = "L_18.1.3-8.0.0"; const string MicrosoftOpenJDK17Version = "17.0.8"; const string MicrosoftOpenJDK17Release = "17.0.8.7"; From 20e32e482fe0466e1c1c5f63859776852264e94b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 10:54:31 -1000 Subject: [PATCH 2/4] Bump external/Java.Interop from `651de42` to `e1c7832` (#8836) Bumps [external/Java.Interop](https://github.com/xamarin/java.interop) from `651de42` to `e1c7832`. - [Commits](https://github.com/xamarin/java.interop/compare/651de42732d194cee5a45fae45feda37706a8c16...e1c78326fbe2679cd90854c15d31f0fba7b796b6) --- updated-dependencies: - dependency-name: external/Java.Interop dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- external/Java.Interop | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/Java.Interop b/external/Java.Interop index 651de42732d..e1c78326fbe 160000 --- a/external/Java.Interop +++ b/external/Java.Interop @@ -1 +1 @@ -Subproject commit 651de42732d194cee5a45fae45feda37706a8c16 +Subproject commit e1c78326fbe2679cd90854c15d31f0fba7b796b6 From 1d4a6613bc31499567da92ddd3fbb95ace73bea1 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Mon, 8 Apr 2024 23:59:06 -0700 Subject: [PATCH 3/4] [ci] Update dependabot ignore list (#8864) Updates the list of submodules that dependabot ignores when checking for updates. Repos which are no longer valid have been removed and recently added xxhash repos have been added to this list. --- .github/dependabot.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 9c3f02fab8f..1661447e8ee 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -14,10 +14,8 @@ updates: schedule: interval: "daily" ignore: - - dependency-name: "external/apksig" + - dependency-name: "external/constexpr-xxh3" - dependency-name: "external/debugger-libs" - dependency-name: "external/lz4" - - dependency-name: "external/nrefactory" - - dependency-name: "external/opentk" - dependency-name: "external/robin-map" - - dependency-name: "external/sqlite" + - dependency-name: "external/xxHash" From 138701b8c5e56821fda205485654c2b45ed5859f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 9 Apr 2024 13:07:56 -0500 Subject: [PATCH 4/4] Bump to dotnet/installer/main@0bfd2dd757 9.0.100-preview.4.24208.2 (#8862) Changes: https://github.com/dotnet/installer/compare/dc43d363d2...0bfd2dd757 Changes: https://github.com/dotnet/runtime/compare/17f8138a72...ffb257818d Changes: https://github.com/dotnet/emsdk/compare/5dd0620274...bd79d3dd7e Updates: * Microsoft.Dotnet.Sdk.Internal: from 9.0.100-preview.4.24175.5 to 9.0.100-preview.4.24208.2 * Microsoft.NETCore.App.Ref: from 9.0.0-preview.4.24173.6 to 9.0.0-preview.4.24204.3 * Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport: from 9.0.0-preview.3.24160.1 to 9.0.0-preview.4.24201.2 * Microsoft.NET.ILLink.Tasks: from 9.0.0-preview.4.24173.6 to 9.0.0-preview.4.24204.3 Other changes: * [tests] we can assert 0 trimmer warnings again This is fixed: https://github.com/dotnet/runtime/issues/100256 Co-authored-by: Jonathan Peppers --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 8 ++++---- .../Xamarin.Android.Build.Tests/BuildTest2.cs | 7 +------ .../Xamarin.Android.Build.Tests/XASdkTests.cs | 7 +------ 4 files changed, 14 insertions(+), 24 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 72b69e51698..14bb6810de6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,20 +1,20 @@ - + https://github.com/dotnet/installer - dc43d363d284c26cb1b463683d6ebb2c88ab0b58 + 0bfd2dd757482b30745b799ee0a92cad3d8f5b50 - + https://github.com/dotnet/runtime - 17f8138a726b8af269bffc59e9baa12dcb7abca5 + ffb257818db89672d84d538964cec1b54fb2a094 - + https://github.com/dotnet/runtime - 17f8138a726b8af269bffc59e9baa12dcb7abca5 + ffb257818db89672d84d538964cec1b54fb2a094 - + https://github.com/dotnet/emsdk - 5dd0620274178dd73cac5049e5187c00e07ecf0c + bd79d3dd7ed2db36b3c3d4fa807c21a06d2024ec https://github.com/dotnet/cecil diff --git a/eng/Versions.props b/eng/Versions.props index 7fc8a8bc1e4..9dedef002ee 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -1,12 +1,12 @@ - 9.0.100-preview.4.24175.5 - 9.0.0-preview.4.24173.6 - 9.0.0-preview.4.24173.6 + 9.0.100-preview.4.24208.2 + 9.0.0-preview.4.24204.3 + 9.0.0-preview.4.24204.3 7.0.0-beta.22103.1 7.0.0-beta.22103.1 - 9.0.0-preview.3.24160.1 + 9.0.0-preview.4.24201.2 $(MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportVersion) 7.0.100-rc.1.22410.7 0.11.4-alpha.24168.1 diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest2.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest2.cs index 1f5cff5a437..9cba6164287 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest2.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest2.cs @@ -260,12 +260,7 @@ public void BuildHasNoWarnings (bool isRelease, bool xamarinForms, bool multidex proj.SetProperty ("TrimmerSingleWarn", "false"); using (var b = CreateApkBuilder (Path.Combine ("temp", TestName))) { Assert.IsTrue (b.Build (proj), "Build should have succeeded."); - // FIXME: https://github.com/dotnet/runtime/issues/100256 - if (!xamarinForms && isRelease) { - Assert.IsTrue (StringAssertEx.ContainsText (b.LastBuildOutput, " 4 Warning(s)"), $"{b.BuildLogFile} should have 4 MSBuild warnings."); - } else { - b.AssertHasNoWarnings (); - } + b.AssertHasNoWarnings (); Assert.IsFalse (StringAssertEx.ContainsText (b.LastBuildOutput, "Warning: end of file not at end of a line"), "Should not get a warning from the task."); var lockFile = Path.Combine (Root, b.ProjectDirectory, proj.IntermediateOutputPath, ".__lock"); diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/XASdkTests.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/XASdkTests.cs index 54fb5b35130..f0d0cecf12b 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/XASdkTests.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/XASdkTests.cs @@ -42,12 +42,7 @@ public void DotNetNew ([Values ("android", "androidlib", "android-bindinglib", " // Release build Assert.IsTrue (dotnet.Build (parameters: new [] { "Configuration=Release", "TrimmerSingleWarn=false" }), "`dotnet build` should succeed"); - // FIXME: https://github.com/dotnet/runtime/issues/100256 - if (template.Contains ("lib")) { - dotnet.AssertHasNoWarnings (); - } else { - Assert.IsTrue (StringAssertEx.ContainsText (dotnet.LastBuildOutput, " 4 Warning(s)"), $"{dotnet.BuildLogFile} should have 4 MSBuild warnings."); - } + dotnet.AssertHasNoWarnings (); } static readonly object[] DotNetPackTargetFrameworks = new object[] {