Enable cross compilation for cpython 2.7 (#50245)
This commit is contained in:
parent
b633e1b3d4
commit
d0eb502327
@ -0,0 +1,32 @@
|
||||
--- ./setup.py.orig 2018-04-29 15:47:33.000000000 -0700
|
||||
+++ ./setup.py 2018-11-11 09:41:58.097682221 -0800
|
||||
@@ -458,8 +458,6 @@
|
||||
if not cross_compiling:
|
||||
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
- if cross_compiling:
|
||||
- self.add_gcc_paths()
|
||||
self.add_multiarch_paths()
|
||||
|
||||
# Add paths specified in the environment variables LDFLAGS and
|
||||
@@ -517,7 +515,10 @@
|
||||
# be assumed that no additional -I,-L directives are needed.
|
||||
inc_dirs = self.compiler.include_dirs[:]
|
||||
lib_dirs = self.compiler.library_dirs[:]
|
||||
- if not cross_compiling:
|
||||
+ if cross_compiling:
|
||||
+ inc_dirs = []
|
||||
+ lib_dirs = []
|
||||
+ else:
|
||||
for d in (
|
||||
'/usr/include',
|
||||
):
|
||||
@@ -582,6 +584,8 @@ class PyBuildExt(build_ext):
|
||||
# Some modules that are normally always on:
|
||||
#exts.append( Extension('_weakref', ['_weakref.c']) )
|
||||
|
||||
+ self.compiler.library_dirs = lib_dirs + [ '.' ]
|
||||
+
|
||||
# array objects
|
||||
exts.append( Extension('array', ['arraymodule.c']) )
|
||||
|
@ -104,6 +104,8 @@ let
|
||||
# only works for GCC and Apple Clang. This makes distutils to call C++
|
||||
# compiler when needed.
|
||||
./python-2.7-distutils-C++.patch
|
||||
] ++ optional (stdenv.hostPlatform != stdenv.buildPlatform) [
|
||||
./cross-compile.patch
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
@ -176,10 +178,14 @@ let
|
||||
LIBRARY_PATH = makeLibraryPath paths;
|
||||
};
|
||||
|
||||
# Python 2.7 needs this
|
||||
crossCompileEnv = stdenv.lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform)
|
||||
{ _PYTHON_HOST_PLATFORM = stdenv.hostPlatform.config; };
|
||||
|
||||
# Build the basic Python interpreter without modules that have
|
||||
# external dependencies.
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
in stdenv.mkDerivation ({
|
||||
name = "python-${version}";
|
||||
pythonVersion = majorVersion;
|
||||
|
||||
@ -278,4 +284,4 @@ in stdenv.mkDerivation {
|
||||
# in case both 2 and 3 are installed.
|
||||
priority = -100;
|
||||
};
|
||||
}
|
||||
} // crossCompileEnv)
|
||||
|
Loading…
x
Reference in New Issue
Block a user