aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rwxr-xr-xscripts/bootstrap/bootstrap.sh5
-rwxr-xr-xscripts/bootstrap/compile.sh9
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/BinTools.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/exec/SymlinkTreeHelper.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/commands/RunCommand.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/NamespaceSandboxRunner.java9
6 files changed, 27 insertions, 19 deletions
diff --git a/scripts/bootstrap/bootstrap.sh b/scripts/bootstrap/bootstrap.sh
index e0b42d6d5a..05af3583cd 100755
--- a/scripts/bootstrap/bootstrap.sh
+++ b/scripts/bootstrap/bootstrap.sh
@@ -35,6 +35,7 @@ fi
--genclass_top=//src/java_tools/buildjar:bootstrap_genclass_deploy.jar \
--ijar_top=//third_party/ijar \
--strategy=Javac=worker --worker_quit_after_build \
+ --genrule_strategy=standalone --spawn_strategy=standalone \
${EXTRA_BAZEL_ARGS-}"}
function bazel_bootstrap() {
@@ -42,12 +43,12 @@ function bazel_bootstrap() {
if [[ ! ${BAZEL_SKIP_TOOL_COMPILATION-} =~ "$2" ]]; then
log "Building $2"
if [ -n "${4-}" ]; then
- ${BAZEL} --nomaster_bazelrc --bazelrc=${BAZELRC} \
+ ${BAZEL} --nomaster_bazelrc --bazelrc=${BAZELRC} --batch \
build ${BAZEL_ARGS} \
--javacopt="-source ${JAVA_VERSION} -target ${JAVA_VERSION}" \
"${EMBED_LABEL_ARG[@]}" $1
else
- run_silent ${BAZEL} --nomaster_bazelrc --bazelrc=${BAZELRC} \
+ run_silent ${BAZEL} --nomaster_bazelrc --bazelrc=${BAZELRC} --batch \
build ${BAZEL_ARGS} \
--javacopt="-source ${JAVA_VERSION} -target ${JAVA_VERSION}" \
"${EMBED_LABEL_ARG[@]}" $1
diff --git a/scripts/bootstrap/compile.sh b/scripts/bootstrap/compile.sh
index ec9739777f..37e01995f6 100755
--- a/scripts/bootstrap/compile.sh
+++ b/scripts/bootstrap/compile.sh
@@ -342,19 +342,12 @@ else
cp src/main/tools/xcode_locator_stub.sh ${OUTPUT_DIR}/xcode-locator
fi
-log "Compiling namespace-sandbox..."
-if [[ $PLATFORM == "linux" ]]; then
- run_silent "${CC}" -o ${OUTPUT_DIR}/namespace-sandbox -std=c99 src/main/tools/namespace-sandbox.c src/main/tools/network-tools.c src/main/tools/process-tools.c -lm ${LDFLAGS}
-else
- run_silent "${CC}" -o ${OUTPUT_DIR}/namespace-sandbox -std=c99 src/main/tools/namespace-sandbox-dummy.c -lm ${LDFLAGS}
-fi
-
cp src/main/tools/build_interface_so ${OUTPUT_DIR}/build_interface_so
cp src/main/tools/jdk.* ${OUTPUT_DIR}
log "Creating Bazel self-extracting archive..."
ARCHIVE_DIR=${OUTPUT_DIR}/archive
-for i in libblaze.jar ${JNILIB} build-runfiles${EXE_EXT} process-wrapper${EXE_EXT} xcode-locator${EXE_EXT} namespace-sandbox${EXE_EXT} build_interface_so ${MSYS_DLLS} jdk.BUILD; do
+for i in libblaze.jar ${JNILIB} build-runfiles${EXE_EXT} process-wrapper${EXE_EXT} xcode-locator${EXE_EXT} build_interface_so ${MSYS_DLLS} jdk.BUILD; do
mkdir -p $(dirname $ARCHIVE_DIR/$i);
cp $OUTPUT_DIR/$i $ARCHIVE_DIR/$i;
done
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BinTools.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BinTools.java
index 13ce596ec7..936c4b9fa4 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/BinTools.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BinTools.java
@@ -15,13 +15,13 @@
package com.google.devtools.build.lib.analysis.config;
import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ArtifactFactory;
import com.google.devtools.build.lib.actions.EnvironmentalExecException;
import com.google.devtools.build.lib.actions.ExecException;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
-import com.google.devtools.build.lib.util.Preconditions;
import com.google.devtools.build.lib.vfs.Dirent;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
import com.google.devtools.build.lib.vfs.Path;
@@ -128,13 +128,16 @@ public final class BinTools {
}
public PathFragment getExecPath(String embedPath) {
- Preconditions.checkState(embeddedTools.contains(embedPath), "%s not in %s", embedPath,
- embeddedTools);
+ if (!embeddedTools.contains(embedPath)) {
+ return null;
+ }
return new PathFragment("_bin").getRelative(new PathFragment(embedPath).getBaseName());
}
public Artifact getEmbeddedArtifact(String embedPath, ArtifactFactory artifactFactory) {
- return artifactFactory.getDerivedArtifact(getExecPath(embedPath));
+ PathFragment path = getExecPath(embedPath);
+ Preconditions.checkNotNull(path, embedPath + " not found in embedded tools");
+ return artifactFactory.getDerivedArtifact(path);
}
public ImmutableList<Artifact> getAllEmbeddedArtifacts(ArtifactFactory artifactFactory) {
diff --git a/src/main/java/com/google/devtools/build/lib/exec/SymlinkTreeHelper.java b/src/main/java/com/google/devtools/build/lib/exec/SymlinkTreeHelper.java
index b74dd1a226..b557a6a08a 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/SymlinkTreeHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/SymlinkTreeHelper.java
@@ -13,6 +13,7 @@
// limitations under the License.
package com.google.devtools.build.lib.exec;
+import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;
import com.google.devtools.build.lib.actions.AbstractAction;
@@ -120,9 +121,9 @@ public final class SymlinkTreeHelper {
* Returns the complete argument list build-runfiles has to be called with.
*/
private List<String> getSpawnArgumentList(Path execRoot, BinTools binTools) {
- List<String> args = Lists.newArrayList(
- execRoot.getRelative(binTools.getExecPath(BUILD_RUNFILES))
- .getPathString());
+ PathFragment path = binTools.getExecPath(BUILD_RUNFILES);
+ Preconditions.checkNotNull(path, BUILD_RUNFILES + " not found in embedded tools");
+ List<String> args = Lists.newArrayList(execRoot.getRelative(path).getPathString());
if (filesetTree) {
args.add("--allow_relative");
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/RunCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/RunCommand.java
index 54353d5f89..34f6819afd 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/RunCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/RunCommand.java
@@ -246,8 +246,11 @@ public class RunCommand implements BlazeCommand {
options.getOptions(BuildRequestOptions.class).getSymlinkPrefix());
List<String> cmdLine = new ArrayList<>();
if (runOptions.scriptPath == null) {
+ PathFragment processWrapperPath = runtime.getBinTools().getExecPath(PROCESS_WRAPPER);
+ Preconditions.checkNotNull(
+ processWrapperPath, PROCESS_WRAPPER + " not found in embedded tools");
cmdLine.add(runtime.getDirectories().getExecRoot()
- .getRelative(runtime.getBinTools().getExecPath(PROCESS_WRAPPER)).getPathString());
+ .getRelative(processWrapperPath).getPathString());
cmdLine.add("-1");
cmdLine.add("15");
cmdLine.add("-");
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/NamespaceSandboxRunner.java b/src/main/java/com/google/devtools/build/lib/sandbox/NamespaceSandboxRunner.java
index 1fb5021e7d..7fae775e33 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/NamespaceSandboxRunner.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/NamespaceSandboxRunner.java
@@ -79,8 +79,15 @@ public class NamespaceSandboxRunner {
Path execRoot = runtime.getExecRoot();
BinTools binTools = runtime.getBinTools();
+ PathFragment embeddedTool = binTools.getExecPath(NAMESPACE_SANDBOX);
+ if (embeddedTool == null) {
+ // The embedded tool does not exist, meaning that we don't support sandboxing (e.g., while
+ // bootstrapping).
+ return false;
+ }
+
List<String> args = new ArrayList<>();
- args.add(execRoot.getRelative(binTools.getExecPath(NAMESPACE_SANDBOX)).getPathString());
+ args.add(execRoot.getRelative(embeddedTool).getPathString());
args.add("-C");
ImmutableMap<String, String> env = ImmutableMap.of();