Compare commits

...

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

14 changed files with 527 additions and 270 deletions

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
SOURCES/lapack-3.8.0.tar.gz
SOURCES/manpages.tgz SOURCES/manpages.tgz
SOURCES/v3.9.0.tar.gz

View File

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

View File

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

View File

@ -1,7 +1,7 @@
OBJCOPY = objcopy OBJCOPY = objcopy
ifndef SYMBOLPREFIX ifndef SYMBOLSUFFIX
SYMBOLPREFIX = SYMBOLSUFFIX =
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 "$(SYMBOLPREFIX)" "" ifeq "$(SYMBOLSUFFIX)" ""
ar ruv libcblas.a $(OBJS) ar ruv libcblas.a $(OBJS)
ranlib libcblas.a ranlib libcblas.a
else else
ar ruv libcblas$(SYMBOLPREFIX).a $(OBJS) ar ruv libcblas$(SYMBOLSUFFIX).a $(OBJS)
ranlib libcblas$(SYMBOLPREFIX).a ranlib libcblas$(SYMBOLSUFFIX).a
for i in `nm libcblas$(SYMBOLPREFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > cblas-static-prefix.def.dirty for i in `nm libcblas$(SYMBOLSUFFIX).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$(SYMBOLPREFIX).a libcblas$(SYMBOLPREFIX).a.fixed $(OBJCOPY) --redefine-syms cblas-static-prefix.def libcblas$(SYMBOLSUFFIX).a libcblas$(SYMBOLSUFFIX).a.fixed
rm -rf libcblas$(SYMBOLPREFIX).a rm -rf libcblas$(SYMBOLSUFFIX).a
mv libcblas$(SYMBOLPREFIX).a.fixed libcblas$(SYMBOLPREFIX).a mv libcblas$(SYMBOLSUFFIX).a.fixed libcblas$(SYMBOLSUFFIX).a
endif endif
shared: $(OBJS) shared: $(OBJS)
ifeq "$(SYMBOLPREFIX)" "" ifeq "$(SYMBOLSUFFIX)" ""
# 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$(SYMBOLPREFIX).so.@SHORTVER@ -o libcblas$(SYMBOLPREFIX).so.@LONGVER@ $(OBJS) $(LDFLAGS) -L../.. -lblas -lm -lgfortran -lc cc $(CFLAGS) -shared -Wl,-soname,libcblas$(SYMBOLSUFFIX).so.@SHORTVER@ -o libcblas$(SYMBOLSUFFIX).so.@LONGVER@ $(OBJS) $(LDFLAGS) -L../.. -lblas -lm -lgfortran -lc
# generate a list of all symbols in shared library and rename with SYMBOLPREFIX # generate a list of all symbols in shared library and rename with SYMBOLSUFFIX
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 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
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$(SYMBOLPREFIX).so.@LONGVER@ libcblas$(SYMBOLPREFIX).so.@LONGVER@.fixed $(OBJCOPY) --redefine-syms cblas-prefix.def libcblas$(SYMBOLSUFFIX).so.@LONGVER@ libcblas$(SYMBOLSUFFIX).so.@LONGVER@.fixed
rm -rf libcblas$(SYMBOLPREFIX).so.@LONGVER@ rm -rf libcblas$(SYMBOLSUFFIX).so.@LONGVER@
mv libcblas$(SYMBOLPREFIX).so.@LONGVER@.fixed libcblas$(SYMBOLPREFIX).so.@LONGVER@ mv libcblas$(SYMBOLSUFFIX).so.@LONGVER@.fixed libcblas$(SYMBOLSUFFIX).so.@LONGVER@
endif endif

View File

