import SuperLU-6.0.1-4.el9

i9ce changed/i9ce/SuperLU-6.0.1-4.el9
MSVSphere Packaging Team 9 months ago
parent 932be401a7
commit e6d8355c64

@ -1 +1 @@
2d8f82ab434fd17b6eb7045392e38167fb7b194d SOURCES/superlu-5.3.0.tar.gz 8f2c7b656461ac7940ae1b5fe6ab660adffa9e65 SOURCES/superlu-6.0.1.tar.gz

2
.gitignore vendored

@ -1 +1 @@
SOURCES/superlu-5.3.0.tar.gz SOURCES/superlu-6.0.1.tar.gz

@ -0,0 +1,735 @@
From 481c28bebb04610363daa048db175f197ca9f512 Mon Sep 17 00:00:00 2001
From: wo80 <christian.woltering@tu-dortmund.de>
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 <christian.woltering@tu-dortmund.de>
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;

@ -0,0 +1,18 @@
Avoid implicit function declarations and implicit ints for improved
compatibility with future compilers.
Submitted upstream: <https://github.com/xiaoyeli/superlu/pull/76>
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 *);

@ -38,6 +38,7 @@ CC = @CMAKE_C_COMPILER@
CFLAGS = @CMAKE_C_FLAGS_RELEASE@ @CMAKE_C_FLAGS@ CFLAGS = @CMAKE_C_FLAGS_RELEASE@ @CMAKE_C_FLAGS@
NOOPTS = NOOPTS =
FORTRAN = @CMAKE_Fortran_COMPILER@ FORTRAN = @CMAKE_Fortran_COMPILER@
FFLAGS = @CMAKE_Fortran_FLAGS_RELEASE@
LOADER = $(CC) LOADER = $(CC)
LOADOPTS = $(LDFLAGS) LOADOPTS = $(LDFLAGS)

@ -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 @@
$<INSTALL_INTERFACE:include>
)
set_target_properties(superlu PROPERTIES
- VERSION ${PROJECT_VERSION} SOVERSION ${VERSION_MAJOR}
+ VERSION ${VERSION_MAJOR}.${VERSION_MINOR} SOVERSION ${VERSION_MAJOR}
)
# Define GNU standard installation directories

