summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/python
diff options
context:
space:
mode:
authorJackie Huang <jackie.huang@windriver.com>2014-11-18 03:35:33 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-11-25 13:03:27 +0000
commitce8c56f838532e1e9943192228832d8dba94096a (patch)
tree83358e81615803e19bc8c675e7a9eeccf5d69726 /meta/recipes-devtools/python
parent4a7446ed99a0c21ee81c22a69dd3fbbb8e396291 (diff)
downloadpoky-ce8c56f838532e1e9943192228832d8dba94096a.tar.gz
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>
Diffstat (limited to 'meta/recipes-devtools/python')
-rw-r--r--meta/recipes-devtools/python/python3/python3-setup.py-no-host-headers-libs.patch33
-rw-r--r--meta/recipes-devtools/python/python3/python3-use-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch28
-rw-r--r--meta/recipes-devtools/python/python3_3.3.3.bb17
3 files changed, 70 insertions, 8 deletions
diff --git a/meta/recipes-devtools/python/python3/python3-setup.py-no-host-headers-libs.patch b/meta/recipes-devtools/python/python3/python3-setup.py-no-host-headers-libs.patch
new file mode 100644
index 0000000000..2bc8b8c460
--- /dev/null
+++ b/meta/recipes-devtools/python/python3/python3-setup.py-no-host-headers-libs.patch
@@ -0,0 +1,33 @@
1From 43238e1ac13e32984d015c92a5841f3de1fe1d15 Mon Sep 17 00:00:00 2001
2From: Jackie Huang <jackie.huang@windriver.com>
3Date: Tue, 18 Nov 2014 00:07:07 -0500
4Subject: [PATCH] setup.py: no host headers libs
5
6When we are cross-compiling, setup.py should never look in /usr
7or /usr/local to find headers or libraries.
8
9Upstream-Status: Inappropriate [Cross compile specific]
10
11Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
12---
13 setup.py | 3 ---
14 1 file changed, 3 deletions(-)
15
16diff --git a/setup.py b/setup.py
17index f020b28..e8339cd 100644
18--- a/setup.py
19+++ b/setup.py
20@@ -444,10 +444,7 @@ class PyBuildExt(build_ext):
21 if not cross_compiling:
22 add_dir_to_list(self.compiler.library_dirs, os.path.join('/usr/local', sys.lib))
23 add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
24- # only change this for cross builds for 3.3, issues on Mageia
25- if cross_compiling:
26 self.add_gcc_paths()
27- if not cross_compiling:
28 self.add_multiarch_paths()
29
30 # Add paths specified in the environment variables LDFLAGS and
31--
322.0.0
33
diff --git a/meta/recipes-devtools/python/python3/python3-use-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch b/meta/recipes-devtools/python/python3/python3-use-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch
new file mode 100644
index 0000000000..74490d93a5
--- /dev/null
+++ b/meta/recipes-devtools/python/python3/python3-use-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch
@@ -0,0 +1,28 @@
1From 53ed216d7bf70dd2a925432b6805a701e5fc3e0e Mon Sep 17 00:00:00 2001
2From: Jackie Huang <jackie.huang@windriver.com>
3Date: Mon, 17 Nov 2014 06:44:47 +0000
4Subject: [PATCH] python3 use CROSSPYTHONPATH for PYTHON_FOR_BUILD
5
6Upstream-Status: Inappropriate [Cross compile specific]
7
8Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
9---
10 configure.ac | 2 +-
11 1 file changed, 1 insertion(+), 1 deletion(-)
12
13diff --git a/configure.ac b/configure.ac
14index 989baf9..2890c96 100644
15--- a/configure.ac
16+++ b/configure.ac
17@@ -67,7 +67,7 @@ if test "$cross_compiling" = yes; then
18 AC_MSG_ERROR([python$PACKAGE_VERSION interpreter not found])
19 fi
20 AC_MSG_RESULT($interp)
21- 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
22+ PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(CROSSPYTHONPATH) '$interp
23 fi
24 elif test "$cross_compiling" = maybe; then
25 AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH])
26--
272.0.1
28
diff --git a/meta/recipes-devtools/python/python3_3.3.3.bb b/meta/recipes-devtools/python/python3_3.3.3.bb
index 4497e02586..2c1f63f5b8 100644
--- a/meta/recipes-devtools/python/python3_3.3.3.bb
+++ b/meta/recipes-devtools/python/python3_3.3.3.bb
@@ -37,6 +37,8 @@ SRC_URI += "\
37 file://sysroot-include-headers.patch \ 37 file://sysroot-include-headers.patch \
38 file://unixccompiler.patch \ 38 file://unixccompiler.patch \
39 file://avoid-ncursesw-include-path.patch \ 39 file://avoid-ncursesw-include-path.patch \
40 file://python3-use-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch \
41 file://python3-setup.py-no-host-headers-libs.patch \
40 " 42 "
41SRC_URI[md5sum] = "f3ebe34d4d8695bf889279b54673e10c" 43SRC_URI[md5sum] = "f3ebe34d4d8695bf889279b54673e10c"
42SRC_URI[sha256sum] = "e526e9b612f623888364d30cc9f3dfc34dcef39065c713bdbcddf47df84d8dcb" 44SRC_URI[sha256sum] = "e526e9b612f623888364d30cc9f3dfc34dcef39065c713bdbcddf47df84d8dcb"
@@ -62,6 +64,7 @@ TARGET_CC_ARCH_append_armv6 = " -D__SOFTFP__"
62TARGET_CC_ARCH_append_armv7a = " -D__SOFTFP__" 64TARGET_CC_ARCH_append_armv7a = " -D__SOFTFP__"
63TARGET_CC_ARCH += "-DNDEBUG -fno-inline" 65TARGET_CC_ARCH += "-DNDEBUG -fno-inline"
64EXTRA_OEMAKE += "CROSS_COMPILE=yes" 66EXTRA_OEMAKE += "CROSS_COMPILE=yes"
67EXTRA_OECONF += "CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/"
65 68
66# No ctypes option for python 3 69# No ctypes option for python 3
67PYTHONLSBOPTS = "" 70PYTHONLSBOPTS = ""
@@ -116,8 +119,8 @@ do_compile() {
116 ARCH=${TARGET_ARCH} \ 119 ARCH=${TARGET_ARCH} \
117 OPT="${CFLAGS}" libpython3.so 120 OPT="${CFLAGS}" libpython3.so
118 121
119 oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python-native3/pgen \ 122 oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \
120 HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python-native3/python3 \ 123 HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
121 STAGING_LIBDIR=${STAGING_LIBDIR} \ 124 STAGING_LIBDIR=${STAGING_LIBDIR} \
122 STAGING_INCDIR=${STAGING_INCDIR} \ 125 STAGING_INCDIR=${STAGING_INCDIR} \
123 STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \ 126 STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
@@ -139,9 +142,8 @@ do_install() {
139 142
140 # rerun the build once again with original makefile this time 143 # rerun the build once again with original makefile this time
141 # run install in a separate step to avoid compile/install race 144 # run install in a separate step to avoid compile/install race
142 oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python-native3/pgen \ 145 oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \
143 HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python-native3/python3 \ 146 HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
144 CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/ \
145 STAGING_LIBDIR=${STAGING_LIBDIR} \ 147 STAGING_LIBDIR=${STAGING_LIBDIR} \
146 STAGING_INCDIR=${STAGING_INCDIR} \ 148 STAGING_INCDIR=${STAGING_INCDIR} \
147 STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \ 149 STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
@@ -150,9 +152,8 @@ do_install() {
150 ARCH=${TARGET_ARCH} \ 152 ARCH=${TARGET_ARCH} \
151 DESTDIR=${D} LIBDIR=${libdir} 153 DESTDIR=${D} LIBDIR=${libdir}
152 154
153 oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python-native3/pgen \ 155 oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \
154 HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python-native3/python3 \ 156 HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
155 CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/ \
156 STAGING_LIBDIR=${STAGING_LIBDIR} \ 157 STAGING_LIBDIR=${STAGING_LIBDIR} \
157 STAGING_INCDIR=${STAGING_INCDIR} \ 158 STAGING_INCDIR=${STAGING_INCDIR} \
158 STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \ 159 STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \