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++
|
# only works for GCC and Apple Clang. This makes distutils to call C++
|
||||||
# compiler when needed.
|
# compiler when needed.
|
||||||
./python-2.7-distutils-C++.patch
|
./python-2.7-distutils-C++.patch
|
||||||
|
] ++ optional (stdenv.hostPlatform != stdenv.buildPlatform) [
|
||||||
|
./cross-compile.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
@ -176,10 +178,14 @@ let
|
|||||||
LIBRARY_PATH = makeLibraryPath paths;
|
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
|
# Build the basic Python interpreter without modules that have
|
||||||
# external dependencies.
|
# external dependencies.
|
||||||
|
|
||||||
in stdenv.mkDerivation {
|
in stdenv.mkDerivation ({
|
||||||
name = "python-${version}";
|
name = "python-${version}";
|
||||||
pythonVersion = majorVersion;
|
pythonVersion = majorVersion;
|
||||||
|
|
||||||
@ -278,4 +284,4 @@ in stdenv.mkDerivation {
|
|||||||
# in case both 2 and 3 are installed.
|
# in case both 2 and 3 are installed.
|
||||||
priority = -100;
|
priority = -100;
|
||||||
};
|
};
|
||||||
}
|
} // crossCompileEnv)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user