Accepting request 93204 from devel:libraries:c_c++

This is a submit request, but also a RFC. This request is for an update
to 3.4, which also supports building the manpages with doxygen. Before,
the manpages were offered separately. This build works with doxygen 1.7
(Factory, oS 12.1, oS 11.4) but seemingly (syntax errors, segfaults) not
with 1.6 (11.3, SLE_11, SLE 10 server DB postgres).

An alternative would be to use the older manpages or to pre-generate them.

- Update to 3.4.0
  * xGEQRT: QR factorization (improved interface)
  * xGEQRT3: recursive QR factorization.
  * xTPQRT: Communication-Avoiding QR sequential kernels.
  * Bug fixes.
  * Changes see http://www.netlib.org/lapack/lapack-3.4.0.html (forwarded request 92967 from burnus)

OBS-URL: https://build.opensuse.org/request/show/93204
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/lapack?expand=0&rev=21
This commit is contained in:
Stephan Kulow 2011-11-23 18:34:46 +00:00 committed by Git OBS Bridge
parent 6ebd6e40e4
commit 6c1534cbd6
6 changed files with 85 additions and 126 deletions

View File

@ -1,87 +0,0 @@
From SVN:
r977 | james | 2011-04-22 00:00:11 +0200 (Fri, 22 Apr 2011) | 2 lines
fixed problems with zero matrix and scan
bug0079 :: ILA[SDCZ]LR out of bound access in the DO LOOP for array A.
Change DO LOOP condition and add a IF inside the DO LOOP
Index: SRC/ilazlr.f
===================================================================
--- SRC/ilazlr.f (revision 976)
+++ SRC/ilazlr.f (revision 977)
@@ -53,9 +53,12 @@
ILAZLR = 0
DO J = 1, N
I=M
- DO WHILE ((A(I,J).NE.ZERO).AND.(I.GE.1))
- I=I-1
- ENDDO
+ DO WHILE ((A(I,J).EQ.ZERO).AND.(I.GT.1))
+ I=I-1
+ ENDDO
+ IF( (I.EQ.1).AND.(A(1,J).EQ.ZERO) ) THEN
+ I = 0
+ END IF
ILAZLR = MAX( ILAZLR, I )
END DO
END IF
Index: SRC/ilaclr.f
===================================================================
--- SRC/ilaclr.f (revision 976)
+++ SRC/ilaclr.f (revision 977)
@@ -54,9 +54,12 @@
ILACLR = 0
DO J = 1, N
I=M
- DO WHILE ((A(I,J).NE.ZERO).AND.(I.GE.1))
- I=I-1
- ENDDO
+ DO WHILE ((A(I,J).EQ.ZERO).AND.(I.GT.1))
+ I=I-1
+ ENDDO
+ IF( (I.EQ.1).AND.(A(1,J).EQ.ZERO) ) THEN
+ I = 0
+ END IF
ILACLR = MAX( ILACLR, I )
END DO
END IF
Index: SRC/ilaslr.f
===================================================================
--- SRC/ilaslr.f (revision 976)
+++ SRC/ilaslr.f (revision 977)
@@ -54,9 +54,12 @@
ILASLR = 0
DO J = 1, N
I=M
- DO WHILE ((A(I,J).NE.ZERO).AND.(I.GE.1))
- I=I-1
+ DO WHILE ((A(I,J).EQ.ZERO).AND.(I.GT.1))
+ I=I-1
ENDDO
+ IF( (I.EQ.1).AND.(A(1,J).EQ.ZERO) ) THEN
+ I = 0
+ END IF
ILASLR = MAX( ILASLR, I )
END DO
END IF
Index: SRC/iladlr.f
===================================================================
--- SRC/iladlr.f (revision 976)
+++ SRC/iladlr.f (revision 977)
@@ -53,10 +53,13 @@
* Scan up each column tracking the last zero row seen.
ILADLR = 0
DO J = 1, N
- I=M
- DO WHILE ((A(I,J).NE.ZERO).AND.(I.GE.1))
- I=I-1
+ I = M
+ DO WHILE ((A(I,J).EQ.ZERO).AND.(I.GT.1))
+ I=I-1
ENDDO
+ IF( (I.EQ.1).AND.(A(1,J).EQ.ZERO) ) THEN
+ I = 0
+ END IF
ILADLR = MAX( ILADLR, I )
END DO
END IF

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8813ba185727a551f7c2450b96febf0aed7c03d0fc94cd7da5d5b84b180eca0a
size 3092598

3
lapack-3.4.0.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:49bca377de0580e128488139184599c5137ec667576fc7cdef325363f84fd24d
size 3788300

View File

@ -1,3 +1,13 @@
-------------------------------------------------------------------
Wed Nov 16 21:03:58 UTC 2011 - burnus@net-b.de
- Update to 3.4.0
* xGEQRT: QR factorization (improved interface)
* xGEQRT3: recursive QR factorization.
* xTPQRT: Communication-Avoiding QR sequential kernels.
* Bug fixes.
* Changes see http://www.netlib.org/lapack/lapack-3.4.0.html
-------------------------------------------------------------------
Fri Sep 9 13:58:10 UTC 2011 - burnus@net-b.de

