aboutsummaryrefslogtreecommitdiff
path: root/BUILD.bazel
diff options
context:
space:
mode:
authorSam Delmerico <delmerico@google.com>2023-04-13 11:47:35 -0400
committerSam Delmerico <delmerico@google.com>2023-05-01 11:25:09 -0400
commitce6eb2ea09ef6705ebce007d13f5b3da4db42d7b (patch)
tree91aa51c88f22a7b7e974401ecc3e9e3cf234438a /BUILD.bazel
parent77b0c0fb40c2e592e40d88a1abe2affd6b915990 (diff)
downloadlinux-x86-ce6eb2ea09ef6705ebce007d13f5b3da4db42d7b.tar.gz
use Bazel env functions for LLVM_RELEASE_VERSION
This CL reverts I3cf18e7814ff52d526017e4fe34b17ab3d8f1080 and moves the environment variable override functionality from soong_injection to Bazel rules. Bug: 273563660 Test: b test //prebuilts/clang/host/linux-x86/... --config=android Test: LLVM_RELEASE_VERSION=15.0.1 LLVM_PREBUILTS_VERSION=clang-r458507 b build --config=android //packages/modules/NeuralNetworks/apex:com.android.neuralnetworks && verify attempt to compile with correct clang version Test: LLVM_RELEASE_VERSION=1.2.3.4 b build //bionic/... && verify failure Test: LLVM_PREBUILTS=clang-r458507 b build -s //bionic/... && verify failure due to wrong clang_short_version Change-Id: I1a9de8efb2db40df67411329c6a91b3ddad65337
Diffstat (limited to 'BUILD.bazel')
-rw-r--r--BUILD.bazel108
1 files changed, 69 insertions, 39 deletions
diff --git a/BUILD.bazel b/BUILD.bazel
index 240ebe20c..efb2cd5aa 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -10,12 +10,15 @@
Toolchain config
"""
-load("@bazel_skylib//rules:common_settings.bzl", "bool_flag")
+load("@bazel_skylib//rules:common_settings.bzl", "bool_flag", "string_flag")
load("@env//:env.bzl", "env")
+load("//build/bazel/flags:common.bzl", "is_env_true")
load(
":cc_toolchain_config.bzl",
+ "CLANG_TOOLS",
"android_cc_toolchain",
- "clang_version",
+ "clang_tool_output_group",
+ "clang_version_info",
"expand_feature_flags",
"toolchain_definition",
)
@@ -36,6 +39,7 @@ load(
_bionic_crt = "bionic_crt",
_musl_crt = "musl_crt",
)
+load(":cc_toolchain_clang_version_test.bzl", "cc_toolchain_clang_version_test_suite")
load(
":cc_toolchain_features_cfi_test.bzl",
"cc_toolchain_features_cfi_test_suite",
@@ -70,12 +74,11 @@ load("//build/bazel/platforms/arch/variants:constants.bzl", _arch_constants = "c
filegroup(name = "empty")
# Different clang versions are configured here.
-clang_version(
+clang_version_info(
name = "clang",
- directory = generated_config_constants.ClangVersion,
- includes = [
- "lib/clang/%s/include" % generated_config_constants.ClangShortVersion,
- ],
+ clang_files = glob(["**/*"]),
+ clang_short_version = ":clang_short_version",
+ clang_version = ":clang_version",
)
# x86_64 toolchain definitions
@@ -83,7 +86,6 @@ clang_version(
android_cc_toolchain(
name = "cc_toolchain_x86_64" + variant_name(variant),
clang_version = ":clang",
- clang_version_directory = generated_config_constants.ClangVersion,
compiler_flags = generated_config_constants.X86_64ToolchainCflags +
generated_config_constants.X86_64ArchVariantCflags[variant.arch_variant] +
expand_feature_flags(
@@ -107,7 +109,6 @@ clang_version(
android_cc_toolchain(
name = "cc_toolchain_x86" + variant_name(variant),
clang_version = ":clang",
- clang_version_directory = generated_config_constants.ClangVersion,
compiler_flags = generated_config_constants.X86ToolchainCflags +
generated_config_constants.X86ArchVariantCflags[variant.arch_variant] +
expand_feature_flags(
@@ -131,7 +132,6 @@ clang_version(
android_cc_toolchain(
name = "cc_toolchain_arm64" + variant_name(variant),
clang_version = ":clang",
- clang_version_directory = generated_config_constants.ClangVersion,
compiler_flags = generated_config_constants.Arm64Cflags +
generated_config_constants.Arm64ArchVariantCflags[variant.arch_variant] +
generated_config_constants.Arm64CpuVariantCflags.get(
@@ -157,7 +157,6 @@ clang_version(
android_cc_toolchain(
name = "cc_toolchain_arm" + variant_name(variant),
clang_version = ":clang",
- clang_version_directory = generated_config_constants.ClangVersion,
compiler_flags = generated_config_constants.ArmCflags +
generated_config_constants.ArmToolchainCflags +
generated_config_constants.ArmArchVariantCflags[variant.arch_variant] +
@@ -182,7 +181,6 @@ clang_version(
android_cc_toolchain(
name = "cc_toolchain_x86_64_linux_host",
clang_version = ":clang",
- clang_version_directory = generated_config_constants.ClangVersion,
compiler_flags = generated_config_constants.LinuxCflags +
generated_config_constants.LinuxGlibcCflags +
generated_config_constants.LinuxX8664Cflags +
@@ -210,7 +208,6 @@ android_cc_toolchain(
android_cc_toolchain(
name = "cc_toolchain_x86_linux_host",
clang_version = ":clang",
- clang_version_directory = generated_config_constants.ClangVersion,
compiler_flags = generated_config_constants.LinuxCflags +
generated_config_constants.LinuxGlibcCflags +
generated_config_constants.LinuxX86Cflags +
@@ -238,7 +235,6 @@ android_cc_toolchain(
android_cc_toolchain(
name = "cc_toolchain_x86_64_linux_musl_host",
clang_version = ":clang",
- clang_version_directory = generated_config_constants.ClangVersion,
compiler_flags = generated_config_constants.LinuxCflags +
generated_config_constants.LinuxMuslCflags +
generated_config_constants.LinuxX8664Cflags +
@@ -264,7 +260,6 @@ android_cc_toolchain(
android_cc_toolchain(
name = "cc_toolchain_x86_linux_musl_host",
clang_version = ":clang",
- clang_version_directory = generated_config_constants.ClangVersion,
compiler_flags = generated_config_constants.LinuxCflags +
generated_config_constants.LinuxMuslCflags +
generated_config_constants.LinuxX86Cflags +
@@ -375,42 +370,61 @@ toolchain_type(name = "nocrt_toolchain")
for (toolchain_name, toolchain_type) in x86_musl_host_toolchains
]
+[
+ filegroup(
+ name = "libclang_rt_%s_%s_%s" % (prefix, os, arch),
+ srcs = [":clang"],
+ output_group = "libclang_rt_%s_%s_%s" % (prefix, os, arch),
+ )
+ for os, arches in {
+ "android": [
+ "arm",
+ "arm64",
+ "x86",
+ "x86_64",
+ ],
+ "linux": [
+ "bionic_x86_64",
+ "glibc_x86",
+ "glibc_x86_64",
+ "musl_x86",
+ "musl_x86_64",
+ ],
+ }.items()
+ for arch in arches
+ for prefix in [
+ "builtins",
+ "ubsan_minimal",
+ ]
+]
+
cc_import(
name = "libclang_rt",
static_library = select(libclang_rt_prebuilt_map),
)
-[alias(
- name = "llvm-%s" % tool,
- actual = generated_config_constants.ClangVersion + "/bin/llvm-%s" % tool,
- visibility = ["//visibility:public"],
-) for tool in [
- "ar",
- "readelf",
- "objcopy",
- "strip",
-]]
-
-[alias(
- name = tool,
- actual = generated_config_constants.ClangVersion + "/bin/" + tool,
- visibility = ["//visibility:public"],
-) for tool in [
- "clang-tidy",
- "clang-tidy.sh",
- "clang-tidy.real",
-]]
+[
+ filegroup(
+ name = tool,
+ srcs = [":clang"],
+ output_group = clang_tool_output_group(tool),
+ visibility = ["//visibility:public"],
+ )
+ for tool in CLANG_TOOLS
+]
# Test tools used by Bazel tests.
filegroup(
name = "test_tools",
- srcs = [
- generated_config_constants.ClangVersion + "/bin/llvm-readelf",
- generated_config_constants.ClangVersion + "/bin/llvm-nm",
- ],
+ srcs = [":clang"],
+ output_group = "clang_test_tools",
visibility = ["//build/bazel/tests:__subpackages__"],
)
+cc_toolchain_clang_version_test_suite(
+ name = "cc_toolchain_clang_version_tests",
+)
+
cc_toolchain_features_cfi_test_suite(
name = "cc_toolchain_features_cfi_tests",
)
@@ -468,3 +482,19 @@ bool_flag(
name = "allow_unknown_warning_option_env",
build_setting_default = is_env_true(env.get("ALLOW_UNKNOWN_WARNING_OPTION")),
)
+
+string_flag(
+ name = "clang_version",
+ build_setting_default = env.get(
+ "LLVM_PREBUILTS_VERSION",
+ generated_config_constants.CLANG_DEFAULT_VERSION,
+ ),
+)
+
+string_flag(
+ name = "clang_short_version",
+ build_setting_default = env.get(
+ "LLVM_RELEASE_VERSION",
+ generated_config_constants.CLANG_DEFAULT_SHORT_VERSION,
+ ),
+)