@ -2,8 +2,8 @@ include ../make.inc
OBJCOPY = objcopy OBJCOPY = objcopy
ifndef SYMBOLPREFIX ifndef SYMBOLSUFFIX
SYMBOLPREFIX = SYMBOLSUFFIX =
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 sorm2l.o sorm2r.o sorm22.o \ sorgrq.o sorgtr.o sorgtsqr.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,9 +80,11 @@ 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
@ -159,7 +161,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 cunm2l.o cunm2r.o cunmbr.o cunmhr.o cunml2.o cunm22.o \ cungrq.o cungtr.o cungtsqr.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 \
@ -173,9 +175,11 @@ 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
@ -209,7 +213,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 dorm2l.o dorm2r.o dorm22.o \ dorgrq.o dorgtr.o dorgtsqr.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 \
@ -253,9 +257,11 @@ 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
@ -332,7 +338,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 zunm2l.o zunm2r.o zunmbr.o zunmhr.o zunml2.o zunm22.o \ zungrq.o zungtr.o zungtsqr.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 \
@ -348,9 +354,11 @@ 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 \
@ -442,29 +450,29 @@ ALLXOBJ=$(SXLASRC) $(DXLASRC) $(CXLASRC) $(ZXLASRC) $(ALLXAUX)
endif endif
static: $(ALLOBJ) $(ALLXOBJ) static: $(ALLOBJ) $(ALLXOBJ)
ifeq "$(SYMBOLPREFIX)" "" ifeq "$(SYMBOLSUFFIX)" ""
ar ruv liblapack.a $(ALLOBJ) $(ALLXOBJ) ar ruv liblapack.a $(ALLOBJ) $(ALLXOBJ)
ranlib liblapack.a ranlib liblapack.a
else else
ar ruv liblapack$(SYMBOLPREFIX).a $(ALLOBJ) $(ALLXOBJ) ar ruv liblapack$(SYMBOLSUFFIX).a $(ALLOBJ) $(ALLXOBJ)
ranlib liblapack$(SYMBOLPREFIX).a ranlib liblapack$(SYMBOLSUFFIX).a
for i in `nm liblapack$(SYMBOLPREFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > lapack-static-prefix.def.dirty for i in `nm liblapack$(SYMBOLSUFFIX).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$(SYMBOLPREFIX).a liblapack$(SYMBOLPREFIX).a.fixed $(OBJCOPY) --redefine-syms lapack-static-prefix.def liblapack$(SYMBOLSUFFIX).a liblapack$(SYMBOLSUFFIX).a.fixed
rm -rf liblapack$(SYMBOLPREFIX).a rm -rf liblapack$(SYMBOLSUFFIX).a
mv liblapack$(SYMBOLPREFIX).a.fixed liblapack$(SYMBOLPREFIX).a mv liblapack$(SYMBOLSUFFIX).a.fixed liblapack$(SYMBOLSUFFIX).a
endif endif
shared: $(ALLOBJ) $(ALLXOBJ) shared: $(ALLOBJ) $(ALLXOBJ)
ifeq "$(SYMBOLPREFIX)" "" ifeq "$(SYMBOLSUFFIX)" ""
# 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$(SYMBOLPREFIX).so.@SHORTVER@ -o liblapack$(SYMBOLPREFIX).so.@LONGVER@ $(ALLOBJ) $(ALLXOBJ) $(LDFLAGS) -L.. -lblas -lm -lgfortran -lc cc $(CFLAGS) -shared -Wl,-soname,liblapack$(SYMBOLSUFFIX).so.@SHORTVER@ -o liblapack$(SYMBOLSUFFIX).so.@LONGVER@ $(ALLOBJ) $(ALLXOBJ) $(LDFLAGS) -L.. -lblas -lm -lgfortran -lc
# generate a list of all symbols in shared library and rename with SYMBOLPREFIX # generate a list of all symbols in shared library and rename with SYMBOLSUFFIX
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 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
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$(SYMBOLPREFIX).so.@LONGVER@ liblapack$(SYMBOLPREFIX).so.@LONGVER@.fixed $(OBJCOPY) --redefine-syms lapack-prefix.def liblapack$(SYMBOLSUFFIX).so.@LONGVER@ liblapack$(SYMBOLSUFFIX).so.@LONGVER@.fixed
rm -rf liblapack$(SYMBOLPREFIX).so.@LONGVER@ rm -rf liblapack$(SYMBOLSUFFIX).so.@LONGVER@
mv liblapack$(SYMBOLPREFIX).so.@LONGVER@.fixed liblapack$(SYMBOLPREFIX).so.@LONGVER@ mv liblapack$(SYMBOLSUFFIX).so.@LONGVER@.fixed liblapack$(SYMBOLSUFFIX).so.@LONGVER@
endif endif

View File

