diff --git a/Makefile.pre.in b/Makefile.pre.in index 17c0b5785d0..e5182a623c1 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -221,6 +221,7 @@ LIBOBJS= @LIBOBJS@ PYTHON= python$(EXE) BUILDPYTHON= python$(BUILDEXE) +cross_compiling=@cross_compiling@ PYTHON_FOR_BUILD=@PYTHON_FOR_BUILD@ _PYTHON_HOST_PLATFORM=@_PYTHON_HOST_PLATFORM@ BUILD_GNU_TYPE= @build@ @@ -718,12 +719,16 @@ Programs/_freeze_importlib: Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FRO $(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 - ./Programs/_freeze_importlib \ - $(srcdir)/Lib/importlib/_bootstrap_external.py Python/importlib_external.h + if test "$(cross_compiling)" != "yes"; then \ + ./Programs/_freeze_importlib \ + $(srcdir)/Lib/importlib/_bootstrap_external.py Python/importlib_external.h; \ + fi Python/importlib.h: $(srcdir)/Lib/importlib/_bootstrap.py Programs/_freeze_importlib - ./Programs/_freeze_importlib \ - $(srcdir)/Lib/importlib/_bootstrap.py Python/importlib.h + if test "$(cross_compiling)" != "yes"; then \ + ./Programs/_freeze_importlib \ + $(srcdir)/Lib/importlib/_bootstrap.py Python/importlib.h; \ + fi ############################################################################ @@ -784,10 +789,18 @@ Python/sysmodule.o: $(srcdir)/Python/sysmodule.c Makefile $(IO_OBJS): $(IO_H) $(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGEN) - @$(MKDIR_P) Include - $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) + @$(MKDIR_P) Include + if test "$(cross_compiling)" != "yes"; then \ + $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C); \ + else \ + cp $(srcdir)/Include/graminit.h $(GRAMMAR_H); \ + fi $(GRAMMAR_C): $(GRAMMAR_H) - touch $(GRAMMAR_C) + if test "$(cross_compiling)" != "yes"; then \ + touch $(GRAMMAR_C); \ + else \ + cp $(srcdir)/Python/graminit.c $(GRAMMAR_C); \ + fi $(PGEN): $(PGENOBJS) $(CC) $(OPT) $(PY_LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN) diff --git a/Misc/NEWS b/Misc/NEWS index e11ee400c86..07b7fde759d 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -404,6 +404,11 @@ Tests Build ----- +- Issue #22359: Disable the rules for running _freeze_importlib and pgen when + cross-compiling. The output of these programs is normally saved with the + source code anyway, and is still regenerated when doing a native build. + Patch by Xavier de Gaye. + - Issue #21668: Link audioop, _datetime, _ctypes_test modules to libm, except on Mac OS X. Patch written by Xavier de Gaye. diff --git a/configure b/configure index 68970848702..1823d148f7e 100755 --- a/configure +++ b/configure @@ -751,6 +751,7 @@ build_os build_vendor build_cpu build +cross_compiling HAS_HG HGBRANCH HGTAG diff --git a/configure.ac b/configure.ac index b13cf059a75..44811d9a859 100644 --- a/configure.ac +++ b/configure.ac @@ -49,6 +49,7 @@ 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)