From c929c450f45ffbaeab65c5f561af0d694724b64e Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: May 07 2019 10:03:47 +0000 Subject: import atlas-3.10.3-6.el8 --- diff --git a/.atlas.metadata b/.atlas.metadata new file mode 100644 index 0000000..b2c9319 --- /dev/null +++ b/.atlas.metadata @@ -0,0 +1,8 @@ +0e11ec19a521973eaa551954debd112c21479e9c SOURCES/ARMa732.tar.bz2 +9398518fe55b4a544278237bc639656e04543c50 SOURCES/ARMv732NEON.tar.bz2 +d2f7a62aacdc5091aaa673a311a23f521e5c6486 SOURCES/IBMz1264.tar.bz2 +b3ee9bca1510b11c6aa671ba5ba7dff8918ce0cf SOURCES/IBMz932.tar.bz2 +43f8d8eaf8cc62bc4665df3550b77e95f3dced22 SOURCES/IBMz964.tar.bz2 +c47ac6f00d7bf4ab882e71fa1ab894cc551c77b7 SOURCES/POWER332.tar.bz2 +85c00d3190abbe250d46472824b17d9164e3dfc2 SOURCES/PPRO32.tgz +337eef1167030a9440ea645ce0037abfd4b0be4e SOURCES/atlas3.10.3.tar.bz2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..977b861 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +SOURCES/ARMa732.tar.bz2 +SOURCES/ARMv732NEON.tar.bz2 +SOURCES/IBMz1264.tar.bz2 +SOURCES/IBMz932.tar.bz2 +SOURCES/IBMz964.tar.bz2 +SOURCES/POWER332.tar.bz2 +SOURCES/PPRO32.tgz +SOURCES/atlas3.10.3.tar.bz2 diff --git a/SOURCES/README.dist b/SOURCES/README.dist new file mode 100644 index 0000000..5d60a7b --- /dev/null +++ b/SOURCES/README.dist @@ -0,0 +1,47 @@ +Notes on the packaged version of ATLAS + +by Quentin Spencer +updated: October 4, 2005 + +updated by Deji Akingunola +October 15, 2008 + +updated by Deji Akingunola +June 15, 2011 + +updated by Frantisek Kluknavsky +Nov 20, 2012 + +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 +in very poor performance on other hardware. For this reason, +including a package like ATLAS in Fedora requires some compromises. +Optimizing ATLAS for the most modern hardware can result in +significant performance penalties for users using the same package on +older hardware. A binary ATLAS package must perform reasonably well on the +entire range of hardware on which it could potentially be installed. + +The result is a set of libraries that will not +necessarily achieve optimal performance on any given hardware but +should still offer significant performance gains over the reference +BLAS and LAPACK libraries on most hardware. + +In addition to the base 32bit build, subpackages are built for SSE, SSE2, +and SSE3 ix86 extensions. + +On 64bit x86 systems the default atlas package was built with SSE3 +optimization. + +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 +architectural dependent header files. + +For users who want optimal performance on +particular hardware, custom RPMs can be built from the source package +by setting the RPM macro "enable_native_atlas" to a value of 1. This +can be done from the command line as in the following example: + +rpmbuild -D "enable_native_atlas 1" --rebuild atlas-3.8.3-1.src.rpm + diff --git a/SOURCES/atlas-aarch64port.patch b/SOURCES/atlas-aarch64port.patch new file mode 100644 index 0000000..ad06226 --- /dev/null +++ b/SOURCES/atlas-aarch64port.patch @@ -0,0 +1,219 @@ +Author: Mark Salter + +Index: ATLAS/CONFIG/include/atlconf.h +=================================================================== +--- ATLAS.orig/CONFIG/include/atlconf.h ++++ ATLAS/CONFIG/include/atlconf.h +@@ -16,9 +16,9 @@ enum OSTYPE {OSOther=0, OSLinux, OSSunOS + ((OS_) == OSWin64) ) + + enum ARCHFAM {AFOther=0, AFPPC, AFSPARC, AFALPHA, AFX86, AFIA64, AFMIPS, +- AFARM, AFS390}; ++ AFARM, AFS390, AFAARCH64}; + +-#define NMACH 52 ++#define NMACH 53 + static char *machnam[NMACH] = + {"UNKNOWN", "POWER3", "POWER4", "POWER5", "PPCG4", "PPCG5", + "POWER6", "POWER7", "POWERe6500", "IBMz9", "IBMz10", "IBMz196", +@@ -29,7 +29,7 @@ static char *machnam[NMACH] = + "Efficeon", "K7", "HAMMER", "AMD64K10h", "AMDLLANO", "AMDDOZER","AMDDRIVER", + "UNKNOWNx86", "IA64Itan", "IA64Itan2", + "USI", "USII", "USIII", "USIV", "UST1", "UST2", "UnknownUS", +- "MIPSR1xK", "MIPSICE9", "ARMv7"}; ++ "MIPSR1xK", "MIPSICE9", "ARMv7", "AARCH64"}; + enum MACHTYPE {MACHOther, IbmPwr3, IbmPwr4, IbmPwr5, PPCG4, PPCG5, + IbmPwr6, IbmPwr7, Pwre6500, + IbmZ9, IbmZ10, IbmZ196, /* s390(x) in Linux */ +@@ -42,7 +42,8 @@ enum MACHTYPE {MACHOther, IbmPwr3, IbmPw + SunUSI, SunUSII, SunUSIII, SunUSIV, SunUST1, SunUST2, SunUSX, + MIPSR1xK, /* includes R10K, R12K, R14K, R16K */ + MIPSICE9, /* SiCortex ICE9 -- like MIPS5K */ +- ARMv7 /* includes Cortex A8, A9 */ ++ ARMv7, /* includes Cortex A8, A9 */ ++ AARCH64 + }; + #define MachIsX86(mach_) \ + ( (mach_) >= x86x87 && (mach_) <= x86X ) +@@ -63,6 +64,8 @@ enum MACHTYPE {MACHOther, IbmPwr3, IbmPw + ( (mach_) == ARMv7 ) + #define MachIsS390(mach_) \ + ( (mach_) >= IbmZ9 && (mach_) <= IbmZ196 ) ++#define MachIsAARCH64(mach_) \ ++ ( (mach_) == AARCH64 ) + + + static char *f2c_namestr[5] = {"UNKNOWN","Add_", "Add__", "NoChange", "UpCase"}; +@@ -84,13 +87,13 @@ enum ISAEXT + {ISA_None=0, ISA_VSX, ISA_AV, ISA_AVXMAC, ISA_AVXFMA4, ISA_AVX, + ISA_SSE3, ISA_SSE2, ISA_SSE1, ISA_3DNow, ISA_NEON}; + +-#define NASMD 9 ++#define NASMD 10 + enum ASMDIA + {ASM_None=0, gas_x86_32, gas_x86_64, gas_sparc, gas_ppc, gas_parisc, +- gas_mips, gas_arm, gas_s390}; ++ gas_mips, gas_arm, gas_s390, gas_aarch64}; + static char *ASMNAM[NASMD] = + {"", "GAS_x8632", "GAS_x8664", "GAS_SPARC", "GAS_PPC", "GAS_PARISC", +- "GAS_MIPS", "GAS_ARM", "GAS_S390"}; ++ "GAS_MIPS", "GAS_ARM", "GAS_S390", "GAS_AARCH64"}; + + /* + * Used for archinfo probes (can pack in bitfield) +Index: ATLAS/CONFIG/src/Makefile +=================================================================== +--- ATLAS.orig/CONFIG/src/Makefile ++++ ATLAS/CONFIG/src/Makefile +@@ -260,6 +260,11 @@ IRun_BINDP : + redir=config0.out + - cat config0.out + ++IRun_GAS_AARCH64 : ++ $(CC) $(CCFLAGS) -o xprobe_gas_aarch64 $(SRCdir)/backend/probe_this_asm.c $(SRCdir)/backend/probe_gas_aarch64.S ++ $(MAKE) $(atlrun) atldir=$(mydir) exe=xprobe_gas_aarch64 args="$(args)" \ ++ redir=config0.out ++ - cat config0.out + IRun_GAS_S390 : + $(CC) $(CCFLAGS) -o xprobe_gas_s390 $(SRCdir)/backend/probe_this_asm.c $(SRCdir)/backend/probe_gas_s390.S + $(MAKE) $(atlrun) atldir=$(mydir) exe=xprobe_gas_s390 args="$(args)" \ +Index: ATLAS/CONFIG/src/SpewMakeInc.c +=================================================================== +--- ATLAS.orig/CONFIG/src/SpewMakeInc.c ++++ ATLAS/CONFIG/src/SpewMakeInc.c +@@ -391,6 +391,8 @@ char *GetPtrbitsFlag(enum OSTYPE OS, enu + + if (MachIsIA64(arch)) + return(sp); ++ if (MachIsAARCH64(arch)) ++ return(sp); + if (MachIsMIPS(arch)) + return((ptrbits == 64) ? "-mabi=64" : "-mabi=n32"); + if (MachIsS390(arch)) +Index: ATLAS/CONFIG/src/atlcomp.txt +=================================================================== +--- ATLAS.orig/CONFIG/src/atlcomp.txt ++++ ATLAS/CONFIG/src/atlcomp.txt +@@ -267,6 +267,17 @@ MACH=ARMv7 OS=ALL LVL=1000 COMPS=dmc,dkc + MACH=ARMv7 OS=ALL LVL=1000 COMPS=f77 + 'gfortran' '-mcpu=cortex-a8 -mfpu=vfpv3 -mfloat-abi=softfp -O' + # ++# AArch64 defaults ++# ++MACH=AARCH64 OS=ALL LVL=1000 COMPS=xcc ++ 'gcc' '-O2' ++MACH=AARCH64 OS=ALL LVL=1000 COMPS=smc,skc,gcc,icc ++ 'gcc' '-O2' ++MACH=AARCH64 OS=ALL LVL=1000 COMPS=dmc,dkc ++ 'gcc' '-O2' ++MACH=AARCH64 OS=ALL LVL=1000 COMPS=f77 ++ 'gfortran' '-O' ++# + # Generic defaults + # + MACH=ALL OS=ALL LVL=5 COMPS=icc,smc,dmc,skc,dkc,xcc,gcc +Index: ATLAS/CONFIG/src/atlconf_misc.c +=================================================================== +--- ATLAS.orig/CONFIG/src/atlconf_misc.c ++++ ATLAS/CONFIG/src/atlconf_misc.c +@@ -563,6 +563,7 @@ enum ARCHFAM ProbeArchFam(char *targ) + else if (strstr(res, "ia64")) fam = AFIA64; + else if (strstr(res, "mips")) fam = AFMIPS; + else if (strstr(res, "arm")) fam = AFARM; ++ else if (strstr(res, "aarch64")) fam = AFAARCH64; + else if (strstr(res, "s390")) fam = AFS390; + else if ( strstr(res, "i686") || strstr(res, "i586") || + strstr(res, "i486") || strstr(res, "i386") || +@@ -588,6 +589,7 @@ enum ARCHFAM ProbeArchFam(char *targ) + strstr(res, "x86_64") ) fam = AFX86; + else if (strstr(res, "mips")) fam = AFMIPS; + else if (strstr(res, "arm")) fam = AFARM; ++ else if (strstr(res, "aarch64")) fam = AFAARCH64; + else if (strstr(res, "s390")) fam = AFS390; + free(res); + } +Index: ATLAS/CONFIG/src/backend/Make.ext +=================================================================== +--- ATLAS.orig/CONFIG/src/backend/Make.ext ++++ ATLAS/CONFIG/src/backend/Make.ext +@@ -57,6 +57,8 @@ probe_gas_arm.S : $(basf) + $(extC) -b $(basf) -o probe_gas_arm.S rout=probe_gas_arm.S + probe_gas_s390.S : $(basf) + $(extC) -b $(basf) -o probe_gas_s390.S rout=probe_gas_s390.S ++probe_gas_aarch64.S : $(basf) ++ $(extC) -b $(basf) -o probe_gas_aarch64.S rout=probe_gas_aarch64.S + probe_AVXMAC.S : $(basf) + $(extC) -b $(basf) -o probe_AVXMAC.S rout=probe_AVXMAC.S + probe_AVXFMA4.S : $(basf) +Index: ATLAS/CONFIG/src/backend/archinfo_linux.c +=================================================================== +--- ATLAS.orig/CONFIG/src/backend/archinfo_linux.c ++++ ATLAS/CONFIG/src/backend/archinfo_linux.c +@@ -267,6 +267,14 @@ enum MACHTYPE ProbeArch() + free(res); + } + break; ++ case AFAARCH64: ++ res = atlsys_1L(NULL, "fgrep 'Processor' /proc/cpuinfo", 0, 0); ++ if (res) ++ { ++ if (strstr(res, "AArch64")) mach = AARCH64; ++ free(res); ++ } ++ break; + default: + #if 0 + if (!CmndOneLine(NULL, "fgrep 'cpu family' /proc/cpuinfo", res)) +Index: ATLAS/CONFIG/src/backend/probe_gas_aarch64.S +=================================================================== +--- /dev/null ++++ ATLAS/CONFIG/src/backend/probe_gas_aarch64.S +@@ -0,0 +1,14 @@ ++#define ATL_GAS_AARCH64 ++#include "atlas_asm.h" ++# ++# Linux AArch64 assembler for: ++# int asm_probe(int i) ++# RETURNS: i*3 ++# ++.text ++.globl ATL_asmdecor(asm_probe) ++.type ATL_asmdecor(asm_probe), %function ++ATL_asmdecor(asm_probe): ++ add w0, w0, w0, LSL #1 ++ ret ++.size ATL_asmdecor(asm_probe),.-ATL_asmdecor(asm_probe) +Index: ATLAS/CONFIG/src/probe_comp.c +=================================================================== +--- ATLAS.orig/CONFIG/src/probe_comp.c ++++ ATLAS/CONFIG/src/probe_comp.c +@@ -582,7 +582,7 @@ char *GetPtrbitsFlag(enum OSTYPE OS, enu + char *sp = ""; + int i, j, k; + +- if (MachIsIA64(arch)) ++ if (MachIsIA64(arch) || MachIsAARCH64(arch)) + return(sp); + if (MachIsMIPS(arch)) + return((ptrbits == 64) ? "-mabi=64" : "-mabi=n32"); +Index: ATLAS/include/atlas_genparse.h +=================================================================== +--- ATLAS.orig/include/atlas_genparse.h ++++ ATLAS/include/atlas_genparse.h +@@ -6,13 +6,13 @@ + #include + #include + #include +-#define NASMD 9 ++#define NASMD 10 + enum ASMDIA + {ASM_None=0, gas_x86_32, gas_x86_64, gas_sparc, gas_ppc, gas_parisc, +- gas_mips, gas_arm, gas_s390}; ++ gas_mips, gas_arm, gas_s390, gas_aarch64}; + static char *ASMNAM[NASMD] = + {"", "GAS_x8632", "GAS_x8664", "GAS_SPARC", "GAS_PPC", "GAS_PARISC", +- "GAS_MIPS", "GAS_ARM", "GAS_S390"}; ++ "GAS_MIPS", "GAS_ARM", "GAS_S390", "GAS_AARCH64"}; + /* + * Basic data structure for forming queues with some minimal info + */ diff --git a/SOURCES/atlas-fedora-arm.patch b/SOURCES/atlas-fedora-arm.patch new file mode 100644 index 0000000..22a9889 --- /dev/null +++ b/SOURCES/atlas-fedora-arm.patch @@ -0,0 +1,50 @@ +--- CONFIG/include/atlconf.h 2011-05-14 13:33:24.000000000 -0400 ++++ CONFIG/include/atlconf.h.new 2011-08-30 14:25:41.427136391 -0400 +@@ -16,7 +16,7 @@ + + enum ARCHFAM {AFOther=0, AFPPC, AFSPARC, AFALPHA, AFX86, AFIA64, AFMIPS}; + +-#define NMACH 37 ++#define NMACH 38 + static char *machnam[NMACH] = + {"UNKNOWN", "POWER3", "POWER4", "POWER5", "PPCG4", "PPCG5", + "POWER6", "POWER7", +@@ -25,7 +25,7 @@ + "Efficeon", "K7", "HAMMER", "AMD64K10h", "UNKNOWNx86", + "IA64Itan", "IA64Itan2", + "USI", "USII", "USIII", "USIV", "UST2", "UnknownUS", +- "MIPSR1xK", "MIPSICE9"}; ++ "MIPSR1xK", "MIPSICE9", "ARM"}; + enum MACHTYPE {MACHOther, IbmPwr3, IbmPwr4, IbmPwr5, PPCG4, PPCG5, + IbmPwr6, IbmPwr7, + IntP5, IntP5MMX, IntPPRO, IntPII, IntPIII, IntPM, IntCoreS, +@@ -34,7 +34,8 @@ + IA64Itan, IA64Itan2, + SunUSI, SunUSII, SunUSIII, SunUSIV, SunUST2, SunUSX, + MIPSR1xK, /* includes R10K, R12K, R14K, R16K */ +- MIPSICE9 /* SiCortex ICE9 -- like MIPS5K */ ++ MIPSICE9, /* SiCortex ICE9 -- like MIPS5K */ ++ ARM + }; + #define MachIsX86(mach_) \ + ( (mach_) >= IntP5 && (mach_) <= x86X ) +@@ -51,6 +52,8 @@ + #endif + #define MachIsPPC(mach_) \ + ( (mach_) >= PPCG4 && (mach_) <= PPCG5 ) ++#define MachIsARM(mach_) \ ++ ( (mach_) == ARM ) + + static char *f2c_namestr[5] = {"UNKNOWN","Add_", "Add__", "NoChange", "UpCase"}; + static char *f2c_intstr[5] = +--- CONFIG/src/probe_comp.c 2011-05-14 13:33:24.000000000 -0400 ++++ CONFIG/src/probe_comp.c.new 2011-08-30 14:28:31.103015151 -0400 +@@ -507,6 +507,8 @@ + + if (MachIsIA64(arch)) + return(sp); ++ if (MachIsARM(arch)) ++ return(sp); + if (MachIsMIPS(arch)) + return((ptrbits == 64) ? "-mabi=64" : "-mabi=n32"); + if (!CompIsGcc(comp)) diff --git a/SOURCES/atlas-genparse.patch b/SOURCES/atlas-genparse.patch new file mode 100644 index 0000000..218768d --- /dev/null +++ b/SOURCES/atlas-genparse.patch @@ -0,0 +1,14 @@ +diff --git a/include/atlas_genparse.h b/include/atlas_genparse.h +index 909a38e..1e6d153 100644 +--- a/include/atlas_genparse.h ++++ b/include/atlas_genparse.h +@@ -163,7 +163,8 @@ static int GetDoubleArr(char *str, int N, double *d) + if (!str) + break; + str++; +- assert(sscanf(str, "%le", d+i) == 1); ++ if (sscanf(str, "%le", d+i) != 1) ++ break; + i++; + } + return(i); diff --git a/SOURCES/atlas-melf.patch b/SOURCES/atlas-melf.patch new file mode 100644 index 0000000..a4fb926 --- /dev/null +++ b/SOURCES/atlas-melf.patch @@ -0,0 +1,16 @@ +diff --git a/CONFIG/src/SpewMakeInc.c b/CONFIG/src/SpewMakeInc.c +index eed259e..65d68a1 100644 +--- a/CONFIG/src/SpewMakeInc.c ++++ b/CONFIG/src/SpewMakeInc.c +@@ -764,9 +764,9 @@ int main(int nargs, char **args) + else + { + if (ptrbits == 32) +- fprintf(fpout, " -melf_i386"); ++ fprintf(fpout, " -Wl,-melf_i386"); + else if (ptrbits == 64) +- fprintf(fpout, " -melf_x86_64"); ++ fprintf(fpout, " -Wl,-melf_x86_64"); + if (OS == OSFreeBSD) + fprintf(fpout, "_fbsd"); + } diff --git a/SOURCES/atlas-shared_libraries.patch b/SOURCES/atlas-shared_libraries.patch new file mode 100644 index 0000000..3c7e9d8 --- /dev/null +++ b/SOURCES/atlas-shared_libraries.patch @@ -0,0 +1,40 @@ +From 3119c671c566761a79ac98405cb619892acde3e8 Mon Sep 17 00:00:00 2001 +From: Lukas Slebodnik +Date: Fri, 20 Sep 2013 09:26:58 +0200 +Subject: [PATCH] atlas-shared_libraries + +--- + ATLAS/makes/Make.lib | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/ATLAS/makes/Make.lib b/ATLAS/makes/Make.lib +index ab1eb9963d36678972a0a410905169aaa563dc64..27c6e316b442e09b0f46afac7940aaa11e25e45c 100644 +--- a/ATLAS/makes/Make.lib ++++ b/ATLAS/makes/Make.lib +@@ -4,6 +4,8 @@ mySRCdir = $(SRCdir)/lib + # + # override with libatlas.so only when atlas is built to one lib + # ++so_ver_major=3 ++so_ver = $(so_ver_major).10 + DYNlibs = liblapack.so libf77blas.so libcblas.so libatlas.so + PTDYNlibs = liblapack.so libptf77blas.so libptcblas.so libatlas.so + CDYNlibs = liblapack.so libcblas.so libatlas.so +@@ -116,9 +116,12 @@ LDTRY: + -rpath-link $(LIBINSTdir) \ + --whole-archive $(libas) --no-whole-archive $(LIBS) + GCCTRY: +- $(GOODGCC) -shared -o $(outso) \ +- -Wl,"-rpath-link $(LIBINSTdir)" \ ++ $(GOODGCC) -shared -o $(outso).$(so_ver) \ ++ \ ++ -Wl,-soname,"$(outso).$(so_ver_major)" \ + -Wl,--whole-archive $(libas) -Wl,--no-whole-archive $(LIBS) ++ ln -s $(outso).$(so_ver) $(outso).$(so_ver_major) ++ ln -s $(outso).$(so_ver) $(outso) + GCCTRY_norp: + $(GOODGCC) -shared -o $(outso) \ + -Wl,--whole-archive $(libas) -Wl,--no-whole-archive $(LIBS) +-- +1.8.3.1 + diff --git a/SOURCES/atlas-throttling.patch b/SOURCES/atlas-throttling.patch new file mode 100644 index 0000000..45c862e --- /dev/null +++ b/SOURCES/atlas-throttling.patch @@ -0,0 +1,12 @@ +diff -up ATLAS/CONFIG/src/config.c.zaloha ATLAS/CONFIG/src/config.c +--- ATLAS/CONFIG/src/config.c.zaloha 2012-10-25 11:29:02.495425989 +0200 ++++ ATLAS/CONFIG/src/config.c 2012-10-25 11:42:10.218216957 +0200 +@@ -711,6 +711,8 @@ int ProbePtrbits(int verb, char *targarg + + int ProbeCPUThrottle(int verb, char *targarg, enum OSTYPE OS, enum ASMDIA asmb) + { ++ return 0; /* impossible to turn off cpu throttling => ignore */ ++ /* this undermines performance of compiled library */ + int i, iret; + char *ln; + i = strlen(targarg) + 22 + 12; diff --git a/SOURCES/atlas.3.10.1-unbundle.patch b/SOURCES/atlas.3.10.1-unbundle.patch new file mode 100644 index 0000000..962a9e9 --- /dev/null +++ b/SOURCES/atlas.3.10.1-unbundle.patch @@ -0,0 +1,17 @@ +diff -up wrk/makes/Make.lib.wrk wrk/makes/Make.lib +--- wrk/makes/Make.lib.wrk 2015-01-23 21:14:46.465494411 +0100 ++++ wrk/makes/Make.lib 2015-01-23 22:48:39.632479588 +0100 +@@ -185,11 +185,11 @@ TRYALL : + # + fat_ptshared : # threaded target + $(MAKE) TRYALL outso=libtatlas.so \ +- libas="libptlapack.a libptf77blas.a libptcblas.a libatlas.a" \ ++ libas="libptlapack.a libptf77blas.a libptcblas.a libatlas.a $(SLAPACKlib)" \ + LIBINSTdir="$(LIBINSTdir)" + fat_shared : # serial target + $(MAKE) TRYALL outso=libsatlas.so \ +- libas="liblapack.a libf77blas.a libcblas.a libatlas.a" \ ++ libas="liblapack.a libf77blas.a libcblas.a libatlas.a $(SLAPACKlib)" \ + LIBINSTdir="$(LIBINSTdir)" + # + # Builds shared lib, not include fortran codes from LAPACK diff --git a/SPECS/atlas.spec b/SPECS/atlas.spec new file mode 100644 index 0000000..56705a3 --- /dev/null +++ b/SPECS/atlas.spec @@ -0,0 +1,1145 @@ +%define enable_native_atlas 0 + +Name: atlas +Version: 3.10.3 +%if "%{?enable_native_atlas}" != "0" +%define dist .native +%endif +Release: 6%{?dist} +Summary: Automatically Tuned Linear Algebra Software + +Group: System Environment/Libraries +License: BSD +URL: http://math-atlas.sourceforge.net/ +Source0: http://downloads.sourceforge.net/math-atlas/%{name}%{version}.tar.bz2 +Source1: PPRO32.tgz +#Source2: K7323DNow.tgz +Source3: README.dist +#Source4: USII64.tgz +#Source5: USII32.tgz +#Source6: IBMz1032.tgz +#Source7: IBMz1064.tgz +#Source8: IBMz19632.tgz +#Source9: IBMz19664.tgz +#archdefs taken from debian: +Source11: POWER332.tar.bz2 +Source12: IBMz932.tar.bz2 +Source13: IBMz964.tar.bz2 +#upstream arm uses softfp abi, fedora arm uses hard +Source14: ARMv732NEON.tar.bz2 +#again, taken from debian +Source15: IBMz1264.tar.bz2 +Source16: ARMa732.tar.bz2 + +Patch2: atlas-fedora-arm.patch +# Properly pass -melf_* to the linker with -Wl, fixes FTBFS bug 817552 +# https://sourceforge.net/tracker/?func=detail&atid=379484&aid=3555789&group_id=23725 +Patch3: atlas-melf.patch +Patch4: atlas-throttling.patch + +#credits Lukas Slebodnik +Patch5: atlas-shared_libraries.patch + +Patch7: atlas-aarch64port.patch +Patch8: atlas-genparse.patch + +# Unbundle LAPACK (BZ #1181369) +Patch9: atlas.3.10.1-unbundle.patch + +BuildRequires: gcc-gfortran, lapack-static, gcc + +%ifarch x86_64 +Obsoletes: atlas-sse3 < 3.10.3-1 +%endif + +%ifarch %{ix86} +Obsoletes: atlas-3dnow < 3.10.3-1 +Obsoletes: atlas-sse < 3.10.3-1 +Obsoletes: atlas-sse2 < 3.10.3-1 +Obsoletes: atlas-sse3 < 3.10.3-1 +%endif + +%ifarch s390 s390x +#Obsoletes: atlas-z10 < 3.10 +#Obsoletes: atlas-z196 < 3.10 +%endif + + +%description +The ATLAS (Automatically Tuned Linear Algebra Software) project is an +ongoing research effort f(ocusing on applying empirical techniques in +order to provide portable performance. At present, it provides C and +Fortran77 interfaces to a portably efficient BLAS implementation, as +well as a few routines from LAPACK. + +The performance improvements in ATLAS are obtained largely via +compile-time optimizations and tend to be specific to a given hardware +configuration. In order to package ATLAS some compromises +are necessary so that good performance can be obtained on a variety +of hardware. This set of ATLAS binary packages is therefore not +necessarily optimal for any specific hardware configuration. However, +the source package can be used to compile customized ATLAS packages; +see the documentation for information. + +%package devel +Summary: Development libraries for ATLAS +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} +Obsoletes: %name-header <= %version-%release +Requires(posttrans): chkconfig +Requires(postun): chkconfig + +%ifarch x86_64 +Obsoletes: atlas-sse3-devel < 3.10.3-1 +%endif + +%ifarch %{ix86} +Obsoletes: atlas-3dnow-devel < 3.10.3-1 +Obsoletes: atlas-sse-devel < 3.10.3-1 +Obsoletes: atlas-sse2-devel < 3.10.3-1 +Obsoletes: atlas-sse3-devel < 3.10.3-1 +%endif +%description devel +This package contains headers for development with ATLAS +(Automatically Tuned Linear Algebra Software). + +%package static +Summary: Static libraries for ATLAS +Group: Development/Libraries +Requires: %{name}-devel = %{version}-%{release} +Requires(posttrans): chkconfig +Requires(postun): chkconfig + +%ifarch x86_64 +Obsoletes: atlas-sse3-static < 3.10.3-1 +%endif + +%ifarch %{ix86} +Obsoletes: atlas-3dnow-static < 3.10.3-1 +Obsoletes: atlas-sse-static < 3.10.3-1 +Obsoletes: atlas-sse2-static < 3.10.3-1 +Obsoletes: atlas-sse3-static < 3.10.3-1 +%endif +%description static +This package contains static version of ATLAS (Automatically Tuned +Linear Algebra Software). + + +%define types base + +%if "%{?enable_native_atlas}" == "0" +############## Subpackages for architecture extensions ################# +# +%ifarch x86_64 +%define types base corei2 +#corei4 +# sse3 + +%package corei2-static +Summary: ATLAS libraries for Corei2 (Ivy/Sandy bridge) CPUs +Group: System Environment/Libraries + +%description corei2-static +This package contains the ATLAS (Automatically Tuned Linear Algebra +Software) static libraries compiled with optimizations for the Corei2 (Ivy/Sandy bridge) +CPUs. The base ATLAS builds for the x86_64 architecture are made for the hammer64 CPUs. + +%package corei2 +Summary: ATLAS libraries for Corei2 (Ivy/Sandy bridge) CPUs +Group: System Environment/Libraries + +%description corei2 +This package contains the ATLAS (Automatically Tuned Linear Algebra +Software) libraries compiled with optimizations for the Corei2 (Ivy/Sandy bridge) +CPUs. The base ATLAS builds for the x86_64 architecture are made for the hammer64 CPUs. + +%package corei2-devel +Summary: Development libraries for ATLAS for Corei2 (Ivy/Sandy bridge) CPUs +Group: Development/Libraries +Requires: %{name}-corei2 = %{version}-%{release} +Obsoletes: %name-header <= %version-%release +Requires(posttrans): chkconfig +Requires(postun): chkconfig + +%description corei2-devel +This package contains shared and static versions of the ATLAS +(Automatically Tuned Linear Algebra Software) libraries compiled with +optimizations for the corei2 (Ivy/Sandy bridge) CPUs. +%endif + +%ifarch %{ix86} +%define types base +#corei1 + +#%package corei1 +#Summary: ATLAS libraries for Corei1 (Nehalem/Westmere) CPUs +#Group: System Environment/Libraries + +#%description corei1 +#This package contains ATLAS (Automatically Tuned Linear Algebra Software) +#shared libraries compiled with optimizations for the Corei1 (Nehalem/Westmere) CPUs. +#The base ATLAS builds for the ix86 architecture are made for PIII CPUs. + +#%package corei1-devel +#Summary: Development libraries for ATLAS for Corei1 (Nehalem/Westmere) CPUs +#Group: Development/Libraries +#Requires: %{name}-corei1 = %{version}-%{release} +#Obsoletes: %name-header <= %version-%release +#Requires(posttrans): chkconfig +#Requires(postun): chkconfig + +#%description corei1-devel +#This package contains shared and static versions of the ATLAS +#(Automatically Tuned Linear Algebra Software) libraries compiled with +#optimizations for the corei1 (Nehalem/Westmere) CPUs. + +#%package corei1-static +#Summary: Static libraries for ATLAS for Corei1 (/Nehalem/Westmere) CPUs +#Group: Development/Libraries +#Requires: %{name}-corei1-devel = %{version}-%{release} +#Requires(posttrans): chkconfig +#Requires(postun): chkconfig + +#%description corei1-static +#This package contains the ATLAS (Automatically Tuned Linear Algebra +#Software) static libraries compiled with optimizations for the Corei1 (Nehalem/Westemere) +#CPUs. The base ATLAS builds for the ix86 architecture are made for the PIII CPUs. + +%endif + +%ifarch s390 s390x +%define types base z196 z10 + +%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-z196-header <= %version-%release +Requires(posttrans): chkconfig +Requires(postun): 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 z196-static +Summary: Static libraries for ATLAS +Group: Development/Libraries +Requires: %{name}-z196-devel = %{version}-%{release} +Requires(posttrans): chkconfig +Requires(postun): chkconfig + +%description z196-static +This package contains static version of ATLAS (Automatically Tuned +Linear Algebra Software) 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(postun): 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. + +%package z10-static +Summary: Static libraries for ATLAS +Group: Development/Libraries +Requires: %{name}-devel = %{version}-%{release} +Requires(posttrans): chkconfig +Requires(postun): chkconfig + +%description z10-static +This package contains static version of ATLAS (Automatically Tuned +Linear Algebra Software) for the z10 architecture. + + +%endif + + +%ifarch ppc64 +%define types base power7 power8 + +%package power8 +Summary: ATLAS libraries for Power 8 +Group: System Environment/Libraries + +%description power8 +This package contains ATLAS (Automatically Tuned Linear Algebra Software) +shared libraries compiled with optimizations for the Power 8 CPUs. +The base ATLAS builds for the ppc64 architecture are made for Power 5 CPUs. + +%package power8-devel +Summary: Development libraries for ATLAS for Power 8 +Group: Development/Libraries +Requires: %{name}-power8 = %{version}-%{release} +Obsoletes: %name-header <= %version-%release +Requires(posttrans): chkconfig +Requires(postun): chkconfig + +%description power8-devel +This package contains shared and static versions of the ATLAS +(Automatically Tuned Linear Algebra Software) libraries compiled with +optimizations for the Power 8 CPUs. + +%package power8-static +Summary: Static libraries for ATLAS for Power 8 +Group: Development/Libraries +Requires: %{name}-power8-devel = %{version}-%{release} +Requires(posttrans): chkconfig +Requires(postun): chkconfig + +%description power8-static +This package contains the ATLAS (Automatically Tuned Linear Algebra +Software) static libraries compiled with optimizations for the Power 8 +CPUs. The base ATLAS builds for the ppc64 architecture are made for the Power 5 CPUs. + +%package power7 +Summary: ATLAS libraries for Power 7 +Group: System Environment/Libraries + +%description power7 +This package contains ATLAS (Automatically Tuned Linear Algebra Software) +shared libraries compiled with optimizations for the Power 7 CPUs. +The base ATLAS builds for the ppc64 architecture are made for Power 5 CPUs. + +%package power7-devel +Summary: Development libraries for ATLAS for Power 7 +Group: Development/Libraries +Requires: %{name}-power7 = %{version}-%{release} +Obsoletes: %name-header <= %version-%release +Requires(posttrans): chkconfig +Requires(postun): chkconfig + +%description power7-devel +This package contains shared and static versions of the ATLAS +(Automatically Tuned Linear Algebra Software) libraries compiled with +optimizations for the Power 7 CPUs. + +%package power7-static +Summary: Static libraries for ATLAS for Power 7 +Group: Development/Libraries +Requires: %{name}-power7-devel = %{version}-%{release} +Requires(posttrans): chkconfig +Requires(postun): chkconfig + +%description power7-static +This package contains the ATLAS (Automatically Tuned Linear Algebra +Software) static libraries compiled with optimizations for the Power 7 +CPUs. The base ATLAS builds for the ppc64 architecture are made for the Power 5 CPUs. + +%endif +#end of enable_native_atlas if +%endif + +%prep +#cat /proc/cpuinfo +%setup -q -n ATLAS +#patch0 -p0 -b .shared +#arm patch not applicable, probably not needed +#%ifarch %{arm} +#%patch2 -p0 -b .arm +#%endif +%patch3 -p1 -b .melf +%patch4 -p1 -b .thrott +%patch5 -p2 -b .sharedlib +%ifarch aarch64 +#%patch7 -p1 -b .aarch64 +%endif +%patch8 -p1 -b .genparse +%patch9 -p1 -b .unbundle + +cp %{SOURCE1} CONFIG/ARCHS/ +#cp %{SOURCE2} CONFIG/ARCHS/ +cp %{SOURCE3} doc +cp %{SOURCE11} CONFIG/ARCHS/ +cp %{SOURCE12} CONFIG/ARCHS/ +cp %{SOURCE13} CONFIG/ARCHS/ +cp %{SOURCE14} CONFIG/ARCHS/ +cp %{SOURCE15} CONFIG/ARCHS/ +cp %{SOURCE16} CONFIG/ARCHS/ +#cp %{SOURCE8} CONFIG/ARCHS/ +#cp %{SOURCE9} CONFIG/ARCHS/ + +%ifarch %{arm} +# Set arm flags in atlcomp.txt +#sed -i -e 's,-mfpu=vfpv3,-mfpu=neon,' CONFIG/src/atlcomp.txt +sed -i -e 's,-mfloat-abi=softfp,-mfloat-abi=hard,' CONFIG/src/atlcomp.txt +# Some extra arm flags not needed +#sed -i -e 's,-mfpu=vfpv3,,' tune/blas/gemm/CASES/*.flg +%endif +# Debug +#sed -i -e 's,> \(.*\)/ptsanity.out,> \1/ptsanity.out || cat \1/ptsanity.out \&\& exit 1,' makes/Make.* + +# Generate lapack library +mkdir lapacklib +cd lapacklib +ar x %{_libdir}/liblapack_pic.a +# Remove functions that have ATLAS implementations +rm -f cgelqf.o cgels.o cgeqlf.o cgeqrf.o cgerqf.o cgesv.o cgetrf.o cgetri.o cgetrs.o clarfb.o clarft.o clauum.o cposv.o cpotrf.o cpotri.o cpotrs.o ctrtri.o dgelqf.o dgels.o dgeqlf.o dgeqrf.o dgerqf.o dgesv.o dgetrf.o dgetri.o dgetrs.o dlamch.o dlarfb.o dlarft.o dlauum.o dposv.o dpotrf.o dpotri.o dpotrs.o dtrtri.o ieeeck.o ilaenv.o lsame.o sgelqf.o sgels.o sgeqlf.o sgeqrf.o sgerqf.o sgesv.o sgetrf.o sgetri.o sgetrs.o slamch.o slarfb.o slarft.o slauum.o sposv.o spotrf.o spotri.o spotrs.o strtri.o xerbla.o zgelqf.o zgels.o zgeqlf.o zgeqrf.o zgerqf.o zgesv.o zgetrf.o zgetri.o zgetrs.o zlarfb.o zlarft.o zlauum.o zposv.o zpotrf.o zpotri.o zpotrs.o ztrtri.o +# Create new library +ar rcs ../liblapack_pic_pruned.a *.o +cd .. + + +%build +p=$(pwd) +%undefine _strict_symbol_defs_build +%ifarch %{arm} +%global mode %{nil} +%else +%global mode -b %{__isa_bits} +%endif + +%define arg_options %{nil} +%define flags %{nil} +%define threads_option "-t 2" + +#Target architectures for the 'base' versions +%ifarch s390x +%define flags %{nil} +%define base_options "-A IBMz9 -V 1" +%endif + +%ifarch x86_64 +%define flags "-fcf-protection=full" +%define base_options "-A HAMMER -V 896" +%endif + +%ifarch %ix86 +%define flags "-fcf-protection=full" +%define base_options "-A PIII -V 512" +%endif + +%ifarch ppc +%define flags %{nil} +%define base_options "-A POWER5 -V 1" +%endif + +%ifarch ppc64 +%define flags %{nil} +%define base_options "-A POWER5 -V 1" +%endif + +%ifarch ppc64le +%define flags %{nil} +%define base_options "-A POWER8 -V 1" +%endif + +%ifarch %{arm} +%define flags "-DATL_ARM_HARDFP=1" +%define base_options "-A ARMa7 -V 1" +%endif + +%ifarch aarch64 +%define flags %{nil} +%define base_options "-A ARM64a53 -V 1" +%endif + +%if "%{?enable_native_atlas}" != "0" +%define threads_option %{nil} +%define base_options %{nil} +%define flags %{nil} +%endif + +for type in %{types}; do + if [ "$type" = "base" ]; then + libname=atlas + arg_options=%{base_options} + thread_options=%{threads_option} + %define pr_base %(echo $((%{__isa_bits}+0))) + else + libname=atlas-${type} + if [ "$type" = "corei2" ]; then + thread_options="-t 4" + arg_options="-A Corei2 -V 896" + %define pr_corei2 %(echo $((%{__isa_bits}+2))) + elif [ "$type" = "corei1" ]; then + arg_options="-A Corei1 -V 896" + %define pr_corei1 %(echo $((%{__isa_bits}+2))) + elif [ "$type" = "z10" ]; then + arg_options="-A IBMz10 -V 1" + %define pr_z10 %(echo $((%{__isa_bits}+2))) + elif [ "$type" = "z196" ]; then + arg_options="-A IBMz196 -V 1" + %define pr_z196 %(echo $((%{__isa_bits}+4))) + elif [ "$type" = "power7" ]; then + thread_options="-t 4" + arg_options="-A POWER7 -V 1" + %define pr_power7 %(echo $((%{__isa_bits}+2))) + elif [ "$type" = "power8" ]; then + thread_options="-t 4" + arg_options="-A POWER8 -V 1" + %define pr_power8 %(echo $((%{__isa_bits}+4))) + fi + fi + mkdir -p %{_arch}_${type} + pushd %{_arch}_${type} + ../configure %{mode} $thread_options $arg_options -D c -DWALL -Fa alg '%{flags} -D_FORTIFY_SOURCE=2 -g -Wa,--noexecstack,--generate-missing-build-notes=yes -fstack-protector-strong -fstack-clash-protection -fPIC -fplugin=annobin -Wl,-z,now'\ + --prefix=%{buildroot}%{_prefix} \ + --incdir=%{buildroot}%{_includedir} \ + --libdir=%{buildroot}%{_libdir}/${libname} + #--with-netlib-lapack-tarfile=%{SOURCE10} + + #matches both SLAPACK and SSLAPACK + sed -i "s#SLAPACKlib.*#SLAPACKlib = ${p}/liblapack_pic_pruned.a#" Make.inc + cat Make.inc +%if "%{?enable_native_atlas}" == "0" + +%ifarch ppc64 + #Use big endian + sed -i 's#ARCH = POWER564LE#ARCH = POWER564#' Make.inc + sed -i 's#ARCH = POWER764LE#ARCH = POWER764#' Make.inc + sed -i 's#ARCH = POWER864LE#ARCH = POWER864#' Make.inc +%endif + +%endif + + make build + cd lib + make shared + make ptshared + popd +done + +%install +for type in %{types}; do + pushd %{_arch}_${type} + make DESTDIR=%{buildroot} install + mv %{buildroot}%{_includedir}/atlas %{buildroot}%{_includedir}/atlas-%{_arch}-${type} + if [ "$type" = "base" ]; then + cp -pr lib/*.so* %{buildroot}%{_libdir}/atlas/ + rm -f %{buildroot}%{_libdir}/atlas/*.a + cp -pr lib/libcblas.a lib/libatlas.a lib/libf77blas.a lib/liblapack.a %{buildroot}%{_libdir}/atlas/ + else + cp -pr lib/*.so* %{buildroot}%{_libdir}/atlas-${type}/ + rm -f %{buildroot}%{_libdir}/atlas-${type}/*.a + cp -pr lib/libcblas.a lib/libatlas.a lib/libf77blas.a lib/liblapack.a %{buildroot}%{_libdir}/atlas-${type}/ + fi + popd + + mkdir -p %{buildroot}/etc/ld.so.conf.d + if [ "$type" = "base" ]; then + echo "%{_libdir}/atlas" \ + > %{buildroot}/etc/ld.so.conf.d/atlas-%{_arch}.conf + else + echo "%{_libdir}/atlas-${type}" \ + > %{buildroot}/etc/ld.so.conf.d/atlas-%{_arch}-${type}.conf + fi +done + +#create pkgconfig file +mkdir -p $RPM_BUILD_ROOT%{_libdir}/pkgconfig/ +cat > $RPM_BUILD_ROOT%{_libdir}/pkgconfig/atlas.pc << DATA +Name: %{name} +Version: %{version} +Description: %{summary} +Cflags: -I%{_includedir}/atlas/ +Libs: -L%{_libdir}/atlas/ -lsatlas +DATA + + +mkdir -p %{buildroot}%{_includedir}/atlas + + +%check +# Run make check but don't fail the build on these arches +#%ifarch s390 aarch64 ppc64 +#for type in %{types}; do +# pushd %{_arch}_${type} +# make check ptcheck +# popd +#done +#%else +for type in %{types}; do + pushd %{_arch}_${type} + make check ptcheck + popd +done +#%endif + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%posttrans devel +/usr/sbin/alternatives --install %{_includedir}/atlas atlas-inc \ + %{_includedir}/atlas-%{_arch}-base %{pr_base} + +%postun devel +if [ $1 -ge 0 ] ; then +/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-base +fi + +%if "%{?enable_native_atlas}" == "0" +%ifarch x86_64 + + %post -n atlas-corei2 -p /sbin/ldconfig + + %postun -n atlas-corei2 -p /sbin/ldconfig + + %posttrans corei2-devel + /usr/sbin/alternatives --install %{_includedir}/atlas atlas-inc \ + %{_includedir}/atlas-%{_arch}-corei2 %{pr_corei2} + + %postun corei2-devel + if [ $1 -ge 0 ] ; then + /usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-corei2 + fi + +%endif + +%ifarch %{ix86} + + %post -n atlas-corei1 -p /sbin/ldconfig + + %postun -n atlas-corei1 -p /sbin/ldconfig + + %posttrans corei1-devel + /usr/sbin/alternatives --install %{_includedir}/atlas atlas-inc \ + %{_includedir}/atlas-%{_arch}-corei1 %{pr_corei1} + + %postun corei1-devel + if [ $1 -ge 0 ] ; then + /usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-corei1 + fi + +%endif + +%ifarch s390 s390x + + %post -n atlas-z10 -p /sbin/ldconfig + + %postun -n atlas-z10 -p /sbin/ldconfig + + %posttrans z10-devel + /usr/sbin/alternatives --install %{_includedir}/atlas atlas-inc \ + %{_includedir}/atlas-%{_arch}-z10 %{pr_z10} + + %postun 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 + /usr/sbin/alternatives --install %{_includedir}/atlas atlas-inc \ + %{_includedir}/atlas-%{_arch}-z196 %{pr_z196} + + %postun z196-devel + if [ $1 -ge 0 ] ; then + /usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-z196 + fi + +%endif + +%ifarch ppc64 + + %post -n atlas-power7 -p /sbin/ldconfig + + %postun -n atlas-power7 -p /sbin/ldconfig + + %posttrans power7-devel + /usr/sbin/alternatives --install %{_includedir}/atlas atlas-inc \ + %{_includedir}/atlas-%{_arch}-power7 %{pr_power7} + + %postun power7-devel + if [ $1 -ge 0 ] ; then + /usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-power7 + fi + + %post -n atlas-ppc8 -p /sbin/ldconfig + + %postun -n atlas-ppc8 -p /sbin/ldconfig + + %posttrans ppc8-devel + /usr/sbin/alternatives --install %{_includedir}/atlas atlas-inc \ + %{_includedir}/atlas-%{_arch}-ppc8 %{pr_ppc8} + + %postun ppc8-devel + if [ $1 -ge 0 ] ; then + /usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-ppc8 + fi + +%endif +#enable_native_atlas +%endif +%files + %doc doc/README.dist + %dir %{_libdir}/atlas + %{_libdir}/atlas/*.so.* + %config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}.conf + +%files devel + %doc doc + %{_libdir}/atlas/*.so + %{_includedir}/atlas-%{_arch}-base/ + %{_includedir}/*.h + %ghost %{_includedir}/atlas + %{_libdir}/pkgconfig/atlas.pc + +%files static + %{_libdir}/atlas/*.a + +%if "%{?enable_native_atlas}" == "0" + +%ifarch x86_64 + +%files corei2 +%doc doc/README.dist +%dir %{_libdir}/atlas-corei2 +%{_libdir}/atlas-corei2/*.so.* +%config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}-corei2.conf + +%files corei2-devel +%doc doc +%{_libdir}/atlas-corei2/*.so +%{_includedir}/atlas-%{_arch}-corei2/ +%{_includedir}/*.h +%ghost %{_includedir}/atlas + +%files corei2-static +%{_libdir}/atlas-corei2/*.a +%endif + +%ifarch ppc64 + + +%files power8 +%doc doc/README.dist +%dir %{_libdir}/atlas-power8 +%{_libdir}/atlas-power8/*.so.* +%config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}-power8.conf + +%files power8-devel +%doc doc +%{_libdir}/atlas-power8/*.so +%{_includedir}/atlas-%{_arch}-power8/ +%{_includedir}/*.h +%ghost %{_includedir}/atlas + +%files power8-static +%{_libdir}/atlas-power8/*.a + +%files power7 +%doc doc/README.dist +%dir %{_libdir}/atlas-power7 +%{_libdir}/atlas-power7/*.so.* +%config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}-power7.conf + +%files power7-devel +%doc doc +%{_libdir}/atlas-power7/*.so +%{_includedir}/atlas-%{_arch}-power7/ +%{_includedir}/*.h +%ghost %{_includedir}/atlas + +%files power7-static +%{_libdir}/atlas-power7/*.a +%endif + +%ifarch %{ix86} + +#%files corei1 +#%doc doc/README.dist +#%dir %{_libdir}/atlas-corei1 +#%{_libdir}/atlas-corei1/*.so.* +#%config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}-corei1.conf + +#%files corei1-devel +#%doc doc +#%{_libdir}/atlas-corei1/*.so +#%{_includedir}/atlas-%{_arch}-corei1/ +#%{_includedir}/*.h +#%ghost %{_includedir}/atlas + +#%files corei1-static +#%{_libdir}/atlas-corei1/*.a +%endif + +%ifarch s390 s390x +%files z10 +%doc doc/README.dist +%dir %{_libdir}/atlas-z10 +%{_libdir}/atlas-z10/*.so.* +%config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}-z10.conf + +%files z10-devel +%doc doc +%{_libdir}/atlas-z10/*.so +%{_includedir}/atlas-%{_arch}-z10/ +%{_includedir}/*.h +%ghost %{_includedir}/atlas + +%files z10-static +%{_libdir}/atlas-z10/*.a + +%files z196 +%doc doc/README.dist +%dir %{_libdir}/atlas-z196 +%{_libdir}/atlas-z196/*.so.* +%config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}-z196.conf + +%files z196-devel +%doc doc +%{_libdir}/atlas-z196/*.so +%{_includedir}/atlas-%{_arch}-z196/ +%{_includedir}/*.h +%ghost %{_includedir}/atlas + +%files z196-static +%{_libdir}/atlas-z196/*.a + +%endif +#enable_native_atlas if +%endif + +%changelog +* Mon Dec 17 2018 Jakub Martisko - 3.10.3-6 +* Pass all required compiler/linker flags +- use annobin plugin +- generate assembler build notes +Related: #1624098 + +* Wed Apr 25 2018 Jakub Martisko - 3.10.3-5 +- Pass RPM_LD_FLAGS to linker + +* Wed Apr 25 2018 Jakub Martisko - 3.10.3-4 +- Add gcc to buildrequires + +* Wed Feb 07 2018 Fedora Release Engineering - 3.10.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Jan 30 2018 Björn Esser - 3.10.3-2 +- Rebuilt for GCC8 + +* Thu Aug 17 2017 Jakub Martisko - 3.10.3-1 +- Update to new 3.10.3 stable version. +- Remove ppc64/ppc64le related patches. +- All packages now use -A option to specify the target CPU/Architecture instead of +sed substitutions and auto detection. The packages should now be less dependant on the +builder machine used. +- Base package for each architecture should now be configured to be compatible with the +most basic machine of given type. +- In addittion to base package, added some optimized packages for more advanced CPUs for +most architectures. +- Dropped sse2/sse3 subpackages for ix86 + +* Wed Aug 16 2017 Tom Callaway - 3.10.2-20 +- rebuild again for fixed lapack + +* Wed Feb 03 2016 Fedora Release Engineering - 3.10.2-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Sun Nov 29 2015 Zbigniew Jędrzejewski-Szmek - 3.10.2-11 +- Rebuild for updated lapack + +* Thu Nov 26 2015 Than Ngo 3.10.2-10 +- backport upstream patch for power8 support + +* Fri Nov 13 2015 Than Ngo 3.10.2-9 +- add correct assembler option for ppc64 + +* Wed Nov 04 2015 Than Ngo - 3.10.2-8 +- add correct machine type for ppc64 -> fix build failure on ppc64 + +* Wed Oct 28 2015 Susi Lehtola - 3.10.2-7 +- Drop bundled(lapack) which was already fixed in atlas-3.10.1-18. + +* Thu Jul 09 2015 Than Ngo 3.10.2-6 +- fix ppc64le patch + +* Wed Jun 17 2015 Fedora Release Engineering - 3.10.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Wed Jun 10 2015 Marcin Juszkiewicz - 3.10.2-4 +- Refreshed AArch64 patch + +* Fri Jun 05 2015 Dan Horák - 3.10.2-3 +- drop upstreamed s390 patch + +* Wed May 20 2015 Frantisek Kluknavsky - 3.10.2-2 +- include all single-threaded wrapper libraries in -static subpackage +- bz#1222079 + +* Thu May 14 2015 Orion Poplawski - 3.10.2-1 +- Update to 3.10.2 (bug #1118596) +- Autodetect arm arch +- Add arch_option for ppc64le + +* Thu Mar 05 2015 Frantisek Kluknavsky - 3.10.1-22 +- lapack bundled again, mark this. + +* Sat Feb 07 2015 Susi Lehtola - 3.10.1-21 +- Devel packages don't need to require lapack-devel anymore. + +* Fri Jan 30 2015 Susi Lehtola - 3.10.1-20 +- Link statically to system LAPACK as in earlier versions of Fedora and as + in OpenBLAS (BZ #1181369). + +* Wed Jan 28 2015 Frantisek Kluknavsky - 3.10.1-19 +- updated chkconfig and dependencies of atlas-devel after unbundling + +* Fri Jan 23 2015 Frantisek Kluknavsky - 3.10.1-18 +- unbundled lapack (only a few modified routines shipped with atlas sources are supposed to stay) + +* Thu Oct 30 2014 Jaromir Capik - 3.10.1-17 +- patching for Power8 to pass performance tunings and tests on P8 builders + +* Fri Oct 24 2014 Orion Poplawski - 3.10.1-16 +- Fix alternatives install + +* Thu Oct 23 2014 Frantisek Kluknavsky - 3.10.1-15 +- added pkgconfig file + +* Fri Aug 15 2014 Fedora Release Engineering - 3.10.1-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 3.10.1-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon Feb 24 2014 Peter Robinson 3.10.1-12 +- Don't fail build on make check on aarch64 due to issues with tests + +* Sun Feb 16 2014 Marcin Juszkiewicz - 3.10.1-11 +- Unbreak AArch64 build. +- ARMv8 is different from ARMv7 so should not be treated as such. Otherwise + atlas tries to do some crazy ARMv764 build and fail. + +* Wed Nov 20 2013 Frantisek Kluknavsky - 3.10.1-10 +- updated lapack to 3.5.0 + +* Wed Nov 13 2013 Frantisek Kluknavsky - 3.10.1-9 +- updated subpackage description + +* Tue Nov 05 2013 Frantisek Kluknavsky - 3.10.1-8 +- patch for aarch64 from https://bugzilla.redhat.com/attachment.cgi?id=755555 + +* Wed Oct 16 2013 Frantisek Kluknavsky - 3.10.1-7 +- Provides: bundled(lapack) + +* Thu Oct 10 2013 Frantisek Kluknavsky - 3.10.1-6 +- make check on arm enabled - seems to work + +* Wed Oct 2 2013 Orion Poplawski - 3.10.1-5 +- Add -DATL_ARM_HARDFP=1 for arm build +- Rework how arm flags are set + +* Mon Sep 30 2013 Frantisek Kluknavsky - 3.10.1-4 +- disable tests on arm to allow update for x86 + +* Tue Sep 24 2013 Frantisek Kluknavsky - 3.10.1-3 +- disable affinity to prevent crash on systems with fewer cpus + +* Mon Sep 23 2013 Orion Poplawski - 3.10.1-2 +- Add %%check section + +* Fri Sep 20 2013 Frantisek Kluknavsky - 3.10.1-1 +- Rebase to 3.10.1 +- Dropped x86_64-SSE2, ix86-SSE1, ix86-3DNow, z10, z196 (uncompilable). +- Modified incompatible patches. +- Added armv7neon support, modified archdef from softfp abi to hard abi. +- Modified Make.lib to include build-id, soname, versioned library name and symlinks. +- Now builds monolithic libsatlas (serial) and libtatlas (threaded) + libraries with lapack and blas included. +- Lapack source tarball needed instead of static library. +- Disabled cpu throttling detection again (sorry, could not work on atlas + otherwise, feel free to enable yet again - atlas-throttling.patch). +- Removed mentions of "Fedora" to promote redistribution. +- Modified parts of atlas.spec sometimes left in place, work still in progress, + cleanup needed. + + +* Sat Aug 03 2013 Fedora Release Engineering - 3.8.4-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Sun Jan 27 2013 Peter Robinson 3.8.4-8 +- Rebuild for ARM glibc/binutils issues + +* Fri Sep 07 2012 Orion Poplawski - 3.8.4-7 +- Rebuild with lapack 3.4.1 + +* Thu Aug 09 2012 Orion Poplawski - 3.8.4-6 +- Add patch to properly pass -melf_* to the linker with -Wl (bug 817552) + +* Wed Jul 18 2012 Fedora Release Engineering - 3.8.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Thu Jan 12 2012 Fedora Release Engineering - 3.8.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Thu Sep 01 2011 Deji Akingunola - 3.8.4-3 +- Apply patch to enable arm build (Patch provided by Jitesh Shah ) +- Stop turning off throttle checking, upstream frown at it (seems O.K. for Koji) + +* Mon Jun 20 2011 Dan Horák - 3.8.4-2 +- Use -march=z10 for z196 optimised build because the builder is a z10 + (Christian Bornträger) + +* Tue Jun 14 2011 Deji Akingunola - 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 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Jul 26 2010 Deji Akingunola - 3.8.3-18 +- Create a subpackage for SSE2 on x86_64 + +* Sat Jul 17 2010 Dan Horák - 3.8.3-17 +- rebuild against fixed lapack libraries + +* Thu Jul 15 2010 Dan Horák - 3.8.3-16 +- fix build on s390 (patch by Karsten Hopp) + +* Wed Feb 10 2010 Deji Akingunola - 3.8.3-15 +- Disable the problematic sparc patch +- Change lapack-devel BR to lapack-static, where liblapack_pic.a now resides. + +* Wed Feb 03 2010 Dennis Gilmore - 3.8.3-14 +- fix sparc build + +* Fri Jan 29 2010 Deji Akingunola - 3.8.3-13 +- Remove static libraries. +- Fix typo in SSE3 subpackage's summary. + +* Sat Oct 24 2009 Deji Akingunola - 3.8.3-12 +- Use alternatives to workaround multilib conflicts (BZ#508565). + +* Tue Sep 29 2009 Deji Akingunola - 3.8.3-11 +- Obsolete the -header subpackage properly. + +* Sat Sep 26 2009 Deji Akingunola - 3.8.3-10 +- Use the new arch. default for Pentium PRO (Fedora bug #510498) +- (Re-)Introduce 3dNow subpackage + +* Sun Sep 6 2009 Alex Lancaster - 3.8.3-9 +- Rebuild against fixed lapack (see #520518) + +* Thu Aug 13 2009 Deji Akingunola - 3.8.3-8 +- Revert the last change, it doesn't solve the problem. + +* Tue Aug 04 2009 Deji Akingunola - 3.8.3-7 +- Create a -header subpackage to avoid multilib conflicts (BZ#508565). + +* Tue Aug 04 2009 Deji Akingunola - 3.8.3-6 +- Add '-g' to build flag to allow proper genration of debuginfo subpackages (Fedora bug #509813) +- Build for F12 + +* Fri Jul 24 2009 Fedora Release Engineering - 3.8.3-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Sat May 02 2009 Deji Akingunola - 3.8.3-4 +- Use the right -msse* option for the -sse* subpackages (Fedora bug #498715) + +* Tue Apr 21 2009 Karsten Hopp 3.8.3-3.1 +- add s390x to 64 bit archs + +* Fri Feb 27 2009 Deji Akingunola - 3.8.3-3 +- Rebuild + +* Mon Feb 23 2009 Fedora Release Engineering - 3.8.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Sun Feb 22 2009 Deji Akingunola - 3.8.3-1 +- Update to version 3.8.3 + +* Sun Dec 21 2008 Deji Akingunola - 3.8.2-5 +- Link in appropriate libs when creating shared libs, reported by Orcan 'oget' Ogetbil (BZ#475411) + +* Tue Dec 16 2008 Deji Akingunola - 3.8.2-4 +- Don't symlink the atlas libdir on i386, cause upgrade issue (BZ#476787) +- Fix options passed to gcc when making shared libs + +* Tue Dec 16 2008 Deji Akingunola - 3.8.2-3 +- Use 'gcc -shared' to build shared libs instead of stock 'ld' + +* Sat Dec 13 2008 Deji Akingunola - 3.8.2-2 +- Properly obsolete/provide older subpackages that are no longer packaged. + +* Mon Sep 01 2008 Deji Akingunola - 3.8.2-1 +- Upgrade to ver 3.8.2 with refined build procedures. + +* Thu Feb 28 2008 Quentin Spencer 3.6.0-15 +- Disable altivec package--it is causing illegal instructions during build. + +* Thu Feb 28 2008 Quentin Spencer 3.6.0-14 +- Enable compilation on alpha (bug 426086). +- Patch for compilation on ia64 (bug 432744). + +* Tue Feb 19 2008 Fedora Release Engineering - 3.6.0-13 +- Autorebuild for GCC 4.3 + +* Mon Jun 4 2007 Orion Poplawski 3.6.0-12 +- Rebuild for ppc64 + +* Fri Sep 8 2006 Quentin Spencer 3.6.0-11 +- Rebuild for FC6. +- Remove outdated comments from spec file. + +* Mon Feb 13 2006 Quentin Spencer 3.6.0-10 +- Rebuild for Fedora Extras 5. +- Add --noexecstack to compilation of assembly kernels. These were + previously marked executable, which caused problems with selinux. + +* Mon Dec 19 2005 Quentin Spencer 3.6.0-9 +- Rebuild for gcc 4.1. + +* Mon Oct 10 2005 Quentin Spencer 3.6.0-8 +- Make all devel subpackages depend on their non-devel counterparts. +- Add /etc/ld.so.conf.d files for -sse and -3dnow, because they don't + seem to get picked up automatically. + +* Wed Oct 05 2005 Quentin Spencer 3.6.0-7 +- Forgot to add the new patch to sources. + +* Tue Oct 04 2005 Quentin Spencer 3.6.0-6 +- Use new Debian patch, and enable shared libs (they previously failed + to build on gcc 4). +- Minor updates to description and README.Fedora file. +- Fix buildroot name to match FE preferred form. +- Fixes for custom optimized builds. +- Add dist tag. + +* Wed Sep 28 2005 Quentin Spencer 3.6.0-5 +- fix files lists. + +* Mon Sep 26 2005 Quentin Spencer 3.6.0-4 +- generate library symlinks earlier for the benefit of later linking steps. + +* Wed Sep 14 2005 Quentin Spencer 3.6.0-3 +- Change lapack dependency to lapack-devel, and use lapack_pic.a for + building liblapack.so. + +* Wed Sep 14 2005 Quentin Spencer 3.6.0-2 +- Add "bit" macro to correctly build on x86_64. + +* Tue Aug 16 2005 Quentin Spencer 3.6.0-1 +- Initial version.