Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 Nov 2021 12:19:46 GMT
From:      Piotr Kubaj <pkubaj@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: e2bc9761556c - main - science/hypre: fix build on powerpc64*
Message-ID:  <202111071219.1A7CJkrU095336@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by pkubaj:

URL: https://cgit.FreeBSD.org/ports/commit/?id=e2bc9761556c33ed29725da142702878cc572a8c

commit e2bc9761556c33ed29725da142702878cc572a8c
Author:     Piotr Kubaj <pkubaj@FreeBSD.org>
AuthorDate: 2021-11-07 12:15:02 +0000
Commit:     Piotr Kubaj <pkubaj@FreeBSD.org>
CommitDate: 2021-11-07 12:15:02 +0000

    science/hypre: fix build on powerpc64*
    
    Collision with machine/frame.h's lr:
    In file included from /wrkdirs/usr/ports/science/hypre/work/hypre-2.23.0/src/distributed_ls/pilut/parilut.c:53:
    In file included from /wrkdirs/usr/ports/science/hypre/work/hypre-2.23.0/src/distributed_ls/pilut/ilu.h:29:
    In file included from /usr/include/signal.h:40:
    In file included from /usr/include/sys/signal.h:48:
    In file included from /usr/include/machine/signal.h:45:
    /usr/include/machine/frame.h:54:13: error: expected ')'
            register_t lr;
---
 science/hypre/Makefile                             |  2 -
 ...ibuted__ls_pilut_DistributedMatrixPilutSolver.h | 11 +++
 ..._ls_pilut_HYPRE__DistributedMatrixPilutSolver.c | 11 +++
 .../files/patch-distributed__ls_pilut_parilut.c    | 79 ++++++++++++++++++++++
 .../files/patch-distributed__ls_pilut_serilut.c    | 63 +++++++++++++++++
 .../hypre/files/patch-distributed__ls_pilut_util.c | 21 ++++++
 6 files changed, 185 insertions(+), 2 deletions(-)

diff --git a/science/hypre/Makefile b/science/hypre/Makefile
index 9f220b712de7..b941e7dc9053 100644
--- a/science/hypre/Makefile
+++ b/science/hypre/Makefile
@@ -13,8 +13,6 @@ LICENSE_COMB=	dual
 LICENSE_FILE_APACHE20=	${WRKSRC}/../LICENSE-APACHE
 LICENSE_FILE_MIT=	${WRKSRC}/../LICENSE-MIT
 
-BROKEN_powerpc64=	fails to compile: ./DistributedMatrixPilutSolver.h:97:20: expected ')' before '->' token
-
 USES=		blaslapack cmake:testing fortran localbase
 USE_LDCONFIG=	yes
 
