- Issue #17031: Fix running regen in cross builds.
diff --git a/Lib/plat-generic/regen b/Lib/plat-generic/regen
index a20cdc1..c96167d 100755
--- a/Lib/plat-generic/regen
+++ b/Lib/plat-generic/regen
@@ -1,3 +1,3 @@
 #! /bin/sh
 set -v
-python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/netinet/in.h
+eval $PYTHON_FOR_BUILD ../../Tools/scripts/h2py.py -i "'(u_long)'" /usr/include/netinet/in.h
diff --git a/Makefile.pre.in b/Makefile.pre.in
index 8883461..716de12 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -203,7 +203,8 @@
 
 PYTHON_FOR_BUILD=@PYTHON_FOR_BUILD@
 _PYTHON_HOST_PLATFORM=@_PYTHON_HOST_PLATFORM@
-HOST_GNU_TYPE=  @host@
+BUILD_GNU_TYPE=	@build@
+HOST_GNU_TYPE=	@host@
 
 # The task to run while instrument when building the profile-opt target
 PROFILE_TASK=	$(srcdir)/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck
@@ -1123,6 +1124,12 @@
 	export DYLD_FRAMEWORK_PATH; DYLD_FRAMEWORK_PATH="`pwd`"; \
 	export EXE; EXE="$(BUILDEXE)"; \
 	if [ -n "$(MULTIARCH)" ]; then export MULTIARCH; MULTIARCH=$(MULTIARCH); fi; \
+	export PYTHON_FOR_BUILD; \
+	if [ "$(BUILD_GNU_TYPE)" = "$(HOST_GNU_TYPE)" ]; then \
+	  PYTHON_FOR_BUILD="$(BUILDPYTHON)"; \
+	else \
+	  PYTHON_FOR_BUILD="$(PYTHON_FOR_BUILD)"; \
+	fi; \
 	cd $(srcdir)/Lib/$(PLATDIR); $(RUNSHARED) ./regen
 
 python-config: $(srcdir)/Misc/python-config.in
diff --git a/Misc/NEWS b/Misc/NEWS
index f5428bd..891d179 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -539,6 +539,8 @@
 Build
 -----
 
+- Issue #17031: Fix running regen in cross builds.
+
 - Issue #3754: fix typo in pthread AC_CACHE_VAL.
 
 - Issue #15484: Fix _PYTHON_PROJECT_BASE for srcdir != builddir builds;
diff --git a/configure b/configure
index 255aa2c..9417710 100755
--- a/configure
+++ b/configure
@@ -2926,6 +2926,8 @@
 
 
 
+
+
 if test "$cross_compiling" = yes; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for python interpreter for cross build" >&5
 $as_echo_n "checking for python interpreter for cross build... " >&6; }
diff --git a/configure.ac b/configure.ac
index 75eb5da..5526f99 100644
--- a/configure.ac
+++ b/configure.ac
@@ -50,6 +50,8 @@
 AC_CONFIG_HEADER(pyconfig.h)
 
 AC_CANONICAL_HOST
+AC_SUBST(build)
+AC_SUBST(host)
 
 if test "$cross_compiling" = yes; then
     AC_MSG_CHECKING([for python interpreter for cross build])