poky/meta/recipes-devtools/python/python3/unixccompiler.patch
Roxana 0ed5a13f5f python3: fix builtins imports
The intent of this code is to generate things like -L=/usr/lib/foo so
for paths which start with "/" we should appent the "=". We should not do this
for ".". On some recent versions of binutils or patchsets on some recent
distros this appears to work differently and causes build failures, for example
on Ubuntu 14.04 LTS.

The simple fix is to check for "." as the path prefix.

[YOCTO #6467].

(From OE-Core rev: c36d459f0d40bdbd3ba809835e0475e8992bc778)

Signed-off-by: Roxana <roxana.ciobanu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-30 16:36:44 +01:00

36 lines
1.7 KiB
Diff

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