From 22ea5a7250b866e9c53d9d20601b6291f6624549 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Fri, 1 May 2020 17:16:57 +0000 Subject: [PATCH] When we have an invalid build option, don't rm -rf the current directory. Add a quick sanity check to objdir before using it. It must start with /. If there was a make error getting it, report that and continue with the next target. If there was anything else, bail out. --- tools/boot/universe.sh | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tools/boot/universe.sh b/tools/boot/universe.sh index 68e77f8c706b..cc09d8f946c5 100755 --- a/tools/boot/universe.sh +++ b/tools/boot/universe.sh @@ -19,6 +19,12 @@ # Output is put into _.boot.$TARGET_ARCH.log in sys.boot. # +die() +{ + echo $* + exit 1 +} + dobuild() { local ta=$1 @@ -27,6 +33,12 @@ dobuild() echo -n "Building $ta ${opt} ... " objdir=$(make buildenv TARGET_ARCH=$ta BUILDENV_SHELL="make -V .OBJDIR" | tail -1) + case ${objdir} in + /*) ;; + make*) echo Error message from make: $objdir + continue ;; + *) die Crazy object dir: $objdir ;; + esac rm -rf ${objdir} if ! make buildenv TARGET_ARCH=$ta BUILDENV_SHELL="make clean cleandepend cleandir obj depend" \ > $lf 2>&1; then @@ -116,4 +128,3 @@ for i in \ ta=${i##*/} dobuild $ta _.boot.${ta}.debug.log "LOADER_DEBUG=yes" done -