Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package lapack for openSUSE:Factory checked in at 2023-02-11 21:55:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/lapack (Old) and /work/SRC/openSUSE:Factory/.lapack.new.1848 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lapack" Sat Feb 11 21:55:53 2023 rev:53 rq:1064180 version:3.9.0 Changes: -------- --- /work/SRC/openSUSE:Factory/lapack/lapack.changes 2022-04-05 19:54:51.298633922 +0200 +++ /work/SRC/openSUSE:Factory/.lapack.new.1848/lapack.changes 2023-02-11 21:55:56.459106137 +0100 @@ -1,0 +2,36 @@ +Fri Feb 10 00:32:30 UTC 2023 - Stefan Brüns <stefan.bru...@rwth-aachen.de> + +- Fix missing symbols for deprecated functions in LAPACK, add + Restore_missing_deprecated_prototypes.patch +- Add -Wl,--no-undefined when creating shared libraries, + to catch missing symbols during build +- Test fixes: + * Build test binaries during %build, run in %check + * Fix incorrect path for test output, to actually catch + any test failures +- Spec file cleanup: + * Do not rename blaslib, it is used for test binaries + * Use same commands for building lapacke as for other libs + * Remove unused FFLAGS_NOOP for test binaries + +------------------------------------------------------------------- +Sun Feb 5 19:59:26 UTC 2023 - Egbert Eich <e...@suse.com> + +- Remove unneeded links. These will be taken care of by the + update-alternatives. This will bring this package in sync + with openblas. + +------------------------------------------------------------------- +Thu Feb 2 13:16:02 UTC 2023 - Richard Biener <rguent...@suse.com> + +- Build deprecated functions again to avoid breaking the ABI. + (boo#1207989) + +------------------------------------------------------------------- +Wed Jan 25 20:47:53 UTC 2023 - Egbert Eich <e...@suse.com> + +- Make library links in the alternatives directory arch dependent. + This avoids conflicts when both 32-bit and 64-bit versions are + installed (boo#1207563). + +------------------------------------------------------------------- New: ---- Restore_missing_deprecated_prototypes.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ lapack-man.spec ++++++ --- /var/tmp/diff_new_pack.TVQo6o/_old 2023-02-11 21:55:57.955115451 +0100 +++ /var/tmp/diff_new_pack.TVQo6o/_new 2023-02-11 21:55:57.959115476 +0100 @@ -1,7 +1,7 @@ # # spec file for package lapack-man # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed ++++++ lapack.spec ++++++ --- /var/tmp/diff_new_pack.TVQo6o/_old 2023-02-11 21:55:57.987115650 +0100 +++ /var/tmp/diff_new_pack.TVQo6o/_new 2023-02-11 21:55:57.991115675 +0100 @@ -1,7 +1,7 @@ # # spec file for package lapack # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -22,7 +22,7 @@ Summary: Linear Algebra Package License: BSD-3-Clause Group: Development/Libraries/Parallel -URL: http://www.netlib.org/lapack/ +URL: https://www.netlib.org/lapack/ Source0: https://github.com/Reference-LAPACK/lapack/archive/v%{version}.tar.gz#/lapack-%{version}.tar.gz Source99: baselibs.conf Patch1: lapack-3.2.2.patch @@ -34,6 +34,8 @@ Patch4: Avoid-out-of-bounds-accesses-in-complex-EIG-tests.patch # PATCH-FIX-UPSTREAM -- https://github.com/Reference-LAPACK/lapack/commit/38f3eeee3108b18158409ca2a100e6fe03754781 Patch5: Fix-out-of-bounds-read.patch +# PATCH-FIX-UPSTREAM +Patch6: https://github.com/Reference-LAPACK/lapack/commit/87536aa3c8bb.patch#/Restore_missing_deprecated_prototypes.patch BuildRequires: gcc-fortran BuildRequires: python3-base @@ -209,70 +211,75 @@ sed -i -e '1 s@env python@python3@' lapack_testing.py %build -# Increase stack size, required for xeigtstz, see -# https://github.com/Reference-LAPACK/lapack/issues/335 -# Remove for lapack > 3.9 -ulimit -s 16384 - %global _lto_cflags %{_lto_cflags} -ffat-lto-objects %global optflags_f %{optflags} -case "$RPM_ARCH" in - i[0-9]86) PRECFLAGS="-ffloat-store" ;; - *) PRECFLAGS="" ;; -esac -export PRECFLAGS +%ifarch %{ix86} +%global test_precflags "-ffloat-store" +%endif + cp make.inc.example make.inc +# for ABI compatibility we need to build the deprecated interfaces +echo 'BUILD_DEPRECATED = Yes' >> make.inc -make cleanlib %{?_smp_mflags} -make %{?_smp_mflags} blaslib \ +%make_build cleanlib +%make_build blaslib \ FFLAGS="%{optflags_f} -fPIC" mkdir tmp ( cd tmp; ar x ../librefblas.a ) -gfortran -shared -Wl,-soname=libblas.so.3 -o libblas.so.%{version} tmp/*.o +gfortran -shared -Wl,-soname=libblas.so.3 -o libblas.so.%{version} -Wl,--no-undefined tmp/*.o ln -s libblas.so.%{version} libblas.so rm -rf tmp -make blas_testing \ - FFLAGS="%{optflags_f} $PRECFLAGS" \ - FFLAGS_NOOPT="%{optflags_f} $PRECFLAGS -O0" -if grep -B15 -A15 FAIL BLAS/*.out; then - echo - echo "blas_testing FAILED" - false -fi -mv librefblas.a libblas.a - -make %{?_smp_mflags} cblaslib \ +%make_build cblaslib \ CFLAGS="%{optflags} -fPIC -DADD_ " mkdir tmp ( cd tmp; ar x ../libcblas.a ) -gfortran -shared -Wl,-soname=libcblas.so.3 -o libcblas.so.%{version} tmp/*.o -L. -lblas +gfortran -shared -Wl,-soname=libcblas.so.3 -o libcblas.so.%{version} -Wl,--no-undefined tmp/*.o -L. -lblas ln -s libcblas.so.%{version} libcblas.so rm -rf tmp -make %{?_smp_mflags} cblas_testing \ - CFLAGS="%{optflags} -fPIC" -grep -B15 -A15 FAIL TESTING/*.out && false -make %{?_smp_mflags} lapacklib \ +%make_build lapacklib \ FFLAGS="%{optflags_f} -fPIC" mkdir tmp ( cd tmp; ar x ../liblapack.a ) -gfortran -shared -Wl,-soname=liblapack.so.3 -o liblapack.so.%{version} tmp/*.o -L. -lblas +gfortran -shared -Wl,-soname=liblapack.so.3 -o liblapack.so.%{version} -Wl,--no-undefined tmp/*.o -L. -lblas ln -s liblapack.so.%{version} liblapack.so rm -rf tmp -cd LAPACKE -make %{?_smp_mflags} lapacke \ +make %{?_smp_mflags} lapackelib \ CFLAGS="%{optflags} -fPIC -DADD_ -DHAVE_LAPACK_CONFIG_H -DLAPACK_COMPLEX_STRUCTURE" mkdir tmp -( cd tmp; ar x ../../liblapacke.a ) -gfortran -shared -Wl,-soname=liblapacke.so.3 -o liblapacke.so.%{version} tmp/*.o -L.. -llapack +( cd tmp; ar x ../liblapacke.a ) +gfortran -shared -Wl,-soname=liblapacke.so.3 -o liblapacke.so.%{version} -Wl,--no-undefined tmp/*.o -L. -llapack ln -s liblapacke.so.%{version} liblapacke.so rm -rf tmp -cd .. -make lapack_testing \ - FFLAGS="%{optflags_f} $PRECFLAGS" +# Build test binaries - blas +%make_build -C BLAS/TESTING FFLAGS="%{optflags_f} %{?test_precflags}" +# Build test binaries - cblas +%make_build -C CBLAS/testing FFLAGS="%{optflags_f} %{?test_precflags}" +# Build test binaries - lapack +%make_build -C TESTING/MATGEN FFLAGS="%{optflags_f} %{?test_precflags}" +%make_build -C TESTING/LIN FFLAGS="%{optflags_f} %{?test_precflags}" +%make_build -C TESTING/EIG FFLAGS="%{optflags_f} %{?test_precflags}" + +%check +# Increase stack size, required for xeigtstz, see +# https://github.com/Reference-LAPACK/lapack/issues/335 +# Remove for lapack > 3.9 +ulimit -s 16384 + +%make_build blas_testing FFLAGS="%{optflags_f} %{?test_precflags}" +if grep -B15 -A15 FAIL BLAS/TESTING/*.out; then + echo + echo "blas_testing FAILED" + false +fi + +%make_build cblas_testing CFLAGS="%{optflags} -fPIC" +grep -B15 -A15 FAIL CBLAS/testing/*.out && false + +%make_build lapack_testing FFLAGS="%{optflags_f} %{?test_precflags}" if grep -B15 -A15 FAIL TESTING/*.out; then echo echo "lapack_testing FAILED" @@ -285,42 +292,32 @@ install -d %{buildroot}/%{_includedir} ## BLAS install -d %{buildroot}/%{_libdir}/blas -install -m 644 libblas.a %{buildroot}/%{_libdir} +install -m 644 librefblas.a %{buildroot}/%{_libdir}/libblas.a install -m 755 libblas.so.%{version} %{buildroot}/%{_libdir}/blas ln -s libblas.so.%{version} %{buildroot}/%{_libdir}/blas/libblas.so.3 ln -s blas/libblas.so.%{version} %{buildroot}/%{_libdir}/libblas.so -# dummy target for update-alternatives -ln -s %{_sysconfdir}/alternatives/libblas.so.3 %{buildroot}/%{_libdir}/libblas.so.3 ## CBLAS install -m 644 CBLAS/include/*.h %{buildroot}/%{_includedir} install -m 644 libcblas.a %{buildroot}/%{_libdir} install -m 755 libcblas.so.%{version} %{buildroot}/%{_libdir}/blas ln -s libcblas.so.%{version} %{buildroot}/%{_libdir}/blas/libcblas.so.3 ln -s blas/libcblas.so.%{version} %{buildroot}/%{_libdir}/libcblas.so -# dummy target for update-alternatives -ln -s %{_sysconfdir}/alternatives/libcblas.so.3 %{buildroot}/%{_libdir}/libcblas.so.3 ## LAPACK install -d %{buildroot}/%{_libdir}/lapack install -m 644 liblapack.a %{buildroot}/%{_libdir} install -m 755 liblapack.so.%{version} %{buildroot}/%{_libdir}/lapack ln -s liblapack.so.%{version} %{buildroot}/%{_libdir}/lapack/liblapack.so.3 ln -s lapack/liblapack.so.%{version} %{buildroot}/%{_libdir}/liblapack.so -# dummy target for update-alternatives -ln -s %{_sysconfdir}/alternatives/liblapack.so.3 %{buildroot}/%{_libdir}/liblapack.so.3 ## LAPACKE -cd LAPACKE -install -m 644 include/*.h %{buildroot}/%{_includedir} -install -m 644 ../liblapacke.a %{buildroot}/%{_libdir} +install -m 644 LAPACKE/include/*.h %{buildroot}/%{_includedir} +install -m 644 liblapacke.a %{buildroot}/%{_libdir} install -m 755 liblapacke.so.%{version} %{buildroot}/%{_libdir}/lapack ln -s liblapacke.so.%{version} %{buildroot}/%{_libdir}/lapack/liblapacke.so.3 ln -s lapack/liblapacke.so.%{version} %{buildroot}/%{_libdir}/liblapacke.so -# dummy target for update-alternatives -ln -s %{_sysconfdir}/alternatives/liblapacke.so.3 %{buildroot}/%{_libdir}/liblapacke.so.3 -cd .. %post -n libblas3 %{_sbindir}/update-alternatives --install \ - %{_libdir}/libblas.so.3 libblas.so.3 %{_libdir}/blas/libblas.so.3 50 + %{_libdir}/libblas.so.3 libblas.so.3_%{_arch} %{_libdir}/blas/libblas.so.3 50 /sbin/ldconfig %preun -n libblas3 @@ -339,7 +336,7 @@ %post -n liblapack3 %{_sbindir}/update-alternatives --install \ - %{_libdir}/liblapack.so.3 liblapack.so.3 %{_libdir}/lapack/liblapack.so.3 50 + %{_libdir}/liblapack.so.3 liblapack.so.3_%{_arch} %{_libdir}/lapack/liblapack.so.3 50 /sbin/ldconfig %preun -n liblapack3 @@ -358,7 +355,7 @@ %post -n libcblas3 %{_sbindir}/update-alternatives --install \ - %{_libdir}/libcblas.so.3 libcblas.so.3 %{_libdir}/blas/libcblas.so.3 50 + %{_libdir}/libcblas.so.3 libcblas.so.3_%{_arch} %{_libdir}/blas/libcblas.so.3 50 /sbin/ldconfig %preun -n libcblas3 @@ -377,7 +374,7 @@ %post -n liblapacke3 %{_sbindir}/update-alternatives --install \ - %{_libdir}/liblapacke.so.3 liblapacke.so.3 %{_libdir}/lapack/liblapacke.so.3 50 + %{_libdir}/liblapacke.so.3 liblapacke.so.3_%{_arch} %{_libdir}/lapack/liblapacke.so.3 50 /sbin/ldconfig %preun -n liblapacke3 @@ -401,7 +398,7 @@ %{_libdir}/lapack/liblapack.so.%{version} %{_libdir}/lapack/liblapack.so.3 %ghost %{_libdir}/liblapack.so.3 -%ghost %{_sysconfdir}/alternatives/liblapack.so.3 +%ghost %{_sysconfdir}/alternatives/liblapack.so.3_%{_arch} %files -n libblas3 %doc README.md @@ -410,7 +407,7 @@ %{_libdir}/blas/libblas.so.%{version} %{_libdir}/blas/libblas.so.3 %ghost %{_libdir}/libblas.so.3 -%ghost %{_sysconfdir}/alternatives/libblas.so.3 +%ghost %{_sysconfdir}/alternatives/libblas.so.3_%{_arch} %files devel %{_libdir}/liblapack.so @@ -428,7 +425,7 @@ %{_libdir}/lapack/liblapacke.so.%{version} %{_libdir}/lapack/liblapacke.so.3 %ghost %{_libdir}/liblapacke.so.3 -%ghost %{_sysconfdir}/alternatives/liblapacke.so.3 +%ghost %{_sysconfdir}/alternatives/liblapacke.so.3_%{_arch} %files -n lapacke-devel %doc LAPACKE/README @@ -446,7 +443,7 @@ %{_libdir}/blas/libcblas.so.%{version} %{_libdir}/blas/libcblas.so.3 %ghost %{_libdir}/libcblas.so.3 -%ghost %{_sysconfdir}/alternatives/libcblas.so.3 +%ghost %{_sysconfdir}/alternatives/libcblas.so.3_%{_arch} %files -n cblas-devel %doc CBLAS/README ++++++ Restore_missing_deprecated_prototypes.patch ++++++ >From 87536aa3c8bb0af00f66088fb6ac05d87509e011 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebast...@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,