[arch-commits] Commit in hdf5-openmpi/trunk (2 files)
Bruno Pagani
archange at archlinux.org
Fri Feb 15 12:39:21 UTC 2019
Date: Friday, February 15, 2019 @ 12:39:21
Author: archange
Revision: 432662
Fix for OpenMPI 4.0
MPI 1.0 interfaces are now removed, replace them.
Added:
hdf5-openmpi/trunk/remove-openmpi-1.0-interfaces.patch
Modified:
hdf5-openmpi/trunk/PKGBUILD
-------------------------------------+
PKGBUILD | 9 ++-
remove-openmpi-1.0-interfaces.patch | 102 ++++++++++++++++++++++++++++++++++
2 files changed, 108 insertions(+), 3 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2019-02-15 12:31:47 UTC (rev 432661)
+++ PKGBUILD 2019-02-15 12:39:21 UTC (rev 432662)
@@ -10,7 +10,7 @@
_mpi=openmpi
pkgname=${_pkgname}-${_mpi}
pkgver=1.10.4
-pkgrel=1
+pkgrel=2
pkgdesc="General purpose library and file format for storing scientific data (${_mpi} version)"
arch=('x86_64')
url="https://www.hdfgroup.org/hdf5"
@@ -22,14 +22,17 @@
replaces=("hdf5-fortran-${_mpi}")
options=('staticlibs')
source=("https://support.hdfgroup.org/ftp/HDF5/releases/${_pkgname}-${pkgver:0:4}/${_pkgname}-${pkgver/_/-}/src/${_pkgname}-${pkgver/_/-}.tar.bz2"
- 'mpi.patch')
+ 'mpi.patch'
+ 'remove-openmpi-1.0-interfaces.patch')
sha256sums=('1267ff06aaedc04ca25f7c6026687ea2884b837043431195f153401d942b28df'
- '603006358175b7a8b35fa44c484cddf45c0381cf50db4fb7c50ea5969d361eca')
+ '603006358175b7a8b35fa44c484cddf45c0381cf50db4fb7c50ea5969d361eca'
+ '41b1277843492b055ae448910cb03869b533364fdde585afbe1bbed0377ffaa3')
prepare() {
cd ${_pkgname}-${pkgver/_/-}
# FS#33343
patch -p1 -i ../mpi.patch
+ patch -p1 -i ../remove-openmpi-1.0-interfaces.patch
}
build() {
Added: remove-openmpi-1.0-interfaces.patch
===================================================================
--- remove-openmpi-1.0-interfaces.patch (rev 0)
+++ remove-openmpi-1.0-interfaces.patch 2019-02-15 12:39:21 UTC (rev 432662)
@@ -0,0 +1,102 @@
+--- A/src/H5Smpio.c 2018-09-04 04:54:44.000000000 +0200
++++ B/src/H5Smpio.c 2018-11-22 16:58:44.365923064 +0100
+@@ -859,7 +859,7 @@
+ * (2GB-1)number_of_blocks * the_datatype_extent.
+ */
+
+- MPI_Aint stride_in_bytes, inner_extent;
++ MPI_Aint stride_in_bytes, inner_extent, lower_bound;
+ MPI_Datatype block_type;
+
+ /* create a contiguous datatype inner_type x number of BLOCKS.
+@@ -879,7 +879,7 @@
+ HMPI_GOTO_ERROR(FAIL, "MPI_Type_contiguous failed", mpi_code)
+ }
+
+- MPI_Type_extent (inner_type, &inner_extent);
++ MPI_Type_get_extent (inner_type, &lower_bound, &inner_extent);
+ stride_in_bytes = inner_extent * (MPI_Aint)d[i].strid;
+
+ /* If the element count is larger than what a 32 bit integer can hold,
+@@ -1424,7 +1424,7 @@
+ int block_len[2];
+ int mpi_code; /* MPI return code */
+ MPI_Datatype inner_type, outer_type, leftover_type, type[2];
+- MPI_Aint disp[2], old_extent;
++ MPI_Aint disp[2], old_extent, lower_bound;
+ herr_t ret_value = SUCCEED; /* Return value */
+
+ FUNC_ENTER_NOAPI_NOINIT
+@@ -1500,9 +1500,9 @@
+ }
+ }
+
+- MPI_Type_extent (old_type, &old_extent);
++ MPI_Type_get_extent (old_type, &lower_bound, &old_extent);
+
+- /* Set up the arguments for MPI_Type_struct constructor */
++ /* Set up the arguments for MPI_Type_create_struct constructor */
+ type[0] = outer_type;
+ type[1] = leftover_type;
+ block_len[0] = 1;
+--- A/src/H5.c 2018-10-05 07:21:51.000000000 +0200
++++ B/src/H5.c 2018-11-22 16:52:52.353016751 +0100
+@@ -138,7 +138,7 @@
+ if (mpi_initialized && !mpi_finalized) {
+ int key_val;
+
+- if(MPI_SUCCESS != (mpi_code = MPI_Comm_create_keyval(MPI_NULL_COPY_FN,
++ if(MPI_SUCCESS != (mpi_code = MPI_Comm_create_keyval(MPI_COMM_NULL_COPY_FN,
+ (MPI_Comm_delete_attr_function *)H5_mpi_delete_cb,
+ &key_val, NULL)))
+ HMPI_GOTO_ERROR(FAIL, "MPI_Comm_create_keyval failed", mpi_code)
+--- A/testpar/t_cache.c 2018-09-10 16:43:41.000000000 +0200
++++ B/testpar/t_cache.c 2018-11-22 16:58:45.405881436 +0100
+@@ -1217,20 +1217,20 @@
+ struct mssg_t sample; /* used to compute displacements */
+
+ /* setup the displacements array */
+- if ( ( MPI_SUCCESS != MPI_Address(&sample.req, &displs[0]) ) ||
+- ( MPI_SUCCESS != MPI_Address(&sample.src, &displs[1]) ) ||
+- ( MPI_SUCCESS != MPI_Address(&sample.dest, &displs[2]) ) ||
+- ( MPI_SUCCESS != MPI_Address(&sample.mssg_num, &displs[3]) ) ||
+- ( MPI_SUCCESS != MPI_Address(&sample.base_addr, &displs[4]) ) ||
+- ( MPI_SUCCESS != MPI_Address(&sample.len, &displs[5]) ) ||
+- ( MPI_SUCCESS != MPI_Address(&sample.ver, &displs[6]) ) ||
+- ( MPI_SUCCESS != MPI_Address(&sample.count, &displs[7]) ) ||
+- ( MPI_SUCCESS != MPI_Address(&sample.magic, &displs[8]) ) ) {
++ if ( ( MPI_SUCCESS != MPI_Get_address(&sample.req, &displs[0]) ) ||
++ ( MPI_SUCCESS != MPI_Get_address(&sample.src, &displs[1]) ) ||
++ ( MPI_SUCCESS != MPI_Get_address(&sample.dest, &displs[2]) ) ||
++ ( MPI_SUCCESS != MPI_Get_address(&sample.mssg_num, &displs[3]) ) ||
++ ( MPI_SUCCESS != MPI_Get_address(&sample.base_addr, &displs[4]) ) ||
++ ( MPI_SUCCESS != MPI_Get_address(&sample.len, &displs[5]) ) ||
++ ( MPI_SUCCESS != MPI_Get_address(&sample.ver, &displs[6]) ) ||
++ ( MPI_SUCCESS != MPI_Get_address(&sample.count, &displs[7]) ) ||
++ ( MPI_SUCCESS != MPI_Get_address(&sample.magic, &displs[8]) ) ) {
+
+ nerrors++;
+ success = FALSE;
+ if ( verbose ) {
+- HDfprintf(stdout, "%d:%s: MPI_Address() call failed.\n",
++ HDfprintf(stdout, "%d:%s: MPI_Get_address() call failed.\n",
+ world_mpi_rank, FUNC);
+ }
+
+@@ -1245,14 +1245,14 @@
+
+ if ( success ) {
+
+- result = MPI_Type_struct(9, block_len, displs, mpi_types, &mpi_mssg_t);
++ result = MPI_Type_create_struct(9, block_len, displs, mpi_types, &mpi_mssg_t);
+
+ if ( result != MPI_SUCCESS ) {
+
+ nerrors++;
+ success = FALSE;
+ if ( verbose ) {
+- HDfprintf(stdout, "%d:%s: MPI_Type_struct() call failed.\n",
++ HDfprintf(stdout, "%d:%s: MPI_Type_create_struct() call failed.\n",
+ world_mpi_rank, FUNC);
+ }
+ }
More information about the arch-commits
mailing list