[Python-checkins] cpython (2.7): Issue #27641: Comment out regeneration rules when cross compiling

martin.panter python-checkins at python.org
Wed Aug 3 23:03:43 EDT 2016


https://hg.python.org/cpython/rev/e3757f3e1848
changeset:   102526:e3757f3e1848
branch:      2.7
parent:      102521:af2a7161fa7f
user:        Martin Panter <vadmium+py at gmail.com>
date:        Fri Jul 29 05:52:32 2016 +0000
summary:
  Issue #27641: Comment out regeneration rules when cross compiling

files:
  Makefile.pre.in |  20 ++++----------------
  Misc/NEWS       |   4 ++--
  configure       |   9 ++++-----
  configure.ac    |   8 ++++----
  4 files changed, 14 insertions(+), 27 deletions(-)


diff --git a/Makefile.pre.in b/Makefile.pre.in
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -200,7 +200,6 @@
 PYTHON=		python$(EXE)
 BUILDPYTHON=	python$(BUILDEXE)
 
-cross_compiling=@cross_compiling@
 PYTHON_FOR_BUILD=@PYTHON_FOR_BUILD@
 _PYTHON_HOST_PLATFORM=@_PYTHON_HOST_PLATFORM@
 HOST_GNU_TYPE=  @host@
@@ -680,22 +679,11 @@
 
 Modules/pwdmodule.o: $(srcdir)/Modules/pwdmodule.c $(srcdir)/Modules/posixmodule.h
 
-$(GRAMMAR_H): $(GRAMMAR_INPUT) @PGEN_DEPENDENCY@
+$(GRAMMAR_H): @GENERATED_COMMENT@ $(GRAMMAR_INPUT) $(PGEN)
 	@$(MKDIR_P) Include
-	# Avoid copying the file onto itself for an in-tree build
-	if test "$(cross_compiling)" != "yes"; then \
-		$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C); \
-	else \
-		cp $(srcdir)/Include/graminit.h $(GRAMMAR_H).tmp; \
-		mv $(GRAMMAR_H).tmp $(GRAMMAR_H); \
-	fi
-$(GRAMMAR_C): $(GRAMMAR_H)
-	if test "$(cross_compiling)" != "yes"; then \
-		touch $(GRAMMAR_C); \
-	else \
-		cp $(srcdir)/Python/graminit.c $(GRAMMAR_C).tmp; \
-		mv $(GRAMMAR_C).tmp $(GRAMMAR_C); \
-	fi
+	$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
+$(GRAMMAR_C): @GENERATED_COMMENT@ $(GRAMMAR_H)
+	touch $(GRAMMAR_C)
 
 $(PGEN):	$(PGENOBJS)
 		$(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -94,8 +94,8 @@
 Build
 -----
 
-- Issue #27490: Do not build pgen when cross-compiling.  Patch by Thomas
-  Perl.
+- Issue #27641: The configure script now inserts comments into the makefile
+  to prevent the pgen executable from being cross-compiled.
 
 - Issue #26930: Update Windows builds to use OpenSSL 1.0.2h.
 
diff --git a/configure b/configure
--- a/configure
+++ b/configure
@@ -735,7 +735,7 @@
 CONFIG_ARGS
 SOVERSION
 VERSION
-PGEN_DEPENDENCY
+GENERATED_COMMENT
 PYTHON_FOR_BUILD
 host_os
 host_vendor
@@ -745,7 +745,6 @@
 build_vendor
 build_cpu
 build
-cross_compiling
 target_alias
 host_alias
 build_alias
@@ -2800,7 +2799,6 @@
 ac_config_headers="$ac_config_headers pyconfig.h"
 
 
-
 ac_aux_dir=
 for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
   if test -f "$ac_dir/install-sh"; then
@@ -2925,12 +2923,13 @@
 $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=''
+    # Used to comment out stuff for rebuilding generated files
+    GENERATED_COMMENT='#'
 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)'
+    GENERATED_COMMENT=''
 fi
 
 
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -12,7 +12,6 @@
 AC_CONFIG_SRCDIR([Include/object.h])
 AC_CONFIG_HEADER(pyconfig.h)
 
-AC_SUBST(cross_compiling)
 AC_CANONICAL_HOST
 AC_SUBST(build)
 AC_SUBST(host)
@@ -36,15 +35,16 @@
         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=''
+    # Used to comment out stuff for rebuilding generated files
+    GENERATED_COMMENT='#'
 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)'
+    GENERATED_COMMENT=''
 fi
 AC_SUBST(PYTHON_FOR_BUILD)
-AC_SUBST(PGEN_DEPENDENCY)
+AC_SUBST(GENERATED_COMMENT)
 
 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

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list