Add support in Python build system to specify host pgen Python needs a "pgen" program to build itself. Unfortunately, the Python build system assumes that it can use the pgen program it has just built to build itself. Obviously, this cannot work in cross-compilation mode since the pgen program have been built for the target. Therefore, this patch adds support in the Python build system for the new PGEN_FOR_BUILD variable, so that we can point Python ./configure script to the pgen program that have been previously built for the host. Patch ported to python2.7 by Maxime Ripard , and later significantly reworked by Thomas Petazzoni , with some inspiration taken from the Python patches of the PTXdist project, and then ported to python3.3 by Maxime Ripard Signed-off-by: Maxime Ripard --- Makefile.pre.in | 5 +++-- configure.ac | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) Index: Python-3.3.0/Makefile.pre.in =================================================================== --- Python-3.3.0.orig/Makefile.pre.in +++ Python-3.3.0/Makefile.pre.in @@ -239,6 +239,7 @@ ########################################################################## # Parser PGEN= Parser/pgen$(EXE) +PGEN_FOR_BUILD=@PGEN_FOR_BUILD@ PSRCS= \ Parser/acceler.c \ @@ -639,8 +640,8 @@ $(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGENSRCS) @$(MKDIR_P) Include - $(MAKE) $(PGEN) - $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) + $(MAKE) $(PGEN_FOR_BUILD) + $(PGEN_FOR_BUILD) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) $(GRAMMAR_C): $(GRAMMAR_H) $(GRAMMAR_INPUT) $(PGENSRCS) $(MAKE) $(GRAMMAR_H) touch $(GRAMMAR_C) Index: Python-3.3.0/configure.ac =================================================================== --- Python-3.3.0.orig/configure.ac +++ Python-3.3.0/configure.ac @@ -51,10 +51,15 @@ AC_MSG_RESULT($interp) PYTHON_FOR_BUILD="_PYTHON_PROJECT_BASE=$srcdir"' _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(srcdir)/Lib:$(srcdir)/Lib/plat-$(MACHDEP) '$interp fi + AC_MSG_CHECKING(pgen for build) + PGEN_FOR_BUILD="${PGEN_FOR_BUILD}" + AC_MSG_RESULT($PGEN_FOR_BUILD) else PYTHON_FOR_BUILD='./$(BUILDPYTHON) -E' + PGEN_FOR_BUILD='./$(PGEN)' fi AC_SUBST(PYTHON_FOR_BUILD) +AC_SUBST(PGEN_FOR_BUILD) dnl Ensure that if prefix is specified, it does not end in a slash. If dnl it does, we get path names containing '//' which is both ugly and