diff --git a/external/gpl3/gcc.old/usr.bin/host-libcpp/Makefile b/external/gpl3/gcc.old/usr.bin/host-libcpp/Makefile
index ff72d66384341c33727b13561d0de8333534643d..037251a7ecdecd82559affc227f72f83880c0e56 100644
--- a/external/gpl3/gcc.old/usr.bin/host-libcpp/Makefile
+++ b/external/gpl3/gcc.old/usr.bin/host-libcpp/Makefile
@@ -19,8 +19,9 @@ BUILD_ENV= \
 		RANLIB=${HOST_RANLIB:Q} \
 		YACC=${YACC:Q}
 
+HOST_BINENV?=	/usr/bin/env -i
 GMAKE_J_ARGS?=	${MAKEFLAGS:[*]:M*-j*:C/(^|.* )(-j ?[0-9][0-9]*).*/\2/W}
-BUILD_COMMAND=	/usr/bin/env -i ${BUILD_ENV} ${TOOL_GMAKE} ${GMAKE_J_ARGS} -e
+BUILD_COMMAND=	${HOST_BINENV} ${BUILD_ENV} ${TOOL_GMAKE} ${GMAKE_J_ARGS} -e
 
 libcpp/libcpp.a:
 	[ ! -d libcpp ] && mkdir libcpp || true
diff --git a/external/gpl3/gcc/usr.bin/host-libcpp/Makefile b/external/gpl3/gcc/usr.bin/host-libcpp/Makefile
index 77ea9e0b2ba8148551faa64083bc3b8b1c8a7a3f..67da300c9ff0f02f61628d1bcad89e43a7898296 100644
--- a/external/gpl3/gcc/usr.bin/host-libcpp/Makefile
+++ b/external/gpl3/gcc/usr.bin/host-libcpp/Makefile
@@ -19,8 +19,9 @@ BUILD_ENV= \
 		RANLIB=${HOST_RANLIB:Q} \
 		YACC=${YACC:Q}
 
+HOST_BINENV?=	/usr/bin/env -i
 GMAKE_J_ARGS?=	${MAKEFLAGS:[*]:M*-j*:C/(^|.* )(-j ?[0-9][0-9]*).*/\2/W}
-BUILD_COMMAND=	/usr/bin/env -i ${BUILD_ENV} ${TOOL_GMAKE} ${GMAKE_J_ARGS} -e
+BUILD_COMMAND=	${HOST_BINENV} ${BUILD_ENV} ${TOOL_GMAKE} ${GMAKE_J_ARGS} -e
 
 libcpp/libcpp.a:
 	[ ! -d libcpp ] && mkdir libcpp || true
diff --git a/tools/Makefile.gnuhost b/tools/Makefile.gnuhost
index 15b92025dc369de7df1809f502136d6606a5871e..5bb9cde938c930f440d402b2bdc3b87da68e14ee 100644
--- a/tools/Makefile.gnuhost
+++ b/tools/Makefile.gnuhost
@@ -97,11 +97,13 @@ MAKE_ARGS+=	_NOWRAPPER=1
 BUILD_COMMAND=	${BUILD_ENV} ${MAKE} ${MAKE_ARGS}
 .else
 
+HOST_BINENV?=	/usr/bin/env -i
+
 # gmake version of this puts MAKE_ARGS in the environment to be sure that
 # sub-gmake's get them, otherwise tools/gcc tries to build libgcc and
 # fails.  it also uses "env -i" to entirely clear out MAKEFLAGS.
 GMAKE_J_ARGS?=	${MAKEFLAGS:[*]:M*-j*:C/(^|.* )(-j ?[0-9][0-9]*).*/\2/W}
-BUILD_COMMAND=	/usr/bin/env -i ${BUILD_ENV} ${MAKE_ARGS:N-*} ${TOOL_GMAKE} ${GMAKE_J_ARGS} -e ${MAKE_ARGS}
+BUILD_COMMAND=	${HOST_BINENV} ${BUILD_ENV} ${MAKE_ARGS:N-*} ${TOOL_GMAKE} ${GMAKE_J_ARGS} -e ${MAKE_ARGS}
 
 .endif
 
diff --git a/tools/gcc/Makefile b/tools/gcc/Makefile
index b5800ea6b3a4a30fdb5bf195a5dfc2c292a67338..6246bb2b3cbbf5e158b42cabf687537c6e775f45 100644
--- a/tools/gcc/Makefile
+++ b/tools/gcc/Makefile
@@ -110,10 +110,10 @@ MKNATIVE_CONFIG_TARGET_LIBS+= \
 .endif
 .endif
 
-BINENV=		/usr/bin/env -i
+HOST_BINENV?=		/usr/bin/env -i
 
 
-MKNATIVE_ENV=	${BINENV} ${CONFIGURE_ENV:NC*:NLD*} \
+MKNATIVE_ENV=	${HOST_BINENV} ${CONFIGURE_ENV:NC*:NLD*} \
 			CC_FOR_BUILD=${CC_FOR_BUILD:Q} \
 			CXX_FOR_BUILD=${HOST_CXX:Q} \
 			CFLAGS_FOR_BUILD="-I${TOOLDIR}/include" \
diff --git a/tools/gdb/Makefile b/tools/gdb/Makefile
index 83b334c89eb05b3df587eb87d6d008028123b9d5..cafd3e52457ba1fe6dac21297661034401e09299 100644
--- a/tools/gdb/Makefile
+++ b/tools/gdb/Makefile
@@ -23,10 +23,9 @@ INSTALL_TARGET=	install-gdb
 .include "${.CURDIR}/../Makefile.gmakehost"
 BUILD_MAKE=${TOOL_GMAKE}
 
-BINENV=		/usr/bin/env -i
+HOST_BINENV?=	/usr/bin/env -i
 
-
-MKNATIVE_ENV=	${BINENV} ${CONFIGURE_ENV:NC*:NLD*:Nam_cv_func_iconv*} \
+MKNATIVE_ENV=	${HOST_BINENV} ${CONFIGURE_ENV:NC*:NLD*:Nam_cv_func_iconv*} \
 			CC_FOR_BUILD=${HOST_CC:Q} \
 			CXX_FOR_BUILD=${HOST_CXX:Q} \
 			CFLAGS_FOR_BUILD="-I${TOOLDIR}/include" \