mirror of
https://git.yoctoproject.org/poky
synced 2026-05-31 12:49:46 +00:00
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) (From OE-Core rev: 4cda344f2c159b81588e2418071865f501d46be9) 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> Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
fa75856b4b
commit
4e0180b746
@@ -0,0 +1,32 @@
|
|||||||
|
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
|
||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
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://sysroot-include-headers.patch \
|
||||||
file://unixccompiler.patch \
|
file://unixccompiler.patch \
|
||||||
file://avoid-ncursesw-include-path.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[md5sum] = "f3ebe34d4d8695bf889279b54673e10c"
|
||||||
SRC_URI[sha256sum] = "e526e9b612f623888364d30cc9f3dfc34dcef39065c713bdbcddf47df84d8dcb"
|
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_append_armv7a = " -D__SOFTFP__"
|
||||||
TARGET_CC_ARCH += "-DNDEBUG -fno-inline"
|
TARGET_CC_ARCH += "-DNDEBUG -fno-inline"
|
||||||
EXTRA_OEMAKE += "CROSS_COMPILE=yes"
|
EXTRA_OEMAKE += "CROSS_COMPILE=yes"
|
||||||
|
EXTRA_OECONF += "CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/"
|
||||||
|
|
||||||
# No ctypes option for python 3
|
# No ctypes option for python 3
|
||||||
PYTHONLSBOPTS = ""
|
PYTHONLSBOPTS = ""
|
||||||
@@ -116,8 +119,8 @@ do_compile() {
|
|||||||
ARCH=${TARGET_ARCH} \
|
ARCH=${TARGET_ARCH} \
|
||||||
OPT="${CFLAGS}" libpython3.so
|
OPT="${CFLAGS}" libpython3.so
|
||||||
|
|
||||||
oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python-native3/pgen \
|
oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \
|
||||||
HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python-native3/python3 \
|
HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
|
||||||
STAGING_LIBDIR=${STAGING_LIBDIR} \
|
STAGING_LIBDIR=${STAGING_LIBDIR} \
|
||||||
STAGING_INCDIR=${STAGING_INCDIR} \
|
STAGING_INCDIR=${STAGING_INCDIR} \
|
||||||
STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
|
STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
|
||||||
@@ -139,9 +142,8 @@ do_install() {
|
|||||||
|
|
||||||
# rerun the build once again with original makefile this time
|
# rerun the build once again with original makefile this time
|
||||||
# run install in a separate step to avoid compile/install race
|
# run install in a separate step to avoid compile/install race
|
||||||
oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python-native3/pgen \
|
oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \
|
||||||
HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python-native3/python3 \
|
HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
|
||||||
CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/ \
|
|
||||||
STAGING_LIBDIR=${STAGING_LIBDIR} \
|
STAGING_LIBDIR=${STAGING_LIBDIR} \
|
||||||
STAGING_INCDIR=${STAGING_INCDIR} \
|
STAGING_INCDIR=${STAGING_INCDIR} \
|
||||||
STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
|
STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
|
||||||
@@ -150,9 +152,8 @@ do_install() {
|
|||||||
ARCH=${TARGET_ARCH} \
|
ARCH=${TARGET_ARCH} \
|
||||||
DESTDIR=${D} LIBDIR=${libdir}
|
DESTDIR=${D} LIBDIR=${libdir}
|
||||||
|
|
||||||
oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python-native3/pgen \
|
oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \
|
||||||
HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python-native3/python3 \
|
HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
|
||||||
CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/ \
|
|
||||||
STAGING_LIBDIR=${STAGING_LIBDIR} \
|
STAGING_LIBDIR=${STAGING_LIBDIR} \
|
||||||
STAGING_INCDIR=${STAGING_INCDIR} \
|
STAGING_INCDIR=${STAGING_INCDIR} \
|
||||||
STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
|
STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
|
||||||
|
|||||||
Reference in New Issue
Block a user