diff --git a/science/hypre/files/patch-distributed__ls_pilut_DistributedMatrixPilutSolver.h b/science/hypre/files/patch-distributed__ls_pilut_DistributedMatrixPilutSolver.h
new file mode 100644
index 000000000000..02cda72afd71
--- /dev/null
+++ b/science/hypre/files/patch-distributed__ls_pilut_DistributedMatrixPilutSolver.h
@@ -0,0 +1,11 @@
+--- distributed_ls/pilut/DistributedMatrixPilutSolver.h.orig	2021-11-07 01:57:53 UTC
++++ distributed_ls/pilut/DistributedMatrixPilutSolver.h
+@@ -86,7 +86,7 @@ HYPRE_Int Ul_timer;
+ #define jr (globals->_jr)
+ #define jw (globals->_jw)
+ #define lastjr (globals->_lastjr)
+-#define lr (globals->_lr)
++#define hypre_lr (globals->_lr)
+ #define lastlr (globals->_lastlr)
+ #define w (globals->_w)
+ #define firstrow (globals->_firstrow)
diff --git a/science/hypre/files/patch-distributed__ls_pilut_HYPRE__DistributedMatrixPilutSolver.c b/science/hypre/files/patch-distributed__ls_pilut_HYPRE__DistributedMatrixPilutSolver.c
new file mode 100644
index 000000000000..6de1489c4226
--- /dev/null
+++ b/science/hypre/files/patch-distributed__ls_pilut_HYPRE__DistributedMatrixPilutSolver.c
@@ -0,0 +1,11 @@
+--- distributed_ls/pilut/HYPRE_DistributedMatrixPilutSolver.c.orig	2021-11-07 12:02:36 UTC
++++ distributed_ls/pilut/HYPRE_DistributedMatrixPilutSolver.c
+@@ -39,7 +39,7 @@ HYPRE_Int  HYPRE_NewDistributedMatrixPilutSolver( 
+        (hypre_PilutSolverGlobals *) hypre_CTAlloc( hypre_PilutSolverGlobals,  1 , HYPRE_MEMORY_HOST);
+ 
+    jr = NULL;
+-   lr = NULL;
++   hypre_lr = NULL;
+    jw = NULL;
+    w  = NULL;
+ 
diff --git a/science/hypre/files/patch-distributed__ls_pilut_parilut.c b/science/hypre/files/patch-distributed__ls_pilut_parilut.c
new file mode 100644
index 000000000000..9ac4c1cab52c
--- /dev/null
+++ b/science/hypre/files/patch-distributed__ls_pilut_parilut.c
@@ -0,0 +1,79 @@
+--- distributed_ls/pilut/parilut.c.orig	2021-11-07 12:05:55 UTC
++++ distributed_ls/pilut/parilut.c
+@@ -145,7 +145,7 @@ void hypre_ParILUT(DataDistType *ddist, FactorMatType 
+              newperm, newiperm, vrowdist, -1);*/
+   hypre_TFree(jr, HYPRE_MEMORY_HOST);
+   hypre_TFree(jw, HYPRE_MEMORY_HOST);
+-  hypre_TFree(lr, HYPRE_MEMORY_HOST);
++  hypre_TFree(hypre_lr, HYPRE_MEMORY_HOST);
+   hypre_TFree(w, HYPRE_MEMORY_HOST);
+   hypre_TFree(pilut_map, HYPRE_MEMORY_HOST);
+   hypre_TFree(nrmat.rmat_rnz, HYPRE_MEMORY_HOST);
+@@ -167,7 +167,7 @@ void hypre_ParILUT(DataDistType *ddist, FactorMatType 
+ 
+   jr = NULL;
+   jw = NULL;
+-  lr = NULL;
++  hypre_lr = NULL;
+   w  = NULL;
+ 
+ #ifdef HYPRE_DEBUG
+@@ -651,9 +651,9 @@ void hypre_ComputeRmat(FactorMatType *ldu, ReduceMatTy
+       /* record L elements */
+       if (IsInMIS(pilut_map[rcolind[lastjr]])) {
+          if (rcolind[lastjr] >= firstrow  &&  rcolind[lastjr] < lastrow)
+-            lr[lastlr] = (newiperm[rcolind[lastjr]-firstrow] << 1);
++            hypre_lr[lastlr] = (newiperm[rcolind[lastjr]-firstrow] << 1);
+          else {
+-            lr[lastlr] = pilut_map[rcolind[lastjr]];  /* map[] == (l<<1) | 1 */
++            hypre_lr[lastlr] = pilut_map[rcolind[lastjr]];  /* map[] == (l<<1) | 1 */
+             hypre_assert(incolind[StripMIS(pilut_map[rcolind[lastjr]])+1] ==
+                  rcolind[lastjr]);
+          }
+@@ -696,7 +696,7 @@ void hypre_ComputeRmat(FactorMatType *ldu, ReduceMatTy
+             /* record L elements -- these must be local */
+             if (IsInMIS(pilut_map[ucolind[l]])) {
+                hypre_assert(ucolind[l] >= firstrow  &&  ucolind[l] < lastrow);
+-               lr[lastlr] = (newiperm[ucolind[l]-firstrow] << 1);
++               hypre_lr[lastlr] = (newiperm[ucolind[l]-firstrow] << 1);
+                lastlr++;
+             }
+ 
+@@ -736,7 +736,7 @@ void hypre_ComputeRmat(FactorMatType *ldu, ReduceMatTy
+             /* record L elements -- these must be remote */
+             if (IsInMIS(pilut_map[incolind[l]])) {
+                hypre_assert(incolind[l] < firstrow  ||  incolind[l] >= lastrow);
+-               lr[lastlr] = pilut_map[incolind[l]];  /* map[] == (l<<1) | 1 */
++               hypre_lr[lastlr] = pilut_map[incolind[l]];  /* map[] == (l<<1) | 1 */
+                lastlr++;
+             }
+ 
+@@ -834,7 +834,7 @@ void hypre_FactorLocal(FactorMatType *ldu, ReduceMatTy
+       if (rcolind[lastjr] >= firstrow  &&
+             rcolind[lastjr] <  lastrow   &&
+             newiperm[rcolind[lastjr]-firstrow] < diag) {
+-         lr[lastlr] = newiperm[rcolind[lastjr]-firstrow];
++         hypre_lr[lastlr] = newiperm[rcolind[lastjr]-firstrow];
+         lastlr++;
+       }
+ 
+@@ -873,7 +873,7 @@ void hypre_FactorLocal(FactorMatType *ldu, ReduceMatTy
+                   ucolind[l] <  lastrow   &&
+                   newiperm[ucolind[l]-firstrow] < diag) {
+                hypre_assert(IsInMIS(pilut_map[ucolind[l]]));
+-               lr[lastlr] = newiperm[ucolind[l]-firstrow];
++               hypre_lr[lastlr] = newiperm[ucolind[l]-firstrow];
+                lastlr++;
+             }
+ 
+@@ -1353,8 +1353,8 @@ void hypre_ParINIT( ReduceMatType *nrmat, CommInfoType
+   /* Allocate work space */
+   hypre_TFree(jr, HYPRE_MEMORY_HOST);
+   jr = hypre_idx_malloc_init(nrows, -1, "hypre_ParILUT: jr");
+-  hypre_TFree(lr, HYPRE_MEMORY_HOST);
+-  lr = hypre_idx_malloc_init(nleft, -1, "hypre_ParILUT: lr");
++  hypre_TFree(hypre_lr, HYPRE_MEMORY_HOST);
++  hypre_lr = hypre_idx_malloc_init(nleft, -1, "hypre_ParILUT: lr");
+   hypre_TFree(jw, HYPRE_MEMORY_HOST);
+   jw = hypre_idx_malloc(nleft, "hypre_ParILUT: jw");
+   hypre_TFree(w, HYPRE_MEMORY_HOST);
diff --git a/science/hypre/files/patch-distributed__ls_pilut_serilut.c b/science/hypre/files/patch-distributed__ls_pilut_serilut.c
new file mode 100644
index 000000000000..359c1faa1fe1
--- /dev/null
+++ b/science/hypre/files/patch-distributed__ls_pilut_serilut.c
@@ -0,0 +1,63 @@
+--- distributed_ls/pilut/serilut.c.orig	2021-11-07 12:06:04 UTC
++++ distributed_ls/pilut/serilut.c
+@@ -70,8 +70,8 @@ HYPRE_Int hypre_SerILUT(DataDistType *ddist, HYPRE_Dis
+   /* Allocate work space */
+   hypre_TFree(jr, HYPRE_MEMORY_HOST);
+   jr = hypre_idx_malloc_init(nrows, -1, "hypre_SerILUT: jr");
+-  hypre_TFree(lr, HYPRE_MEMORY_HOST);
+-  lr = hypre_idx_malloc_init(nrows, -1, "hypre_SerILUT: lr");
++  hypre_TFree(hypre_lr, HYPRE_MEMORY_HOST);
++  hypre_lr = hypre_idx_malloc_init(nrows, -1, "hypre_SerILUT: lr");
+   hypre_TFree(jw, HYPRE_MEMORY_HOST);
+   jw = hypre_idx_malloc(nrows, "hypre_SerILUT: jw");
+   hypre_TFree(w, HYPRE_MEMORY_HOST);
+@@ -158,7 +158,7 @@ HYPRE_Int hypre_SerILUT(DataDistType *ddist, HYPRE_Dis
+ 
+     for (lastjr=1, lastlr=0, j=0, diag_present=0; j<row_size; j++) {
+       if (iperm[ col_ind[j] - firstrow ] < iperm[i]) 
+-        lr[lastlr++] = iperm[ col_ind[j]-firstrow]; /* Copy the L elements separately */
++        hypre_lr[lastlr++] = iperm[ col_ind[j]-firstrow]; /* Copy the L elements separately */
+ 
+       if (col_ind[j] != i+firstrow) { /* Off-diagonal element */
+         jr[col_ind[j]] = lastjr;
+@@ -207,7 +207,7 @@ HYPRE_Int hypre_SerILUT(DataDistType *ddist, HYPRE_Dis
+ 
+         if (m == -1) {  /* Create fill */
+           if (iperm[ucolind[l]-firstrow] < iperm[i]) 
+-            lr[lastlr++] = iperm[ucolind[l]-firstrow]; /* Copy the L elements separately */
++            hypre_lr[lastlr++] = iperm[ucolind[l]-firstrow]; /* Copy the L elements separately */
+ 
+           jr[ucolind[l]] = lastjr;
+           jw[lastjr] = ucolind[l];
+@@ -258,7 +258,7 @@ HYPRE_Int hypre_SerILUT(DataDistType *ddist, HYPRE_Dis
+       if (col_ind[j] >= firstrow  &&
+             col_ind[j] < lastrow    &&
+             iperm[col_ind[j]-firstrow] < nlocal) 
+-        lr[lastlr++] = iperm[col_ind[j]-firstrow]; /* Copy the L elements separately */
++        hypre_lr[lastlr++] = iperm[col_ind[j]-firstrow]; /* Copy the L elements separately */
+ 
+       if (col_ind[j] != i+firstrow) { /* Off-diagonal element */
+         jr[col_ind[j]] = lastjr;
+@@ -304,7 +304,7 @@ HYPRE_Int hypre_SerILUT(DataDistType *ddist, HYPRE_Dis
+         if (m == -1) {  /* Create fill */
+            hypre_CheckBounds(firstrow, ucolind[l], lastrow, globals);
+           if (iperm[ucolind[l]-firstrow] < nlocal) 
+-            lr[lastlr++] = iperm[ucolind[l]-firstrow]; /* Copy the L elements separately */
++            hypre_lr[lastlr++] = iperm[ucolind[l]-firstrow]; /* Copy the L elements separately */
+ 
+           jr[ucolind[l]] = lastjr;
+           jw[lastjr] = ucolind[l];
+@@ -330,11 +330,11 @@ HYPRE_Int hypre_SerILUT(DataDistType *ddist, HYPRE_Dis
+   /*hypre_free_multi(jr, jw, lr, w, -1);*/
+   hypre_TFree(jr, HYPRE_MEMORY_HOST);
+   hypre_TFree(jw, HYPRE_MEMORY_HOST);
+-  hypre_TFree(lr, HYPRE_MEMORY_HOST);
++  hypre_TFree(hypre_lr, HYPRE_MEMORY_HOST);
+   hypre_TFree(w, HYPRE_MEMORY_HOST);
+   jr = NULL;
+   jw = NULL;
+-  lr = NULL;
++  hypre_lr = NULL;
+   w = NULL;
+ 
+   return(ierr);
diff --git a/science/hypre/files/patch-distributed__ls_pilut_util.c b/science/hypre/files/patch-distributed__ls_pilut_util.c
new file mode 100644
index 000000000000..e6ecf98bc445
--- /dev/null
+++ b/science/hypre/files/patch-distributed__ls_pilut_util.c
@@ -0,0 +1,21 @@
+--- distributed_ls/pilut/util.c.orig	2021-11-07 12:06:10 UTC
++++ distributed_ls/pilut/util.c
+@@ -28,15 +28,15 @@ HYPRE_Int hypre_ExtractMinLR( hypre_PilutSolverGlobals
+   HYPRE_Int i, j=0 ;
+ 
+   for (i=1; i<lastlr; i++) {
+-    if (lr[i] < lr[j])
++    if (hypre_lr[i] < hypre_lr[j])
+       j = i;
+   }
+-  i = lr[j];
++  i = hypre_lr[j];
+ 
+   /* Remove it */
+   lastlr-- ;
+   if (j < lastlr) 
+-    lr[j] = lr[lastlr];
++    hypre_lr[j] = hypre_lr[lastlr];
+ 
+   return i;
+ }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202111071219.1A7CJkrU095336>