[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