diff --git a/lapack-3.5.0-R-blas-fixes.patch b/lapack-3.5.0-R-blas-fixes.patch new file mode 100644 index 0000000..178142d --- /dev/null +++ b/lapack-3.5.0-R-blas-fixes.patch @@ -0,0 +1,99 @@ +diff -up lapack-3.5.0/BLAS/SRC/dgbmv.f.R lapack-3.5.0/BLAS/SRC/dgbmv.f +--- lapack-3.5.0/BLAS/SRC/dgbmv.f.R 2011-11-03 16:32:56.000000000 -0400 ++++ lapack-3.5.0/BLAS/SRC/dgbmv.f 2014-07-07 11:50:48.257175853 -0400 +@@ -312,18 +312,18 @@ + JX = KX + IF (INCY.EQ.1) THEN + DO 60 J = 1,N +- IF (X(JX).NE.ZERO) THEN ++c IF (X(JX).NE.ZERO) THEN + TEMP = ALPHA*X(JX) + K = KUP1 - J + DO 50 I = MAX(1,J-KU),MIN(M,J+KL) + Y(I) = Y(I) + TEMP*A(K+I,J) + 50 CONTINUE +- END IF ++c END IF + JX = JX + INCX + 60 CONTINUE + ELSE + DO 80 J = 1,N +- IF (X(JX).NE.ZERO) THEN ++c IF (X(JX).NE.ZERO) THEN + TEMP = ALPHA*X(JX) + IY = KY + K = KUP1 - J +@@ -331,7 +331,7 @@ + Y(IY) = Y(IY) + TEMP*A(K+I,J) + IY = IY + INCY + 70 CONTINUE +- END IF ++c END IF + JX = JX + INCX + IF (J.GT.KU) KY = KY + INCY + 80 CONTINUE +diff -up lapack-3.5.0/BLAS/SRC/dgemm.f.R lapack-3.5.0/BLAS/SRC/dgemm.f +--- lapack-3.5.0/BLAS/SRC/dgemm.f.R 2011-11-03 16:32:56.000000000 -0400 ++++ lapack-3.5.0/BLAS/SRC/dgemm.f 2014-07-07 11:50:48.257175853 -0400 +@@ -311,12 +311,12 @@ + 60 CONTINUE + END IF + DO 80 L = 1,K +- IF (B(L,J).NE.ZERO) THEN ++c IF (B(L,J).NE.ZERO) THEN + TEMP = ALPHA*B(L,J) + DO 70 I = 1,M + C(I,J) = C(I,J) + TEMP*A(I,L) + 70 CONTINUE +- END IF ++c END IF + 80 CONTINUE + 90 CONTINUE + ELSE +@@ -353,12 +353,12 @@ + 140 CONTINUE + END IF + DO 160 L = 1,K +- IF (B(J,L).NE.ZERO) THEN ++c IF (B(J,L).NE.ZERO) THEN + TEMP = ALPHA*B(J,L) + DO 150 I = 1,M + C(I,J) = C(I,J) + TEMP*A(I,L) + 150 CONTINUE +- END IF ++c END IF + 160 CONTINUE + 170 CONTINUE + ELSE +diff -up lapack-3.5.0/BLAS/SRC/dgemv.f.R lapack-3.5.0/BLAS/SRC/dgemv.f +--- lapack-3.5.0/BLAS/SRC/dgemv.f.R 2011-11-03 16:32:56.000000000 -0400 ++++ lapack-3.5.0/BLAS/SRC/dgemv.f 2014-07-07 11:50:48.257175853 -0400 +@@ -278,24 +278,24 @@ + JX = KX + IF (INCY.EQ.1) THEN + DO 60 J = 1,N +- IF (X(JX).NE.ZERO) THEN ++c IF (X(JX).NE.ZERO) THEN + TEMP = ALPHA*X(JX) + DO 50 I = 1,M + Y(I) = Y(I) + TEMP*A(I,J) + 50 CONTINUE +- END IF ++c END IF + JX = JX + INCX + 60 CONTINUE + ELSE + DO 80 J = 1,N +- IF (X(JX).NE.ZERO) THEN ++c IF (X(JX).NE.ZERO) THEN + TEMP = ALPHA*X(JX) + IY = KY + DO 70 I = 1,M + Y(IY) = Y(IY) + TEMP*A(I,J) + IY = IY + INCY + 70 CONTINUE +- END IF ++c END IF + JX = JX + INCX + 80 CONTINUE + END IF diff --git a/lapack.spec b/lapack.spec index 5197cc1..499732e 100644 --- a/lapack.spec +++ b/lapack.spec @@ -10,7 +10,7 @@ Summary: Numerical linear algebra package libraries Name: lapack Version: %{mediumver}.0 -Release: 6%{?dist} +Release: 7%{?dist} License: BSD Group: System Environment/Libraries URL: http://www.netlib.org/lapack/ @@ -25,6 +25,7 @@ Patch4: lapack-3.4.1-lapacke-shared.patch Patch5: lapack-3.4.1-lapacke-disable-testing-functions.patch Patch6: lapack-3.5.0-lapacke-matgenobj.patch Patch7: lapack-3.5.0-lapacke-tmglib.patch +Patch8: lapack-3.5.0-R-blas-fixes.patch BuildRequires: gcc-gfortran %description @@ -153,6 +154,7 @@ BLAS static libraries (64bit INTEGER). %patch5 -p1 -b .disable-functions %patch6 -p1 -b .matgenobj %patch7 -p1 -b .tmglib +%patch8 -p1 -b .R mkdir manpages mv man/ manpages/ @@ -448,6 +450,9 @@ ln -sf libblas64.so.%{version} libblas64.so.%{mediumver} %endif %changelog +* Mon Jul 7 2014 Tom Callaway - 3.5.0-7 +- apply BLAS fixes from R + * Thu Jun 19 2014 Tom Callaway - 3.5.0-6 - compile in tmglib object files, not static lib