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 =