From 5715621451526b936af95f30f800372d213782b6 Mon Sep 17 00:00:00 2001
From: Ryan Sundberg <ryan@arctype.co>
Date: Mon, 20 Mar 2023 20:32:12 -0700
Subject: [PATCH] build.sh: HOST_BINENV support

Introduces a new variable HOST_BINENV to override the location of
/usr/bin/env in the build.sh system.

Change-Id: Ia6d4991df683043247b9546e668b1c2e0bb448b2
---
 external/gpl3/gcc.old/usr.bin/host-libcpp/Makefile | 3 ++-
 external/gpl3/gcc/usr.bin/host-libcpp/Makefile     | 3 ++-
 tools/Makefile.gnuhost                             | 4 +++-
 tools/gcc/Makefile                                 | 4 ++--
 tools/gdb/Makefile                                 | 5 ++---
 5 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/external/gpl3/gcc.old/usr.bin/host-libcpp/Makefile b/external/gpl3/gcc.old/usr.bin/host-libcpp/Makefile
index ff72d663843..037251a7ecd 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 77ea9e0b2ba..67da300c9ff 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 15b92025dc3..5bb9cde938c 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 b5800ea6b3a..6246bb2b3cb 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 83b334c89eb..cafd3e52457 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" \
-- 
GitLab