summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Panter <vadmium+py@gmail.com>2016-07-29 05:52:32 (GMT)
committerMartin Panter <vadmium+py@gmail.com>2016-07-29 05:52:32 (GMT)
commit43a94a7e2fd130ed15bd8a0a190f4d230b607514 (patch)
tree99e10f2bfb501a137681e2fab29df18042141681
parent6c7d5a2553715ee78854ede170c4ea8d0c544fbc (diff)
downloadcpython-43a94a7e2fd130ed15bd8a0a190f4d230b607514.zip
cpython-43a94a7e2fd130ed15bd8a0a190f4d230b607514.tar.gz
cpython-43a94a7e2fd130ed15bd8a0a190f4d230b607514.tar.bz2
Issue #27641: Comment out regeneration rules when cross compiling
-rw-r--r--Makefile.pre.in36
-rw-r--r--Misc/NEWS5
-rwxr-xr-xconfigure9
-rw-r--r--configure.ac8
4 files changed, 21 insertions, 37 deletions
diff --git a/Makefile.pre.in b/Makefile.pre.in
index d30e565..3e56e42 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -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)
diff --git a/Misc/NEWS b/Misc/NEWS
index ffd6471..fe81bbd 100644
--- 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.
diff --git a/configure b/configure
index bb89a5a..2683734 100755
--- 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
diff --git a/configure.ac b/configure.ac
index 8135c71..5312c2b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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