diff --git a/.SuperLU.metadata b/.SuperLU.metadata index 4393efe..d919362 100644 --- a/.SuperLU.metadata +++ b/.SuperLU.metadata @@ -1 +1 @@ -2d8f82ab434fd17b6eb7045392e38167fb7b194d SOURCES/superlu-5.3.0.tar.gz +8f2c7b656461ac7940ae1b5fe6ab660adffa9e65 SOURCES/superlu-6.0.1.tar.gz diff --git a/.gitignore b/.gitignore index 82f5270..80fd15c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/superlu-5.3.0.tar.gz +SOURCES/superlu-6.0.1.tar.gz diff --git a/SOURCES/SuperLU-6.0.1-Update_prototypes_of_BLAS_routines.patch b/SOURCES/SuperLU-6.0.1-Update_prototypes_of_BLAS_routines.patch new file mode 100644 index 0000000..dd1a113 --- /dev/null +++ b/SOURCES/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/SOURCES/SuperLU-c99.patch b/SOURCES/SuperLU-c99.patch new file mode 100644 index 0000000..d8058a1 --- /dev/null +++ b/SOURCES/SuperLU-c99.patch @@ -0,0 +1,18 @@ +Avoid implicit function declarations and implicit ints for improved +compatibility with future compilers. + +Submitted upstream: + +diff --git a/EXAMPLE/cfgmr.c b/EXAMPLE/cfgmr.c +index 0f25f58923aa0c7e..d8f523f9b67fa5ca 100644 +--- a/EXAMPLE/cfgmr.c ++++ b/EXAMPLE/cfgmr.c +@@ -33,6 +33,8 @@ For information on ITSOL contact saad@cs.umn.edu + + #define epsmac 1.0e-16 + ++extern int 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 *); + diff --git a/SOURCES/SuperLU-fedora-make.inc.in b/SOURCES/SuperLU-fedora-make.inc.in index 6b998c0..6163479 100644 --- a/SOURCES/SuperLU-fedora-make.inc.in +++ b/SOURCES/SuperLU-fedora-make.inc.in @@ -38,6 +38,7 @@ CC = @CMAKE_C_COMPILER@ CFLAGS = @CMAKE_C_FLAGS_RELEASE@ @CMAKE_C_FLAGS@ NOOPTS = FORTRAN = @CMAKE_Fortran_COMPILER@ +FFLAGS = @CMAKE_Fortran_FLAGS_RELEASE@ LOADER = $(CC) LOADOPTS = $(LDFLAGS) diff --git a/SOURCES/SuperLU-set_soname.patch b/SOURCES/SuperLU-set_soname.patch deleted file mode 100644 index e74c690..0000000 --- a/SOURCES/SuperLU-set_soname.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/SRC/CMakeLists.orig.txt 2018-04-25 15:17:39.786715000 +0200 -+++ b/SRC/CMakeLists.txt 2018-04-25 15:25:00.253317607 +0200 -@@ -242,7 +242,7 @@ - $ - ) - set_target_properties(superlu PROPERTIES -- VERSION ${PROJECT_VERSION} SOVERSION ${VERSION_MAJOR} -+ VERSION ${VERSION_MAJOR}.${VERSION_MINOR} SOVERSION ${VERSION_MAJOR} - ) - - # Define GNU standard installation directories diff --git a/SOURCES/superlu-removemc64.patch b/SOURCES/superlu-removemc64.patch index 58596b8..f8ee77e 100644 --- a/SOURCES/superlu-removemc64.patch +++ b/SOURCES/superlu-removemc64.patch @@ -1,5 +1,5 @@ ---- SuperLU_5.2.1/SRC/mc64ad.c 2016-05-22 17:58:44.000000000 +0200 -+++ mc64ad.c 2018-04-13 17:13:23.571981656 +0200 +--- a/SRC/mc64ad.c 2016-05-22 17:58:44.000000000 +0200 ++++ 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: @@ -9,9 +9,7 @@ - -- in that order, at the end of the command line, as in - cc *.o -lf2c -lm - Source for libf2c is in /netlib/f2c/libf2c.zip, e.g., -+#include -+#include - +- - http://www.netlib.org/f2c/libf2c.zip -*/ - @@ -119,7 +117,7 @@ - -/* ********************************************************************** */ -/* Subroutine */ int_t mc64ad_(int_t *job, int_t *n, int_t *ne, int_t * -- ip, int_t *irn, double *a, int_t *num, int_t *cperm, +- ip, int_t *irn, double *a, int_t *num, int *cperm, - int_t *liw, int_t *iw, int_t *ldw, double *dw, int_t * - icntl, int_t *info) -{ @@ -135,16 +133,17 @@ - double fact, rinf; - - extern /* Subroutine */ int_t mc21ad_(int_t *, int_t *, int_t *, -- int_t *, int_t *, int_t *, int_t *, int_t *), mc64bd_( -- int_t *, int_t *, int_t *, int_t *, double *, int_t -- *, int_t *, int_t *, int_t *, int_t *, int_t *, -- double *), mc64rd_(int_t *, int_t *, int_t *, int_t *, -- double *), mc64sd_(int_t *, int_t *, int_t *, int_t * -- , double *, int_t *, int_t *, int_t *, int_t *, -- int_t *, int_t *, int_t *, int_t *, int_t *), mc64wd_( -- int_t *, int_t *, int_t *, int_t *, double *, int_t -- *, int_t *, int_t *, int_t *, int_t *, int_t *, int_t -- *, double *, double *); +- int_t *, int_t *, int_t *, int_t *, int_t *), +- mc64bd_(int_t *n, int_t *ne, int_t *ip, int_t *irn, double *a, +- int *iperm, int_t *num, int_t *jperm, +- int_t *pr, int_t *q, int_t *l, double *d__), +- mc64rd_(int_t *n, int_t *ne, int_t *ip, int_t *irn, double *a), +- mc64sd_(int_t *n, int_t *ne, int_t *ip, int_t *irn, double *a, +- int *iperm, int_t *numx, int_t *w, int_t *len, int_t *lenl, +- int_t *lenh, int_t *fc, int_t *iw, int_t *iw4), +- mc64wd_(int_t *n, int_t *ne, int_t *ip, int_t *irn, double *a, +- int *iperm, int_t *num, int_t *jperm, int_t *out, +- int_t *pr, int_t *q, int_t *l, double *u, double *d__); - -/* *** Copyright (c) 1999 Council for the Central Laboratory of the */ -/* Research Councils *** */ @@ -346,7 +345,7 @@ - info[2] = *job; - if (icntl[1] >= 0) { - printf(" ****** Error in MC64A/AD. INFO(1) = %2d" -- " because JOB = %d\n", info[1], *job); +- " because JOB = %d\n", (int) info[1], (int) *job); - } - goto L99; - } @@ -356,7 +355,7 @@ - info[2] = *n; - if (icntl[1] >= 0) { - printf(" ****** Error in MC64A/AD. INFO(1) = %2d" -- " because N = %d\n", info[1], *job); +- " because N = %d\n", (int) info[1], (int) *job); - } - goto L99; - } @@ -366,7 +365,7 @@ - info[2] = *ne; - if (icntl[1] >= 0) { - printf(" ****** Error in MC64A/AD. INFO(1) = %2d" -- " because NE = %d\n", info[1], *job); +- " because NE = %d\n", (int) info[1], (int) *job); - } - goto L99; - } @@ -391,7 +390,7 @@ - info[2] = k; - if (icntl[1] >= 0) { - printf(" ****** Error in MC64A/AD. INFO(1) = %2d" -- " LIW too small, must be at least %8d\n", info[1], k); +- " LIW too small, must be at least %8d\n", (int) info[1], (int) k); - } - goto L99; - } @@ -415,7 +414,7 @@ - info[2] = k; - if (icntl[1] >= 0) { - printf(" ****** Error in MC64A/AD. INFO(1) = %2d" -- " LDW too small, must be at least %8d\n", info[1], k); +- " LDW too small, must be at least %8d\n", (int) info[1], (int) k); - } - goto L99; - } @@ -439,7 +438,7 @@ - if (icntl[1] >= 0) { - printf(" ****** Error in MC64A/AD. INFO(1) = %2d Column %8d" - " contains an entry with invalid row index %8d\n", -- info[1], j, i__); +- (int) info[1], (int) j, (int) i__); - } - goto L99; - } @@ -451,7 +450,7 @@ - printf(" ****** Error in MC64A/AD. INFO(1) = %2d" - " Column %8d" - " contains two or more entries with row index %8d\n", -- info[1], j, i__); +- (int) info[1], (int) j, (int) i__); - } - goto L99; - } else { @@ -465,15 +464,15 @@ -/* Print diagnostics on input */ - if (icntl[3] >= 0) { - printf(" ****** Input parameters for MC64A/AD: JOB = %8d," -- " N = %d, NE = %8d\n", *job, *n, *ne); +- " N = %d, NE = %8d\n", (int) *job, (int) *n, (int) *ne); - printf(" IP(1:N+1) = "); - for (j=1; j<=(*n+1); ++j) { -- printf("%8d", ip[j]); +- printf("%8d", (int) ip[j]); - if (j%8 == 0) printf("\n"); - } - printf("\n IRN(1:NE) = "); - for (j=1; j<=(*ne); ++j) { -- printf("%8d", irn[j]); +- printf("%8d", (int) irn[j]); - if (j%8 == 0) printf("\n"); - } - printf("\n"); @@ -621,24 +620,24 @@ - info[1] = 1; - if (icntl[2] >= 0) { - printf(" ****** Warning from MC64A/AD. INFO(1) = %2d" -- " The matrix is structurally singular.\n", info[1]); +- " The matrix is structurally singular.\n", (int)info[1]); - } - } - if (info[1] == 2) { -/* Scaling factors are large, return with warning */ - if (icntl[2] >= 0) { - printf(" ****** Warning from MC64A/AD. INFO(1) = %2d\n" -- " Some scaling factors may be too large.\n", info[1]); +- " Some scaling factors may be too large.\n", (int) info[1]); - } - } -/* Print diagnostics on output */ - if (icntl[3] >= 0) { - printf(" ****** Output parameters for MC64A/AD: INFO(1:2) = %8d%8d\n", -- info[1], info[2]); -- printf(" NUM = %8d", *num); +- (int) info[1], (int) info[2]); +- printf(" NUM = %8d", (int) *num); - printf(" CPERM(1:N) = "); - for (j=1; j<=*n; ++j) { -- printf("%8d", cperm[j]); +- printf("%8d", (int) cperm[j]); - if (j%8 == 0) printf("\n"); - } - if (*job == 5) { @@ -662,7 +661,7 @@ - -/* ********************************************************************** */ -/* Subroutine */ int_t mc64bd_(int_t *n, int_t *ne, int_t *ip, int_t * -- irn, double *a, int_t *iperm, int_t *num, int_t *jperm, +- irn, double *a, int *iperm, int_t *num, int_t *jperm, - int_t *pr, int_t *q, int_t *l, double *d__) -{ - /* System generated locals */ @@ -685,10 +684,10 @@ - double dnew; - int_t jord, qlen, idum, jdum; - double rinf; -- extern /* Subroutine */ int_t mc64dd_(int_t *, int_t *, int_t *, -- double *, int_t *, int_t *), mc64ed_(int_t *, int_t *, -- int_t *, double *, int_t *, int_t *), mc64fd_(int_t * -- , int_t *, int_t *, int_t *, double *, int_t *, int_t *); +- extern /* Subroutine */ int_t +- mc64dd_(int_t *, int_t *, int_t *, double *, int_t *, int_t *), +- mc64ed_(int_t *, int_t *, int_t *, double *, int_t *, int_t *), +- mc64fd_(int_t *, int_t *, int_t *, int_t *, double *, int_t *, int_t *); - - -/* *** Copyright (c) 1999 Council for the Central Laboratory of the */ @@ -1094,7 +1093,6 @@ -{ - /* System generated locals */ - int_t i__1; -- int_t c__1 = 1; - - /* Local variables */ - double di; @@ -1550,11 +1548,10 @@ - -/* ********************************************************************** */ -/* Subroutine */ int_t mc64sd_(int_t *n, int_t *ne, int_t *ip, int_t * -- irn, double *a, int_t *iperm, int_t *numx, int_t *w, +- irn, double *a, int *iperm, int_t *numx, int_t *w, - int_t *len, int_t *lenl, int_t *lenh, int_t *fc, int_t *iw, - int_t *iw4) -+void mc64id_(int *a) - { +-{ - /* System generated locals */ - int_t i__1, i__2, i__3, i__4; - @@ -1562,11 +1559,12 @@ - int_t i__, j, k, l, ii, mod, cnt, num; - double bval, bmin, bmax, rinf; - int_t nval, wlen, idum1, idum2, idum3; -- extern /* Subroutine */ int_t mc64qd_(int_t *, int_t *, int_t *, -- int_t *, int_t *, double *, int_t *, double *), -- mc64ud_(int_t *, int_t *, int_t *, int_t *, int_t *, -- int_t *, int_t *, int_t *, int_t *, int_t *, int_t *, -- int_t *, int_t *, int_t *, int_t *); +- extern /* Subroutine */ int_t +- mc64qd_(int_t *, int_t *, int_t *, int_t *, int_t *, double *, +- int_t *, double *), +- mc64ud_(int_t *, int_t *, int_t *, int_t *, int_t *, +- int_t *, int_t *, int_t *, int_t *, int_t *, int_t *, +- int_t *, int_t *, int_t *, int_t *); - -/* *** Copyright (c) 1999 Council for the Central Laboratory of the */ -/* Research Councils *** */ @@ -2165,7 +2163,7 @@ - -/* ********************************************************************** */ -/* Subroutine */ int_t mc64wd_(int_t *n, int_t *ne, int_t *ip, int_t * -- irn, double *a, int_t *iperm, int_t *num, int_t *jperm, +- irn, double *a, int *iperm, int_t *num, int_t *jperm, - int_t *out, int_t *pr, int_t *q, int_t *l, double *u, - double *d__) -{ @@ -2185,11 +2183,10 @@ - double dmin__, dnew; - int_t jord, qlen, jdum; - double rinf; -- extern /* Subroutine */ int_t mc64dd_(int_t *, int_t *, int_t *, -- double *, int_t *, int_t *), mc64ed_(int_t *, int_t *, -- int_t *, double *, int_t *, int_t *), mc64fd_(int_t * -- , int_t *, int_t *, int_t *, double *, int_t *, -- int_t *); +- extern /* Subroutine */ int_t +- mc64dd_(int_t *, int_t *, int_t *, double *, int_t *, int_t *), +- mc64ed_(int_t *, int_t *, int_t *, double *, int_t *, int_t *), +- mc64fd_(int_t *, int_t *, int_t *, int_t *, double *, int_t *, int_t *); - - -/* *** Copyright (c) 1999 Council for the Central Laboratory of the */ @@ -2649,6 +2646,11 @@ -} /* mc64wd_ */ - - ++#include ++#include ++ ++void mc64id_(int *a) ++ { + fprintf(stderr, "SuperLU: MC64 functionality not available (it uses non-free code). Aborting.\n"); + abort(); +} @@ -2660,3 +2662,4 @@ + fprintf(stderr, "SuperLU: MC64 functionality not available (it uses non-free code). Aborting.\n"); + abort(); +} + diff --git a/SPECS/SuperLU.spec b/SPECS/SuperLU.spec index 82cca0e..8836659 100644 --- a/SPECS/SuperLU.spec +++ b/SPECS/SuperLU.spec @@ -1,11 +1,10 @@ %global genname superlu -%global libver 5.3 Name: SuperLU -Version: 5.3.0 -Release: 2%{?dist} +Version: 6.0.1 +Release: 4%{?dist} Summary: Subroutines to solve sparse linear systems -License: BSD and GPLv2+ +License: BSD-2-Clause and GPL-2.0-or-later URL: https://portal.nersc.gov/project/sparse/superlu/ Source0: https://github.com/xiaoyeli/superlu/archive/v%{version}/%{genname}-%{version}.tar.gz @@ -14,13 +13,14 @@ Source1: %{name}-fedora-make.inc.in Patch0: %{genname}-removemc64.patch -# Patch soname (5 -> 5.x) of shared library -Patch1: %{name}-set_soname.patch - # Fix ldflags of example files -Patch2: %{name}-fix_example_builds.patch +Patch1: %{name}-fix_example_builds.patch + +Patch2: %{name}-c99.patch -%if 0%{?fedora} >= 33 +Patch3: %{name}-%{version}-Update_prototypes_of_BLAS_routines.patch + +%if 0%{?fedora} || 0%{?rhel} >= 9 BuildRequires: pkgconfig(flexiblas) %else %ifarch %{openblas_arches} @@ -33,8 +33,9 @@ BuildRequires: atlas-devel BuildRequires: epel-rpm-macros %endif %endif +BuildRequires: metis-devel BuildRequires: make -BuildRequires: cmake3 +BuildRequires: cmake BuildRequires: gcc, gcc-gfortran BuildRequires: csh @@ -59,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 @@ -80,59 +86,34 @@ done sed -e 's|-O0|-O2|g' -i SRC/CMakeLists.txt %build -mkdir -p build -%cmake3 -S . -B build \ +%cmake \ -Denable_internal_blaslib:BOOL=NO \ -%if 0%{?fedora} >= 33 + -DXSDK_ENABLE_Fortran:BOOL=OFF \ + -DCMAKE_Fortran_FLAGS_RELEASE:STRING="%{__global_fflags}" \ +%if 0%{?fedora} || 0%{?rhel} >= 9 -DTPL_BLAS_LIBRARIES="`pkg-config --libs flexiblas`" \ %else -DTPL_BLAS_LIBRARIES=-lopenblas \ %endif + -DTPL_ENABLE_METISLIB:BOOL=ON \ + -DTPL_METIS_INCLUDE_DIRS:PATH=%{_includedir} \ + -DTPL_METIS_LIBRARIES:FILEPATH=%{_libdir}/libmetis.so \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DCMAKE_INSTALL_INCLUDEDIR:PATH=include/%{name} \ -DCMAKE_INSTALL_LIBDIR:PATH=%{_lib} \ -DCMAKE_SKIP_RPATH:BOOL=YES -DCMAKE_SKIP_INSTALL_RPATH:BOOL=YES -%make_build -C build - -# Compile Fortran example interface to use the C routines in SuperLU -%if 0%{?fedora} >= 33 -export TPL_BLAS_LIBRARIES="`pkg-config --libs flexiblas`" \ -%else -export TPL_BLAS_LIBRARIES=-lopenblas \ -%endif -export LDFLAGS="%{build_ldflags}" -export FFLAGS="%{build_fflags}" -export CFLAGS="%{build_cflags}" -make -C FORTRAN -make -C EXAMPLE +%cmake_build %install -%make_install -C build +%cmake_install %check -pushd build -ctest3 -V %{?_smp_mflags} -popd - -# Test Fortran example interface to use the C routines in SuperLU -pushd FORTRAN -export LD_LIBRARY_PATH=%{buildroot}%{_libdir} -./df77exm < ../EXAMPLE/g20.rua -./zf77exm < ../EXAMPLE/cg20.cua -./test_omp < ../EXAMPLE/g20.rua -make clean -popd -# Test sample programs -pushd EXAMPLE -export LD_LIBRARY_PATH=%{buildroot}%{_libdir} -./superlu -make clean -popd +%ctest %files %license License.txt -%{_libdir}/libsuperlu.so.5 -%{_libdir}/libsuperlu.so.%{libver} +%{_libdir}/libsuperlu.so.6 +%{_libdir}/libsuperlu.so.%{version} %files devel %{_includedir}/%{name}/ @@ -145,9 +126,33 @@ popd %doc DOC %changelog -* Wed Jan 10 2024 MSVSphere Packaging Team - 5.3.0-2 +* Sun Mar 31 2024 Antonio Trande - 6.0.1-4 +- Rebuild against Flexiblas on EPEL9 (rhbz#2257325) + +* Mon Jan 22 2024 Fedora Release Engineering - 6.0.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 6.0.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jan 10 2024 MSVSphere Packaging Team - 6.0.1-1 - Rebuilt for MSVSphere 9.3 +* 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 + +* Tue Feb 21 2023 Florian Weimer - 5.3.0-5 +- Port to C99 + +* Wed Jan 18 2023 Fedora Release Engineering - 5.3.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Jul 20 2022 Fedora Release Engineering - 5.3.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Wed Jan 19 2022 Fedora Release Engineering - 5.3.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild