1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- Add some cross-compilation fixes to distutils
- Inspired by work done by Marc Kleine-Budde <mkl@pengutronix.de> in
- PTXdist.
- Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
- ---
- Lib/distutils/sysconfig.py | 17 +++++++++++++----
- configure.ac | 8 +++++++-
- 2 files changed, 20 insertions(+), 5 deletions(-)
- Index: Python-3.3.0/Lib/distutils/sysconfig.py
- ===================================================================
- --- Python-3.3.0.orig/Lib/distutils/sysconfig.py
- +++ Python-3.3.0/Lib/distutils/sysconfig.py
- @@ -16,15 +16,24 @@
- 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)
- +EXECUTABLE_DIRNAME = os.path.dirname(os.path.realpath(sys.executable))
- +if os.environ.get('CROSS_COMPILING') == 'yes':
- + _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'))
- + if '_python_srcdir' in os.environ:
- + EXECUTABLE_DIRNAME = os.path.normpath(os.environ['_python_srcdir'])
- +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/PCBuild9. If we're dealing with an x64 Windows build,
- # it'll live in project/PCbuild/amd64.
- -project_base = os.path.dirname(os.path.abspath(sys.executable))
- +project_base = EXECUTABLE_DIRNAME
- if os.name == "nt" and "pcbuild" in project_base[-8:].lower():
- project_base = os.path.abspath(os.path.join(project_base, os.path.pardir))
- # PC/VS7.1
- @@ -98,7 +107,7 @@
- # the build directory may not be the source directory, we
- # must use "srcdir" from the makefile to find the "Include"
- # directory.
- - base = _sys_home or os.path.dirname(os.path.abspath(sys.executable))
- + base = _sys_home or EXECUTABLE_DIRNAME
- if plat_specific:
- return base
- if _sys_home:
- Index: Python-3.3.0/configure.ac
- ===================================================================
- --- Python-3.3.0.orig/configure.ac
- +++ Python-3.3.0/configure.ac
- @@ -963,7 +963,13 @@
- fi
-
- if test "$cross_compiling" = yes; then
- - RUNSHARED=
- + RUNSHARED=" \
- + CROSS_COMPILING=yes \
- + _python_cross_host=${ac_cv_host} \
- + _python_sysroot=\"\$(sysroot)\" \
- + _python_srcdir=\"\$(srcdir)\" \
- + _python_prefix=\"\$(prefix)\" \
- + _python_exec_prefix=\"\$(exec_prefix)\""
- fi
-
- AC_MSG_RESULT($LDLIBRARY)
|