aboutsummaryrefslogtreecommitdiff
path: root/package/python3/0004-Adjust-library-header-paths-for-cross-compilation.patch
diff options
context:
space:
mode:
authorGravatar Andrey Smirnov <andrew.smirnov@gmail.com>2017-03-23 08:21:12 -0700
committerGravatar Thomas Petazzoni <thomas.petazzoni@free-electrons.com>2017-03-25 15:18:49 +0100
commitd2afa01f76ce2c7610286103340048d953b27e45 (patch)
tree5fffb2d070841068df535c03449c11a15e43318e /package/python3/0004-Adjust-library-header-paths-for-cross-compilation.patch
parentf48f1a89a0c598ebefd2643af3ad6aff981e291c (diff)
downloadbuildroot-d2afa01f76ce2c7610286103340048d953b27e45.tar.gz
buildroot-d2afa01f76ce2c7610286103340048d953b27e45.tar.bz2
python3: Bump version to 3.6.1
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: https://github.com/python/cpython/commit/c4b53afce491142b80b228a21a05de5dcfd8d36f https://github.com/python/cpython/commit/92dec548ff1494b86f08bd3753ca91a9330b4ea9 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: https://github.com/python/cpython/commit/409482251b06fe75c4ee56e85ffbb4b23d934159 https://github.com/python/cpython/commit/1351c31aa9651b278d7ef8ec79af3b646a520235 https://github.com/python/cpython/commit/e13c3201fb66c4c211b4ebb7604d1435bedc1015 respectively. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'package/python3/0004-Adjust-library-header-paths-for-cross-compilation.patch')
-rw-r--r--package/python3/0004-Adjust-library-header-paths-for-cross-compilation.patch67
1 files changed, 67 insertions, 0 deletions
diff --git a/package/python3/0004-Adjust-library-header-paths-for-cross-compilation.patch b/package/python3/0004-Adjust-library-header-paths-for-cross-compilation.patch
new file mode 100644
index 0000000000..89b8ed8768
--- /dev/null
+++ b/package/python3/0004-Adjust-library-header-paths-for-cross-compilation.patch
@@ -0,0 +1,67 @@
+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
+