From 10651a236c2bbadf3f52b64e974eee58b242f569 Mon Sep 17 00:00:00 2001 From: Marek Habersack Date: Wed, 3 Apr 2024 17:58:51 +0200 Subject: [PATCH 1/3] Bumps LLVM to v18.1.2 and XA utils version to 8.0.0 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 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.2-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..8e4d6ebb0b8 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 <_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..9900de93c8d 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.2-8.0.0"; const string MicrosoftOpenJDK17Version = "17.0.8"; const string MicrosoftOpenJDK17Release = "17.0.8.7"; From 7271e3a092855a063e995717d678a3fadc0edb9e Mon Sep 17 00:00:00 2001 From: Marek Habersack Date: Thu, 4 Apr 2024 18:48:55 +0200 Subject: [PATCH 2/3] Bump to LLVM 8.1.3 --- build-tools/xaprepare/xaprepare/ConfigAndData/Configurables.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-tools/xaprepare/xaprepare/ConfigAndData/Configurables.cs b/build-tools/xaprepare/xaprepare/ConfigAndData/Configurables.cs index 9900de93c8d..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_18.1.2-8.0.0"; + const string BinutilsVersion = "L_18.1.3-8.0.0"; const string MicrosoftOpenJDK17Version = "17.0.8"; const string MicrosoftOpenJDK17Release = "17.0.8.7"; From cf36d3173f39d89be23ef1551dc3877bf6db88f6 Mon Sep 17 00:00:00 2001 From: Marek Habersack Date: Thu, 4 Apr 2024 21:05:59 +0200 Subject: [PATCH 3/3] Oops --- build-tools/installers/unix-binutils.projitems | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-tools/installers/unix-binutils.projitems b/build-tools/installers/unix-binutils.projitems index 8e4d6ebb0b8..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.18 + <_LlvmLibExtension Condition=" '$(HostOS)' == 'Linux' ">so.18.1 <_LlvmLibExtension Condition=" '$(HostOS)' == 'Darwin' ">dylib