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++"