aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/python/python3/setup.py-check-cross_compiling-when-get-FLAGS.patch
blob: fc2e12dfe5c80be46684926a286053065e0b9940 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
From 8dad810f3a3d073f09ad72e1a3ee0a895eab2ca1 Mon Sep 17 00:00:00 2001
From: Robert Yang <liezhi.yang@windriver.com>
Date: Sun, 18 Jan 2015 19:05:36 -0800
Subject: [PATCH] setup.py:check cross_compiling when get FLAGS

Fixed when compile target pythnon3:
gcc -isystem/path/to/sysroots/x86_64-linux/usr/include \
    -L=/path/to/sysroots/x86_64-linux/usr/lib

This is incorrect, the native sysroot should not be used by target
python3.

Upstream-Status: Pending

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
 setup.py |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/setup.py b/setup.py
index e8339cd..83fd31f 100644
--- a/setup.py
+++ b/setup.py
@@ -238,7 +238,10 @@ class PyBuildExt(build_ext):
         # unfortunately, distutils doesn't let us provide separate C and C++
         # compilers
         if compiler is not None:
-            (ccshared,cflags) = sysconfig.get_config_vars('CCSHARED','CFLAGS')
+            if cross_compiling:
+                (ccshared,cflags) = (os.environ.get('CCSHARED') or '', os.environ.get('CFLAGS') or '')
+            else:
+                (ccshared,cflags) = sysconfig.get_config_vars('CCSHARED','CFLAGS')
             args['compiler_so'] = compiler + ' ' + ccshared + ' ' + cflags
         self.compiler.set_executables(**args)
 
@@ -457,7 +460,10 @@ class PyBuildExt(build_ext):
                 ('LDFLAGS', '-R', self.compiler.runtime_library_dirs),
                 ('LDFLAGS', '-L', self.compiler.library_dirs),
                 ('CPPFLAGS', '-I', self.compiler.include_dirs)):
-            env_val = sysconfig.get_config_var(env_var)
+            if cross_compiling:
+                env_val = os.environ.get(env_var)
+            else:
+                env_val = sysconfig.get_config_var(env_var)
             if env_val:
                 # To prevent optparse from raising an exception about any
                 # options in env_val that it doesn't know about we strip out
-- 
1.7.9.5