Make clang debug level configurable
The -g flag is controllable with CLANG_DEFAULT_DEBUG_LEVEL from -g0 to
-g3. The default remains -g
Test: Build with CLANG_DEFAULT_DEBUG_LEVEL=debug_level_1
Change-Id: I83613b8bff82e4381c3353db1d1b51502b1f77ca
diff --git a/BUILD.bazel b/BUILD.bazel
index ac1b3a3..b789127 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -511,3 +511,16 @@
generated_config_constants.CLANG_DEFAULT_SHORT_VERSION,
),
)
+
+string_flag(
+ name = "clang_default_debug_level",
+ build_setting_default = env.get("CLANG_DEFAULT_DEBUG_LEVEL") or "",
+ values = [
+ "debug_level_g",
+ "debug_level_0",
+ "debug_level_1",
+ "debug_level_2",
+ "debug_level_3",
+ "",
+ ],
+)
diff --git a/cc_toolchain_config.bzl b/cc_toolchain_config.bzl
index 8f4eacd..a74cedd 100644
--- a/cc_toolchain_config.bzl
+++ b/cc_toolchain_config.bzl
@@ -416,6 +416,9 @@
"_product_variables": attr.label(
default = "//build/bazel/product_config:product_vars",
),
+ "_clang_default_debug_level": attr.label(
+ default = "//prebuilts/clang/host/linux-x86:clang_default_debug_level",
+ ),
},
provides = [CcToolchainConfigInfo],
)
diff --git a/cc_toolchain_features.bzl b/cc_toolchain_features.bzl
index c46f8e0..17b6914 100644
--- a/cc_toolchain_features.bzl
+++ b/cc_toolchain_features.bzl
@@ -225,6 +225,20 @@
if ctx.attr._allow_unknown_warning_option[BuildSettingInfo].value:
flags.extend(["-Wno-error=unknown-warning-option"])
+ clang_debug_env_value = ctx.attr._clang_default_debug_level[BuildSettingInfo].value
+ if clang_debug_env_value == "":
+ flags.extend(["-g"])
+ elif clang_debug_env_value == "debug_level_g":
+ flags.extend(["-g"])
+ elif clang_debug_env_value == "debug_level_0":
+ flags.extend(["-g0"])
+ elif clang_debug_env_value == "debug_level_1":
+ flags.extend(["-g1"])
+ elif clang_debug_env_value == "debug_level_2":
+ flags.extend(["-g2"])
+ elif clang_debug_env_value == "debug_level_3":
+ flags.extend(["-g3"])
+
return flags
def _compiler_flag_features(ctx, target_arch, target_os, flags = []):
diff --git a/cc_toolchain_features_env_based_flags_test.bzl b/cc_toolchain_features_env_based_flags_test.bzl
index 4ec3fec..7b82b18 100644
--- a/cc_toolchain_features_env_based_flags_test.bzl
+++ b/cc_toolchain_features_env_based_flags_test.bzl
@@ -145,6 +145,7 @@
expected_flags = [
"-ftrivial-auto-var-init=zero",
"-Wno-unused-command-line-argument",
+ "-g",
],
)