From 9f7180fc5211f9c381a57a940975390c825a7d90 Mon Sep 17 00:00:00 2001 From: Laszlo Csomor Date: Tue, 27 Sep 2016 13:07:43 +0000 Subject: Bootstrapping: don't use convenience symlinks When `compile.sh` builds bazel using bazel, it copies the resulting binary to `output/bazel`. However sometimes the convenience symlink `bazel-bin` is not created, probably because an old one is still around and cannot be deleted. That is clearly a bug, but to work around it, the bootstrap builder shouldn't attempt to rely on the creation of these symlinks in the first place. This change updates compile.sh to use `bazel info` to locate the `bazel-bin` directory's real path, and attempt to copy the bazel binary from there. This works around https://github.com/bazelbuild/bazel/issues/1827 -- MOS_MIGRATED_REVID=134398451 --- scripts/bootstrap/bootstrap.sh | 33 ++++++++++++++++++++------------- scripts/bootstrap/buildenv.sh | 2 +- scripts/bootstrap/compile.sh | 7 ++++--- 3 files changed, 25 insertions(+), 17 deletions(-) (limited to 'scripts/bootstrap') diff --git a/scripts/bootstrap/bootstrap.sh b/scripts/bootstrap/bootstrap.sh index c656e15dd0..20f5bbabdb 100755 --- a/scripts/bootstrap/bootstrap.sh +++ b/scripts/bootstrap/bootstrap.sh @@ -45,24 +45,31 @@ else fi if [ -z "${BAZEL-}" ]; then - function bazel_build() { - bootstrap_build ${BAZEL_ARGS-} \ - --verbose_failures \ - --javacopt="-g -source ${JAVA_VERSION} -target ${JAVA_VERSION}" \ - "${EMBED_LABEL_ARG[@]}" \ - "${@}" + function run_bootstrapping_bazel() { + local command=$1 + shift + run_bazel_jar $command \ + ${BAZEL_ARGS-} --verbose_failures \ + --javacopt="-g -source ${JAVA_VERSION} -target ${JAVA_VERSION}" "${@}" } else - function bazel_build() { - ${BAZEL} --bazelrc=${BAZELRC} ${BAZEL_DIR_STARTUP_OPTIONS} build \ - ${BAZEL_ARGS-} \ - --verbose_failures \ - --javacopt="-g -source ${JAVA_VERSION} -target ${JAVA_VERSION}" \ - "${EMBED_LABEL_ARG[@]}" \ - "${@}" + function run_bootstrapping_bazel() { + local command=$1 + shift + ${BAZEL} --bazelrc=${BAZELRC} ${BAZEL_DIR_STARTUP_OPTIONS} $command \ + ${BAZEL_ARGS-} --verbose_failures \ + --javacopt="-g -source ${JAVA_VERSION} -target ${JAVA_VERSION}" "${@}" } fi +function bazel_build() { + run_bootstrapping_bazel build "${EMBED_LABEL_ARG[@]}" "$@" +} + +function get_bazel_bin_path() { + run_bootstrapping_bazel info "bazel-bin" || echo "bazel-bin" +} + function md5_outputs() { [ -n "${BAZEL_TEST_XTRACE:-}" ] && set +x # Avoid garbage in the output # runfiles/MANIFEST & runfiles_manifest contain absolute path, ignore. diff --git a/scripts/bootstrap/buildenv.sh b/scripts/bootstrap/buildenv.sh index ebcf9429ac..4a946878c2 100755 --- a/scripts/bootstrap/buildenv.sh +++ b/scripts/bootstrap/buildenv.sh @@ -158,7 +158,7 @@ function fail() { exitCode=1 fi echo >&2 - echo "$@" >&2 + echo "ERROR: $@" >&2 exit $exitCode } diff --git a/scripts/bootstrap/compile.sh b/scripts/bootstrap/compile.sh index 77372f015b..c72b9f722e 100755 --- a/scripts/bootstrap/compile.sh +++ b/scripts/bootstrap/compile.sh @@ -302,8 +302,9 @@ else cp tools/osx/xcode_locator_stub.sh ${ARCHIVE_DIR}/_embedded_binaries/xcode-locator fi -# bazel build using bootstrap version -function bootstrap_build() { +function run_bazel_jar() { + local command=$1 + shift "${JAVA_HOME}/bin/java" \ -XX:+HeapDumpOnOutOfMemoryError -Xverify:none -Dfile.encoding=ISO-8859-1 \ -XX:HeapDumpPath=${OUTPUT_DIR} \ @@ -319,7 +320,7 @@ function bootstrap_build() { --nofatal_event_bus_exceptions \ ${BAZEL_DIR_STARTUP_OPTIONS} \ ${BAZEL_BOOTSTRAP_STARTUP_OPTIONS:-} \ - build \ + $command \ --ignore_unsupported_sandboxing \ --startup_time=329 --extract_data_time=523 \ --rc_source=/dev/null --isatty=1 \ -- cgit v1.2.3