diff options
author | Andrey Smirnov <andrew.smirnov@gmail.com> | 2017-03-23 08:21:12 -0700 |
---|---|---|
committer | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2017-03-25 15:18:49 +0100 |
commit | d2afa01f76ce2c7610286103340048d953b27e45 (patch) | |
tree | 5fffb2d070841068df535c03449c11a15e43318e /package/python3/0004-Adjust-library-header-paths-for-cross-compilation.patch | |
parent | f48f1a89a0c598ebefd2643af3ad6aff981e291c (diff) | |
download | buildroot-d2afa01f76ce2c7610286103340048d953b27e45.tar.gz buildroot-d2afa01f76ce2c7610286103340048d953b27e45.zip |
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.patch | 67 |
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 + |