Compare commits

...

No commits in common. "c9s" and "c8" have entirely different histories.
c9s ... c8

31 changed files with 195 additions and 25781 deletions

16
.gitignore vendored
View File

@ -1,14 +1,2 @@
lapack-3.2.1.tgz SOURCES/lapack-3.8.0.tar.gz
manpages.tgz SOURCES/manpages.tgz
lapack-3.2.2.tgz
/lapack-3.3.1.tgz
/lapack-3.4.0.tgz
/lapack-3.4.1.tgz
/lapack-3.4.2.tgz
/lapack-3.4.2-clean.tgz
/lapack-3.5.0.tgz
/lapack-3.6.0.tgz
/lapack-3.6.1.tgz
/lapack-3.7.1.tgz
/lapack-3.8.0.tar.gz
/v3.9.0.tar.gz

View File

@ -1,2 +1,2 @@
eb9ce19ce73e645bfb22af5480f16190baf09ae3 manpages.tgz 55ac9d6be510883c5442c8aca967722cdf58fb29 SOURCES/lapack-3.8.0.tar.gz
0451d180eed2b12b94aaae77e772d7573e87bec4 v3.9.0.tar.gz eb9ce19ce73e645bfb22af5480f16190baf09ae3 SOURCES/manpages.tgz

View File

