diff --git a/.atlas.metadata b/.atlas.metadata
new file mode 100644
index 0000000..e503d57
--- /dev/null
+++ b/.atlas.metadata
@@ -0,0 +1,6 @@
+9398518fe55b4a544278237bc639656e04543c50 SOURCES/ARMv732NEON.tar.bz2
+b3ee9bca1510b11c6aa671ba5ba7dff8918ce0cf SOURCES/IBMz932.tar.bz2
+c47ac6f00d7bf4ab882e71fa1ab894cc551c77b7 SOURCES/POWER332.tar.bz2
+85c00d3190abbe250d46472824b17d9164e3dfc2 SOURCES/PPRO32.tgz
+cd5bfb06af3de60de1226078a9247684b44d0451 SOURCES/atlas3.10.1.tar.bz2
+1be7368e134e2ccab2510b6ce48eca14bf84378d SOURCES/lapack-3.4.2-clean.tgz
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b1e4dce
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,6 @@
+SOURCES/ARMv732NEON.tar.bz2
+SOURCES/IBMz932.tar.bz2
+SOURCES/POWER332.tar.bz2
+SOURCES/PPRO32.tgz
+SOURCES/atlas3.10.1.tar.bz2
+SOURCES/lapack-3.4.2-clean.tgz
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..0435239
--- /dev/null
+++ b/SOURCES/atlas-aarch64port.patch
@@ -0,0 +1,218 @@
+diff --git a/CONFIG/include/atlconf.h b/CONFIG/include/atlconf.h
+index cdceda3..e6d71d3 100644
+--- a/CONFIG/include/atlconf.h
++++ b/CONFIG/include/atlconf.h
+@@ -16,9 +16,9 @@ enum OSTYPE {OSOther=0, OSLinux, OSSunOS, OSSunOS4, OSOSF1, OSIRIX, OSAIX,
+                        ((OS_) == OSWin64) )
+ 
+ enum ARCHFAM {AFOther=0, AFPPC, AFSPARC, AFALPHA, AFX86, AFIA64, AFMIPS,
+-              AFARM, AFS390};
++              AFARM, AFS390, AFAARCH64};
+ 
+-#define NMACH 47
++#define NMACH 48
+ static char *machnam[NMACH] =
+    {"UNKNOWN", "POWER3", "POWER4", "POWER5", "PPCG4", "PPCG5",
+     "POWER6", "POWER7", "IBMz9", "IBMz10", "IBMz196",
+@@ -28,7 +28,7 @@ static char *machnam[NMACH] =
+     "Efficeon", "K7", "HAMMER", "AMD64K10h", "AMDDOZER", "UNKNOWNx86",
+     "IA64Itan", "IA64Itan2",
+     "USI", "USII", "USIII", "USIV", "UST2", "UnknownUS",
+-    "MIPSR1xK", "MIPSICE9", "ARMv7"};
++    "MIPSR1xK", "MIPSICE9", "ARMv7", "AARCH64"};
+ enum MACHTYPE {MACHOther, IbmPwr3, IbmPwr4, IbmPwr5, PPCG4, PPCG5,
+                IbmPwr6, IbmPwr7,
+                IbmZ9, IbmZ10, IbmZ196,  /* s390(x) in Linux */
+@@ -41,7 +41,8 @@ enum MACHTYPE {MACHOther, IbmPwr3, IbmPwr4, IbmPwr5, PPCG4, PPCG5,
+                SunUSI, SunUSII, SunUSIII, SunUSIV, 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 )
+@@ -62,6 +63,8 @@ enum MACHTYPE {MACHOther, IbmPwr3, IbmPwr4, IbmPwr5, PPCG4, PPCG5,
+    ( (mach_) == ARMv7 )
+ #define MachIsS390(mach_) \
+    ( (mach_) >= IbmZ9 && (mach_) <= IbmZ196 )
++#define MachIsAARCH64(mach_) \
++   ( (mach_) == AARCH64 )
+ 
+ 
+ static char *f2c_namestr[5] = {"UNKNOWN","Add_", "Add__", "NoChange", "UpCase"};
+@@ -83,13 +86,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)
+diff --git a/CONFIG/src/Makefile b/CONFIG/src/Makefile
+index 8eb38f7..afad1bc 100644
+--- a/CONFIG/src/Makefile
++++ b/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)" \
+diff --git a/CONFIG/src/SpewMakeInc.c b/CONFIG/src/SpewMakeInc.c
+index 65d68a1..f5eb467 100644
+--- a/CONFIG/src/SpewMakeInc.c
++++ b/CONFIG/src/SpewMakeInc.c
+@@ -391,6 +391,8 @@ char *GetPtrbitsFlag(enum OSTYPE OS, enum MACHTYPE arch, int ptrbits,
+ 
+    if (MachIsIA64(arch))
+       return(sp);
++   if (MachIsAARCH64(arch))
++      return(sp);
+    if (MachIsMIPS(arch))
+       return((ptrbits == 64) ? "-mabi=64" : "-mabi=n32");
+    if (MachIsS390(arch))
+diff --git a/CONFIG/src/atlcomp.txt b/CONFIG/src/atlcomp.txt
+index 5bf32d9..5e0c538 100644
+--- a/CONFIG/src/atlcomp.txt
++++ b/CONFIG/src/atlcomp.txt
+@@ -263,6 +263,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
+diff --git a/CONFIG/src/atlconf_misc.c b/CONFIG/src/atlconf_misc.c
+index b669e8e..f7af4a8 100644
+--- a/CONFIG/src/atlconf_misc.c
++++ b/CONFIG/src/atlconf_misc.c
+@@ -481,6 +481,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") ||
+@@ -506,6 +507,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);
+       }
+diff --git a/CONFIG/src/backend/Make.ext b/CONFIG/src/backend/Make.ext
+index 9f236f6..918a053 100644
+--- a/CONFIG/src/backend/Make.ext
++++ b/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)
+diff --git a/CONFIG/src/backend/archinfo_linux.c b/CONFIG/src/backend/archinfo_linux.c
+index d3d3fd8..4c419a3 100644
+--- a/CONFIG/src/backend/archinfo_linux.c
++++ b/CONFIG/src/backend/archinfo_linux.c
+@@ -248,6 +248,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))
+diff --git a/CONFIG/src/backend/probe_gas_aarch64.S b/CONFIG/src/backend/probe_gas_aarch64.S
+new file mode 100644
+index 0000000..d4c3d68
+--- /dev/null
++++ b/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)
+diff --git a/CONFIG/src/probe_comp.c b/CONFIG/src/probe_comp.c
+index 48f518d..3d5aa3b 100644
+--- a/CONFIG/src/probe_comp.c
++++ b/CONFIG/src/probe_comp.c
+@@ -578,7 +578,7 @@ char *GetPtrbitsFlag(enum OSTYPE OS, enum MACHTYPE arch, int ptrbits,
+    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");
+diff --git a/include/atlas_genparse.h b/include/atlas_genparse.h
+index 1955687..909a38e 100644
+--- a/include/atlas_genparse.h
++++ b/include/atlas_genparse.h
+@@ -6,13 +6,13 @@
+ #include <assert.h>
+ #include <string.h>
+ #include <ctype.h>
+-#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-affinity.patch b/SOURCES/atlas-affinity.patch
new file mode 100644
index 0000000..2a15d4d
--- /dev/null
+++ b/SOURCES/atlas-affinity.patch
@@ -0,0 +1,17 @@
+diff -up wrk/src/threads/ATL_thread_start.c.wrk wrk/src/threads/ATL_thread_start.c
+--- wrk/src/threads/ATL_thread_start.c.wrk	2013-09-23 13:46:51.881085276 +0200
++++ wrk/src/threads/ATL_thread_start.c	2013-09-24 16:13:59.021065418 +0200
+@@ -101,9 +101,10 @@ int ATL_thread_start(ATL_thread_t *thr,
+       ATL_assert(!pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED));
+    pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM); /* no chk, OK to fail */
+    #ifdef ATL_PAFF_SETAFFNP
+-      CPU_ZERO(&cpuset);
+-      CPU_SET(affID, &cpuset);
+-      ATL_assert(!pthread_attr_setaffinity_np(&attr, sizeof(cpuset), &cpuset));
++	//affinity crashes a machine with fewer processors than the builder
++      //CPU_ZERO(&cpuset);
++      //CPU_SET(affID, &cpuset);
++      //ATL_assert(!pthread_attr_setaffinity_np(&attr, sizeof(cpuset), &cpuset));
+    #elif defined(ATL_PAFF_SETPROCNP)
+       ATL_assert(!pthread_attr_setprocessor_np(&attr, (pthread_spu_t)affID,
+                                                PTHREAD_BIND_FORCED_NP));
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-memleak.patch b/SOURCES/atlas-memleak.patch
new file mode 100644
index 0000000..f4e1372
--- /dev/null
+++ b/SOURCES/atlas-memleak.patch
@@ -0,0 +1,57 @@
+From 5ef079e305fdfe7275e6a241704fb071f7c9345d Mon Sep 17 00:00:00 2001
+From: "R. Clint Whaley" <whaley@cs.utsa.edu>
+Date: Sat, 2 Nov 2013 13:04:29 -0500
+Subject: [PATCH] fixed possible memory leek in threaded QR
+
+---
+ AtlasBase/Students/qr.base | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/src/threads/lapack/ATL_tgeqr2.c b/src/threads/lapack/ATL_tgeqr2.c
+index 2263042..daf44a9 100644
+--- a/src/threads/lapack/ATL_tgeqr2.c   
++++ b/src/threads/lapack/ATL_tgeqr2.c
+@@ -10372,7 +10372,7 @@ int ATL_tgexx2(int M, int N, TYPE *A, int LDA, TYPE *TAU, TYPE *WORK,
+ /* We use a data-owner split, each thread gets 1/p of the data,               */
+ /* and does all computation related to it.                                    */
+ /*----------------------------------------------------------------------------*/
+-   TYPE *myA = A, *myOldA = A, *allMem, *workMem;
++   TYPE *myA = A, *myOldA = A, *allMem=NULL, *workMem;
+    int i, j, k, b0, b, th;
+    long unsigned int CPU;
+    size_t mem[ATL_NTHREADS], totmem, workSize;
+@@ -10523,9 +10523,8 @@ int ATL_tgexx2(int M, int N, TYPE *A, int LDA, TYPE *TAU, TYPE *WORK,
+    ATL_goparallel(th, ATL_geqr2Worker, ts, NULL);
+ 
+
+-   #if defined(local_copy)
+-   free(allMem);                            /* release copied area.           */
+-   #endif                                   /* defined(local_copy)            */
++   if (allMem)
++      free(allMem);                         /* release copied area.           */
+    free(workMem);                           /* release work area.             */
+    return(0);                               /* Done with dgeqr2.              */
+ }  /* END ATL_t_dgeqr2. */
+diff --git a/src/threads/lapack/ATL_tgeql2.c b/src/threads/lapack/ATL_tgeql2.c
+index 2263042..daf44a9 100644
+--- a/src/threads/lapack/ATL_tgeql2.c   
++++ b/src/threads/lapack/ATL_tgeql2.c
+@@ -11660,7 +11659,7 @@ int ATL_tgexx2(int M, int N, TYPE *A, int LDA, TYPE *TAU, TYPE *WORK,
+ /* We use a data-owner split, each thread gets 1/p of the data,               */
+ /* and does all computation related to it.                                    */
+ /*----------------------------------------------------------------------------*/
+-   TYPE *myA = A, *allMem, *workMem;
++   TYPE *myA = A, *allMem=NULL, *workMem;
+    int i, j, k, b0, b, th;
+    long unsigned int CPU;
+    size_t mem[ATL_NTHREADS], totmem, workSize;
+@@ -11823,7 +11822,8 @@ int ATL_tgexx2(int M, int N, TYPE *A, int LDA, TYPE *TAU, TYPE *WORK,
+    ATL_goparallel(th, ATL_geql2Worker, ts, NULL);
+
+ 
+-   if (myCopy) free(allMem);                /* release copied area.           */
++   if (allMem) 
++      free(allMem);                         /* release copied area.           */
+    free(workMem);                           /* release work area.             */
+    return(0);                               /* Done with dgeql2.              */
+ } /* END ATL_t_dgeql2 */
diff --git a/SOURCES/atlas-s390port.patch b/SOURCES/atlas-s390port.patch
new file mode 100644
index 0000000..b1d2507
--- /dev/null
+++ b/SOURCES/atlas-s390port.patch
@@ -0,0 +1,23 @@
+---
+ CONFIG/src/backend/probe_gas_s390.S |   13 +++++++++
+ 10 files changed, 108 insertions(+), 7 deletions(-)
+
+Index: b/CONFIG/src/backend/probe_gas_s390.S
+===================================================================
+--- /dev/null
++++ b/CONFIG/src/backend/probe_gas_s390.S
+@@ -0,0 +1,13 @@
++#define ATL_GAS_PPC
++#include "atlas_asm.h"
++/*
++ * Linux S390 assembler for:
++ * int asm_probe(int i)
++ * RETURNS: i*3
++ */
++.globl ATL_asmdecor(asm_probe)
++ATL_asmdecor(asm_probe):
++	lr	r3,r2
++	ar	r2,r3
++	ar	r2,r3
++	br	r14
+
diff --git a/SOURCES/atlas-shared_libraries.patch b/SOURCES/atlas-shared_libraries.patch
new file mode 100644
index 0000000..d179dff
--- /dev/null
+++ b/SOURCES/atlas-shared_libraries.patch
@@ -0,0 +1,40 @@
+From 3119c671c566761a79ac98405cb619892acde3e8 Mon Sep 17 00:00:00 2001
+From: Lukas Slebodnik <lslebodn@redhat.com>
+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 +118,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/getdoublearr.stripwhite.patch b/SOURCES/getdoublearr.stripwhite.patch
new file mode 100644
index 0000000..e1dc84d
--- /dev/null
+++ b/SOURCES/getdoublearr.stripwhite.patch
@@ -0,0 +1,50 @@
+Subject: getdoublearr.stripwhite
+From: Michel Normand <normand@fr.ibm.com>
+
+GetDoubleArr must only handle the comma delimited list at string head
+and ignore anything after the first blank character.
+
+Signed-off-by: Michel Normand <normand@fr.ibm.com>
+---
+ ATLAS/include/atlas_genparse.h |   16 ++++++++++++++--
+ 1 file changed, 14 insertions(+), 2 deletions(-)
+
+Index: atlas/ATLAS/include/atlas_genparse.h
+===================================================================
+--- atlas.orig/ATLAS/include/atlas_genparse.h
++++ atlas/ATLAS/include/atlas_genparse.h
+@@ -149,13 +149,24 @@ static int asmNames2bitfield(char *str)
+ }
+ 
+ /* procedure 7 */
+-static int GetDoubleArr(char *str, int N, double *d)
++static int GetDoubleArr(char *callerstr, int N, double *d)
+ /*
+  * Reads in a list with form "%le,%le...,%le"; N-length d recieves doubles.
+  * RETURNS: the number of doubles found, or N, whichever is less
+  */
+ {
+-   int i=1;
++   int i;
++   char *dupstr = DupString(callerstr);
++   char *str = dupstr;
++   /* strip the string to end on first white space */
++   for (i=0; dupstr[i]; i++)
++   {
++	if (isspace(dupstr[i])) {
++		dupstr[i] = '\0';
++		break;
++	}
++   }
++   i = 1;
+    assert(sscanf(str, "%le", d) == 1);
+    while (i < N)
+    {
+@@ -166,6 +177,7 @@ static int GetDoubleArr(char *str, int N
+	break;
+       i++;
+    }
++   free(dupstr);
+    return(i);
+ }
+ 
diff --git a/SOURCES/initialize_malloc_memory.invtrsm.wms.oct23.patch b/SOURCES/initialize_malloc_memory.invtrsm.wms.oct23.patch
new file mode 100644
index 0000000..f57a9e4
--- /dev/null
+++ b/SOURCES/initialize_malloc_memory.invtrsm.wms.oct23.patch
@@ -0,0 +1,10 @@
+--- ./ATLAS.first/tune/blas/level3/invtrsm.c	2013-10-22 19:35:03.000000000 +0000
++++ ./ATLAS/tune/blas/level3/invtrsm.c	2013-10-23 21:24:01.000000000 +0000
+@@ -525,6 +525,7 @@
+    a = A = malloc(i * ATL_MulBySize(incA));
+    if (A)
+    {
++     memset(A,0,i*ATL_MulBySize(incA)); /* wms  (!!) malloc call above returns non-initialized memory. */
+       if (Uplo == TestGE)
+          for (i=0; i < k; i++)
+             Mjoin(PATL,gegen)(N, N, A+i*incA, lda, N+lda);
diff --git a/SOURCES/p8-mem-barrier.patch b/SOURCES/p8-mem-barrier.patch
new file mode 100644
index 0000000..15d7b8a
--- /dev/null
+++ b/SOURCES/p8-mem-barrier.patch
@@ -0,0 +1,12 @@
+diff -Naur ATLAS.orig/include/atlas_pca.h ATLAS/include/atlas_pca.h
+--- ATLAS.orig/include/atlas_pca.h	2013-01-08 19:15:40.000000000 +0100
++++ ATLAS/include/atlas_pca.h	2014-10-23 13:45:36.956698637 +0200
+@@ -26,7 +26,7 @@
+    #endif
+ #elif defined(ATL_ARCH_POWER3) || defined(ATL_ARCH_POWER4) || \
+       defined(ATL_ARCH_POWER5) || defined(ATL_ARCH_POWER6) || \
+-      defined(ATL_ARCH_POWER7)
++      defined(ATL_ARCH_POWER7) || 1
+    #ifdef __GNUC__
+       #define ATL_membarrier __asm__ __volatile__ ("dcs")
+ /*      #define ATL_USEPCA 1 */
diff --git a/SOURCES/ppc64le-abiv2.patch b/SOURCES/ppc64le-abiv2.patch
new file mode 100644
index 0000000..556dd04
--- /dev/null
+++ b/SOURCES/ppc64le-abiv2.patch
@@ -0,0 +1,60 @@
+--- atlas/ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x80_ppc.c	2013-12-05 19:19:57.000000000 +0100
++++ atlas/ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x80_ppc.c.new	2013-12-06 16:29:57.000000000 +0100
+@@ -170,13 +170,21 @@ void ATL_USERMM(const int M, const int N
+                 const TYPE beta, TYPE *C, const int ldc)
+                                   (r10)    8(r1)
+ *******************************************************************************
+-64 bit ABIs:
++64 bit ABIv1s:
+                          r3           r4           r5             r6/f1
+ void ATL_USERMM(const int M, const int N, const int K, const TYPE alpha,
+                            r7             r8             r9            r10
+                 const TYPE *A, const int lda, const TYPE *B, const int ldb,
+                              f2   120(r1)        128(r1)
+                 const TYPE beta, TYPE *C, const int ldc)
++
++64 bit ABIv2s:
++                         r3           r4           r5             r6/f1
++void ATL_USERMM(const int M, const int N, const int K, const TYPE alpha,
++                           r7             r8             r9            r10
++                const TYPE *A, const int lda, const TYPE *B, const int ldb,
++                             f2   104(r1)        112(r1)
++                const TYPE beta, TYPE *C, const int ldc)
+ #endif
+ #ifdef ATL_AS_AIX_PPC
+         .csect .text[PR]
+@@ -202,7 +210,7 @@ Mjoin(.,ATL_USERMM):
+ 	.globl  Mjoin(_,ATL_USERMM)
+ Mjoin(_,ATL_USERMM):
+    #else
+-      #if defined(ATL_USE64BITS)
++      #if defined(ATL_USE64BITS) && _CALL_ELF != 2
+ /*
+  *      Official Program Descripter section, seg fault w/o it on Linux/PPC64
+  */
+@@ -217,6 +225,7 @@ ATL_USERMM:
+ 	.globl  Mjoin(.,ATL_USERMM)
+ Mjoin(.,ATL_USERMM):
+       #else
++/* ppc64 have no longer function descriptors in ABIv2 */      
+ 	.globl  ATL_USERMM
+ ATL_USERMM:
+       #endif
+@@ -257,9 +266,17 @@ ATL_USERMM:
+    #endif
+ #endif
+ 
++
+ #if defined (ATL_USE64BITS)
++#if _CALL_ELF == 2
++/* ABIv2 */
++        ld      pC0, 104(r1)
++        ld      incCn, 112(r1)
++#else
++/* ABIv1 */
+         ld      pC0, 120(r1)
+         ld      incCn, 128(r1)
++#endif
+ #elif defined(ATL_AS_OSX_PPC) || defined(ATL_AS_AIX_PPC)
+         lwz     pC0, 68(r1)
+         lwz     incCn,  72(r1)
diff --git a/SOURCES/ppc64le-remove-vsx.patch b/SOURCES/ppc64le-remove-vsx.patch
new file mode 100644
index 0000000..a79bea6
--- /dev/null
+++ b/SOURCES/ppc64le-remove-vsx.patch
@@ -0,0 +1,39 @@
+Subject: ppc64le remove vsx
+From: Michel Normand <normand@fr.ibm.com>
+
+temporarily remove the vsx related flags
+as long as not supported for ppc64le
+Note that also force as power4
+
+Signed-off-by: Michel Normand <normand@fr.ibm.com>
+Index: atlas/ATLAS/CONFIG/src/atlcomp.txt
+===================================================================
+--- atlas.orig/ATLAS/CONFIG/src/atlcomp.txt
++++ atlas/ATLAS/CONFIG/src/atlcomp.txt
+@@ -187,9 +187,9 @@ MACH=PPCG5 OS=ALL LVL=1000 COMPS=dmc,icc
+ MACH=PPCG5 OS=ALL LVL=1000 COMPS=skc
+    'gcc' '-mpowerpc64 -maltivec -mabi=altivec -mcpu=970 -mtune=970 -O2 -mvrsave'
+ MACH=POWER7 OS=ALL LVL=1010 COMPS=icc,smc,dmc,skc,dkc,xcc,gcc
+-   'gcc' '-O2 -mvsx -mcpu=power7 -mtune=power7 -m64 -mvrsave -funroll-all-loops'
++   'gcc' '-O2 -m64 -mvrsave -funroll-all-loops'
+ MACH=POWER7 OS=ALL LVL=1010 COMPS=f77
+-   'gfortran' '-O2 -mvsx -mcpu=power7 -mtune=power7 -m64 -mvrsave -funroll-all-loops'
++   'gfortran' '-O2 -m64 -mvrsave -funroll-all-loops'
+ MACH=POWER6 OS=ALL LVL=1010 COMPS=icc,smc,dmc,skc,dkc,xcc,gcc
+    'gcc' '-mcpu=power6 -mtune=power6 -maltivec -O3 -fno-schedule-insns -fschedule-insns2 -minsert-sched-nops=2'
+ MACH=POWER5 OS=ALL LVL=1010 COMPS=icc,smc,dmc,skc,dkc,xcc,gcc
+Index: atlas/ATLAS/CONFIG/src/probe_comp.c
+===================================================================
+--- atlas.orig/ATLAS/CONFIG/src/probe_comp.c
++++ atlas/ATLAS/CONFIG/src/probe_comp.c
+@@ -446,8 +446,8 @@ COMPNODE **GetDefaultComps(enum OSTYPE O
+ 
+    if ((vecexts & (1<<ISA_AVXFMA4)) && arch == AmdDozer)
+       vp = "-msse4.2 -mfma4";
+-   else if (vecexts & (1<<ISA_VSX))
+-      vp = "-mvsx";
++   /*else if (vecexts & (1<<ISA_VSX))
++      vp = "-mvsx";*/
+    else if (vecexts & (1<<ISA_AV))
+       vp = "-maltivec";
+    else if (vecexts & (1<<ISA_AVX))
diff --git a/SOURCES/xlf.command.not.found.patch b/SOURCES/xlf.command.not.found.patch
new file mode 100644
index 0000000..83f8896
--- /dev/null
+++ b/SOURCES/xlf.command.not.found.patch
@@ -0,0 +1,24 @@
+Subject: xlf.command.not.found
+From: Michel Normand <normand@fr.ibm.com>
+
+try to bypass error while building ppc64le
+"make[2]: xlf: Command not found"
+
+Signed-off-by: Michel Normand <normand@fr.ibm.com>
+---
+ ATLAS/CONFIG/src/atlcomp.txt |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: atlas/ATLAS/CONFIG/src/atlcomp.txt
+===================================================================
+--- atlas.orig/ATLAS/CONFIG/src/atlcomp.txt
++++ atlas/ATLAS/CONFIG/src/atlcomp.txt
+@@ -199,7 +199,7 @@ MACH=POWER6 OS=ALL LVL=1010 COMPS=f77
+ MACH=POWER5 OS=ALL LVL=1010 COMPS=f77
+    'gfortran' '-mcpu=power5 -mtune=power5 -O3 -fno-schedule-insns -fno-rerun-loop-opt'
+ MACH=POWER7 OS=ALL LVL=1010 COMPS=f77
+-   'xlf' '-qtune=pwr7 -qarch=pwr7 -O3 -qmaxmem=-1 -qfloat=hsflt'
++   'gfortran' '-O2 -m64 -mvrsave -funroll-all-loops'
+ MACH=POWER5 OS=ALL LVL=1010 COMPS=f77
+    'xlf' '-qtune=pwr5 -qarch=pwr5 -O3 -qmaxmem=-1 -qfloat=hsflt'
+ MACH=POWER4 OS=ALL LVL=1010 COMPS=icc,dmc,smc,dkc,skc,xcc,gcc
diff --git a/SPECS/atlas.spec b/SPECS/atlas.spec
new file mode 100644
index 0000000..a97e4fa
--- /dev/null
+++ b/SPECS/atlas.spec
@@ -0,0 +1,1039 @@
+%define enable_native_atlas 0
+
+Name:           atlas
+Version:        3.10.1
+%if "%{?enable_native_atlas}" != "0"
+%define dist .native
+%endif
+Release:        12%{?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
+Source10: 	lapack-3.4.2-clean.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
+
+Patch1:         atlas-s390port.patch
+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
+
+Patch6:		atlas-affinity.patch
+
+Patch7:		atlas-aarch64port.patch
+Patch8:		atlas-genparse.patch
+
+Patch9:		atlas-memleak.patch
+# ppc64le patches
+Patch95:	initialize_malloc_memory.invtrsm.wms.oct23.patch
+Patch96:	xlf.command.not.found.patch
+Patch98:	getdoublearr.stripwhite.patch
+Patch99:	ppc64le-remove-vsx.patch
+Patch100:	ppc64le-abiv2.patch
+Patch110:	p8-mem-barrier.patch
+
+BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+BuildRequires:  gcc-gfortran
+
+%ifarch x86_64
+Obsoletes:      atlas-sse3 < 3.10
+%endif
+
+%ifarch %{ix86}
+Obsoletes:      atlas-3dnow < 3.10
+Obsoletes:      atlas-sse < 3.10
+%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 focusing 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(preun):	chkconfig
+
+%description devel
+This package contains the libraries and 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(preun):	chkconfig
+
+%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
+# sse3
+
+#package sse3
+#Summary:        ATLAS libraries for SSE3 extensions
+#Group:          System Environment/Libraries
+
+#description sse3
+#This package contains the ATLAS (Automatically Tuned Linear Algebra
+#Software) libraries compiled with optimizations for the SSE3
+#extensions to the x86_64 architecture. The base ATLAS builds for the
+#x86_64 architecture are made for the SSE2 extensions.
+
+#package sse3-devel
+#Summary:        Development libraries for ATLAS with SSE3 extensions
+#Group:          Development/Libraries
+#Requires:       %{name}-sse3 = %{version}-%{release}
+#Obsoletes:	%name-header <= %version-%release
+#Requires(posttrans):	chkconfig
+#Requires(preun):	chkconfig
+
+#description sse3-devel
+#This package contains shared and static versions of the ATLAS
+#(Automatically Tuned Linear Algebra Software) libraries compiled with
+#optimizations for the SSE3 extensions to the x86_64 architecture.
+
+%endif
+
+%ifarch %{ix86}
+%define types base sse2 sse3
+
+%package sse2
+Summary:        ATLAS libraries for SSE2 extensions
+Group:          System Environment/Libraries
+
+%description sse2
+This package contains ATLAS (Automatically Tuned Linear Algebra Software)
+shared libraries compiled with optimizations for the SSE2
+extensions to the ix86 architecture. ATLAS builds with
+SSE(1) and SSE3 extensions also exist.
+
+%package sse2-devel
+Summary:        Development libraries for ATLAS with SSE2 extensions
+Group:          Development/Libraries
+Requires:       %{name}-sse2 = %{version}-%{release}
+Obsoletes:	%name-header <= %version-%release
+Requires(posttrans):	chkconfig
+Requires(preun):	chkconfig
+
+%description sse2-devel
+This package contains ATLAS (Automatically Tuned Linear Algebra Software)
+shared libraries compiled with optimizations for the SSE2 extensions to the 
+ix86 architecture.
+
+%package sse2-static
+Summary:        Static libraries for ATLAS with SSE2 extensions
+Group:          Development/Libraries
+Requires:       %{name}-sse2-devel = %{version}-%{release}
+Requires(posttrans):	chkconfig
+Requires(preun):	chkconfig
+
+%description sse2-static
+This package contains ATLAS (Automatically Tuned Linear Algebra Software)
+static libraries compiled with optimizations for the SSE2 extensions to the 
+ix86 architecture.
+
+
+%package sse3
+Summary:        ATLAS libraries for SSE3 extensions
+Group:          System Environment/Libraries
+
+%description sse3
+This package contains the ATLAS (Automatically Tuned Linear Algebra
+Software) libraries compiled with optimizations for the SSE3.
+ATLAS builds with SSE(1) and SSE2 extensions also exist.
+
+%package sse3-devel
+Summary:        Development libraries for ATLAS with SSE3 extensions
+Group:          Development/Libraries
+Requires:       %{name}-sse3 = %{version}-%{release}
+Obsoletes:	%name-header <= %version-%release
+Requires(posttrans):	chkconfig
+Requires(preun):	chkconfig
+
+%description sse3-devel
+This package contains ATLAS (Automatically Tuned Linear Algebra Software)
+shared libraries compiled with optimizations for the SSE3 extensions to the ix86 architecture.
+
+%package sse3-static
+Summary:        Static libraries for ATLAS with SSE2 extensions
+Group:          Development/Libraries
+Requires:       %{name}-sse2-devel = %{version}-%{release}
+Requires(posttrans):	chkconfig
+Requires(preun):	chkconfig
+
+%description sse3-static
+This package contains ATLAS (Automatically Tuned Linear Algebra Software)
+static libraries compiled with optimizations for the SSE3 extensions to the 
+ix86 architecture.
+
+%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-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 z196-static
+#Summary:        Static libraries for ATLAS
+#Group:          Development/Libraries
+#Requires:       %{name}-devel = %{version}-%{release}
+#Requires(posttrans):	chkconfig
+#Requires(preun):	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(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.
+#
+#%package z10-static
+#Summary:        Static libraries for ATLAS
+#Group:          Development/Libraries
+#Requires:       %{name}-devel = %{version}-%{release}
+#Requires(posttrans):	chkconfig
+#Requires(preun):	chkconfig
+#
+#%description z10-static
+#This package contains static version of ATLAS (Automatically Tuned
+#Linear Algebra Software) for the z10 architecture.
+
+
+%endif
+%endif
+
+%ifarch %{arm}
+#beware - arch constant can change between releases
+%define arch_option -A 46 
+%define threads_option -t 2
+%global armflags -mfpu=neon -mfloat-abi=hard
+%global mode %{nil}
+%else
+%global mode -b %{__isa_bits}
+%global armflags %{nil}
+%if "%{?enable_native_atlas}" == "0"
+%define threads_option -t 4
+%endif
+%endif
+
+%prep
+%setup -q -n ATLAS
+#patch0 -p0 -b .shared
+%ifarch s390 s390x
+%patch1 -p1 -b .s390
+%endif
+#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
+#affinity crashes with fewer processors than the builder but increases performance of locally builded library
+%if "%{?enable_native_atlas}" == "0"
+%patch6 -p1 -b .affinity
+%endif
+#%patch6 -p1 -b .m32
+%ifarch aarch64
+%patch7 -p1 -b .aarch64
+%endif
+%patch8 -p1 -b .genparse
+%patch9 -p1 -b .memleak
+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 %{SOURCE8} CONFIG/ARCHS/
+#cp %{SOURCE9} CONFIG/ARCHS/
+
+%ifarch ppc ppc64
+%patch99 -p2
+#%patch98 -p2
+#%patch95 -p2
+#%patch100 -p2
+%patch110 -p1
+%endif
+
+%ifarch ppc64le
+%patch99 -p2
+%patch98 -p2
+%patch96 -p2
+%patch95 -p2
+%patch100 -p2
+%patch110 -p1
+%endif
+
+%build
+
+for type in %{types}; do
+	if [ "$type" = "base" ]; then
+		libname=atlas
+		%define pr_base %(echo $((%{__isa_bits}+0)))
+	else
+		libname=atlas-${type}
+	fi
+
+	mkdir -p %{_arch}_${type}
+	pushd %{_arch}_${type}
+	../configure  %{mode} %{?threads_option} %{?arch_option} -D c -DWALL -Fa alg '%{armflags} -g -fstack-protector-strong -Wa,--noexecstack -fPIC'\
+	--prefix=%{buildroot}%{_prefix}			\
+	--incdir=%{buildroot}%{_includedir}		\
+	--libdir=%{buildroot}%{_libdir}/${libname}	\
+	--with-netlib-lapack-tarfile=%{SOURCE10}
+
+sed -i 's#F77FLAGS =\(.*\)#F77FLAGS=\1 -frecursive#' Make.inc
+
+%if "%{?enable_native_atlas}" == "0"
+%ifarch x86_64
+	if [ "$type" = "base" ]; then
+#		sed -i 's#ARCH =.*#ARCH = HAMMER64SSE2#' Make.inc
+#		sed -i 's#ARCH =.*#ARCH = HAMMER64SSE3#' Make.inc
+		sed -i 's#ARCH =.*#ARCH = P4E64SSE3#' Make.inc
+#		sed -i 's#-DATL_SSE3##' Make.inc
+		sed -i 's#-DATL_AVX\b##' Make.inc
+#		sed -i 's#-msse3#-msse2#' Make.inc
+		sed -i 's#-mavx\b#-msse3#' Make.inc
+		echo 'base makefile edited'
+#		sed -i 's#PMAKE = $(MAKE) .*#PMAKE = $(MAKE) -j 1#' Make.inc
+	elif [ "$type" = "sse3" ]; then
+#		sed -i 's#ARCH =.*#ARCH = Corei264AVX#' Make.inc
+#		sed -i 's#PMAKE = $(MAKE) .*#PMAKE = $(MAKE) -j 1#' Make.inc
+		sed -i 's#-DATL_AVX\b##' Make.inc
+		sed -i 's#-DATL_SSE2##' Make.inc
+		sed -i 's#-mavx\b#-msse2#' Make.inc
+		sed -i 's#-msse3#-msse2#' Make.inc
+		echo 'sse makefile edited'
+		%define pr_sse3 %(echo $((%{__isa_bits}+4)))
+	fi
+%endif
+
+%ifarch %{ix86}
+	if [ "$type" = "base" ]; then
+		sed -i 's#ARCH =.*#ARCH = PPRO32#' Make.inc
+		#sed -i 's#-DATL_SSE3 -DATL_SSE2 -DATL_SSE1##' Make.inc
+		sed -i 's#-DATL_SSE3##' Make.inc
+		sed -i 's#-DATL_SSE2##' Make.inc
+		sed -i 's#-DATL_SSE1##' Make.inc  
+		sed -i 's#-mfpmath=sse -msse3#-mfpmath=387#' Make.inc 
+	elif [ "$type" = "sse" ]; then
+		sed -i 's#ARCH =.*#ARCH = PIII32SSE1#' Make.inc
+		sed -i 's#-DATL_SSE3#-DATL_SSE1#' Make.inc 
+		sed -i 's#-msse3#-msse#' Make.inc 
+		%define pr_sse %(echo $((%{__isa_bits}+2)))
+	elif [ "$type" = "sse2" ]; then
+#		sed -i 's#ARCH =.*#ARCH = P432SSE2#' Make.inc
+		sed -i 's#ARCH =.*#ARCH = x86SSE232SSE2#' Make.inc
+		sed -i 's#-DATL_SSE3#-DATL_SSE2#' Make.inc 
+		sed -i 's#-msse3#-msse2#' Make.inc 
+		%define pr_sse2 %(echo $((%{__isa_bits}+3)))
+	elif [ "$type" = "sse3" ]; then
+		sed -i 's#ARCH =.*#ARCH = P4E32SSE3#' Make.inc
+		%define pr_sse3 %(echo $((%{__isa_bits}+4)))
+	fi
+%endif
+
+%ifarch s390 s390x
+	if [ "$type" = "base" ]; then
+		%ifarch s390x 
+			sed -i 's#ARCH =.*#ARCH = IBMz19664#' Make.inc
+                %endif
+		%ifarch s390 
+			sed -i 's#ARCH =.*#ARCH = IBMz932#' Make.inc
+                %endif
+		#sed -i 's#-march=z196#-march=z10 -mtune=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
+
+%ifarch ppc
+	sed -i 's#ARCH =.*#ARCH = POWER332#' Make.inc
+	sed -i 's#-DATL_ARCH_POWER7#-DATL_ARCH_POWER3#g' Make.inc
+	sed -i 's#power7#power3#g' Make.inc
+	sed -i 's#-DATL_VSX\b##g' Make.inc
+	sed -i 's#-mvsx\b##g' Make.inc
+	sed -i 's#-DATL_AltiVec##g' Make.inc
+	sed -i 's#-m64#-m32#g' Make.inc
+%endif
+
+%ifarch ppc64le
+	sed -i 's#-mvsx##g' Make.inc
+	sed -i 's#-DATL_VSX\b##g' Make.inc
+	sed -i 's#-DATL_AltiVec\b##g' Make.inc
+	sed -i 's#-maltivec##g' Make.inc
+	sed -i 's#ARCH =.*#ARCH = POWER464#' 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/libatlas.a %{buildroot}%{_libdir}/atlas/
+	else
+		cp -pr lib/*.so* %{buildroot}%{_libdir}/atlas-${type}/
+		rm -f %{buildroot}%{_libdir}/atlas-${type}/*.a
+		cp -pr lib/libatlas.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
+mkdir -p %{buildroot}%{_includedir}/atlas
+
+
+%check
+%ifnarch s390 aarch64
+for type in %{types}; do
+	pushd %{_arch}_${type}
+	make check ptcheck
+	popd
+done
+%endif
+
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%posttrans devel
+if [ $1 -eq 0 ] ; then
+/usr/sbin/alternatives	--install %{_includedir}/atlas atlas-inc 	\
+		%{_includedir}/atlas-%{_arch}-base %{pr_base}
+fi
+
+%preun 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-sse3 -p /sbin/ldconfig
+
+#postun -n atlas-sse3 -p /sbin/ldconfig
+
+#posttrans sse3-devel
+#if [ $1 -eq 0 ] ; then
+#/usr/sbin/alternatives	--install %{_includedir}/atlas atlas-inc 	\
+#		%{_includedir}/atlas-%{_arch}-sse3  %{pr_sse3}
+#fi
+
+#preun sse3-devel
+#if [ $1 -ge 0 ] ; then
+#/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-sse3
+#fi
+
+#endif
+
+%ifarch %{ix86}
+#%%post -n atlas-3dnow -p /sbin/ldconfig
+
+#%%postun -n atlas-3dnow -p /sbin/ldconfig
+
+#%%posttrans 3dnow-devel
+#if [ $1 -eq 0 ] ; then
+#/usr/sbin/alternatives	--install %{_includedir}/atlas atlas-inc 	\
+#		%{_includedir}/atlas-%{_arch}-3dnow  %{pr_3dnow}
+#fi
+
+#%%preun 3dnow-devel
+#if [ $1 -ge 0 ] ; then
+#/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-3dnow
+#fi
+
+#%%post -n atlas-sse -p /sbin/ldconfig
+
+#%%postun -n atlas-sse -p /sbin/ldconfig
+
+#%%posttrans sse-devel
+#if [ $1 -eq 0 ] ; then
+#/usr/sbin/alternatives	--install %{_includedir}/atlas atlas-inc 	\
+#		%{_includedir}/atlas-%{_arch}-sse  %{pr_sse}
+#fi
+
+#%%preun sse-devel
+#if [ $1 -ge 0 ] ; then
+#/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-sse
+#fi
+
+%post -n atlas-sse2 -p /sbin/ldconfig
+
+%postun -n atlas-sse2 -p /sbin/ldconfig
+
+%posttrans sse2-devel
+if [ $1 -eq 0 ] ; then
+/usr/sbin/alternatives	--install %{_includedir}/atlas atlas-inc 	\
+		%{_includedir}/atlas-%{_arch}-sse2  %{pr_sse2}
+fi
+
+%preun sse2-devel
+if [ $1 -ge 0 ] ; then
+/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-sse2
+fi
+
+%post -n atlas-sse3 -p /sbin/ldconfig
+
+%postun -n atlas-sse3 -p /sbin/ldconfig
+
+%posttrans sse3-devel
+if [ $1 -eq 0 ] ; then
+/usr/sbin/alternatives	--install %{_includedir}/atlas atlas-inc 	\
+		%{_includedir}/atlas-%{_arch}-sse3  %{pr_sse3}
+fi
+
+%preun sse3-devel
+if [ $1 -ge 0 ] ; then
+/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-sse3
+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
+%defattr(-,root,root,-)
+%doc doc/README.dist
+%dir %{_libdir}/atlas
+%{_libdir}/atlas/*.so.*
+%config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}.conf
+
+%files devel
+%defattr(-,root,root,-)
+%doc doc
+%{_libdir}/atlas/*.so
+%{_includedir}/atlas-%{_arch}-base/
+%{_includedir}/*.h
+%ghost %{_includedir}/atlas
+
+%files static
+%defattr(-,root,root,-)
+%{_libdir}/atlas/*.a
+
+%if "%{?enable_native_atlas}" == "0"
+
+#ifarch x86_64
+
+#files sse3
+#defattr(-,root,root,-)
+#doc doc/README.Fedora
+#dir %{_libdir}/atlas-sse3
+#{_libdir}/atlas-sse3/*.so
+#config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}-sse3.conf
+
+#files sse3-devel
+#defattr(-,root,root,-)
+#doc doc
+#{_libdir}/atlas-sse3/*.so
+#{_includedir}/atlas-%{_arch}-sse3/
+#{_includedir}/*.h
+#ghost %{_includedir}/atlas
+
+#endif
+
+%ifarch %{ix86}
+
+#%%files 3dnow
+#%%defattr(-,root,root,-)
+#%%doc doc/README.Fedora
+#%%dir %{_libdir}/atlas-3dnow
+#%%{_libdir}/atlas-3dnow/*.so.*
+#%%config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}-3dnow.conf
+
+#%%files 3dnow-devel
+#%%defattr(-,root,root,-)
+#%%doc doc
+#%%{_libdir}/atlas-3dnow/*.so
+#%%{_includedir}/atlas-%{_arch}-3dnow/
+#%%{_includedir}/*.h
+#%%ghost %{_includedir}/atlas
+
+#%%files sse
+#%%defattr(-,root,root,-)
+#%%doc doc/README.Fedora
+#%%dir %{_libdir}/atlas-sse
+#%%{_libdir}/atlas-sse/*.so.*
+#%%config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}-sse.conf
+
+#%%files sse-devel
+#%%defattr(-,root,root,-)
+#%%doc doc
+#%%{_libdir}/atlas-sse/*.so
+#%%{_includedir}/atlas-%{_arch}-sse/
+#%%{_includedir}/*.h
+#%%ghost %{_includedir}/atlas
+
+%files sse2
+%defattr(-,root,root,-)
+%doc doc/README.dist
+%dir %{_libdir}/atlas-sse2
+%{_libdir}/atlas-sse2/*.so.*
+%config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}-sse2.conf
+
+%files sse2-devel
+%defattr(-,root,root,-)
+%doc doc
+%{_libdir}/atlas-sse2/*.so
+%{_includedir}/atlas-%{_arch}-sse2/
+%{_includedir}/*.h
+%ghost %{_includedir}/atlas
+
+%files sse2-static
+%defattr(-,root,root,-)
+%{_libdir}/atlas-sse2/*.a
+
+%files sse3
+%defattr(-,root,root,-)
+%doc doc/README.dist
+%dir %{_libdir}/atlas-sse3
+%{_libdir}/atlas-sse3/*.so.*
+%config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}-sse3.conf
+
+%files sse3-static
+%defattr(-,root,root,-)
+%{_libdir}/atlas-sse3/*.a
+
+%files sse3-devel
+%defattr(-,root,root,-)
+%doc doc
+%{_libdir}/atlas-sse3/*.so
+%{_includedir}/atlas-%{_arch}-sse3/
+%{_includedir}/*.h
+%ghost %{_includedir}/atlas
+
+%endif
+
+#%ifarch s390 s390x
+#%files z10
+#%defattr(-,root,root,-)
+#%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
+#%defattr(-,root,root,-)
+#%doc doc
+#%{_libdir}/atlas-z10/*.so
+#%{_includedir}/atlas-%{_arch}-z10/
+#%{_includedir}/*.h
+#%ghost %{_includedir}/atlas
+#
+#%files z10-static
+#%defattr(-,root,root,-)
+#%{_libdir}/atlas-z10/*.a
+
+#%files z196
+#%defattr(-,root,root,-)
+#%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
+#%defattr(-,root,root,-)
+#%doc doc
+#%{_libdir}/atlas-z196/*.so
+#%{_includedir}/atlas-%{_arch}-z196/
+#%{_includedir}/*.h
+#%ghost %{_includedir}/atlas
+
+#%files z196-static
+#%defattr(-,root,root,-)
+#%{_libdir}/atlas-z196/*.a
+
+#%endif
+%endif
+
+%changelog
+* Wed Mar 15 2017 Jakub Martisko <jamartis@redhat.com> - 3.10.1-12
+- cleanup: merge the application of ppc patches from previous commit
+  into single block
+- Related: rhbz#1350536
+
+* Mon Feb 27 2017 Jakub Martisko <jamartis@redhat.com> - 3.10.1-11
+- apply patches 99 and 110 to all ppc variants
+- build lapack with -frecursive flag (#1176026)
+- fix possible memory leak (#1350536)
+- fix wrong sed substitutions (#1402627)
+- Resolves: rhbz#1350536
+- Related: rhbz#1176026
+
+* Thu Oct 23 2014 Jaromir Capik <jcapik@redhat.com> - 3.10.1-10
+- patching for Power8 to pass performance tunings and tests on P8 builders
+- re-enabling tests on ppc64le
+- Resolves: rhbz#1125475
+
+* Sun Sep 07 2014 Frantisek Kluknavsky <fkluknav@redhat.com> - 3.10.1-9
+- ppcle patches (conflicting patches modified)
+- tests on ppcle disabled to shorten build time and fit into 24 hour limit
+- resolves bug 1125475
+- aarch64 patches
+- Resolves: rhbz#1061956
+
+* Fri Feb 28 2014 Frantisek Kluknavsky <fkluknav@redhat.com> - 3.10.1-7
+- change x86_64 archdef to P4, prefetch instruction from hammer is illegal on some pentium 4
+- add -fstack-protector-strong to flags
+- Resolves: rhbz#1070783
+
+* Thu Feb 20 2014 Frantisek Kluknavsky <fkluknav@redhat.com> - 3.10.1-6
+- use upstream archdef for s390x 64-bit
+- Resolves: rhbz#804763
+
+* Wed Feb 5 2014 Brendan Conoboy <blc@redhat.com> - 3.10.1-5.2
+- Temporarily make %check failures non-fatal.
+
+* Wed Feb 5 2014 Brendan Conoboy <blc@redhat.com> - 3.10.1-5.1
+- Add Mark Salter's initial aarch64 port.
+
+* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 3.10.1-5
+- Mass rebuild 2014-01-24
+
+* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 3.10.1-4
+- Mass rebuild 2013-12-27
+
+* Tue Sep 24 2013 Frantisek Kluknavsky <fkluknav@redhat.com> - 3.10.1-3
+- disable affinity to prevent crash on systems with fewer cpus
+
+* Mon Sep 23 2013 Frantisek Kluknavsky <fkluknav@redhat.com> - 3.10.1-2
+- fix atlas-devel dependency
+- archdefs for z10 and z196 not yet in use
+
+* Mon Sep 23 2013 Orion Poplawski <orion@cora.nwra.com> - 3.10.1-2
+- Add %%check section
+
+* Fri Sep 20 2013 Frantisek Kluknavsky <fkluknav@redhat.com> - 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 <rel-eng@lists.fedoraproject.org> - 3.8.4-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Sun Jan 27 2013 Peter Robinson <pbrobinson@fedoraproject.org> 3.8.4-8
+- Rebuild for ARM glibc/binutils issues
+
+* Fri Sep 07 2012 Orion Poplawski <orion@nwra.com> - 3.8.4-7
+- Rebuild with lapack 3.4.1
+
+* Thu Aug 09 2012 Orion Poplawski <orion@nwra.com> - 3.8.4-6
+- Add patch to properly pass -melf_* to the linker with -Wl (bug 817552)
+
+* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.8.4-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.8.4-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Thu Sep 01 2011 Deji Akingunola <dakingun@gmail.com> - 3.8.4-3
+- Apply patch to enable arm build (Patch provided by Jitesh Shah <jiteshs@marvell.com>)
+- Stop turning off throttle checking, upstream frown at it (seems O.K. for Koji)
+
+* Mon Jun 20 2011 Dan Horák <dan[at]danny.cz> - 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 <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
+
+* Mon Jul 26 2010 Deji Akingunola <dakingun@gmail.com> - 3.8.3-18
+- Create a subpackage for SSE2 on x86_64
+
+* Sat Jul 17 2010 Dan Horák <dan[at]danny.cz> - 3.8.3-17
+- rebuild against fixed lapack libraries
+
+* Thu Jul 15 2010 Dan Horák <dan[at]danny.cz> - 3.8.3-16
+- fix build on s390 (patch by Karsten Hopp)
+
+* Wed Feb 10 2010 Deji Akingunola <dakingun@gmail.com> - 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 <dennis@ausil.us> - 3.8.3-14
+- fix sparc build
+
+* Fri Jan 29 2010 Deji Akingunola <dakingun@gmail.com> - 3.8.3-13
+- Remove static libraries.
+- Fix typo in SSE3 subpackage's summary.
+
+* Sat Oct 24 2009 Deji Akingunola <dakingun@gmail.com> - 3.8.3-12
+- Use alternatives to workaround multilib conflicts (BZ#508565). 
+
+* Tue Sep 29 2009 Deji Akingunola <dakingun@gmail.com> - 3.8.3-11
+- Obsolete the -header subpackage properly. 
+
+* Sat Sep 26 2009 Deji Akingunola <dakingun@gmail.com> - 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 <alexlan[AT]fedoraproject org> - 3.8.3-9
+- Rebuild against fixed lapack (see #520518)
+
+* Thu Aug 13 2009 Deji Akingunola <dakingun@gmail.com> - 3.8.3-8
+- Revert the last change, it doesn't solve the problem. 
+
+* Tue Aug 04 2009 Deji Akingunola <dakingun@gmail.com> - 3.8.3-7
+- Create a -header subpackage to avoid multilib conflicts (BZ#508565). 
+
+* Tue Aug 04 2009 Deji Akingunola <dakingun@gmail.com> - 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 <rel-eng@lists.fedoraproject.org> - 3.8.3-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Sat May 02 2009 Deji Akingunola <dakingun@gmail.com> - 3.8.3-4
+- Use the right -msse* option for the -sse* subpackages (Fedora bug #498715)
+
+* Tue Apr 21 2009 Karsten Hopp <karsten@redhat.com> 3.8.3-3.1
+- add s390x to 64 bit archs
+
+* Fri Feb 27 2009 Deji Akingunola <dakingun@gmail.com> - 3.8.3-3
+- Rebuild
+
+* Mon Feb 23 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.8.3-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Sun Feb 22 2009 Deji Akingunola <dakingun@gmail.com> - 3.8.3-1
+- Update to version 3.8.3
+
+* Sun Dec 21 2008 Deji Akingunola <dakingun@gmail.com> - 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 <dakingun@gmail.com> - 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 <dakingun@gmail.com> - 3.8.2-3
+- Use 'gcc -shared' to build shared libs instead of stock 'ld'
+
+* Sat Dec 13 2008 Deji Akingunola <dakingun@gmail.com> - 3.8.2-2
+- Properly obsolete/provide older subpackages that are no longer packaged.
+
+* Mon Sep 01 2008 Deji Akingunola <dakingun@gmail.com> - 3.8.2-1
+- Upgrade to ver 3.8.2 with refined build procedures.
+
+* Thu Feb 28 2008 Quentin Spencer <qspencer@users.sourceforge.net> 3.6.0-15
+- Disable altivec package--it is causing illegal instructions during build.
+
+* Thu Feb 28 2008 Quentin Spencer <qspencer@users.sourceforge.net> 3.6.0-14
+- Enable compilation on alpha (bug 426086).
+- Patch for compilation on ia64 (bug 432744).
+
+* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 3.6.0-13
+- Autorebuild for GCC 4.3
+
+* Mon Jun  4 2007 Orion Poplawski <orion@cora.nwra.com> 3.6.0-12
+- Rebuild for ppc64
+
+* Fri Sep  8 2006 Quentin Spencer <qspencer@users.sourceforge.net> 3.6.0-11
+- Rebuild for FC6.
+- Remove outdated comments from spec file.
+
+* Mon Feb 13 2006 Quentin Spencer <qspencer@users.sourceforge.net> 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 <qspencer@users.sourceforge.net> 3.6.0-9
+- Rebuild for gcc 4.1.
+
+* Mon Oct 10 2005 Quentin Spencer <qspencer@users.sourceforge.net> 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 <qspencer@users.sourceforge.net> 3.6.0-7
+- Forgot to add the new patch to sources.
+
+* Tue Oct 04 2005 Quentin Spencer <qspencer@users.sourceforge.net> 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 <qspencer@users.sourceforge.net> 3.6.0-5
+- fix files lists.
+
+* Mon Sep 26 2005 Quentin Spencer <qspencer@users.sourceforge.net> 3.6.0-4
+- generate library symlinks earlier for the benefit of later linking steps.
+
+* Wed Sep 14 2005 Quentin Spencer <qspencer@users.sourceforge.net> 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 <qspencer@users.sourceforge.net> 3.6.0-2
+- Add "bit" macro to correctly build on x86_64.
+
+* Tue Aug 16 2005 Quentin Spencer <qspencer@users.sourceforge.net> 3.6.0-1
+- Initial version.