![Andrey Smirnov](/assets/img/avatar_default.png)
Update all appropriate version numbers as well as SHAs and MD5s as well as repbasing BR's patches on top of 3.6.1 codebase (new github repo tree, v3.6.1 tag was used). Note that patch: [PATCH] Change the install location of _sysconfigdata.py was dropped due to the fact taht build system now adds platform specific suffix to sysconfigdata's name, so each platform's file should have a unique name and distutils now allows to specify which sysconfigdata is used via _PYTHON_SYSCONFIGDATA_NAME see:c4b53afce4
92dec548ff
and patches: [PATCH] distutils/sysconfig: use sysconfigdata [PATCH] setup.py: do not add invalid header locations [PATCH] Do not harcode invalid path to ncursesw headers was dropped since it looks like it made it's way upstream, see:409482251b
1351c31aa9
e13c3201fb
respectively. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
68 lines
2.9 KiB
Diff
68 lines
2.9 KiB
Diff
From 7c21396776e10346dccd805d4250e26e8172a812 Mon Sep 17 00:00:00 2001
|
|
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|
Date: Wed, 23 Dec 2015 11:33:14 +0100
|
|
Subject: [PATCH] Adjust library/header paths for cross-compilation
|
|
|
|
When cross-compiling third-party extensions, the get_python_inc() or
|
|
get_python_lib() can be called, to return the path to headers or
|
|
libraries. However, they use the sys.prefix of the host Python, which
|
|
returns incorrect paths when cross-compiling (paths pointing to host
|
|
headers and libraries).
|
|
|
|
In order to fix this, we introduce the _python_sysroot, _python_prefix
|
|
and _python_exec_prefix variables, that allow to override these
|
|
values, and get correct header/library paths when cross-compiling
|
|
third-party Python modules.
|
|
|
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|
---
|
|
Lib/distutils/command/build_ext.py | 5 ++++-
|
|
Lib/distutils/sysconfig.py | 15 +++++++++++----
|
|
2 files changed, 15 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py
|
|
index 74de782..d0c847b 100644
|
|
--- a/Lib/distutils/command/build_ext.py
|
|
+++ b/Lib/distutils/command/build_ext.py
|
|
@@ -233,7 +233,10 @@ class build_ext(Command):
|
|
if (sysconfig.get_config_var('Py_ENABLE_SHARED')):
|
|
if not sysconfig.python_build:
|
|
# building third party extensions
|
|
- self.library_dirs.append(sysconfig.get_config_var('LIBDIR'))
|
|
+ libdir = sysconfig.get_config_var('LIBDIR')
|
|
+ if "_python_sysroot" in os.environ:
|
|
+ libdir = os.environ.get("_python_sysroot") + libdir
|
|
+ self.library_dirs.append(libdir)
|
|
else:
|
|
# building python standard extensions
|
|
self.library_dirs.append('.')
|
|
diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
|
|
index 8bf1a70..5a02145 100644
|
|
--- a/Lib/distutils/sysconfig.py
|
|
+++ b/Lib/distutils/sysconfig.py
|
|
@@ -17,10 +17,17 @@ import sys
|
|
from .errors import DistutilsPlatformError
|
|
|
|
# These are needed in a couple of spots, so just compute them once.
|
|
-PREFIX = os.path.normpath(sys.prefix)
|
|
-EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
|
|
-BASE_PREFIX = os.path.normpath(sys.base_prefix)
|
|
-BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix)
|
|
+if "_python_sysroot" in os.environ:
|
|
+ _sysroot=os.environ.get('_python_sysroot')
|
|
+ PREFIX = os.path.normpath(_sysroot + os.environ.get('_python_prefix'))
|
|
+ EXEC_PREFIX = os.path.normpath(_sysroot + os.environ.get('_python_exec_prefix'))
|
|
+ BASE_PREFIX = PREFIX
|
|
+ BASE_EXEC_PREFIX = EXEC_PREFIX
|
|
+else:
|
|
+ PREFIX = os.path.normpath(sys.prefix)
|
|
+ EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
|
|
+ BASE_PREFIX = os.path.normpath(sys.base_prefix)
|
|
+ BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix)
|
|
|
|
# Path to the base directory of the project. On Windows the binary may
|
|
# live in project/PCBuild/win32 or project/PCBuild/amd64.
|
|
--
|
|
2.9.3
|
|
|