aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2017-05-11 16:13:06 -0400
committerGravatar Kristina Chodorow <kchodorow@google.com>2017-05-12 11:12:16 -0400
commitf1631c2c85b6abc3f5b65156a52116e76a920e3f (patch)
treeec5a27467fbc11787b114c2090e98666ec34d043
parent1a57d298f8aa6ea8136d93223902104f2479cd2a (diff)
Automated g4 rollback of commit 34fe247448a9be13fc41f93ac78a071ec157f434.
*** Reason for rollback *** Rolling forward after fixing issues in http://b/38171368 *** Original change description *** Automated g4 rollback of commit 006a80425e7dd521634c5735d2730f40e9e82e06. *** Reason for rollback *** Need to roll this back as part of http://b/38171368 *** Original change description *** Make the cc_toolchain libc_top use the target configuration The removes redundancy from the logic around calculating the sysroot (and was been a TODO since 2014!) RELNOTES: None PiperOrigin-RevId: 155787049
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/cpp/AppleCcToolchain.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaHelper.java3
6 files changed, 14 insertions, 14 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java
index 715939500e..209eb226ae 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java
@@ -120,11 +120,11 @@ public final class AnalysisUtils {
}
/**
- * Returns the middleman artifact on the specified attribute of the specified rule, or an empty
- * set if it does not exist.
+ * Returns the middleman artifact on the specified attribute of the specified rule for the
+ * specified mode, or an empty set if it does not exist.
*/
- public static NestedSet<Artifact> getMiddlemanFor(RuleContext rule, String attribute) {
- TransitiveInfoCollection prereq = rule.getPrerequisite(attribute, Mode.HOST);
+ public static NestedSet<Artifact> getMiddlemanFor(RuleContext rule, String attribute, Mode mode) {
+ TransitiveInfoCollection prereq = rule.getPrerequisite(attribute, mode);
if (prereq == null) {
return NestedSetBuilder.emptySet(Order.STABLE_ORDER);
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
index 7ab8097ed9..009b6e437f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
@@ -947,7 +947,7 @@ public final class SkylarkRuleContext implements SkylarkValue {
@SkylarkCallable(documented = false)
public NestedSet<Artifact> middleMan(String attribute) throws EvalException {
checkMutable("middle_man");
- return AnalysisUtils.getMiddlemanFor(ruleContext, attribute);
+ return AnalysisUtils.getMiddlemanFor(ruleContext, attribute, Mode.HOST);
}
@SkylarkCallable(documented = false)
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/cpp/AppleCcToolchain.java b/src/main/java/com/google/devtools/build/lib/rules/apple/cpp/AppleCcToolchain.java
index 92902bcac7..fd679c969b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/cpp/AppleCcToolchain.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/cpp/AppleCcToolchain.java
@@ -17,6 +17,7 @@ import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.AnalysisUtils;
+import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
@@ -110,7 +111,7 @@ public class AppleCcToolchain extends CcToolchain {
RuleContext ruleContext, NestedSet<Artifact> link) {
return NestedSetBuilder.<Artifact>stableOrder()
.addTransitive(link)
- .addTransitive(AnalysisUtils.getMiddlemanFor(ruleContext, ":libc_top"))
+ .addTransitive(AnalysisUtils.getMiddlemanFor(ruleContext, ":libc_top", Mode.TARGET))
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java
index da27ada49e..2b0b66cde0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java
@@ -385,7 +385,7 @@ public class CcToolchain implements RuleConfiguredTargetFactory {
}
private NestedSet<Artifact> inputsForLibc(RuleContext ruleContext) {
- TransitiveInfoCollection libc = ruleContext.getPrerequisite(":libc_top", Mode.HOST);
+ TransitiveInfoCollection libc = ruleContext.getPrerequisite(":libc_top", Mode.TARGET);
return libc != null
? libc.getProvider(FileProvider.class).getFilesToBuild()
: NestedSetBuilder.<Artifact>emptySet(Order.STABLE_ORDER);
@@ -395,7 +395,7 @@ public class CcToolchain implements RuleConfiguredTargetFactory {
NestedSet<Artifact> crosstoolMiddleman) {
return NestedSetBuilder.<Artifact>stableOrder()
.addTransitive(crosstoolMiddleman)
- .addTransitive(AnalysisUtils.getMiddlemanFor(ruleContext, ":libc_top"))
+ .addTransitive(AnalysisUtils.getMiddlemanFor(ruleContext, ":libc_top", Mode.TARGET))
.build();
}
@@ -407,7 +407,7 @@ public class CcToolchain implements RuleConfiguredTargetFactory {
RuleContext ruleContext, NestedSet<Artifact> link) {
return NestedSetBuilder.<Artifact>stableOrder()
.addTransitive(link)
- .addTransitive(AnalysisUtils.getMiddlemanFor(ruleContext, ":libc_top"))
+ .addTransitive(AnalysisUtils.getMiddlemanFor(ruleContext, ":libc_top", Mode.TARGET))
.add(ruleContext.getPrerequisiteArtifact("$interface_library_builder", Mode.HOST))
.add(ruleContext.getPrerequisiteArtifact("$link_dynamic_library_tool", Mode.HOST))
.build();
@@ -493,7 +493,7 @@ public class CcToolchain implements RuleConfiguredTargetFactory {
private PathFragment calculateSysroot(RuleContext ruleContext) {
- TransitiveInfoCollection sysrootTarget = ruleContext.getPrerequisite(":sysroot", Mode.TARGET);
+ TransitiveInfoCollection sysrootTarget = ruleContext.getPrerequisite(":libc_top", Mode.TARGET);
if (sysrootTarget == null) {
CppConfiguration cppConfiguration =
Preconditions.checkNotNull(ruleContext.getFragment(CppConfiguration.class));
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java
index 8b7dbe92ff..f7414408f8 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java
@@ -85,9 +85,7 @@ public final class CcToolchainRule implements RuleDefinition {
.cfg(HOST)
.singleArtifact()
.value(env.getToolsLabel("//tools/cpp:link_dynamic_library")))
- // TODO(bazel-team): Should be using the TARGET configuration.
- .add(attr(":libc_top", LABEL).cfg(HOST).value(LIBC_TOP))
- .add(attr(":sysroot", LABEL).value(LIBC_TOP))
+ .add(attr(":libc_top", LABEL).value(LIBC_TOP))
.add(
attr(":lipo_context_collector", LABEL)
.cfg(LipoTransition.LIPO_COLLECTOR)
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaHelper.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaHelper.java
index fc44f09b70..5984de833e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaHelper.java
@@ -145,7 +145,8 @@ public abstract class JavaHelper {
/** Returns the artifacts required to invoke {@code javahome} relative binary in the action. */
public static NestedSet<Artifact> getHostJavabaseInputs(
RuleContext ruleContext, String implicitAttributesSuffix) {
- return AnalysisUtils.getMiddlemanFor(ruleContext, ":host_jdk" + implicitAttributesSuffix);
+ return AnalysisUtils.getMiddlemanFor(
+ ruleContext, ":host_jdk" + implicitAttributesSuffix, Mode.HOST);
}
/**