aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/python/python3/unixccompiler.patch
blob: 3e2b1d1c2eba737e8491324e8f69845fc8ecad74 (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
Upstream-Status: Pending

The CC variable,sometimes like:"x86_64-poky-linux-gcc   -m64 --sysroot=/${TMPDIR}/sysroots/qemux86-64", contains option information. 
This will lead to wrong compiler name "qemux86-64" rather than "x86_64-poky-linux-gcc" when python finding the compiler name.

Secondly add -L=<path> this way linker will be able to resolve /usr/lib w.r.t sysroot and not
use hardcoded /usr/lib to look for libs which is wrong in cross compile environment and this will work
ok on native systems too since sysroot for native compilers is /

Signed-off-by: Mei Lei <lei.mei@intel.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Index: Python-3.3.2/Lib/distutils/unixccompiler.py
===================================================================
--- Python-3.3.2.orig/Lib/distutils/unixccompiler.py	2013-05-15 09:32:54.000000000 -0700
+++ Python-3.3.2/Lib/distutils/unixccompiler.py	2013-08-01 00:58:18.629056286 -0700
@@ -202,7 +202,9 @@
     # ccompiler.py.
 
     def library_dir_option(self, dir):
-        return "-L" + dir
+        if dir.startswith("/"):
+            return "-L=" + dir
+        return "-L" + dir
 
     def _is_gcc(self, compiler_name):
         return "gcc" in compiler_name or "g++" in compiler_name
@@ -221,7 +221,7 @@
         # this time, there's no way to determine this information from
         # the configuration data stored in the Python installation, so
         # we use this hack.
-        compiler = os.path.basename(sysconfig.get_config_var("CC"))
+        compiler = sysconfig.get_config_var("CC")
         if sys.platform[:6] == "darwin":
             # MacOSX's linker doesn't understand the -R flag at all
             return "-L" + dir