From f57b27e3f85b468033c3c91c7f2f2e90aa2e8a04 Mon Sep 17 00:00:00 2001 From: Alex Richardson Date: Tue, 11 Aug 2020 16:46:48 +0000 Subject: [PATCH] Fix -DBUILD_WITH_STRICT_TMPPATH dtrace builds Some of the scripts used for libdtrace invoke nawk instead of awk (for example cddl/contrib/opensolaris/lib/libdtrace/common/mknames.sh). When bootstrapping all tools, we get the nawk -> awk link while building usr.bin/awk, but when linking/copying the dependencies from the host we were only adding awk but not nawk. This was silently generating invalid files when building libdtrace with BUILD_WITH_STRICT_TMPPATH=1 since those scripts invoke nawk instead of awk. In addition to adding the missing link this commit also adds set -e to those scripts to catch errors like this in the future. Reviewed By: markj, emaste Differential Revision: https://reviews.freebsd.org/D26025 --- Makefile.inc1 | 6 +++++- cddl/contrib/opensolaris/lib/libdtrace/common/mkerrno.sh | 1 + cddl/contrib/opensolaris/lib/libdtrace/common/mkerrtags.sh | 1 + cddl/contrib/opensolaris/lib/libdtrace/common/mknames.sh | 1 + cddl/contrib/opensolaris/lib/libdtrace/common/mksignal.sh | 1 + 5 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Makefile.inc1 b/Makefile.inc1 index f85f0326da25..9223123b1e1b 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -2240,9 +2240,13 @@ ${_bt}-usr.bin/mandoc: ${_bt}-lib/libopenbsd _basic_bootstrap_tools_multilink=usr.bin/grep grep,egrep,fgrep _basic_bootstrap_tools_multilink+=bin/test test,[ # bootstrap tools needed by buildworld: -_basic_bootstrap_tools=usr.bin/awk usr.bin/cut bin/expr usr.bin/gencat \ +_basic_bootstrap_tools=usr.bin/cut bin/expr usr.bin/gencat \ usr.bin/join usr.bin/mktemp bin/rmdir usr.bin/sed usr.bin/sort \ usr.bin/truncate usr.bin/tsort +# Some build scripts use nawk instead of awk (this happens at least in +# cddl/contrib/opensolaris/lib/libdtrace/common/mknames.sh) so we need both awk +# and nawk in ${WORLDTMP}/legacy/bin. +_basic_bootstrap_tools_multilink+=usr.bin/awk awk,nawk # file2c is required for building usr.sbin/config: _basic_bootstrap_tools+=usr.bin/file2c # uuencode/uudecode required for share/tabset diff --git a/cddl/contrib/opensolaris/lib/libdtrace/common/mkerrno.sh b/cddl/contrib/opensolaris/lib/libdtrace/common/mkerrno.sh index 50b7f1c1b908..c9fb9e04fe00 100755 --- a/cddl/contrib/opensolaris/lib/libdtrace/common/mkerrno.sh +++ b/cddl/contrib/opensolaris/lib/libdtrace/common/mkerrno.sh @@ -25,6 +25,7 @@ # Use is subject to license terms. # #ident "%Z%%M% %I% %E% SMI" +set -e echo "\ /*\n\ diff --git a/cddl/contrib/opensolaris/lib/libdtrace/common/mkerrtags.sh b/cddl/contrib/opensolaris/lib/libdtrace/common/mkerrtags.sh index d5651ff727fc..cc3ef3cc9617 100644 --- a/cddl/contrib/opensolaris/lib/libdtrace/common/mkerrtags.sh +++ b/cddl/contrib/opensolaris/lib/libdtrace/common/mkerrtags.sh @@ -25,6 +25,7 @@ # Use is subject to license terms. # #ident "%Z%%M% %I% %E% SMI" +set -e BSDECHO=-e diff --git a/cddl/contrib/opensolaris/lib/libdtrace/common/mknames.sh b/cddl/contrib/opensolaris/lib/libdtrace/common/mknames.sh index 2fdc2fa636d5..5bb47cb1781f 100644 --- a/cddl/contrib/opensolaris/lib/libdtrace/common/mknames.sh +++ b/cddl/contrib/opensolaris/lib/libdtrace/common/mknames.sh @@ -25,6 +25,7 @@ # Use is subject to license terms. # #ident "%Z%%M% %I% %E% SMI" +set -e BSDECHO=-e diff --git a/cddl/contrib/opensolaris/lib/libdtrace/common/mksignal.sh b/cddl/contrib/opensolaris/lib/libdtrace/common/mksignal.sh index 1bffa6468c2b..dce06a0e1797 100755 --- a/cddl/contrib/opensolaris/lib/libdtrace/common/mksignal.sh +++ b/cddl/contrib/opensolaris/lib/libdtrace/common/mksignal.sh @@ -25,6 +25,7 @@ # Use is subject to license terms. # #ident "%Z%%M% %I% %E% SMI" +set -e echo "\ /*\n\