[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