summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/python/python3
diff options
context:
space:
mode:
authorRobert Yang <liezhi.yang@windriver.com>2015-01-18 19:10:32 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-01-23 11:36:27 +0000
commitb2f8367dff8a2db49b9296bd27a2e94a3619884d (patch)
tree4a95853b17d9acecfa59d27b2b35122f47267f8a /meta/recipes-devtools/python/python3
parent3873efd33c60010a096391b821ef9004755da1d5 (diff)
downloadpoky-b2f8367dff8a2db49b9296bd27a2e94a3619884d.tar.gz
python3: fix for cross compiling
Fixed: * python3 has introduced _PYTHON_PROJECT_BASE which is used for separate B and S, but it doesn't work when compile Modules, the target python3 runs python3-native's sysconfig to get srcdir which is the native's, there would be errors when native's srcdir has been removed, add _PYTHON_PROJECT_SRC to fix the problem. * Check cross_compiling when get FLAGS (From OE-Core rev: c33639963491f00f55b80299922895fe68b0637d) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/python/python3')
-rw-r--r--meta/recipes-devtools/python/python3/setup.py-check-cross_compiling-when-get-FLAGS.patch50
-rw-r--r--meta/recipes-devtools/python/python3/sysconfig.py-add-_PYTHON_PROJECT_SRC.patch54
2 files changed, 104 insertions, 0 deletions
diff --git a/meta/recipes-devtools/python/python3/setup.py-check-cross_compiling-when-get-FLAGS.patch b/meta/recipes-devtools/python/python3/setup.py-check-cross_compiling-when-get-FLAGS.patch
new file mode 100644
index 0000000000..fc2e12dfe5
--- /dev/null
+++ b/meta/recipes-devtools/python/python3/setup.py-check-cross_compiling-when-get-FLAGS.patch
@@ -0,0 +1,50 @@
1From 8dad810f3a3d073f09ad72e1a3ee0a895eab2ca1 Mon Sep 17 00:00:00 2001
2From: Robert Yang <liezhi.yang@windriver.com>
3Date: Sun, 18 Jan 2015 19:05:36 -0800
4Subject: [PATCH] setup.py:check cross_compiling when get FLAGS
5
6Fixed when compile target pythnon3:
7gcc -isystem/path/to/sysroots/x86_64-linux/usr/include \
8 -L=/path/to/sysroots/x86_64-linux/usr/lib
9
10This is incorrect, the native sysroot should not be used by target
11python3.
12
13Upstream-Status: Pending
14
15Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
16---
17 setup.py | 10 ++++++++--
18 1 file changed, 8 insertions(+), 2 deletions(-)
19
20diff --git a/setup.py b/setup.py
21index e8339cd..83fd31f 100644
22--- a/setup.py
23+++ b/setup.py
24@@ -238,7 +238,10 @@ class PyBuildExt(build_ext):
25 # unfortunately, distutils doesn't let us provide separate C and C++
26 # compilers
27 if compiler is not None:
28- (ccshared,cflags) = sysconfig.get_config_vars('CCSHARED','CFLAGS')
29+ if cross_compiling:
30+ (ccshared,cflags) = (os.environ.get('CCSHARED') or '', os.environ.get('CFLAGS') or '')
31+ else:
32+ (ccshared,cflags) = sysconfig.get_config_vars('CCSHARED','CFLAGS')
33 args['compiler_so'] = compiler + ' ' + ccshared + ' ' + cflags
34 self.compiler.set_executables(**args)
35
36@@ -457,7 +460,10 @@ class PyBuildExt(build_ext):
37 ('LDFLAGS', '-R', self.compiler.runtime_library_dirs),
38 ('LDFLAGS', '-L', self.compiler.library_dirs),
39 ('CPPFLAGS', '-I', self.compiler.include_dirs)):
40- env_val = sysconfig.get_config_var(env_var)
41+ if cross_compiling:
42+ env_val = os.environ.get(env_var)
43+ else:
44+ env_val = sysconfig.get_config_var(env_var)
45 if env_val:
46 # To prevent optparse from raising an exception about any
47 # options in env_val that it doesn't know about we strip out
48--
491.7.9.5
50
diff --git a/meta/recipes-devtools/python/python3/sysconfig.py-add-_PYTHON_PROJECT_SRC.patch b/meta/recipes-devtools/python/python3/sysconfig.py-add-_PYTHON_PROJECT_SRC.patch
new file mode 100644
index 0000000000..de07643f2b
--- /dev/null
+++ b/meta/recipes-devtools/python/python3/sysconfig.py-add-_PYTHON_PROJECT_SRC.patch
@@ -0,0 +1,54 @@
1From fc93b3cc23b4f9698ae92a42986dbb02b6f19588 Mon Sep 17 00:00:00 2001
2From: Robert Yang <liezhi.yang@windriver.com>
3Date: Sun, 18 Jan 2015 06:29:50 -0800
4Subject: [PATCH] sysconfig.py: add _PYTHON_PROJECT_SRC
5
6python3 has introduced _PYTHON_PROJECT_BASE which is used for separate B
7and S, but it doesn't work when compile Modules, the target python3 runs
8python3-native's sysconfig to get srcdir which is the native's, there
9would be errors when native's srcdir has been removed, add
10_PYTHON_PROJECT_SRC to fix the problem.
11
12Upstream-Status: Pending
13
14Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
15---
16 Lib/distutils/sysconfig.py | 5 ++++-
17 Lib/sysconfig.py | 5 ++++-
18 2 files changed, 8 insertions(+), 2 deletions(-)
19
20diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
21index a545ab9..74317d1 100644
22--- a/Lib/distutils/sysconfig.py
23+++ b/Lib/distutils/sysconfig.py
24@@ -554,7 +554,10 @@ def get_config_vars(*args):
25 _config_vars['exec_prefix'] = EXEC_PREFIX
26
27 # Always convert srcdir to an absolute path
28- srcdir = _config_vars.get('srcdir', project_base)
29+ if "_PYTHON_PROJECT_SRC" in os.environ:
30+ srcdir = os.path.abspath(os.environ["_PYTHON_PROJECT_SRC"])
31+ else:
32+ srcdir = _config_vars.get('srcdir', project_base)
33 if os.name == 'posix':
34 if python_build:
35 # If srcdir is a relative path (typically '.' or '..')
36diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py
37index 7287f11..cc92998 100644
38--- a/Lib/sysconfig.py
39+++ b/Lib/sysconfig.py
40@@ -562,7 +562,10 @@ def get_config_vars(*args):
41 _CONFIG_VARS['userbase'] = _getuserbase()
42
43 # Always convert srcdir to an absolute path
44- srcdir = _CONFIG_VARS.get('srcdir', _PROJECT_BASE)
45+ if "_PYTHON_PROJECT_SRC" in os.environ:
46+ srcdir = os.path.abspath(os.environ["_PYTHON_PROJECT_SRC"])
47+ else:
48+ srcdir = _CONFIG_VARS.get('srcdir', _PROJECT_BASE)
49 if os.name == 'posix':
50 if _PYTHON_BUILD:
51 # If srcdir is a relative path (typically '.' or '..')
52--
531.7.9.5
54