diff --git a/87536aa3c8bb0af00f66088fb6ac05d87509e011.patch b/87536aa3c8bb0af00f66088fb6ac05d87509e011.patch new file mode 100644 index 0000000000000000000000000000000000000000..9c0fb4e56e55d9490e0ba54dcc01a6f50942ce98 --- /dev/null +++ b/87536aa3c8bb0af00f66088fb6ac05d87509e011.patch @@ -0,0 +1,138 @@ +From 87536aa3c8bb0af00f66088fb6ac05d87509e011 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= +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, diff --git a/Makefile.blas b/Makefile.blas index 94bd165cf2aba7015ca81e6bd48a2294a64d0b51..5cfb09230560cc5e948033395e0ca46c07b7897d 100644 --- a/Makefile.blas +++ b/Makefile.blas @@ -1,7 +1,7 @@ OBJCOPY = objcopy -ifndef SYMBOLPREFIX -SYMBOLPREFIX = +ifndef SYMBOLSUFFIX +SYMBOLSUFFIX = endif clean: @@ -56,29 +56,29 @@ OBJS= $(SBLAS1) $(SBLAS2) $(SBLAS3) $(DBLAS1) $(DBLAS2) $(DBLAS3) \ $(ALLBLAS) static: $(OBJS) -ifeq "$(SYMBOLPREFIX)" "" +ifeq "$(SYMBOLSUFFIX)" "" ar ruv libblas.a $(OBJS) ranlib libblas.a else - ar ruv libblas$(SYMBOLPREFIX).a $(OBJS) - ranlib libblas$(SYMBOLPREFIX).a - for i in `nm libblas$(SYMBOLPREFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > blas-static-prefix.def.dirty + ar ruv libblas$(SYMBOLSUFFIX).a $(OBJS) + ranlib libblas$(SYMBOLSUFFIX).a + 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 - $(OBJCOPY) --redefine-syms blas-static-prefix.def libblas$(SYMBOLPREFIX).a libblas$(SYMBOLPREFIX).a.fixed - rm -rf libblas$(SYMBOLPREFIX).a - mv libblas$(SYMBOLPREFIX).a.fixed libblas$(SYMBOLPREFIX).a + $(OBJCOPY) --redefine-syms blas-static-prefix.def libblas$(SYMBOLSUFFIX).a libblas$(SYMBOLSUFFIX).a.fixed + rm -rf libblas$(SYMBOLSUFFIX).a + mv libblas$(SYMBOLSUFFIX).a.fixed libblas$(SYMBOLSUFFIX).a endif shared: $(OBJS) -ifeq "$(SYMBOLPREFIX)" "" +ifeq "$(SYMBOLSUFFIX)" "" # No renaming needed cc $(CFLAGS) -shared -Wl,-soname,libblas.so.@SHORTVER@ -o libblas.so.@LONGVER@ $(OBJS) $(LDFLAGS) -lm -lgfortran -lc else - 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 SYMBOLPREFIX - 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 + 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 SYMBOLSUFFIX + 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 - $(OBJCOPY) --redefine-syms blas-prefix.def libblas$(SYMBOLPREFIX).so.@LONGVER@ libblas$(SYMBOLPREFIX).so.@LONGVER@.fixed - rm -rf libblas$(SYMBOLPREFIX).so.@LONGVER@ - mv libblas$(SYMBOLPREFIX).so.@LONGVER@.fixed libblas$(SYMBOLPREFIX).so.@LONGVER@ + $(OBJCOPY) --redefine-syms blas-prefix.def libblas$(SYMBOLSUFFIX).so.@LONGVER@ libblas$(SYMBOLSUFFIX).so.@LONGVER@.fixed + rm -rf libblas$(SYMBOLSUFFIX).so.@LONGVER@ + mv libblas$(SYMBOLSUFFIX).so.@LONGVER@.fixed libblas$(SYMBOLSUFFIX).so.@LONGVER@ endif diff --git a/Makefile.cblas b/Makefile.cblas index 9318b69f260fd489490813f61ff83d54c9981d7c..cb98d2ee0fd455053d589740683500b487e33868 100644 --- a/Makefile.cblas +++ b/Makefile.cblas @@ -1,7 +1,7 @@ OBJCOPY = objcopy -ifndef SYMBOLPREFIX -SYMBOLPREFIX = +ifndef SYMBOLSUFFIX +SYMBOLSUFFIX = endif clean: @@ -70,30 +70,30 @@ OBJS= $(SLEV1) $(DLEV1) $(CLEV1) $(ZLEV1) $(SCLEV1) $(SLEV2) $(DLEV2) $(CLEV2) \ $(ZLEV2) $(SLEV3) $(DLEV3) $(CLEV3) $(ZLEV3) $(ERRHAND) static: $(OBJS) -ifeq "$(SYMBOLPREFIX)" "" +ifeq "$(SYMBOLSUFFIX)" "" ar ruv libcblas.a $(OBJS) ranlib libcblas.a else - ar ruv libcblas$(SYMBOLPREFIX).a $(OBJS) - ranlib libcblas$(SYMBOLPREFIX).a - for i in `nm libcblas$(SYMBOLPREFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > cblas-static-prefix.def.dirty + ar ruv libcblas$(SYMBOLSUFFIX).a $(OBJS) + ranlib libcblas$(SYMBOLSUFFIX).a + 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 - $(OBJCOPY) --redefine-syms cblas-static-prefix.def libcblas$(SYMBOLPREFIX).a libcblas$(SYMBOLPREFIX).a.fixed - rm -rf libcblas$(SYMBOLPREFIX).a - mv libcblas$(SYMBOLPREFIX).a.fixed libcblas$(SYMBOLPREFIX).a + $(OBJCOPY) --redefine-syms cblas-static-prefix.def libcblas$(SYMBOLSUFFIX).a libcblas$(SYMBOLSUFFIX).a.fixed + rm -rf libcblas$(SYMBOLSUFFIX).a + mv libcblas$(SYMBOLSUFFIX).a.fixed libcblas$(SYMBOLSUFFIX).a endif shared: $(OBJS) -ifeq "$(SYMBOLPREFIX)" "" +ifeq "$(SYMBOLSUFFIX)" "" # No renaming needed cc $(CFLAGS) -shared -Wl,-soname,libcblas.so.@SHORTVER@ -o libcblas.so.@LONGVER@ $(OBJS) $(LDFLAGS) -L../../ -lblas -lm -lgfortran -lc else - 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 SYMBOLPREFIX - 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 + 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 SYMBOLSUFFIX + 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 - $(OBJCOPY) --redefine-syms cblas-prefix.def libcblas$(SYMBOLPREFIX).so.@LONGVER@ libcblas$(SYMBOLPREFIX).so.@LONGVER@.fixed - rm -rf libcblas$(SYMBOLPREFIX).so.@LONGVER@ - mv libcblas$(SYMBOLPREFIX).so.@LONGVER@.fixed libcblas$(SYMBOLPREFIX).so.@LONGVER@ + $(OBJCOPY) --redefine-syms cblas-prefix.def libcblas$(SYMBOLSUFFIX).so.@LONGVER@ libcblas$(SYMBOLSUFFIX).so.@LONGVER@.fixed + rm -rf libcblas$(SYMBOLSUFFIX).so.@LONGVER@ + mv libcblas$(SYMBOLSUFFIX).so.@LONGVER@.fixed libcblas$(SYMBOLSUFFIX).so.@LONGVER@ endif diff --git a/Makefile.lapack b/Makefile.lapack index 07661ef16cb6bf5f51596b3b932fd44bef7b78e8..6b4328d82bb4ce74985149fcfe85f0bc2171c2a8 100644 --- a/Makefile.lapack +++ b/Makefile.lapack @@ -2,8 +2,8 @@ include ../make.inc OBJCOPY = objcopy -ifndef SYMBOLPREFIX -SYMBOLPREFIX = +ifndef SYMBOLSUFFIX +SYMBOLSUFFIX = endif 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 \ 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 \ - 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 \ sormr3.o sormrq.o sormrz.o sormtr.o spbcon.o spbequ.o spbrfs.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 \ sgelq.o slaswlq.o slamswlq.o sgemlq.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 \ ssyevd_2stage.o ssyev_2stage.o ssyevx_2stage.o ssyevr_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/sggsvd.o DEPRECATED/sggsvp.o DEPRECATED/slahrd.o DEPRECATED/slatzm.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 \ 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 \ - 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 \ 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 \ @@ -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 \ cgelq.o claswlq.o clamswlq.o cgemlq.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 \ cheevd_2stage.o cheev_2stage.o cheevx_2stage.o cheevr_2stage.o \ chbev_2stage.o chbevx_2stage.o chbevd_2stage.o chegv_2stage.o \ + cgesvdq.o \ DEPRECATED/cgegs.o DEPRECATED/cgegv.o \ DEPRECATED/cgeqpf.o DEPRECATED/cgelsx.o DEPRECATED/cggsvd.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 \ dlauum.o dopgtr.o dopmtr.o dorg2l.o dorg2r.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 \ dormr3.o dormrq.o dormrz.o dormtr.o dpbcon.o dpbequ.o dpbrfs.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 \ dgelq.o dlaswlq.o dlamswlq.o dgemlq.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 \ dsyevd_2stage.o dsyev_2stage.o dsyevx_2stage.o dsyevr_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/dgeqpf.o DEPRECATED/dgelsx.o DEPRECATED/dggsvd.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 \ 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 \ - 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 \ zunmtr.o zupgtr.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 \ zgetsls.o zgeqr.o zlatsqr.o zlamtsqr.o zgemqr.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 \ zheevd_2stage.o zheev_2stage.o zheevx_2stage.o zheevr_2stage.o \ zhbev_2stage.o zhbevx_2stage.o zhbevd_2stage.o zhegv_2stage.o \ + zgesvdq.o \ SCLAUX = sbdsdc.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 static: $(ALLOBJ) $(ALLXOBJ) -ifeq "$(SYMBOLPREFIX)" "" +ifeq "$(SYMBOLSUFFIX)" "" ar ruv liblapack.a $(ALLOBJ) $(ALLXOBJ) ranlib liblapack.a else - ar ruv liblapack$(SYMBOLPREFIX).a $(ALLOBJ) $(ALLXOBJ) - ranlib liblapack$(SYMBOLPREFIX).a - for i in `nm liblapack$(SYMBOLPREFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > lapack-static-prefix.def.dirty + ar ruv liblapack$(SYMBOLSUFFIX).a $(ALLOBJ) $(ALLXOBJ) + ranlib liblapack$(SYMBOLSUFFIX).a + 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 - $(OBJCOPY) --redefine-syms lapack-static-prefix.def liblapack$(SYMBOLPREFIX).a liblapack$(SYMBOLPREFIX).a.fixed - rm -rf liblapack$(SYMBOLPREFIX).a - mv liblapack$(SYMBOLPREFIX).a.fixed liblapack$(SYMBOLPREFIX).a + $(OBJCOPY) --redefine-syms lapack-static-prefix.def liblapack$(SYMBOLSUFFIX).a liblapack$(SYMBOLSUFFIX).a.fixed + rm -rf liblapack$(SYMBOLSUFFIX).a + mv liblapack$(SYMBOLSUFFIX).a.fixed liblapack$(SYMBOLSUFFIX).a endif shared: $(ALLOBJ) $(ALLXOBJ) -ifeq "$(SYMBOLPREFIX)" "" +ifeq "$(SYMBOLSUFFIX)" "" # No renaming needed cc $(CFLAGS) -shared -Wl,-soname,liblapack.so.@SHORTVER@ -o liblapack.so.@LONGVER@ $(ALLOBJ) $(ALLXOBJ) $(LDFLAGS) -L.. -lblas -lm -lgfortran -lc else - 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 SYMBOLPREFIX - 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 + 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 SYMBOLSUFFIX + 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 - $(OBJCOPY) --redefine-syms lapack-prefix.def liblapack$(SYMBOLPREFIX).so.@LONGVER@ liblapack$(SYMBOLPREFIX).so.@LONGVER@.fixed - rm -rf liblapack$(SYMBOLPREFIX).so.@LONGVER@ - mv liblapack$(SYMBOLPREFIX).so.@LONGVER@.fixed liblapack$(SYMBOLPREFIX).so.@LONGVER@ + $(OBJCOPY) --redefine-syms lapack-prefix.def liblapack$(SYMBOLSUFFIX).so.@LONGVER@ liblapack$(SYMBOLSUFFIX).so.@LONGVER@.fixed + rm -rf liblapack$(SYMBOLSUFFIX).so.@LONGVER@ + mv liblapack$(SYMBOLSUFFIX).so.@LONGVER@.fixed liblapack$(SYMBOLSUFFIX).so.@LONGVER@ endif diff --git a/lapack-3.7.1-lapacke-shared.patch b/lapack-3.7.1-lapacke-shared.patch deleted file mode 100644 index 1b4d4ea423e7e8899b72c798bf2d59de2aa0491c..0000000000000000000000000000000000000000 --- a/lapack-3.7.1-lapacke-shared.patch +++ /dev/null @@ -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 - diff --git a/lapack-3.7.1-lapacke-tmglib.patch b/lapack-3.7.1-lapacke-tmglib.patch deleted file mode 100644 index fd3c8596cbe1158d782c9e2d25ef77d76b9068c1..0000000000000000000000000000000000000000 --- a/lapack-3.7.1-lapacke-tmglib.patch +++ /dev/null @@ -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: diff --git a/lapack-3.7.1-make.inc.patch b/lapack-3.7.1-make.inc.patch deleted file mode 100644 index 20071f60ad9c598eab3337210d083d92eef8fa87..0000000000000000000000000000000000000000 --- a/lapack-3.7.1-make.inc.patch +++ /dev/null @@ -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. diff --git a/lapack-3.8.0-missing-aawork.patch b/lapack-3.8.0-missing-aawork.patch deleted file mode 100644 index 1dcbbe1cedc1723e08cd3d3535f3510fdab512d2..0000000000000000000000000000000000000000 --- a/lapack-3.8.0-missing-aawork.patch +++ /dev/null @@ -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 \ diff --git a/lapack-3.9.0-lapacke-shared.patch b/lapack-3.9.0-lapacke-shared.patch new file mode 100644 index 0000000000000000000000000000000000000000..2cfd6681ef2377fe8fdf84e6d3c0ef0609a1619f --- /dev/null +++ b/lapack-3.9.0-lapacke-shared.patch @@ -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 diff --git a/lapack-3.9.0-lapacke-tmglib.patch b/lapack-3.9.0-lapacke-tmglib.patch new file mode 100644 index 0000000000000000000000000000000000000000..0dbe50fa6f48181ab684df76c9d602e753dbe283 --- /dev/null +++ b/lapack-3.9.0-lapacke-tmglib.patch @@ -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 diff --git a/lapack-3.9.0-make.inc.patch b/lapack-3.9.0-make.inc.patch new file mode 100644 index 0000000000000000000000000000000000000000..401dcfa1747d6f7142ad67d5f4a187f391a36d7f --- /dev/null +++ b/lapack-3.9.0-make.inc.patch @@ -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. + # diff --git a/lapack.spec b/lapack.spec index f0310c58b17d38c4c4045650da5ceb11d67d4c47..9d90c39c6f0838c8f291be1eb1ee86c6887b8f45 100644 --- a/lapack.spec +++ b/lapack.spec @@ -1,5 +1,5 @@ %global shortver 3 -%global mediumver %{shortver}.8 +%global mediumver %{shortver}.9 %if %{?__isa_bits:%{__isa_bits}}%{!?__isa_bits:32} == 64 %global arch64 1 @@ -12,25 +12,26 @@ Name: lapack Version: %{mediumver}.0 Release: 8%{?dist} License: BSD -Group: System Environment/Libraries 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 Source2: Makefile.blas Source3: Makefile.lapack Source4: http://www.netlib.org/lapack/lapackqref.ps Source5: http://www.netlib.org/blas/blasqr.ps Source6: Makefile.cblas -Patch3: lapack-3.7.1-make.inc.patch -Patch4: lapack-3.7.1-lapacke-shared.patch +Patch3: lapack-3.9.0-make.inc.patch +Patch4: lapack-3.9.0-lapacke-shared.patch Patch5: lapack-3.4.1-lapacke-disable-testing-functions.patch Patch6: lapack-3.5.0-lapacke-matgenobj.patch -Patch7: lapack-3.7.1-lapacke-tmglib.patch -Patch8: lapack-3.8.0-missing-aawork.patch +Patch7: lapack-3.9.0-lapacke-tmglib.patch +# Bugzilla 1814756 +Patch8: https://github.com/Reference-LAPACK/lapack/commit/87536aa3c8bb0af00f66088fb6ac05d87509e011.patch BuildRequires: gcc-gfortran, gawk +BuildRequires: make Requires: blas%{?_isa} = %{version}-%{release} -%description +%global _description_lapack %{expand: 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 @@ -42,10 +43,17 @@ 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. +} + +%global _description_blas %{expand: +BLAS (Basic Linear Algebra Subprograms) is a standard library which +provides a number of basic algorithms for numerical algebra. +} + +%description %_description_lapack %package devel Summary: LAPACK development libraries -Group: Development/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} Requires: blas-devel%{?_isa} = %{version}-%{release} @@ -54,7 +62,6 @@ LAPACK development libraries (shared). %package static Summary: LAPACK static libraries -Group: Development/Libraries Requires: lapack-devel%{?_isa} = %{version}-%{release} %description static @@ -62,15 +69,11 @@ LAPACK static libraries. %package -n blas Summary: The Basic Linear Algebra Subprograms library -Group: System Environment/Libraries -%description -n blas -BLAS (Basic Linear Algebra Subprograms) is a standard library which -provides a number of basic algorithms for numerical algebra. +%description -n blas %_description_blas %package -n blas-devel Summary: BLAS development libraries -Group: Development/Libraries Requires: blas%{?_isa} = %{version}-%{release} Requires: gcc-gfortran @@ -79,7 +82,6 @@ BLAS development libraries (shared). %package -n blas-static Summary: BLAS static libraries -Group: Development/Libraries Requires: blas-devel%{?_isa} = %{version}-%{release} %description -n blas-static @@ -88,67 +90,29 @@ BLAS static libraries. %if 0%{?arch64} %package -n lapack64 Summary: Numerical linear algebra package libraries -Group: System Environment/Libraries Requires: blas64%{?_isa} = %{version}-%{release} -%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. +%description -n lapack64 %_description_lapack 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 Summary: The Basic Linear Algebra Subprograms library (64bit INTEGER) -Group: System Environment/Libraries -%description -n blas64 -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. +%description -n blas64 %_description_blas +This build has 64bit INTEGER support. -%package -n blas64-devel -Summary: BLAS development libraries -Group: Development/Libraries -Requires: blas64%{?_isa} = %{version}-%{release} -Requires: blas-devel%{?_isa} = %{version}-%{release} -Requires: gcc-gfortran +%package -n lapack64_ +Summary: Numerical linear algebra package libraries +Requires: blas64_%{?_isa} = %{version}-%{release} -%description -n blas64-devel -BLAS development libraries (shared). +%description -n lapack64_ %_description_lapack +This build has 64bit INTEGER support and a symbol name suffix. -%package -n blas64-static -Summary: BLAS static libraries (64bit INTEGER) -Group: Development/Libraries -Requires: blas64-devel%{?_isa} = %{version}-%{release} +%package -n blas64_ +Summary: The Basic Linear Algebra Subprograms library (64bit INTEGER) -%description -n blas64-static -BLAS static libraries (64bit INTEGER). +%description -n blas64_ %_description_blas +This build has 64bit INTEGER support and a symbol name suffix. %endif %prep @@ -159,7 +123,7 @@ BLAS static libraries (64bit INTEGER). # %patch5 -p1 -b .disable-functions # %patch6 -p1 -b .matgenobj %patch7 -p1 -b .tmglib -%patch8 -p1 -b .missing-aawork +%patch8 -p1 -b .bz1814756 mkdir manpages mv man/ manpages/ @@ -179,7 +143,7 @@ sed -i "s|@LONGVER@|%{version}|g" LAPACKE/Makefile sed -i "s|@LONGVER@|%{version}|g" CBLAS/src/Makefile %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|') export FC=gfortran @@ -195,17 +159,26 @@ cp libblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/ %if 0%{?arch64} make clean 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 make clean 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} %endif popd ln -s libblas.so.%{version} libblas.so %if 0%{?arch64} +ln -s libblas64.so.%{version} libblas64.so ln -s libblas64_.so.%{version} libblas64_.so %endif @@ -219,22 +192,29 @@ FFLAGS="$RPM_OPT_FLAGS -fPIC" CFLAGS="$RPM_OPT_FLAGS -fPIC -I../include" LDFLAGS cp libcblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/ %if 0%{?arch64} 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 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} %endif popd ln -s libcblas.so.%{version} libcblas.so %if 0%{?arch64} +ln -s libcblas64.so.%{version} libcblas64.so ln -s libcblas64_.so.%{version} libcblas64_.so %endif # Build the static dlamch, dsecnd, lsame, second, slamch bits pushd INSTALL -make NOOPT="$RPM_OPT_O_FLAGS" OPTS="$RPM_OPT_FLAGS" +make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS" FFLAGS="$RPM_OPT_FLAGS" popd # Build the static lapack library @@ -246,7 +226,7 @@ popd # Build the static with pic dlamch, dsecnd, lsame, second, slamch bits pushd INSTALL 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 # Build the static with pic lapack library @@ -259,33 +239,61 @@ popd %if 0%{?arch64} # Build the static dlamch, dsecnd, lsame, second, slamch bits 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 # Build the static lapack library 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 popd # Build the static with pic dlamch, dsecnd, lsame, second, slamch bits (64bit INTEGER) pushd INSTALL 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 # Build the static with pic lapack library (64bit INTEGER) pushd SRC make clean -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}/liblapack64_pic.a +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}/liblapack_pic64_.a popd %endif # Build the shared dlamch, dsecnd, lsame, second, slamch bits pushd INSTALL 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 # Build the shared lapack library @@ -299,47 +307,64 @@ popd # Build the shared dlamch, dsecnd, lsame, second, slamch bits pushd INSTALL 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 # Build the shared lapack library pushd SRC 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} popd %endif ln -s liblapack.so.%{version} liblapack.so - %if 0%{?arch64} +ln -s liblapack64.so.%{version} liblapack64.so ln -s liblapack64_.so.%{version} liblapack64_.so %endif # 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 make clean make CFLAGS="$RPM_OPT_FLAGS" BUILD_DEPRECATED="true" lapacke make clean 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 cp -p %{SOURCE4} lapackqref.ps cp -p %{SOURCE5} blasqr.ps %install -mkdir -p ${RPM_BUILD_ROOT}%{_libdir} -mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man3 -chmod 755 ${RPM_BUILD_ROOT}%{_mandir}/man3 +mkdir -p %{buildroot}%{_libdir} +mkdir -p %{buildroot}%{_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 done %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 done %endif @@ -402,7 +427,7 @@ cp -a CBLAS/include/*.h %{buildroot}%{_includedir}/cblas/ mkdir -p %{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.%{shortver} ln -sf liblapack.so.%{version} liblapack.so.%{mediumver} @@ -416,6 +441,15 @@ ln -sf liblapacke.so.%{version} liblapacke.so ln -sf liblapacke.so.%{version} liblapacke.so.%{shortver} ln -sf liblapacke.so.%{version} liblapacke.so.%{mediumver} %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.%{shortver} ln -sf liblapack64_.so.%{version} liblapack64_.so.%{mediumver} @@ -436,8 +470,11 @@ sed -i 's|@CMAKE_INSTALL_FULL_INCLUDEDIR@|%{_includedir}|g' %{buildroot}%{_libdi sed -i 's|@LAPACK_VERSION@|%{version}|g' %{buildroot}%{_libdir}/pkgconfig/lapack.pc %if 0%{?arch64} 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 +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 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 @@ -445,7 +482,9 @@ sed -i 's|@CMAKE_INSTALL_FULL_INCLUDEDIR@|%{_includedir}|g' %{buildroot}%{_libdi sed -i 's|@LAPACK_VERSION@|%{version}|g' %{buildroot}%{_libdir}/pkgconfig/blas.pc %if 0%{?arch64} 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 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 @@ -457,26 +496,23 @@ sed -i 's|@CMAKE_INSTALL_FULL_INCLUDEDIR@|%{_includedir}/cblas|g' %{buildroot}%{ sed -i 's|@LAPACK_VERSION@|%{version}|g' %{buildroot}%{_libdir}/pkgconfig/cblas.pc %if 0%{?arch64} 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 +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 -%post -p /sbin/ldconfig +%ldconfig_scriptlets -%postun -p /sbin/ldconfig - -%post -n blas -p /sbin/ldconfig - -%postun -n blas -p /sbin/ldconfig +%ldconfig_scriptlets -n blas %if 0%{?arch64} -%post -n lapack64 -p /sbin/ldconfig - -%postun -n lapack64 -p /sbin/ldconfig - -%post -n blas64 -p /sbin/ldconfig +%ldconfig_scriptlets -n lapack64 +%ldconfig_scriptlets -n lapack64_ -%postun -n blas64 -p /sbin/ldconfig +%ldconfig_scriptlets -n blas64 +%ldconfig_scriptlets -n blas64_ %endif %files -f lapackmans @@ -490,11 +526,23 @@ sed -i 's|Requires.private: blas|Requires.private: blas64|g' %{buildroot}%{_libd %{_libdir}/liblapacke.so %{_libdir}/pkgconfig/lapack.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 %{_libdir}/liblapack.a %{_libdir}/liblapack_pic.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 %doc blasqr.ps LICENSE @@ -507,41 +555,88 @@ sed -i 's|Requires.private: blas|Requires.private: blas64|g' %{buildroot}%{_libd %{_libdir}/libcblas.so %{_libdir}/pkgconfig/blas.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 %{_libdir}/libblas.a %{_libdir}/libcblas.a +%if 0%{?arch64} +%{_libdir}/libblas64.a +%{_libdir}/libcblas64.a +%{_libdir}/libblas64_.a +%{_libdir}/libcblas64_.a +%endif %if 0%{?arch64} %files -n blas64 %doc LICENSE -%{_libdir}/libblas64_.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 +%{_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 blas64_ +%doc LICENSE +%{_libdir}/libblas64_.so.* +%{_libdir}/libcblas64_.so.* -%files -n lapack64-static -%{_libdir}/liblapack64_.a -%{_libdir}/liblapack64_pic.a +%files -n lapack64_ +%doc README.md LICENSE +%{_libdir}/liblapack64_.so.* %endif %changelog +* Mon Aug 09 2021 Mohan Boddu - 3.9.0-8 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Fri Apr 16 2021 Mohan Boddu - 3.9.0-7 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Tue Jan 26 2021 Fedora Release Engineering - 3.9.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 3.9.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Sun Jun 21 2020 Iñaki Úcar - 3.9.0-4 +- make separate packages for 64-bit versions with and without suffix (bz1295965) + +* Thu Mar 19 2020 Tom Callaway - 3.9.0-3 +- apply upstream fix for accidental removal of deprecated symbols from header file + +* Wed Jan 29 2020 Fedora Release Engineering - 3.9.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Nov 26 2019 Tom Callaway - 3.9.0-1 +- update to 3.9.0 + +* Thu Jul 25 2019 Fedora Release Engineering - 3.8.0-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed May 29 2019 Tom Callaway - 3.8.0-12 +- use --no-optimize-sibling-calls to work around gfortran issues + +* Fri Feb 01 2019 Fedora Release Engineering - 3.8.0-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 3.8.0-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jun 19 2018 Tom Callaway - 3.8.0-9 +- explicitly link liblapacke.so with liblapack to remove undefined-non-weak-symbols + * Mon Mar 5 2018 Tom Callaway - 3.8.0-8 - use LDFLAGS for shared libs diff --git a/lapack-3.8.0.tar.gz b/v3.9.0.tar.gz similarity index 49% rename from lapack-3.8.0.tar.gz rename to v3.9.0.tar.gz index e1dd3441dbae0e60dcb8ffc837bde6070c6bc686..49562d4e03ec45c4a6bcdd4ba5692f105ffffbc7 100644 Binary files a/lapack-3.8.0.tar.gz and b/v3.9.0.tar.gz differ