python3Packages.llvmlite: make it statically link to llvm
Llvmlite doc says that they link to llvm statically, but it's not. Check - https://github.com/numba/llvmlite/issues/1027. - https://github.com/numba/llvmlite/blob/ca123c3ae2a6f7db865661ae509862277ec5d692/docs/source/faqs.rst#why-static-linking-to-llvm This behavior causes problems when python uses another version of llvm, for example, mesa llvmpipe. This PR force llvmlite statically link to llvm. Besides, this PR also use llvm as buildInputs rather than nativeBuildInputs since it's a library that llvmlite use rather than a part of build system. This PR also cleans outdated patches.
This commit is contained in:
@@ -6,12 +6,14 @@
|
||||
isPyPy,
|
||||
pythonAtLeast,
|
||||
|
||||
# build-system
|
||||
llvm,
|
||||
setuptools,
|
||||
|
||||
# tests
|
||||
pytestCheckHook,
|
||||
llvm,
|
||||
libxml2,
|
||||
|
||||
withStaticLLVM ? true,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
@@ -28,24 +30,19 @@ buildPythonPackage rec {
|
||||
hash = "sha256-5QBSRDb28Bui9IOhGofj+c7Rk7J5fNv5nPksEPY/O5o=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
llvm
|
||||
setuptools
|
||||
];
|
||||
build-system = [ setuptools ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace llvmlite/tests/test_binding.py \
|
||||
--replace-fail "test_linux" "nope"
|
||||
buildInputs = [ llvm ] ++ lib.optionals withStaticLLVM [ libxml2.dev ];
|
||||
|
||||
postPatch = lib.optionalString withStaticLLVM ''
|
||||
substituteInPlace ffi/build.py --replace-fail "--system-libs --libs all" "--system-libs --libs --link-static all"
|
||||
'';
|
||||
|
||||
# Set directory containing llvm-config binary
|
||||
preConfigure = ''
|
||||
export LLVM_CONFIG=${llvm.dev}/bin/llvm-config
|
||||
'';
|
||||
env.LLVM_CONFIG = "${llvm.dev}/bin/llvm-config";
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
# https://github.com/NixOS/nixpkgs/issues/255262
|
||||
preCheck = ''
|
||||
cd $out
|
||||
@@ -53,7 +50,7 @@ buildPythonPackage rec {
|
||||
|
||||
__impureHostDeps = lib.optionals stdenv.isDarwin [ "/usr/lib/libm.dylib" ];
|
||||
|
||||
passthru.llvm = llvm;
|
||||
passthru = lib.optionalAttrs (!withStaticLLVM) { inherit llvm; };
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/numba/llvmlite/blob/v${version}/CHANGE_LOG";
|
||||
|
||||
Reference in New Issue
Block a user