aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2020-05-01 17:16:57 +0000
committerWarner Losh <imp@FreeBSD.org>2020-05-01 17:16:57 +0000
commit22ea5a7250b866e9c53d9d20601b6291f6624549 (patch)
treeaa7731bf3c43f2c25204f8303d19b9b370c0778f
parenta10ed08fe00fba7f96e8c95e84ede42735bb5801 (diff)
downloadsrc-22ea5a7250b866e9c53d9d20601b6291f6624549.tar.gz
src-22ea5a7250b866e9c53d9d20601b6291f6624549.zip
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.
Notes
Notes: svn path=/head/; revision=360538
-rwxr-xr-xtools/boot/universe.sh13
1 files changed, 12 insertions, 1 deletions
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
-