[atlas] Update to 3.8.4 Build the default package for SSE2 and add a SSE3 subpackage on x86_64 Apply patch (

Deji Akingunola deji at fedoraproject.org
Wed Jun 15 20:16:15 UTC 2011


commit 8a1f9ddb2c27d7d28bb574d86718bcfbb4345683
Author: Deji Akingunola <dakingun at mail.com>
Date:   Wed Jun 15 16:17:53 2011 -0400

    Update to 3.8.4
    Build the default package for SSE2 and add a SSE3 subpackage on x86_64
    Apply patch (and arch defs.) to build on s390 and s390x (Dan Horák)
    Fix-up build on s390 and s390x (Christian Bornträger)

 README.Fedora        |   13 +++-
 atlas-s390-m31.patch |   30 ------
 atlas.spec           |  243 +++++++++++++++++++++++++++++++++++++++++++-------
 sources              |    8 ++-
 4 files changed, 228 insertions(+), 66 deletions(-)
---
diff --git a/README.Fedora b/README.Fedora
index 19cd5ba..09ab711 100644
--- a/README.Fedora
+++ b/README.Fedora
@@ -6,6 +6,9 @@ updated: October 4, 2005
 updated by Deji Akingunola
 October 15, 2008
 
+updated by Deji Akingunola
+June 15, 2011
+
 Because ATLAS relies on compile-time optimizations to obtain improved
 performance over BLAS and LAPACK, the resulting binaries are closely
 tied to the hardware on which they are compiled, and can likely result
@@ -38,9 +41,15 @@ lapack libraries that should work as a drop-in replacement for the
 standard ones (they are installed in /usr/lib{64}/atlas* rather than
 /usr/lib{64}).
 
-For i386 systems, 4 ATLAS subpackages are built for 3Dnow, SSE1, SSE2, and SSE3
-ix86 extensions, using architectural defaults obtained from Athlon K7, PIII, Pentium 4 with SSE2 extension and PENTIUM 4 with SSE3 extensions respectively.
+For 32bit x86 systems, the default atlas package on was built using Pentium Pro
+architectural defaults using just x87 math optimization. In addition to the
+base 32bit build, 4 ATLAS subpackages are built for 3Dnow, SSE, SSE2, and SSE3
+ix86 extensions, using architectural defaults obtained from Athlon K7, PIII,
+Pentium 4 with SSE2 extension and PENTIUM 4 with SSE3 extensions respectively.
 
+On 64bit x86 systems the default atlas package on was built with SSE2 optimization using architetural default made for AMD's HAMMER processor, and an additional
+SSE3-enabled subpackage was built also using architetural default made for AMD's HAMMER processor.
+  
 This packaging allows multiple installation of different atlas sub-packages
 at the same time. The alternatives system (read 'man alternatives' for usage)
 is used in the -devel subpackages to select the appropriate location for the 
diff --git a/atlas.spec b/atlas.spec
index 58b7b52..68166b1 100644
--- a/atlas.spec
+++ b/atlas.spec
@@ -1,8 +1,11 @@
 %define enable_native_atlas 0
 
 Name:           atlas
-Version:        3.8.3
-Release:        19%{?dist}
+Version:        3.8.4
+%if "%{?enable_native_atlas}" != "0"
+%define dist .native
+%endif
+Release:        1%{?dist}
 Summary:        Automatically Tuned Linear Algebra Software
 
 Group:          System Environment/Libraries
@@ -14,9 +17,12 @@ Source2:        K7323DNow.tgz
 Source3:        README.Fedora
 Source4:        USII64.tgz                                              
 Source5:        USII32.tgz                                              
+Source6:        IBMz1032.tgz
+Source7:        IBMz1064.tgz
+Source8:        IBMz19632.tgz
+Source9:        IBMz19664.tgz
 Patch0:		atlas-fedora_shared.patch
-Patch1:         atlas-sparc-linux.patch  
-Patch2:         atlas-s390-m31.patch
+Patch1:         atlas-s390port.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 BuildRequires:  gcc-gfortran lapack-static
@@ -55,30 +61,30 @@ with ATLAS (Automatically Tuned Linear Algebra Software).
 ############## Subpackages for architecture extensions #################
 #
 %ifarch x86_64
-%define types base sse2
+%define types base sse3
 
-%package sse2
-Summary:        ATLAS libraries for SSE2 extensions
+%package sse3
+Summary:        ATLAS libraries for SSE3 extensions
 Group:          System Environment/Libraries
 
-%description sse2
+%description sse3
 This package contains the ATLAS (Automatically Tuned Linear Algebra
-Software) libraries compiled with optimizations for the SSE2
+Software) libraries compiled with optimizations for the SSE3
 extensions to the x86_64 architecture. The base ATLAS builds in Fedora for the
