]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Issue #27641: Comment out regeneration rules when cross compiling
authorMartin Panter <vadmium+py@gmail.com>
Fri, 29 Jul 2016 05:52:32 +0000 (05:52 +0000)
committerMartin Panter <vadmium+py@gmail.com>
Fri, 29 Jul 2016 05:52:32 +0000 (05:52 +0000)
Makefile.pre.in
Misc/NEWS
configure
configure.ac

index d30e565dd4903903a3e5730e44ded616e6970208..3e56e422d78ad24f4911ede75a3582f92afd1bf0 100644 (file)
@@ -221,7 +221,6 @@ LIBOBJS=    @LIBOBJS@
 PYTHON=                python$(EXE)
 BUILDPYTHON=   python$(BUILDEXE)
 
-cross_compiling=@cross_compiling@
 PYTHON_FOR_GEN=@PYTHON_FOR_GEN@
 PYTHON_FOR_BUILD=@PYTHON_FOR_BUILD@
 _PYTHON_HOST_PLATFORM=@_PYTHON_HOST_PLATFORM@
@@ -719,17 +718,13 @@ Programs/_freeze_importlib.o: Programs/_freeze_importlib.c Makefile
 Programs/_freeze_importlib: Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN)
        $(LINKCC) $(PY_LDFLAGS) -o $@ Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
 
-Python/importlib_external.h: $(srcdir)/Lib/importlib/_bootstrap_external.py Programs/_freeze_importlib
-       if test "$(cross_compiling)" != "yes"; then \
-           ./Programs/_freeze_importlib \
-               $(srcdir)/Lib/importlib/_bootstrap_external.py Python/importlib_external.h; \
-       fi
+Python/importlib_external.h: @GENERATED_COMMENT@ $(srcdir)/Lib/importlib/_bootstrap_external.py Programs/_freeze_importlib
+       ./Programs/_freeze_importlib \
+           $(srcdir)/Lib/importlib/_bootstrap_external.py Python/importlib_external.h
 
-Python/importlib.h: $(srcdir)/Lib/importlib/_bootstrap.py Programs/_freeze_importlib
-       if test "$(cross_compiling)" != "yes"; then \
-           ./Programs/_freeze_importlib \
-               $(srcdir)/Lib/importlib/_bootstrap.py Python/importlib.h; \
-       fi
+Python/importlib.h: @GENERATED_COMMENT@ $(srcdir)/Lib/importlib/_bootstrap.py Programs/_freeze_importlib
+       ./Programs/_freeze_importlib \
+           $(srcdir)/Lib/importlib/_bootstrap.py Python/importlib.h
 
 
 ############################################################################
@@ -789,22 +784,11 @@ Python/sysmodule.o: $(srcdir)/Python/sysmodule.c Makefile
 
 $(IO_OBJS): $(IO_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) $(PY_LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
index ffd647113e48b7ebf87db38b532cf9bcc8c5a952..fe81bbd7cbb8a1a9a7c2be43fa51c822d86758ab 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -154,8 +154,9 @@ Build
 - Issue #27453: CPP invocation in configure must use CPPFLAGS. Patch by
   Chi Hsuan Yen.
 
-- 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 and _freeze_importlib executables from being cross-
+  compiled.
 
 - Issue #26662: Set PYTHON_FOR_GEN in configure as the Python program to be
   used for file generation during the build.
index bb89a5a059bc34043b5a9fda66c04d5c2b608c74..26837342a48d62dbe09a97fa7b3964585aff990c 100755 (executable)
--- a/configure
+++ b/configure
@@ -739,7 +739,7 @@ UNIVERSALSDK
 CONFIG_ARGS
 SOVERSION
 VERSION
-PGEN_DEPENDENCY
+GENERATED_COMMENT
 PYTHON_FOR_BUILD
 PYTHON_FOR_GEN
 host_os
@@ -750,7 +750,6 @@ build_os
 build_vendor
 build_cpu
 build
-cross_compiling
 HAS_HG
 HGBRANCH
 HGTAG
@@ -2875,7 +2874,6 @@ fi
 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
@@ -3050,12 +3048,13 @@ $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=''
+    # 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
 
 
index 8135c716f3ce9b8638b7e22d7d9daeba504e464b..5312c2b3156473e815dba8c5826624b8a182f4f3 100644 (file)
@@ -49,7 +49,6 @@ fi
 AC_CONFIG_SRCDIR([Include/object.h])
 AC_CONFIG_HEADER(pyconfig.h)
 
-AC_SUBST(cross_compiling)
 AC_CANONICAL_HOST
 AC_SUBST(build)
 AC_SUBST(host)
@@ -81,15 +80,16 @@ 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=''
+    # 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