summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/maths.scm3
-rw-r--r--gnu/packages/patches/superlu-dist-fix-mpi-deprecations.patch57
3 files changed, 60 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 939a91b600..785e49a774 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1238,6 +1238,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/steghide-fixes.patch			\
   %D%/packages/patches/streamlink-update-test.patch		\
   %D%/packages/patches/superlu-dist-awpm-grid.patch		\
+  %D%/packages/patches/superlu-dist-fix-mpi-deprecations.patch	\
   %D%/packages/patches/superlu-dist-scotchmetis.patch		\
   %D%/packages/patches/swig-guile-gc.patch			\
   %D%/packages/patches/swish-e-search.patch			\
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index eb0abaf3d7..10b0978ba0 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -2331,7 +2331,8 @@ void mc64ad_dist (int *a, int *b, int *c, int *d, int *e, double *f, int *g,
               "RowPerm = NOROWPERM;"))
            #t))
        (patches (search-patches "superlu-dist-scotchmetis.patch"
-                                "superlu-dist-awpm-grid.patch"))))
+                                "superlu-dist-awpm-grid.patch"
+                                "superlu-dist-fix-mpi-deprecations.patch"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("tcsh" ,tcsh)))
diff --git a/gnu/packages/patches/superlu-dist-fix-mpi-deprecations.patch b/gnu/packages/patches/superlu-dist-fix-mpi-deprecations.patch
new file mode 100644
index 0000000000..25f0aaf2f3
--- /dev/null
+++ b/gnu/packages/patches/superlu-dist-fix-mpi-deprecations.patch
@@ -0,0 +1,57 @@
+From c9cbcf8730221e366c7495073f8f8d819ee8ce89 Mon Sep 17 00:00:00 2001
+From: Eric Bavier <bavier@member.fsf.org>
+Date: Wed, 6 Feb 2019 10:06:59 -0600
+Subject: [PATCH] Replace deprecated MPI_Attr_get.
+
+Fixes build with OpenMPI version 4.0.
+
+* SRC/pdgstrf.c, SRC/pdgstrf.c, SRC/superlu_grid.c: 'MPI_Attr_get' ->
+  'MPI_Comm_get_attr'.
+---
+ SRC/pdgstrf.c      | 2 +-
+ SRC/pzgstrf.c      | 2 +-
+ SRC/superlu_grid.c | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/SRC/pdgstrf.c b/SRC/pdgstrf.c
+index 736ffa2..f92a1ba 100644
+--- a/SRC/pdgstrf.c
++++ b/SRC/pdgstrf.c
+@@ -426,7 +426,7 @@ pdgstrf(superlu_dist_options_t * options, int m, int n, double anorm,
+     s_eps = smach_dist("Epsilon");
+     thresh = s_eps * anorm;
+ 
+-    MPI_Attr_get (MPI_COMM_WORLD, MPI_TAG_UB, &attr_val, &flag);
++    MPI_Comm_get_attr (MPI_COMM_WORLD, MPI_TAG_UB, &attr_val, &flag);
+     if (!flag) {
+         fprintf (stderr, "Could not get TAG_UB\n");
+         return (-1);
+diff --git a/SRC/pzgstrf.c b/SRC/pzgstrf.c
+index 8896548..8800057 100644
+--- a/SRC/pzgstrf.c
++++ b/SRC/pzgstrf.c
+@@ -426,7 +426,7 @@ pzgstrf(superlu_dist_options_t * options, int m, int n, double anorm,
+     s_eps = smach_dist("Epsilon");
+     thresh = s_eps * anorm;
+ 
+-    MPI_Attr_get (MPI_COMM_WORLD, MPI_TAG_UB, &attr_val, &flag);
++    MPI_Comm_get_attr (MPI_COMM_WORLD, MPI_TAG_UB, &attr_val, &flag);
+     if (!flag) {
+         fprintf (stderr, "Could not get TAG_UB\n");
+         return (-1);
+diff --git a/SRC/superlu_grid.c b/SRC/superlu_grid.c
+index 1213d27..0c0fb90 100644
+--- a/SRC/superlu_grid.c
++++ b/SRC/superlu_grid.c
+@@ -150,7 +150,7 @@ void superlu_gridmap(
+     {
+ 	int tag_ub;
+ 	if ( !grid->iam ) {
+-	    MPI_Attr_get(Bcomm, MPI_TAG_UB, &tag_ub, &info);
++	    MPI_Comm_get_attr(Bcomm, MPI_TAG_UB, &tag_ub, &info);
+ 	    printf("MPI_TAG_UB %d\n", tag_ub);
+ 	    /* returns 4295677672
+ 	       In reality it is restricted to no greater than 16384. */
+-- 
+2.20.1
+