-x86_64 architecture are made fro the SSE3 extensions.
+x86_64 architecture are made for the SSE2 extensions.
 
-%package sse2-devel
-Summary:        Development libraries for ATLAS with SSE2 extensions
+%package sse3-devel
+Summary:        Development libraries for ATLAS with SSE3 extensions
 Group:          Development/Libraries
-Requires:       %{name}-sse2 = %{version}-%{release}
+Requires:       %{name}-sse3 = %{version}-%{release}
 Obsoletes:	%name-header <= %version-%release
 Requires(posttrans):	chkconfig
 Requires(preun):	chkconfig
 
-%description sse2-devel
+%description sse3-devel
 This package contains shared and static versions of the ATLAS
 (Automatically Tuned Linear Algebra Software) libraries compiled with
-optimizations for the SSE2 extensions to the x86_64 architecture.
+optimizations for the SSE3 extensions to the x86_64 architecture.
 
 %endif
 
@@ -176,18 +182,68 @@ This package contains ATLAS (Automatically Tuned Linear Algebra Software)
 shared libraries compiled with optimizations for the SSE3 extensions to the ix86 architecture.
 
 %endif
+
+%ifarch s390 s390x
+%define types base z10 z196
+
+%package z196
+Summary:        ATLAS libraries for z196
+Group:          System Environment/Libraries
+
+%description z196
+This package contains the ATLAS (Automatically Tuned Linear Algebra
+Software) libraries compiled with optimizations for the z196.
+
+%package z196-devel
+Summary:        Development libraries for ATLAS for z196
+Group:          Development/Libraries
+Requires:       %{name}-z196 = %{version}-%{release}
+Obsoletes:	%name-header <= %version-%release
+Requires(posttrans):	chkconfig
+Requires(preun):	chkconfig
+
+%description z196-devel
+This package contains headers and shared versions of the ATLAS
+(Automatically Tuned Linear Algebra Software) libraries compiled with
+optimizations for the z196 architecture.
+
+%package z10
+Summary:        ATLAS libraries for z10
+Group:          System Environment/Libraries
+
+%description z10
+This package contains the ATLAS (Automatically Tuned Linear Algebra
+Software) libraries compiled with optimizations for the z10.
+
+%package z10-devel
+Summary:        Development libraries for ATLAS for z10
+Group:          Development/Libraries
+Requires:       %{name}-z10 = %{version}-%{release}
+Obsoletes:	%name-header <= %version-%release
+Requires(posttrans):	chkconfig
+Requires(preun):	chkconfig
+
+%description z10-devel
+This package contains headers and shared versions of the ATLAS
+(Automatically Tuned Linear Algebra Software) libraries compiled with
+optimizations for the z10 architecture.
+
+%endif
 %endif
 
 %prep
 %setup -q -n ATLAS
 %patch0 -p0 -b .shared
-#%patch1 -p1 -b .sparc
-%patch2 -p1 -b .s390
+%patch1 -p1 -b .s390
 cp %{SOURCE1} CONFIG/ARCHS/
 cp %{SOURCE2} CONFIG/ARCHS/
 cp %{SOURCE3} doc
 cp %{SOURCE4} CONFIG/ARCHS/
 cp %{SOURCE5} CONFIG/ARCHS/
+cp %{SOURCE6} CONFIG/ARCHS/
+cp %{SOURCE7} CONFIG/ARCHS/
+cp %{SOURCE8} CONFIG/ARCHS/
+cp %{SOURCE9} CONFIG/ARCHS/
 
 %build
 for type in %{types}; do
@@ -206,12 +262,15 @@ for type in %{types}; do
 	--with-netlib-lapack=%{_libdir}/liblapack_pic.a	\
 	-Si cputhrchk 0
 
+%if "%{?enable_native_atlas}" == "0"
 %ifarch x86_64
-	if [ "$type" = "sse2" ]; then
+	if [ "$type" = "base" ]; then
 		sed -i 's#ARCH =.*#ARCH = HAMMER64SSE2#' Make.inc
 		sed -i 's#-DATL_SSE3##' Make.inc 
 		sed -i 's#-msse3#-msse2#' Make.inc 
-		%define pr_sse2 %(echo $((%{__isa_bits}-1)))
+	elif [ "$type" = "sse3" ]; then
+		sed -i 's#ARCH =.*#ARCH = HAMMER64SSE3#' Make.inc
+		%define pr_sse3 %(echo $((%{__isa_bits}+4)))
 	fi
 %endif
 
