[openblas] Update to 0.2.9, added 64-bit interface support.

Susi Lehtola jussilehtola at fedoraproject.org
Fri Jun 20 11:24:19 UTC 2014


commit 058c89d58ce0c57c855b9100d818882f864b9618
Author: Susi Lehtola <jussilehtola at fedoraproject.org>
Date:   Fri Jun 20 14:24:14 2014 +0300

    Update to 0.2.9, added 64-bit interface support.

 .gitignore                                         |    1 +
 openblas-0.2.9-lapacke.patch                       |  140 +++++++++++
 ...ack.patch => openblas-0.2.9-system_lapack.patch |   59 ++----
 openblas.spec                                      |  251 +++++++++++++++++---
 sources                                            |    2 +-
 5 files changed, 373 insertions(+), 80 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 8f056cb..92cd471 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
 /v0.2.5.tar.gz
 /v0.2.7.tar.gz
 /v0.2.8.tar.gz
+/v0.2.9.tar.gz
diff --git a/openblas-0.2.9-lapacke.patch b/openblas-0.2.9-lapacke.patch
new file mode 100644
index 0000000..0a2a78b
--- /dev/null
+++ b/openblas-0.2.9-lapacke.patch
@@ -0,0 +1,140 @@
+diff -up OpenBLAS-0.2.9/exports/gensymbol.lapacke OpenBLAS-0.2.9/exports/gensymbol
+--- OpenBLAS-0.2.9/exports/gensymbol.lapacke	2014-06-10 16:55:47.000000000 +0300
++++ OpenBLAS-0.2.9/exports/gensymbol	2014-06-18 10:42:45.852966229 +0300
+@@ -170,7 +170,7 @@
+ 		sggglm, sgghrd, sgglse, sggqrf,
+ 		sggrqf, sggsvd, sggsvp, sgtcon, sgtrfs, sgtsv,
+ 		sgtsvx, sgttrf, sgttrs, sgtts2, shgeqz,
+-		shsein, shseqr, slabrd, slacon, slacn2,
++		shsein, shseqr, slabrd, slacon, 
+ 		slaein, slaexc, slag2,  slags2, slagtm, slagv2, slahqr,
+ 		slahrd, slahr2, slaic1, slaln2, slals0, slalsa, slalsd,
+ 		slangb, slange, slangt, slanhs, slansb, slansp,
+@@ -251,7 +251,7 @@
+ 		chpevx, chpgst, chpgv,  chpgvd, chpgvx, chprfs, chpsv,
+ 		chpsvx,
+ 		chptrd, chptrf, chptri, chptrs, chsein, chseqr, clabrd,
+-		clacgv, clacon, clacn2, clacp2, clacpy, clacrm, clacrt, cladiv,
++		clacgv, clacon, clacpy, clacrm, clacrt, cladiv,
+ 		claed0, claed7, claed8,
+ 		claein, claesy, claev2, clags2, clagtm,
+ 		clahef, clahqr,
+@@ -318,7 +318,7 @@
+ 		dggglm, dgghrd, dgglse, dggqrf,
+ 		dggrqf, dggsvd, dggsvp, dgtcon, dgtrfs, dgtsv,
+ 		dgtsvx, dgttrf, dgttrs, dgtts2, dhgeqz,
+-		dhsein, dhseqr, dlabrd, dlacon, dlacn2,
++		dhsein, dhseqr, dlabrd, dlacon, 
+ 		dlaein, dlaexc, dlag2,  dlags2, dlagtm, dlagv2, dlahqr,
+ 		dlahrd, dlahr2, dlaic1, dlaln2, dlals0, dlalsa, dlalsd,
+ 		dlangb, dlange, dlangt, dlanhs, dlansb, dlansp,
+@@ -393,7 +393,7 @@
+ 		zhpevx, zhpgst, zhpgv,  zhpgvd, zhpgvx, zhprfs, zhpsv,
+ 		zhpsvx,
+ 		zhptrd, zhptrf, zhptri, zhptrs, zhsein, zhseqr, zlabrd,
+-		zlacgv, zlacon, zlacn2, zlacp2, zlacpy, zlacrm, zlacrt, zladiv,
++		zlacgv, zlacon, zlacpy, zlacrm, zlacrt, zladiv,
+ 		zlaed0, zlaed7, zlaed8,
+ 		zlaein, zlaesy, zlaev2, zlags2, zlagtm,
+ 		zlahef, zlahqr,
+@@ -840,10 +840,6 @@
+     LAPACKE_chseqr_work,
+     LAPACKE_clacgv,
+     LAPACKE_clacgv_work,
+-    LAPACKE_clacn2,
+-    LAPACKE_clacn2_work,
+-    LAPACKE_clacp2,
+-    LAPACKE_clacp2_work,
+     LAPACKE_clacpy,
+     LAPACKE_clacpy_work,
+     LAPACKE_clag2z,
+@@ -979,8 +975,6 @@
+     LAPACKE_csyrfs,
+     LAPACKE_csyrfs_work,
+     LAPACKE_csysv,
+-    LAPACKE_csysv_rook,
+-    LAPACKE_csysv_rook_work,
+     LAPACKE_csysv_work,
+     LAPACKE_csysvx,
+     LAPACKE_csysvx_work,
+@@ -1254,8 +1248,6 @@
+     LAPACKE_dhsein_work,
+     LAPACKE_dhseqr,
+     LAPACKE_dhseqr_work,
+-    LAPACKE_dlacn2,
+-    LAPACKE_dlacn2_work,
+     LAPACKE_dlacpy,
+     LAPACKE_dlacpy_work,
+     LAPACKE_dlag2s,
+@@ -1505,8 +1497,6 @@
+     LAPACKE_dsyrfs,
+     LAPACKE_dsyrfs_work,
+     LAPACKE_dsysv,
+-    LAPACKE_dsysv_rook,
+-    LAPACKE_dsysv_rook_work,
+     LAPACKE_dsysv_work,
+     LAPACKE_dsysvx,
+     LAPACKE_dsysvx_work,
+@@ -1744,8 +1734,6 @@
+     LAPACKE_shsein_work,
+     LAPACKE_shseqr,
+     LAPACKE_shseqr_work,
+-    LAPACKE_slacn2,
+-    LAPACKE_slacn2_work,
+     LAPACKE_slacpy,
+     LAPACKE_slacpy_work,
+     LAPACKE_slag2d,
+@@ -1991,8 +1979,6 @@
+     LAPACKE_ssyrfs,
+     LAPACKE_ssyrfs_work,
+     LAPACKE_ssysv,
+-    LAPACKE_ssysv_rook,
+-    LAPACKE_ssysv_rook_work,
+     LAPACKE_ssysv_work,
+     LAPACKE_ssysvx,
+     LAPACKE_ssysvx_work,
+@@ -2316,10 +2302,6 @@
+     LAPACKE_zhseqr_work,
+     LAPACKE_zlacgv,
+     LAPACKE_zlacgv_work,
+-    LAPACKE_zlacn2,
+-    LAPACKE_zlacn2_work,
+-    LAPACKE_zlacp2,
+-    LAPACKE_zlacp2_work,
+     LAPACKE_zlacpy,
+     LAPACKE_zlacpy_work,
+     LAPACKE_zlag2c,
+@@ -2455,8 +2437,6 @@
+     LAPACKE_zsyrfs,
+     LAPACKE_zsyrfs_work,
+     LAPACKE_zsysv,
+-    LAPACKE_zsysv_rook,
+-    LAPACKE_zsysv_rook_work,
+     LAPACKE_zsysv_work,
+     LAPACKE_zsysvx,
+     LAPACKE_zsysvx_work,
+@@ -2700,20 +2680,20 @@
+ #These function may need 2 underscores.
+ @lapack_embeded_underscore_objs=(xerbla_array, chla_transtype, slasyf_rook,
+ 				 ssytf2_rook, ssytrf_rook, ssytrs_rook,
+-				 ssytri_rook, ssycon_rook, ssysv_rook,
++				 ssytri_rook, ssycon_rook, 
+ 				 chetf2_rook, chetrf_rook, chetri_rook, 
+ 				 chetrs_rook, checon_rook, chesv_rook,
+ 				 clahef_rook, clasyf_rook, 
+ 				 csytf2_rook, csytrf_rook, csytrs_rook, 
+-				 csytri_rook, csycon_rook, csysv_rook, 
++				 csytri_rook, csycon_rook, 
+ 				 dlasyf_rook, 
+ 				 dsytf2_rook, dsytrf_rook, dsytrs_rook, 
+-				 dsytri_rook, dsycon_rook, dsysv_rook, 
++				 dsytri_rook, dsycon_rook, 
+ 				 zhetf2_rook, zhetrf_rook, zhetri_rook, 
+ 				 zhetrs_rook, zhecon_rook, zhesv_rook,
+ 				 zlahef_rook, zlasyf_rook,
+ 				 zsytf2_rook, zsytrf_rook, zsytrs_rook,
+-				 zsytri_rook, zsycon_rook, zsysv_rook,
++				 zsytri_rook, zsycon_rook,
+ 				 
+ 
+ 
diff --git a/openblas-0.2.7-system_lapack.patch b/openblas-0.2.9-system_lapack.patch
similarity index 52%
rename from openblas-0.2.7-system_lapack.patch
rename to openblas-0.2.9-system_lapack.patch
index bb79d4f..8da1b99 100644
--- a/openblas-0.2.7-system_lapack.patch
+++ b/openblas-0.2.9-system_lapack.patch
@@ -1,7 +1,7 @@
-diff -up serial/Makefile.system_lapack serial/Makefile
---- serial/Makefile.system_lapack	2013-07-20 18:05:36.000000000 +0300
-+++ serial/Makefile	2013-07-23 12:28:02.961948050 +0300
-@@ -202,74 +202,8 @@ hpl_p :
+diff -up OpenBLAS-0.2.9/Makefile.system_lapack OpenBLAS-0.2.9/Makefile
+--- OpenBLAS-0.2.9/Makefile.system_lapack	2014-06-11 16:16:33.024212839 +0300
++++ OpenBLAS-0.2.9/Makefile	2014-06-11 16:19:02.742528480 +0300
+@@ -205,51 +205,8 @@ hpl_p :
  	fi; \
  	done
  
@@ -12,6 +12,7 @@ diff -up serial/Makefile.system_lapack serial/Makefile
 -netlib : lapack_prebuild
 -ifndef NOFORTRAN
 -	@$(MAKE) -C $(NETLIB_LAPACK_DIR) lapacklib
+-	@$(MAKE) -C $(NETLIB_LAPACK_DIR) tmglib
 -endif
 -ifndef NO_LAPACKE
 -	@$(MAKE) -C $(NETLIB_LAPACK_DIR) lapackelib
@@ -24,10 +25,10 @@ diff -up serial/Makefile.system_lapack serial/Makefile
 -lapack_prebuild :
 -ifndef NOFORTRAN
 -	- at echo "FORTRAN     = $(FC)" > $(NETLIB_LAPACK_DIR)/make.inc
--	- at echo "OPTS        = $(FFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
--	- at echo "POPTS       = $(FPFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
--	- at echo "NOOPT       = $(FFLAGS) -O0" >> $(NETLIB_LAPACK_DIR)/make.inc
--	- at echo "PNOOPT      = $(FPFLAGS) -O0" >> $(NETLIB_LAPACK_DIR)/make.inc
+-	- at echo "OPTS        = $(LAPACK_FFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
+-	- at echo "POPTS       = $(LAPACK_FPFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
+-	- at echo "NOOPT       = $(LAPACK_FFLAGS) -O0" >> $(NETLIB_LAPACK_DIR)/make.inc
+-	- at echo "PNOOPT      = $(LAPACK_FPFLAGS) -O0" >> $(NETLIB_LAPACK_DIR)/make.inc
 -	- at echo "LOADOPTS    = $(FFLAGS) $(EXTRALIB)" >> $(NETLIB_LAPACK_DIR)/make.inc
 -	- at echo "CC          = $(CC)" >> $(NETLIB_LAPACK_DIR)/make.inc
 -	- at echo "override CFLAGS      = $(LAPACK_CFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
@@ -35,52 +36,28 @@ diff -up serial/Makefile.system_lapack serial/Makefile
 -	- at echo "ARCHFLAGS   = -ru" >> $(NETLIB_LAPACK_DIR)/make.inc
 -	- at echo "RANLIB      = $(RANLIB)" >> $(NETLIB_LAPACK_DIR)/make.inc
 -	- at echo "LAPACKLIB   = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
+-	- at echo "TMGLIB      = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
+-	- at echo "BLASLIB     = ../../../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
 -	- at echo "LAPACKELIB  = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
 -	- at echo "LAPACKLIB_P = ../$(LIBNAME_P)" >> $(NETLIB_LAPACK_DIR)/make.inc
 -	- at echo "SUFFIX      = $(SUFFIX)" >> $(NETLIB_LAPACK_DIR)/make.inc
 -	- at echo "PSUFFIX     = $(PSUFFIX)" >> $(NETLIB_LAPACK_DIR)/make.inc
 -	- at echo "CEXTRALIB   = $(EXTRALIB)" >> $(NETLIB_LAPACK_DIR)/make.inc
--	- at cat  make.inc >> $(NETLIB_LAPACK_DIR)/make.inc
--endif
--
--lapack-3.4.2 : lapack-3.4.2.tgz
--ifndef NOFORTRAN
--ifndef NO_LAPACK
--	@if test `$(MD5SUM) $< | $(AWK) '{print $$1}'` = 61bf1a8a4469d4bdb7604f5897179478; then \
--		echo $(TAR) zxf $< ;\
--		$(TAR) zxf $< && (cd $(NETLIB_LAPACK_DIR); $(PATCH) -p1 < ../patch.for_lapack-3.4.2) ;\
--		rm -f $(NETLIB_LAPACK_DIR)/lapacke/make.inc ;\
--	else \
--		rm -rf $(NETLIB_LAPACK_DIR) ;\
--		echo "	Cannot download lapack-3.4.2.tgz or the MD5 check sum is wrong (Please use orignal)."; \
--		exit 1; \
--	fi
--endif
--endif
--
--LAPACK_URL=http://www.netlib.org/lapack/lapack-3.4.2.tgz
--
--lapack-3.4.2.tgz :
--ifndef NOFORTRAN
--#http://stackoverflow.com/questions/7656425/makefile-ifeq-logical-or
--ifeq ($(OSNAME), $(filter $(OSNAME),Darwin NetBSD))
--	curl -O $(LAPACK_URL);
+-ifeq ($(F_COMPILER), GFORTRAN)
+-	- at echo "TIMER       = INT_ETIME" >> $(NETLIB_LAPACK_DIR)/make.inc
 -else
--ifeq ($(OSNAME), FreeBSD)
--	fetch $(LAPACK_URL);
--else
--	wget -O $@ $(LAPACK_URL);
--endif
+-	- at echo "TIMER       = NONE" >> $(NETLIB_LAPACK_DIR)/make.inc
 -endif
+-	- at cat  make.inc >> $(NETLIB_LAPACK_DIR)/make.inc
 -endif
 +netlib :
 +	@$(MAKE) -C $(NETLIB_LAPACK_DIR)
  
  large.tgz : 
  ifndef NOFORTRAN
-diff -up serial/Makefile.system.system_lapack serial/Makefile.system
---- serial/Makefile.system.system_lapack	2013-07-20 18:05:36.000000000 +0300
-+++ serial/Makefile.system	2013-07-23 12:29:00.084410995 +0300
+diff -up OpenBLAS-0.2.9/Makefile.system.system_lapack OpenBLAS-0.2.9/Makefile.system
+--- OpenBLAS-0.2.9/Makefile.system.system_lapack	2014-06-10 16:55:47.000000000 +0300
++++ OpenBLAS-0.2.9/Makefile.system	2014-06-11 16:16:33.024212839 +0300
 @@ -9,7 +9,7 @@ ifndef TOPDIR
  TOPDIR = .
  endif
diff --git a/openblas.spec b/openblas.spec
index 2da5fec..31e4521 100644
--- a/openblas.spec
+++ b/openblas.spec
@@ -1,25 +1,27 @@
-Name:		openblas
-Version:	0.2.8
-Release:	2%{?dist}
-Summary:	An optimized BLAS library based on GotoBLAS2
-Group:		Development/Libraries
-License:	BSD
-URL:		https://github.com/xianyi/OpenBLAS/
-Source0:	https://github.com/xianyi/OpenBLAS/archive/v%{version}.tar.gz
+Name:           openblas
+Version:        0.2.9
+Release:        1%{?dist}
+Summary:        An optimized BLAS library based on GotoBLAS2
+Group:          Development/Libraries
+License:        BSD
+URL:            https://github.com/xianyi/OpenBLAS/
+Source0:        https://github.com/xianyi/OpenBLAS/archive/v%{version}.tar.gz
 # Use system lapack
-Patch0:		openblas-0.2.7-system_lapack.patch
+Patch0:         openblas-0.2.9-system_lapack.patch
 # Drop extra p from threaded library name
-Patch1:		openblas-0.2.5-libname.patch
-BuildRoot:	%(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
+Patch1:         openblas-0.2.5-libname.patch
+# Don't test link against functions in lapacke 3.5.0 if only 3.4.0 is available
+Patch2:         openblas-0.2.9-lapacke.patch
+BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 
-BuildRequires:	gcc-gfortran
+BuildRequires:  gcc-gfortran
 # For execstack
-BuildRequires:	prelink
+BuildRequires:  prelink
 # LAPACK
 %if 0%{?rhel} == 5 || 0%{?rhel} == 6
-BuildRequires:	lapack-devel%{?_isa}
+BuildRequires:  lapack-devel%{?_isa}
 %else
-BuildRequires:	lapack-static%{?_isa}
+BuildRequires:  lapack-static%{?_isa}
 %endif
 
 # Compability for old versions of GCC
@@ -34,9 +36,25 @@ BuildRequires:	lapack-static%{?_isa}
 %global lapacke 0
 %endif
 
+# Build 64-bit interface binaries?
+%if 0%{?rhel} == 5 || 0%{?rhel} == 6
+# RPM too old to know __isa_bits in RHEL 5, and lapack64 doesn't exist in RHEL 6
+%global build64 0
+%else
+%if 0%{?__isa_bits} == 64
+%global build64 1
+%else
+%global build64 0
+%endif
+%endif
+
+%if %build64
+BuildRequires:  lapack64-static
+%endif
+
 # Upstream supports the package only on these architectures.
 # Runtime processor detection is not available on other archs.
-ExclusiveArch:	x86_64 %{ix86}
+ExclusiveArch:  x86_64 %{ix86}
 
 %global base_description \
 OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD \
@@ -48,9 +66,8 @@ Computational Science, ISCAS. http://www.rdcps.ac.cn
 %{base_description}
 
 %package openmp
-Summary:	An optimized BLAS library based on GotoBLAS2, OpenMP version
-Group:		Development/Libraries
-
+Summary:        An optimized BLAS library based on GotoBLAS2, OpenMP version
+Group:          Development/Libraries
 
 %description openmp
 %{base_description}
@@ -58,20 +75,58 @@ Group:		Development/Libraries
 This package contains the library compiled with OpenMP support.
 
 %package threads
-Summary:	An optimized BLAS library based on GotoBLAS2, pthreads version
-Group:		Development/Libraries
+Summary:        An optimized BLAS library based on GotoBLAS2, pthreads version
+Group:          Development/Libraries
 
 %description threads
 %{base_description}
 
 This package contains the library compiled with threading support.
 
+%if %build64
+%package serial64
+Summary:        An optimized BLAS library based on GotoBLAS2, serial version
+Group:          Development/Libraries
+
+%description serial64
+%{base_description}
+
+This package contains the sequential library compiled with a 64-bit
+interface.
+
+%package openmp64
+Summary:        An optimized BLAS library based on GotoBLAS2, OpenMP version
+Group:          Development/Libraries
+
+%description openmp64
+%{base_description}
+
+This package contains the library compiled with OpenMP support and
+64-bit interface.
+
+%package threads64
+Summary:        An optimized BLAS library based on GotoBLAS2, pthreads version
+Group:          Development/Libraries
+
+%description threads64
+%{base_description}
+
+This package contains the library compiled with threading support and
+64-bit interface.
+%endif
+
+
 %package devel
-Summary:	Development headers and libraries for OpenBLAS
-Group:		Development/Libraries
-Requires:	%{name}%{?_isa} = %{version}-%{release}
-Requires:	%{name}-openmp%{?_isa} = %{version}-%{release}
-Requires:	%{name}-threads%{?_isa} = %{version}-%{release}
+Summary:        Development headers and libraries for OpenBLAS
+Group:          Development/Libraries
+Requires:       %{name}%{?_isa} = %{version}-%{release}
+Requires:       %{name}-openmp%{?_isa} = %{version}-%{release}
+Requires:       %{name}-threads%{?_isa} = %{version}-%{release}
+%if %build64
+Requires:       %{name}-openmp64%{?_isa} = %{version}-%{release}
+Requires:       %{name}-threads64%{?_isa} = %{version}-%{release}
+Requires:       %{name}-serial64%{?_isa} = %{version}-%{release}
+%endif
 
 %description devel
 %{base_description}
@@ -79,9 +134,9 @@ Requires:	%{name}-threads%{?_isa} = %{version}-%{release}
 This package contains the development headers and libraries.
 
 %package static
-Summary:	Static version of OpenBLAS
-Group:		Development/Libraries
-Requires:	%{name}-devel%{?_isa} = %{version}-%{release}
+Summary:        Static version of OpenBLAS
+Group:          Development/Libraries
+Requires:       %{name}-devel%{?_isa} = %{version}-%{release}
 
 %description static
 %{base_description}
@@ -96,11 +151,25 @@ tar zxf %{SOURCE0}
 cd OpenBLAS-%{version}
 %patch0 -p1 -b .system_lapack
 %patch1 -p1 -b .libname
+%if 0%{?fedora} > 0 && 0%{?fedora} < 21
+%patch2 -p1 -b .lapacke
+%endif
 
 # Get rid of bundled LAPACK sources
 rm -rf lapack-netlib
 
-# Setup LAPACK
+# Make serial, threaded and OpenMP versions; as well as 64-bit versions
+cd ..
+cp -ar OpenBLAS-%{version} openmp
+cp -ar OpenBLAS-%{version} threaded
+%if %build64
+cp -ar OpenBLAS-%{version} openmp64
+cp -ar OpenBLAS-%{version} threaded64
+cp -ar OpenBLAS-%{version} serial64
+%endif
+mv OpenBLAS-%{version} serial
+
+# Setup 32-bit interface LAPACK
 mkdir netliblapack
 cd netliblapack
 ar x %{_libdir}/liblapack_pic.a
@@ -129,11 +198,49 @@ cp -a %{_includedir}/lapacke .
 %endif
 cd ..
 
-# Make serial, threaded and OpenMP versions
+# Copy in place
+for d in serial threaded openmp; do
+    cp -pr netliblapack $d
+done
+rm -rf netliblapack
+
+
+# Setup 64-bit interface LAPACK
+%if %build64
+mkdir netliblapack64
+cd netliblapack64
+ar x %{_libdir}/liblapack64_pic.a
+# Get rid of duplicate functions. See list in Makefile of lapack directory
+for f in laswp getf2 getrf potf2 potrf lauu2 lauum trti2 trtri getrs; do
+    \rm {c,d,s,z}$f.o
+done
+
+# LAPACKE, no 64-bit interface
+%if %{lapacke}
+ar x %{_libdir}/liblapacke.a
+%endif
+
+# Create makefile
+echo "TOPDIR = .." > Makefile
+echo "include ../Makefile.system" >> Makefile
+echo "COMMONOBJS = \\" >> Makefile
+for i in *.o; do
+    echo "$i \\" >> Makefile
+done
+echo -e "\n\ninclude \$(TOPDIR)/Makefile.tail" >> Makefile
+
+%if %{lapacke}
+# Copy include files
+cp -a %{_includedir}/lapacke .
+%endif
 cd ..
-cp -ar OpenBLAS-%{version} openmp
-cp -ar OpenBLAS-%{version} threaded
-mv OpenBLAS-%{version} serial
+
+# Copy in place
+for d in serial64 threaded64 openmp64; do
+    cp -pr netliblapack64 $d/netliblapack
+done
+rm -rf netliblapack64
+%endif
 
 %build
 %if %{lapacke}
@@ -142,11 +249,19 @@ LAPACKE="NO_LAPACKE=0"
 LAPACKE="NO_LAPACKE=1"
 %endif
 
-make -C serial TARGET=CORE2 DYNAMIC_ARCH=1 USE_THREAD=0 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="%{optflags}" NUM_THREADS=32 %{?avxflag} $LAPACKE
-make -C threaded TARGET=CORE2 DYNAMIC_ARCH=1 USE_THREAD=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="%{optflags}" NUM_THREADS=32 LIBPREFIX="libopenblasp" %{?avxflag} $LAPACKE
+# Maximum possible amount of processors
+NMAX="NUM_THREADS=128"
+
+make -C serial     TARGET=CORE2 DYNAMIC_ARCH=1 USE_THREAD=0 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="%{optflags}" $NMAX LIBPREFIX="libopenblas"    %{?avxflag} $LAPACKE INTERFACE64=0
+make -C threaded   TARGET=CORE2 DYNAMIC_ARCH=1 USE_THREAD=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="%{optflags}" $NMAX LIBPREFIX="libopenblasp"   %{?avxflag} $LAPACKE INTERFACE64=0
 # USE_THREAD determines use of SMP, not of pthreads
-make -C openmp TARGET=CORE2 DYNAMIC_ARCH=1 USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="%{optflags}" NUM_THREADS=32 LIBPREFIX="libopenblaso" %{?avxflag} $LAPACKE
+make -C openmp     TARGET=CORE2 DYNAMIC_ARCH=1 USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="%{optflags}" $NMAX LIBPREFIX="libopenblaso"   %{?avxflag} $LAPACKE INTERFACE64=0
 
+%if %build64
+make -C serial64   TARGET=CORE2 DYNAMIC_ARCH=1 USE_THREAD=0 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="%{optflags}" $NMAX LIBPREFIX="libopenblas64"  %{?avxflag} $LAPACKE INTERFACE64=1
+make -C threaded64 TARGET=CORE2 DYNAMIC_ARCH=1 USE_THREAD=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="%{optflags}" $NMAX LIBPREFIX="libopenblasp64" %{?avxflag} $LAPACKE INTERFACE64=1
+make -C openmp64   TARGET=CORE2 DYNAMIC_ARCH=1 USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="%{optflags}" $NMAX LIBPREFIX="libopenblaso64" %{?avxflag} $LAPACKE INTERFACE64=1
+%endif
 
 %install
 rm -rf %{buildroot}
@@ -182,6 +297,21 @@ plibname=`echo ${slibname} | sed "s|lib%{name}|lib%{name}p|g"`
 install -D -p -m 755 threaded/${plibname}.so %{buildroot}%{_libdir}/${plibname}.so
 install -D -p -m 644 threaded/${plibname}.a %{buildroot}%{_libdir}/lib%{name}p.a
 
+# Install the 64-bit interface libraries
+%if %build64
+slibname64=`echo ${slibname} | sed "s|lib%{name}|lib%{name}64|g"`
+install -D -p -m 755 serial64/${slibname64}.so %{buildroot}%{_libdir}/${slibname64}.so
+install -D -p -m 644 serial64/${slibname64}.a %{buildroot}%{_libdir}/lib%{name}64.a
+
+olibname64=`echo ${slibname} | sed "s|lib%{name}|lib%{name}o64|g"`
+install -D -p -m 755 openmp64/${olibname64}.so %{buildroot}%{_libdir}/${olibname64}.so
+install -D -p -m 644 openmp64/${olibname64}.a %{buildroot}%{_libdir}/lib%{name}o64.a
+
+plibname64=`echo ${slibname} | sed "s|lib%{name}|lib%{name}p64|g"`
+install -D -p -m 755 threaded64/${plibname64}.so %{buildroot}%{_libdir}/${plibname64}.so
+install -D -p -m 644 threaded64/${plibname64}.a %{buildroot}%{_libdir}/lib%{name}p64.a
+%endif
+
 # Fix source permissions (also applies to LAPACK)
 find -name \*.f -exec chmod 644 {} \;
 
@@ -197,6 +327,19 @@ ln -sf ${olibname}.so lib%{name}o.so.0
 ln -sf ${plibname}.so lib%{name}p.so
 ln -sf ${plibname}.so lib%{name}p.so.0
 
+%if %build64
+# Serial libraries
+ln -sf ${slibname64}.so lib%{name}64.so
+ln -sf ${slibname64}.so lib%{name}64.so.0
+# OpenMP libraries
+ln -sf ${olibname64}.so lib%{name}o64.so
+ln -sf ${olibname64}.so lib%{name}o64.so.0
+# Threaded libraries
+ln -sf ${plibname64}.so lib%{name}p64.so
+ln -sf ${plibname64}.so lib%{name}p64.so.0
+%endif
+
+
 # Get rid of executable stacks
 for lib in %{buildroot}%{_libdir}/libopenblas{,o,p}-*.so; do
  execstack -c $lib
@@ -230,20 +373,52 @@ rm -rf %{buildroot}
 %{_libdir}/lib%{name}p-*.so
 %{_libdir}/lib%{name}p.so.*
 
+%if %build64
+%files serial64
+%defattr(-,root,root,-)
+%{_libdir}/lib%{name}64-*.so
+%{_libdir}/lib%{name}64.so.*
+
+%files openmp64
+%defattr(-,root,root,-)
+%{_libdir}/lib%{name}o64-*.so
+%{_libdir}/lib%{name}o64.so.*
+
+%files threads64
+%defattr(-,root,root,-)
+%{_libdir}/lib%{name}p64-*.so
+%{_libdir}/lib%{name}p64.so.*
+%endif
+
 %files devel
 %defattr(-,root,root,-)
+%{_includedir}/%{name}/
 %{_libdir}/lib%{name}.so
 %{_libdir}/lib%{name}o.so
 %{_libdir}/lib%{name}p.so
-%{_includedir}/%{name}/
+%if %build64
+%{_libdir}/lib%{name}64.so
+%{_libdir}/lib%{name}o64.so
+%{_libdir}/lib%{name}p64.so
+%endif
 
 %files static
 %defattr(-,root,root,-)
 %{_libdir}/lib%{name}.a
 %{_libdir}/lib%{name}o.a
 %{_libdir}/lib%{name}p.a
+%if %build64
+%{_libdir}/lib%{name}64.a
+%{_libdir}/lib%{name}o64.a
+%{_libdir}/lib%{name}p64.a
+%endif
 
 %changelog
+* Wed Jun 11 2014 Susi Lehtola <jussilehtola at fedoraproject.org> - 0.2.9-1
+- Increase maximum amount of cores from 32 to 128.
+- Add 64-bit interface support. (BZ #1088256)
+- Update to 0.2.9. (BZ #1043083)
+
 * Sat Jun 07 2014 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 0.2.8-2
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
 
diff --git a/sources b/sources
index 15af525..26fdd2a 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-19f38a32bc9e6e56f2b6874d7497baf0  v0.2.8.tar.gz
+395052b930ec553a5cd6207dadaaef4a  v0.2.9.tar.gz


More information about the scm-commits mailing list