@ -1,21 +0,0 @@
diff -up lapack-3.7.1/INSTALL/make.inc.gfortran.shared lapack-3.7.1/INSTALL/make.inc.gfortran
--- lapack-3.7.1/INSTALL/make.inc.gfortran.shared 2017-08-01 11:46:10.665067382 -0400
+++ lapack-3.7.1/INSTALL/make.inc.gfortran 2017-08-01 11:46:10.667067346 -0400
@@ -83,3 +83,4 @@ CBLASLIB = ../../libcblas.a
LAPACKLIB = liblapack.a
TMGLIB = libtmglib.a
LAPACKELIB = liblapacke.a
+SHLIB_LAPACKE = liblapacke.so
diff -up lapack-3.7.1/LAPACKE/Makefile.shared lapack-3.7.1/LAPACKE/Makefile
--- lapack-3.7.1/LAPACKE/Makefile.shared 2017-08-01 11:46:10.668067328 -0400
+++ lapack-3.7.1/LAPACKE/Makefile 2017-08-01 11:47:23.649755395 -0400
@@ -51,6 +51,9 @@ lapacke: include/lapacke_mangling.h
include/lapacke_mangling.h: include/lapacke_mangling_with_flags.h.in
cp $< $@
+shlib: lapacke
+ $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LDFLAGS) $(LIBS) -lgfortran -lc
+
lapacke_example: lapacke
$(MAKE) -C example

View File

