diff options
author | Jackie Huang <jackie.huang@windriver.com> | 2014-11-18 03:35:33 -0500 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-11-25 13:03:27 +0000 |
commit | ce8c56f838532e1e9943192228832d8dba94096a (patch) | |
tree | 83358e81615803e19bc8c675e7a9eeccf5d69726 /meta | |
parent | 4a7446ed99a0c21ee81c22a69dd3fbbb8e396291 (diff) | |
download | poky-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')
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 @@ | |||
1 | From 43238e1ac13e32984d015c92a5841f3de1fe1d15 Mon Sep 17 00:00:00 2001 | ||
2 | From: Jackie Huang <jackie.huang@windriver.com> | ||
3 | Date: Tue, 18 Nov 2014 00:07:07 -0500 | ||
4 | Subject: [PATCH] setup.py: no host headers libs | ||
5 | |||
6 | When we are cross-compiling, setup.py should never look in /usr | ||
7 | or /usr/local to find headers or libraries. | ||
8 | |||
9 | Upstream-Status: Inappropriate [Cross compile specific] | ||
10 | |||
11 | Signed-off-by: Jackie Huang <jackie.huang@windriver.com> | ||
12 | --- | ||
13 | setup.py | 3 --- | ||
14 | 1 file changed, 3 deletions(-) | ||
15 | |||
16 | diff --git a/setup.py b/setup.py | ||
17 | index 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 | -- | ||
32 | 2.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 @@ | |||
1 | From 53ed216d7bf70dd2a925432b6805a701e5fc3e0e Mon Sep 17 00:00:00 2001 | ||
2 | From: Jackie Huang <jackie.huang@windriver.com> | ||
3 | Date: Mon, 17 Nov 2014 06:44:47 +0000 | ||
4 | Subject: [PATCH] python3 use CROSSPYTHONPATH for PYTHON_FOR_BUILD | ||
5 | |||
6 | Upstream-Status: Inappropriate [Cross compile specific] | ||
7 | |||
8 | Signed-off-by: Jackie Huang <jackie.huang@windriver.com> | ||
9 | --- | ||
10 | configure.ac | 2 +- | ||
11 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
12 | |||
13 | diff --git a/configure.ac b/configure.ac | ||
14 | index 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 | -- | ||
27 | 2.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 | " |
41 | SRC_URI[md5sum] = "f3ebe34d4d8695bf889279b54673e10c" | 43 | SRC_URI[md5sum] = "f3ebe34d4d8695bf889279b54673e10c" |
42 | SRC_URI[sha256sum] = "e526e9b612f623888364d30cc9f3dfc34dcef39065c713bdbcddf47df84d8dcb" | 44 | SRC_URI[sha256sum] = "e526e9b612f623888364d30cc9f3dfc34dcef39065c713bdbcddf47df84d8dcb" |
@@ -62,6 +64,7 @@ TARGET_CC_ARCH_append_armv6 = " -D__SOFTFP__" | |||
62 | TARGET_CC_ARCH_append_armv7a = " -D__SOFTFP__" | 64 | TARGET_CC_ARCH_append_armv7a = " -D__SOFTFP__" |
63 | TARGET_CC_ARCH += "-DNDEBUG -fno-inline" | 65 | TARGET_CC_ARCH += "-DNDEBUG -fno-inline" |
64 | EXTRA_OEMAKE += "CROSS_COMPILE=yes" | 66 | EXTRA_OEMAKE += "CROSS_COMPILE=yes" |
67 | EXTRA_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 |
67 | PYTHONLSBOPTS = "" | 70 | PYTHONLSBOPTS = "" |
@@ -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} \ |