Browse Source

Merge pull request #992 from commodo/python-patch-updates

python: patch updates
lilik-openwrt-22.03
Steven Barth 10 years ago
parent
commit
66331c6de2
9 changed files with 57 additions and 0 deletions
  1. +3
    -0
      lang/python/files/python-package.mk
  2. +0
    -0
      lang/python/patches/001-enable-zlib.patch
  3. +0
    -0
      lang/python/patches/002-do-not-add-include-dirs-when-cross-compiling.patch
  4. +0
    -0
      lang/python/patches/003-do-not-compile-tests-at-build.patch
  5. +0
    -0
      lang/python/patches/004-do-not-write-bytes-codes.patch
  6. +0
    -0
      lang/python/patches/005-fix-libffi-x86-64-configure.patch
  7. +0
    -0
      lang/python/patches/006-remove-debian-multiarch-support.patch
  8. +0
    -0
      lang/python/patches/007-distutils-do-not-adjust-path.patch
  9. +54
    -0
      lang/python/patches/008-distutils-use-python-sysroot.patch

+ 3
- 0
lang/python/files/python-package.mk View File

@ -25,6 +25,9 @@ define HostPython
( export PYTHONPATH="$(PYTHONPATH)"; \
export PYTHONOPTIMIZE=""; \
export PYTHONDONTWRITEBYTECODE=1; \
export _python_sysroot="$(STAGING_DIR)"; \
export _python_prefix="/usr"; \
export _python_exec_prefix="/usr"; \
$(1) \
$(HOST_PYTHON_BIN) $(2); \
)


lang/python/patches/110-enable-zlib.patch → lang/python/patches/001-enable-zlib.patch View File


lang/python/patches/120-do-not-add-include-dirs-when-cross-compiling.patch → lang/python/patches/002-do-not-add-include-dirs-when-cross-compiling.patch View File


lang/python/patches/130-do-not-compile-tests-at-build.patch → lang/python/patches/003-do-not-compile-tests-at-build.patch View File


lang/python/patches/140-do-not-write-bytes-codes.patch → lang/python/patches/004-do-not-write-bytes-codes.patch View File


lang/python/patches/150-fix-libffi-x86-64-configure.patch → lang/python/patches/005-fix-libffi-x86-64-configure.patch View File


lang/python/patches/160-remove-debian-multiarch-support.patch → lang/python/patches/006-remove-debian-multiarch-support.patch View File


lang/python/patches/170-distutils-do-not-adjust-path.patch → lang/python/patches/007-distutils-do-not-adjust-path.patch View File


+ 54
- 0
lang/python/patches/008-distutils-use-python-sysroot.patch View File

@ -0,0 +1,54 @@
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.
The _python_sysroot variable is also used to prefix the LIBDIR value
taken from the sysconfigdata module.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Index: b/Lib/distutils/sysconfig.py
===================================================================
--- a/Lib/distutils/sysconfig.py
+++ b/Lib/distutils/sysconfig.py
@@ -19,8 +19,13 @@
from distutils.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)
+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'))
+else:
+ PREFIX = os.path.normpath(sys.prefix)
+ EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
# Path to the base directory of the project. On Windows the binary may
# live in project/PCBuild9. If we're dealing with an x64 Windows build,
Index: b/Lib/distutils/command/build_ext.py
===================================================================
--- a/Lib/distutils/command/build_ext.py
+++ b/Lib/distutils/command/build_ext.py
@@ -237,7 +237,10 @@
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('.')

Loading…
Cancel
Save