python3: several fixes for cross compiling
* Add a patch to use CROSSPYTHONPATH as PYTHONPATH for PYTHON_FOR_BUILD, otherwise CROSSPYTHONPATH is never used, and it use the path in target builds to find libraries. * Add a patch to avoid finding host headers and libs * Fix a typo: s/python-native3/python3-native/ (From OE-Core rev: d3d00163671bda5395c9046c1109f711772e4ed9) Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
4a7446ed99
commit
ce8c56f838
|
@ -0,0 +1,33 @@
|
|||
From 43238e1ac13e32984d015c92a5841f3de1fe1d15 Mon Sep 17 00:00:00 2001
|
||||
From: Jackie Huang <jackie.huang@windriver.com>
|
||||
Date: Tue, 18 Nov 2014 00:07:07 -0500
|
||||
Subject: [PATCH] setup.py: no host headers libs
|
||||
|
||||
When we are cross-compiling, setup.py should never look in /usr
|
||||
or /usr/local to find headers or libraries.
|
||||
|
||||
Upstream-Status: Inappropriate [Cross compile specific]
|
||||
|
||||
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
|
||||
---
|
||||
setup.py | 3 ---
|
||||
1 file changed, 3 deletions(-)
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
index f020b28..e8339cd 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -444,10 +444,7 @@ class PyBuildExt(build_ext):
|
||||
if not cross_compiling:
|
||||
add_dir_to_list(self.compiler.library_dirs, os.path.join('/usr/local', sys.lib))
|
||||
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
- # only change this for cross builds for 3.3, issues on Mageia
|
||||
- if cross_compiling:
|
||||
self.add_gcc_paths()
|
||||
- if not cross_compiling:
|
||||
self.add_multiarch_paths()
|
||||
|
||||
# Add paths specified in the environment variables LDFLAGS and
|
||||
--
|
||||
2.0.0
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
From 53ed216d7bf70dd2a925432b6805a701e5fc3e0e Mon Sep 17 00:00:00 2001
|
||||
From: Jackie Huang <jackie.huang@windriver.com>
|
||||
Date: Mon, 17 Nov 2014 06:44:47 +0000
|
||||
Subject: [PATCH] python3 use CROSSPYTHONPATH for PYTHON_FOR_BUILD
|
||||
|
||||
Upstream-Status: Inappropriate [Cross compile specific]
|
||||
|
||||
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
|
||||
---
|
||||
configure.ac | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 989baf9..2890c96 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -67,7 +67,7 @@ if test "$cross_compiling" = yes; then
|
||||
AC_MSG_ERROR([python$PACKAGE_VERSION interpreter not found])
|
||||
fi
|
||||
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
|
||||
+ PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(CROSSPYTHONPATH) '$interp
|
||||
fi
|
||||
elif test "$cross_compiling" = maybe; then
|
||||
AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH])
|
||||
--
|
||||
2.0.1
|
||||
|
|
@ -37,6 +37,8 @@ SRC_URI += "\
|
|||
file://sysroot-include-headers.patch \
|
||||
file://unixccompiler.patch \
|
||||
file://avoid-ncursesw-include-path.patch \
|
||||
file://python3-use-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch \
|
||||
file://python3-setup.py-no-host-headers-libs.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "f3ebe34d4d8695bf889279b54673e10c"
|
||||
SRC_URI[sha256sum] = "e526e9b612f623888364d30cc9f3dfc34dcef39065c713bdbcddf47df84d8dcb"
|
||||
|
@ -62,6 +64,7 @@ TARGET_CC_ARCH_append_armv6 = " -D__SOFTFP__"
|
|||
TARGET_CC_ARCH_append_armv7a = " -D__SOFTFP__"
|
||||
TARGET_CC_ARCH += "-DNDEBUG -fno-inline"
|
||||
EXTRA_OEMAKE += "CROSS_COMPILE=yes"
|
||||
EXTRA_OECONF += "CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/"
|
||||
|
||||
# No ctypes option for python 3
|
||||
PYTHONLSBOPTS = ""
|
||||
|
@ -116,8 +119,8 @@ do_compile() {
|
|||
ARCH=${TARGET_ARCH} \
|
||||
OPT="${CFLAGS}" libpython3.so
|
||||
|
||||
oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python-native3/pgen \
|
||||
HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python-native3/python3 \
|
||||
oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \
|
||||
HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
|
||||
STAGING_LIBDIR=${STAGING_LIBDIR} \
|
||||
STAGING_INCDIR=${STAGING_INCDIR} \
|
||||
STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
|
||||
|
@ -139,9 +142,8 @@ do_install() {
|
|||
|
||||
# rerun the build once again with original makefile this time
|
||||
# run install in a separate step to avoid compile/install race
|
||||
oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python-native3/pgen \
|
||||
HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python-native3/python3 \
|
||||
CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/ \
|
||||
oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \
|
||||
HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
|
||||
STAGING_LIBDIR=${STAGING_LIBDIR} \
|
||||
STAGING_INCDIR=${STAGING_INCDIR} \
|
||||
STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
|
||||
|
@ -150,9 +152,8 @@ do_install() {
|
|||
ARCH=${TARGET_ARCH} \
|
||||
DESTDIR=${D} LIBDIR=${libdir}
|
||||
|
||||
oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python-native3/pgen \
|
||||
HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python-native3/python3 \
|
||||
CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/ \
|
||||
oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \
|
||||
HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
|
||||
STAGING_LIBDIR=${STAGING_LIBDIR} \
|
||||
STAGING_INCDIR=${STAGING_INCDIR} \
|
||||
STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
|
||||
|
|
Loading…
Reference in New Issue