summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDana Robinson <derobins@hdfgroup.org>2018-11-27 06:10:06 (GMT)
committerDana Robinson <derobins@hdfgroup.org>2018-11-27 06:10:06 (GMT)
commit38c202df4db8eddd5e6f6f7d6506ce97912a3111 (patch)
tree2c71e1ee68683df83aed55faf8f9837e68b0c707
parentd517bdf9d36f423e7abad34e109b6ce694fd03c8 (diff)
downloadhdf5-38c202df4db8eddd5e6f6f7d6506ce97912a3111.zip
hdf5-38c202df4db8eddd5e6f6f7d6506ce97912a3111.tar.gz
hdf5-38c202df4db8eddd5e6f6f7d6506ce97912a3111.tar.bz2
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.
-rw-r--r--src/H5Smpio.c26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/H5Smpio.c b/src/H5Smpio.c
index 2bd275a..e71e2cb 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;