aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Ulf Adams <ulfjack@google.com>2015-11-06 19:31:12 +0000
committerGravatar Florian Weikert <fwe@google.com>2015-11-06 22:53:44 +0000
commit7cdc5c9dc3f10fc77462d0c3e020ba68df21137e (patch)
tree0bfcbfbf79dc8078ed2312a8e8f45d400b873f1f /src
parent42984f371c18033f3f162965b8f288ececbdbfd8 (diff)
Use the analysis package roots to set up the exec root.
With the new Skyframe-based loading phase runner as well as with --experimental_interleave_loading_and_analysis, we no longer run a full loading phase to load all dependencies; instead, we load packages during configuration creation and analysis. In that case, the loading phase result's package roots are empty. This change should be safe - the analysis package roots can be a subset of the loading package roots (we may not need to load stuff if there are select expressions with unused branches for the current set of options), but it should cover everything that is needed for the execution phase. If there is a bug in the new code path, it manifests as odd file not found errors during action execution, where the files seem to be there (but are not mapped into the exec root due to missing symlinks). The old code path uses TransitiveTargetValue.getTransitiveSuccessfulPackages(), the new one uses ConfiguredTargetValue.getTransitivePackages() and AspectValue.getTransitivePackages(). I audited the new code paths, and they look ok. -- MOS_MIGRATED_REVID=107252220
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java
index 8a7477f032..ed4f6c9665 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java
@@ -206,7 +206,7 @@ public final class BuildTool {
if (needsExecutionPhase(request.getBuildOptions())) {
runtime.getSkyframeExecutor().injectTopLevelContext(request.getTopLevelArtifactContext());
executionTool.executeBuild(request.getId(), analysisResult, result,
- configurations, transformPackageRoots(loadingResult.getPackageRoots()));
+ configurations, transformPackageRoots(analysisResult.getPackageRoots()));
}
String delayedErrorMsg = analysisResult.getError();