Remove --experimental_enable_cc_toolchain_config_info option
The cc_common.create_cc_toolchain_config_info() is stable now.
Issue #5380
RELNOTES: None.
PiperOrigin-RevId: 232308719
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java
index a251f18..072ef08 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java
@@ -40,6 +40,16 @@
public class BazelRulesModule extends BlazeModule {
/** This is where deprecated options go to die. */
public static class GraveyardOptions extends OptionsBase {
+
+ @Option(
+ name = "experimental_enable_cc_toolchain_config_info",
+ defaultValue = "true",
+ documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
+ effectTags = {OptionEffectTag.NO_OP},
+ metadataTags = {OptionMetadataTag.DEPRECATED},
+ help = "No-op")
+ public boolean enableCcToolchainConfigInfoFromSkylark;
+
@Option(
name = "output_symbol_counts",
defaultValue = "false",
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcModule.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcModule.java
index 29c577d..b0826e2 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcModule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcModule.java
@@ -24,7 +24,6 @@
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.RuleContext;
-import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
import com.google.devtools.build.lib.analysis.platform.ToolchainInfo;
import com.google.devtools.build.lib.analysis.skylark.BazelStarlarkContext;
import com.google.devtools.build.lib.analysis.skylark.SkylarkActionFactory;
@@ -846,13 +845,7 @@
SkylarkList<Object> makeVariables,
Object builtinSysroot,
Object ccTargetOs)
- throws InvalidConfigurationException, EvalException {
-
- CppConfiguration config =
- skylarkRuleContext.getConfiguration().getFragment(CppConfiguration.class);
- if (!config.enableCcToolchainConfigInfoFromSkylark()) {
- throw new InvalidConfigurationException("Creating a CcToolchainConfigInfo is not enabled.");
- }
+ throws EvalException {
CToolchain.Builder cToolchain = CToolchain.newBuilder();
@@ -1089,8 +1082,7 @@
/** Creates a {@link Feature} from a {@link SkylarkInfo}. */
@VisibleForTesting
- static Feature featureFromSkylark(SkylarkInfo featureStruct)
- throws InvalidConfigurationException, EvalException {
+ static Feature featureFromSkylark(SkylarkInfo featureStruct) throws EvalException {
checkRightProviderType(featureStruct, "feature");
String name = getFieldFromSkylarkProvider(featureStruct, "name", String.class);
Boolean enabled = getFieldFromSkylarkProvider(featureStruct, "enabled", Boolean.class);
@@ -1228,8 +1220,7 @@
/** Creates an {@link EnvEntry} from a {@link SkylarkInfo}. */
@VisibleForTesting
- static EnvEntry envEntryFromSkylark(SkylarkInfo envEntryStruct)
- throws InvalidConfigurationException, EvalException {
+ static EnvEntry envEntryFromSkylark(SkylarkInfo envEntryStruct) throws EvalException {
checkRightProviderType(envEntryStruct, "env_entry");
String key = getFieldFromSkylarkProvider(envEntryStruct, "key", String.class);
String value = getFieldFromSkylarkProvider(envEntryStruct, "value", String.class);
@@ -1261,8 +1252,7 @@
/** Creates an {@link EnvSet} from a {@link SkylarkInfo}. */
@VisibleForTesting
- static EnvSet envSetFromSkylark(SkylarkInfo envSetStruct)
- throws InvalidConfigurationException, EvalException {
+ static EnvSet envSetFromSkylark(SkylarkInfo envSetStruct) throws EvalException {
checkRightProviderType(envSetStruct, "env_set");
ImmutableSet<String> actions = getStringSetFromSkylarkProviderField(envSetStruct, "actions");
if (actions.isEmpty()) {
@@ -1287,8 +1277,7 @@
/** Creates a {@link FlagGroup} from a {@link SkylarkInfo}. */
@VisibleForTesting
- static FlagGroup flagGroupFromSkylark(SkylarkInfo flagGroupStruct)
- throws InvalidConfigurationException, EvalException {
+ static FlagGroup flagGroupFromSkylark(SkylarkInfo flagGroupStruct) throws EvalException {
checkRightProviderType(flagGroupStruct, "flag_group");
ImmutableList.Builder<Expandable> expandableBuilder = ImmutableList.builder();
@@ -1342,7 +1331,7 @@
/** Creates a {@link FlagSet} from a {@link SkylarkInfo}. */
@VisibleForTesting
static FlagSet flagSetFromSkylark(SkylarkInfo flagSetStruct, String actionName)
- throws InvalidConfigurationException, EvalException {
+ throws EvalException {
checkRightProviderType(flagSetStruct, "flag_set");
ImmutableSet<String> actions = getStringSetFromSkylarkProviderField(flagSetStruct, "actions");
// if we are creating a flag set for an action_config, we need to propagate the name of the
@@ -1400,8 +1389,7 @@
/** Creates an {@link ActionConfig} from a {@link SkylarkInfo}. */
@VisibleForTesting
- static ActionConfig actionConfigFromSkylark(SkylarkInfo actionConfigStruct)
- throws InvalidConfigurationException, EvalException {
+ static ActionConfig actionConfigFromSkylark(SkylarkInfo actionConfigStruct) throws EvalException {
checkRightProviderType(actionConfigStruct, "action_config");
String actionName =
getFieldFromSkylarkProvider(actionConfigStruct, "action_name", String.class);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderHelper.java
index 3924691..0c54fab 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderHelper.java
@@ -411,8 +411,7 @@
+ "https://github.com/bazelbuild/bazel/issues/7320 for details.");
}
- if (cppConfiguration.enableCcToolchainConfigInfoFromSkylark()
- && attributes.getCcToolchainConfigInfo() != null) {
+ if (attributes.getCcToolchainConfigInfo() != null) {
if (fdoZip != null) {
ccSupportKey = CcSkyframeSupportValue.key(fdoZip, /* packageWithCrosstoolInIt= */ null);
}
@@ -726,20 +725,17 @@
CrosstoolRelease crosstoolFromCcToolchainSuiteProtoAttribute)
throws RuleErrorException {
- if (cppConfiguration.enableCcToolchainConfigInfoFromSkylark()) {
- // Attempt to obtain CppToolchainInfo from the 'toolchain_config' attribute of cc_toolchain.
- CcToolchainConfigInfo configInfo = attributes.getCcToolchainConfigInfo();
+ CcToolchainConfigInfo configInfo = attributes.getCcToolchainConfigInfo();
- if (configInfo != null) {
- try {
- return CppToolchainInfo.create(
- ruleContext.getLabel(),
- configInfo,
- cppConfiguration.disableLegacyCrosstoolFields(),
- cppConfiguration.disableGenruleCcToolchainDependency());
- } catch (EvalException e) {
- throw ruleContext.throwWithRuleError(e.getMessage());
- }
+ if (configInfo != null) {
+ try {
+ return CppToolchainInfo.create(
+ ruleContext.getLabel(),
+ configInfo,
+ cppConfiguration.disableLegacyCrosstoolFields(),
+ cppConfiguration.disableGenruleCcToolchainDependency());
+ } catch (EvalException e) {
+ throw ruleContext.throwWithRuleError(e.getMessage());
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
index 925a1ea..77aebcb 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
@@ -583,10 +583,6 @@
return PathFragment.create(builtInSysroot);
}
- boolean enableCcToolchainConfigInfoFromSkylark() {
- return cppOptions.enableCcToolchainConfigInfoFromSkylark;
- }
-
boolean disableRuntimesFilegroups() {
return cppOptions.disableRuntimesFilegroups;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
index 8140a76..d965679 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
@@ -773,15 +773,6 @@
public boolean disableRuntimesFilegroups;
@Option(
- name = "experimental_enable_cc_toolchain_config_info",
- defaultValue = "true",
- documentationCategory = OptionDocumentationCategory.TOOLCHAIN,
- effectTags = {OptionEffectTag.LOADING_AND_ANALYSIS},
- metadataTags = {OptionMetadataTag.EXPERIMENTAL},
- help = "If true, Bazel will allow creating a CcToolchainConfigInfo.")
- public boolean enableCcToolchainConfigInfoFromSkylark;
-
- @Option(
name = "incompatible_disable_crosstool_file",
defaultValue = "false",
documentationCategory = OptionDocumentationCategory.TOOLCHAIN,
@@ -915,7 +906,6 @@
host.inmemoryDotdFiles = inmemoryDotdFiles;
host.doNotUseCpuTransformer = doNotUseCpuTransformer;
- host.enableCcToolchainConfigInfoFromSkylark = enableCcToolchainConfigInfoFromSkylark;
host.disableGenruleCcToolchainDependency = disableGenruleCcToolchainDependency;
host.disableEmittingStaticLibgcc = disableEmittingStaticLibgcc;
host.disableDepsetInUserFlags = disableDepsetInUserFlags;
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java
index 6321ed9..a15b32c 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java
@@ -660,7 +660,7 @@
mockToolsConfig,
CrosstoolConfig.CToolchain.newBuilder().setAbiVersion("orange").buildPartial());
- useConfiguration("--cpu=k8", "--experimental_enable_cc_toolchain_config_info");
+ useConfiguration("--cpu=k8");
ConfiguredTarget target = getConfiguredTarget("//a:a");
CcToolchainProvider toolchainProvider =
@@ -678,7 +678,7 @@
getAnalysisMock().ccSupport();
- useConfiguration("--cpu=k8", "--experimental_enable_cc_toolchain_config_info");
+ useConfiguration("--cpu=k8");
ConfiguredTarget target = getConfiguredTarget("//a:a");
CcToolchainProvider toolchainProvider =
@@ -1022,7 +1022,7 @@
}
@Test
- public void testCrosstoolNeededWhenStarlarkRuleNotEnabled() throws Exception {
+ public void testCrosstoolNeededWhenStarlarkRuleIsNotPresent() throws Exception {
reporter.removeHandler(failFastHandler);
scratch.file("lib/BUILD", "cc_library(name = 'lib', srcs = ['a.cc'])");
getSimpleStarlarkRule(/* addToolchainConfigAttribute= */ false);
@@ -1035,34 +1035,6 @@
}
@Test
- public void testCrosstoolReadWhenStarlarkRuleNotEnabled() throws Exception {
- reporter.removeHandler(failFastHandler);
- scratch.file("lib/BUILD", "cc_library(name = 'lib', srcs = ['a.cc'])");
- getSimpleStarlarkRule(/* addToolchainConfigAttribute= */ false);
-
- scratch.file("a/CROSSTOOL", getAnalysisMock().ccSupport().readCrosstoolFile());
-
- useConfiguration("--cpu=k8", "--crosstool_top=//a:a");
- ConfiguredTarget target = getConfiguredTarget("//lib:lib");
- assertNoEvents();
- assertThat(target).isNotNull();
- }
-
- @Test
- public void testCrosstoolNeededWhenStarlarkRuleIsEnabledButNotPresent() throws Exception {
- reporter.removeHandler(failFastHandler);
- scratch.file("lib/BUILD", "cc_library(name = 'lib', srcs = ['a.cc'])");
- getSimpleStarlarkRule(/* addToolchainConfigAttribute= */ false);
-
- useConfiguration(
- "--cpu=k8", "--crosstool_top=//a:a", "--experimental_enable_cc_toolchain_config_info");
- ConfiguredTarget target = getConfiguredTarget("//lib:lib");
- // Skyframe cannot find the CROSSTOOL file
- assertContainsEvent("errors encountered while analyzing target '//lib:lib'");
- assertThat(target).isNull();
- }
-
- @Test
public void testCrosstoolReadWhenStarlarkRuleIsEnabledButNotPresent() throws Exception {
reporter.removeHandler(failFastHandler);
scratch.file("lib/BUILD", "cc_library(name = 'lib', srcs = ['a.cc'])");
@@ -1070,8 +1042,7 @@
scratch.file("a/CROSSTOOL", getAnalysisMock().ccSupport().readCrosstoolFile());
- useConfiguration(
- "--cpu=k8", "--crosstool_top=//a:a", "--experimental_enable_cc_toolchain_config_info");
+ useConfiguration("--cpu=k8", "--crosstool_top=//a:a");
ConfiguredTarget target = getConfiguredTarget("//lib:lib");
assertThat(target).isNotNull();
}
@@ -1082,8 +1053,7 @@
scratch.file("lib/BUILD", "cc_library(name = 'lib', srcs = ['a.cc'])");
getSimpleStarlarkRule(/* addToolchainConfigAttribute= */ true);
- useConfiguration(
- "--cpu=k8", "--crosstool_top=//a:a", "--experimental_enable_cc_toolchain_config_info");
+ useConfiguration("--cpu=k8", "--crosstool_top=//a:a");
// We don't have a CROSSTOOL, but we don't need it
ConfiguredTarget target = getConfiguredTarget("//lib:lib");
assertThat(target).isNotNull();
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java
index a9c598f..b6c4fc3 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java
@@ -4089,16 +4089,11 @@
"load(':crosstool.bzl', 'cc_toolchain_config_rule')",
"cc_toolchain_alias(name='alias')",
"cc_toolchain_config_rule(name='r')");
- useConfiguration("--experimental_enable_cc_toolchain_config_info");
ConfiguredTarget target = getConfiguredTarget("//foo:r");
assertThat(target).isNotNull();
CcToolchainConfigInfo ccToolchainConfigInfo =
(CcToolchainConfigInfo) target.get(CcToolchainConfigInfo.PROVIDER.getKey());
assertThat(ccToolchainConfigInfo).isNotNull();
-
- useConfiguration("--experimental_enable_cc_toolchain_config_info=false");
- AssertionError e = assertThrows(AssertionError.class, () -> getConfiguredTarget("//foo:r"));
- assertThat(e).hasMessageThat().contains("Creating a CcToolchainConfigInfo is not enabled.");
}
@Test
@@ -4162,7 +4157,6 @@
@Test
public void testCcToolchainInfoFromSkylarkAllRequiredStringsPresent() throws Exception {
setupSkylarkRuleForStringFieldsTesting("");
- useConfiguration("--experimental_enable_cc_toolchain_config_info");
ConfiguredTarget target = getConfiguredTarget("//foo:r");
assertThat(target).isNotNull();
CcToolchainConfigInfo ccToolchainConfigInfo =
@@ -4253,7 +4247,6 @@
"load(':crosstool.bzl', 'cc_toolchain_config_rule')",
"cc_toolchain_alias(name='alias')",
"cc_toolchain_config_rule(name='r')");
- useConfiguration("--experimental_enable_cc_toolchain_config_info");
ConfiguredTarget target = getConfiguredTarget("//foo:r");
assertThat(target).isNotNull();
CcToolchainConfigInfo ccToolchainConfigInfo =
@@ -4323,7 +4316,6 @@
"load(':crosstool.bzl', 'cc_toolchain_config_rule')",
"cc_toolchain_alias(name='alias')",
"cc_toolchain_config_rule(name='r')");
- useConfiguration("--experimental_enable_cc_toolchain_config_info");
ConfiguredTarget target = getConfiguredTarget("//foo:r");
assertThat(target).isNotNull();
CcToolchainConfigInfo ccToolchainConfigInfo =
@@ -4452,7 +4444,6 @@
"cc_toolchain_alias(name='alias')",
"cc_toolchain_config_rule(name='r')");
- useConfiguration("--experimental_enable_cc_toolchain_config_info");
ConfiguredTarget target = getConfiguredTarget("//foo:r");
assertThat(target).isNotNull();
CcToolchainConfigInfo ccToolchainConfigInfo =
@@ -4587,7 +4578,6 @@
"cc_toolchain_alias(name='alias')",
"cc_toolchain_config_rule(name='r')");
- useConfiguration("--experimental_enable_cc_toolchain_config_info");
ConfiguredTarget target = getConfiguredTarget("//foo:r");
assertThat(target).isNotNull();
CcToolchainConfigInfo ccToolchainConfigInfo =