@@ -240,6 +299,54 @@ for type in %{types}; do
 		%define pr_sse3 %(echo $((%{__isa_bits}+4)))
 	fi
 %endif
+
+%ifarch s390 s390x
+# we require a z9/z10/z196 but base,z10 and z196
+# we also need a compiler with -march=z196 support
+# the base support will use z196 tuning
+	if [ "$type" = "base" ]; then
+		%ifarch s390x 
+			sed -i 's#ARCH =.*#ARCH = IBMz19664#' Make.inc
+                %endif
+		%ifarch s390 
+			sed -i 's#ARCH =.*#ARCH = IBMz19632#' Make.inc
+                %endif
+		sed -i 's#-march=z196#-march=z9-109 -mtune=z196#' Make.inc
+		sed -i 's#-march=z10 -mtune=z196#-march=z9-109 -mtune=z196#' Make.inc
+		sed -i 's#-march=z10#-march=z9-109 -mtune=z10#' Make.inc
+		sed -i 's#-DATL_ARCH_IBMz196#-DATL_ARCH_IBMz9#' Make.inc
+		sed -i 's#-DATL_ARCH_IBMz10#-DATL_ARCH_IBMz9#' Make.inc
+		sed -i 's#-DATL_ARCH_IBMz9#-DATL_ARCH_IBMz9#' Make.inc
+	elif [ "$type" = "z10" ]; then
+		%ifarch s390x 
+			sed -i 's#ARCH =.*#ARCH = IBMz1064#' Make.inc
+                %endif
+		%ifarch s390 
+			sed -i 's#ARCH =.*#ARCH = IBMz1032#' Make.inc
+                %endif
+		sed -i 's#-march=z196#-march=z10#' Make.inc
+		sed -i 's#-march=z10 -mtune=z196#-march=z10#' Make.inc
+		sed -i 's#-march=z9-109#-march=z10#' Make.inc
+		sed -i 's#-DATL_ARCH_IBMz196#-DATL_ARCH_IBMz10#' Make.inc
+		sed -i 's#-DATL_ARCH_IBMz9#-DATL_ARCH_IBMz10#' Make.inc
+		%define pr_z10 %(echo $((%{__isa_bits}+1)))
+	elif [ "$type" = "z196" ]; then
+		%ifarch s390x 
+			sed -i 's#ARCH =.*#ARCH = IBMz19664#' Make.inc
+                %endif
+		%ifarch s390 
+			sed -i 's#ARCH =.*#ARCH = IBMz19632#' Make.inc
+                %endif
+		sed -i 's#-mtune=z196#-march=z10 -march=z196#' Make.inc
+		sed -i 's#-march=z10#-march=z196#' Make.inc
+		sed -i 's#-march=z9-109#-march=z196#' Make.inc
+		sed -i 's#-DATL_ARCH_IBMz10#-DATL_ARCH_IBMz196#' Make.inc
+		sed -i 's#-DATL_ARCH_IBMz9#-DATL_ARCH_IBMz196#' Make.inc
+		%define pr_z196 %(echo $((%{__isa_bits}+2)))
+	fi
+%endif
+
+%endif
 	make build
 	cd lib
 	make shared
@@ -295,19 +402,19 @@ fi
 %if "%{?enable_native_atlas}" == "0"
 %ifarch x86_64
 
-%post -n atlas-sse2 -p /sbin/ldconfig
+%post -n atlas-sse3 -p /sbin/ldconfig
 
-%postun -n atlas-sse2 -p /sbin/ldconfig
+%postun -n atlas-sse3 -p /sbin/ldconfig
 
-%posttrans sse2-devel
+%posttrans sse3-devel
 if [ $1 -eq 0 ] ; then
 /usr/sbin/alternatives	--install %{_includedir}/atlas atlas-inc 	\
-		%{_includedir}/atlas-%{_arch}-sse2  %{pr_sse2}
+		%{_includedir}/atlas-%{_arch}-sse3  %{pr_sse3}
 fi
 
-%preun sse2-devel
+%preun sse3-devel
 if [ $1 -ge 0 ] ; then
-/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-sse2
+/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-sse3
 fi
 
 %endif
@@ -374,6 +481,40 @@ if [ $1 -ge 0 ] ; then
 fi
 
 %endif
