|
@@ -8,27 +8,44 @@ 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
|
|
|
+Index: b/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 @@
|
|
|
+--- a/Lib/distutils/sysconfig.py
|
|
|
++++ b/Lib/distutils/sysconfig.py
|
|
|
+@@ -18,14 +18,38 @@
|
|
|
+
|
|
|
from distutils.errors import DistutilsPlatformError
|
|
|
|
|
|
- # These are needed in a couple of spots, so just compute them once.
|
|
|
+-# 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'])
|
|
|
++ # In the cross-compilation case, we have two cases:
|
|
|
++ #
|
|
|
++ # 1/ We're currently cross-compiling Python itself. In this case,
|
|
|
++ # EXECUTABLE_DIRNAME should point to the source directory of the
|
|
|
++ # target Python, so that the rest of the code, especially the
|
|
|
++ # _python_build() function will properly understand that we are
|
|
|
++ # building Python itself. In this case, _python_srcdir is
|
|
|
++ # defined.
|
|
|
++ #
|
|
|
++ # 2/ We're currently cross-compiling third party Python
|
|
|
++ # modules. In this case, EXECUTABLE_DIRNAME should point to where
|
|
|
++ # the target python executable is installed in the sysroot, so
|
|
|
++ # that the proper Makefile is going to be read. In this case,
|
|
|
++ # _python_srcdir is not defined.
|
|
|
++ #
|
|
|
++ if os.environ.get('_python_srcdir') is not None:
|
|
|
++ EXECUTABLE_DIRNAME = os.environ.get('_python_srcdir')
|
|
|
++ else:
|
|
|
++ EXECUTABLE_DIRNAME = os.path.join(_sysroot, "usr/bin")
|
|
|
+else:
|
|
|
+ PREFIX = os.path.normpath(sys.prefix)
|
|
|
+ EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
|
|
|
-+
|
|
|
++ EXECUTABLE_DIRNAME = os.path.dirname(os.path.realpath(sys.executable))
|
|
|
|
|
|
# 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,
|
|
@@ -38,7 +55,7 @@ Index: Python-2.7.2/Lib/distutils/sysconfig.py
|
|
|
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 @@
|
|
|
+@@ -74,7 +98,7 @@
|
|
|
|
|
|
if os.name == "posix":
|
|
|
if python_build:
|
|
@@ -47,7 +64,7 @@ Index: Python-2.7.2/Lib/distutils/sysconfig.py
|
|
|
if plat_specific:
|
|
|
# python.h is located in the buildir
|
|
|
inc_dir = buildir
|
|
|
-@@ -206,7 +215,7 @@
|
|
|
+@@ -245,7 +269,7 @@
|
|
|
def get_makefile_filename():
|
|
|
"""Return full pathname of installed Makefile from the Python build."""
|
|
|
if python_build:
|
|
@@ -56,11 +73,23 @@ Index: Python-2.7.2/Lib/distutils/sysconfig.py
|
|
|
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
|
|
|
+@@ -311,6 +335,11 @@
|
|
|
+ # `$$' is a literal `$' in make
|
|
|
+ tmpv = v.replace('$$', '')
|
|
|
+
|
|
|
++ # Adjust prefix and exec_prefix when we're cross compiling
|
|
|
++ if os.environ.get('CROSS_COMPILING') == "yes":
|
|
|
++ if n == "prefix" or n == "exec_prefix":
|
|
|
++ v = _sysroot + v
|
|
|
++
|
|
|
+ if "$" in tmpv:
|
|
|
+ notdone[n] = v
|
|
|
+ else:
|
|
|
+Index: b/configure.in
|
|
|
===================================================================
|
|
|
---- Python-2.7.2.orig/configure.in
|
|
|
-+++ Python-2.7.2/configure.in
|
|
|
-@@ -4328,6 +4328,21 @@
|
|
|
+--- a/configure.in
|
|
|
++++ b/configure.in
|
|
|
+@@ -4342,6 +4342,20 @@
|
|
|
CROSS_COMPILING=$cross_compiling
|
|
|
AC_SUBST(CROSS_COMPILING)
|
|
|
|
|
@@ -72,7 +101,6 @@ Index: Python-2.7.2/configure.in
|
|
|
+ RUNSHARED="\
|
|
|
+ CROSS_COMPILING=yes \
|
|
|
+ _python_cross_host=${ac_cv_host} \
|
|
|
-+ _python_sysroot=\"\$(sysroot)\" \
|
|
|
+ _python_srcdir=\"\$(srcdir)\" \
|
|
|
+ _python_prefix=\"\$(prefix)\" \
|
|
|
+ _python_exec_prefix=\"\$(exec_prefix)\""
|
|
@@ -82,3 +110,16 @@ Index: Python-2.7.2/configure.in
|
|
|
# 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])
|
|
|
+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,7 @@
|
|
|
+ if ((sys.platform.startswith('linux') or sys.platform.startswith('gnu')
|
|
|
+ or sys.platform.startswith('sunos'))
|
|
|
+ and sysconfig.get_config_var('Py_ENABLE_SHARED')):
|
|
|
+- if sys.executable.startswith(os.path.join(sys.exec_prefix, "bin")):
|
|
|
++ if not sysconfig.python_build:
|
|
|
+ # building third party extensions
|
|
|
+ self.library_dirs.append(sysconfig.get_config_var('LIBDIR'))
|
|
|
+ else:
|