diff options
Diffstat (limited to 'pkgs/tools/misc/hdf5/0001-Updated-H5S-to-use-the-MPI-2-function-MPI_Type_get_e.patch')
-rw-r--r-- | pkgs/tools/misc/hdf5/0001-Updated-H5S-to-use-the-MPI-2-function-MPI_Type_get_e.patch | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/pkgs/tools/misc/hdf5/0001-Updated-H5S-to-use-the-MPI-2-function-MPI_Type_get_e.patch b/pkgs/tools/misc/hdf5/0001-Updated-H5S-to-use-the-MPI-2-function-MPI_Type_get_e.patch new file mode 100644 index 000000000000..8b32ea4bab1c --- /dev/null +++ b/pkgs/tools/misc/hdf5/0001-Updated-H5S-to-use-the-MPI-2-function-MPI_Type_get_e.patch @@ -0,0 +1,58 @@ +From 38c202df4db8eddd5e6f6f7d6506ce97912a3111 Mon Sep 17 00:00:00 2001 +From: Dana Robinson <derobins@hdfgroup.org> +Date: Mon, 26 Nov 2018 22:10:06 -0800 +Subject: [PATCH] Updated H5S to use the MPI-2 function MPI_Type_get_exten() + where available. OpenMPI 4.0 removed the deprecated MPI-1 MPI_type_extent() + call by default, so this avoids needing a special OpenMPI build. + +--- + src/H5Smpio.c | 26 ++++++++++++++++++++++++-- + 1 file changed, 24 insertions(+), 2 deletions(-) + +diff --git a/src/H5Smpio.c b/src/H5Smpio.c +index 2bd275a729..e71e2cb858 100644 +--- a/src/H5Smpio.c ++++ b/src/H5Smpio.c +@@ -879,7 +879,18 @@ H5S_mpio_hyper_type(const H5S_t *space, size_t elmt_size, + HMPI_GOTO_ERROR(FAIL, "MPI_Type_contiguous failed", mpi_code) + } + +- MPI_Type_extent (inner_type, &inner_extent); ++#if MPI_VERSION >= 2 ++{ ++ /* As of version 4.0, OpenMPI now turns off MPI-1 API calls by default, ++ * so we're using the MPI-2 version even though we don't need the lb ++ * value. ++ */ ++ MPI_Aint unused_lb_arg; ++ MPI_Type_get_extent(inner_type, &unused_lb_arg, &inner_extent); ++} ++#else ++ MPI_Type_extent(inner_type, &inner_extent); ++#endif + stride_in_bytes = inner_extent * (MPI_Aint)d[i].strid; + + /* If the element count is larger than what a 32 bit integer can hold, +@@ -1500,7 +1511,18 @@ static herr_t H5S_mpio_create_large_type (hsize_t num_elements, + } + } + +- MPI_Type_extent (old_type, &old_extent); ++#if MPI_VERSION >= 2 ++{ ++ /* As of version 4.0, OpenMPI now turns off MPI-1 API calls by default, ++ * so we're using the MPI-2 version even though we don't need the lb ++ * value. ++ */ ++ MPI_Aint unused_lb_arg; ++ MPI_Type_get_extent(old_type, &unused_lb_arg, &old_extent); ++} ++#else ++ MPI_Type_extent(old_type, &old_extent); ++#endif + + /* Set up the arguments for MPI_Type_struct constructor */ + type[0] = outer_type; +-- +2.18.1 + |