From 1bc4baeb3810b155c552053896ed8f03a3534fd3 Mon Sep 17 00:00:00 2001 From: Jonathan Ringer Date: Wed, 6 May 2020 12:52:33 -0700 Subject: [PATCH 1/2] openblas: also export unversioned libraries for linux --- .../libraries/science/math/openblas/default.nix | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/pkgs/development/libraries/science/math/openblas/default.nix b/pkgs/development/libraries/science/math/openblas/default.nix index 53c98046993248..3d315699b5e678 100644 --- a/pkgs/development/libraries/science/math/openblas/default.nix +++ b/pkgs/development/libraries/science/math/openblas/default.nix @@ -178,11 +178,16 @@ EOF done # Setup symlinks for blas / lapack - ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libblas${stdenv.hostPlatform.extensions.sharedLibrary}${stdenv.lib.optionalString stdenv.hostPlatform.isLinux ".3"} - ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libcblas${stdenv.hostPlatform.extensions.sharedLibrary}${stdenv.lib.optionalString stdenv.hostPlatform.isLinux ".3"} - ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/liblapack${stdenv.hostPlatform.extensions.sharedLibrary}${stdenv.lib.optionalString stdenv.hostPlatform.isLinux ".3"} - ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/liblapacke${stdenv.hostPlatform.extensions.sharedLibrary}${stdenv.lib.optionalString stdenv.hostPlatform.isLinux ".3"} - ''; + ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libblas${stdenv.hostPlatform.extensions.sharedLibrary} + ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libcblas${stdenv.hostPlatform.extensions.sharedLibrary} + ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/liblapack${stdenv.hostPlatform.extensions.sharedLibrary} + ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/liblapacke${stdenv.hostPlatform.extensions.sharedLibrary} + '' + stdenv.lib.optionalString stdenv.hostPlatform.isLinux '' + ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libblas${stdenv.hostPlatform.extensions.sharedLibrary}.3 + ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libcblas${stdenv.hostPlatform.extensions.sharedLibrary}.3 + ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/liblapack${stdenv.hostPlatform.extensions.sharedLibrary}.3 + ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/liblapacke${stdenv.hostPlatform.extensions.sharedLibrary}.3 + ''; meta = with stdenv.lib; { description = "Basic Linear Algebra Subprograms"; From 296f5b0b60e57d19afe235a6abc5adc659f2256e Mon Sep 17 00:00:00 2001 From: Benjamin Hipple Date: Thu, 7 May 2020 21:42:47 -0400 Subject: [PATCH 2/2] mkl: include symlinks to versioned libblas.so.3 names Some build systems look for this specifically. --- .../libraries/science/math/mkl/default.nix | 15 +++++++++---- .../science/math/openblas/default.nix | 21 +++++++++++-------- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/pkgs/development/libraries/science/math/mkl/default.nix b/pkgs/development/libraries/science/math/mkl/default.nix index ee861c14ab440c..2df39b330c451d 100644 --- a/pkgs/development/libraries/science/math/mkl/default.nix +++ b/pkgs/development/libraries/science/math/mkl/default.nix @@ -20,6 +20,8 @@ let openmp = if stdenvNoCC.isDarwin then "19.0" else "19.1"; openmp-ver = "${openmp}.${spot}-${rel}-${openmp}.${spot}-${rel}"; + shlibExt = stdenvNoCC.hostPlatform.extensions.sharedLibrary; + in stdenvNoCC.mkDerivation { pname = "mkl"; inherit version; @@ -114,10 +116,15 @@ in stdenvNoCC.mkDerivation { '') + '' # Setup symlinks for blas / lapack - ln -s $out/lib/libmkl_rt${stdenvNoCC.hostPlatform.extensions.sharedLibrary} $out/lib/libblas${stdenvNoCC.hostPlatform.extensions.sharedLibrary}${stdenvNoCC.lib.optionalString stdenvNoCC.hostPlatform.isLinux ".3"} - ln -s $out/lib/libmkl_rt${stdenvNoCC.hostPlatform.extensions.sharedLibrary} $out/lib/libcblas${stdenvNoCC.hostPlatform.extensions.sharedLibrary}${stdenvNoCC.lib.optionalString stdenvNoCC.hostPlatform.isLinux ".3"} - ln -s $out/lib/libmkl_rt${stdenvNoCC.hostPlatform.extensions.sharedLibrary} $out/lib/liblapack${stdenvNoCC.hostPlatform.extensions.sharedLibrary}${stdenvNoCC.lib.optionalString stdenvNoCC.hostPlatform.isLinux ".3"} - ln -s $out/lib/libmkl_rt${stdenvNoCC.hostPlatform.extensions.sharedLibrary} $out/lib/liblapacke${stdenvNoCC.hostPlatform.extensions.sharedLibrary}${stdenvNoCC.lib.optionalString stdenvNoCC.hostPlatform.isLinux ".3"} + ln -s $out/lib/libmkl_rt${shlibExt} $out/lib/libblas${shlibExt} + ln -s $out/lib/libmkl_rt${shlibExt} $out/lib/libcblas${shlibExt} + ln -s $out/lib/libmkl_rt${shlibExt} $out/lib/liblapack${shlibExt} + ln -s $out/lib/libmkl_rt${shlibExt} $out/lib/liblapacke${shlibExt} + '' + stdenvNoCC.lib.optionalString stdenvNoCC.hostPlatform.isLinux '' + ln -s $out/lib/libmkl_rt${shlibExt} $out/lib/libblas${shlibExt}".3" + ln -s $out/lib/libmkl_rt${shlibExt} $out/lib/libcblas${shlibExt}".3" + ln -s $out/lib/libmkl_rt${shlibExt} $out/lib/liblapack${shlibExt}".3" + ln -s $out/lib/libmkl_rt${shlibExt} $out/lib/liblapacke${shlibExt}".3" ''; # fixDarwinDylibName fails for libmkl_cdft_core.dylib because the diff --git a/pkgs/development/libraries/science/math/openblas/default.nix b/pkgs/development/libraries/science/math/openblas/default.nix index 3d315699b5e678..318922d7f25d47 100644 --- a/pkgs/development/libraries/science/math/openblas/default.nix +++ b/pkgs/development/libraries/science/math/openblas/default.nix @@ -93,6 +93,9 @@ let if !builtins.isBool val then toString val else if val then "1" else "0"; mkMakeFlagsFromConfig = mapAttrsToList (var: val: "${var}=${mkMakeFlagValue val}"); + + shlibExt = stdenv.hostPlatform.extensions.sharedLibrary; + in stdenv.mkDerivation rec { pname = "openblas"; @@ -178,16 +181,16 @@ EOF done # Setup symlinks for blas / lapack - ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libblas${stdenv.hostPlatform.extensions.sharedLibrary} - ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libcblas${stdenv.hostPlatform.extensions.sharedLibrary} - ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/liblapack${stdenv.hostPlatform.extensions.sharedLibrary} - ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/liblapacke${stdenv.hostPlatform.extensions.sharedLibrary} + ln -s $out/lib/libopenblas${shlibExt} $out/lib/libblas${shlibExt} + ln -s $out/lib/libopenblas${shlibExt} $out/lib/libcblas${shlibExt} + ln -s $out/lib/libopenblas${shlibExt} $out/lib/liblapack${shlibExt} + ln -s $out/lib/libopenblas${shlibExt} $out/lib/liblapacke${shlibExt} '' + stdenv.lib.optionalString stdenv.hostPlatform.isLinux '' - ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libblas${stdenv.hostPlatform.extensions.sharedLibrary}.3 - ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libcblas${stdenv.hostPlatform.extensions.sharedLibrary}.3 - ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/liblapack${stdenv.hostPlatform.extensions.sharedLibrary}.3 - ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/liblapacke${stdenv.hostPlatform.extensions.sharedLibrary}.3 - ''; + ln -s $out/lib/libopenblas${shlibExt} $out/lib/libblas${shlibExt}.3 + ln -s $out/lib/libopenblas${shlibExt} $out/lib/libcblas${shlibExt}.3 + ln -s $out/lib/libopenblas${shlibExt} $out/lib/liblapack${shlibExt}.3 + ln -s $out/lib/libopenblas${shlibExt} $out/lib/liblapacke${shlibExt}.3 + ''; meta = with stdenv.lib; { description = "Basic Linear Algebra Subprograms";