diff options
author | Ulf Adams <ulfjack@google.com> | 2015-11-06 19:31:12 +0000 |
---|---|---|
committer | Florian Weikert <fwe@google.com> | 2015-11-06 22:53:44 +0000 |
commit | 7cdc5c9dc3f10fc77462d0c3e020ba68df21137e (patch) | |
tree | 0bfcbfbf79dc8078ed2312a8e8f45d400b873f1f /src | |
parent | 42984f371c18033f3f162965b8f288ececbdbfd8 (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.java | 2 |
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(); |