From 50c5b075ecfda557fcbb753a33cc943abfe5bc83 Mon Sep 17 00:00:00 2001 From: Ryan Macnak Date: Tue, 22 Mar 2022 00:50:18 +0000 Subject: [PATCH] [build] Fix building on an ARM64 Linux host. Change-Id: I42a8265722083fb02f815c635c44f63f809a9082 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/237923 Reviewed-by: Ben Konyi Commit-Queue: Ryan Macnak --- build/config/compiler/BUILD.gn | 5 ++++- build/toolchain/linux/BUILD.gn | 20 ++++++++++++++------ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn index a9e3ca4d289..6cfcf26116a 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn @@ -359,7 +359,10 @@ config("compiler") { # not be compatible with newer ones. To achieve this, we insert a synthetic # define into the compile line. if (is_clang && (is_linux || is_mac)) { - if (is_linux) { + if (is_linux && host_cpu == "arm64") { + toolchain_stamp_file = + "//buildtools/linux-arm64/clang/.versions/clang.cipd_version" + } else if (is_linux) { toolchain_stamp_file = "//buildtools/linux-x64/clang/.versions/clang.cipd_version" } else { diff --git a/build/toolchain/linux/BUILD.gn b/build/toolchain/linux/BUILD.gn index 5f9bc328d79..05630d01e77 100644 --- a/build/toolchain/linux/BUILD.gn +++ b/build/toolchain/linux/BUILD.gn @@ -21,6 +21,14 @@ if (use_goma) { compiler_prefix = "" } +if (host_cpu == "arm64") { + rebased_clang_dir = + rebase_path("//buildtools/linux-arm64/clang/bin", root_build_dir) +} else { + rebased_clang_dir = + rebase_path("//buildtools/linux-x64/clang/bin", root_build_dir) +} + gcc_toolchain("arm") { prefix = "arm-linux-gnueabihf-" if (toolchain_prefix != "") { @@ -42,7 +50,7 @@ gcc_toolchain("arm") { } gcc_toolchain("clang_arm") { - prefix = rebase_path("//buildtools/linux-x64/clang/bin", root_build_dir) + prefix = rebased_clang_dir cc = "${compiler_prefix}${prefix}/clang" cxx = "${compiler_prefix}${prefix}/clang++" @@ -78,7 +86,7 @@ gcc_toolchain("arm64") { } gcc_toolchain("clang_arm64") { - prefix = rebase_path("//buildtools/linux-x64/clang/bin", root_build_dir) + prefix = rebased_clang_dir cc = "${compiler_prefix}${prefix}/clang" cxx = "${compiler_prefix}${prefix}/clang++" @@ -94,7 +102,7 @@ gcc_toolchain("clang_arm64") { } gcc_toolchain("clang_x86") { - prefix = rebase_path("//buildtools/linux-x64/clang/bin", root_build_dir) + prefix = rebased_clang_dir cc = "${compiler_prefix}${prefix}/clang" cxx = "${compiler_prefix}${prefix}/clang++" @@ -126,7 +134,7 @@ gcc_toolchain("x86") { } gcc_toolchain("clang_x64") { - prefix = rebase_path("//buildtools/linux-x64/clang/bin", root_build_dir) + prefix = rebased_clang_dir cc = "${compiler_prefix}${prefix}/clang" cxx = "${compiler_prefix}${prefix}/clang++" @@ -178,7 +186,7 @@ gcc_toolchain("riscv32") { } gcc_toolchain("clang_riscv32") { - prefix = rebase_path("//buildtools/linux-x64/clang/bin", root_build_dir) + prefix = rebased_clang_dir cc = "${compiler_prefix}${prefix}/clang" cxx = "${compiler_prefix}${prefix}/clang++" @@ -214,7 +222,7 @@ gcc_toolchain("riscv64") { } gcc_toolchain("clang_riscv64") { - prefix = rebase_path("//buildtools/linux-x64/clang/bin", root_build_dir) + prefix = rebased_clang_dir cc = "${compiler_prefix}${prefix}/clang" cxx = "${compiler_prefix}${prefix}/clang++"