Skip to content

Commit

Permalink
science/hypre: fix build on powerpc64*
Browse files Browse the repository at this point in the history
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;
  • Loading branch information
pkubaj committed Nov 7, 2021
1 parent c62f15a commit e2bc976
Show file tree
Hide file tree
Showing 6 changed files with 185 additions and 2 deletions.
2 changes: 0 additions & 2 deletions science/hypre/Makefile
Expand Up @@ -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

Expand Down
@@ -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)
@@ -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;

79 changes: 79 additions & 0 deletions 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);
63 changes: 63 additions & 0 deletions 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);
21 changes: 21 additions & 0 deletions 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;
}

0 comments on commit e2bc976

Please sign in to comment.