diff options
Diffstat (limited to 'src')
12 files changed, 46 insertions, 51 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java b/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java index c241c5698a..faa6db0025 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java +++ b/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java @@ -606,9 +606,9 @@ public abstract class AbstractAction implements Action, SkylarkValue { return null; } - @Nullable @Override + @Nullable public PlatformInfo getExecutionPlatform() { - return null; + return getOwner().getExecutionPlatform(); } } diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionOwner.java b/src/main/java/com/google/devtools/build/lib/actions/ActionOwner.java index 864e68a8f7..4ce22b752c 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/ActionOwner.java +++ b/src/main/java/com/google/devtools/build/lib/actions/ActionOwner.java @@ -16,6 +16,7 @@ package com.google.devtools.build.lib.actions; import com.google.auto.value.AutoValue; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; +import com.google.devtools.build.lib.analysis.platform.PlatformInfo; import com.google.devtools.build.lib.buildeventstream.BuildEvent; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; @@ -43,6 +44,7 @@ public abstract class ActionOwner { "empty target kind", "system", null, + null, null); public static ActionOwner create( @@ -53,7 +55,8 @@ public abstract class ActionOwner { @Nullable String targetKind, String configurationChecksum, @Nullable BuildEvent configuration, - @Nullable String additionalProgressInfo) { + @Nullable String additionalProgressInfo, + @Nullable PlatformInfo executionPlatform) { return new AutoValue_ActionOwner( location, label, @@ -62,7 +65,8 @@ public abstract class ActionOwner { Preconditions.checkNotNull(configurationChecksum), configuration, targetKind, - additionalProgressInfo); + additionalProgressInfo, + executionPlatform); } /** Returns the location of this ActionOwner, if any; null otherwise. */ @@ -105,5 +109,12 @@ public abstract class ActionOwner { @Nullable abstract String getAdditionalProgressInfo(); + /** + * Returns the {@link PlatformInfo} platform this action should be executed on. If the execution + * platform is {@code null}, then the host platform is assumed. + */ + @Nullable + abstract PlatformInfo getExecutionPlatform(); + ActionOwner() {} } diff --git a/src/main/java/com/google/devtools/build/lib/actions/SimpleSpawn.java b/src/main/java/com/google/devtools/build/lib/actions/SimpleSpawn.java index 19cfedb81e..4daffaf209 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/SimpleSpawn.java +++ b/src/main/java/com/google/devtools/build/lib/actions/SimpleSpawn.java @@ -141,6 +141,6 @@ public final class SimpleSpawn implements Spawn { @Override @Nullable public PlatformInfo getExecutionPlatform() { - return null; + return owner.getExecutionPlatform(); } } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java index 25a0cf3381..9f06d5ce96 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java @@ -381,7 +381,8 @@ public final class RuleContext extends TargetContext @Override public ActionOwner getActionOwner() { if (actionOwner == null) { - actionOwner = createActionOwner(rule, aspectDescriptors, getConfiguration()); + actionOwner = + createActionOwner(rule, aspectDescriptors, getConfiguration(), getExecutionPlatform()); } return actionOwner; } @@ -461,7 +462,8 @@ public final class RuleContext extends TargetContext public static ActionOwner createActionOwner( Rule rule, ImmutableList<AspectDescriptor> aspectDescriptors, - BuildConfiguration configuration) { + BuildConfiguration configuration, + @Nullable PlatformInfo executionPlatform) { return ActionOwner.create( rule.getLabel(), aspectDescriptors, @@ -470,7 +472,8 @@ public final class RuleContext extends TargetContext rule.getTargetKind(), configuration.checksum(), configuration, - configuration.isHostConfiguration() ? HOST_CONFIGURATION_PROGRESS_TAG : null); + configuration.isHostConfiguration() ? HOST_CONFIGURATION_PROGRESS_TAG : null, + executionPlatform); } @Override diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java index edb6aab5c1..74bd33a0d6 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java @@ -55,7 +55,6 @@ import com.google.devtools.build.lib.analysis.AnalysisEnvironment; import com.google.devtools.build.lib.analysis.FilesToRunProvider; import com.google.devtools.build.lib.analysis.TransitiveInfoCollection; import com.google.devtools.build.lib.analysis.config.BuildConfiguration; -import com.google.devtools.build.lib.analysis.platform.PlatformInfo; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.collect.nestedset.NestedSetView; @@ -110,8 +109,6 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie private final ExtraActionInfoSupplier<?> extraActionInfoSupplier; - @Nullable private final PlatformInfo executionPlatform; - /** * Constructs a SpawnAction using direct initialization arguments. * @@ -157,7 +154,6 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie EmptyRunfilesSupplier.INSTANCE, mnemonic, false, - null, null); } @@ -199,8 +195,7 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie RunfilesSupplier runfilesSupplier, String mnemonic, boolean executeUnconditionally, - ExtraActionInfoSupplier<?> extraActionInfoSupplier, - @Nullable PlatformInfo executionPlatform) { + ExtraActionInfoSupplier<?> extraActionInfoSupplier) { super(owner, tools, inputs, runfilesSupplier, outputs, env); this.resourceSet = resourceSet; this.executionInfo = executionInfo; @@ -210,7 +205,6 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie this.mnemonic = mnemonic; this.executeUnconditionally = executeUnconditionally; this.extraActionInfoSupplier = extraActionInfoSupplier; - this.executionPlatform = executionPlatform; } @Override @@ -466,12 +460,6 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie return actionExecutionContext.getSpawnActionContext(getMnemonic()); } - @Override - @Nullable - public PlatformInfo getExecutionPlatform() { - return executionPlatform; - } - /** * A spawn instance that is tied to a specific SpawnAction. */ @@ -623,7 +611,6 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie private String mnemonic = "Unknown"; protected ExtraActionInfoSupplier<?> extraActionInfoSupplier = null; private boolean disableSandboxing = false; - @Nullable private PlatformInfo executionPlatform; /** * Creates a SpawnAction builder. @@ -651,7 +638,6 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie this.commandLines = Lists.newArrayList(other.commandLines); this.progressMessage = other.progressMessage; this.mnemonic = other.mnemonic; - this.executionPlatform = other.executionPlatform; } /** @@ -673,7 +659,6 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie */ @CheckReturnValue public Action[] build(ActionConstructionContext context) { - setExecutionPlatform(context.getExecutionPlatform()); return build(context.getActionOwner(), context.getAnalysisEnvironment(), context.getConfiguration()); } @@ -821,8 +806,7 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie progressMessage, new CompositeRunfilesSupplier( Iterables.concat(this.inputRunfilesSuppliers, this.toolRunfilesSuppliers)), - mnemonic, - executionPlatform); + mnemonic); } /** @@ -853,8 +837,7 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie ImmutableMap<String, String> executionInfo, CharSequence progressMessage, RunfilesSupplier runfilesSupplier, - String mnemonic, - PlatformInfo executionPlatform) { + String mnemonic) { return new SpawnAction( owner, tools, @@ -869,8 +852,7 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie runfilesSupplier, mnemonic, executeUnconditionally, - extraActionInfoSupplier, - executionPlatform); + extraActionInfoSupplier); } private ImmutableList<String> buildExecutableArgs( @@ -1372,11 +1354,6 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie this.disableSandboxing = true; return this; } - - public Builder setExecutionPlatform(@Nullable PlatformInfo executionPlatform) { - this.executionPlatform = executionPlatform; - return this; - } } /** diff --git a/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraAction.java b/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraAction.java index 645348264f..e29f0e546a 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraAction.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraAction.java @@ -87,7 +87,6 @@ public final class ExtraAction extends SpawnAction { new CompositeRunfilesSupplier(shadowedAction.getRunfilesSupplier(), runfilesSupplier), mnemonic, false, - null, null); this.shadowedAction = shadowedAction; this.createDummyOutput = createDummyOutput; diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/LtoBackendAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/LtoBackendAction.java index bb87356728..70586b8efb 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/LtoBackendAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/LtoBackendAction.java @@ -29,7 +29,6 @@ import com.google.devtools.build.lib.actions.ResourceSet; import com.google.devtools.build.lib.actions.RunfilesSupplier; import com.google.devtools.build.lib.analysis.actions.CommandLine; import com.google.devtools.build.lib.analysis.actions.SpawnAction; -import com.google.devtools.build.lib.analysis.platform.PlatformInfo; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.util.Fingerprint; import com.google.devtools.build.lib.vfs.FileSystemUtils; @@ -75,8 +74,7 @@ public final class LtoBackendAction extends SpawnAction { Map<String, String> executionInfo, CharSequence progressMessage, RunfilesSupplier runfilesSupplier, - String mnemonic, - @Nullable PlatformInfo executionPlatform) { + String mnemonic) { super( owner, ImmutableList.<Artifact>of(), @@ -91,8 +89,7 @@ public final class LtoBackendAction extends SpawnAction { runfilesSupplier, mnemonic, false, - null, - executionPlatform); + null); mandatoryInputs = inputs; Preconditions.checkState( (bitcodeFiles == null) == (imports == null), @@ -222,8 +219,7 @@ public final class LtoBackendAction extends SpawnAction { ImmutableMap<String, String> executionInfo, CharSequence progressMessage, RunfilesSupplier runfilesSupplier, - String mnemonic, - @Nullable PlatformInfo executionPlatform) { + String mnemonic) { return new LtoBackendAction( inputsAndTools.toCollection(), bitcodeFiles, @@ -236,8 +232,7 @@ public final class LtoBackendAction extends SpawnAction { executionInfo, progressMessage, runfilesSupplier, - mnemonic, - executionPlatform); + mnemonic); } } } diff --git a/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleAction.java b/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleAction.java index 728c07cbe8..7cf23808ec 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleAction.java @@ -64,7 +64,6 @@ public class GenRuleAction extends SpawnAction { runfilesSupplier, "Genrule", false, - null, null); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java index 9ef4ffe01d..dd4a5caa07 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java @@ -211,8 +211,7 @@ public final class JavaCompileAction extends SpawnAction { runfiles, "Javac", false /*executeUnconditionally*/, - null /*extraActionInfoSupplier*/, - null /*executionPlatform*/); + null /*extraActionInfoSupplier*/); this.javaCompileCommandLine = javaCompileCommandLine; this.commandLine = commandLine; diff --git a/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java b/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java index eab667a7ff..ecd3fc3d63 100644 --- a/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java +++ b/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java @@ -256,6 +256,7 @@ public final class ActionsTestUtil { null, "dummy-configuration", null, + null, null); public static final ArtifactOwner NULL_ARTIFACT_OWNER = diff --git a/src/test/java/com/google/devtools/build/lib/exec/util/FakeOwner.java b/src/test/java/com/google/devtools/build/lib/exec/util/FakeOwner.java index caf7b5120c..bc54d6735b 100644 --- a/src/test/java/com/google/devtools/build/lib/exec/util/FakeOwner.java +++ b/src/test/java/com/google/devtools/build/lib/exec/util/FakeOwner.java @@ -55,7 +55,8 @@ public final class FakeOwner implements ActionExecutionMetadata { /*targetKind=*/ null, "configurationChecksum", /* configuration=*/ null, - "additionalProgressInfo"); + "additionalProgressInfo", + null); } @Override @@ -157,6 +158,6 @@ public final class FakeOwner implements ActionExecutionMetadata { @Nullable @Override public PlatformInfo getExecutionPlatform() { - throw new IllegalStateException(); + return null; } } diff --git a/src/test/java/com/google/devtools/build/lib/runtime/ExperimentalStateTrackerTest.java b/src/test/java/com/google/devtools/build/lib/runtime/ExperimentalStateTrackerTest.java index 9dfdb8ee9f..b9133f3cb0 100644 --- a/src/test/java/com/google/devtools/build/lib/runtime/ExperimentalStateTrackerTest.java +++ b/src/test/java/com/google/devtools/build/lib/runtime/ExperimentalStateTrackerTest.java @@ -436,7 +436,15 @@ public class ExperimentalStateTrackerTest extends FoundationTestCase { Label.parseAbsolute("//some/very/very/long/path/for/some/library/directory:libfoo"); ActionOwner owner = ActionOwner.create( - label, ImmutableList.<AspectDescriptor>of(), null, null, null, "fedcba", null, null); + label, + ImmutableList.<AspectDescriptor>of(), + null, + null, + null, + "fedcba", + null, + null, + null); when(action.getOwner()).thenReturn(owner); clock.advanceMillis(TimeUnit.SECONDS.toMillis(3)); @@ -775,6 +783,7 @@ public class ExperimentalStateTrackerTest extends FoundationTestCase { null, "abcdef", null, + null, null); Label labelBarTest = Label.parseAbsolute("//baz:bartest"); @@ -792,6 +801,7 @@ public class ExperimentalStateTrackerTest extends FoundationTestCase { null, "fedcba", null, + null, null); stateTracker.testFilteringComplete(filteringComplete); |