diff --git a/.gitignore b/.gitignore index fb3b173..3ce0d39 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /superlu-5.2.2.tar.gz /superlu-5.3.0.tar.gz /superlu-6.0.0.tar.gz +/superlu-6.0.1.tar.gz diff --git a/SuperLU-6.0.1-Update_prototypes_of_BLAS_routines.patch b/SuperLU-6.0.1-Update_prototypes_of_BLAS_routines.patch new file mode 100644 index 0000000..dd1a113 --- /dev/null +++ b/SuperLU-6.0.1-Update_prototypes_of_BLAS_routines.patch @@ -0,0 +1,735 @@ +From 481c28bebb04610363daa048db175f197ca9f512 Mon Sep 17 00:00:00 2001 +From: wo80 +Date: Thu, 10 Aug 2023 11:18:35 +0200 +Subject: [PATCH] Update prototypes of BLAS routines ?axpy and ?copy; Update + extern declaration of ?axpy and ?copy in examples ?fgmr routines + +--- + CBLAS/caxpy.c | 10 +++++----- + CBLAS/ccopy.c | 8 ++++---- + CBLAS/daxpy.c | 12 ++++++------ + CBLAS/dcopy.c | 10 +++++----- + CBLAS/saxpy.c | 12 ++++++------ + CBLAS/scopy.c | 10 +++++----- + CBLAS/zaxpy.c | 10 +++++----- + CBLAS/zcopy.c | 8 ++++---- + EXAMPLE/cfgmr.c | 4 ++-- + EXAMPLE/dfgmr.c | 4 ++-- + EXAMPLE/sfgmr.c | 4 ++-- + EXAMPLE/zfgmr.c | 4 ++-- + 12 files changed, 48 insertions(+), 48 deletions(-) + +diff --git a/CBLAS/caxpy.c b/CBLAS/caxpy.c +index 26c31e23..558ab107 100644 +--- a/CBLAS/caxpy.c ++++ b/CBLAS/caxpy.c +@@ -6,7 +6,7 @@ + + #include "f2c.h" + +-/* Subroutine */ int caxpy_(integer *n, complex *ca, complex *cx, integer * ++/* Subroutine */ void caxpy_(integer *n, complex *ca, complex *cx, integer * + incx, complex *cy, integer *incy) + { + +@@ -36,10 +36,10 @@ + + + if (*n <= 0) { +- return 0; ++ return; + } + if ((r__1 = ca->r, dabs(r__1)) + (r__2 = r_imag(ca), dabs(r__2)) == 0.f) { +- return 0; ++ return; + } + if (*incx == 1 && *incy == 1) { + goto L20; +@@ -65,7 +65,7 @@ + iy += *incy; + /* L10: */ + } +- return 0; ++ return; + + /* code for both increments equal to 1 */ + +@@ -77,6 +77,6 @@ + CY(i).r = q__1.r, CY(i).i = q__1.i; + /* L30: */ + } +- return 0; ++ return; + } /* caxpy_ */ + +diff --git a/CBLAS/ccopy.c b/CBLAS/ccopy.c +index 919360d0..448620fa 100644 +--- a/CBLAS/ccopy.c ++++ b/CBLAS/ccopy.c +@@ -6,7 +6,7 @@ + + #include "f2c.h" + +-/* Subroutine */ int ccopy_(integer *n, complex *cx, integer *incx, complex * ++/* Subroutine */ void ccopy_(integer *n, complex *cx, integer *incx, complex * + cy, integer *incy) + { + +@@ -31,7 +31,7 @@ + + + if (*n <= 0) { +- return 0; ++ return; + } + if (*incx == 1 && *incy == 1) { + goto L20; +@@ -54,7 +54,7 @@ + iy += *incy; + /* L10: */ + } +- return 0; ++ return; + + /* code for both increments equal to 1 */ + +@@ -63,6 +63,6 @@ + CY(i).r = CX(i).r, CY(i).i = CX(i).i; + /* L30: */ + } +- return 0; ++ return; + } /* ccopy_ */ + +diff --git a/CBLAS/daxpy.c b/CBLAS/daxpy.c +index 050ac676..2bbf29ed 100644 +--- a/CBLAS/daxpy.c ++++ b/CBLAS/daxpy.c +@@ -6,7 +6,7 @@ + + #include "f2c.h" + +-/* Subroutine */ int daxpy_(integer *n, doublereal *da, doublereal *dx, ++/* Subroutine */ void daxpy_(integer *n, doublereal *da, doublereal *dx, + integer *incx, doublereal *dy, integer *incy) + { + +@@ -31,10 +31,10 @@ + + + if (*n <= 0) { +- return 0; ++ return; + } + if (*da == 0.) { +- return 0; ++ return; + } + if (*incx == 1 && *incy == 1) { + goto L20; +@@ -57,7 +57,7 @@ + iy += *incy; + /* L10: */ + } +- return 0; ++ return; + + /* code for both increments equal to 1 + +@@ -74,7 +74,7 @@ + /* L30: */ + } + if (*n < 4) { +- return 0; ++ return; + } + L40: + mp1 = m + 1; +@@ -85,6 +85,6 @@ + DY(i + 3) += *da * DX(i + 3); + /* L50: */ + } +- return 0; ++ return; + } /* daxpy_ */ + +diff --git a/CBLAS/dcopy.c b/CBLAS/dcopy.c +index 9d930598..30c0603d 100644 +--- a/CBLAS/dcopy.c ++++ b/CBLAS/dcopy.c +@@ -6,7 +6,7 @@ + + #include "f2c.h" + +-/* Subroutine */ int dcopy_(integer *n, doublereal *dx, integer *incx, ++/* Subroutine */ void dcopy_(integer *n, doublereal *dx, integer *incx, + doublereal *dy, integer *incy) + { + +@@ -31,7 +31,7 @@ + + + if (*n <= 0) { +- return 0; ++ return; + } + if (*incx == 1 && *incy == 1) { + goto L20; +@@ -54,7 +54,7 @@ + iy += *incy; + /* L10: */ + } +- return 0; ++ return; + + /* code for both increments equal to 1 + +@@ -71,7 +71,7 @@ + /* L30: */ + } + if (*n < 7) { +- return 0; ++ return; + } + L40: + mp1 = m + 1; +@@ -85,6 +85,6 @@ + DY(i + 6) = DX(i + 6); + /* L50: */ + } +- return 0; ++ return; + } /* dcopy_ */ + +diff --git a/CBLAS/saxpy.c b/CBLAS/saxpy.c +index 2b9029e6..da26ac7e 100644 +--- a/CBLAS/saxpy.c ++++ b/CBLAS/saxpy.c +@@ -6,7 +6,7 @@ + + #include "f2c.h" + +-/* Subroutine */ int saxpy_(integer *n, real *sa, real *sx, integer *incx, ++/* Subroutine */ void saxpy_(integer *n, real *sa, real *sx, integer *incx, + real *sy, integer *incy) + { + +@@ -31,10 +31,10 @@ + + + if (*n <= 0) { +- return 0; ++ return; + } + if (*sa == 0.f) { +- return 0; ++ return; + } + if (*incx == 1 && *incy == 1) { + goto L20; +@@ -57,7 +57,7 @@ + iy += *incy; + /* L10: */ + } +- return 0; ++ return; + + /* code for both increments equal to 1 + +@@ -74,7 +74,7 @@ + /* L30: */ + } + if (*n < 4) { +- return 0; ++ return; + } + L40: + mp1 = m + 1; +@@ -85,6 +85,6 @@ + SY(i + 3) += *sa * SX(i + 3); + /* L50: */ + } +- return 0; ++ return; + } /* saxpy_ */ + +diff --git a/CBLAS/scopy.c b/CBLAS/scopy.c +index c7ae4c8a..72a64683 100644 +--- a/CBLAS/scopy.c ++++ b/CBLAS/scopy.c +@@ -6,7 +6,7 @@ + + #include "f2c.h" + +-/* Subroutine */ int scopy_(integer *n, real *sx, integer *incx, real *sy, ++/* Subroutine */ void scopy_(integer *n, real *sx, integer *incx, real *sy, + integer *incy) + { + +@@ -31,7 +31,7 @@ + + + if (*n <= 0) { +- return 0; ++ return; + } + if (*incx == 1 && *incy == 1) { + goto L20; +@@ -54,7 +54,7 @@ + iy += *incy; + /* L10: */ + } +- return 0; ++ return; + + /* code for both increments equal to 1 + +@@ -71,7 +71,7 @@ + /* L30: */ + } + if (*n < 7) { +- return 0; ++ return; + } + L40: + mp1 = m + 1; +@@ -85,6 +85,6 @@ + SY(i + 6) = SX(i + 6); + /* L50: */ + } +- return 0; ++ return; + } /* scopy_ */ + +diff --git a/CBLAS/zaxpy.c b/CBLAS/zaxpy.c +index 1a1ef4e1..a71d3674 100644 +--- a/CBLAS/zaxpy.c ++++ b/CBLAS/zaxpy.c +@@ -6,7 +6,7 @@ + + #include "f2c.h" + +-/* Subroutine */ int zaxpy_(integer *n, doublecomplex *za, doublecomplex *zx, ++/* Subroutine */ void zaxpy_(integer *n, doublecomplex *za, doublecomplex *zx, + integer *incx, doublecomplex *zy, integer *incy) + { + +@@ -33,10 +33,10 @@ + + + if (*n <= 0) { +- return 0; ++ return; + } + if (dcabs1_(za) == 0.) { +- return 0; ++ return; + } + if (*incx == 1 && *incy == 1) { + goto L20; +@@ -62,7 +62,7 @@ + iy += *incy; + /* L10: */ + } +- return 0; ++ return; + + /* code for both increments equal to 1 */ + +@@ -74,6 +74,6 @@ + ZY(i).r = z__1.r, ZY(i).i = z__1.i; + /* L30: */ + } +- return 0; ++ return; + } /* zaxpy_ */ + +diff --git a/CBLAS/zcopy.c b/CBLAS/zcopy.c +index e47aa840..8c4fcb03 100644 +--- a/CBLAS/zcopy.c ++++ b/CBLAS/zcopy.c +@@ -6,7 +6,7 @@ + + #include "f2c.h" + +-/* Subroutine */ int zcopy_(integer *n, doublecomplex *zx, integer *incx, ++/* Subroutine */ void zcopy_(integer *n, doublecomplex *zx, integer *incx, + doublecomplex *zy, integer *incy) + { + +@@ -31,7 +31,7 @@ + + + if (*n <= 0) { +- return 0; ++ return; + } + if (*incx == 1 && *incy == 1) { + goto L20; +@@ -54,7 +54,7 @@ + iy += *incy; + /* L10: */ + } +- return 0; ++ return; + + /* code for both increments equal to 1 */ + +@@ -63,6 +63,6 @@ + ZY(i).r = ZX(i).r, ZY(i).i = ZX(i).i; + /* L30: */ + } +- return 0; ++ return; + } /* zcopy_ */ + +diff --git a/EXAMPLE/cfgmr.c b/EXAMPLE/cfgmr.c +index 6721ddd7..2542f074 100644 +--- a/EXAMPLE/cfgmr.c ++++ b/EXAMPLE/cfgmr.c +@@ -34,7 +34,7 @@ + + #define epsmac 1.0e-16 + +-extern int ccopy_(int *, complex *, int *, complex *, int *); ++extern void ccopy_(int *, complex *, int *, complex *, int *); + extern void caxpy_(int *, complex *, complex *, int *, complex *, int *); + extern void cdotc_(complex *, int *, complex [], int *, complex [], int *); + extern float scnrm2_(int *, complex [], int *); +@@ -79,8 +79,8 @@ + complex tt1, tt2; + + /* prototypes */ +- extern int ccopy_(int *, complex *, int *, complex *, int *); +- extern int caxpy_(int *, complex *, complex [], int *, complex [], int *); ++ extern void ccopy_(int *, complex *, int *, complex *, int *); ++ extern void caxpy_(int *, complex *, complex *, int *, complex *, int *); + + its = 0; + vv = (complex **)SUPERLU_MALLOC((im + 1) * sizeof(complex *)); +diff --git a/EXAMPLE/dfgmr.c b/EXAMPLE/dfgmr.c +index 25cc2540..02890d88 100644 +--- a/EXAMPLE/dfgmr.c ++++ b/EXAMPLE/dfgmr.c +@@ -75,8 +75,8 @@ int dfgmr(int n, + double one = 1.0; + + /* prototypes */ +- extern int dcopy_(int *, double *, int *, double *, int *); +- extern int daxpy_(int *, double *, double [], int *, double [], int *); ++ extern void dcopy_(int *, double *, int *, double *, int *); ++ extern void daxpy_(int *, double *, double *, int *, double *, int *); + + its = 0; + vv = (double **)SUPERLU_MALLOC((im + 1) * sizeof(double *)); +diff --git a/EXAMPLE/sfgmr.c b/EXAMPLE/sfgmr.c +index e606ad3c..c5e45a3c 100644 +--- a/EXAMPLE/sfgmr.c ++++ b/EXAMPLE/sfgmr.c +@@ -76,8 +76,8 @@ int sfgmr(int n, + float one = 1.0; + + /* prototypes */ +- extern int scopy_(int *, float *, int *, float *, int *); +- extern int saxpy_(int *, float *, float [], int *, float [], int *); ++ extern void scopy_(int *, float *, int *, float *, int *); ++ extern void saxpy_(int *, float *, float *, int *, float *, int *); + + its = 0; + vv = (float **)SUPERLU_MALLOC((im + 1) * sizeof(float *)); +diff --git a/EXAMPLE/zfgmr.c b/EXAMPLE/zfgmr.c +index 0f8dc823..2808525c 100644 +--- a/EXAMPLE/zfgmr.c ++++ b/EXAMPLE/zfgmr.c +@@ -76,8 +76,8 @@ int zfgmr(int n, + doublecomplex tt1, tt2; + + /* prototypes */ +- extern int zcopy_(int *, doublecomplex *, int *, doublecomplex *, int *); +- extern int zaxpy_(int *, doublecomplex *, doublecomplex [], int *, doublecomplex [], int *); ++ extern void zcopy_(int *, doublecomplex *, int *, doublecomplex *, int *); ++ extern void zaxpy_(int *, doublecomplex *, doublecomplex *, int *, doublecomplex *, int *); + + its = 0; + vv = (doublecomplex **)SUPERLU_MALLOC((im + 1) * sizeof(doublecomplex *)); + +From 34d6811cb19ced128d5cf1117180c1a57f1b01dd Mon Sep 17 00:00:00 2001 +From: wo80 +Date: Thu, 10 Aug 2023 13:50:57 +0200 +Subject: [PATCH] Update remaining prototypes of BLAS routines ?axpy and ?copy + +--- + SRC/cgsrfs.c | 4 ++-- + SRC/clacon2.c | 2 +- + SRC/dgsrfs.c | 4 ++-- + SRC/dlacon2.c | 2 +- + SRC/sgsrfs.c | 4 ++-- + SRC/slacon2.c | 2 +- + SRC/zgsrfs.c | 4 ++-- + SRC/zlacon2.c | 2 +- + TESTING/MATGEN/claghe.c | 4 ++-- + TESTING/MATGEN/clagsy.c | 4 ++-- + TESTING/MATGEN/clatme.c | 2 +- + TESTING/MATGEN/dlagsy.c | 4 ++-- + TESTING/MATGEN/dlatms.c | 2 +- + TESTING/MATGEN/slagsy.c | 4 ++-- + TESTING/MATGEN/slatms.c | 2 +- + TESTING/MATGEN/zlaghe.c | 6 +++--- + TESTING/MATGEN/zlagsy.c | 8 ++++---- + 17 files changed, 30 insertions(+), 30 deletions(-) + +diff --git a/SRC/cgsrfs.c b/SRC/cgsrfs.c +index d9b463e7..5e287f97 100644 +--- a/SRC/cgsrfs.c ++++ b/SRC/cgsrfs.c +@@ -175,8 +175,8 @@ cgsrfs(trans_t trans, SuperMatrix *A, SuperMatrix *L, SuperMatrix *U, + extern int CCOPY(int *, complex *, int *, complex *, int *); + extern int CSAXPY(int *, complex *, complex *, int *, complex *, int *); + #else +- extern int ccopy_(int *, complex *, int *, complex *, int *); +- extern int caxpy_(int *, complex *, complex *, int *, complex *, int *); ++ extern void ccopy_(int *, complex *, int *, complex *, int *); ++ extern void caxpy_(int *, complex *, complex *, int *, complex *, int *); + #endif + + Astore = A->Store; +diff --git a/SRC/clacon2.c b/SRC/clacon2.c +index 49f995e9..77e8cfcf 100644 +--- a/SRC/clacon2.c ++++ b/SRC/clacon2.c +@@ -106,7 +106,7 @@ clacon2_(int *n, complex *v, complex *x, float *est, int *kase, int isave[3]) + extern float smach(char *); + extern int icmax1_slu(int *, complex *, int *); + extern double scsum1_slu(int *, complex *, int *); +- extern int ccopy_(int *, complex *, int *, complex *, int *); ++ extern void ccopy_(int *, complex *, int *, complex *, int *); + + safmin = smach("Safe minimum"); + if ( *kase == 0 ) { +diff --git a/SRC/dgsrfs.c b/SRC/dgsrfs.c +index ebda1a18..367be391 100644 +--- a/SRC/dgsrfs.c ++++ b/SRC/dgsrfs.c +@@ -175,8 +175,8 @@ dgsrfs(trans_t trans, SuperMatrix *A, SuperMatrix *L, SuperMatrix *U, + extern int SCOPY(int *, double *, int *, double *, int *); + extern int SSAXPY(int *, double *, double *, int *, double *, int *); + #else +- extern int dcopy_(int *, double *, int *, double *, int *); +- extern int daxpy_(int *, double *, double *, int *, double *, int *); ++ extern void dcopy_(int *, double *, int *, double *, int *); ++ extern void daxpy_(int *, double *, double *, int *, double *, int *); + #endif + + Astore = A->Store; +diff --git a/SRC/dlacon2.c b/SRC/dlacon2.c +index 79476fe6..48954700 100644 +--- a/SRC/dlacon2.c ++++ b/SRC/dlacon2.c +@@ -105,7 +105,7 @@ dlacon2_(int *n, double *v, double *x, int *isgn, double *est, int *kase, int is + #else + extern int idamax_(int *, double *, int *); + extern double dasum_(int *, double *, int *); +- extern int dcopy_(int *, double *, int *, double *, int *); ++ extern void dcopy_(int *, double *, int *, double *, int *); + #endif + #define d_sign(a, b) (b >= 0 ? fabs(a) : -fabs(a)) /* Copy sign */ + #define i_dnnt(a) \ +diff --git a/SRC/sgsrfs.c b/SRC/sgsrfs.c +index 406fbb05..36a0d337 100644 +--- a/SRC/sgsrfs.c ++++ b/SRC/sgsrfs.c +@@ -175,8 +175,8 @@ sgsrfs(trans_t trans, SuperMatrix *A, SuperMatrix *L, SuperMatrix *U, + extern int SCOPY(int *, float *, int *, float *, int *); + extern int SSAXPY(int *, float *, float *, int *, float *, int *); + #else +- extern int scopy_(int *, float *, int *, float *, int *); +- extern int saxpy_(int *, float *, float *, int *, float *, int *); ++ extern void scopy_(int *, float *, int *, float *, int *); ++ extern void saxpy_(int *, float *, float *, int *, float *, int *); + #endif + + Astore = A->Store; +diff --git a/SRC/slacon2.c b/SRC/slacon2.c +index e8ab5afc..39bc8ed4 100644 +--- a/SRC/slacon2.c ++++ b/SRC/slacon2.c +@@ -105,7 +105,7 @@ slacon2_(int *n, float *v, float *x, int *isgn, float *est, int *kase, int isave + #else + extern int isamax_(int *, float *, int *); + extern float sasum_(int *, float *, int *); +- extern int scopy_(int *, float *, int *, float *, int *); ++ extern void scopy_(int *, float *, int *, float *, int *); + #endif + #define d_sign(a, b) (b >= 0 ? fabs(a) : -fabs(a)) /* Copy sign */ + #define i_dnnt(a) \ +diff --git a/SRC/zgsrfs.c b/SRC/zgsrfs.c +index 9540e04d..0c365e51 100644 +--- a/SRC/zgsrfs.c ++++ b/SRC/zgsrfs.c +@@ -175,8 +175,8 @@ zgsrfs(trans_t trans, SuperMatrix *A, SuperMatrix *L, SuperMatrix *U, + extern int CCOPY(int *, doublecomplex *, int *, doublecomplex *, int *); + extern int CSAXPY(int *, doublecomplex *, doublecomplex *, int *, doublecomplex *, int *); + #else +- extern int zcopy_(int *, doublecomplex *, int *, doublecomplex *, int *); +- extern int zaxpy_(int *, doublecomplex *, doublecomplex *, int *, doublecomplex *, int *); ++ extern void zcopy_(int *, doublecomplex *, int *, doublecomplex *, int *); ++ extern void zaxpy_(int *, doublecomplex *, doublecomplex *, int *, doublecomplex *, int *); + #endif + + Astore = A->Store; +diff --git a/SRC/zlacon2.c b/SRC/zlacon2.c +index 386b99cd..d9f35da8 100644 +--- a/SRC/zlacon2.c ++++ b/SRC/zlacon2.c +@@ -106,7 +106,7 @@ zlacon2_(int *n, doublecomplex *v, doublecomplex *x, double *est, int *kase, int + extern double dmach(char *); + extern int izmax1_slu(int *, doublecomplex *, int *); + extern double dzsum1_slu(int *, doublecomplex *, int *); +- extern int zcopy_(int *, doublecomplex *, int *, doublecomplex *, int *); ++ extern void zcopy_(int *, doublecomplex *, int *, doublecomplex *, int *); + + safmin = dmach("Safe minimum"); + if ( *kase == 0 ) { +diff --git a/TESTING/MATGEN/claghe.c b/TESTING/MATGEN/claghe.c +index 054ee402..28efc550 100644 +--- a/TESTING/MATGEN/claghe.c ++++ b/TESTING/MATGEN/claghe.c +@@ -38,8 +38,8 @@ static int c__1 = 1; + , complex *, int *, complex *, int *, complex *, complex * + , int *), chemv_(char *, int *, complex *, + complex *, int *, complex *, int *, complex *, complex *, +- int *), caxpy_(int *, complex *, complex *, +- int *, complex *, int *); ++ int *); ++ extern void caxpy_(int *, complex *, complex *, int *, complex *, int *); + extern float scnrm2_(int *, complex *, int *); + static complex wa, wb; + static float wn; +diff --git a/TESTING/MATGEN/clagsy.c b/TESTING/MATGEN/clagsy.c +index dafb7ced..4abd3d30 100644 +--- a/TESTING/MATGEN/clagsy.c ++++ b/TESTING/MATGEN/clagsy.c +@@ -35,10 +35,10 @@ static int c__1 = 1; + *, complex *, int *); + extern /* Subroutine */ int cgemv_(char *, int *, int *, complex * + , complex *, int *, complex *, int *, complex *, complex * +- , int *), caxpy_(int *, complex *, complex *, +- int *, complex *, int *), csymv_sluslu(char *, int *, ++ , int *), csymv_sluslu(char *, int *, + complex *, complex *, int *, complex *, int *, complex *, + complex *, int *); ++ extern void caxpy_(int *, complex *, complex *, int *, complex *, int *); + extern float scnrm2_(int *, complex *, int *); + static int ii, jj; + static complex wa, wb; +diff --git a/TESTING/MATGEN/clatme.c b/TESTING/MATGEN/clatme.c +index 53c0c510..d8907d80 100644 +--- a/TESTING/MATGEN/clatme.c ++++ b/TESTING/MATGEN/clatme.c +@@ -45,7 +45,7 @@ static int c__5 = 5; + static int iinfo; + static float tempa[1]; + static int icols, idist; +- extern /* Subroutine */ int ccopy_(int *, complex *, int *, ++ extern /* Subroutine */ void ccopy_(int *, complex *, int *, + complex *, int *); + static int irows; + extern /* Subroutine */ int clatm1_(int *, float *, int *, int +diff --git a/TESTING/MATGEN/dlagsy.c b/TESTING/MATGEN/dlagsy.c +index f46b11b0..daae749f 100644 +--- a/TESTING/MATGEN/dlagsy.c ++++ b/TESTING/MATGEN/dlagsy.c +@@ -36,10 +36,10 @@ static double c_b26 = 1.; + extern /* Subroutine */ int dscal_(int *, double *, double *, + int *), dgemv_(char *, int *, int *, double *, + double *, int *, double *, int *, double *, +- double *, int *), daxpy_(int *, double *, +- double *, int *, double *, int *), dsymv_(char *, ++ double *, int *), dsymv_(char *, + int *, double *, double *, int *, double *, + int *, double *, double *, int *); ++ extern void daxpy_(int *, double *, double *, int *, double *, int *); + static double wa, wb, wn; + extern /* Subroutine */ int dlarnv_slu(int *, int *, int *, double *); + extern int input_error(char *, int *); +diff --git a/TESTING/MATGEN/dlatms.c b/TESTING/MATGEN/dlatms.c +index c9e1ad2f..a1728a5c 100644 +--- a/TESTING/MATGEN/dlatms.c ++++ b/TESTING/MATGEN/dlatms.c +@@ -36,7 +36,7 @@ dlatms_slu(int *m, int *n, char *dist, int * + int *); + static int ioffg; + static int iinfo, idist, mnmin; +- extern /* Subroutine */ int dcopy_(int *, double *, int *, ++ extern /* Subroutine */ void dcopy_(int *, double *, int *, + double *, int *); + static int iskew; + static double extra, dummy; +diff --git a/TESTING/MATGEN/slagsy.c b/TESTING/MATGEN/slagsy.c +index e1c179c1..112d97f8 100644 +--- a/TESTING/MATGEN/slagsy.c ++++ b/TESTING/MATGEN/slagsy.c +@@ -31,10 +31,10 @@ static float c_b26 = 1.f; + static float alpha; + extern /* Subroutine */ int sscal_(int *, float *, float *, int *), + sgemv_(char *, int *, int *, float *, float *, int *, +- float *, int *, float *, float *, int *), saxpy_( +- int *, float *, float *, int *, float *, int *), ssymv_( ++ float *, int *, float *, float *, int *), ssymv_( + char *, int *, float *, float *, int *, float *, int *, + float *, float *, int *); ++ extern void saxpy_(int *, float *, float *, int *, float *, int *); + static float wa, wb, wn; + extern /* Subroutine */ int slarnv_slu(int *, int *, int *, float *); + extern int input_error(char *, int *); +diff --git a/TESTING/MATGEN/slatms.c b/TESTING/MATGEN/slatms.c +index cebe8984..e676e7c5 100644 +--- a/TESTING/MATGEN/slatms.c ++++ b/TESTING/MATGEN/slatms.c +@@ -35,7 +35,7 @@ static bool c_false = false; + extern /* Subroutine */ int sscal_(int *, float *, float *, int *); + static int idist, mnmin, iskew; + static float extra, dummy; +- extern /* Subroutine */ int scopy_(int *, float *, int *, float *, ++ extern /* Subroutine */ void scopy_(int *, float *, int *, float *, + int *), slatm1_slu(int *, float *, int *, int *, + int *, float *, int *, int *); + static int ic, jc, nc, il, iendch, ir, jr, ipackg, mr; +diff --git a/TESTING/MATGEN/zlaghe.c b/TESTING/MATGEN/zlaghe.c +index 583082aa..687e3c3e 100644 +--- a/TESTING/MATGEN/zlaghe.c ++++ b/TESTING/MATGEN/zlaghe.c +@@ -42,9 +42,9 @@ static int c__1 = 1; + int *, doublecomplex *, doublecomplex *, int *), + zhemv_(char *, int *, doublecomplex *, doublecomplex *, + int *, doublecomplex *, int *, doublecomplex *, +- doublecomplex *, int *), zaxpy_(int *, +- doublecomplex *, doublecomplex *, int *, doublecomplex *, +- int *); ++ doublecomplex *, int *); ++ extern void zaxpy_(int *, doublecomplex *, doublecomplex *, int *, ++ doublecomplex *, int *); + extern double dznrm2_(int *, doublecomplex *, int *); + static doublecomplex wa, wb; + static double wn; +diff --git a/TESTING/MATGEN/zlagsy.c b/TESTING/MATGEN/zlagsy.c +index 88aa002b..70aa5e92 100644 +--- a/TESTING/MATGEN/zlagsy.c ++++ b/TESTING/MATGEN/zlagsy.c +@@ -35,11 +35,11 @@ static int c__1 = 1; + doublecomplex *, int *, doublecomplex *, int *); + extern /* Subroutine */ int zgemv_(char *, int *, int *, + doublecomplex *, doublecomplex *, int *, doublecomplex *, +- int *, doublecomplex *, doublecomplex *, int *), +- zaxpy_(int *, doublecomplex *, doublecomplex *, int *, +- doublecomplex *, int *), zsymv_(char *, int *, +- doublecomplex *, doublecomplex *, int *, doublecomplex *, ++ int *, doublecomplex *, doublecomplex *, int *), zsymv_(char *, ++ int *, doublecomplex *, doublecomplex *, int *, doublecomplex *, + int *, doublecomplex *, doublecomplex *, int *); ++ extern void zaxpy_(int *, doublecomplex *, doublecomplex *, int *, ++ doublecomplex *, int *); + extern double dznrm2_(int *, doublecomplex *, int *); + static int ii, jj; + static doublecomplex wa, wb; + diff --git a/SuperLU-fix-align-declarations-malloc.patch b/SuperLU-fix-align-declarations-malloc.patch deleted file mode 100644 index 7e0d0c6..0000000 --- a/SuperLU-fix-align-declarations-malloc.patch +++ /dev/null @@ -1,43 +0,0 @@ -From c5de971c4dd754da1040121aa5e3a3c00932e3b7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Christoph=20Gr=C3=BCninger?= -Date: Sun, 4 Jun 2023 23:12:49 +0200 -Subject: [PATCH] Adjust forward delcaration of float/double Malloc/Calloc - -The argument was changed in slu_sdefs.h / slu_ddefs.h and -remained in slu_cdefs.h / slu_zdefs.h. This leads to -incompatible declarations. ---- - SRC/slu_cdefs.h | 4 ++-- - SRC/slu_zdefs.h | 4 ++-- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/SRC/slu_cdefs.h b/SRC/slu_cdefs.h -index 0cb20900..5d5a5529 100644 ---- a/SRC/slu_cdefs.h -+++ b/SRC/slu_cdefs.h -@@ -236,8 +236,8 @@ extern int_t cLUMemXpand (int, int_t, MemType, int_t *, GlobalLU_t *); - - extern complex *complexMalloc(size_t); - extern complex *complexCalloc(size_t); --extern float *floatMalloc(int); --extern float *floatCalloc(int); -+extern float *floatMalloc(size_t); -+extern float *floatCalloc(size_t); - extern int_t cmemory_usage(const int_t, const int_t, const int_t, const int); - extern int cQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *); - extern int ilu_cQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *); -diff --git a/SRC/slu_zdefs.h b/SRC/slu_zdefs.h -index ba5d8636..c6418d58 100644 ---- a/SRC/slu_zdefs.h -+++ b/SRC/slu_zdefs.h -@@ -236,8 +236,8 @@ extern int_t zLUMemXpand (int, int_t, MemType, int_t *, GlobalLU_t *); - - extern doublecomplex *doublecomplexMalloc(size_t); - extern doublecomplex *doublecomplexCalloc(size_t); --extern double *doubleMalloc(int); --extern double *doubleCalloc(int); -+extern double *doubleMalloc(size_t); -+extern double *doubleCalloc(size_t); - extern int_t zmemory_usage(const int_t, const int_t, const int_t, const int); - extern int zQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *); - extern int ilu_zQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *); diff --git a/SuperLU.spec b/SuperLU.spec index 03a542e..7ec713c 100644 --- a/SuperLU.spec +++ b/SuperLU.spec @@ -1,7 +1,7 @@ %global genname superlu Name: SuperLU -Version: 6.0.0 +Version: 6.0.1 Release: 1%{?dist} Summary: Subroutines to solve sparse linear systems License: BSD and GPLv2+ @@ -18,7 +18,7 @@ Patch1: %{name}-fix_example_builds.patch Patch2: %{name}-c99.patch -Patch3: %{name}-fix-align-declarations-malloc.patch +Patch3: %{name}-%{version}-Update_prototypes_of_BLAS_routines.patch %if 0%{?fedora} || 0%{?rhel} > 9 BuildRequires: pkgconfig(flexiblas) @@ -35,7 +35,7 @@ BuildRequires: epel-rpm-macros %endif BuildRequires: metis-devel BuildRequires: make -BuildRequires: cmake3 +BuildRequires: cmake BuildRequires: gcc, gcc-gfortran BuildRequires: csh @@ -60,7 +60,12 @@ BuildArch: noarch The %{name}-doc package contains all the help HTML documentation. %prep -%autosetup -n %{genname}-%{version} -p1 +%autosetup -n %{genname}-%{version} -N + +%patch -P 0 -p1 -b .backup +%patch -P 1 -p1 -b .backup +%patch -P 2 -p1 -b .backup +%patch -P 3 -p1 -b .backup rm -f make.inc cp -pf %{SOURCE1} make.inc.in @@ -108,7 +113,7 @@ sed -e 's|-O0|-O2|g' -i SRC/CMakeLists.txt %files %license License.txt %{_libdir}/libsuperlu.so.6 -%{_libdir}/libsuperlu.so.6.0.0 +%{_libdir}/libsuperlu.so.%{version} %files devel %{_includedir}/%{name}/ @@ -121,6 +126,9 @@ sed -e 's|-O0|-O2|g' -i SRC/CMakeLists.txt %doc DOC %changelog +* Wed Aug 09 2023 Antonio Trande - 6.0.1-1 +- Release 6.0.1 + * Sat Apr 22 2023 Antonio Trande - 6.0.0-1 - Release 6.0.0 diff --git a/sources b/sources index 9be9153..5740466 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (superlu-6.0.0.tar.gz) = 8feeb08404cad58724f0f6478bc785b56d8c725b549f1fdc07d3578c4e14bdbdbd8bcda1cdfd366a39417eda60765825e87cf781c68e6723a8246cb357b41439 +SHA512 (superlu-6.0.1.tar.gz) = 6dd2baeff9ca7ed4761845b9a30c6dca4e19ca498e10ea7360013b3aece576ca996a8bf31c4479321feda6f5266235d68ea9a2e256f0ffe91f804d4cdecd3847 diff --git a/superlu-removemc64.patch b/superlu-removemc64.patch index c04accf..f8ee77e 100644 --- a/superlu-removemc64.patch +++ b/superlu-removemc64.patch @@ -1,6 +1,6 @@ --- a/SRC/mc64ad.c 2016-05-22 17:58:44.000000000 +0200 -+++ b/mc64ad.c 2018-04-13 17:13:23.571981656 +0200 -@@ -1,2646 +1,16 @@ ++++ b/SRC/mc64ad.c 2018-04-13 17:13:23.571981656 +0200 +@@ -1,2645 +1,16 @@ -/* mc64ad.f -- translated by f2c (version 20100827). - You must link the resulting object file with libf2c: - on Microsoft Windows system, link with libf2c.lib; @@ -1093,7 +1093,6 @@ -{ - /* System generated locals */ - int_t i__1; -- int_t c__1 = 1; - - /* Local variables */ - double di; @@ -2646,9 +2645,10 @@ - return 0; -} /* mc64wd_ */ - +- +#include +#include - ++ +void mc64id_(int *a) + { + fprintf(stderr, "SuperLU: MC64 functionality not available (it uses non-free code). Aborting.\n");