@ -1,138 +0,0 @@
From 87536aa3c8bb0af00f66088fb6ac05d87509e011 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@debian.org>
Date: Sat, 23 Nov 2019 12:22:20 +0100
Subject: [PATCH] Restore missing prototypes for deprecated LAPACK functions
Some LAPACK functions prototypes were inadvertedly dropped in 3.9.0. As a
consequence, LAPACKE has several unresolved symbols.
Closes #365
---
LAPACKE/include/lapack.h | 100 +++++++++++++++++++++++++++++++++++++++
1 file changed, 100 insertions(+)
diff --git a/LAPACKE/include/lapack.h b/LAPACKE/include/lapack.h
index 3f425325f..5c131d844 100644
--- a/LAPACKE/include/lapack.h
+++ b/LAPACKE/include/lapack.h
@@ -1842,6 +1842,28 @@ void LAPACK_zgeqlf(
lapack_complex_double* work, lapack_int const* lwork,
lapack_int* info );
+#define LAPACK_sgeqpf LAPACK_GLOBAL(sgeqpf,SGEQPF)
+void LAPACK_sgeqpf( lapack_int* m, lapack_int* n, float* a, lapack_int* lda,
+ lapack_int* jpvt, float* tau, float* work,
+ lapack_int *info );
+
+#define LAPACK_dgeqpf LAPACK_GLOBAL(dgeqpf,DGEQPF)
+void LAPACK_dgeqpf( lapack_int* m, lapack_int* n, double* a, lapack_int* lda,
+ lapack_int* jpvt, double* tau, double* work,
+ lapack_int *info );
+
+#define LAPACK_cgeqpf LAPACK_GLOBAL(cgeqpf,CGEQPF)
+void LAPACK_cgeqpf( lapack_int* m, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_int* jpvt,
+ lapack_complex_float* tau, lapack_complex_float* work,
+ float* rwork, lapack_int *info );
+
+#define LAPACK_zgeqpf LAPACK_GLOBAL(zgeqpf,ZGEQPF)
+void LAPACK_zgeqpf( lapack_int* m, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_int* jpvt,
+ lapack_complex_double* tau, lapack_complex_double* work,
+ double* rwork, lapack_int *info );
+
#define LAPACK_cgeqp3 LAPACK_GLOBAL(cgeqp3,CGEQP3)
void LAPACK_cgeqp3(
lapack_int const* m, lapack_int const* n,
@@ -3617,6 +3639,47 @@ void LAPACK_zggrqf(
lapack_complex_double* work, lapack_int const* lwork,
lapack_int* info );
+#define LAPACK_sggsvd LAPACK_GLOBAL(sggsvd,SGGSVD)
+lapack_int LAPACKE_sggsvd( int matrix_layout, char jobu, char jobv, char jobq,
+ lapack_int m, lapack_int n, lapack_int p,
+ lapack_int* k, lapack_int* l, float* a,
+ lapack_int lda, float* b, lapack_int ldb,
+ float* alpha, float* beta, float* u, lapack_int ldu,
+ float* v, lapack_int ldv, float* q, lapack_int ldq,
+ lapack_int* iwork );
+
+#define LAPACK_dggsvd LAPACK_GLOBAL(dggsvd,DGGSVD)
+lapack_int LAPACKE_dggsvd( int matrix_layout, char jobu, char jobv, char jobq,
+ lapack_int m, lapack_int n, lapack_int p,
+ lapack_int* k, lapack_int* l, double* a,
+ lapack_int lda, double* b, lapack_int ldb,
+ double* alpha, double* beta, double* u,
+ lapack_int ldu, double* v, lapack_int ldv, double* q,
+ lapack_int ldq, lapack_int* iwork );
+
+#define LAPACK_cggsvd LAPACK_GLOBAL(cggsvd,CGGSVD)
+lapack_int LAPACKE_cggsvd( int matrix_layout, char jobu, char jobv, char jobq,
+ lapack_int m, lapack_int n, lapack_int p,
+ lapack_int* k, lapack_int* l,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ float* alpha, float* beta, lapack_complex_float* u,
+ lapack_int ldu, lapack_complex_float* v,
+ lapack_int ldv, lapack_complex_float* q,
+ lapack_int ldq, lapack_int* iwork );
+
+#define LAPACK_zggsvd LAPACK_GLOBAL(zggsvd,ZGGSVD)
+lapack_int LAPACKE_zggsvd( int matrix_layout, char jobu, char jobv, char jobq,
+ lapack_int m, lapack_int n, lapack_int p,
+ lapack_int* k, lapack_int* l,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ double* alpha, double* beta,
+ lapack_complex_double* u, lapack_int ldu,
+ lapack_complex_double* v, lapack_int ldv,
+ lapack_complex_double* q, lapack_int ldq,
+ lapack_int* iwork );
+
#define LAPACK_cggsvd3 LAPACK_GLOBAL(cggsvd3,CGGSVD3)
void LAPACK_cggsvd3(
char const* jobu, char const* jobv, char const* jobq,
@@ -3679,6 +3742,43 @@ void LAPACK_zggsvd3(
lapack_int* iwork,
lapack_int* info );
+#define LAPACK_sggsvp LAPACK_GLOBAL(sggsvp,SGGSVP)
+lapack_int LAPACKE_sggsvp( int matrix_layout, char jobu, char jobv, char jobq,
+ lapack_int m, lapack_int p, lapack_int n, float* a,
+ lapack_int lda, float* b, lapack_int ldb, float tola,
+ float tolb, lapack_int* k, lapack_int* l, float* u,
+ lapack_int ldu, float* v, lapack_int ldv, float* q,
+ lapack_int ldq );
+
+#define LAPACK_dggsvp LAPACK_GLOBAL(dggsvp,DGGSVP)
+lapack_int LAPACKE_dggsvp( int matrix_layout, char jobu, char jobv, char jobq,
+ lapack_int m, lapack_int p, lapack_int n, double* a,
+ lapack_int lda, double* b, lapack_int ldb,
+ double tola, double tolb, lapack_int* k,
+ lapack_int* l, double* u, lapack_int ldu, double* v,
+ lapack_int ldv, double* q, lapack_int ldq );
+
+#define LAPACK_cggsvp LAPACK_GLOBAL(cggsvp,CGGSVP)
+lapack_int LAPACKE_cggsvp( int matrix_layout, char jobu, char jobv, char jobq,
+ lapack_int m, lapack_int p, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb, float tola,
+ float tolb, lapack_int* k, lapack_int* l,
+ lapack_complex_float* u, lapack_int ldu,
+ lapack_complex_float* v, lapack_int ldv,
+ lapack_complex_float* q, lapack_int ldq );
+
+#define LAPACK_zggsvp LAPACK_GLOBAL(zggsvp,ZGGSVP)
+lapack_int LAPACKE_zggsvp( int matrix_layout, char jobu, char jobv, char jobq,
+ lapack_int m, lapack_int p, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ double tola, double tolb, lapack_int* k,
+ lapack_int* l, lapack_complex_double* u,
+ lapack_int ldu, lapack_complex_double* v,
+ lapack_int ldv, lapack_complex_double* q,
+ lapack_int ldq );
+
#define LAPACK_cggsvp3 LAPACK_GLOBAL(cggsvp3,CGGSVP3)
void LAPACK_cggsvp3(
char const* jobu, char const* jobv, char const* jobq,

View File

@ -1,7 +1,7 @@
OBJCOPY = objcopy OBJCOPY = objcopy
ifndef SYMBOLSUFFIX ifndef SYMBOLPREFIX
SYMBOLSUFFIX = SYMBOLPREFIX =
endif endif
clean: clean:
@ -56,29 +56,29 @@ OBJS= $(SBLAS1) $(SBLAS2) $(SBLAS3) $(DBLAS1) $(DBLAS2) $(DBLAS3) \
$(ALLBLAS) $(ALLBLAS)
static: $(OBJS) static: $(OBJS)
ifeq "$(SYMBOLSUFFIX)" "" ifeq "$(SYMBOLPREFIX)" ""
ar ruv libblas.a $(OBJS) ar ruv libblas.a $(OBJS)
ranlib libblas.a ranlib libblas.a
else else
ar ruv libblas$(SYMBOLSUFFIX).a $(OBJS) ar ruv libblas$(SYMBOLPREFIX).a $(OBJS)
ranlib libblas$(SYMBOLSUFFIX).a ranlib libblas$(SYMBOLPREFIX).a
for i in `nm libblas$(SYMBOLSUFFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > blas-static-prefix.def.dirty for i in `nm libblas$(SYMBOLPREFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > blas-static-prefix.def.dirty
sort -n blas-static-prefix.def.dirty | uniq > blas-static-prefix.def sort -n blas-static-prefix.def.dirty | uniq > blas-static-prefix.def
$(OBJCOPY) --redefine-syms blas-static-prefix.def libblas$(SYMBOLSUFFIX).a libblas$(SYMBOLSUFFIX).a.fixed $(OBJCOPY) --redefine-syms blas-static-prefix.def libblas$(SYMBOLPREFIX).a libblas$(SYMBOLPREFIX).a.fixed
rm -rf libblas$(SYMBOLSUFFIX).a rm -rf libblas$(SYMBOLPREFIX).a
mv libblas$(SYMBOLSUFFIX).a.fixed libblas$(SYMBOLSUFFIX).a mv libblas$(SYMBOLPREFIX).a.fixed libblas$(SYMBOLPREFIX).a
endif endif
shared: $(OBJS) shared: $(OBJS)
ifeq "$(SYMBOLSUFFIX)" "" ifeq "$(SYMBOLPREFIX)" ""
# No renaming needed # No renaming needed
cc $(CFLAGS) -shared -Wl,-soname,libblas.so.@SHORTVER@ -o libblas.so.@LONGVER@ $(OBJS) $(LDFLAGS) -lm -lgfortran -lc cc $(CFLAGS) -shared -Wl,-soname,libblas.so.@SHORTVER@ -o libblas.so.@LONGVER@ $(OBJS) $(LDFLAGS) -lm -lgfortran -lc
else else
cc $(CFLAGS) -shared -Wl,-soname,libblas$(SYMBOLSUFFIX).so.@SHORTVER@ -o libblas$(SYMBOLSUFFIX).so.@LONGVER@ $(OBJS) $(LDFLAGS) -lm -lgfortran -lc cc $(CFLAGS) -shared -Wl,-soname,libblas$(SYMBOLPREFIX).so.@SHORTVER@ -o libblas$(SYMBOLPREFIX).so.@LONGVER@ $(OBJS) $(LDFLAGS) -lm -lgfortran -lc
# generate a list of all symbols in shared library and rename with SYMBOLSUFFIX # generate a list of all symbols in shared library and rename with SYMBOLPREFIX
for i in `readelf -Ws libblas$(SYMBOLSUFFIX).so.@LONGVER@ | awk '{print $$8}' | grep -v GLIBC |grep -v GFORTRAN |grep -v "Name" `; do echo "$$i" "64_$$i"; done > blas-prefix.def.dirty for i in `readelf -Ws libblas$(SYMBOLPREFIX).so.@LONGVER@ | awk '{print $$8}' | grep -v GLIBC |grep -v GFORTRAN |grep -v "Name" `; do echo "$$i" "64_$$i"; done > blas-prefix.def.dirty
sort -n blas-prefix.def.dirty | uniq > blas-prefix.def sort -n blas-prefix.def.dirty | uniq > blas-prefix.def
$(OBJCOPY) --redefine-syms blas-prefix.def libblas$(SYMBOLSUFFIX).so.@LONGVER@ libblas$(SYMBOLSUFFIX).so.@LONGVER@.fixed $(OBJCOPY) --redefine-syms blas-prefix.def libblas$(SYMBOLPREFIX).so.@LONGVER@ libblas$(SYMBOLPREFIX).so.@LONGVER@.fixed
rm -rf libblas$(SYMBOLSUFFIX).so.@LONGVER@ rm -rf libblas$(SYMBOLPREFIX).so.@LONGVER@
mv libblas$(SYMBOLSUFFIX).so.@LONGVER@.fixed libblas$(SYMBOLSUFFIX).so.@LONGVER@ mv libblas$(SYMBOLPREFIX).so.@LONGVER@.fixed libblas$(SYMBOLPREFIX).so.@LONGVER@
endif endif

View File

@ -1,7 +1,7 @@
OBJCOPY = objcopy OBJCOPY = objcopy
ifndef SYMBOLSUFFIX ifndef SYMBOLPREFIX
SYMBOLSUFFIX = SYMBOLPREFIX =
endif endif
clean: clean:
@ -70,30 +70,30 @@ OBJS= $(SLEV1) $(DLEV1) $(CLEV1) $(ZLEV1) $(SCLEV1) $(SLEV2) $(DLEV2) $(CLEV2) \
$(ZLEV2) $(SLEV3) $(DLEV3) $(CLEV3) $(ZLEV3) $(ERRHAND) $(ZLEV2) $(SLEV3) $(DLEV3) $(CLEV3) $(ZLEV3) $(ERRHAND)
static: $(OBJS) static: $(OBJS)
ifeq "$(SYMBOLSUFFIX)" "" ifeq "$(SYMBOLPREFIX)" ""
ar ruv libcblas.a $(OBJS) ar ruv libcblas.a $(OBJS)
ranlib libcblas.a ranlib libcblas.a
else else
ar ruv libcblas$(SYMBOLSUFFIX).a $(OBJS) ar ruv libcblas$(SYMBOLPREFIX).a $(OBJS)
ranlib libcblas$(SYMBOLSUFFIX).a ranlib libcblas$(SYMBOLPREFIX).a
for i in `nm libcblas$(SYMBOLSUFFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > cblas-static-prefix.def.dirty for i in `nm libcblas$(SYMBOLPREFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > cblas-static-prefix.def.dirty
sort -n cblas-static-prefix.def.dirty | uniq > cblas-static-prefix.def sort -n cblas-static-prefix.def.dirty | uniq > cblas-static-prefix.def
$(OBJCOPY) --redefine-syms cblas-static-prefix.def libcblas$(SYMBOLSUFFIX).a libcblas$(SYMBOLSUFFIX).a.fixed $(OBJCOPY) --redefine-syms cblas-static-prefix.def libcblas$(SYMBOLPREFIX).a libcblas$(SYMBOLPREFIX).a.fixed
rm -rf libcblas$(SYMBOLSUFFIX).a rm -rf libcblas$(SYMBOLPREFIX).a
mv libcblas$(SYMBOLSUFFIX).a.fixed libcblas$(SYMBOLSUFFIX).a mv libcblas$(SYMBOLPREFIX).a.fixed libcblas$(SYMBOLPREFIX).a
endif endif
shared: $(OBJS) shared: $(OBJS)
ifeq "$(SYMBOLSUFFIX)" "" ifeq "$(SYMBOLPREFIX)" ""
# No renaming needed # No renaming needed
cc $(CFLAGS) -shared -Wl,-soname,libcblas.so.@SHORTVER@ -o libcblas.so.@LONGVER@ $(OBJS) $(LDFLAGS) -L../../ -lblas -lm -lgfortran -lc cc $(CFLAGS) -shared -Wl,-soname,libcblas.so.@SHORTVER@ -o libcblas.so.@LONGVER@ $(OBJS) $(LDFLAGS) -L../../ -lblas -lm -lgfortran -lc
else else
cc $(CFLAGS) -shared -Wl,-soname,libcblas$(SYMBOLSUFFIX).so.@SHORTVER@ -o libcblas$(SYMBOLSUFFIX).so.@LONGVER@ $(OBJS) $(LDFLAGS) -L../.. -lblas -lm -lgfortran -lc cc $(CFLAGS) -shared -Wl,-soname,libcblas$(SYMBOLPREFIX).so.@SHORTVER@ -o libcblas$(SYMBOLPREFIX).so.@LONGVER@ $(OBJS) $(LDFLAGS) -L../.. -lblas -lm -lgfortran -lc
# generate a list of all symbols in shared library and rename with SYMBOLSUFFIX # generate a list of all symbols in shared library and rename with SYMBOLPREFIX
for i in `readelf -Ws libcblas$(SYMBOLSUFFIX).so.@LONGVER@ | awk '{print $$8}' | grep -v GLIBC |grep -v GFORTRAN |grep -v "Name" `; do echo "$$i" "64_$$i"; done > cblas-prefix.def.dirty for i in `readelf -Ws libcblas$(SYMBOLPREFIX).so.@LONGVER@ | awk '{print $$8}' | grep -v GLIBC |grep -v GFORTRAN |grep -v "Name" `; do echo "$$i" "64_$$i"; done > cblas-prefix.def.dirty
sort -n cblas-prefix.def.dirty | uniq > cblas-prefix.def sort -n cblas-prefix.def.dirty | uniq > cblas-prefix.def
$(OBJCOPY) --redefine-syms cblas-prefix.def libcblas$(SYMBOLSUFFIX).so.@LONGVER@ libcblas$(SYMBOLSUFFIX).so.@LONGVER@.fixed $(OBJCOPY) --redefine-syms cblas-prefix.def libcblas$(SYMBOLPREFIX).so.@LONGVER@ libcblas$(SYMBOLPREFIX).so.@LONGVER@.fixed
rm -rf libcblas$(SYMBOLSUFFIX).so.@LONGVER@ rm -rf libcblas$(SYMBOLPREFIX).so.@LONGVER@
mv libcblas$(SYMBOLSUFFIX).so.@LONGVER@.fixed libcblas$(SYMBOLSUFFIX).so.@LONGVER@ mv libcblas$(SYMBOLPREFIX).so.@LONGVER@.fixed libcblas$(SYMBOLPREFIX).so.@LONGVER@
endif endif

View File

@ -2,8 +2,8 @@ include ../make.inc
OBJCOPY = objcopy OBJCOPY = objcopy
ifndef SYMBOLSUFFIX ifndef SYMBOLPREFIX
SYMBOLSUFFIX = SYMBOLPREFIX =
endif endif
clean: clean:
@ -38,7 +38,7 @@ SLASRC = sbdsvdx.o sgbbrd.o sgbcon.o sgbequ.o sgbrfs.o sgbsv.o \
slatbs.o slatdf.o slatps.o slatrd.o slatrs.o slatrz.o \ slatbs.o slatdf.o slatps.o slatrd.o slatrs.o slatrz.o \
slauu2.o slauum.o sopgtr.o sopmtr.o sorg2l.o sorg2r.o \ slauu2.o slauum.o sopgtr.o sopmtr.o sorg2l.o sorg2r.o \
sorgbr.o sorghr.o sorgl2.o sorglq.o sorgql.o sorgqr.o sorgr2.o \ sorgbr.o sorghr.o sorgl2.o sorglq.o sorgql.o sorgqr.o sorgr2.o \
sorgrq.o sorgtr.o sorgtsqr.o sorm2l.o sorm2r.o sorm22.o \ sorgrq.o sorgtr.o sorm2l.o sorm2r.o sorm22.o \
sormbr.o sormhr.o sorml2.o sormlq.o sormql.o sormqr.o sormr2.o \ sormbr.o sormhr.o sorml2.o sormlq.o sormql.o sormqr.o sormr2.o \
sormr3.o sormrq.o sormrz.o sormtr.o spbcon.o spbequ.o spbrfs.o \ sormr3.o sormrq.o sormrz.o sormtr.o spbcon.o spbequ.o spbrfs.o \
spbstf.o spbsv.o spbsvx.o \ spbstf.o spbsv.o spbsvx.o \
@ -80,11 +80,9 @@ SLASRC = sbdsvdx.o sgbbrd.o sgbcon.o sgbequ.o sgbrfs.o sgbsv.o \
sgetsls.o sgeqr.o slatsqr.o slamtsqr.o sgemqr.o \ sgetsls.o sgeqr.o slatsqr.o slamtsqr.o sgemqr.o \
sgelq.o slaswlq.o slamswlq.o sgemlq.o \ sgelq.o slaswlq.o slamswlq.o sgemlq.o \
stplqt.o stplqt2.o stpmlqt.o \ stplqt.o stplqt2.o stpmlqt.o \
sorhr_col.o slaorhr_col_getrfnp.o slaorhr_col_getrfnp2.o \
ssytrd_2stage.o ssytrd_sy2sb.o ssytrd_sb2st.o ssb2st_kernels.o \ ssytrd_2stage.o ssytrd_sy2sb.o ssytrd_sb2st.o ssb2st_kernels.o \
ssyevd_2stage.o ssyev_2stage.o ssyevx_2stage.o ssyevr_2stage.o \ ssyevd_2stage.o ssyev_2stage.o ssyevx_2stage.o ssyevr_2stage.o \
ssbev_2stage.o ssbevx_2stage.o ssbevd_2stage.o ssygv_2stage.o \ ssbev_2stage.o ssbevx_2stage.o ssbevd_2stage.o ssygv_2stage.o \
sgesvdq.o scombssq.o \
DEPRECATED/sgegs.o DEPRECATED/sgegv.o DEPRECATED/sgeqpf.o DEPRECATED/sgelsx.o \ DEPRECATED/sgegs.o DEPRECATED/sgegv.o DEPRECATED/sgeqpf.o DEPRECATED/sgelsx.o \
DEPRECATED/sggsvd.o DEPRECATED/sggsvp.o DEPRECATED/slahrd.o DEPRECATED/slatzm.o \ DEPRECATED/sggsvd.o DEPRECATED/sggsvp.o DEPRECATED/slahrd.o DEPRECATED/slatzm.o \
DEPRECATED/stzrqf.o DEPRECATED/stzrqf.o
@ -161,7 +159,7 @@ CLASRC = cbdsqr.o cgbbrd.o cgbcon.o cgbequ.o cgbrfs.o cgbsv.o cgbsvx.o \
ctptrs.o ctrcon.o ctrevc.o ctrevc3.o ctrexc.o ctrrfs.o ctrsen.o ctrsna.o \ ctptrs.o ctrcon.o ctrevc.o ctrevc3.o ctrexc.o ctrrfs.o ctrsen.o ctrsna.o \
ctrsyl.o ctrti2.o ctrtri.o ctrtrs.o ctzrzf.o cung2l.o cung2r.o \ ctrsyl.o ctrti2.o ctrtri.o ctrtrs.o ctzrzf.o cung2l.o cung2r.o \
cungbr.o cunghr.o cungl2.o cunglq.o cungql.o cungqr.o cungr2.o \ cungbr.o cunghr.o cungl2.o cunglq.o cungql.o cungqr.o cungr2.o \
cungrq.o cungtr.o cungtsqr.o cunm2l.o cunm2r.o cunmbr.o cunmhr.o cunml2.o cunm22.o \ cungrq.o cungtr.o cunm2l.o cunm2r.o cunmbr.o cunmhr.o cunml2.o cunm22.o \
cunmlq.o cunmql.o cunmqr.o cunmr2.o cunmr3.o cunmrq.o cunmrz.o \ cunmlq.o cunmql.o cunmqr.o cunmr2.o cunmr3.o cunmrq.o cunmrz.o \
cunmtr.o cupgtr.o cupmtr.o icmax1.o scsum1.o cstemr.o \ cunmtr.o cupgtr.o cupmtr.o icmax1.o scsum1.o cstemr.o \
chfrk.o ctfttp.o clanhf.o cpftrf.o cpftri.o cpftrs.o ctfsm.o ctftri.o \ chfrk.o ctfttp.o clanhf.o cpftrf.o cpftri.o cpftrs.o ctfsm.o ctftri.o \
@ -175,11 +173,9 @@ CLASRC = cbdsqr.o cgbbrd.o cgbcon.o cgbequ.o cgbrfs.o cgbsv.o cgbsvx.o \
cgetsls.o cgeqr.o clatsqr.o clamtsqr.o cgemqr.o \ cgetsls.o cgeqr.o clatsqr.o clamtsqr.o cgemqr.o \
cgelq.o claswlq.o clamswlq.o cgemlq.o \ cgelq.o claswlq.o clamswlq.o cgemlq.o \
ctplqt.o ctplqt2.o ctpmlqt.o \ ctplqt.o ctplqt2.o ctpmlqt.o \
cunhr_col.o claunhr_col_getrfnp.o claunhr_col_getrfnp2.o \
chetrd_2stage.o chetrd_he2hb.o chetrd_hb2st.o chb2st_kernels.o \ chetrd_2stage.o chetrd_he2hb.o chetrd_hb2st.o chb2st_kernels.o \
cheevd_2stage.o cheev_2stage.o cheevx_2stage.o cheevr_2stage.o \ cheevd_2stage.o cheev_2stage.o cheevx_2stage.o cheevr_2stage.o \
chbev_2stage.o chbevx_2stage.o chbevd_2stage.o chegv_2stage.o \ chbev_2stage.o chbevx_2stage.o chbevd_2stage.o chegv_2stage.o \
cgesvdq.o \
DEPRECATED/cgegs.o DEPRECATED/cgegv.o \ DEPRECATED/cgegs.o DEPRECATED/cgegv.o \
DEPRECATED/cgeqpf.o DEPRECATED/cgelsx.o DEPRECATED/cggsvd.o \ DEPRECATED/cgeqpf.o DEPRECATED/cgelsx.o DEPRECATED/cggsvd.o \
DEPRECATED/cggsvp.o DEPRECATED/clahrd.o DEPRECATED/clatzm.o DEPRECATED/ctzrqf.o DEPRECATED/cggsvp.o DEPRECATED/clahrd.o DEPRECATED/clatzm.o DEPRECATED/ctzrqf.o
@ -213,7 +209,7 @@ DLASRC = dbdsvdx.o dgbbrd.o dgbcon.o dgbequ.o dgbrfs.o dgbsv.o \
dlatbs.o dlatdf.o dlatps.o dlatrd.o dlatrs.o dlatrz.o dlauu2.o \ dlatbs.o dlatdf.o dlatps.o dlatrd.o dlatrs.o dlatrz.o dlauu2.o \
dlauum.o dopgtr.o dopmtr.o dorg2l.o dorg2r.o \ dlauum.o dopgtr.o dopmtr.o dorg2l.o dorg2r.o \
dorgbr.o dorghr.o dorgl2.o dorglq.o dorgql.o dorgqr.o dorgr2.o \ dorgbr.o dorghr.o dorgl2.o dorglq.o dorgql.o dorgqr.o dorgr2.o \
dorgrq.o dorgtr.o dorgtsqr.o dorm2l.o dorm2r.o dorm22.o \ dorgrq.o dorgtr.o dorm2l.o dorm2r.o dorm22.o \
dormbr.o dormhr.o dorml2.o dormlq.o dormql.o dormqr.o dormr2.o \ dormbr.o dormhr.o dorml2.o dormlq.o dormql.o dormqr.o dormr2.o \
dormr3.o dormrq.o dormrz.o dormtr.o dpbcon.o dpbequ.o dpbrfs.o \ dormr3.o dormrq.o dormrz.o dormtr.o dpbcon.o dpbequ.o dpbrfs.o \
dpbstf.o dpbsv.o dpbsvx.o \ dpbstf.o dpbsv.o dpbsvx.o \
@ -257,11 +253,9 @@ DLASRC = dbdsvdx.o dgbbrd.o dgbcon.o dgbequ.o dgbrfs.o dgbsv.o \
dgetsls.o dgeqr.o dlatsqr.o dlamtsqr.o dgemqr.o \ dgetsls.o dgeqr.o dlatsqr.o dlamtsqr.o dgemqr.o \
dgelq.o dlaswlq.o dlamswlq.o dgemlq.o \ dgelq.o dlaswlq.o dlamswlq.o dgemlq.o \
dtplqt.o dtplqt2.o dtpmlqt.o \ dtplqt.o dtplqt2.o dtpmlqt.o \
dorhr_col.o dlaorhr_col_getrfnp.o dlaorhr_col_getrfnp2.o \
dsytrd_2stage.o dsytrd_sy2sb.o dsytrd_sb2st.o dsb2st_kernels.o \ dsytrd_2stage.o dsytrd_sy2sb.o dsytrd_sb2st.o dsb2st_kernels.o \
dsyevd_2stage.o dsyev_2stage.o dsyevx_2stage.o dsyevr_2stage.o \ dsyevd_2stage.o dsyev_2stage.o dsyevx_2stage.o dsyevr_2stage.o \
dsbev_2stage.o dsbevx_2stage.o dsbevd_2stage.o dsygv_2stage.o \ dsbev_2stage.o dsbevx_2stage.o dsbevd_2stage.o dsygv_2stage.o \
dgesvdq.o dcombssq.o \
DEPRECATED/dgegs.o DEPRECATED/dgegv.o \ DEPRECATED/dgegs.o DEPRECATED/dgegv.o \
DEPRECATED/dgeqpf.o DEPRECATED/dgelsx.o DEPRECATED/dggsvd.o \ DEPRECATED/dgeqpf.o DEPRECATED/dgelsx.o DEPRECATED/dggsvd.o \
DEPRECATED/dggsvp.o DEPRECATED/dlahrd.o DEPRECATED/dlatzm.o DEPRECATED/dtzrqf.o DEPRECATED/dggsvp.o DEPRECATED/dlahrd.o DEPRECATED/dlatzm.o DEPRECATED/dtzrqf.o
@ -338,7 +332,7 @@ ZLASRC = zbdsqr.o zgbbrd.o zgbcon.o zgbequ.o zgbrfs.o zgbsv.o zgbsvx.o \
ztptrs.o ztrcon.o ztrevc.o ztrevc3.o ztrexc.o ztrrfs.o ztrsen.o ztrsna.o \ ztptrs.o ztrcon.o ztrevc.o ztrevc3.o ztrexc.o ztrrfs.o ztrsen.o ztrsna.o \
ztrsyl.o ztrti2.o ztrtri.o ztrtrs.o ztzrzf.o zung2l.o \ ztrsyl.o ztrti2.o ztrtri.o ztrtrs.o ztzrzf.o zung2l.o \
zung2r.o zungbr.o zunghr.o zungl2.o zunglq.o zungql.o zungqr.o zungr2.o \ zung2r.o zungbr.o zunghr.o zungl2.o zunglq.o zungql.o zungqr.o zungr2.o \
zungrq.o zungtr.o zungtsqr.o zunm2l.o zunm2r.o zunmbr.o zunmhr.o zunml2.o zunm22.o \ zungrq.o zungtr.o zunm2l.o zunm2r.o zunmbr.o zunmhr.o zunml2.o zunm22.o \
zunmlq.o zunmql.o zunmqr.o zunmr2.o zunmr3.o zunmrq.o zunmrz.o \ zunmlq.o zunmql.o zunmqr.o zunmr2.o zunmr3.o zunmrq.o zunmrz.o \
zunmtr.o zupgtr.o \ zunmtr.o zupgtr.o \
zupmtr.o izmax1.o dzsum1.o zstemr.o \ zupmtr.o izmax1.o dzsum1.o zstemr.o \
@ -354,11 +348,9 @@ ZLASRC = zbdsqr.o zgbbrd.o zgbcon.o zgbequ.o zgbrfs.o zgbsv.o zgbsvx.o \
zgelqt.o zgelqt3.o zgemlqt.o \ zgelqt.o zgelqt3.o zgemlqt.o \
zgetsls.o zgeqr.o zlatsqr.o zlamtsqr.o zgemqr.o \ zgetsls.o zgeqr.o zlatsqr.o zlamtsqr.o zgemqr.o \
zgelq.o zlaswlq.o zlamswlq.o zgemlq.o \ zgelq.o zlaswlq.o zlamswlq.o zgemlq.o \
zunhr_col.o zlaunhr_col_getrfnp.o zlaunhr_col_getrfnp2.o \
zhetrd_2stage.o zhetrd_he2hb.o zhetrd_hb2st.o zhb2st_kernels.o \ zhetrd_2stage.o zhetrd_he2hb.o zhetrd_hb2st.o zhb2st_kernels.o \
zheevd_2stage.o zheev_2stage.o zheevx_2stage.o zheevr_2stage.o \ zheevd_2stage.o zheev_2stage.o zheevx_2stage.o zheevr_2stage.o \
zhbev_2stage.o zhbevx_2stage.o zhbevd_2stage.o zhegv_2stage.o \ zhbev_2stage.o zhbevx_2stage.o zhbevd_2stage.o zhegv_2stage.o \
zgesvdq.o \
SCLAUX = sbdsdc.o \ SCLAUX = sbdsdc.o \
sbdsqr.o sdisna.o slabad.o slacpy.o sladiv.o slae2.o slaebz.o \ sbdsqr.o sdisna.o slabad.o slacpy.o sladiv.o slae2.o slaebz.o \
@ -450,29 +442,29 @@ ALLXOBJ=$(SXLASRC) $(DXLASRC) $(CXLASRC) $(ZXLASRC) $(ALLXAUX)
endif endif
static: $(ALLOBJ) $(ALLXOBJ) static: $(ALLOBJ) $(ALLXOBJ)
ifeq "$(SYMBOLSUFFIX)" "" ifeq "$(SYMBOLPREFIX)" ""
ar ruv liblapack.a $(ALLOBJ) $(ALLXOBJ) ar ruv liblapack.a $(ALLOBJ) $(ALLXOBJ)
ranlib liblapack.a ranlib liblapack.a
else else
ar ruv liblapack$(SYMBOLSUFFIX).a $(ALLOBJ) $(ALLXOBJ) ar ruv liblapack$(SYMBOLPREFIX).a $(ALLOBJ) $(ALLXOBJ)
ranlib liblapack$(SYMBOLSUFFIX).a ranlib liblapack$(SYMBOLPREFIX).a
for i in `nm liblapack$(SYMBOLSUFFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > lapack-static-prefix.def.dirty for i in `nm liblapack$(SYMBOLPREFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > lapack-static-prefix.def.dirty
sort -n lapack-static-prefix.def.dirty | uniq > lapack-static-prefix.def sort -n lapack-static-prefix.def.dirty | uniq > lapack-static-prefix.def
$(OBJCOPY) --redefine-syms lapack-static-prefix.def liblapack$(SYMBOLSUFFIX).a liblapack$(SYMBOLSUFFIX).a.fixed $(OBJCOPY) --redefine-syms lapack-static-prefix.def liblapack$(SYMBOLPREFIX).a liblapack$(SYMBOLPREFIX).a.fixed
rm -rf liblapack$(SYMBOLSUFFIX).a rm -rf liblapack$(SYMBOLPREFIX).a
mv liblapack$(SYMBOLSUFFIX).a.fixed liblapack$(SYMBOLSUFFIX).a mv liblapack$(SYMBOLPREFIX).a.fixed liblapack$(SYMBOLPREFIX).a
endif endif
shared: $(ALLOBJ) $(ALLXOBJ) shared: $(ALLOBJ) $(ALLXOBJ)
ifeq "$(SYMBOLSUFFIX)" "" ifeq "$(SYMBOLPREFIX)" ""
# No renaming needed # No renaming needed
cc $(CFLAGS) -shared -Wl,-soname,liblapack.so.@SHORTVER@ -o liblapack.so.@LONGVER@ $(ALLOBJ) $(ALLXOBJ) $(LDFLAGS) -L.. -lblas -lm -lgfortran -lc cc $(CFLAGS) -shared -Wl,-soname,liblapack.so.@SHORTVER@ -o liblapack.so.@LONGVER@ $(ALLOBJ) $(ALLXOBJ) $(LDFLAGS) -L.. -lblas -lm -lgfortran -lc
else else
cc $(CFLAGS) -shared -Wl,-soname,liblapack$(SYMBOLSUFFIX).so.@SHORTVER@ -o liblapack$(SYMBOLSUFFIX).so.@LONGVER@ $(ALLOBJ) $(ALLXOBJ) $(LDFLAGS) -L.. -lblas -lm -lgfortran -lc cc $(CFLAGS) -shared -Wl,-soname,liblapack$(SYMBOLPREFIX).so.@SHORTVER@ -o liblapack$(SYMBOLPREFIX).so.@LONGVER@ $(ALLOBJ) $(ALLXOBJ) $(LDFLAGS) -L.. -lblas -lm -lgfortran -lc
# generate a list of all symbols in shared library and rename with SYMBOLSUFFIX # generate a list of all symbols in shared library and rename with SYMBOLPREFIX
for i in `readelf -Ws liblapack$(SYMBOLSUFFIX).so.@LONGVER@ | awk '{print $$8}' | grep -v GLIBC |grep -v GFORTRAN |grep -v "Name" `; do echo "$$i" "64_$$i"; done > lapack-prefix.def.dirty for i in `readelf -Ws liblapack$(SYMBOLPREFIX).so.@LONGVER@ | awk '{print $$8}' | grep -v GLIBC |grep -v GFORTRAN |grep -v "Name" `; do echo "$$i" "64_$$i"; done > lapack-prefix.def.dirty
sort -n lapack-prefix.def.dirty | uniq > lapack-prefix.def sort -n lapack-prefix.def.dirty | uniq > lapack-prefix.def
$(OBJCOPY) --redefine-syms lapack-prefix.def liblapack$(SYMBOLSUFFIX).so.@LONGVER@ liblapack$(SYMBOLSUFFIX).so.@LONGVER@.fixed $(OBJCOPY) --redefine-syms lapack-prefix.def liblapack$(SYMBOLPREFIX).so.@LONGVER@ liblapack$(SYMBOLPREFIX).so.@LONGVER@.fixed
rm -rf liblapack$(SYMBOLSUFFIX).so.@LONGVER@ rm -rf liblapack$(SYMBOLPREFIX).so.@LONGVER@
mv liblapack$(SYMBOLSUFFIX).so.@LONGVER@.fixed liblapack$(SYMBOLSUFFIX).so.@LONGVER@ mv liblapack$(SYMBOLPREFIX).so.@LONGVER@.fixed liblapack$(SYMBOLPREFIX).so.@LONGVER@
endif endif

View File

@ -14,7 +14,7 @@ diff -up lapack-3.7.1/LAPACKE/Makefile.shared lapack-3.7.1/LAPACKE/Makefile
cp $< $@ cp $< $@
+shlib: lapacke +shlib: lapacke
+ $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LDFLAGS) $(LIBS) -lgfortran -lc -L.. -llapack + $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LDFLAGS) $(LIBS) -lgfortran -lc
+ +
lapacke_example: lapacke lapacke_example: lapacke
$(MAKE) -C example $(MAKE) -C example

View File

@ -5,8 +5,8 @@ diff -up lapack-3.7.1/LAPACKE/Makefile.tmglib lapack-3.7.1/LAPACKE/Makefile
cp $< $@ cp $< $@
shlib: lapacke shlib: lapacke
- $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LDFLAGS) $(LIBS) -lgfortran -lc -L.. -llapack - $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LDFLAGS) $(LIBS) -lgfortran -lc
+ $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LDFLAGS) $(LIBS) -lgfortran -lc -L.. -llapack ../TESTING/MATGEN/*.o + $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LDFLAGS) $(LIBS) -lgfortran -lc ../TESTING/MATGEN/*.o
lapacke_example: lapacke lapacke_example: lapacke
$(MAKE) -C example $(MAKE) -C example

View File

@ -1,5 +1,5 @@
%global shortver 3 %global shortver 3
%global mediumver %{shortver}.9 %global mediumver %{shortver}.8
%if %{?__isa_bits:%{__isa_bits}}%{!?__isa_bits:32} == 64 %if %{?__isa_bits:%{__isa_bits}}%{!?__isa_bits:32} == 64
%global arch64 1 %global arch64 1
@ -10,28 +10,27 @@
Summary: Numerical linear algebra package libraries Summary: Numerical linear algebra package libraries
Name: lapack Name: lapack
Version: %{mediumver}.0 Version: %{mediumver}.0
Release: 10%{?dist} Release: 8%{?dist}
License: BSD License: BSD
Group: System Environment/Libraries
URL: http://www.netlib.org/lapack/ URL: http://www.netlib.org/lapack/
Source0: https://github.com/Reference-LAPACK/lapack/archive/v%{version}.tar.gz Source0: http://www.netlib.org/lapack/lapack-%{version}.tar.gz
Source1: http://www.netlib.org/lapack/manpages.tgz Source1: http://www.netlib.org/lapack/manpages.tgz
Source2: Makefile.blas Source2: Makefile.blas
Source3: Makefile.lapack Source3: Makefile.lapack
Source4: http://www.netlib.org/lapack/lapackqref.ps Source4: http://www.netlib.org/lapack/lapackqref.ps
Source5: http://www.netlib.org/blas/blasqr.ps Source5: http://www.netlib.org/blas/blasqr.ps
Source6: Makefile.cblas Source6: Makefile.cblas
Patch3: lapack-3.9.0-make.inc.patch Patch3: lapack-3.7.1-make.inc.patch
Patch4: lapack-3.9.0-lapacke-shared.patch Patch4: lapack-3.7.1-lapacke-shared.patch
Patch5: lapack-3.4.1-lapacke-disable-testing-functions.patch Patch5: lapack-3.4.1-lapacke-disable-testing-functions.patch
Patch6: lapack-3.5.0-lapacke-matgenobj.patch Patch6: lapack-3.5.0-lapacke-matgenobj.patch
Patch7: lapack-3.9.0-lapacke-tmglib.patch Patch7: lapack-3.7.1-lapacke-tmglib.patch
# Bugzilla 1814756 Patch8: lapack-3.8.0-missing-aawork.patch
Patch8: https://github.com/Reference-LAPACK/lapack/commit/87536aa3c8bb0af00f66088fb6ac05d87509e011.patch
BuildRequires: gcc-gfortran, gawk BuildRequires: gcc-gfortran, gawk
BuildRequires: make
Requires: blas%{?_isa} = %{version}-%{release} Requires: blas%{?_isa} = %{version}-%{release}
%global _description_lapack %{expand: %description
LAPACK (Linear Algebra PACKage) is a standard library for numerical LAPACK (Linear Algebra PACKage) is a standard library for numerical
linear algebra. LAPACK provides routines for solving systems of linear algebra. LAPACK provides routines for solving systems of
simultaneous linear equations, least-squares solutions of linear simultaneous linear equations, least-squares solutions of linear
@ -43,18 +42,19 @@ are also included. LAPACK can handle dense and banded matrices, but
not general sparse matrices. Similar functionality is provided for not general sparse matrices. Similar functionality is provided for
real and complex matrices in both single and double precision. LAPACK real and complex matrices in both single and double precision. LAPACK
is coded in Fortran90 and built with gcc. is coded in Fortran90 and built with gcc.
}
%global _description_blas %{expand: %package devel
BLAS (Basic Linear Algebra Subprograms) is a standard library which Summary: LAPACK development libraries
provides a number of basic algorithms for numerical algebra. Group: Development/Libraries
} Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: blas-devel%{?_isa} = %{version}-%{release}
%description %_description_lapack
%description devel
LAPACK development libraries (shared).
%package static %package static
Summary: LAPACK static libraries Summary: LAPACK static libraries
Group: Development/Libraries
Requires: lapack-devel%{?_isa} = %{version}-%{release} Requires: lapack-devel%{?_isa} = %{version}-%{release}
%description static %description static
@ -62,79 +62,93 @@ LAPACK static libraries.
%package -n blas %package -n blas
Summary: The Basic Linear Algebra Subprograms library Summary: The Basic Linear Algebra Subprograms library
Group: System Environment/Libraries
%description -n blas %_description_blas %description -n blas
BLAS (Basic Linear Algebra Subprograms) is a standard library which
provides a number of basic algorithms for numerical algebra.
%package -n blas-devel
Summary: BLAS development libraries
Group: Development/Libraries
Requires: blas%{?_isa} = %{version}-%{release}
Requires: gcc-gfortran
%description -n blas-devel
BLAS development libraries (shared).
%package -n blas-static %package -n blas-static
Summary: BLAS static libraries Summary: BLAS static libraries
Group: Development/Libraries
Requires: blas-devel%{?_isa} = %{version}-%{release} Requires: blas-devel%{?_isa} = %{version}-%{release}
%description -n blas-static %description -n blas-static
BLAS static libraries. BLAS static libraries.
%if 0%{?arch64} %if 0%{?arch64}
%package devel
Summary: LAPACK development libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}64%{?_isa} = %{version}-%{release}
Requires: %{name}64_%{?_isa} = %{version}-%{release}
Requires: blas-devel%{?_isa} = %{version}-%{release}
%description devel
LAPACK development libraries (shared).
%package -n lapack64 %package -n lapack64
Summary: Numerical linear algebra package libraries Summary: Numerical linear algebra package libraries
Group: System Environment/Libraries
Requires: blas64%{?_isa} = %{version}-%{release} Requires: blas64%{?_isa} = %{version}-%{release}
%description -n lapack64 %_description_lapack %description -n lapack64
LAPACK (Linear Algebra PACKage) is a standard library for numerical
linear algebra. LAPACK provides routines for solving systems of
simultaneous linear equations, least-squares solutions of linear
systems of equations, eigenvalue problems, and singular value
problems. Associated matrix factorizations (LU, Cholesky, QR, SVD,
Schur, and generalized Schur) and related computations (i.e.,
reordering of Schur factorizations and estimating condition numbers)
are also included. LAPACK can handle dense and banded matrices, but
not general sparse matrices. Similar functionality is provided for
real and complex matrices in both single and double precision. LAPACK
is coded in Fortran90 and built with gcc.
This build has 64bit INTEGER support. This build has 64bit INTEGER support.
%package -n lapack64-devel
Summary: LAPACK development libraries (64bit INTEGER)
Group: Development/Libraries
Requires: lapack64%{?_isa} = %{version}-%{release}
Requires: lapack-devel%{?_isa} = %{version}-%{release}
Requires: blas64-devel%{?_isa} = %{version}-%{release}
%description -n lapack64-devel
LAPACK development libraries (shared, 64bit INTEGER).
%package -n lapack64-static
Summary: LAPACK static libraries (64bit INTEGER)
Group: Development/Libraries
Requires: lapack64-devel%{?_isa} = %{version}-%{release}
%description -n lapack64-static
LAPACK static libraries (64bit INTEGER).
%package -n blas64 %package -n blas64
Summary: The Basic Linear Algebra Subprograms library (64bit INTEGER) Summary: The Basic Linear Algebra Subprograms library (64bit INTEGER)
Group: System Environment/Libraries
%description -n blas64 %_description_blas %description -n blas64
This build has 64bit INTEGER support. BLAS (Basic Linear Algebra Subprograms) is a standard library which
provides a number of basic algorithms for numerical algebra. This build
has 64bit INTEGER support.
%package -n lapack64_ %package -n blas64-devel
Summary: Numerical linear algebra package libraries
Requires: blas64_%{?_isa} = %{version}-%{release}
%description -n lapack64_ %_description_lapack
This build has 64bit INTEGER support and a symbol name suffix.
%package -n blas64_
Summary: The Basic Linear Algebra Subprograms library (64bit INTEGER)
%description -n blas64_ %_description_blas
This build has 64bit INTEGER support and a symbol name suffix.
%package -n blas-devel
Summary: BLAS development libraries Summary: BLAS development libraries
Requires: blas%{?_isa} = %{version}-%{release} Group: Development/Libraries
Requires: blas64%{?_isa} = %{version}-%{release} Requires: blas64%{?_isa} = %{version}-%{release}
Requires: blas64_%{?_isa} = %{version}-%{release}
Requires: gcc-gfortran
%description -n blas-devel
BLAS development libraries (shared).
%else
%package devel
Summary: LAPACK development libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: blas-devel%{?_isa} = %{version}-%{release} Requires: blas-devel%{?_isa} = %{version}-%{release}
%description devel
LAPACK development libraries (shared).
%package -n blas-devel
Summary: BLAS development libraries
Requires: blas%{?_isa} = %{version}-%{release}
Requires: gcc-gfortran Requires: gcc-gfortran
%description -n blas-devel %description -n blas64-devel
BLAS development libraries (shared). BLAS development libraries (shared).
%package -n blas64-static
Summary: BLAS static libraries (64bit INTEGER)
Group: Development/Libraries
Requires: blas64-devel%{?_isa} = %{version}-%{release}
%description -n blas64-static
BLAS static libraries (64bit INTEGER).
%endif %endif
%prep %prep
@ -145,7 +159,7 @@ BLAS development libraries (shared).
# %patch5 -p1 -b .disable-functions # %patch5 -p1 -b .disable-functions
# %patch6 -p1 -b .matgenobj # %patch6 -p1 -b .matgenobj
%patch7 -p1 -b .tmglib %patch7 -p1 -b .tmglib
%patch8 -p1 -b .bz1814756 %patch8 -p1 -b .missing-aawork
mkdir manpages mkdir manpages
mv man/ manpages/ mv man/ manpages/
@ -165,7 +179,7 @@ sed -i "s|@LONGVER@|%{version}|g" LAPACKE/Makefile
sed -i "s|@LONGVER@|%{version}|g" CBLAS/src/Makefile sed -i "s|@LONGVER@|%{version}|g" CBLAS/src/Makefile
%build %build
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -frecursive --no-optimize-sibling-calls" RPM_OPT_FLAGS="$RPM_OPT_FLAGS -frecursive"
RPM_OPT_O_FLAGS=$(echo $RPM_OPT_FLAGS | sed 's|-O2|-O0|') RPM_OPT_O_FLAGS=$(echo $RPM_OPT_FLAGS | sed 's|-O2|-O0|')
export FC=gfortran export FC=gfortran
@ -181,26 +195,17 @@ cp libblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/
%if 0%{?arch64} %if 0%{?arch64}
make clean make clean
FFLAGS="$RPM_OPT_O_FLAGS -fdefault-integer-8" make dcabs1.o FFLAGS="$RPM_OPT_O_FLAGS -fdefault-integer-8" make dcabs1.o
FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" make static SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" make static
cp libblas.a ${RPM_BUILD_DIR}/%{name}-%{version}/libblas64.a
make clean
FFLAGS="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" make dcabs1.o
FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" LDFLAGS="%{build_ldflags}" make shared
cp libblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/libblas64.so.%{version}
make clean
FFLAGS="$RPM_OPT_O_FLAGS -fdefault-integer-8" make dcabs1.o
SYMBOLSUFFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" make static
cp libblas64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/libblas64_.a cp libblas64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/libblas64_.a
make clean make clean
FFLAGS="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" make dcabs1.o FFLAGS="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" make dcabs1.o
SYMBOLSUFFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" LDFLAGS="%{build_ldflags}" make shared SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" LDFLAGS="%{build_ldflags}" make shared
cp libblas64_.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/libblas64_.so.%{version} cp libblas64_.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/libblas64_.so.%{version}
%endif %endif
popd popd
ln -s libblas.so.%{version} libblas.so ln -s libblas.so.%{version} libblas.so
%if 0%{?arch64} %if 0%{?arch64}
ln -s libblas64.so.%{version} libblas64.so
ln -s libblas64_.so.%{version} libblas64_.so ln -s libblas64_.so.%{version} libblas64_.so
%endif %endif
@ -214,29 +219,22 @@ FFLAGS="$RPM_OPT_FLAGS -fPIC" CFLAGS="$RPM_OPT_FLAGS -fPIC -I../include" LDFLAGS
cp libcblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/ cp libcblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/
%if 0%{?arch64} %if 0%{?arch64}
make clean make clean
FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -I../include" make static SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -I../include" make static
cp libcblas.a ${RPM_BUILD_DIR}/%{name}-%{version}/libcblas64.a
make clean
FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -I../include" LDFLAGS="%{build_ldflags}" make shared
cp libcblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/libcblas64.so.%{version}
make clean
SYMBOLSUFFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -I../include" make static
cp libcblas64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/libcblas64_.a cp libcblas64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/libcblas64_.a
make clean make clean
SYMBOLSUFFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -I../include" LDFLAGS="%{build_ldflags}" make shared SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -I../include" LDFLAGS="%{build_ldflags}" make shared
cp libcblas64_.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/libcblas64_.so.%{version} cp libcblas64_.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/libcblas64_.so.%{version}
%endif %endif
popd popd
ln -s libcblas.so.%{version} libcblas.so ln -s libcblas.so.%{version} libcblas.so
%if 0%{?arch64} %if 0%{?arch64}
ln -s libcblas64.so.%{version} libcblas64.so
ln -s libcblas64_.so.%{version} libcblas64_.so ln -s libcblas64_.so.%{version} libcblas64_.so
%endif %endif
# Build the static dlamch, dsecnd, lsame, second, slamch bits # Build the static dlamch, dsecnd, lsame, second, slamch bits
pushd INSTALL pushd INSTALL
make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS" FFLAGS="$RPM_OPT_FLAGS" make NOOPT="$RPM_OPT_O_FLAGS" OPTS="$RPM_OPT_FLAGS"
popd popd
# Build the static lapack library # Build the static lapack library
@ -248,7 +246,7 @@ popd
# Build the static with pic dlamch, dsecnd, lsame, second, slamch bits # Build the static with pic dlamch, dsecnd, lsame, second, slamch bits
pushd INSTALL pushd INSTALL
make clean make clean
make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fPIC" FFLAGS="$RPM_OPT_FLAGS -fPIC" make NOOPT="$RPM_OPT_O_FLAGS -fPIC" OPTS="$RPM_OPT_FLAGS -fPIC"
popd popd
# Build the static with pic lapack library # Build the static with pic lapack library
@ -261,61 +259,33 @@ popd
%if 0%{?arch64} %if 0%{?arch64}
# Build the static dlamch, dsecnd, lsame, second, slamch bits # Build the static dlamch, dsecnd, lsame, second, slamch bits
pushd INSTALL pushd INSTALL
make clean make NOOPT="$RPM_OPT_O_FLAGS -fdefault-integer-8" OPTS="$RPM_OPT_FLAGS -fdefault-integer-8"
make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fdefault-integer-8" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8"
popd popd
# Build the static lapack library # Build the static lapack library
pushd SRC pushd SRC
make clean make SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" static
make FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" static
cp liblapack.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64.a
popd
# Build the static with pic dlamch, dsecnd, lsame, second, slamch bits (64bit INTEGER)
pushd INSTALL
make clean
make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8"
popd
# Build the static with pic lapack library (64bit INTEGER)
pushd SRC
make clean
make FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" static
cp liblapack.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack_pic64.a
popd
# Build the static dlamch, dsecnd, lsame, second, slamch bits
pushd INSTALL
make clean
make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fdefault-integer-8" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8"
popd
# Build the static lapack library
pushd SRC
make clean
make SYMBOLSUFFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" static
cp liblapack64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64_.a cp liblapack64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64_.a
popd popd
# Build the static with pic dlamch, dsecnd, lsame, second, slamch bits (64bit INTEGER) # Build the static with pic dlamch, dsecnd, lsame, second, slamch bits (64bit INTEGER)
pushd INSTALL pushd INSTALL
make clean make clean
make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" make NOOPT="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" OPTS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8"
popd popd
# Build the static with pic lapack library (64bit INTEGER) # Build the static with pic lapack library (64bit INTEGER)
pushd SRC pushd SRC
make clean make clean
make SYMBOLSUFFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" static make SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" static
cp liblapack64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack_pic64_.a cp liblapack64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64_pic.a
popd popd
%endif %endif
# Build the shared dlamch, dsecnd, lsame, second, slamch bits # Build the shared dlamch, dsecnd, lsame, second, slamch bits
pushd INSTALL pushd INSTALL
make clean make clean
make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fPIC" FFLAGS="$RPM_OPT_FLAGS -fPIC" make NOOPT="$RPM_OPT_O_FLAGS -fPIC" OPTS="$RPM_OPT_FLAGS -fPIC"
popd popd
# Build the shared lapack library # Build the shared lapack library
@ -329,64 +299,47 @@ popd
# Build the shared dlamch, dsecnd, lsame, second, slamch bits # Build the shared dlamch, dsecnd, lsame, second, slamch bits
pushd INSTALL pushd INSTALL
make clean make clean
make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" make NOOPT="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" OPTS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8"
popd popd
# Build the shared lapack library # Build the shared lapack library
pushd SRC pushd SRC
make clean make clean
make FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" LDFLAGS="%{build_ldflags}" shared make SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" LDFLAGS="%{build_ldflags}" shared
cp liblapack.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64.so.%{version}
popd
# Build the shared dlamch, dsecnd, lsame, second, slamch bits
pushd INSTALL
make clean
make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8"
popd
# Build the shared lapack library
pushd SRC
make clean
make SYMBOLSUFFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" LDFLAGS="%{build_ldflags}" shared
cp liblapack64_.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64_.so.%{version} cp liblapack64_.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64_.so.%{version}
popd popd
%endif %endif
ln -s liblapack.so.%{version} liblapack.so ln -s liblapack.so.%{version} liblapack.so
%if 0%{?arch64} %if 0%{?arch64}
ln -s liblapack64.so.%{version} liblapack64.so
ln -s liblapack64_.so.%{version} liblapack64_.so ln -s liblapack64_.so.%{version} liblapack64_.so
%endif %endif
# Build the lapacke libraries # Build the lapacke libraries
make FFLAGS="$RPM_OPT_FLAGS -fPIC" FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fPIC" tmglib make OPTS="$RPM_OPT_FLAGS -fPIC" NOOPT="$RPM_OPT_O_FLAGS -fPIC" tmglib
pushd LAPACKE pushd LAPACKE
make clean make clean
make CFLAGS="$RPM_OPT_FLAGS" BUILD_DEPRECATED="true" lapacke make CFLAGS="$RPM_OPT_FLAGS" BUILD_DEPRECATED="true" lapacke
make clean make clean
make CFLAGS="$RPM_OPT_FLAGS -fPIC" BUILD_DEPRECATED="true" LDFLAGS="%{build_ldflags}" shlib make CFLAGS="$RPM_OPT_FLAGS -fPIC" BUILD_DEPRECATED="true" LDFLAGS="%{build_ldflags}" shlib
# cp liblapacke.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/ cp liblapacke.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/
popd popd
cp -p %{SOURCE4} lapackqref.ps cp -p %{SOURCE4} lapackqref.ps
cp -p %{SOURCE5} blasqr.ps cp -p %{SOURCE5} blasqr.ps
%install %install
mkdir -p %{buildroot}%{_libdir} mkdir -p ${RPM_BUILD_ROOT}%{_libdir}
mkdir -p %{buildroot}%{_mandir}/man3 mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man3
chmod 755 %{buildroot}%{_mandir}/man3 chmod 755 ${RPM_BUILD_ROOT}%{_mandir}/man3
for f in liblapack.so.%{version} libblas.so.%{version} libcblas.so.%{version} liblapacke.so.%{version} \ for f in liblapack.so.%{version} libblas.so.%{version} libcblas.so.%{version} liblapacke.so.%{version} libblas.a libcblas.a liblapack.a liblapack_pic.a liblapacke.a; do
libblas.a libcblas.a liblapack.a liblapack_pic.a liblapacke.a; do
cp -f $f ${RPM_BUILD_ROOT}%{_libdir}/$f cp -f $f ${RPM_BUILD_ROOT}%{_libdir}/$f
done done
%if 0%{?arch64} %if 0%{?arch64}
for f in liblapack64.so.%{version} libblas64.so.%{version} libcblas64.so.%{version} \ for f in liblapack64_.so.%{version} libblas64_.so.%{version} libcblas64_.so.%{version} libblas64_.a libcblas64_.a liblapack64_.a liblapack64_pic.a; do
liblapack64_.so.%{version} libblas64_.so.%{version} libcblas64_.so.%{version} \
libblas64.a libcblas64.a liblapack64.a liblapack_pic64.a \
libblas64_.a libcblas64_.a liblapack64_.a liblapack_pic64_.a; do
cp -f $f ${RPM_BUILD_ROOT}%{_libdir}/$f cp -f $f ${RPM_BUILD_ROOT}%{_libdir}/$f
done done
%endif %endif
@ -436,12 +389,6 @@ pushd manpages/man/man3
rm -rf _Users_julie* rm -rf _Users_julie*
popd popd
#rhbz#2222868
pushd manpages/man/man3
mv MAX.3 lapack-MAX.3
mv MIN.3 lapack-MIN.3
popd
find manpages/man/man3 -type f -printf "%{_mandir}/man3/%f*\n" > lapackmans find manpages/man/man3 -type f -printf "%{_mandir}/man3/%f*\n" > lapackmans
cp -f manpages/blas/man/man3/* ${RPM_BUILD_ROOT}%{_mandir}/man3 cp -f manpages/blas/man/man3/* ${RPM_BUILD_ROOT}%{_mandir}/man3
@ -455,7 +402,7 @@ cp -a CBLAS/include/*.h %{buildroot}%{_includedir}/cblas/
mkdir -p %{buildroot}%{_includedir}/lapacke/ mkdir -p %{buildroot}%{_includedir}/lapacke/
cp -a LAPACKE/include/*.h %{buildroot}%{_includedir}/lapacke/ cp -a LAPACKE/include/*.h %{buildroot}%{_includedir}/lapacke/
pushd %{buildroot}%{_libdir} pushd ${RPM_BUILD_ROOT}%{_libdir}
ln -sf liblapack.so.%{version} liblapack.so ln -sf liblapack.so.%{version} liblapack.so
ln -sf liblapack.so.%{version} liblapack.so.%{shortver} ln -sf liblapack.so.%{version} liblapack.so.%{shortver}
ln -sf liblapack.so.%{version} liblapack.so.%{mediumver} ln -sf liblapack.so.%{version} liblapack.so.%{mediumver}
@ -469,15 +416,6 @@ ln -sf liblapacke.so.%{version} liblapacke.so
ln -sf liblapacke.so.%{version} liblapacke.so.%{shortver} ln -sf liblapacke.so.%{version} liblapacke.so.%{shortver}
ln -sf liblapacke.so.%{version} liblapacke.so.%{mediumver} ln -sf liblapacke.so.%{version} liblapacke.so.%{mediumver}
%if 0%{?arch64} %if 0%{?arch64}
ln -sf liblapack64.so.%{version} liblapack64.so
ln -sf liblapack64.so.%{version} liblapack64.so.%{shortver}
ln -sf liblapack64.so.%{version} liblapack64.so.%{mediumver}
ln -sf libblas64.so.%{version} libblas64.so
ln -sf libblas64.so.%{version} libblas64.so.%{shortver}
ln -sf libblas64.so.%{version} libblas64.so.%{mediumver}
ln -sf libcblas64.so.%{version} libcblas64.so
ln -sf libcblas64.so.%{version} libcblas64.so.%{shortver}
ln -sf libcblas64.so.%{version} libcblas64.so.%{mediumver}
ln -sf liblapack64_.so.%{version} liblapack64_.so ln -sf liblapack64_.so.%{version} liblapack64_.so
ln -sf liblapack64_.so.%{version} liblapack64_.so.%{shortver} ln -sf liblapack64_.so.%{version} liblapack64_.so.%{shortver}
ln -sf liblapack64_.so.%{version} liblapack64_.so.%{mediumver} ln -sf liblapack64_.so.%{version} liblapack64_.so.%{mediumver}
@ -498,11 +436,8 @@ sed -i 's|@CMAKE_INSTALL_FULL_INCLUDEDIR@|%{_includedir}|g' %{buildroot}%{_libdi
sed -i 's|@LAPACK_VERSION@|%{version}|g' %{buildroot}%{_libdir}/pkgconfig/lapack.pc sed -i 's|@LAPACK_VERSION@|%{version}|g' %{buildroot}%{_libdir}/pkgconfig/lapack.pc
%if 0%{?arch64} %if 0%{?arch64}
cp -a %{buildroot}%{_libdir}/pkgconfig/lapack.pc %{buildroot}%{_libdir}/pkgconfig/lapack64.pc cp -a %{buildroot}%{_libdir}/pkgconfig/lapack.pc %{buildroot}%{_libdir}/pkgconfig/lapack64.pc
sed -i 's|-llapack|-llapack64|g' %{buildroot}%{_libdir}/pkgconfig/lapack64.pc sed -i 's|-llapack|-llapack64_|g' %{buildroot}%{_libdir}/pkgconfig/lapack64.pc
sed -i 's|blas|blas64|g' %{buildroot}%{_libdir}/pkgconfig/lapack64.pc sed -i 's|blas|blas64|g' %{buildroot}%{_libdir}/pkgconfig/lapack64.pc
cp -a %{buildroot}%{_libdir}/pkgconfig/lapack.pc %{buildroot}%{_libdir}/pkgconfig/lapack64_.pc
sed -i 's|-llapack|-llapack64_|g' %{buildroot}%{_libdir}/pkgconfig/lapack64_.pc
sed -i 's|blas|blas64_|g' %{buildroot}%{_libdir}/pkgconfig/lapack64_.pc
%endif %endif
cp -a BLAS/blas.pc.in %{buildroot}%{_libdir}/pkgconfig/blas.pc cp -a BLAS/blas.pc.in %{buildroot}%{_libdir}/pkgconfig/blas.pc
sed -i 's|@CMAKE_INSTALL_FULL_LIBDIR@|%{_libdir}|g' %{buildroot}%{_libdir}/pkgconfig/blas.pc sed -i 's|@CMAKE_INSTALL_FULL_LIBDIR@|%{_libdir}|g' %{buildroot}%{_libdir}/pkgconfig/blas.pc
@ -510,9 +445,7 @@ sed -i 's|@CMAKE_INSTALL_FULL_INCLUDEDIR@|%{_includedir}|g' %{buildroot}%{_libdi
sed -i 's|@LAPACK_VERSION@|%{version}|g' %{buildroot}%{_libdir}/pkgconfig/blas.pc sed -i 's|@LAPACK_VERSION@|%{version}|g' %{buildroot}%{_libdir}/pkgconfig/blas.pc
%if 0%{?arch64} %if 0%{?arch64}
cp -a %{buildroot}%{_libdir}/pkgconfig/blas.pc %{buildroot}%{_libdir}/pkgconfig/blas64.pc cp -a %{buildroot}%{_libdir}/pkgconfig/blas.pc %{buildroot}%{_libdir}/pkgconfig/blas64.pc
sed -i 's|-lblas|-lblas64|g' %{buildroot}%{_libdir}/pkgconfig/blas64.pc sed -i 's|-lblas|-lblas64_|g' %{buildroot}%{_libdir}/pkgconfig/blas64.pc
cp -a %{buildroot}%{_libdir}/pkgconfig/blas.pc %{buildroot}%{_libdir}/pkgconfig/blas64_.pc
sed -i 's|-lblas|-lblas64_|g' %{buildroot}%{_libdir}/pkgconfig/blas64_.pc
%endif %endif
cp -a LAPACKE/lapacke.pc.in %{buildroot}%{_libdir}/pkgconfig/lapacke.pc cp -a LAPACKE/lapacke.pc.in %{buildroot}%{_libdir}/pkgconfig/lapacke.pc
sed -i 's|@CMAKE_INSTALL_FULL_LIBDIR@|%{_libdir}|g' %{buildroot}%{_libdir}/pkgconfig/lapacke.pc sed -i 's|@CMAKE_INSTALL_FULL_LIBDIR@|%{_libdir}|g' %{buildroot}%{_libdir}/pkgconfig/lapacke.pc
@ -524,23 +457,26 @@ sed -i 's|@CMAKE_INSTALL_FULL_INCLUDEDIR@|%{_includedir}/cblas|g' %{buildroot}%{
sed -i 's|@LAPACK_VERSION@|%{version}|g' %{buildroot}%{_libdir}/pkgconfig/cblas.pc sed -i 's|@LAPACK_VERSION@|%{version}|g' %{buildroot}%{_libdir}/pkgconfig/cblas.pc
%if 0%{?arch64} %if 0%{?arch64}
cp -a %{buildroot}%{_libdir}/pkgconfig/cblas.pc %{buildroot}%{_libdir}/pkgconfig/cblas64.pc cp -a %{buildroot}%{_libdir}/pkgconfig/cblas.pc %{buildroot}%{_libdir}/pkgconfig/cblas64.pc
sed -i 's|-lcblas|-lcblas64|g' %{buildroot}%{_libdir}/pkgconfig/cblas64.pc sed -i 's|-lcblas|-lcblas64_|g' %{buildroot}%{_libdir}/pkgconfig/cblas64.pc
sed -i 's|Requires.private: blas|Requires.private: blas64|g' %{buildroot}%{_libdir}/pkgconfig/cblas64.pc sed -i 's|Requires.private: blas|Requires.private: blas64|g' %{buildroot}%{_libdir}/pkgconfig/cblas64.pc
cp -a %{buildroot}%{_libdir}/pkgconfig/cblas.pc %{buildroot}%{_libdir}/pkgconfig/cblas64_.pc
sed -i 's|-lcblas|-lcblas64_|g' %{buildroot}%{_libdir}/pkgconfig/cblas64_.pc
sed -i 's|Requires.private: blas|Requires.private: blas64_|g' %{buildroot}%{_libdir}/pkgconfig/cblas64_.pc
%endif %endif
%ldconfig_scriptlets %post -p /sbin/ldconfig
%ldconfig_scriptlets -n blas %postun -p /sbin/ldconfig
%post -n blas -p /sbin/ldconfig
%postun -n blas -p /sbin/ldconfig
%if 0%{?arch64} %if 0%{?arch64}
%ldconfig_scriptlets -n lapack64 %post -n lapack64 -p /sbin/ldconfig
%ldconfig_scriptlets -n lapack64_
%ldconfig_scriptlets -n blas64 %postun -n lapack64 -p /sbin/ldconfig
%ldconfig_scriptlets -n blas64_
%post -n blas64 -p /sbin/ldconfig
%postun -n blas64 -p /sbin/ldconfig
%endif %endif
%files -f lapackmans %files -f lapackmans
@ -554,23 +490,11 @@ sed -i 's|Requires.private: blas|Requires.private: blas64_|g' %{buildroot}%{_lib
%{_libdir}/liblapacke.so %{_libdir}/liblapacke.so
%{_libdir}/pkgconfig/lapack.pc %{_libdir}/pkgconfig/lapack.pc
%{_libdir}/pkgconfig/lapacke.pc %{_libdir}/pkgconfig/lapacke.pc
%if 0%{?arch64}
%{_libdir}/liblapack64.so
%{_libdir}/pkgconfig/lapack64.pc
%{_libdir}/liblapack64_.so
%{_libdir}/pkgconfig/lapack64_.pc
%endif
%files static %files static
%{_libdir}/liblapack.a %{_libdir}/liblapack.a
%{_libdir}/liblapack_pic.a %{_libdir}/liblapack_pic.a
%{_libdir}/liblapacke.a %{_libdir}/liblapacke.a
%if 0%{?arch64}
%{_libdir}/liblapack64.a
%{_libdir}/liblapack_pic64.a
%{_libdir}/liblapack64_.a
%{_libdir}/liblapack_pic64_.a
%endif
%files -n blas -f blasmans %files -n blas -f blasmans
%doc blasqr.ps LICENSE %doc blasqr.ps LICENSE
@ -583,96 +507,41 @@ sed -i 's|Requires.private: blas|Requires.private: blas64_|g' %{buildroot}%{_lib
%{_libdir}/libcblas.so %{_libdir}/libcblas.so
%{_libdir}/pkgconfig/blas.pc %{_libdir}/pkgconfig/blas.pc
%{_libdir}/pkgconfig/cblas.pc %{_libdir}/pkgconfig/cblas.pc
%if 0%{?arch64}
%{_libdir}/libblas64.so
%{_libdir}/libcblas64.so
%{_libdir}/pkgconfig/blas64.pc
%{_libdir}/pkgconfig/cblas64.pc
%{_libdir}/libblas64_.so
%{_libdir}/libcblas64_.so
%{_libdir}/pkgconfig/blas64_.pc
%{_libdir}/pkgconfig/cblas64_.pc
%endif
%files -n blas-static %files -n blas-static
%{_libdir}/libblas.a %{_libdir}/libblas.a
%{_libdir}/libcblas.a %{_libdir}/libcblas.a
%if 0%{?arch64}
%{_libdir}/libblas64.a
%{_libdir}/libcblas64.a
%{_libdir}/libblas64_.a
%{_libdir}/libcblas64_.a
%endif
%if 0%{?arch64} %if 0%{?arch64}
%files -n blas64 %files -n blas64
%doc LICENSE %doc LICENSE
%{_libdir}/libblas64.so.*
%{_libdir}/libcblas64.so.*
%files -n lapack64
%doc README.md LICENSE
%{_libdir}/liblapack64.so.*
%files -n blas64_
%doc LICENSE
%{_libdir}/libblas64_.so.* %{_libdir}/libblas64_.so.*
%{_libdir}/libcblas64_.so.* %{_libdir}/libcblas64_.so.*
%files -n lapack64_ %files -n blas64-devel
%{_libdir}/libblas64_.so
%{_libdir}/libcblas64_.so
%{_libdir}/pkgconfig/blas64.pc
%{_libdir}/pkgconfig/cblas64.pc
%files -n blas64-static
%{_libdir}/libblas64_.a
%{_libdir}/libcblas64_.a
%files -n lapack64
%doc README.md LICENSE %doc README.md LICENSE
%{_libdir}/liblapack64_.so.* %{_libdir}/liblapack64_.so.*
%files -n lapack64-devel
%{_libdir}/liblapack64_.so
%{_libdir}/pkgconfig/lapack64.pc
%files -n lapack64-static
%{_libdir}/liblapack64_.a
%{_libdir}/liblapack64_pic.a
%endif %endif
%changelog %changelog
* Fri Aug 11 2023 Jakub Martisko <jamartis@redhat.com> - 3.9.0-10
- Add explicit requires to the devel subpackages
Related: rhbz#2229142
* Tue Jul 18 2023 Jakub Martisko <jamartis@redhat.com> - 3.9.0-9
- Rename manpages: some names conflict with the man-pages package
Resolves: rhbz#2222868
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 3.9.0-8
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 3.9.0-7
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.9.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.9.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Sun Jun 21 2020 Iñaki Úcar <iucar@fedoraproject.org> - 3.9.0-4
- make separate packages for 64-bit versions with and without suffix (bz1295965)
* Thu Mar 19 2020 Tom Callaway <spot@fedoraproject.org> - 3.9.0-3
- apply upstream fix for accidental removal of deprecated symbols from header file
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.9.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Tue Nov 26 2019 Tom Callaway <spot@fedoraproject.org> - 3.9.0-1
- update to 3.9.0
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.0-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Wed May 29 2019 Tom Callaway <spot@fedoraproject.org> - 3.8.0-12
- use --no-optimize-sibling-calls to work around gfortran issues
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.0-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.0-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Jun 19 2018 Tom Callaway <spot@fedoraproject.org> - 3.8.0-9
- explicitly link liblapacke.so with liblapack to remove undefined-non-weak-symbols
* Mon Mar 5 2018 Tom Callaway <spot@fedoraproject.org> - 3.8.0-8 * Mon Mar 5 2018 Tom Callaway <spot@fedoraproject.org> - 3.8.0-8
- use LDFLAGS for shared libs - use LDFLAGS for shared libs

View File

@ -1,801 +0,0 @@
--- LAPACK/BLAS/SRC/drotmg.f.BAD 2005-09-28 17:59:56.000000000 -0500
+++ LAPACK/BLAS/SRC/drotmg.f 2005-09-28 18:01:04.000000000 -0500
@@ -0,0 +1,169 @@
+ SUBROUTINE DROTMG (DD1,DD2,DX1,DY1,DPARAM)
+C
+C CONSTRUCT THE MODIFIED GIVENS TRANSFORMATION MATRIX H WHICH ZEROS
+C THE SECOND COMPONENT OF THE 2-VECTOR (DSQRT(DD1)*DX1,DSQRT(DD2)*
+C DY2)**T.
+C WITH DPARAM(1)=DFLAG, H HAS ONE OF THE FOLLOWING FORMS..
+C
+C DFLAG=-1.D0 DFLAG=0.D0 DFLAG=1.D0 DFLAG=-2.D0
+C
+C (DH11 DH12) (1.D0 DH12) (DH11 1.D0) (1.D0 0.D0)
+C H=( ) ( ) ( ) ( )
+C (DH21 DH22), (DH21 1.D0), (-1.D0 DH22), (0.D0 1.D0).
+C LOCATIONS 2-4 OF DPARAM CONTAIN DH11, DH21, DH12, AND DH22
+C RESPECTIVELY. (VALUES OF 1.D0, -1.D0, OR 0.D0 IMPLIED BY THE
+C VALUE OF DPARAM(1) ARE NOT STORED IN DPARAM.)
+C
+C THE VALUES OF GAMSQ AND RGAMSQ SET IN THE DATA STATEMENT MAY BE
+C INEXACT. THIS IS OK AS THEY ARE ONLY USED FOR TESTING THE SIZE
+C OF DD1 AND DD2. ALL ACTUAL SCALING OF DATA IS DONE USING GAM.
+C
+ DOUBLE PRECISION GAM,ONE,RGAMSQ,DD2,DH11,DH21,DPARAM,DP2,
+ 1 DQ2,DU,DY1,ZERO,GAMSQ,DD1,DFLAG,DH12,DH22,DP1,DQ1,
+ 2 DTEMP,DX1,TWO
+ DIMENSION DPARAM(5)
+C
+ DATA ZERO,ONE,TWO /0.D0,1.D0,2.D0/
+ DATA GAM,GAMSQ,RGAMSQ/4096.D0,16777216.D0,5.9604645D-8/
+ IF(.NOT. DD1 .LT. ZERO) GO TO 10
+C GO ZERO-H-D-AND-DX1..
+ GO TO 60
+ 10 CONTINUE
+C CASE-DD1-NONNEGATIVE
+ DP2=DD2*DY1
+ IF(.NOT. DP2 .EQ. ZERO) GO TO 20
+ DFLAG=-TWO
+ GO TO 260
+C REGULAR-CASE..
+ 20 CONTINUE
+ DP1=DD1*DX1
+ DQ2=DP2*DY1
+ DQ1=DP1*DX1
+C
+ IF(.NOT. DABS(DQ1) .GT. DABS(DQ2)) GO TO 40
+ DH21=-DY1/DX1
+ DH12=DP2/DP1
+C
+ DU=ONE-DH12*DH21
+C
+ IF(.NOT. DU .LE. ZERO) GO TO 30
+C GO ZERO-H-D-AND-DX1..
+ GO TO 60
+ 30 CONTINUE
+ DFLAG=ZERO
+ DD1=DD1/DU
+ DD2=DD2/DU
+ DX1=DX1*DU
+C GO SCALE-CHECK..
+ GO TO 100
+ 40 CONTINUE
+ IF(.NOT. DQ2 .LT. ZERO) GO TO 50
+C GO ZERO-H-D-AND-DX1..
+ GO TO 60
+ 50 CONTINUE
+ DFLAG=ONE
+ DH11=DP1/DP2
+ DH22=DX1/DY1
+ DU=ONE+DH11*DH22
+ DTEMP=DD2/DU
+ DD2=DD1/DU
+ DD1=DTEMP
+ DX1=DY1*DU
+C GO SCALE-CHECK
+ GO TO 100
+C PROCEDURE..ZERO-H-D-AND-DX1..
+ 60 CONTINUE
+ DFLAG=-ONE
+ DH11=ZERO
+ DH12=ZERO
+ DH21=ZERO
+ DH22=ZERO
+C
+ DD1=ZERO
+ DD2=ZERO
+ DX1=ZERO
+C RETURN..
+ GO TO 220
+C PROCEDURE..FIX-H..
+ 70 CONTINUE
+ IF(.NOT. DFLAG .GE. ZERO) GO TO 90
+C
+ IF(.NOT. DFLAG .EQ. ZERO) GO TO 80
+ DH11=ONE
+ DH22=ONE
+ DFLAG=-ONE
+ GO TO 90
+ 80 CONTINUE
+ DH21=-ONE
+ DH12=ONE
+ DFLAG=-ONE
+ 90 CONTINUE
+ GO TO IGO,(120,150,180,210)
+C PROCEDURE..SCALE-CHECK
+ 100 CONTINUE
+ 110 CONTINUE
+ IF(.NOT. DD1 .LE. RGAMSQ) GO TO 130
+ IF(DD1 .EQ. ZERO) GO TO 160
+ ASSIGN 120 TO IGO
+C FIX-H..
+ GO TO 70
+ 120 CONTINUE
+ DD1=DD1*GAM**2
+ DX1=DX1/GAM
+ DH11=DH11/GAM
+ DH12=DH12/GAM
+ GO TO 110
+ 130 CONTINUE
+ 140 CONTINUE
+ IF(.NOT. DD1 .GE. GAMSQ) GO TO 160
+ ASSIGN 150 TO IGO
+C FIX-H..
+ GO TO 70
+ 150 CONTINUE
+ DD1=DD1/GAM**2
+ DX1=DX1*GAM
+ DH11=DH11*GAM
+ DH12=DH12*GAM
+ GO TO 140
+ 160 CONTINUE
+ 170 CONTINUE
+ IF(.NOT. DABS(DD2) .LE. RGAMSQ) GO TO 190
+ IF(DD2 .EQ. ZERO) GO TO 220
+ ASSIGN 180 TO IGO
+C FIX-H..
+ GO TO 70
+ 180 CONTINUE
+ DD2=DD2*GAM**2
+ DH21=DH21/GAM
+ DH22=DH22/GAM
+ GO TO 170
+ 190 CONTINUE
+ 200 CONTINUE
+ IF(.NOT. DABS(DD2) .GE. GAMSQ) GO TO 220
+ ASSIGN 210 TO IGO
+C FIX-H..
+ GO TO 70
+ 210 CONTINUE
+ DD2=DD2/GAM**2
+ DH21=DH21*GAM
+ DH22=DH22*GAM
+ GO TO 200
+ 220 CONTINUE
+ IF(DFLAG)250,230,240
+ 230 CONTINUE
+ DPARAM(3)=DH21
+ DPARAM(4)=DH12
+ GO TO 260
+ 240 CONTINUE
+ DPARAM(2)=DH11
+ DPARAM(5)=DH22
+ GO TO 260
+ 250 CONTINUE
+ DPARAM(2)=DH11
+ DPARAM(3)=DH21
+ DPARAM(4)=DH12
+ DPARAM(5)=DH22
+ 260 CONTINUE
+ DPARAM(1)=DFLAG
+ RETURN
+ END
--- LAPACK/BLAS/SRC/sdsdot.f.BAD 2005-09-28 18:00:11.000000000 -0500
+++ LAPACK/BLAS/SRC/sdsdot.f 2005-09-28 18:01:23.000000000 -0500
@@ -0,0 +1,78 @@
+*DECK SDSDOT
+ REAL FUNCTION SDSDOT (N, SB, SX, INCX, SY, INCY)
+C***BEGIN PROLOGUE SDSDOT
+C***PURPOSE Compute the inner product of two vectors with extended
+C precision accumulation.
+C***LIBRARY SLATEC (BLAS)
+C***CATEGORY D1A4
+C***TYPE SINGLE PRECISION (SDSDOT-S, CDCDOT-C)
+C***KEYWORDS BLAS, DOT PRODUCT, INNER PRODUCT, LINEAR ALGEBRA, VECTOR
+C***AUTHOR Lawson, C. L., (JPL)
+C Hanson, R. J., (SNLA)
+C Kincaid, D. R., (U. of Texas)
+C Krogh, F. T., (JPL)
+C***DESCRIPTION
+C
+C B L A S Subprogram
+C Description of Parameters
+C
+C --Input--
+C N number of elements in input vector(s)
+C SB single precision scalar to be added to inner product
+C SX single precision vector with N elements
+C INCX storage spacing between elements of SX
+C SY single precision vector with N elements
+C INCY storage spacing between elements of SY
+C
+C --Output--
+C SDSDOT single precision dot product (SB if N .LE. 0)
+C
+C Returns S.P. result with dot product accumulated in D.P.
+C SDSDOT = SB + sum for I = 0 to N-1 of SX(LX+I*INCX)*SY(LY+I*INCY),
+C where LX = 1 if INCX .GE. 0, else LX = 1+(1-N)*INCX, and LY is
+C defined in a similar way using INCY.
+C
+C***REFERENCES C. L. Lawson, R. J. Hanson, D. R. Kincaid and F. T.
+C Krogh, Basic linear algebra subprograms for Fortran
+C usage, Algorithm No. 539, Transactions on Mathematical
+C Software 5, 3 (September 1979), pp. 308-323.
+C***ROUTINES CALLED (NONE)
+C***REVISION HISTORY (YYMMDD)
+C 791001 DATE WRITTEN
+C 890531 Changed all specific intrinsics to generic. (WRB)
+C 890831 Modified array declarations. (WRB)
+C 890831 REVISION DATE from Version 3.2
+C 891214 Prologue converted to Version 4.0 format. (BAB)
+C 920310 Corrected definition of LX in DESCRIPTION. (WRB)
+C 920501 Reformatted the REFERENCES section. (WRB)
+C***END PROLOGUE SDSDOT
+ REAL SX(*), SY(*), SB
+ DOUBLE PRECISION DSDOT
+C***FIRST EXECUTABLE STATEMENT SDSDOT
+ DSDOT = SB
+ IF (N .LE. 0) GO TO 30
+ IF (INCX.EQ.INCY .AND. INCX.GT.0) GO TO 40
+C
+C Code for unequal or nonpositive increments.
+C
+ KX = 1
+ KY = 1
+ IF (INCX .LT. 0) KX = 1+(1-N)*INCX
+ IF (INCY .LT. 0) KY = 1+(1-N)*INCY
+ DO 10 I = 1,N
+ DSDOT = DSDOT + DBLE(SX(KX))*DBLE(SY(KY))
+ KX = KX + INCX
+ KY = KY + INCY
+ 10 CONTINUE
+ 30 SDSDOT = DSDOT
+ RETURN
+C
+C Code for equal and positive increments.
+C
+ 40 NS = N*INCX
+ DO 50 I = 1,NS,INCX
+ DSDOT = DSDOT + DBLE(SX(I))*DBLE(SY(I))
+ 50 CONTINUE
+ SDSDOT = DSDOT
+ RETURN
+ END
--- LAPACK/BLAS/SRC/csrot.f.BAD 2005-09-28 17:59:45.000000000 -0500
+++ LAPACK/BLAS/SRC/csrot.f 2005-09-28 18:00:41.000000000 -0500
@@ -0,0 +1,38 @@
+ subroutine csrot (n,cx,incx,cy,incy,c,s)
+c
+c applies a plane rotation, where the cos and sin (c and s) are real
+c and the vectors cx and cy are complex.
+c jack dongarra, linpack, 3/11/78.
+c
+ complex cx(1),cy(1),ctemp
+ real c,s
+ integer i,incx,incy,ix,iy,n
+c
+ if(n.le.0)return
+ if(incx.eq.1.and.incy.eq.1)go to 20
+c
+c code for unequal increments or equal increments not equal
+c to 1
+c
+ ix = 1
+ iy = 1
+ if(incx.lt.0)ix = (-n+1)*incx + 1
+ if(incy.lt.0)iy = (-n+1)*incy + 1
+ do 10 i = 1,n
+ ctemp = c*cx(ix) + s*cy(iy)
+ cy(iy) = c*cy(iy) - s*cx(ix)
+ cx(ix) = ctemp
+ ix = ix + incx
+ iy = iy + incy
+ 10 continue
+ return
+c
+c code for both increments equal to 1
+c
+ 20 do 30 i = 1,n
+ ctemp = c*cx(i) + s*cy(i)
+ cy(i) = c*cy(i) - s*cx(i)
+ cx(i) = ctemp
+ 30 continue
+ return
+ end
--- LAPACK/BLAS/SRC/srotmg.f.BAD 2005-09-28 18:00:24.000000000 -0500
+++ LAPACK/BLAS/SRC/srotmg.f 2005-09-28 18:01:45.000000000 -0500
@@ -0,0 +1,166 @@
+ SUBROUTINE SROTMG (SD1,SD2,SX1,SY1,SPARAM)
+C
+C CONSTRUCT THE MODIFIED GIVENS TRANSFORMATION MATRIX H WHICH ZEROS
+C THE SECOND COMPONENT OF THE 2-VECTOR (SQRT(SD1)*SX1,SQRT(SD2)*
+C SY2)**T.
+C WITH SPARAM(1)=SFLAG, H HAS ONE OF THE FOLLOWING FORMS..
+C
+C SFLAG=-1.E0 SFLAG=0.E0 SFLAG=1.E0 SFLAG=-2.E0
+C
+C (SH11 SH12) (1.E0 SH12) (SH11 1.E0) (1.E0 0.E0)
+C H=( ) ( ) ( ) ( )
+C (SH21 SH22), (SH21 1.E0), (-1.E0 SH22), (0.E0 1.E0).
+C LOCATIONS 2-4 OF SPARAM CONTAIN SH11,SH21,SH12, AND SH22
+C RESPECTIVELY. (VALUES OF 1.E0, -1.E0, OR 0.E0 IMPLIED BY THE
+C VALUE OF SPARAM(1) ARE NOT STORED IN SPARAM.)
+C
+C THE VALUES OF GAMSQ AND RGAMSQ SET IN THE DATA STATEMENT MAY BE
+C INEXACT. THIS IS OK AS THEY ARE ONLY USED FOR TESTING THE SIZE
+C OF SD1 AND SD2. ALL ACTUAL SCALING OF DATA IS DONE USING GAM.
+C
+ DIMENSION SPARAM(5)
+C
+ DATA ZERO,ONE,TWO /0.E0,1.E0,2.E0/
+ DATA GAM,GAMSQ,RGAMSQ/4096.E0,1.67772E7,5.96046E-8/
+ IF(.NOT. SD1 .LT. ZERO) GO TO 10
+C GO ZERO-H-D-AND-SX1..
+ GO TO 60
+ 10 CONTINUE
+C CASE-SD1-NONNEGATIVE
+ SP2=SD2*SY1
+ IF(.NOT. SP2 .EQ. ZERO) GO TO 20
+ SFLAG=-TWO
+ GO TO 260
+C REGULAR-CASE..
+ 20 CONTINUE
+ SP1=SD1*SX1
+ SQ2=SP2*SY1
+ SQ1=SP1*SX1
+C
+ IF(.NOT. ABS(SQ1) .GT. ABS(SQ2)) GO TO 40
+ SH21=-SY1/SX1
+ SH12=SP2/SP1
+C
+ SU=ONE-SH12*SH21
+C
+ IF(.NOT. SU .LE. ZERO) GO TO 30
+C GO ZERO-H-D-AND-SX1..
+ GO TO 60
+ 30 CONTINUE
+ SFLAG=ZERO
+ SD1=SD1/SU
+ SD2=SD2/SU
+ SX1=SX1*SU
+C GO SCALE-CHECK..
+ GO TO 100
+ 40 CONTINUE
+ IF(.NOT. SQ2 .LT. ZERO) GO TO 50
+C GO ZERO-H-D-AND-SX1..
+ GO TO 60
+ 50 CONTINUE
+ SFLAG=ONE
+ SH11=SP1/SP2
+ SH22=SX1/SY1
+ SU=ONE+SH11*SH22
+ STEMP=SD2/SU
+ SD2=SD1/SU
+ SD1=STEMP
+ SX1=SY1*SU
+C GO SCALE-CHECK
+ GO TO 100
+C PROCEDURE..ZERO-H-D-AND-SX1..
+ 60 CONTINUE
+ SFLAG=-ONE
+ SH11=ZERO
+ SH12=ZERO
+ SH21=ZERO
+ SH22=ZERO
+C
+ SD1=ZERO
+ SD2=ZERO
+ SX1=ZERO
+C RETURN..
+ GO TO 220
+C PROCEDURE..FIX-H..
+ 70 CONTINUE
+ IF(.NOT. SFLAG .GE. ZERO) GO TO 90
+C
+ IF(.NOT. SFLAG .EQ. ZERO) GO TO 80
+ SH11=ONE
+ SH22=ONE
+ SFLAG=-ONE
+ GO TO 90
+ 80 CONTINUE
+ SH21=-ONE
+ SH12=ONE
+ SFLAG=-ONE
+ 90 CONTINUE
+ GO TO IGO,(120,150,180,210)
+C PROCEDURE..SCALE-CHECK
+ 100 CONTINUE
+ 110 CONTINUE
+ IF(.NOT. SD1 .LE. RGAMSQ) GO TO 130
+ IF(SD1 .EQ. ZERO) GO TO 160
+ ASSIGN 120 TO IGO
+C FIX-H..
+ GO TO 70
+ 120 CONTINUE
+ SD1=SD1*GAM**2
+ SX1=SX1/GAM
+ SH11=SH11/GAM
+ SH12=SH12/GAM
+ GO TO 110
+ 130 CONTINUE
+ 140 CONTINUE
+ IF(.NOT. SD1 .GE. GAMSQ) GO TO 160
+ ASSIGN 150 TO IGO
+C FIX-H..
+ GO TO 70
+ 150 CONTINUE
+ SD1=SD1/GAM**2
+ SX1=SX1*GAM
+ SH11=SH11*GAM
+ SH12=SH12*GAM
+ GO TO 140
+ 160 CONTINUE
+ 170 CONTINUE
+ IF(.NOT. ABS(SD2) .LE. RGAMSQ) GO TO 190
+ IF(SD2 .EQ. ZERO) GO TO 220
+ ASSIGN 180 TO IGO
+C FIX-H..
+ GO TO 70
+ 180 CONTINUE
+ SD2=SD2*GAM**2
+ SH21=SH21/GAM
+ SH22=SH22/GAM
+ GO TO 170
+ 190 CONTINUE
+ 200 CONTINUE
+ IF(.NOT. ABS(SD2) .GE. GAMSQ) GO TO 220
+ ASSIGN 210 TO IGO
+C FIX-H..
+ GO TO 70
+ 210 CONTINUE
+ SD2=SD2/GAM**2
+ SH21=SH21*GAM
+ SH22=SH22*GAM
+ GO TO 200
+ 220 CONTINUE
+ IF(SFLAG)250,230,240
+ 230 CONTINUE
+ SPARAM(3)=SH21
+ SPARAM(4)=SH12
+ GO TO 260
+ 240 CONTINUE
+ SPARAM(2)=SH11
+ SPARAM(5)=SH22
+ GO TO 260
+ 250 CONTINUE
+ SPARAM(2)=SH11
+ SPARAM(3)=SH21
+ SPARAM(4)=SH12
+ SPARAM(5)=SH22
+ 260 CONTINUE
+ SPARAM(1)=SFLAG
+ RETURN
+ END
--- LAPACK/BLAS/SRC/dsdot.f.BAD 2005-09-28 18:00:03.000000000 -0500
+++ LAPACK/BLAS/SRC/dsdot.f 2005-09-28 18:01:11.000000000 -0500
@@ -0,0 +1,74 @@
+*DECK DSDOT
+ DOUBLE PRECISION FUNCTION DSDOT (N, SX, INCX, SY, INCY)
+C***BEGIN PROLOGUE DSDOT
+C***PURPOSE Compute the inner product of two vectors with extended
+C precision accumulation and result.
+C***LIBRARY SLATEC (BLAS)
+C***CATEGORY D1A4
+C***TYPE DOUBLE PRECISION (DSDOT-D, DCDOT-C)
+C***KEYWORDS BLAS, COMPLEX VECTORS, DOT PRODUCT, INNER PRODUCT,
+C LINEAR ALGEBRA, VECTOR
+C***AUTHOR Lawson, C. L., (JPL)
+C Hanson, R. J., (SNLA)
+C Kincaid, D. R., (U. of Texas)
+C Krogh, F. T., (JPL)
+C***DESCRIPTION
+C
+C B L A S Subprogram
+C Description of Parameters
+C
+C --Input--
+C N number of elements in input vector(s)
+C SX single precision vector with N elements
+C INCX storage spacing between elements of SX
+C SY single precision vector with N elements
+C INCY storage spacing between elements of SY
+C
+C --Output--
+C DSDOT double precision dot product (zero if N.LE.0)
+C
+C Returns D.P. dot product accumulated in D.P., for S.P. SX and SY
+C DSDOT = sum for I = 0 to N-1 of SX(LX+I*INCX) * SY(LY+I*INCY),
+C where LX = 1 if INCX .GE. 0, else LX = 1+(1-N)*INCX, and LY is
+C defined in a similar way using INCY.
+C
+C***REFERENCES C. L. Lawson, R. J. Hanson, D. R. Kincaid and F. T.
+C Krogh, Basic linear algebra subprograms for Fortran
+C usage, Algorithm No. 539, Transactions on Mathematical
+C Software 5, 3 (September 1979), pp. 308-323.
+C***ROUTINES CALLED (NONE)
+C***REVISION HISTORY (YYMMDD)
+C 791001 DATE WRITTEN
+C 890831 Modified array declarations. (WRB)
+C 890831 REVISION DATE from Version 3.2
+C 891214 Prologue converted to Version 4.0 format. (BAB)
+C 920310 Corrected definition of LX in DESCRIPTION. (WRB)
+C 920501 Reformatted the REFERENCES section. (WRB)
+C***END PROLOGUE DSDOT
+ REAL SX(*),SY(*)
+C***FIRST EXECUTABLE STATEMENT DSDOT
+ DSDOT = 0.0D0
+ IF (N .LE. 0) RETURN
+ IF (INCX.EQ.INCY .AND. INCX.GT.0) GO TO 20
+C
+C Code for unequal or nonpositive increments.
+C
+ KX = 1
+ KY = 1
+ IF (INCX .LT. 0) KX = 1+(1-N)*INCX
+ IF (INCY .LT. 0) KY = 1+(1-N)*INCY
+ DO 10 I = 1,N
+ DSDOT = DSDOT + DBLE(SX(KX))*DBLE(SY(KY))
+ KX = KX + INCX
+ KY = KY + INCY
+ 10 CONTINUE
+ RETURN
+C
+C Code for equal, positive, non-unit increments.
+C
+ 20 NS = N*INCX
+ DO 30 I = 1,NS,INCX
+ DSDOT = DSDOT + DBLE(SX(I))*DBLE(SY(I))
+ 30 CONTINUE
+ RETURN
+ END
--- LAPACK/BLAS/SRC/srotm.f.BAD 2005-09-28 18:00:17.000000000 -0500
+++ LAPACK/BLAS/SRC/srotm.f 2005-09-28 18:01:34.000000000 -0500
@@ -0,0 +1,106 @@
+ SUBROUTINE SROTM (N,SX,INCX,SY,INCY,SPARAM)
+C
+C APPLY THE MODIFIED GIVENS TRANSFORMATION, H, TO THE 2 BY N MATRIX
+C
+C (SX**T) , WHERE **T INDICATES TRANSPOSE. THE ELEMENTS OF SX ARE IN
+C (DX**T)
+C
+C SX(LX+I*INCX), I = 0 TO N-1, WHERE LX = 1 IF INCX .GE. 0, ELSE
+C LX = (-INCX)*N, AND SIMILARLY FOR SY USING USING LY AND INCY.
+C WITH SPARAM(1)=SFLAG, H HAS ONE OF THE FOLLOWING FORMS..
+C
+C SFLAG=-1.E0 SFLAG=0.E0 SFLAG=1.E0 SFLAG=-2.E0
+C
+C (SH11 SH12) (1.E0 SH12) (SH11 1.E0) (1.E0 0.E0)
+C H=( ) ( ) ( ) ( )
+C (SH21 SH22), (SH21 1.E0), (-1.E0 SH22), (0.E0 1.E0).
+C SEE SROTMG FOR A DESCRIPTION OF DATA STORAGE IN SPARAM.
+C
+ DIMENSION SX(1),SY(1),SPARAM(5)
+ DATA ZERO,TWO/0.E0,2.E0/
+C
+ SFLAG=SPARAM(1)
+ IF(N .LE. 0 .OR.(SFLAG+TWO.EQ.ZERO)) GO TO 140
+ IF(.NOT.(INCX.EQ.INCY.AND. INCX .GT.0)) GO TO 70
+C
+ NSTEPS=N*INCX
+ IF(SFLAG) 50,10,30
+ 10 CONTINUE
+ SH12=SPARAM(4)
+ SH21=SPARAM(3)
+ DO 20 I=1,NSTEPS,INCX
+ W=SX(I)
+ Z=SY(I)
+ SX(I)=W+Z*SH12
+ SY(I)=W*SH21+Z
+ 20 CONTINUE
+ GO TO 140
+ 30 CONTINUE
+ SH11=SPARAM(2)
+ SH22=SPARAM(5)
+ DO 40 I=1,NSTEPS,INCX
+ W=SX(I)
+ Z=SY(I)
+ SX(I)=W*SH11+Z
+ SY(I)=-W+SH22*Z
+ 40 CONTINUE
+ GO TO 140
+ 50 CONTINUE
+ SH11=SPARAM(2)
+ SH12=SPARAM(4)
+ SH21=SPARAM(3)
+ SH22=SPARAM(5)
+ DO 60 I=1,NSTEPS,INCX
+ W=SX(I)
+ Z=SY(I)
+ SX(I)=W*SH11+Z*SH12
+ SY(I)=W*SH21+Z*SH22
+ 60 CONTINUE
+ GO TO 140
+ 70 CONTINUE
+ KX=1
+ KY=1
+ IF(INCX .LT. 0) KX=1+(1-N)*INCX
+ IF(INCY .LT. 0) KY=1+(1-N)*INCY
+C
+ IF(SFLAG)120,80,100
+ 80 CONTINUE
+ SH12=SPARAM(4)
+ SH21=SPARAM(3)
+ DO 90 I=1,N
+ W=SX(KX)
+ Z=SY(KY)
+ SX(KX)=W+Z*SH12
+ SY(KY)=W*SH21+Z
+ KX=KX+INCX
+ KY=KY+INCY
+ 90 CONTINUE
+ GO TO 140
+ 100 CONTINUE
+ SH11=SPARAM(2)
+ SH22=SPARAM(5)
+ DO 110 I=1,N
+ W=SX(KX)
+ Z=SY(KY)
+ SX(KX)=W*SH11+Z
+ SY(KY)=-W+SH22*Z
+ KX=KX+INCX
+ KY=KY+INCY
+ 110 CONTINUE
+ GO TO 140
+ 120 CONTINUE
+ SH11=SPARAM(2)
+ SH12=SPARAM(4)
+ SH21=SPARAM(3)
+ SH22=SPARAM(5)
+ DO 130 I=1,N
+ W=SX(KX)
+ Z=SY(KY)
+ SX(KX)=W*SH11+Z*SH12
+ SY(KY)=W*SH21+Z*SH22
+ KX=KX+INCX
+ KY=KY+INCY
+ 130 CONTINUE
+ 140 CONTINUE
+ RETURN
+ END
--- LAPACK/BLAS/SRC/zdrot.f.BAD 2005-09-28 18:00:31.000000000 -0500
+++ LAPACK/BLAS/SRC/zdrot.f 2005-09-28 18:02:00.000000000 -0500
@@ -0,0 +1,38 @@
+ subroutine zdrot (n,zx,incx,zy,incy,c,s)
+c
+c applies a plane rotation, where the cos and sin (c and s) are
+c double precision and the vectors zx and zy are double complex.
+c jack dongarra, linpack, 3/11/78.
+c
+ double complex zx(1),zy(1),ztemp
+ double precision c,s
+ integer i,incx,incy,ix,iy,n
+c
+ if(n.le.0)return
+ if(incx.eq.1.and.incy.eq.1)go to 20
+c
+c code for unequal increments or equal increments not equal
+c to 1
+c
+ ix = 1
+ iy = 1
+ if(incx.lt.0)ix = (-n+1)*incx + 1
+ if(incy.lt.0)iy = (-n+1)*incy + 1
+ do 10 i = 1,n
+ ztemp = c*zx(ix) + s*zy(iy)
+ zy(iy) = c*zy(iy) - s*zx(ix)
+ zx(ix) = ztemp
+ ix = ix + incx
+ iy = iy + incy
+ 10 continue
+ return
+c
+c code for both increments equal to 1
+c
+ 20 do 30 i = 1,n
+ ztemp = c*zx(i) + s*zy(i)
+ zy(i) = c*zy(i) - s*zx(i)
+ zx(i) = ztemp
+ 30 continue
+ return
+ end
--- LAPACK/BLAS/SRC/drotm.f.BAD 2005-09-28 17:59:52.000000000 -0500
+++ LAPACK/BLAS/SRC/drotm.f 2005-09-28 18:00:50.000000000 -0500
@@ -0,0 +1,108 @@
+ SUBROUTINE DROTM (N,DX,INCX,DY,INCY,DPARAM)
+C
+C APPLY THE MODIFIED GIVENS TRANSFORMATION, H, TO THE 2 BY N MATRIX
+C
+C (DX**T) , WHERE **T INDICATES TRANSPOSE. THE ELEMENTS OF DX ARE IN
+C (DY**T)
+C
+C DX(LX+I*INCX), I = 0 TO N-1, WHERE LX = 1 IF INCX .GE. 0, ELSE
+C LX = (-INCX)*N, AND SIMILARLY FOR SY USING LY AND INCY.
+C WITH DPARAM(1)=DFLAG, H HAS ONE OF THE FOLLOWING FORMS..
+C
+C DFLAG=-1.D0 DFLAG=0.D0 DFLAG=1.D0 DFLAG=-2.D0
+C
+C (DH11 DH12) (1.D0 DH12) (DH11 1.D0) (1.D0 0.D0)
+C H=( ) ( ) ( ) ( )
+C (DH21 DH22), (DH21 1.D0), (-1.D0 DH22), (0.D0 1.D0).
+C SEE DROTMG FOR A DESCRIPTION OF DATA STORAGE IN DPARAM.
+C
+ DOUBLE PRECISION DFLAG,DH12,DH22,DX,TWO,Z,DH11,DH21,
+ 1 DPARAM,DY,W,ZERO
+ DIMENSION DX(1),DY(1),DPARAM(5)
+ DATA ZERO,TWO/0.D0,2.D0/
+C
+ DFLAG=DPARAM(1)
+ IF(N .LE. 0 .OR.(DFLAG+TWO.EQ.ZERO)) GO TO 140
+ IF(.NOT.(INCX.EQ.INCY.AND. INCX .GT.0)) GO TO 70
+C
+ NSTEPS=N*INCX
+ IF(DFLAG) 50,10,30
+ 10 CONTINUE
+ DH12=DPARAM(4)
+ DH21=DPARAM(3)
+ DO 20 I=1,NSTEPS,INCX
+ W=DX(I)
+ Z=DY(I)
+ DX(I)=W+Z*DH12
+ DY(I)=W*DH21+Z
+ 20 CONTINUE
+ GO TO 140
+ 30 CONTINUE
+ DH11=DPARAM(2)
+ DH22=DPARAM(5)
+ DO 40 I=1,NSTEPS,INCX
+ W=DX(I)
+ Z=DY(I)
+ DX(I)=W*DH11+Z
+ DY(I)=-W+DH22*Z
+ 40 CONTINUE
+ GO TO 140
+ 50 CONTINUE
+ DH11=DPARAM(2)
+ DH12=DPARAM(4)
+ DH21=DPARAM(3)
+ DH22=DPARAM(5)
+ DO 60 I=1,NSTEPS,INCX
+ W=DX(I)
+ Z=DY(I)
+ DX(I)=W*DH11+Z*DH12
+ DY(I)=W*DH21+Z*DH22
+ 60 CONTINUE
+ GO TO 140
+ 70 CONTINUE
+ KX=1
+ KY=1
+ IF(INCX .LT. 0) KX=1+(1-N)*INCX
+ IF(INCY .LT. 0) KY=1+(1-N)*INCY
+C
+ IF(DFLAG)120,80,100
+ 80 CONTINUE
+ DH12=DPARAM(4)
+ DH21=DPARAM(3)
+ DO 90 I=1,N
+ W=DX(KX)
+ Z=DY(KY)
+ DX(KX)=W+Z*DH12
+ DY(KY)=W*DH21+Z
+ KX=KX+INCX
+ KY=KY+INCY
+ 90 CONTINUE
+ GO TO 140
+ 100 CONTINUE
+ DH11=DPARAM(2)
+ DH22=DPARAM(5)
+ DO 110 I=1,N
+ W=DX(KX)
+ Z=DY(KY)
+ DX(KX)=W*DH11+Z
+ DY(KY)=-W+DH22*Z
+ KX=KX+INCX
+ KY=KY+INCY
+ 110 CONTINUE
+ GO TO 140
+ 120 CONTINUE
+ DH11=DPARAM(2)
+ DH12=DPARAM(4)
+ DH21=DPARAM(3)
+ DH22=DPARAM(5)
+ DO 130 I=1,N
+ W=DX(KX)
+ Z=DY(KY)
+ DX(KX)=W*DH11+Z*DH12
+ DY(KY)=W*DH21+Z*DH22
+ KX=KX+INCX
+ KY=KY+INCY
+ 130 CONTINUE
+ 140 CONTINUE
+ RETURN
+ END

File diff suppressed because it is too large Load Diff

View File

@ -1,29 +0,0 @@
--- lapack-3.1.0/make.inc.BAD 2006-11-14 15:58:41.000000000 -0600
+++ lapack-3.1.0/make.inc 2006-11-14 16:00:03.000000000 -0600
@@ -10,7 +10,7 @@
#
# The machine (platform) identifier to append to the library names
#
-PLAT = _LINUX
+PLAT =
#
# Modify the FORTRAN and OPTS definitions to refer to the
# compiler and desired compiler options for your machine. NOOPT
@@ -18,12 +18,13 @@
# selected. Define LOADER and LOADOPTS to refer to the loader and
# desired load options for your machine.
#
-FORTRAN = g77
-OPTS = -funroll-all-loops -O3 -Wimplicit -Wno-globals -Wunused
+FORTRAN = gfortran
+#OPTS = -funroll-all-loops -O3 -Wimplicit -Wno-globals -Wunused
#OPTS = -O0 -g -Wall
DRVOPTS = $(OPTS)
-NOOPT = -Wimplicit -Wno-globals -Wunused
-LOADER = g77
+# NOOPT = -Wimplicit -Wno-globals -Wunused
+NOOPT =
+LOADER = gfortran
LOADOPTS =
#
# The archiver and the flag(s) to use when building archive (library)

View File

@ -1,20 +0,0 @@
--- lapack-3.1.0/INSTALL/dsecnd.f.BAD 2007-01-05 20:35:09.000000000 -0600
+++ lapack-3.1.0/INSTALL/dsecnd.f 2007-01-05 20:35:16.000000000 -0600
@@ -20,7 +20,6 @@
* ..
* .. External Functions ..
REAL ETIME
- EXTERNAL ETIME
* ..
* .. Executable Statements ..
*
--- lapack-3.1.0/INSTALL/second.f.BAD 2007-01-05 20:35:39.000000000 -0600
+++ lapack-3.1.0/INSTALL/second.f 2007-01-05 20:35:45.000000000 -0600
@@ -20,7 +20,6 @@
* ..
* .. External Functions ..
REAL ETIME
- EXTERNAL ETIME
* ..
* .. Executable Statements ..
*

View File

@ -1,23 +0,0 @@
--- lapack-3.1.1/INSTALL/make.inc.gfortran.BAD 2007-05-25 15:34:55.000000000 -0500
+++ lapack-3.1.1/INSTALL/make.inc.gfortran 2007-05-25 15:35:51.000000000 -0500
@@ -8,7 +8,7 @@ SHELL = /bin/sh
#
# The machine (platform) identifier to append to the library names
#
-PLAT = _LINUX
+PLAT =
#
# Modify the FORTRAN and OPTS definitions to refer to the
# compiler and desired compiler options for your machine. NOOPT
@@ -17,9 +17,9 @@ PLAT = _LINUX
# desired load options for your machine.
#
FORTRAN = gfortran
-OPTS = -O2
+#OPTS = -O2
DRVOPTS = $(OPTS)
-NOOPT = -O0
+NOOPT =
LOADER = gfortran
LOADOPTS =
#

View File

@ -1,15 +0,0 @@
diff -up lapack-3.4.0/INSTALL/make.inc.gfortran.orig lapack-3.4.0/INSTALL/make.inc.gfortran
--- lapack-3.4.0/INSTALL/make.inc.gfortran.orig 2011-11-11 16:08:04.000000000 -0500
+++ lapack-3.4.0/INSTALL/make.inc.gfortran 2011-11-28 14:56:08.990672240 -0500
@@ -13,9 +13,9 @@ SHELL = /bin/sh
# desired load options for your machine.
#
FORTRAN = gfortran
-OPTS = -O2 -frecursive
+#OPTS = -O2 -frecursive
DRVOPTS = $(OPTS)
-NOOPT = -O0 -frecursive
+NOOPT =
LOADER = gfortran
LOADOPTS =
#

View File

@ -1,21 +0,0 @@
diff -up lapack-3.4.1/INSTALL/make.inc.gfortran.shared lapack-3.4.1/INSTALL/make.inc.gfortran
--- lapack-3.4.1/INSTALL/make.inc.gfortran.shared 2012-09-06 21:55:01.659280432 -0600
+++ lapack-3.4.1/INSTALL/make.inc.gfortran 2012-09-06 22:04:04.936732440 -0600
@@ -73,3 +73,4 @@ BLASLIB = ../../librefblas.a
LAPACKLIB = liblapack.a
TMGLIB = libtmglib.a
LAPACKELIB = liblapacke.a
+SHLIB_LAPACKE = liblapacke.so
diff -up lapack-3.4.1/LAPACKE/Makefile.shared lapack-3.4.1/LAPACKE/Makefile
--- lapack-3.4.1/LAPACKE/Makefile.shared 2012-04-12 17:05:47.000000000 -0600
+++ lapack-3.4.1/LAPACKE/Makefile 2012-09-06 21:55:01.851271802 -0600
@@ -49,6 +49,9 @@ lapacke:
cd src && $(MAKE)
cd utils && $(MAKE)
+shlib: lapacke
+ $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LIBS) -lgfortran -lc
+
lapacke_example:
cd example && $(MAKE)

View File

@ -1,99 +0,0 @@
diff -up lapack-3.5.0/BLAS/SRC/dgbmv.f.R lapack-3.5.0/BLAS/SRC/dgbmv.f
--- lapack-3.5.0/BLAS/SRC/dgbmv.f.R 2011-11-03 16:32:56.000000000 -0400
+++ lapack-3.5.0/BLAS/SRC/dgbmv.f 2014-07-07 11:50:48.257175853 -0400
@@ -312,18 +312,18 @@
JX = KX
IF (INCY.EQ.1) THEN
DO 60 J = 1,N
- IF (X(JX).NE.ZERO) THEN
+c IF (X(JX).NE.ZERO) THEN
TEMP = ALPHA*X(JX)
K = KUP1 - J
DO 50 I = MAX(1,J-KU),MIN(M,J+KL)
Y(I) = Y(I) + TEMP*A(K+I,J)
50 CONTINUE
- END IF
+c END IF
JX = JX + INCX
60 CONTINUE
ELSE
DO 80 J = 1,N
- IF (X(JX).NE.ZERO) THEN
+c IF (X(JX).NE.ZERO) THEN
TEMP = ALPHA*X(JX)
IY = KY
K = KUP1 - J
@@ -331,7 +331,7 @@
Y(IY) = Y(IY) + TEMP*A(K+I,J)
IY = IY + INCY
70 CONTINUE
- END IF
+c END IF
JX = JX + INCX
IF (J.GT.KU) KY = KY + INCY
80 CONTINUE
diff -up lapack-3.5.0/BLAS/SRC/dgemm.f.R lapack-3.5.0/BLAS/SRC/dgemm.f
--- lapack-3.5.0/BLAS/SRC/dgemm.f.R 2011-11-03 16:32:56.000000000 -0400
+++ lapack-3.5.0/BLAS/SRC/dgemm.f 2014-07-07 11:50:48.257175853 -0400
@@ -311,12 +311,12 @@
60 CONTINUE
END IF
DO 80 L = 1,K
- IF (B(L,J).NE.ZERO) THEN
+c IF (B(L,J).NE.ZERO) THEN
TEMP = ALPHA*B(L,J)
DO 70 I = 1,M
C(I,J) = C(I,J) + TEMP*A(I,L)
70 CONTINUE
- END IF
+c END IF
80 CONTINUE
90 CONTINUE
ELSE
@@ -353,12 +353,12 @@
140 CONTINUE
END IF
DO 160 L = 1,K
- IF (B(J,L).NE.ZERO) THEN
+c IF (B(J,L).NE.ZERO) THEN
TEMP = ALPHA*B(J,L)
DO 150 I = 1,M
C(I,J) = C(I,J) + TEMP*A(I,L)
150 CONTINUE
- END IF
+c END IF
160 CONTINUE
170 CONTINUE
ELSE
diff -up lapack-3.5.0/BLAS/SRC/dgemv.f.R lapack-3.5.0/BLAS/SRC/dgemv.f
--- lapack-3.5.0/BLAS/SRC/dgemv.f.R 2011-11-03 16:32:56.000000000 -0400
+++ lapack-3.5.0/BLAS/SRC/dgemv.f 2014-07-07 11:50:48.257175853 -0400
@@ -278,24 +278,24 @@
JX = KX
IF (INCY.EQ.1) THEN
DO 60 J = 1,N
- IF (X(JX).NE.ZERO) THEN
+c IF (X(JX).NE.ZERO) THEN
TEMP = ALPHA*X(JX)
DO 50 I = 1,M
Y(I) = Y(I) + TEMP*A(I,J)
50 CONTINUE
- END IF
+c END IF
JX = JX + INCX
60 CONTINUE
ELSE
DO 80 J = 1,N
- IF (X(JX).NE.ZERO) THEN
+c IF (X(JX).NE.ZERO) THEN
TEMP = ALPHA*X(JX)
IY = KY
DO 70 I = 1,M
Y(IY) = Y(IY) + TEMP*A(I,J)
IY = IY + INCY
70 CONTINUE
- END IF
+c END IF
JX = JX + INCX
80 CONTINUE
END IF

View File

@ -1,36 +0,0 @@
diff -up lapack-3.5.0/LAPACKE/Makefile.tmglib lapack-3.5.0/LAPACKE/Makefile
--- lapack-3.5.0/LAPACKE/Makefile.tmglib 2014-06-18 14:21:50.057725467 -0400
+++ lapack-3.5.0/LAPACKE/Makefile 2014-06-18 14:22:29.360436295 -0400
@@ -50,7 +50,7 @@ lapacke:
cd utils && $(MAKE)
shlib: lapacke
- $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LIBS) -lgfortran -lc
+ $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LIBS) -lgfortran -lc ../TESTING/MATGEN/*.o
lapacke_example:
cd example && $(MAKE)
diff -up lapack-3.5.0/LAPACKE/src/Makefile.tmglib lapack-3.5.0/LAPACKE/src/Makefile
--- lapack-3.5.0/LAPACKE/src/Makefile.tmglib 2014-06-18 14:21:50.056725474 -0400
+++ lapack-3.5.0/LAPACKE/src/Makefile 2014-06-18 14:21:50.057725467 -0400
@@ -2073,7 +2073,7 @@ OBJ_FILES := $(C_FILES:.o=.o)
all: ../../$(LAPACKELIB)
../../$(LAPACKELIB): $(ALLOBJ) $(ALLXOBJ)
- $(ARCH) $(ARCHFLAGS) ../../$(LAPACKELIB) $(ALLOBJ) $(ALLXOBJ)
+ $(ARCH) $(ARCHFLAGS) ../../$(LAPACKELIB) $(ALLOBJ) $(ALLXOBJ) ../../TESTING/MATGEN/*.o
$(RANLIB) ../../$(LAPACKELIB)
.c.o:
diff -up lapack-3.5.0/Makefile.tmglib lapack-3.5.0/Makefile
--- lapack-3.5.0/Makefile.tmglib 2012-04-13 14:22:32.000000000 -0400
+++ lapack-3.5.0/Makefile 2014-06-18 14:21:50.058725460 -0400
@@ -23,7 +23,7 @@ blaslib:
lapacklib: lapack_install
( cd SRC; $(MAKE) )
-lapackelib: lapacklib
+lapackelib: tmglib lapacklib
( cd lapacke; $(MAKE) )
lapacke_example: lapackelib

View File

@ -1,36 +0,0 @@
diff -up lapack-3.6.0/LAPACKE/Makefile.tmglib lapack-3.6.0/LAPACKE/Makefile
--- lapack-3.6.0/LAPACKE/Makefile.tmglib 2015-12-02 10:01:15.639679177 -0500
+++ lapack-3.6.0/LAPACKE/Makefile 2015-12-02 10:01:15.660679035 -0500
@@ -50,7 +50,7 @@ lapacke:
cd utils && $(MAKE)
shlib: lapacke
- $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LIBS) -lgfortran -lc
+ $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LIBS) -lgfortran -lc ../TESTING/MATGEN/*.o
lapacke_example:
cd example && $(MAKE)
diff -up lapack-3.6.0/LAPACKE/src/Makefile.tmglib lapack-3.6.0/LAPACKE/src/Makefile
--- lapack-3.6.0/LAPACKE/src/Makefile.tmglib 2015-12-03 12:18:04.216900463 -0500
+++ lapack-3.6.0/LAPACKE/src/Makefile 2015-12-03 12:18:15.638838677 -0500
@@ -2204,7 +2204,7 @@ OBJ_FILES := $(C_FILES:.o=.o)
all: ../../$(LAPACKELIB)
../../$(LAPACKELIB): $(ALLOBJ) $(ALLXOBJ) $(DEPRECATED)
- $(ARCH) $(ARCHFLAGS) ../../$(LAPACKELIB) $(ALLOBJ) $(ALLXOBJ) $(DEPRECATED)
+ $(ARCH) $(ARCHFLAGS) ../../$(LAPACKELIB) $(ALLOBJ) $(ALLXOBJ) $(DEPRECATED) ../../TESTING/MATGEN/*.o
$(RANLIB) ../../$(LAPACKELIB)
.c.o:
diff -up lapack-3.6.0/Makefile.tmglib lapack-3.6.0/Makefile
--- lapack-3.6.0/Makefile.tmglib 2015-11-01 11:21:47.000000000 -0500
+++ lapack-3.6.0/Makefile 2015-12-02 10:01:15.647679123 -0500
@@ -26,7 +26,7 @@ cblaslib:
lapacklib: lapack_install
( cd SRC; $(MAKE) )
-lapackelib: lapacklib
+lapackelib: tmglib lapacklib
( cd LAPACKE; $(MAKE) )
cblas_example: cblaslib blaslib

View File

@ -1,15 +0,0 @@
diff -up lapack-3.6.0/INSTALL/make.inc.gfortran.fedora lapack-3.6.0/INSTALL/make.inc.gfortran
--- lapack-3.6.0/INSTALL/make.inc.gfortran.fedora 2015-11-17 11:25:02.789918460 -0500
+++ lapack-3.6.0/INSTALL/make.inc.gfortran 2015-11-17 11:26:45.806115209 -0500
@@ -17,9 +17,9 @@ SHELL = /bin/sh
# should not compile LAPACK with flags such as -ffpe-trap=overflow.
#
FORTRAN = gfortran
-OPTS = -O2 -frecursive
+#OPTS = -O2 -frecursive
DRVOPTS = $(OPTS)
-NOOPT = -O0 -frecursive
+NOOPT =
LOADER = gfortran
LOADOPTS =
#

View File

@ -1,21 +0,0 @@
diff -up lapack-3.9.0/INSTALL/make.inc.gfortran.shared lapack-3.9.0/INSTALL/make.inc.gfortran
--- lapack-3.9.0/INSTALL/make.inc.gfortran.shared 2019-11-26 09:19:38.689118934 -0500
+++ lapack-3.9.0/INSTALL/make.inc.gfortran 2019-11-26 09:20:52.442628214 -0500
@@ -81,3 +81,4 @@ CBLASLIB = $(TOPSRCDIR)/libcblas.a
LAPACKLIB = $(TOPSRCDIR)/liblapack.a
TMGLIB = $(TOPSRCDIR)/libtmglib.a
LAPACKELIB = $(TOPSRCDIR)/liblapacke.a
+SHLIB_LAPACKE = $(TOPSRCDIR)/liblapacke.so
diff -up lapack-3.9.0/LAPACKE/Makefile.shared lapack-3.9.0/LAPACKE/Makefile
--- lapack-3.9.0/LAPACKE/Makefile.shared 2019-11-26 09:19:38.689118934 -0500
+++ lapack-3.9.0/LAPACKE/Makefile 2019-11-26 09:21:59.977268139 -0500
@@ -54,6 +54,9 @@ lapacke: include/lapacke_mangling.h
include/lapacke_mangling.h: include/lapacke_mangling_with_flags.h.in
cp include/lapacke_mangling_with_flags.h.in $@
+shlib: lapacke
+ $(CC) $(CFLAGS) -shared -Wl,-soname,liblapacke.so.@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LDFLAGS) $(LIBS) -lgfortran -lc -L.. -llapack
+
.PHONY: lapacke_example
lapacke_example: lapacke
$(MAKE) -C example

View File

@ -1,24 +0,0 @@
diff -up lapack-3.9.0/LAPACKE/Makefile.tmglib lapack-3.9.0/LAPACKE/Makefile
--- lapack-3.9.0/LAPACKE/Makefile.tmglib 2019-11-26 09:22:35.406554632 -0500
+++ lapack-3.9.0/LAPACKE/Makefile 2019-11-26 09:24:06.927711490 -0500
@@ -55,7 +55,7 @@ include/lapacke_mangling.h: include/lapa
cp include/lapacke_mangling_with_flags.h.in $@
shlib: lapacke
- $(CC) $(CFLAGS) -shared -Wl,-soname,liblapacke.so.@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LDFLAGS) $(LIBS) -lgfortran -lc -L.. -llapack
+ $(CC) $(CFLAGS) -shared -Wl,-soname,liblapacke.so.@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LDFLAGS) $(LIBS) -lgfortran -lc -L.. -llapack ../TESTING/MATGEN/*.o
.PHONY: lapacke_example
lapacke_example: lapacke
diff -up lapack-3.9.0/Makefile.tmglib lapack-3.9.0/Makefile
--- lapack-3.9.0/Makefile.tmglib 2019-11-26 09:22:35.408554591 -0500
+++ lapack-3.9.0/Makefile 2019-11-26 09:48:23.173944899 -0500
@@ -27,7 +27,7 @@ lapacklib:
$(MAKE) -C SRC
.PHONY: lapackelib
-lapackelib:
+lapackelib: tmglib
$(MAKE) -C LAPACKE
.PHONY: blaspplib

View File

@ -1,15 +0,0 @@
diff -up lapack-3.9.0/INSTALL/make.inc.gfortran.fedora lapack-3.9.0/INSTALL/make.inc.gfortran
--- lapack-3.9.0/INSTALL/make.inc.gfortran.fedora 2019-11-26 09:18:42.671256080 -0500
+++ lapack-3.9.0/INSTALL/make.inc.gfortran 2019-11-26 09:19:09.296715591 -0500
@@ -20,9 +20,9 @@ CFLAGS = -O3
# should not compile LAPACK with flags such as -ffpe-trap=overflow.
#
FC = gfortran
-FFLAGS = -O2 -frecursive
+FFLAGS =
FFLAGS_DRV = $(FFLAGS)
-FFLAGS_NOOPT = -O0 -frecursive
+FFLAGS_NOOPT =
# Define LDFLAGS to the desired linker options for your machine.
#

View File

@ -1,40 +0,0 @@
--- LAPACK/SRC/dgesdd.f.BAD 2005-10-06 22:53:05.000000000 -0500
+++ LAPACK/SRC/dgesdd.f 2005-10-06 22:55:17.000000000 -0500
@@ -294,6 +294,8 @@
*
WRKBL = 3*N + ( M+N )*ILAENV( 1, 'DGEBRD', ' ', M, N, -1,
$ -1 )
+ MAXWRK = MAX( WRKBL, BDSPAC )
+ MINWRK = BDSPAC
IF( WNTQO ) THEN
WRKBL = MAX( WRKBL, 3*N+N*
$ ILAENV( 1, 'DORMBR', 'QLN', M, N, N, -1 ) )
@@ -390,6 +392,8 @@
*
WRKBL = 3*M + ( M+N )*ILAENV( 1, 'DGEBRD', ' ', M, N, -1,
$ -1 )
+ MAXWRK = MAX( WRKBL, BDSPAC )
+ MINWRK = BDSPAC
IF( WNTQO ) THEN
WRKBL = MAX( WRKBL, 3*M+M*
$ ILAENV( 1, 'DORMBR', 'QLN', M, M, N, -1 ) )
--- LAPACK/SRC/sgesdd.f.BAD 2005-10-06 22:55:41.000000000 -0500
+++ LAPACK/SRC/sgesdd.f 2005-10-06 22:56:50.000000000 -0500
@@ -294,6 +294,8 @@
*
WRKBL = 3*N + ( M+N )*ILAENV( 1, 'SGEBRD', ' ', M, N, -1,
$ -1 )
+ MAXWRK = MAX( WRKBL, BDSPAC )
+ MINWRK = BDSPAC
IF( WNTQO ) THEN
WRKBL = MAX( WRKBL, 3*N+N*
$ ILAENV( 1, 'SORMBR', 'QLN', M, N, N, -1 ) )
@@ -390,6 +392,8 @@
*
WRKBL = 3*M + ( M+N )*ILAENV( 1, 'SGEBRD', ' ', M, N, -1,
$ -1 )
+ MAXWRK = MAX( WRKBL, BDSPAC )
+ MINWRK = BDSPAC
IF( WNTQO ) THEN
WRKBL = MAX( WRKBL, 3*M+M*
$ ILAENV( 1, 'SORMBR', 'QLN', M, M, N, -1 ) )

View File

@ -1,2 +0,0 @@
SHA512 (manpages.tgz) = 75184bbfac90f46e4fbb25b341f00c260904b5f3174084022c53c686a5181bb678fc1ec948f419d33890cb5769a60ca1000964e4bf6cc89438552e8b8fe45f2a
SHA512 (v3.9.0.tar.gz) = 424956ad941a60a4b71e0d451ad48db12a692f8a71a90f3ca7f71d6ecc1922f392746ea84df1c47a46577ed2db32e9e47ec44ad248207c5ac7da179becb712ef