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,

Reply via email to