View File

@ -19,17 +19,15 @@
Name: lapack
BuildRequires: gcc-fortran
BuildRequires: doxygen gcc-fortran python
Summary: Linear Algebra Package
Version: 3.3.1
Version: 3.4.0
Release: 3
License: Public Domain, Freeware
Group: Development/Libraries/Parallel
Source0: lapack-%{version}.tar.bz2
Source1: manpages.tar.bz2
Source99: lapack-rpmlintrc
Patch1: lapack-3.2.2.patch
Patch2: ila-bound-fix.patch
Url: http://www.netlib.org/lapack/
Requires: blas = %{version}
Requires: liblapack3 = %{version}
@ -151,8 +149,6 @@ Authors:
%prep
%setup -q
%patch1
%patch2
tar xjf %{S:1}
%build
case "$RPM_ARCH" in
@ -165,7 +161,7 @@ make cleanlib
make %{?jobs:-j%jobs} blaslib \
OPTS="$RPM_OPT_FLAGS -fPIC" \
NOOPT="$RPM_OPT_FLAGS -O0 -fPIC"
mv blas_LINUX.a libblas_pic.a
mv librefblas.a libblas_pic.a
mkdir tmp
( cd tmp; ar x ../libblas_pic.a )
gfortran -shared -Wl,-soname=libblas.so.3 -o libblas.so.%version tmp/*.o
@ -186,12 +182,12 @@ if grep -B15 -A15 FAIL BLAS/*.out; then
else
true # No failures
fi
mv blas_LINUX.a libblas.a
mv librefblas.a libblas.a
make cleanlib
make %{?jobs:-j%jobs} lapacklib \
OPTS="$RPM_OPT_FLAGS -fPIC" \
NOOPT="$RPM_OPT_FLAGS -O0 -fPIC"
mv lapack_LINUX.a liblapack_pic.a
mv liblapack.a liblapack_pic.a
mkdir tmp
( cd tmp; ar x ../liblapack_pic.a )
gfortran -shared -Wl,-soname=liblapack.so.3 -o liblapack.so.%version tmp/*.o -L. -lblas
@ -201,7 +197,7 @@ make cleanlib
make %{?jobs:-j%jobs} lapacklib \
OPTS="$RPM_OPT_FLAGS" \
NOOPT="$RPM_OPT_FLAGS -O0"
ln -s libblas.a blas_LINUX.a
ln -s libblas.a librefblas.a
make lapack_testing \
OPTS="$RPM_OPT_FLAGS $PRECFLAGS" \
NOOPT="$RPM_OPT_FLAGS $PRECFLAGS -O0"
@ -213,7 +209,35 @@ if grep -B15 -A15 FAIL TESTING/*.out; then
else
true # No failures
fi
mv lapack_LINUX.a liblapack.a
# Create man pages - and do some cleanup
make man
rm -f DOCS/man/man3/*tst*
rm -f DOCS/man/man3/TST*
rm -f DOCS/man/man3/MYSUB.3
rm -f DOCS/man/man3/INSTALL_lsame.f.3
rm -f DOCS/man/man3/xerbla.f.3
rm -f DOCS/man/man3/xerbla_array.f.3
rm -f DOCS/man/man3/*_.3
rm -f DOCS/man/man3/dsecnd_*.3
rm -f DOCS/man/man3/DSECND.3
rm -f DOCS/man/man3/second_*3
rm -f DOCS/man/man3/SECOND.3
rm -f DOCS/man/man3/LAPACK_version.f.3
rm -f DOCS/man/man3/SRC_ilaver.f.3
rm -f DOCS/man/man3/SRC_xerbla.f.3
rm -f DOCS/man/man3/SRC_xerbla_array.f.3
rm -f DOCS/man/man3/SLAMC2.3.gz
rm -f DOCS/man/man3/SLAMC3.3.gz
rm -f DOCS/man/man3/SLAMC4.3.gz
rm -f DOCS/man/man3/SLAMC5.3.gz
rm -f DOCS/man/man3/DLAMC2.3.gz
rm -f DOCS/man/man3/DLAMC3.3.gz
rm -f DOCS/man/man3/DLAMC4.3.gz
rm -f DOCS/man/man3/DLAMC5.3.gz
mv DOCS/man/man3/BLAS_SRC_lsame.f.3 DOCS/man/man3/lsame.f.3
mv DOCS/man/man3/BLAS_SRC_xerbla.f.3 DOCS/man/man3/xerbla.f.3
mv DOCS/man/man3/BLAS_SRC_xerbla_array.f.3 DOCS/man/man3/xerbla_array.f.3
mv DOCS/man/man3/INSTALL_ilaver.f.3 DOCS/man/man3/ilaver.f.3
%install
install -d $RPM_BUILD_ROOT/%{_libdir}
@ -227,29 +251,44 @@ ln -s libblas.so.%version $RPM_BUILD_ROOT/%{_libdir}/libblas.so
install -m 755 liblapack.so.%version $RPM_BUILD_ROOT/%{_libdir}
ln -s liblapack.so.%version $RPM_BUILD_ROOT/%{_libdir}/liblapack.so.3
ln -s liblapack.so.%version $RPM_BUILD_ROOT/%{_libdir}/liblapack.so
# remove duplicate manpages
rm manpages/man/manl/xerbla.l
rm manpages/man/manl/xerbla_array.l
rm manpages/man/manl/lsame.l
rm manpages/man/manl/zdrot.l
rm manpages/man/manl/csrot.l
# remove bogus files
rm manpages/blas/man/manl/ssyrk.txt_new
rm manpages/blas/man/manl/intro_blas1.man
# move and rename manpages
install -d $RPM_BUILD_ROOT%{_mandir}/man3
function CopyFile {
NEW_FILENAME=$(basename $1 .l).3
install -m 0644 $1 $RPM_BUILD_ROOT%{_mandir}/man3/$NEW_FILENAME
}
for MANFILE in manpages/blas/man/manl/*.l; do
CopyFile $MANFILE
done
for MANFILE in manpages/man/manl/*.l; do
CopyFile $MANFILE
done
find manpages/blas/man/manl -type f -printf "%{_mandir}/man3/%f\n" | sed -e 's/.l$/.3.gz/' > blasmans
find manpages/man/manl -type f -printf "%{_mandir}/man3/%f\n" | sed -e 's/.l$/.3.gz/' > lapackmans
install -m 0644 DOCS/man/man3/*.3 $RPM_BUILD_ROOT%{_mandir}/man3/
find BLAS/SRC/ -name \*.f -type f -printf "%{_mandir}/man3/%f.3.gz\n" \
> blasmans
find BLAS/SRC/ -name \*.f -type f -printf "%f\n" \
| tr 'a-z' 'A-Z' |sed -e 's#\(.*\).F#'%{_mandir}/man3/'\1.3.gz#' \
>> blasmans
find SRC/ -name \*.f -type f -printf "%{_mandir}/man3/%f.3.gz\n" \
| grep -v -E 'lsame.f|sceil.f|xerbla.f|xerbla_array.f' \
| sort -u > lapackmans
find SRC/ -name \*.f -type f -printf "%f\n" \
| grep -v -E 'sceil.f|xerbla.f|xerbla_array.f' \
| tr 'a-z' 'A-Z' |sed -e 's#\(.*\).F#'%{_mandir}/man3/'\1.3.gz#' \
| sort -u >> lapackmans
echo %{_mandir}/man3/SLAMC1.3.gz >> lapackmans
echo %{_mandir}/man3/SLAMC2.3.gz >> lapackmans
echo %{_mandir}/man3/SLAMC3.3.gz >> lapackmans
echo %{_mandir}/man3/SLAMC4.3.gz >> lapackmans
echo %{_mandir}/man3/SLAMC5.3.gz >> lapackmans
echo %{_mandir}/man3/SLAMCH.3.gz >> lapackmans
echo %{_mandir}/man3/DLAMC1.3.gz >> lapackmans
echo %{_mandir}/man3/DLAMC2.3.gz >> lapackmans
echo %{_mandir}/man3/DLAMC3.3.gz >> lapackmans
echo %{_mandir}/man3/DLAMC4.3.gz >> lapackmans
echo %{_mandir}/man3/DLAMC5.3.gz >> lapackmans
echo %{_mandir}/man3/DLAMCH.3.gz >> lapackmans
echo %{_mandir}/man3/slamch.f.3.gz >> lapackmans
echo %{_mandir}/man3/slamchf77.f.3.gz >> lapackmans
echo %{_mandir}/man3/dlamch.f.3.gz >> lapackmans
echo %{_mandir}/man3/dlamchf77.f.3.gz >> lapackmans
ln -s SLAMC1.3.gz $RPM_BUILD_ROOT/%{_mandir}/man3/SLAMC2.3.gz
ln -s SLAMC1.3.gz $RPM_BUILD_ROOT/%{_mandir}/man3/SLAMC4.3.gz
ln -s SLAMC1.3.gz $RPM_BUILD_ROOT/%{_mandir}/man3/SLAMC5.3.gz
ln -s SLAMCH.3.gz $RPM_BUILD_ROOT/%{_mandir}/man3/SLAMC3.3.gz
ln -s DLAMC1.3.gz $RPM_BUILD_ROOT/%{_mandir}/man3/DLAMC2.3.gz
ln -s DLAMC1.3.gz $RPM_BUILD_ROOT/%{_mandir}/man3/DLAMC4.3.gz
ln -s DLAMC1.3.gz $RPM_BUILD_ROOT/%{_mandir}/man3/DLAMC5.3.gz
ln -s DLAMCH.3.gz $RPM_BUILD_ROOT/%{_mandir}/man3/DLAMC3.3.gz
%post -n libblas3 -p /sbin/ldconfig

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:18ea32f5d93732ffe6e033b3f8d10a1c31ec04ecaec1443ab1859bac71acc496
size 691541