From 798242e04d1c13a199f47ca52cc4568a7128311d Mon Sep 17 00:00:00 2001 From: Zhongpeng Lin Date: Tue, 28 Feb 2023 15:26:33 -0800 Subject: [PATCH] Disable coverage when a C library is not instrumented (#1021) --- foreign_cc/private/cc_toolchain_util.bzl | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/foreign_cc/private/cc_toolchain_util.bzl b/foreign_cc/private/cc_toolchain_util.bzl index 27fc97b1d..1bd872dd9 100644 --- a/foreign_cc/private/cc_toolchain_util.bzl +++ b/foreign_cc/private/cc_toolchain_util.bzl @@ -49,11 +49,17 @@ FOREIGN_CC_DISABLED_FEATURES = [ ] def _configure_features(ctx, cc_toolchain): + disabled_features = ctx.disabled_features + FOREIGN_CC_DISABLED_FEATURES + if not ctx.coverage_instrumented(): + # In coverage mode, cc_common.configure_features() adds coverage related flags, + # such as --coverage to the compiler and linker. However, if this library is not + # instrumented, we don't need to pass those flags, and avoid unncessary rebuilds. + disabled_features.append("coverage") return cc_common.configure_features( ctx = ctx, cc_toolchain = cc_toolchain, requested_features = ctx.features, - unsupported_features = ctx.disabled_features + FOREIGN_CC_DISABLED_FEATURES, + unsupported_features = disabled_features, ) def _create_libraries_to_link(ctx, files):