diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationFunction.java index 2240ee58b5d11a..1c84d82981d62b 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationFunction.java @@ -100,7 +100,9 @@ public SkyValue compute(SkyKey skyKey, Environment env) if (platformMappingValue == null) { return null; } - BuildOptions baselineOptions = PrecomputedValue.BASELINE_CONFIGURATION.get(env); + BuildOptions baselineOptions = targetOptions.get(CoreOptions.class).isExec + ? PrecomputedValue.EXEC_BASELINE_CONFIGURATION.get(env) + : PrecomputedValue.BASELINE_CONFIGURATION.get(env); try { BuildOptions mappedBaselineOptions = BuildConfigurationKey.withPlatformMapping(platformMappingValue, baselineOptions) diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrecomputedValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrecomputedValue.java index 1b56eca79d1856..debc874c97c1f3 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/PrecomputedValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrecomputedValue.java @@ -98,6 +98,8 @@ public static <T> Injected injected(Precomputed<T> precomputed, T value) { // Unsharable because of complications in deserializing BuildOptions on startup due to caching. public static final Precomputed<BuildOptions> BASELINE_CONFIGURATION = new Precomputed<>("baseline_configuration", /*shareable=*/ false); + public static final Precomputed<BuildOptions> EXEC_BASELINE_CONFIGURATION = + new Precomputed<>("exec_baseline_configuration", /*shareable=*/ false); private final Object value; diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java index fc07a946d8d92c..5322fbc175e99c 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java @@ -1223,6 +1223,8 @@ private void setStarlarkSemantics(StarlarkSemantics starlarkSemantics) { public void setBaselineConfiguration(BuildOptions buildOptions) { PrecomputedValue.BASELINE_CONFIGURATION.set(injectable(), buildOptions); + PrecomputedValue.EXEC_BASELINE_CONFIGURATION.set(injectable(), + buildOptions.createExecOptions()); } public void injectExtraPrecomputedValues(List<PrecomputedValue.Injected> extraPrecomputedValues) {