+
+%ifarch s390 s390x
+%post -n atlas-z10 -p /sbin/ldconfig
+
+%postun -n atlas-z10 -p /sbin/ldconfig
+
+%posttrans z10-devel
+if [ $1 -eq 0 ] ; then
+/usr/sbin/alternatives	--install %{_includedir}/atlas atlas-inc 	\
+		%{_includedir}/atlas-%{_arch}-z10  %{pr_z10}
+fi
+
+%preun z10-devel
+if [ $1 -ge 0 ] ; then
+/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-z10
+fi
+
+%post -n atlas-z196 -p /sbin/ldconfig
+
+%postun -n atlas-z196 -p /sbin/ldconfig
+
+%posttrans z196-devel
+if [ $1 -eq 0 ] ; then
+/usr/sbin/alternatives	--install %{_includedir}/atlas atlas-inc 	\
+		%{_includedir}/atlas-%{_arch}-z196  %{pr_z196}
+fi
+
+%preun z196-devel
+if [ $1 -ge 0 ] ; then
+/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-z196
+fi
+
+%endif
+
 %endif
 
 %files
@@ -395,18 +536,18 @@ fi
 
 %ifarch x86_64
 
-%files sse2
+%files sse3
 %defattr(-,root,root,-)
 %doc doc/README.Fedora
-%dir %{_libdir}/atlas-sse2
-%{_libdir}/atlas-sse2/*.so.*
-%config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}-sse2.conf
+%dir %{_libdir}/atlas-sse3
+%{_libdir}/atlas-sse3/*.so.*
+%config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}-sse3.conf
 
-%files sse2-devel
+%files sse3-devel
 %defattr(-,root,root,-)
 %doc doc
-%{_libdir}/atlas-sse2/*.so
-%{_includedir}/atlas-%{_arch}-sse2/
+%{_libdir}/atlas-sse3/*.so
+%{_includedir}/atlas-%{_arch}-sse3/
 %{_includedir}/*.h
 %ghost %{_includedir}/atlas
 
@@ -475,9 +616,47 @@ fi
 %ghost %{_includedir}/atlas
 
 %endif
+
+%ifarch s390 s390x
+%files z10
+%defattr(-,root,root,-)
+%doc doc/README.Fedora
+%dir %{_libdir}/atlas-z10
+%{_libdir}/atlas-z10/*.so.*
+%config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}-z10.conf
+
+%files z10-devel
+%defattr(-,root,root,-)
+%doc doc
+%{_libdir}/atlas-z10/*.so
+%{_includedir}/atlas-%{_arch}-z10/
+%{_includedir}/*.h
+%ghost %{_includedir}/atlas
+
+%files z196
+%defattr(-,root,root,-)
+%doc doc/README.Fedora
+%dir %{_libdir}/atlas-z196
+%{_libdir}/atlas-z196/*.so.*
+%config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}-z196.conf
+
+%files z196-devel
+%defattr(-,root,root,-)
+%doc doc
+%{_libdir}/atlas-z196/*.so
+%{_includedir}/atlas-%{_arch}-z196/
+%{_includedir}/*.h
+%ghost %{_includedir}/atlas
+%endif
 %endif
 
 %changelog
+* Tue Jun 14 2011 Deji Akingunola <dakingun at gmail.com> - 3.8.4-1
+- Update to 3.8.4
+- Build the default package for SSE2 and add a SSE3 subpackage on x86_64
+- Apply patch (and arch defs.) to build on s390 and s390x (Dan Horák)
+- Fix-up build on s390 and s390x (Christian Bornträger) 
+
 * Mon Feb 07 2011 Fedora Release Engineering <rel-eng at lists.fedoraproject.org>
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
 
diff --git a/sources b/sources
index 95752ad..e6a852c 100644
--- a/sources
+++ b/sources
@@ -1,5 +1,9 @@
-6c13be94a87178e7582111c08e9503bc  atlas3.8.3.tar.bz2
-676548252837b1e458181111443f340f  PPRO32.tgz
+1bb3abde499b492b4be1f1a0759fbfa2  atlas3.8.4.tar.bz2
+9ddf8c76e5e9781c542b712f704460e1  IBMz1032.tgz
+ee4cbc1f15cb4cd5f5266969a4bc62a7  IBMz1064.tgz
+edd3cb5602c6282e4a30691e728bd064  IBMz19632.tgz
+21f630520058859ad0b8b798bd17dc5a  IBMz19664.tgz
 3f174cdcb4c964843f27dbfc4ad4b1c8  K7323DNow.tgz
+676548252837b1e458181111443f340f  PPRO32.tgz
 ebb4732aff468bbc223e7f734252173b  USII32.tgz
 31f8ae7583d290e5414a1a61ff6e7e39  USII64.tgz


More information about the scm-commits mailing list