diff options
Diffstat (limited to 'pkgs/development/libraries/mpich')
-rw-r--r-- | pkgs/development/libraries/mpich/default.nix | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/pkgs/development/libraries/mpich/default.nix b/pkgs/development/libraries/mpich/default.nix index 0c1ea8be1c8..9227cd70543 100644 --- a/pkgs/development/libraries/mpich/default.nix +++ b/pkgs/development/libraries/mpich/default.nix @@ -1,24 +1,33 @@ -{ stdenv, fetchurl, perl, gfortran -, openssh, hwloc +{ stdenv, lib, fetchurl, perl, gfortran +, openssh, hwloc +# either libfabric or ucx work for ch4backend on linux. On darwin, neither of +# these libraries currently build so this argument is ignored on Darwin. +, ch4backend +# Process manager to build +, withPm ? "hydra:gforker" } : +assert (ch4backend.pname == "ucx" || ch4backend.pname == "libfabric"); + stdenv.mkDerivation rec { pname = "mpich"; - version = "3.3.2"; + version = "3.4.2"; src = fetchurl { url = "https://www.mpich.org/static/downloads/${version}/mpich-${version}.tar.gz"; - sha256 = "1farz5zfx4cd0c3a0wb9pgfypzw0xxql1j1294z1sxslga1ziyjb"; + sha256 = "1gw7qpb27mhsj7ip0hhljshgpwvz2hmyhizhlp6793afp2lbw6aw"; }; configureFlags = [ "--enable-shared" "--enable-sharedlib" + "--with-pm=${withPm}" ]; enableParallelBuilding = true; - buildInputs = [ perl gfortran openssh hwloc ]; + buildInputs = [ perl gfortran openssh hwloc ] + ++ lib.optional (!stdenv.isDarwin) ch4backend; doCheck = true; @@ -27,16 +36,9 @@ stdenv.mkDerivation rec { sed -i 's:CC="gcc":CC=${stdenv.cc}/bin/gcc:' $out/bin/mpicc sed -i 's:CXX="g++":CXX=${stdenv.cc}/bin/g++:' $out/bin/mpicxx sed -i 's:FC="gfortran":FC=${gfortran}/bin/gfortran:' $out/bin/mpifort - '' - + stdenv.lib.optionalString (!stdenv.isDarwin) '' - # /tmp/nix-build... ends up in the RPATH, fix it manually - for entry in $out/bin/mpichversion $out/bin/mpivars; do - echo "fix rpath: $entry" - patchelf --set-rpath "$out/lib" $entry - done - ''; + ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Implementation of the Message Passing Interface (MPI) standard"; longDescription = '' |