123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- 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 | 7 ++++---
- 1 files changed, 4 insertions(+), 3 deletions(-)
- Index: Python-2.7.2/Lib/distutils/sysconfig.py
- ===================================================================
- --- Python-2.7.2.orig/Lib/distutils/sysconfig.py
- +++ Python-2.7.2/Lib/distutils/sysconfig.py
- @@ -19,13 +19,22 @@
- 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)
- +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)
- +
-
- # 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
- @@ -74,7 +83,7 @@
-
- if os.name == "posix":
- if python_build:
- - buildir = os.path.dirname(sys.executable)
- + buildir = EXECUTABLE_DIRNAME
- if plat_specific:
- # python.h is located in the buildir
- inc_dir = buildir
- @@ -206,7 +215,7 @@
- def get_makefile_filename():
- """Return full pathname of installed Makefile from the Python build."""
- if python_build:
- - return os.path.join(os.path.dirname(sys.executable), "Makefile")
- + return os.path.join(EXECUTABLE_DIRNAME, "Makefile")
- lib_dir = get_python_lib(plat_specific=1, standard_lib=1)
- return os.path.join(lib_dir, "config", "Makefile")
-
- Index: Python-2.7.2/configure.in
- ===================================================================
- --- Python-2.7.2.orig/configure.in
- +++ Python-2.7.2/configure.in
- @@ -4328,6 +4328,21 @@
- CROSS_COMPILING=$cross_compiling
- AC_SUBST(CROSS_COMPILING)
-
- +#
- +# Cross compiling
- +#
- +# special RUNSHARED
- +if test "$cross_compiling" = "yes"; then
- + 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
- +
- +
- # generate output files
- AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc)
- AC_CONFIG_FILES([Modules/ld_so_aix], [chmod +x Modules/ld_so_aix])
|