diff options
Diffstat (limited to 'meta/recipes-devtools/python')
3 files changed, 76 insertions, 7 deletions
diff --git a/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch b/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch index 27afc030b2..691beada03 100644 --- a/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch +++ b/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch | |||
@@ -119,8 +119,8 @@ Index: Python-2.7.2/setup.py | |||
119 | 119 | ||
120 | # XXX Omitted modules: gl, pure, dl, SGI-specific modules | 120 | # XXX Omitted modules: gl, pure, dl, SGI-specific modules |
121 | 121 | ||
122 | + lib_dirs = [ os.getenv( "STAGING_LIBDIR" ) ] | 122 | + lib_dirs = [ os.getenv("STAGING_LIBDIR"), os.getenv("STAGING_BASELIBDIR") ] |
123 | + inc_dirs = [ os.getenv( "STAGING_INCDIR" ) ] | 123 | + inc_dirs = [ os.getenv("STAGING_INCDIR") ] |
124 | + | 124 | + |
125 | # | 125 | # |
126 | # The following modules are all pretty straightforward, and compile | 126 | # The following modules are all pretty straightforward, and compile |
diff --git a/meta/recipes-devtools/python/python/setuptweaks.patch b/meta/recipes-devtools/python/python/setuptweaks.patch new file mode 100644 index 0000000000..c34ef160d3 --- /dev/null +++ b/meta/recipes-devtools/python/python/setuptweaks.patch | |||
@@ -0,0 +1,57 @@ | |||
1 | This patch removes various ways native system options can pass into the python | ||
2 | compilation and somehow break C modules. | ||
3 | |||
4 | Upstream-Status: Configuration [OE Specific] | ||
5 | |||
6 | RP 2012/04/23 | ||
7 | |||
8 | Index: Python-2.7.2/setup.py | ||
9 | =================================================================== | ||
10 | --- Python-2.7.2.orig/setup.py 2012-04-23 20:03:47.295582553 +0000 | ||
11 | +++ Python-2.7.2/setup.py 2012-04-23 20:03:15.000000000 +0000 | ||
12 | @@ -231,7 +231,13 @@ | ||
13 | # compilers | ||
14 | if compiler is not None: | ||
15 | (ccshared,cflags) = sysconfig.get_config_vars('CCSHARED','CFLAGS') | ||
16 | - args['compiler_so'] = compiler + ' ' + ccshared + ' ' + cflags | ||
17 | + # Need to filter out -isysroot from the flags. Ideally should | ||
18 | + # figure out target flags here. | ||
19 | + flags = [] | ||
20 | + for f in cflags.split(): | ||
21 | + if not f.startswith("-isystem"): | ||
22 | + flags.append(f) | ||
23 | + args['compiler_so'] = compiler + ' ' + ccshared + ' ' + ' '.join(flags) | ||
24 | self.compiler.set_executables(**args) | ||
25 | |||
26 | build_ext.build_extensions(self) | ||
27 | @@ -393,7 +399,6 @@ | ||
28 | # into configure and stored in the Makefile (issue found on OS X 10.3). | ||
29 | for env_var, arg_name, dir_list in ( | ||
30 | ('LDFLAGS', '-R', self.compiler.runtime_library_dirs), | ||
31 | - ('LDFLAGS', '-L', self.compiler.library_dirs), | ||
32 | ('CPPFLAGS', '-I', self.compiler.include_dirs)): | ||
33 | env_val = sysconfig.get_config_var(env_var) | ||
34 | if env_val: | ||
35 | @@ -419,16 +424,16 @@ | ||
36 | for directory in reversed(options.dirs): | ||
37 | add_dir_to_list(dir_list, directory) | ||
38 | |||
39 | - if os.path.normpath(sys.prefix) != '/usr' \ | ||
40 | - and not sysconfig.get_config_var('PYTHONFRAMEWORK'): | ||
41 | +# if os.path.normpath(sys.prefix) != '/usr' \ | ||
42 | +# and not sysconfig.get_config_var('PYTHONFRAMEWORK'): | ||
43 | # OSX note: Don't add LIBDIR and INCLUDEDIR to building a framework | ||
44 | # (PYTHONFRAMEWORK is set) to avoid # linking problems when | ||
45 | # building a framework with different architectures than | ||
46 | # the one that is currently installed (issue #7473) | ||
47 | - add_dir_to_list(self.compiler.library_dirs, | ||
48 | - sysconfig.get_config_var("LIBDIR")) | ||
49 | - add_dir_to_list(self.compiler.include_dirs, | ||
50 | - sysconfig.get_config_var("INCLUDEDIR")) | ||
51 | +# add_dir_to_list(self.compiler.library_dirs, | ||
52 | +# sysconfig.get_config_var("LIBDIR")) | ||
53 | +# add_dir_to_list(self.compiler.include_dirs, | ||
54 | +# sysconfig.get_config_var("INCLUDEDIR")) | ||
55 | |||
56 | try: | ||
57 | have_unicode = unicode | ||
diff --git a/meta/recipes-devtools/python/python_2.7.2.bb b/meta/recipes-devtools/python/python_2.7.2.bb index 95e17a83d6..e067ba50fc 100644 --- a/meta/recipes-devtools/python/python_2.7.2.bb +++ b/meta/recipes-devtools/python/python_2.7.2.bb | |||
@@ -1,6 +1,6 @@ | |||
1 | require python.inc | 1 | require python.inc |
2 | DEPENDS = "python-native bzip2 db gdbm openssl readline sqlite3 zlib" | 2 | DEPENDS = "python-native bzip2 db gdbm openssl readline sqlite3 zlib" |
3 | PR = "${INC_PR}.12" | 3 | PR = "${INC_PR}.14" |
4 | 4 | ||
5 | DISTRO_SRC_URI ?= "file://sitecustomize.py" | 5 | DISTRO_SRC_URI ?= "file://sitecustomize.py" |
6 | DISTRO_SRC_URI_linuxstdbase = "" | 6 | DISTRO_SRC_URI_linuxstdbase = "" |
@@ -21,6 +21,7 @@ SRC_URI += "\ | |||
21 | file://host_include_contamination.patch \ | 21 | file://host_include_contamination.patch \ |
22 | file://sys_platform_is_now_always_linux2.patch \ | 22 | file://sys_platform_is_now_always_linux2.patch \ |
23 | file://fix_for_using_different_libdir.patch \ | 23 | file://fix_for_using_different_libdir.patch \ |
24 | file://setuptweaks.patch \ | ||
24 | " | 25 | " |
25 | 26 | ||
26 | S = "${WORKDIR}/Python-${PV}" | 27 | S = "${WORKDIR}/Python-${PV}" |
@@ -33,6 +34,7 @@ TARGET_CC_ARCH_append_armv6 = " -D__SOFTFP__" | |||
33 | TARGET_CC_ARCH_append_armv7a = " -D__SOFTFP__" | 34 | TARGET_CC_ARCH_append_armv7a = " -D__SOFTFP__" |
34 | 35 | ||
35 | do_configure_prepend() { | 36 | do_configure_prepend() { |
37 | rm -f ${S}/Makefile.orig | ||
36 | autoreconf -Wcross --verbose --install --force --exclude=autopoint Modules/_ctypes/libffi || bbnote "_ctypes failed to autoreconf" | 38 | autoreconf -Wcross --verbose --install --force --exclude=autopoint Modules/_ctypes/libffi || bbnote "_ctypes failed to autoreconf" |
37 | } | 39 | } |
38 | 40 | ||
@@ -65,10 +67,17 @@ do_compile() { | |||
65 | # remove any bogus LD_LIBRARY_PATH | 67 | # remove any bogus LD_LIBRARY_PATH |
66 | sed -i -e s,RUNSHARED=.*,RUNSHARED=, Makefile | 68 | sed -i -e s,RUNSHARED=.*,RUNSHARED=, Makefile |
67 | 69 | ||
68 | install -m 0644 Makefile Makefile.orig | 70 | if [ ! -f Makefile.orig ]; then |
69 | sed -i -e 's,${includedir},${STAGING_INCDIR},' Makefile | 71 | install -m 0644 Makefile Makefile.orig |
70 | sed -i -e 's,${libdir},${STAGING_LIBDIR},' Makefile | 72 | fi |
71 | sed -i -e 's,LDFLAGS=,LDFLAGS=-L. -L${STAGING_LIBDIR},' Makefile | 73 | sed -i -e 's,^LDFLAGS=.*,LDFLAGS=-L. -L${STAGING_LIBDIR},g' \ |
74 | -e 's,libdir=${libdir},libdir=${STAGING_LIBDIR},g' \ | ||
75 | -e 's,libexecdir=${libexecdir},libexecdir=${STAGING_DIR_HOST}${libexecdir},g' \ | ||
76 | -e 's,^LIBDIR=.*,LIBDIR=${STAGING_LIBDIR},g' \ | ||
77 | -e 's,includedir=${includedir},includedir=${STAGING_INCDIR},g' \ | ||
78 | -e 's,^INCLUDEDIR=.*,INCLUDE=${STAGING_INCDIR},g' \ | ||
79 | -e 's,^CONFINCLUDEDIR=.*,CONFINCLUDE=${STAGING_INCDIR},g' \ | ||
80 | Makefile | ||
72 | install -m 0644 Makefile ${STAGING_LIBDIR}/python${PYTHON_MAJMIN}/config/ | 81 | install -m 0644 Makefile ${STAGING_LIBDIR}/python${PYTHON_MAJMIN}/config/ |
73 | # save copy of it now, because if we do it in do_install and | 82 | # save copy of it now, because if we do it in do_install and |
74 | # then call do_install twice we get Makefile.orig == Makefile.sysroot | 83 | # then call do_install twice we get Makefile.orig == Makefile.sysroot |
@@ -79,6 +88,7 @@ do_compile() { | |||
79 | oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/pgen \ | 88 | oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/pgen \ |
80 | HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python \ | 89 | HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python \ |
81 | STAGING_LIBDIR=${STAGING_LIBDIR} \ | 90 | STAGING_LIBDIR=${STAGING_LIBDIR} \ |
91 | STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \ | ||
82 | STAGING_INCDIR=${STAGING_INCDIR} \ | 92 | STAGING_INCDIR=${STAGING_INCDIR} \ |
83 | BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ | 93 | BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ |
84 | OPT="${CFLAGS}" libpython${PYTHON_MAJMIN}.so | 94 | OPT="${CFLAGS}" libpython${PYTHON_MAJMIN}.so |
@@ -89,6 +99,7 @@ do_compile() { | |||
89 | HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python \ | 99 | HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python \ |
90 | STAGING_LIBDIR=${STAGING_LIBDIR} \ | 100 | STAGING_LIBDIR=${STAGING_LIBDIR} \ |
91 | STAGING_INCDIR=${STAGING_INCDIR} \ | 101 | STAGING_INCDIR=${STAGING_INCDIR} \ |
102 | STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \ | ||
92 | BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ | 103 | BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ |
93 | OPT="${CFLAGS}" | 104 | OPT="${CFLAGS}" |
94 | } | 105 | } |
@@ -105,6 +116,7 @@ do_install() { | |||
105 | CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/ \ | 116 | CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/ \ |
106 | STAGING_LIBDIR=${STAGING_LIBDIR} \ | 117 | STAGING_LIBDIR=${STAGING_LIBDIR} \ |
107 | STAGING_INCDIR=${STAGING_INCDIR} \ | 118 | STAGING_INCDIR=${STAGING_INCDIR} \ |
119 | STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \ | ||
108 | BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ | 120 | BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ |
109 | DESTDIR=${D} LIBDIR=${libdir} install | 121 | DESTDIR=${D} LIBDIR=${libdir} install |
110 | 122 | ||