From 4fb701adb5cdf4a87d7457bfe75b76338a8d351a Mon Sep 17 00:00:00 2001 From: Googler Date: Wed, 6 Sep 2023 12:38:11 -0700 Subject: [PATCH] fix forward for https://github.com/bazelbuild/bazel/commit/ceddfb1ece1f8ed7ff81558fa1751e6526df031b. Make sure the use the appropriate check for alias + feature flag so trimming does not get applied PiperOrigin-RevId: 563185304 Change-Id: I6f1d3f0fb1a5c85c980faa196832f094ac4c9666 --- .../producers/TargetAndConfigurationProducer.java | 4 +--- .../ConfigFeatureFlagTaggedTrimmingTransitionFactory.java | 8 ++++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/google/devtools/build/lib/analysis/producers/TargetAndConfigurationProducer.java b/src/main/java/com/google/devtools/build/lib/analysis/producers/TargetAndConfigurationProducer.java index e3b2e15b94b0e3..3f8bbba7b5e091 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/producers/TargetAndConfigurationProducer.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/producers/TargetAndConfigurationProducer.java @@ -466,9 +466,7 @@ public StateMachine computeTransition(Tasks tasks) { transition = transitionFactory.create(transitionData); } - boolean isAlias = target.getAssociatedRule().getName().equals("alias"); - - if (trimmingTransitionFactory != null && !isAlias) { + if (trimmingTransitionFactory != null) { var trimmingTransition = trimmingTransitionFactory.create(transitionData); if (transition != null) { transition = ComposingTransition.of(transition, trimmingTransition); diff --git a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagTaggedTrimmingTransitionFactory.java b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagTaggedTrimmingTransitionFactory.java index 3cdec3566caf96..27c190c6a24bab 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagTaggedTrimmingTransitionFactory.java +++ b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagTaggedTrimmingTransitionFactory.java @@ -20,10 +20,12 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSortedSet; import com.google.common.collect.Ordering; +import com.google.devtools.build.lib.analysis.AliasProvider; import com.google.devtools.build.lib.analysis.config.BuildOptions; import com.google.devtools.build.lib.analysis.config.BuildOptionsView; import com.google.devtools.build.lib.analysis.config.CoreOptions; import com.google.devtools.build.lib.analysis.config.FragmentOptions; +import com.google.devtools.build.lib.analysis.config.transitions.NoTransition; import com.google.devtools.build.lib.analysis.config.transitions.PatchTransition; import com.google.devtools.build.lib.analysis.config.transitions.TransitionFactory; import com.google.devtools.build.lib.cmdline.Label; @@ -94,6 +96,12 @@ public ConfigFeatureFlagTaggedTrimmingTransitionFactory(String attributeName) { public PatchTransition create(RuleTransitionData ruleData) { NonconfiguredAttributeMapper attrs = NonconfiguredAttributeMapper.of(ruleData.rule()); RuleClass ruleClass = ruleData.rule().getRuleClassObject(); + + if (AliasProvider.mayBeAlias(ruleData.rule())) { + // As a convenience, do not require transitive_config to be set for alias rule. + return NoTransition.INSTANCE; + } + if (ruleClass.getName().equals(ConfigRuleClasses.ConfigFeatureFlagRule.RULE_NAME)) { return new ConfigFeatureFlagTaggedTrimmingTransition( ImmutableSortedSet.of(ruleData.rule().getLabel()));