buildroot/package/python3/python3-001-support-for-build.patch

69 lines
2.5 KiB
Diff
Raw Normal View History

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 <ripard@archos.com>, and
later significantly reworked by Thomas Petazzoni
<thomas.petazzoni@free-electrons.com>, with some inspiration taken
from the Python patches of the PTXdist project, and then ported to
python3.3 by Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
---
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