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)
This commit is contained in:
Deji Akingunola 2011-06-15 16:17:53 -04:00
parent 5d47035650
commit 8a1f9ddb2c
4 changed files with 228 additions and 66 deletions

View File

@ -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

View File

@ -1,30 +0,0 @@
diff -up ATLAS/CONFIG/src/probe_comp.c.s390 ATLAS/CONFIG/src/probe_comp.c
--- ATLAS/CONFIG/src/probe_comp.c.s390 2009-12-10 13:18:24.000000000 +0100
+++ ATLAS/CONFIG/src/probe_comp.c 2009-12-10 13:19:17.000000000 +0100
@@ -535,7 +535,11 @@ char *GetPtrbitsFlag(enum OSTYPE OS, enu
else if (ptrbits == 64)
sp = "-m64";
else if (ptrbits == 32)
+#ifdef __s390__
+ sp = "-m31";
+#else
sp = "-m32";
+#endif
return(sp);
}
char *GetStandardCompName(char *comp)
diff -up ATLAS/CONFIG/src/SpewMakeInc.c.s390 ATLAS/CONFIG/src/SpewMakeInc.c
--- ATLAS/CONFIG/src/SpewMakeInc.c.s390 2009-12-10 13:22:16.000000000 +0100
+++ ATLAS/CONFIG/src/SpewMakeInc.c 2009-12-10 13:22:19.000000000 +0100
@@ -368,7 +368,11 @@ char *GetPtrbitsFlag(enum OSTYPE OS, enu
else if (ptrbits == 64)
sp = "-m64";
else if (ptrbits == 32)
+#ifdef __s390__
+ sp = "-m31";
+#else
sp = "-m32";
+#endif
return(sp);
}

View File

@ -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
@ -175,19 +181,69 @@ Requires(preun): chkconfig
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
@ -239,6 +298,54 @@ for type in %{types}; do
sed -i 's#ARCH =.*#ARCH = P4E32SSE3#' Make.inc
%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
@ -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
@ -474,10 +615,48 @@ fi
%{_includedir}/*.h
%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@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@lists.fedoraproject.org>
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

View File

@ -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