dev-lang/python: fix cross-compiles for 3.5.1
authorMike Gilbert <floppym@gentoo.org>
Thu, 12 May 2016 00:58:45 +0000 (20:58 -0400)
committerMike Gilbert <floppym@gentoo.org>
Thu, 12 May 2016 00:58:45 +0000 (20:58 -0400)
Bug: https://bugs.gentoo.org/581304

Package-Manager: portage-2.2.28_p106

dev-lang/python/files/3.5.1-cross-compile.patch [new file with mode: 0644]
dev-lang/python/python-3.5.1-r2.ebuild

diff --git a/dev-lang/python/files/3.5.1-cross-compile.patch b/dev-lang/python/files/3.5.1-cross-compile.patch
new file mode 100644 (file)
index 0000000..25a518b
--- /dev/null
@@ -0,0 +1,75 @@
+# HG changeset patch
+# User Martin Panter <vadmium+py@gmail.com>
+# Date 1461373124 0
+# Node ID 66e40df31faca467937c7b9d5d2e825471f97822
+# Parent  a246047734b3496a7dc4ebaf1f0232dadf22eab6
+Issue #22359: Disable running cross-compiled _freeze_importlib and pgen
+
+Patch by Xavier de Gaye.
+
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+--- 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/_fr
+       $(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/sys
+ $(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/configure.ac b/configure.ac
+--- 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)
+
index 0f2fa796d3acda727f9644541b32ae6c79784ec6..480c6ad515aefec3944d5f0f7a49e19c05fe2b5c 100644 (file)
@@ -71,7 +71,7 @@ src_prepare() {
 
        EPATCH_SUFFIX="patch" epatch "${WORKDIR}/patches"
        epatch "${FILESDIR}/${PN}-3.4.3-ncurses-pkg-config.patch"
-       epatch "${FILESDIR}/3.5-secondary-targets.patch"
+       epatch "${FILESDIR}/3.5.1-cross-compile.patch"
 
        epatch_user
 
@@ -87,8 +87,6 @@ src_prepare() {
                Modules/Setup.dist \
                setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
 
-       #sed -i -e 's/\$(GRAMMAR_H): \$(GRAMMAR_INPUT) \$(PGEN)/$(GRAMMAR_H): \$(GRAMMAR_INPUT)/' Makefile.pre.in || die
-
        eautoreconf
 }
 
@@ -174,9 +172,6 @@ src_configure() {
 }
 
 src_compile() {
-       # Avoid regenerating these for cross-compiles
-       touch Include/graminit.h Python/graminit.c Python/importlib.h Python/importlib_external.h || die
-
        cd "${BUILD_DIR}" || die
 
        emake CPPFLAGS= CFLAGS= LDFLAGS=