diff --git a/pkgs/development/libraries/openmpi/default.nix b/pkgs/development/libraries/openmpi/default.nix index c7ab69e5169d..2d08f37c8c23 100644 --- a/pkgs/development/libraries/openmpi/default.nix +++ b/pkgs/development/libraries/openmpi/default.nix @@ -13,19 +13,13 @@ let majorVersion = "1.10"; in stdenv.mkDerivation rec { - name = "openmpi-${majorVersion}.1"; + name = "openmpi-${majorVersion}.7"; src = fetchurl { url = "http://www.open-mpi.org/software/ompi/v${majorVersion}/downloads/${name}.tar.bz2"; - sha256 = "14p4px9a3qzjc22lnl6braxrcrmd9rgmy7fh4qpanawn2pgfq6br"; + sha256 = "142s1vny9gllkq336yafxayjgcirj2jv0ddabj879jgya7hyr2d0"; }; - # Bug in openmpi implementation for zero sized messages - # Patch required to make mpi4py pass. Will NOT - # be required when openmpi >= 2.0.0 - # https://www.open-mpi.org/community/lists/users/2015/11/28030.php - patches = [ ./nbc_copy.patch ]; - buildInputs = [ gfortran ] ++ optional (stdenv.isLinux || stdenv.isFreeBSD) libibverbs; diff --git a/pkgs/development/libraries/openmpi/nbc_copy.patch b/pkgs/development/libraries/openmpi/nbc_copy.patch deleted file mode 100644 index d496c7cc2d76..000000000000 --- a/pkgs/development/libraries/openmpi/nbc_copy.patch +++ /dev/null @@ -1,30 +0,0 @@ -commit 4ee20ba31dd64b8f899447cdad78ec2379acfce7 -Author: Gilles Gouaillardet -Date: Tue Nov 10 08:59:03 2015 +0900 - - fix NBC_Copy for legitimate zero size messages - - (back ported from commit open-mpi/ompi@0bd765eddd33e3d4ac18ec644c60a5c160cb48dc) - (back ported from commit open-mpi/ompi@9a70765f27fdf17e70e1a115754fef7e5f16132a) - -diff --git a/ompi/mca/coll/libnbc/nbc_internal.h b/ompi/mca/coll/libnbc/nbc_internal.h -index bf2f1cb..81be8cc 100644 ---- a/ompi/mca/coll/libnbc/nbc_internal.h -+++ b/ompi/mca/coll/libnbc/nbc_internal.h -@@ -501,7 +501,14 @@ static inline int NBC_Copy(void *src, int srccount, MPI_Datatype srctype, void * - } else { - /* we have to pack and unpack */ - res = MPI_Pack_size(srccount, srctype, comm, &size); -- if (MPI_SUCCESS != res || 0 == size) { printf("MPI Error in MPI_Pack_size() (%i:%i)\n", res, size); return (MPI_SUCCESS == res) ? MPI_ERR_SIZE : res;} -+ if (MPI_SUCCESS != res) { -+ printf ("MPI Error in MPI_Pack_size() (%i:%i)", res, size); -+ return res; -+ } -+ -+ if (0 == size) { -+ return OMPI_SUCCESS; -+ } - packbuf = malloc(size); - if (NULL == packbuf) { printf("Error in malloc()\n"); return res; } - pos=0; -