summaryrefslogtreecommitdiff
path: root/math/scalapack
diff options
context:
space:
mode:
Diffstat (limited to 'math/scalapack')
-rw-r--r--math/scalapack/Makefile3
-rw-r--r--math/scalapack/files/patch-BLACS_SRC_Bdef.h18
-rw-r--r--math/scalapack/files/patch-BLACS_SRC_blacs__init__.c15
-rw-r--r--math/scalapack/files/patch-CMakeLists.txt10
-rw-r--r--math/scalapack/files/patch-gridmap120
5 files changed, 165 insertions, 1 deletions
diff --git a/math/scalapack/Makefile b/math/scalapack/Makefile
index 0a5668a213eb..c9020ac6731d 100644
--- a/math/scalapack/Makefile
+++ b/math/scalapack/Makefile
@@ -1,5 +1,6 @@
PORTNAME= scalapack
PORTVERSION= 2.2.2
+PORTREVISION= 1
DISTVERSIONPREFIX= v
CATEGORIES= math
@@ -60,7 +61,7 @@ FFLAGS+= ${FPIC}
LDFLAGS+= ${MPI_LIBS}
SVERSION= ${PORTVERSION:R:R}
-.if ${GCC_DEFAULT} >= 10
+.if ${FORTRAN_DEFAULT} == gfortran && ${GCC_DEFAULT} >= 10
# workaround for Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
FFLAGS+= -fallow-argument-mismatch
.endif
diff --git a/math/scalapack/files/patch-BLACS_SRC_Bdef.h b/math/scalapack/files/patch-BLACS_SRC_Bdef.h
new file mode 100644
index 000000000000..7845091f1e18
--- /dev/null
+++ b/math/scalapack/files/patch-BLACS_SRC_Bdef.h
@@ -0,0 +1,18 @@
+--- BLACS/SRC/Bdef.h.orig 2024-08-06 11:44:11 UTC
++++ BLACS/SRC/Bdef.h
+@@ -129,6 +129,15 @@ Int BI_ContxtNum(BLACSCONTEXT *ctxt);
+ void BI_BlacsWarn(Int ConTxt, Int line, char *file, char *form, ...);
+ void BI_BlacsErr(Int ConTxt, Int line, char *file, char *form, ...);
+ Int BI_ContxtNum(BLACSCONTEXT *ctxt);
++void BI_TransDist(BLACSCONTEXT *ctxt, char scope, Int m, Int n, Int *rA,
++ Int *cA, Int ldrc, BI_DistType *dist, Int rdest, Int cdest);
++void BI_dmvcopy(Int m, Int n, double *A, Int lda, double *buff);
++void BI_dvmcopy(Int m, Int n, double *A, Int lda, double *buff);
++void BI_imvcopy(Int m, Int n, Int *A, Int lda, Int *buff);
++void BI_ivmcopy(Int m, Int n, Int *A, Int lda, Int *buff);
++void BI_smvcopy(Int m, Int n, float *A, Int lda, float *buff);
++void BI_svmcopy(Int m, Int n, float *A, Int lda, float *buff);
++void Cblacs_pinfo(Int *mypnum, Int *nprocs);
+
+ /*
+ * If we've got an ANSI standard C compiler, we can use void pointers...
diff --git a/math/scalapack/files/patch-BLACS_SRC_blacs__init__.c b/math/scalapack/files/patch-BLACS_SRC_blacs__init__.c
new file mode 100644
index 000000000000..642edde152d9
--- /dev/null
+++ b/math/scalapack/files/patch-BLACS_SRC_blacs__init__.c
@@ -0,0 +1,15 @@
+--- BLACS/SRC/blacs_init_.c.orig 2024-08-06 11:44:11 UTC
++++ BLACS/SRC/blacs_init_.c
+@@ -6,7 +6,12 @@ F_VOID_FUNC blacs_gridinit_(Int *ConTxt, F_CHAR order,
+ F_VOID_FUNC blacs_gridinit_(Int *ConTxt, F_CHAR order, Int *nprow, Int *npcol)
+ #endif
+ {
++#if (INTFACE == C_CALL)
+ void Cblacs_gridmap(Int *, Int *, Int, Int, Int);
++#else
++ F_VOID_FUNC blacs_gridmap_(Int *ConTxt, Int *usermap, Int *ldup, Int *nprow0,
++ Int *npcol0);
++#endif
+ Int *tmpgrid, *iptr;
+ Int i, j;
+
diff --git a/math/scalapack/files/patch-CMakeLists.txt b/math/scalapack/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..133cf6b18859
--- /dev/null
+++ b/math/scalapack/files/patch-CMakeLists.txt
@@ -0,0 +1,10 @@
+--- CMakeLists.txt.orig 2025-09-05 14:39:41 UTC
++++ CMakeLists.txt
+@@ -239,6 +239,7 @@ if (NOT MSVC)
+ append_subdir_files(src-C "SRC")
+
+ if (NOT MSVC)
++ set_source_files_properties(TOOLS/SL_gridreshape.c PROPERTIES COMPILE_OPTIONS "-Wno-error=implicit-function-declaration")
+ add_library(scalapack ${blacs} ${tools} ${tools-C} ${extra_lapack} ${pblas} ${pblas-F} ${ptzblas} ${ptools} ${pbblas} ${redist} ${src} ${src-C})
+ set_target_properties(scalapack PROPERTIES
+ VERSION ${SCALAPACK_VERSION}
diff --git a/math/scalapack/files/patch-gridmap b/math/scalapack/files/patch-gridmap
new file mode 100644
index 000000000000..f442271f2045
--- /dev/null
+++ b/math/scalapack/files/patch-gridmap
@@ -0,0 +1,120 @@
+--- REDIST/SRC/pcgemr.c.orig 2024-08-06 11:44:11 UTC
++++ REDIST/SRC/pcgemr.c
+@@ -194,6 +194,7 @@ extern void Cblacs_gridinit();
+ extern void Cblacs_pinfo();
+ extern void Cblacs_gridinfo();
+ extern void Cblacs_gridinit();
++extern void Cblacs_gridmap();
+ extern void Cblacs_exit();
+ extern void Cblacs_gridexit();
+ extern void Cblacs_setup();
+--- REDIST/SRC/pctrmr.c.orig 2024-08-06 11:44:11 UTC
++++ REDIST/SRC/pctrmr.c
+@@ -209,6 +209,7 @@ extern void Cblacs_gridinit();
+ extern void Cblacs_pinfo();
+ extern void Cblacs_gridinfo();
+ extern void Cblacs_gridinit();
++extern void Cblacs_gridmap();
+ extern void Cblacs_exit();
+ extern void Cblacs_gridexit();
+ extern void Cblacs_setup();
+--- REDIST/SRC/pdgemr.c.orig 2024-08-06 11:44:11 UTC
++++ REDIST/SRC/pdgemr.c
+@@ -191,6 +191,7 @@ extern void Cblacs_gridinit();
+ extern void Cblacs_pinfo();
+ extern void Cblacs_gridinfo();
+ extern void Cblacs_gridinit();
++extern void Cblacs_gridmap();
+ extern void Cblacs_exit();
+ extern void Cblacs_gridexit();
+ extern void Cblacs_setup();
+--- REDIST/SRC/pdtrmr.c.orig 2024-08-06 11:44:11 UTC
++++ REDIST/SRC/pdtrmr.c
+@@ -206,6 +206,7 @@ extern void Cblacs_gridinit();
+ extern void Cblacs_pinfo();
+ extern void Cblacs_gridinfo();
+ extern void Cblacs_gridinit();
++extern void Cblacs_gridmap();
+ extern void Cblacs_exit();
+ extern void Cblacs_gridexit();
+ extern void Cblacs_setup();
+--- REDIST/SRC/pigemr.c.orig 2024-08-06 11:44:11 UTC
++++ REDIST/SRC/pigemr.c
+@@ -191,6 +191,7 @@ extern void Cblacs_gridinit();
+ extern void Cblacs_pinfo();
+ extern void Cblacs_gridinfo();
+ extern void Cblacs_gridinit();
++extern void Cblacs_gridmap();
+ extern void Cblacs_exit();
+ extern void Cblacs_gridexit();
+ extern void Cblacs_setup();
+--- REDIST/SRC/pitrmr.c.orig 2024-08-06 11:44:11 UTC
++++ REDIST/SRC/pitrmr.c
+@@ -206,6 +206,7 @@ extern void Cblacs_gridinit();
+ extern void Cblacs_pinfo();
+ extern void Cblacs_gridinfo();
+ extern void Cblacs_gridinit();
++extern void Cblacs_gridmap();
+ extern void Cblacs_exit();
+ extern void Cblacs_gridexit();
+ extern void Cblacs_setup();
+--- REDIST/SRC/psgemr.c.orig 2024-08-06 11:44:11 UTC
++++ REDIST/SRC/psgemr.c
+@@ -191,6 +191,7 @@ extern void Cblacs_gridinit();
+ extern void Cblacs_pinfo();
+ extern void Cblacs_gridinfo();
+ extern void Cblacs_gridinit();
++extern void Cblacs_gridmap();
+ extern void Cblacs_exit();
+ extern void Cblacs_gridexit();
+ extern void Cblacs_setup();
+--- REDIST/SRC/pstrmr.c.orig 2024-08-06 11:44:11 UTC
++++ REDIST/SRC/pstrmr.c
+@@ -206,6 +206,7 @@ extern void Cblacs_gridinit();
+ extern void Cblacs_pinfo();
+ extern void Cblacs_gridinfo();
+ extern void Cblacs_gridinit();
++extern void Cblacs_gridmap();
+ extern void Cblacs_exit();
+ extern void Cblacs_gridexit();
+ extern void Cblacs_setup();
+--- REDIST/SRC/pzgemr.c.orig 2024-08-06 11:44:11 UTC
++++ REDIST/SRC/pzgemr.c
+@@ -194,6 +194,7 @@ extern void Cblacs_gridinit();
+ extern void Cblacs_pinfo();
+ extern void Cblacs_gridinfo();
+ extern void Cblacs_gridinit();
++extern void Cblacs_gridmap();
+ extern void Cblacs_exit();
+ extern void Cblacs_gridexit();
+ extern void Cblacs_setup();
+--- REDIST/SRC/pztrmr.c.orig 2024-08-06 11:44:11 UTC
++++ REDIST/SRC/pztrmr.c
+@@ -209,6 +209,7 @@ extern void Cblacs_gridinit();
+ extern void Cblacs_pinfo();
+ extern void Cblacs_gridinfo();
+ extern void Cblacs_gridinit();
++extern void Cblacs_gridmap();
+ extern void Cblacs_exit();
+ extern void Cblacs_gridexit();
+ extern void Cblacs_setup();
+--- SRC/pcrot.c.orig 2024-08-06 11:44:11 UTC
++++ SRC/pcrot.c
+@@ -190,6 +190,7 @@ void pcrot_( Int *n, complex X[], Int *ix, Int *jx, In
+ F_INTG_FCT pbctrnv_();
+ F_INTG_FCT crot_();
+ F_INTG_FCT ilcm_();
++ Int numroc_( Int*, Int*, Int*, Int*, Int* );
+ /* ..
+ * .. Executable Statements ..
+ *
+--- SRC/pzrot.c.orig 2024-08-06 11:44:11 UTC
++++ SRC/pzrot.c
+@@ -190,6 +190,7 @@ void pzrot_( Int *n, complex16 X[], Int *ix, Int *jx,
+ F_INTG_FCT pbztrnv_();
+ F_INTG_FCT zrot_();
+ F_INTG_FCT ilcm_();
++ Int numroc_( Int*, Int*, Int*, Int*, Int* );
+ /* ..
+ * .. Executable Statements ..
+ *