@ -1,5 +1,5 @@
--- SuperLU_5.2.1/SRC/mc64ad.c 2016-05-22 17:58:44.000000000 +0200 --- a/SRC/mc64ad.c 2016-05-22 17:58:44.000000000 +0200
+++ mc64ad.c 2018-04-13 17:13:23.571981656 +0200 +++ b/SRC/mc64ad.c 2018-04-13 17:13:23.571981656 +0200
@@ -1,2645 +1,16 @@ @@ -1,2645 +1,16 @@
-/* mc64ad.f -- translated by f2c (version 20100827). -/* mc64ad.f -- translated by f2c (version 20100827).
- You must link the resulting object file with libf2c: - 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 - -- in that order, at the end of the command line, as in
- cc *.o -lf2c -lm - cc *.o -lf2c -lm
- Source for libf2c is in /netlib/f2c/libf2c.zip, e.g., - Source for libf2c is in /netlib/f2c/libf2c.zip, e.g.,
+#include <stdio.h> -
+#include <stdlib.h>
- http://www.netlib.org/f2c/libf2c.zip - 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 * -/* 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 * - int_t *liw, int_t *iw, int_t *ldw, double *dw, int_t *
- icntl, int_t *info) - icntl, int_t *info)
-{ -{
@ -135,16 +133,17 @@
- double fact, rinf; - double fact, rinf;
- -
- extern /* Subroutine */ int_t mc21ad_(int_t *, int_t *, int_t *, - 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 *, int_t *),
- int_t *, int_t *, int_t *, int_t *, double *, int_t - mc64bd_(int_t *n, int_t *ne, int_t *ip, int_t *irn, double *a,
- *, int_t *, int_t *, int_t *, int_t *, int_t *, - int *iperm, int_t *num, int_t *jperm,
- double *), mc64rd_(int_t *, int_t *, int_t *, int_t *, - int_t *pr, int_t *q, int_t *l, double *d__),
- double *), mc64sd_(int_t *, int_t *, int_t *, int_t * - mc64rd_(int_t *n, int_t *ne, int_t *ip, int_t *irn, double *a),
- , double *, int_t *, int_t *, int_t *, int_t *, - mc64sd_(int_t *n, int_t *ne, int_t *ip, int_t *irn, double *a,
- int_t *, int_t *, int_t *, int_t *, int_t *), mc64wd_( - int *iperm, int_t *numx, int_t *w, int_t *len, int_t *lenl,
- int_t *, int_t *, int_t *, int_t *, double *, int_t - int_t *lenh, int_t *fc, int_t *iw, int_t *iw4),
- *, int_t *, int_t *, int_t *, int_t *, int_t *, int_t - mc64wd_(int_t *n, int_t *ne, int_t *ip, int_t *irn, double *a,
- *, double *, double *); - 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 */ -/* *** Copyright (c) 1999 Council for the Central Laboratory of the */
-/* Research Councils *** */ -/* Research Councils *** */
@ -346,7 +345,7 @@
- info[2] = *job; - info[2] = *job;
- if (icntl[1] >= 0) { - if (icntl[1] >= 0) {
- printf(" ****** Error in MC64A/AD. INFO(1) = %2d" - 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; - goto L99;
- } - }
@ -356,7 +355,7 @@
- info[2] = *n; - info[2] = *n;
- if (icntl[1] >= 0) { - if (icntl[1] >= 0) {
- printf(" ****** Error in MC64A/AD. INFO(1) = %2d" - 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; - goto L99;
- } - }
@ -366,7 +365,7 @@
- info[2] = *ne; - info[2] = *ne;
- if (icntl[1] >= 0) { - if (icntl[1] >= 0) {
- printf(" ****** Error in MC64A/AD. INFO(1) = %2d" - 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; - goto L99;
- } - }
@ -391,7 +390,7 @@
- info[2] = k; - info[2] = k;
- if (icntl[1] >= 0) { - if (icntl[1] >= 0) {
- printf(" ****** Error in MC64A/AD. INFO(1) = %2d" - 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; - goto L99;
- } - }
@ -415,7 +414,7 @@
- info[2] = k; - info[2] = k;
- if (icntl[1] >= 0) { - if (icntl[1] >= 0) {
- printf(" ****** Error in MC64A/AD. INFO(1) = %2d" - 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; - goto L99;
- } - }
@ -439,7 +438,7 @@
- if (icntl[1] >= 0) { - if (icntl[1] >= 0) {
- printf(" ****** Error in MC64A/AD. INFO(1) = %2d Column %8d" - printf(" ****** Error in MC64A/AD. INFO(1) = %2d Column %8d"
- " contains an entry with invalid row index %8d\n", - " contains an entry with invalid row index %8d\n",
- info[1], j, i__); - (int) info[1], (int) j, (int) i__);
- } - }
- goto L99; - goto L99;
- } - }
@ -451,7 +450,7 @@
- printf(" ****** Error in MC64A/AD. INFO(1) = %2d" - printf(" ****** Error in MC64A/AD. INFO(1) = %2d"
- " Column %8d" - " Column %8d"
- " contains two or more entries with row index %8d\n", - " contains two or more entries with row index %8d\n",
- info[1], j, i__); - (int) info[1], (int) j, (int) i__);
- } - }
- goto L99; - goto L99;
- } else { - } else {
@ -465,15 +464,15 @@
-/* Print diagnostics on input */ -/* Print diagnostics on input */
- if (icntl[3] >= 0) { - if (icntl[3] >= 0) {
- printf(" ****** Input parameters for MC64A/AD: JOB = %8d," - 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) = "); - printf(" IP(1:N+1) = ");
- for (j=1; j<=(*n+1); ++j) { - for (j=1; j<=(*n+1); ++j) {
- printf("%8d", ip[j]); - printf("%8d", (int) ip[j]);
- if (j%8 == 0) printf("\n"); - if (j%8 == 0) printf("\n");
- } - }
- printf("\n IRN(1:NE) = "); - printf("\n IRN(1:NE) = ");
- for (j=1; j<=(*ne); ++j) { - for (j=1; j<=(*ne); ++j) {
- printf("%8d", irn[j]); - printf("%8d", (int) irn[j]);
- if (j%8 == 0) printf("\n"); - if (j%8 == 0) printf("\n");
- } - }
- printf("\n"); - printf("\n");
@ -621,24 +620,24 @@
- info[1] = 1; - info[1] = 1;
- if (icntl[2] >= 0) { - if (icntl[2] >= 0) {
- printf(" ****** Warning from MC64A/AD. INFO(1) = %2d" - 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) { - if (info[1] == 2) {
-/* Scaling factors are large, return with warning */ -/* Scaling factors are large, return with warning */
- if (icntl[2] >= 0) { - if (icntl[2] >= 0) {
- printf(" ****** Warning from MC64A/AD. INFO(1) = %2d\n" - 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 */ -/* Print diagnostics on output */
- if (icntl[3] >= 0) { - if (icntl[3] >= 0) {
- printf(" ****** Output parameters for MC64A/AD: INFO(1:2) = %8d%8d\n", - printf(" ****** Output parameters for MC64A/AD: INFO(1:2) = %8d%8d\n",
- info[1], info[2]); - (int) info[1], (int) info[2]);
- printf(" NUM = %8d", *num); - printf(" NUM = %8d", (int) *num);
- printf(" CPERM(1:N) = "); - printf(" CPERM(1:N) = ");
- for (j=1; j<=*n; ++j) { - for (j=1; j<=*n; ++j) {
- printf("%8d", cperm[j]); - printf("%8d", (int) cperm[j]);
- if (j%8 == 0) printf("\n"); - if (j%8 == 0) printf("\n");
- } - }
- if (*job == 5) { - if (*job == 5) {
@ -662,7 +661,7 @@
- -
-/* ********************************************************************** */ -/* ********************************************************************** */
-/* Subroutine */ int_t mc64bd_(int_t *n, int_t *ne, int_t *ip, int_t * -/* 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__) - int_t *pr, int_t *q, int_t *l, double *d__)
-{ -{
- /* System generated locals */ - /* System generated locals */
@ -685,10 +684,10 @@
- double dnew; - double dnew;
- int_t jord, qlen, idum, jdum; - int_t jord, qlen, idum, jdum;
- double rinf; - double rinf;
- extern /* Subroutine */ int_t mc64dd_(int_t *, int_t *, int_t *, - extern /* Subroutine */ int_t
- double *, int_t *, int_t *), mc64ed_(int_t *, int_t *, - mc64dd_(int_t *, int_t *, int_t *, double *, int_t *, int_t *),
- int_t *, double *, int_t *, int_t *), mc64fd_(int_t * - mc64ed_(int_t *, int_t *, int_t *, double *, int_t *, int_t *),
- , 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 */ -/* *** Copyright (c) 1999 Council for the Central Laboratory of the */
@ -1094,7 +1093,6 @@
-{ -{
- /* System generated locals */ - /* System generated locals */
- int_t i__1; - int_t i__1;
- int_t c__1 = 1;
- -
- /* Local variables */ - /* Local variables */
- double di; - double di;
@ -1550,11 +1548,10 @@
- -
-/* ********************************************************************** */ -/* ********************************************************************** */
-/* Subroutine */ int_t mc64sd_(int_t *n, int_t *ne, int_t *ip, int_t * -/* 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 *len, int_t *lenl, int_t *lenh, int_t *fc, int_t *iw,
- int_t *iw4) - int_t *iw4)
+void mc64id_(int *a) -{
{
- /* System generated locals */ - /* System generated locals */
- int_t i__1, i__2, i__3, i__4; - int_t i__1, i__2, i__3, i__4;
- -
@ -1562,11 +1559,12 @@
- int_t i__, j, k, l, ii, mod, cnt, num; - int_t i__, j, k, l, ii, mod, cnt, num;
- double bval, bmin, bmax, rinf; - double bval, bmin, bmax, rinf;
- int_t nval, wlen, idum1, idum2, idum3; - int_t nval, wlen, idum1, idum2, idum3;
- extern /* Subroutine */ int_t mc64qd_(int_t *, int_t *, int_t *, - extern /* Subroutine */ int_t
- int_t *, int_t *, double *, int_t *, double *), - mc64qd_(int_t *, int_t *, int_t *, int_t *, int_t *, double *,
- mc64ud_(int_t *, int_t *, int_t *, int_t *, int_t *, - int_t *, double *),
- int_t *, int_t *, int_t *, int_t *, int_t *, int_t *, - 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 *,
- int_t *, int_t *, int_t *, int_t *);
- -
-/* *** Copyright (c) 1999 Council for the Central Laboratory of the */ -/* *** Copyright (c) 1999 Council for the Central Laboratory of the */
-/* Research Councils *** */ -/* Research Councils *** */
@ -2165,7 +2163,7 @@
- -
-/* ********************************************************************** */ -/* ********************************************************************** */
-/* Subroutine */ int_t mc64wd_(int_t *n, int_t *ne, int_t *ip, int_t * -/* 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, - int_t *out, int_t *pr, int_t *q, int_t *l, double *u,
- double *d__) - double *d__)
-{ -{
@ -2185,11 +2183,10 @@
- double dmin__, dnew; - double dmin__, dnew;
- int_t jord, qlen, jdum; - int_t jord, qlen, jdum;
- double rinf; - double rinf;
- extern /* Subroutine */ int_t mc64dd_(int_t *, int_t *, int_t *, - extern /* Subroutine */ int_t
- double *, int_t *, int_t *), mc64ed_(int_t *, int_t *, - mc64dd_(int_t *, int_t *, int_t *, double *, int_t *, int_t *),
- int_t *, double *, int_t *, int_t *), mc64fd_(int_t * - mc64ed_(int_t *, int_t *, int_t *, double *, int_t *, int_t *),
- , int_t *, int_t *, int_t *, double *, int_t *, - mc64fd_(int_t *, int_t *, int_t *, int_t *, double *, int_t *, int_t *);
- int_t *);
- -
- -
-/* *** Copyright (c) 1999 Council for the Central Laboratory of the */ -/* *** Copyright (c) 1999 Council for the Central Laboratory of the */
@ -2649,6 +2646,11 @@
-} /* mc64wd_ */ -} /* mc64wd_ */
- -
- -
+#include <stdio.h>
+#include <stdlib.h>
+
+void mc64id_(int *a)
+ {
+ fprintf(stderr, "SuperLU: MC64 functionality not available (it uses non-free code). Aborting.\n"); + fprintf(stderr, "SuperLU: MC64 functionality not available (it uses non-free code). Aborting.\n");
+ abort(); + abort();
+} +}
@ -2660,3 +2662,4 @@
+ fprintf(stderr, "SuperLU: MC64 functionality not available (it uses non-free code). Aborting.\n"); + fprintf(stderr, "SuperLU: MC64 functionality not available (it uses non-free code). Aborting.\n");
+ abort(); + abort();
+} +}

@ -1,11 +1,10 @@
%global genname superlu %global genname superlu
%global libver 5.3
Name: SuperLU Name: SuperLU
Version: 5.3.0 Version: 6.0.1
Release: 2%{?dist} Release: 4%{?dist}
Summary: Subroutines to solve sparse linear systems 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/ URL: https://portal.nersc.gov/project/sparse/superlu/
Source0: https://github.com/xiaoyeli/superlu/archive/v%{version}/%{genname}-%{version}.tar.gz 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 Patch0: %{genname}-removemc64.patch
# Patch soname (5 -> 5.x) of shared library
Patch1: %{name}-set_soname.patch
# Fix ldflags of example files # 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) BuildRequires: pkgconfig(flexiblas)
%else %else
%ifarch %{openblas_arches} %ifarch %{openblas_arches}
@ -33,8 +33,9 @@ BuildRequires: atlas-devel
BuildRequires: epel-rpm-macros BuildRequires: epel-rpm-macros
%endif %endif
%endif %endif
BuildRequires: metis-devel
BuildRequires: make BuildRequires: make
BuildRequires: cmake3 BuildRequires: cmake
BuildRequires: gcc, gcc-gfortran BuildRequires: gcc, gcc-gfortran
BuildRequires: csh BuildRequires: csh
@ -59,7 +60,12 @@ BuildArch: noarch
The %{name}-doc package contains all the help HTML documentation. The %{name}-doc package contains all the help HTML documentation.
%prep %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 rm -f make.inc
cp -pf %{SOURCE1} make.inc.in cp -pf %{SOURCE1} make.inc.in
@ -80,59 +86,34 @@ done
sed -e 's|-O0|-O2|g' -i SRC/CMakeLists.txt sed -e 's|-O0|-O2|g' -i SRC/CMakeLists.txt
%build %build
mkdir -p build %cmake \
%cmake3 -S . -B build \
-Denable_internal_blaslib:BOOL=NO \ -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`" \ -DTPL_BLAS_LIBRARIES="`pkg-config --libs flexiblas`" \
%else %else
-DTPL_BLAS_LIBRARIES=-lopenblas \ -DTPL_BLAS_LIBRARIES=-lopenblas \
%endif %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_BUILD_TYPE:STRING=Release \
-DCMAKE_INSTALL_INCLUDEDIR:PATH=include/%{name} \ -DCMAKE_INSTALL_INCLUDEDIR:PATH=include/%{name} \
-DCMAKE_INSTALL_LIBDIR:PATH=%{_lib} \ -DCMAKE_INSTALL_LIBDIR:PATH=%{_lib} \
-DCMAKE_SKIP_RPATH:BOOL=YES -DCMAKE_SKIP_INSTALL_RPATH:BOOL=YES -DCMAKE_SKIP_RPATH:BOOL=YES -DCMAKE_SKIP_INSTALL_RPATH:BOOL=YES
%make_build -C build %cmake_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
%install %install
%make_install -C build %cmake_install
%check %check
pushd build %ctest
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
%files %files
%license License.txt %license License.txt
%{_libdir}/libsuperlu.so.5 %{_libdir}/libsuperlu.so.6
%{_libdir}/libsuperlu.so.%{libver} %{_libdir}/libsuperlu.so.%{version}
%files devel %files devel
%{_includedir}/%{name}/ %{_includedir}/%{name}/
@ -145,9 +126,33 @@ popd
%doc DOC %doc DOC
%changelog %changelog
* Wed Jan 10 2024 MSVSphere Packaging Team <packager@msvsphere-os.ru> - 5.3.0-2 * Sun Mar 31 2024 Antonio Trande <sagitter@fedoraproject.org> - 6.0.1-4
- Rebuild against Flexiblas on EPEL9 (rhbz#2257325)
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 6.0.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 6.0.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Jan 10 2024 MSVSphere Packaging Team <packager@msvsphere-os.ru> - 6.0.1-1
- Rebuilt for MSVSphere 9.3 - Rebuilt for MSVSphere 9.3
* Wed Aug 09 2023 Antonio Trande <sagitter@fedoraproject.org> - 6.0.1-1
- Release 6.0.1
* Sat Apr 22 2023 Antonio Trande <sagitter@fedoraproject.org> - 6.0.0-1
- Release 6.0.0
* Tue Feb 21 2023 Florian Weimer <fweimer@redhat.com> - 5.3.0-5
- Port to C99
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5.3.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5.3.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5.3.0-2 * Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5.3.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

Loading…
Cancel
Save