@ -1,25 +0,0 @@
diff -up lapack-3.7.1/LAPACKE/Makefile.tmglib lapack-3.7.1/LAPACKE/Makefile
--- lapack-3.7.1/LAPACKE/Makefile.tmglib 2017-08-01 11:49:38.704327630 -0400
+++ lapack-3.7.1/LAPACKE/Makefile 2017-08-01 11:50:51.487019275 -0400
@@ -52,7 +52,7 @@ include/lapacke_mangling.h: include/lapa
cp $< $@
shlib: lapacke
- $(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 ../TESTING/MATGEN/*.o
lapacke_example: lapacke
$(MAKE) -C example
diff -up lapack-3.7.1/LAPACKE/src/Makefile.tmglib lapack-3.7.1/LAPACKE/src/Makefile
diff -up lapack-3.7.1/Makefile.tmglib lapack-3.7.1/Makefile
--- lapack-3.7.1/Makefile.tmglib 2017-08-01 11:49:38.705327612 -0400
+++ lapack-3.7.1/Makefile 2017-08-01 11:52:11.149587246 -0400
@@ -20,7 +20,7 @@ cblaslib:
lapacklib:
$(MAKE) -C SRC
-lapackelib:
+lapackelib: tmglib
$(MAKE) -C LAPACKE
tmglib:

View File

@ -1,15 +0,0 @@
diff -up lapack-3.7.1/INSTALL/make.inc.gfortran.fedora lapack-3.7.1/INSTALL/make.inc.gfortran
--- lapack-3.7.1/INSTALL/make.inc.gfortran.fedora 2017-08-01 11:44:51.631843862 -0400
+++ lapack-3.7.1/INSTALL/make.inc.gfortran 2017-08-01 11:45:32.001809404 -0400
@@ -20,9 +20,9 @@ CFLAGS = -O3
# 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 =
# Define LOADER and LOADOPTS to refer to the loader and desired
# load options for your machine.

View File

@ -1,19 +0,0 @@
diff -up lapack-3.8.0/LAPACKE/src/Makefile.missing-aawork lapack-3.8.0/LAPACKE/src/Makefile
--- lapack-3.8.0/LAPACKE/src/Makefile.missing-aawork 2018-02-26 15:44:06.754611865 -0500
+++ lapack-3.8.0/LAPACKE/src/Makefile 2018-02-26 15:44:39.925820302 -0500
@@ -1101,6 +1101,7 @@ lapacke_dsytrf_work.o \
lapacke_dsytrf_rook.o \
lapacke_dsytrf_rook_work.o \
lapacke_dsytrf_aa.o \
+lapacke_dsytrf_aa_work.o \
lapacke_dsytrf_aa_2stage.o \
lapacke_dsytrf_aa_2stage_work.o \
lapacke_dsytrf_rk.o \
@@ -1661,6 +1662,7 @@ lapacke_ssytrf_work.o \
lapacke_ssytrf_rook.o \
lapacke_ssytrf_rook_work.o \
lapacke_ssytrf_aa.o \
+lapacke_ssytrf_aa_work.o \
lapacke_ssytrf_aa_2stage.o \
lapacke_ssytrf_aa_2stage_work.o \
lapacke_ssytrf_rk.o \

View File

@ -0,0 +1,21 @@
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

@ -0,0 +1,24 @@
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

@ -0,0 +1,15 @@
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,5 +1,5 @@
%global shortver 3 %global shortver 3
%global mediumver %{shortver}.8 %global mediumver %{shortver}.9
%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,27 +10,28 @@
Summary: Numerical linear algebra package libraries Summary: Numerical linear algebra package libraries
Name: lapack Name: lapack
Version: %{mediumver}.0 Version: %{mediumver}.0
Release: 8%{?dist} Release: 10%{?dist}
License: BSD License: BSD
Group: System Environment/Libraries
URL: http://www.netlib.org/lapack/ URL: http://www.netlib.org/lapack/
Source0: http://www.netlib.org/lapack/lapack-%{version}.tar.gz Source0: https://github.com/Reference-LAPACK/lapack/archive/v%{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.7.1-make.inc.patch Patch3: lapack-3.9.0-make.inc.patch
Patch4: lapack-3.7.1-lapacke-shared.patch Patch4: lapack-3.9.0-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.7.1-lapacke-tmglib.patch Patch7: lapack-3.9.0-lapacke-tmglib.patch
Patch8: lapack-3.8.0-missing-aawork.patch # Bugzilla 1814756
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}
%description %global _description_lapack %{expand:
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
@ -42,19 +43,18 @@ 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.
}
%package devel %global _description_blas %{expand:
Summary: LAPACK development libraries BLAS (Basic Linear Algebra Subprograms) is a standard library which
Group: Development/Libraries provides a number of basic algorithms for numerical algebra.
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,93 +62,79 @@ 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 -n blas %_description_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 -n lapack64 %_description_lapack
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 -n blas64 %_description_blas
BLAS (Basic Linear Algebra Subprograms) is a standard library which This build has 64bit INTEGER support.
provides a number of basic algorithms for numerical algebra. This build
has 64bit INTEGER support.
%package -n blas64-devel %package -n lapack64_
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
Group: Development/Libraries Requires: blas%{?_isa} = %{version}-%{release}
Requires: blas64%{?_isa} = %{version}-%{release} Requires: blas64%{?_isa} = %{version}-%{release}
Requires: blas-devel%{?_isa} = %{version}-%{release} Requires: blas64_%{?_isa} = %{version}-%{release}
Requires: gcc-gfortran Requires: gcc-gfortran
%description -n blas64-devel %description -n blas-devel
BLAS development libraries (shared). BLAS development libraries (shared).
%else
%package devel
Summary: LAPACK development libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: blas-devel%{?_isa} = %{version}-%{release}
%package -n blas64-static %description devel
Summary: BLAS static libraries (64bit INTEGER) LAPACK development libraries (shared).
Group: Development/Libraries
Requires: blas64-devel%{?_isa} = %{version}-%{release}
%description -n blas64-static %package -n blas-devel
BLAS static libraries (64bit INTEGER). Summary: BLAS development libraries
Requires: blas%{?_isa} = %{version}-%{release}
Requires: gcc-gfortran
%description -n blas-devel
BLAS development libraries (shared).
%endif %endif
%prep %prep
@ -159,7 +145,7 @@ BLAS static libraries (64bit INTEGER).
# %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 .missing-aawork %patch8 -p1 -b .bz1814756
mkdir manpages mkdir manpages
mv man/ manpages/ mv man/ manpages/
@ -179,7 +165,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" RPM_OPT_FLAGS="$RPM_OPT_FLAGS -frecursive --no-optimize-sibling-calls"
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
@ -195,17 +181,26 @@ 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
SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" make static 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
SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" LDFLAGS="%{build_ldflags}" make shared SYMBOLSUFFIX="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
@ -219,22 +214,29 @@ 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
SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -I../include" make static 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
SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -I../include" LDFLAGS="%{build_ldflags}" make shared SYMBOLSUFFIX="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 NOOPT="$RPM_OPT_O_FLAGS" OPTS="$RPM_OPT_FLAGS" make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS" FFLAGS="$RPM_OPT_FLAGS"
popd popd
# Build the static lapack library # Build the static lapack library
@ -246,7 +248,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 NOOPT="$RPM_OPT_O_FLAGS -fPIC" OPTS="$RPM_OPT_FLAGS -fPIC" make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fPIC" FFLAGS="$RPM_OPT_FLAGS -fPIC"
popd popd
# Build the static with pic lapack library # Build the static with pic lapack library
@ -259,33 +261,61 @@ 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 NOOPT="$RPM_OPT_O_FLAGS -fdefault-integer-8" OPTS="$RPM_OPT_FLAGS -fdefault-integer-8" make clean
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 SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" static make clean
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 NOOPT="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" OPTS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" FFLAGS="$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 SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" static make SYMBOLSUFFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" static
cp liblapack64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64_pic.a cp liblapack64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack_pic64_.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 NOOPT="$RPM_OPT_O_FLAGS -fPIC" OPTS="$RPM_OPT_FLAGS -fPIC" make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fPIC" FFLAGS="$RPM_OPT_FLAGS -fPIC"
popd popd
# Build the shared lapack library # Build the shared lapack library
@ -299,47 +329,64 @@ 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 NOOPT="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" OPTS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" FFLAGS="$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 SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" LDFLAGS="%{build_ldflags}" shared make 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 OPTS="$RPM_OPT_FLAGS -fPIC" NOOPT="$RPM_OPT_O_FLAGS -fPIC" tmglib make FFLAGS="$RPM_OPT_FLAGS -fPIC" FFLAGS_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 ${RPM_BUILD_ROOT}%{_libdir} mkdir -p %{buildroot}%{_libdir}
mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man3 mkdir -p %{buildroot}%{_mandir}/man3
chmod 755 ${RPM_BUILD_ROOT}%{_mandir}/man3 chmod 755 %{buildroot}%{_mandir}/man3
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 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
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} libblas64_.a libcblas64_.a liblapack64_.a liblapack64_pic.a; do for f in liblapack64.so.%{version} libblas64.so.%{version} libcblas64.so.%{version} \
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
@ -389,6 +436,12 @@ 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
@ -402,7 +455,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 ${RPM_BUILD_ROOT}%{_libdir} pushd %{buildroot}%{_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}
@ -416,6 +469,15 @@ 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}
@ -436,8 +498,11 @@ 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
@ -445,7 +510,9 @@ 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
@ -457,26 +524,23 @@ 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
%post -p /sbin/ldconfig %ldconfig_scriptlets
%postun -p /sbin/ldconfig %ldconfig_scriptlets -n blas
%post -n blas -p /sbin/ldconfig
%postun -n blas -p /sbin/ldconfig
%if 0%{?arch64} %if 0%{?arch64}
%post -n lapack64 -p /sbin/ldconfig %ldconfig_scriptlets -n lapack64
%ldconfig_scriptlets -n lapack64_
%postun -n lapack64 -p /sbin/ldconfig %ldconfig_scriptlets -n blas64
%ldconfig_scriptlets -n blas64_
%post -n blas64 -p /sbin/ldconfig
%postun -n blas64 -p /sbin/ldconfig
%endif %endif
%files -f lapackmans %files -f lapackmans
@ -490,11 +554,23 @@ sed -i 's|Requires.private: blas|Requires.private: blas64|g' %{buildroot}%{_libd
%{_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
@ -507,41 +583,96 @@ sed -i 's|Requires.private: blas|Requires.private: blas64|g' %{buildroot}%{_libd
%{_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}/libblas64.so.*
%{_libdir}/libcblas64_.so.* %{_libdir}/libcblas64.so.*
%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 %files -n lapack64
%doc README.md LICENSE %doc README.md LICENSE
%{_libdir}/liblapack64.so.*
%files -n blas64_
%doc LICENSE
%{_libdir}/libblas64_.so.*
%{_libdir}/libcblas64_.so.*
%files -n lapack64_
%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