From c880be445cb99aafc3e60268b4fb9a13c6ce9bd1 Mon Sep 17 00:00:00 2001 From: Conrad Kreyling Date: Fri, 2 Feb 2024 13:35:11 -0500 Subject: [PATCH] Enable ARM64 support on LLVM builds --- .github/workflows/llvm.yml | 2 ++ build/Helpers.lua | 5 +++++ build/LLVM.lua | 6 ++++++ build/llvm/LLVM.lua | 2 +- 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/llvm.yml b/.github/workflows/llvm.yml index 57dc21d4b..87b31a680 100644 --- a/.github/workflows/llvm.yml +++ b/.github/workflows/llvm.yml @@ -10,8 +10,10 @@ jobs: matrix: config: - { os: ubuntu-22.04, platform: x64, cxx: g++-11, cc: gcc-11 } + - { os: ubuntu-22.04, platform: arm64, cxx: g++-11, cc: gcc-11 } - { os: macos-11, platform: x64, cxx: clang++, cc: clang } - { os: macos-12, platform: x64, cxx: clang++, cc: clang } + - { os: macos-12, platform: arm64, cxx: clang++, cc: clang } runs-on: ${{ matrix.config.os }} diff --git a/build/Helpers.lua b/build/Helpers.lua index 0a2e030d1..96a323547 100644 --- a/build/Helpers.lua +++ b/build/Helpers.lua @@ -10,6 +10,7 @@ newoption { allowed = { { "x86", "x86 32-bits" }, { "x64", "x64 64-bits" }, + { "arm64","ARM64 64-bits" }, } } @@ -251,11 +252,15 @@ function AddPlatformSpecificFiles(folder, filename) filter { "toolset:msc*", "architecture:x86" } files { path.join(folder, "i686-pc-win32-msvc", filename) } elseif os.istarget("macosx") then + filter { "architecture:arm64" } + files { path.join(folder, "arm64-apple-darwin12.4.0", filename) } filter { "architecture:x86_64" } files { path.join(folder, "x86_64-apple-darwin12.4.0", filename) } filter {"architecture:x86" } files { path.join(folder, "i686-apple-darwin12.4.0", filename) } elseif os.istarget("linux") then + filter { "architecture:arm64" } + files { path.join(folder, "arm64-linux-gnu" .. (UseCxx11ABI() and "-cxx11abi" or ""), filename) } filter { "architecture:x86_64" } files { path.join(folder, "x86_64-linux-gnu" .. (UseCxx11ABI() and "-cxx11abi" or ""), filename) } else diff --git a/build/LLVM.lua b/build/LLVM.lua index 86fa1be6b..9ac89c54c 100644 --- a/build/LLVM.lua +++ b/build/LLVM.lua @@ -172,6 +172,12 @@ function SetupLLVMLibs() "LLVMX86CodeGen", "LLVMX86Desc", "LLVMX86Info", + "LLVMAArch64AsmParser", + "LLVMAArch64CodeGen", + "LLVMAArch64Desc", + "LLVMAArch64Disassembler", + "LLVMAArch64Info", + "LLVMAArch64Utils", "LLVMipo", "LLVMInstrumentation", "LLVMVectorize", diff --git a/build/llvm/LLVM.lua b/build/llvm/LLVM.lua index f375b39e9..015743965 100644 --- a/build/llvm/LLVM.lua +++ b/build/llvm/LLVM.lua @@ -254,7 +254,7 @@ function cmake(gen, conf, builddir, options) .. ' -DLLVM_ENABLE_ZSTD=false' .. ' -DLLVM_INCLUDE_DOCS=false' .. ' -DLLVM_INCLUDE_EXAMPLES=false' - .. ' -DLLVM_TARGETS_TO_BUILD="X86"' + .. ' -DLLVM_TARGETS_TO_BUILD="X86;AArch64"' .. ' -DLLVM_TOOL_BUGPOINT_BUILD=false' .. ' -DLLVM_TOOL_BUGPOINT_PASSES_BUILD=false' .. ' -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=false'