Issue #27490: Do not build pgen when cross-compiling

The dependendency on the $(PGEN) variable must only be
set when not cross-compiling. When cross-compiling,
$(PGEN) will not be used, so no need to build it.

Patch by Thomas Perl.
This commit is contained in:
Martin Panter 2016-07-28 01:28:27 +00:00
parent 2e1a34025c
commit 801110b303
5 changed files with 12 additions and 1 deletions

View File

@ -680,7 +680,7 @@ Modules/grpmodule.o: $(srcdir)/Modules/grpmodule.c $(srcdir)/Modules/posixmodule
Modules/pwdmodule.o: $(srcdir)/Modules/pwdmodule.c $(srcdir)/Modules/posixmodule.h
$(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGEN)
$(GRAMMAR_H): $(GRAMMAR_INPUT) @PGEN_DEPENDENCY@
@$(MKDIR_P) Include
# Avoid copying the file onto itself for an in-tree build
if test "$(cross_compiling)" != "yes"; then \

View File

@ -1056,6 +1056,7 @@ Steven Pemberton
Bo Peng
Santiago Peresón
George Peristerakis
Thomas Perl
Mathieu Perreault
Mark Perrego
Trevor Perrin

View File

@ -90,6 +90,9 @@ What's New in Python 2.7.12?
Build
-----
- Issue #27490: Do not build pgen when cross-compiling. Patch by Thomas
Perl.
- Issue #26930: Update Windows builds to use OpenSSL 1.0.2h.
IDLE

4
configure vendored
View File

@ -735,6 +735,7 @@ UNIVERSALSDK
CONFIG_ARGS
SOVERSION
VERSION
PGEN_DEPENDENCY
PYTHON_FOR_BUILD
host_os
host_vendor
@ -2924,14 +2925,17 @@ $as_echo_n "checking for python interpreter for cross build... " >&6; }
$as_echo "$interp" >&6; }
PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) '$interp
fi
PGEN_DEPENDENCY=''
elif test "$cross_compiling" = maybe; then
as_fn_error $? "Cross compiling required --host=HOST-TUPLE and --build=ARCH" "$LINENO" 5
else
PYTHON_FOR_BUILD='./$(BUILDPYTHON) -E'
PGEN_DEPENDENCY='$(PGEN)'
fi
if test "$prefix" != "/"; then
prefix=`echo "$prefix" | sed -e 's/\/$//g'`
fi

View File

@ -36,12 +36,15 @@ if test "$cross_compiling" = yes; then
AC_MSG_RESULT($interp)
PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) '$interp
fi
PGEN_DEPENDENCY=''
elif test "$cross_compiling" = maybe; then
AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH])
else
PYTHON_FOR_BUILD='./$(BUILDPYTHON) -E'
PGEN_DEPENDENCY='$(PGEN)'
fi
AC_SUBST(PYTHON_FOR_BUILD)
AC_SUBST(PGEN_DEPENDENCY)
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