diff --git a/.atlas.metadata b/.atlas.metadata
new file mode 100644
index 0000000..9eaf6d0
--- /dev/null
+++ b/.atlas.metadata
@@ -0,0 +1,11 @@
+0e11ec19a521973eaa551954debd112c21479e9c SOURCES/ARMa732.tar.bz2
+9398518fe55b4a544278237bc639656e04543c50 SOURCES/ARMv732NEON.tar.bz2
+d2f7a62aacdc5091aaa673a311a23f521e5c6486 SOURCES/IBMz1264.tar.bz2
+042c0b9df85a9a469e20cf0801f83b03ec40425d SOURCES/IBMz1364VXZ.tar.bz2
+352e057319fa7503cd74a0ab81055dc286cc1c45 SOURCES/IBMz1464VXZ2.tar.bz2
+0abb8f638b8ffdc13994d533d8a4febcab364f2f SOURCES/IBMz1564VXZ2.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..b749620
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,11 @@
+SOURCES/ARMa732.tar.bz2
+SOURCES/ARMv732NEON.tar.bz2
+SOURCES/IBMz1264.tar.bz2
+SOURCES/IBMz1364VXZ.tar.bz2
+SOURCES/IBMz1464VXZ2.tar.bz2
+SOURCES/IBMz1564VXZ2.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/0001-Avoid-c99-standard-compiler.patch b/SOURCES/0001-Avoid-c99-standard-compiler.patch
new file mode 100644
index 0000000..c9c0c0e
--- /dev/null
+++ b/SOURCES/0001-Avoid-c99-standard-compiler.patch
@@ -0,0 +1,30 @@
+From 036562b66fa607152c6c54f0d6d030cd19bfcb7f Mon Sep 17 00:00:00 2001
+From: Andreas Arnez <arnez@linux.ibm.com>
+Date: Tue, 19 Feb 2019 19:03:52 +0100
+Subject: [PATCH 1/8] Avoid c99 standard compiler
+
+When probing for a usable GCC, the existing code already dropped path
+names that contained "c89" or "c90", because these compilers don't have
+the GCC extensions enabled.  This patch also drops names with "c99" in
+them.
+---
+ CONFIG/src/atlconf_misc.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/CONFIG/src/atlconf_misc.c b/CONFIG/src/atlconf_misc.c
+index 63cb1ef..fb62214 100644
+--- a/CONFIG/src/atlconf_misc.c
++++ b/CONFIG/src/atlconf_misc.c
+@@ -824,7 +824,8 @@ int CompIsGcc(char *comp)
+    int i;
+ 
+    cmpname = NameWithoutPath(comp);
+-   if (strstr(cmpname, "c89") || strstr(cmpname, "c90"))
++   if (strstr(cmpname, "c89") || strstr(cmpname, "c90") ||
++       strstr(cmpname, "c99"))
+    {
+       free(cmpname);
+       return(0);
+-- 
+2.23.0
+
diff --git a/SOURCES/0002-Fix-rpath-link-command-line-options.patch b/SOURCES/0002-Fix-rpath-link-command-line-options.patch
new file mode 100644
index 0000000..25c5e4c
--- /dev/null
+++ b/SOURCES/0002-Fix-rpath-link-command-line-options.patch
@@ -0,0 +1,38 @@
+From a8611f5dc19e2c31b810fd2baa31b9cb5fd30d2a Mon Sep 17 00:00:00 2001
+From: Andreas Arnez <arnez@linux.ibm.com>
+Date: Tue, 19 Feb 2019 19:20:19 +0100
+Subject: [PATCH 2/8] Fix -rpath-link command line options
+
+The "-rpath-link" command line options were written in the wrong syntax,
+causing errors in the build.  This is fixed.
+---
+ makes/Make.lib | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/makes/Make.lib b/makes/Make.lib
+index 4ceff02..b322a32 100644
+--- a/makes/Make.lib
++++ b/makes/Make.lib
+@@ -47,11 +47,11 @@ cshared : fat_cshared
+ #
+ LDTRY_WIN:
+ 	$(LD) $(LDFLAGS) -shared -soname $(LIBINSTdir)/$(outso) -o $(outso) \
+-           -rpath-link $(LIBINSTdir) --output-def=$(outdef) \
++           -rpath-link=$(LIBINSTdir) --output-def=$(outdef) \
+            --whole-archive $(libas) --no-whole-archive $(LIBS)
+ GCCTRY_WIN:
+ 	$(GOODGCC) -shared -o $(outso) -Wl,--output-def=$(outdef) \
+-           -Wl,"-rpath-link $(LIBINSTdir)" \
++           -Wl,"-rpath-link=$(LIBINSTdir)" \
+            -Wl,--whole-archive $(libas) -Wl,--no-whole-archive $(LIBS)
+ GCCTRY_norp_WIN:
+ 	$(GOODGCC) -shared -o $(outso) -Wl,--output-def=$(outdef) \
+@@ -113,7 +113,7 @@ TRYALL_WIN :
+ #
+ LDTRY:
+ 	$(LD) $(LDFLAGS) -shared -soname $(LIBINSTdir)/$(outso) -o $(outso) \
+-           -rpath-link $(LIBINSTdir)  \
++           -rpath-link=$(LIBINSTdir)  \
+            --whole-archive $(libas) --no-whole-archive $(LIBS)
+ GCCTRY:
+ 	$(GOODGCC) -shared -o $(outso).$(so_ver)  \
diff --git a/SOURCES/0003-Fix-SIMD-support-on-IBM-z13.patch b/SOURCES/0003-Fix-SIMD-support-on-IBM-z13.patch
new file mode 100644
index 0000000..0330ef3
--- /dev/null
+++ b/SOURCES/0003-Fix-SIMD-support-on-IBM-z13.patch
@@ -0,0 +1,55 @@
+From 999efd5370b33e8b02d9370eda3d454e08fc9d15 Mon Sep 17 00:00:00 2001
+From: Andreas Arnez <arnez@linux.ibm.com>
+Date: Wed, 5 Dec 2018 18:59:15 +0100
+Subject: [PATCH 3/8] Fix SIMD support on IBM z13
+
+The header file atlas_simd.h contained a syntax error and a few functional
+errors that affected IBM z13.  It prevented any SIMD kernels from being
+compiled successfully for that platform.  This is fixed.  The macro
+vec_madd is avoided, because some GCC versions don't implement it
+correctly; the equivalent GCC builtin __builtin_s390_vec_madd is used
+instead.
+---
+ include/atlas_simd.h | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/include/atlas_simd.h b/include/atlas_simd.h
+index baee6b1..68daf79 100644
+--- a/include/atlas_simd.h
++++ b/include/atlas_simd.h
+@@ -69,7 +69,7 @@
+          #define ATL_FRCGNUVEC
+       #endif
+    #elif defined(ATL_VXZ)
+-      #if ATL_VLEN != 2;
++      #if ATL_VLEN != 2
+          #define ATL_FRCGNUVEC
+       #endif
+    #elif defined(ATL_NEON)
+@@ -390,19 +390,19 @@
+       #define ATL_vld(v_, p_) v_ = vec_ld2f(p_);
+       #define ATL_vst(p_, v_) vec_st2f(v_, p_);
+    #endif
+-   #define ATL_vzero(v_) v_ = vec_splats((TYPE)0.0)
++   #define ATL_vzero(v_) v_ = vec_splats((double)0.0)
+    #define ATL_vcopy(d_, s_) d_ = s_
+-   #define ATL_vbcast(v_, p_) v_ =  vec_splats(*((TYPE*)(p_)))
++   #define ATL_vbcast(v_, p_) v_ = vec_splats((double)*((TYPE*)(p_)))
+    #define ATL_vuld(v_, p_) ATL_vld(v_, p_)
+    #define ATL_vust(p_, v_) ATL_vst(p_, v_)
+    #define ATL_vadd(d_, s1_, s2_) d_ =  s1_ + s2_
+    #define ATL_vsub(d_, s1_, s2_) d_ =  s1_ - s2_
+    #define ATL_vmul(d_, s1_, s2_) d_ =  s1_ * s2_
+-   #define ATL_vmac(d_, s1_, s2_) d_ = vec_madd(s1_, s2_, d_)
++   #define ATL_vmac(d_, s1_, s2_) d_ = __builtin_s390_vec_madd(s1_, s2_, d_)
+    #define ATL_vvrsum1(s0_) \
+    {  ATL_VTYPE t_;\
+       t_ = vec_splat(s0_, 1); \
+-      s0 += t_; \
++      s0_ += t_; \
+    }
+    #define ATL_vsplat0(d_, s_) d_ = vec_splat(s_, 0)
+    #define ATL_vsplat1(d_, s_) d_ = vec_splat(s_, 1)
+-- 
+2.23.0
+
diff --git a/SOURCES/0004-Read-L1-data-cache-size-from-sysconf-if-possible.patch b/SOURCES/0004-Read-L1-data-cache-size-from-sysconf-if-possible.patch
new file mode 100644
index 0000000..1d6ffb3
--- /dev/null
+++ b/SOURCES/0004-Read-L1-data-cache-size-from-sysconf-if-possible.patch
@@ -0,0 +1,46 @@
+From a45cebf11522b3112fba3d682224a232ae5e2e98 Mon Sep 17 00:00:00 2001
+From: Andreas Arnez <arnez@linux.ibm.com>
+Date: Wed, 12 Dec 2018 19:44:32 +0100
+Subject: [PATCH 4/8] Read L1 data cache size from sysconf if possible
+
+The probing of the L1 data cache size is sometimes not reliable.  This can
+cause the tuning to yield varying, sub-obtimal results.  But on Linux the
+L1 data cache size can usually be retrieved with sysconf instead, which is
+faster and more reliable.  Do this whenever possible.
+---
+ tune/sysinfo/L1CacheSize.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/tune/sysinfo/L1CacheSize.c b/tune/sysinfo/L1CacheSize.c
+index e62a273..dffa76e 100644
+--- a/tune/sysinfo/L1CacheSize.c
++++ b/tune/sysinfo/L1CacheSize.c
+@@ -30,6 +30,7 @@
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <unistd.h>
+ 
+ #define REPS 4096
+ 
+@@ -276,7 +277,16 @@ int main(int nargs, char *args[])
+       exit(-1);
+    }
+    if (nargs > 1) MaxSize = atoi(args[1]);
+-   L1Size = GetL1Size(MaxSize, 1.08);
++
++#ifdef _SC_LEVEL1_DCACHE_SIZE
++   {
++      long res = sysconf(_SC_LEVEL1_DCACHE_SIZE);
++      L1Size = res > 0 ? (int) (res / 1024) : 0;
++   }
++#endif
++
++   if (!L1Size)
++      L1Size = GetL1Size(MaxSize, 1.08);
+    if (!L1Size)
+       L1Size = GetL1Size(MaxSize, 1.08);
+    if (!L1Size)
+-- 
+2.23.0
+
diff --git a/SOURCES/0005-Optimizations-for-IBM-z13.patch b/SOURCES/0005-Optimizations-for-IBM-z13.patch
new file mode 100644
index 0000000..e7fef5a
--- /dev/null
+++ b/SOURCES/0005-Optimizations-for-IBM-z13.patch
@@ -0,0 +1,68 @@
+From ad278554860b0da7d5848262a7bf35e058266cb1 Mon Sep 17 00:00:00 2001
+From: Andreas Arnez <arnez@linux.ibm.com>
+Date: Wed, 12 Dec 2018 20:06:27 +0100
+Subject: [PATCH 5/8] Optimizations for IBM z13
+
+Perform some optimizations for IBM z13:
+- Compile with -O2 instead of -O.
+- Streamline vector loads/stores.
+- Define the vvrsum2 macro.
+
+Also, use the compile option -march=z13 instead of -march=native.
+---
+ CONFIG/src/atlcomp.txt |  8 +++-----
+ include/atlas_simd.h   | 11 +++++------
+ 2 files changed, 8 insertions(+), 11 deletions(-)
+
+diff --git a/CONFIG/src/atlcomp.txt b/CONFIG/src/atlcomp.txt
+index aa31604..2ac71cf 100644
+--- a/CONFIG/src/atlcomp.txt
++++ b/CONFIG/src/atlcomp.txt
+@@ -246,12 +246,10 @@ MACH=IBMz9,IBMz10,IBMz196 OS=ALL LVL=500 COMPS=f77
+    'gfortran' '-O3 -funroll-loops'
+ MACH=IBMz9,IBMz10,IBMz196,IBMz12 OS=ALL LVL=500 COMPS=smc,dmc,skc,dkc,icc,xcc,gcc
+    'gcc' '-O3 -funroll-loops'
+-MACH=IBMz13 OS=ALL LVL=1000 COMPS=dmc,skc,dkc,icc,xcc,gcc
+-   'gcc' '-march=native -O -mvx -mzvector'
+-MACH=IBMz13 OS=ALL LVL=1000 COMPS=smc
+-   'gcc' '-march=native -O -mvx -mzvector -fno-peephole -fno-peephole2'
++MACH=IBMz13 OS=ALL LVL=1000 COMPS=smc,dmc,skc,dkc,icc,xcc,gcc
++   'gcc' '-march=z13 -mtune=z13 -O2'
+ MACH=IBMz13 OS=ALL LVL=1000 COMPS=f77
+-   'gfortran' '-march=native -O -mvx -mzvector'
++   'gfortran' '-march=z13 -mtune=z13 -O2'
+ #
+ # Windows defaults ; need to make SSE/SSE2 arch dep.
+ #
+diff --git a/include/atlas_simd.h b/include/atlas_simd.h
+index 68daf79..f171933 100644
+--- a/include/atlas_simd.h
++++ b/include/atlas_simd.h
+@@ -384,8 +384,8 @@
+    #endif
+    #define ATL_VTYPE vector double
+    #if (defined(DREAL) || defined(DCPLX))
+-      #define ATL_vld(v_, p_) {v_[0] = *(p_); v_[1] = (p_)[1]; }
+-      #define ATL_vst(p_, v_)  {*(p_) = v_[0]; (p_)[1] = v_[1];}
++      #define ATL_vld(v_, p_) v_ = *(ATL_VTYPE *)(p_)
++      #define ATL_vst(p_, v_) *(ATL_VTYPE *)(p_) = v_
+    #else
+       #define ATL_vld(v_, p_) v_ = vec_ld2f(p_);
+       #define ATL_vst(p_, v_) vec_st2f(v_, p_);
+@@ -400,10 +400,9 @@
+    #define ATL_vmul(d_, s1_, s2_) d_ =  s1_ * s2_
+    #define ATL_vmac(d_, s1_, s2_) d_ = __builtin_s390_vec_madd(s1_, s2_, d_)
+    #define ATL_vvrsum1(s0_) \
+-   {  ATL_VTYPE t_;\
+-      t_ = vec_splat(s0_, 1); \
+-      s0_ += t_; \
+-   }
++   {  s0_ = vec_mergeh(s0_, s0_) + vec_mergel(s0_, s0_); }
++   #define ATL_vvrsum2(s0_, s1_) \
++   {  s0_ = vec_mergeh(s0_, s1_) + vec_mergel(s0_, s1_); }
+    #define ATL_vsplat0(d_, s_) d_ = vec_splat(s_, 0)
+    #define ATL_vsplat1(d_, s_) d_ = vec_splat(s_, 1)
+ #elif defined(ATL_NEON) && (defined(SREAL) || defined(SCPLX))
+-- 
+2.23.0
+
diff --git a/SOURCES/0006-Add-IBM-z14-support.patch b/SOURCES/0006-Add-IBM-z14-support.patch
new file mode 100644
index 0000000..b00761b
--- /dev/null
+++ b/SOURCES/0006-Add-IBM-z14-support.patch
@@ -0,0 +1,276 @@
+From dce732e9fe47b44d1a985d10a0eb97aac6afa28e Mon Sep 17 00:00:00 2001
+From: Andreas Arnez <arnez@linux.ibm.com>
+Date: Wed, 25 Mar 2020 20:11:19 +0100
+Subject: [PATCH 6/8] Add IBM z14 support
+
+Add general support for IBM z14.  Also detect and handle the vector
+enhancements facility 1, which specifically adds single-precision FP
+arithmetic for vectors.
+---
+ CONFIG/include/atlconf.h            | 14 ++++----
+ CONFIG/src/Makefile                 |  6 ++++
+ CONFIG/src/atlcomp.txt              |  4 +++
+ CONFIG/src/backend/Make.ext         |  4 ++-
+ CONFIG/src/backend/archinfo_linux.c |  3 +-
+ CONFIG/src/backend/probe_vxz2.c     | 12 +++++++
+ CONFIG/src/probe_comp.c             |  3 +-
+ include/atlas_prefetch.h            |  3 +-
+ include/atlas_simd.h                | 53 +++++++++++++++++++++++++++++
+ 9 files changed, 91 insertions(+), 11 deletions(-)
+ create mode 100644 CONFIG/src/backend/probe_vxz2.c
+
+diff --git a/CONFIG/include/atlconf.h b/CONFIG/include/atlconf.h
+index e51d56d..3828fdb 100644
+--- a/CONFIG/include/atlconf.h
++++ b/CONFIG/include/atlconf.h
+@@ -25,11 +25,11 @@ enum ARCHFAM {AFOther=0, AFPPC, AFSPARC, AFALPHA, AFX86, AFIA64, AFMIPS,
+  * Corei3EP: v3 Haswell, E5-26XX
+  * Corei4: skylake
+  */
+-#define NMACH 62
++#define NMACH 63
+ static char *machnam[NMACH] =
+    {"UNKNOWN", "PPCG4", "PPCG5", "POWER3", "POWER4", "POWER5",
+     "POWER6", "POWER7", "POWER8", "POWERe6500",
+-    "IBMz9", "IBMz10", "IBMz196", "IBMz12", "IBMz13",
++    "IBMz9", "IBMz10", "IBMz196", "IBMz12", "IBMz13", "IBMz14",
+     "x86x87", "x86SSE1", "x86SSE2", "x86SSE3",
+     "P5", "P5MMX", "PPRO", "PII", "PIII", "PM", "CoreSolo",
+     "CoreDuo", "Core2Solo", "Core2", "Corei1", "Corei2", "Corei3",
+@@ -42,7 +42,7 @@ static char *machnam[NMACH] =
+     "ARM64xgene1", "ARM64a53", "ARM64a57"};
+ enum MACHTYPE {MACHOther, PPCG4, PPCG5, IbmPwr3, IbmPwr4, IbmPwr5,
+                IbmPwr6, IbmPwr7, IbmPwr8, Pwre6500,
+-               IbmZ9, IbmZ10, IbmZ196, IbmZ12, IbmZ13, /* s390(x) in Linux */
++               IbmZ9, IbmZ10, IbmZ196, IbmZ12, IbmZ13, IbmZ14, /* s390(x) */
+                x86x87, x86SSE1, x86SSE2, x86SSE3, /* generic targets */
+                IntP5, IntP5MMX, IntPPRO, IntPII, IntPIII, IntPM, IntCoreS,
+                IntCoreDuo, IntCore2Solo, IntCore2, IntCorei1, IntCorei2,
+@@ -82,7 +82,7 @@ enum MACHTYPE {MACHOther, PPCG4, PPCG5, IbmPwr3, IbmPwr4, IbmPwr5,
+ #define MachIsARM64(mach_) \
+    ( (mach_) >= ARM64xg && || (mach_) <= ARM64a57)
+ #define MachIsS390(mach_) \
+-   ( (mach_) >= IbmZ9 && (mach_) <= IbmZ13 )
++   ( (mach_) >= IbmZ9 && (mach_) <= IbmZ14 )
+ 
+ 
+ static char *f2c_namestr[5] = {"UNKNOWN","Add_", "Add__", "NoChange", "UpCase"};
+@@ -96,13 +96,13 @@ enum F2CNAME {f2c_NamErr=0, f2c_Add_, f2c_Add__, f2c_NoChange, f2c_UpCase};
+ enum F2CINT {f2c_IntErr=0, FintCint, FintClong, FintClonglong, FintCshort};
+ enum F2CSTRING {f2c_StrErr=0, fstrSun, fstrCray, fstrStructVal, fstrStructPtr};
+ 
+-#define NISA 15
++#define NISA 16
+ static char *ISAXNAM[NISA] =
+-   {"", "VSX", "VXZ", "AltiVec",
++   {"", "VSX", "VXZ2", "VXZ", "AltiVec",
+     "AVXMAC", "AVXFMA4", "AVX", "SSE3", "SSE2", "SSE1", "3DNow",
+     "FPV3D2MACNEON", "FPV3D16MACNEON", "FPV3D32MAC", "FPV3D16MAC"};
+ enum ISAEXT
+-   {ISA_None=0, ISA_VSX, ISA_VXZ, ISA_AV,
++   {ISA_None=0, ISA_VSX, ISA_VXZ2, ISA_VXZ, ISA_AV,
+     ISA_AVXMAC, ISA_AVXFMA4, ISA_AVX, ISA_SSE3, ISA_SSE2, ISA_SSE1, ISA_3DNow,
+     ISA_NEON, ISA_NEON16, ISA_VFP3D32MAC, ISA_VFP3D16MAC};
+ 
+diff --git a/CONFIG/src/Makefile b/CONFIG/src/Makefile
+index 212b9d7..782a4cf 100644
+--- a/CONFIG/src/Makefile
++++ b/CONFIG/src/Makefile
+@@ -158,6 +158,12 @@ IRun_NEON :
+ 	$(MAKE) $(atlrun) atldir=$(mydir) exe=xprobe_neon args="$(args)" \
+                 redir=config0.out
+ 	- cat config0.out
++IRun_VXZ2 :
++	$(CC) $(CCFLAGS) -march=native -mvx -mzvector -o xprobe_vxz2 \
++           $(SRCdir)/backend/probe_svec.c $(SRCdir)/backend/probe_vxz2.c
++	$(MAKE) $(atlrun) atldir=$(mydir) exe=xprobe_vxz2 args="$(args)" \
++                redir=config0.out
++	- cat config0.out
+ IRun_VXZ :
+ 	$(CC) $(CCFLAGS) -march=native -mvx -mzvector -o xprobe_vxz \
+            $(SRCdir)/backend/probe_dvec.c $(SRCdir)/backend/probe_vxz.c
+diff --git a/CONFIG/src/atlcomp.txt b/CONFIG/src/atlcomp.txt
+index 2ac71cf..2cfacc2 100644
+--- a/CONFIG/src/atlcomp.txt
++++ b/CONFIG/src/atlcomp.txt
+@@ -250,6 +250,10 @@ MACH=IBMz13 OS=ALL LVL=1000 COMPS=smc,dmc,skc,dkc,icc,xcc,gcc
+    'gcc' '-march=z13 -mtune=z13 -O2'
+ MACH=IBMz13 OS=ALL LVL=1000 COMPS=f77
+    'gfortran' '-march=z13 -mtune=z13 -O2'
++MACH=IBMz14 OS=ALL LVL=1000 COMPS=smc,dmc,skc,dkc,icc,xcc,gcc
++   'gcc' '-march=z14 -mtune=z14 -O2'
++MACH=IBMz14 OS=ALL LVL=1000 COMPS=f77
++   'gfortran' '-march=z14 -mtune=z14 -O2'
+ #
+ # Windows defaults ; need to make SSE/SSE2 arch dep.
+ #
+diff --git a/CONFIG/src/backend/Make.ext b/CONFIG/src/backend/Make.ext
+index 4743353..794babf 100644
+--- a/CONFIG/src/backend/Make.ext
++++ b/CONFIG/src/backend/Make.ext
+@@ -39,7 +39,7 @@ files = archinfo_aix.c archinfo_freebsd.c archinfo_irix.c archinfo_linux.c \
+         probe_gas_mips.S probe_gas_parisc.S probe_gas_ppc.S probe_gas_s390.S \
+         probe_gas_sparc.S probe_gas_wow64.S probe_gas_x8632.S \
+         probe_gas_x8664.S probe_smac.c probe_svec.c probe_this_asm.c \
+-        probe_vxz.c
++        probe_vxz2.c probe_vxz.c
+ 
+ all : $(files)
+ 
+@@ -107,6 +107,8 @@ flibchkF.f : $(basf)
+ 	$(extF) -b $(basf) -o flibchkF.f rout=flibchkF.f
+ probe_arm32_FPABI.c : $(basf)
+ 	$(extC) -b $(basf) -o probe_arm32_FPABI.c rout=probe_arm32_FPABI
++probe_vxz2.c : $(basf)
++	$(extC) -b $(basf) -o probe_vxz2.c rout=probe_vxz2
+ probe_vxz.c : $(basf)
+ 	$(extC) -b $(basf) -o probe_vxz.c rout=probe_vxz
+ probe_aff_SETAFFNP.c : $(basf)
+diff --git a/CONFIG/src/backend/archinfo_linux.c b/CONFIG/src/backend/archinfo_linux.c
+index cdcee92..ed6f476 100644
+--- a/CONFIG/src/backend/archinfo_linux.c
++++ b/CONFIG/src/backend/archinfo_linux.c
+@@ -336,7 +336,8 @@ enum MACHTYPE ProbeArch()
+          else if (strstr(res, "2817") || strstr(res, "2818")) mach = IbmZ196;
+          else if (strstr(res, "2827") || strstr(res, "2828")) mach = IbmZ12;
+          else if (strstr(res, "2964") || strstr(res, "2965")) mach = IbmZ13;
+-         else mach = IbmZ13;  /* looks risky to me, but IBM folks did it */
++         else if (strstr(res, "3906") || strstr(res, "3907")) mach = IbmZ14;
++         else mach = IbmZ14;  /* looks risky to me, but IBM folks did it */
+          free(res);
+       }
+       break;
+diff --git a/CONFIG/src/backend/probe_vxz2.c b/CONFIG/src/backend/probe_vxz2.c
+new file mode 100644
+index 0000000..a69d92d
+--- /dev/null
++++ b/CONFIG/src/backend/probe_vxz2.c
+@@ -0,0 +1,12 @@
++#include <vecintrin.h>
++void do_vsum(float *z, float *x, float *y) // RETURNS: z = x + y
++{
++   vector float vx, vy;
++   vx = (vector float) {x[0], x[1], x[2], x[3]};
++   vy = (vector float) {y[0], y[1], y[2], y[3]};
++   vy += vx;
++   z[0] = vy[0];
++   z[1] = vy[1];
++   z[2] = vy[2];
++   z[3] = vy[3];
++}
+diff --git a/CONFIG/src/probe_comp.c b/CONFIG/src/probe_comp.c
+index 1652e24..857ea82 100644
+--- a/CONFIG/src/probe_comp.c
++++ b/CONFIG/src/probe_comp.c
+@@ -452,7 +452,7 @@ COMPNODE **GetDefaultComps(enum OSTYPE OS, enum MACHTYPE arch, int verb,
+       vp = "-mavx2 -mfma";
+    else if (vecexts & (1<<ISA_VSX))
+       vp = "-mvsx";
+-   else if (vecexts & (1<<ISA_VXZ))
++   else if ((vecexts & (1<<ISA_VXZ)) || (vecexts & (1<<ISA_VXZ2)))
+       vp = "-mvx -mzvector";
+    else if (vecexts & (1<<ISA_AV))
+       vp = "-maltivec";
+@@ -1207,6 +1207,7 @@ void GetBestGccVers(enum OSTYPE OS, enum MACHTYPE arch,
+    {
+    case IbmZ12:
+    case IbmZ13:
++   case IbmZ14:
+    case IntCorei3:
+    case IntCorei4:
+    case IntCorei2:
+diff --git a/include/atlas_prefetch.h b/include/atlas_prefetch.h
+index e7988a7..fa426ac 100644
+--- a/include/atlas_prefetch.h
++++ b/include/atlas_prefetch.h
+@@ -155,7 +155,8 @@
+    #define ATL_L1LS 32
+    #define ATL_L2LS 64
+ #elif defined(ATL_ARCH_IBMz196) || defined(ATL_ARCH_IBMz10) || \
+-      defined(ATL_ARCH_IBMzEC12) || defined(ATL_ARCH_IBMz13)
++      defined(ATL_ARCH_IBMzEC12) || defined(ATL_ARCH_IBMz13) || \
++      defined(ATL_ARCH_IbmZ14)
+    #define ATL_pfl1R(mem) __builtin_prefetch(mem, 0, 3)
+    #define ATL_pfl1W(mem) __builtin_prefetch(mem, 1, 3)
+    #define ATL_GOT_L1PREFETCH
+diff --git a/include/atlas_simd.h b/include/atlas_simd.h
+index f171933..eb75577 100644
+--- a/include/atlas_simd.h
++++ b/include/atlas_simd.h
+@@ -68,6 +68,11 @@
+           ((defined(DREAL) || defined(DCPLX)) && ATL_VLEN != 2)
+          #define ATL_FRCGNUVEC
+       #endif
++   #elif defined(ATL_VXZ2)
++      #if ((defined(SREAL) || defined(SCPLX)) && ATL_VLEN != 4) || \
++          ((defined(DREAL) || defined(DCPLX)) && ATL_VLEN != 2)
++         #define ATL_FRCGNUVEC
++      #endif
+    #elif defined(ATL_VXZ)
+       #if ATL_VLEN != 2
+          #define ATL_FRCGNUVEC
+@@ -113,6 +118,12 @@
+       #else
+          #define ATL_VLEN 2
+       #endif
++   #elif defined(ATL_VXZ2)
++      #if defined(SREAL) || defined(SCPLX)
++         #define ATL_VLEN 4
++      #else
++         #define ATL_VLEN 2
++      #endif
+    #elif defined(ATL_VXZ)
+       #define ATL_VLEN 2
+    #elif defined(ATL_NEON)
+@@ -376,6 +387,48 @@
+       #define ATL_vsplat0(d_, s_) d_ = vec_splat(s_, 0)
+       #define ATL_vsplat1(d_, s_) d_ = vec_splat(s_, 1)
+    #endif
++#elif defined(ATL_VXZ2)
++   #include <vecintrin.h>
++
++   #define ATL_VPERMI(s_, t_, i_) \
++     ((ATL_VTYPE) vec_permi((vector double) s_, (vector double) t_, i_))
++
++   #if defined(SREAL) || defined(SCPLX)
++      #define ATL_VTYPE vector float
++      #if ATL_VLEN != 4
++         #error "VSXZ2 supports only VLEN = 4 for floats!"
++      #endif
++      #define ATL_vvrsum4(s0_, s1_, s2_, s3_) \
++      {	 ATL_VTYPE t0_, t1_; \
++         t0_ = vec_mergeh(s0_, s1_) + vec_mergel(s0_, s1_); \
++         t1_ = vec_mergeh(s2_, s3_) + vec_mergel(s2_, s3_); \
++         s0_ = ATL_VPERMI(t0_, t1_, 0) + ATL_VPERMI(t0_, t1_, 3); \
++      }
++      #define ATL_vsplat2(d_, s_) d_ = vec_splat(s_, 2)
++      #define ATL_vsplat3(d_, s_) d_ = vec_splat(s_, 3)
++   #else        /* double precision */
++      #define ATL_VTYPE vector double
++      #if ATL_VLEN != 2
++         #error "VSXZ2 supports only VLEN = 2 for doubles!"
++      #endif
++      #define ATL_vvrsum1(s0_) \
++      {  s0_ = vec_mergeh(s0_, s0_) + vec_mergel(s0_, s0_); }
++      #define ATL_vvrsum2(s0_, s1_) \
++      {  s0_ = vec_mergeh(s0_, s1_) + vec_mergel(s0_, s1_); }
++   #endif
++   #define ATL_vld(v_, p_) v_ = *(ATL_VTYPE *)(p_)
++   #define ATL_vst(p_, v_) *(ATL_VTYPE *)(p_) = v_
++   #define ATL_vzero(v_) v_ = vec_splats((TYPE)0.0)
++   #define ATL_vcopy(d_, s_) d_ = s_
++   #define ATL_vbcast(v_, p_) v_ = vec_splats(*((TYPE*)(p_)))
++   #define ATL_vuld(v_, p_) v_ = vec_xl(0, (TYPE *)(p_))
++   #define ATL_vust(p_, v_) vec_xst(v_, 0, (TYPE *)(p_))
++   #define ATL_vadd(d_, s1_, s2_) d_ =  s1_ + s2_
++   #define ATL_vsub(d_, s1_, s2_) d_ =  s1_ - s2_
++   #define ATL_vmul(d_, s1_, s2_) d_ =  s1_ * s2_
++   #define ATL_vmac(d_, s1_, s2_) d_ = __builtin_s390_vec_madd(s1_, s2_, d_)
++   #define ATL_vsplat0(d_, s_) d_ = vec_splat(s_, 0)
++   #define ATL_vsplat1(d_, s_) d_ = vec_splat(s_, 1)
+ #elif defined(ATL_VXZ)
+    #include <vecintrin.h>
+ 
+-- 
+2.23.0
+
diff --git a/SOURCES/0007-Enable-cross-compile.patch b/SOURCES/0007-Enable-cross-compile.patch
new file mode 100644
index 0000000..9ab7d29
--- /dev/null
+++ b/SOURCES/0007-Enable-cross-compile.patch
@@ -0,0 +1,265 @@
+From 14e717c4367c04570863220c3faf5ce41dabbf05 Mon Sep 17 00:00:00 2001
+From: Andreas Arnez <arnez@linux.ibm.com>
+Date: Wed, 29 May 2019 17:51:34 +0200
+Subject: [PATCH 7/8] Enable "cross-compile"
+
+This adds support for building ATLAS without running any target code.  In
+order for this to work, the archdefs must contain some additional files
+that would otherwise be built during various tuning steps; see the new
+targets extra_get and extra_put in "CONFIG/ARCHS/Makefile".
+
+Even if the archdefs contain these additional files, cross compilation
+is *not* automatically enabled.  To activate it and disable tuning at
+build time, add the option "-Si archdef 2" when running "configure".
+---
+ CONFIG/ARCHS/Makefile | 24 ++++++++++++++++++++++++
+ bin/atlas_install.c   |  2 ++
+ makes/Make.aux        | 10 +++++-----
+ makes/Make.bin        | 22 ++++++++++++++++++++++
+ makes/Make.l3tune     |  6 ++++++
+ makes/Make.sysinfo    |  8 +++++++-
+ 6 files changed, 66 insertions(+), 6 deletions(-)
+
+diff --git a/CONFIG/ARCHS/Makefile b/CONFIG/ARCHS/Makefile
+index 321e05c..e61b5a0 100644
+--- a/CONFIG/ARCHS/Makefile
++++ b/CONFIG/ARCHS/Makefile
+@@ -211,3 +211,27 @@ ArchNew : $(mach) xnegflt
+ 	- cp $(BLDdir)/bin/INSTALL_LOG/?PerfSumm.txt $(adefd)/.
+ 	rm -f xnegflt
+ archput : sys_put kern_put gemm_put la_put
++
++ifdef ATL_NOTUNE
++
++# To avoid tuning, some extra files are needed.
++
++extra_get :
++	- cp $(INCAdir)/atlas_type.h $(adefd)/kern/
++	- cp $(INCAdir)/atlas_[sdcz]sysinfo.h $(adefd)/kern/
++	- cp $(INCAdir)/atlas_[sd]lamch.h $(adefd)/kern/
++	- cp $(INCAdir)/atlas_[sdcz]trsmXover.h $(adefd)/kern/
++	- cp $(INCAdir)/atlas_[sdcz]syr*NX.h $(adefd)/kern/
++
++extra_put :
++	- cp $(adefd)/kern/atlas_type.h $(INCAdir)/.
++	- cp $(adefd)/kern/atlas_[sdcz]sysinfo.h $(INCAdir)/.
++	- cp $(adefd)/kern/atlas_[sd]lamch.h $(INCAdir)/.
++	- cp $(adefd)/kern/atlas_[sdcz]trsmXover.h $(INCAdir)/.
++	- cp $(adefd)/kern/atlas_[sdcz]syr*NX.h  $(INCAdir)/.
++
++ArchNew : extra_get
++
++archput : extra_put
++
++endif
+diff --git a/bin/atlas_install.c b/bin/atlas_install.c
+index de3eb3a..3c811e6 100644
+--- a/bin/atlas_install.c
++++ b/bin/atlas_install.c
+@@ -697,6 +697,8 @@ void GoToTown(int ARCHDEF, int L1DEF, int TuneLA)
+       ATL_Cassert(system("make IBozoL1.grd\n")==0,
+                   "USING BOZO L1 DEFAULTS", NULL);
+    }
++   if (ARCHDEF >= 2)
++      setenv("ATL_NOTUNE", "1", 1);
+    if (ARCHDEF)
+       DefInstall = !system("make IArchDef.grd\n");
+ 
+diff --git a/makes/Make.aux b/makes/Make.aux
+index 1f769c8..c793028 100644
+--- a/makes/Make.aux
++++ b/makes/Make.aux
+@@ -113,23 +113,23 @@ clean :
+ 
+ $(ATLFWAIT) :
+ 	cd $(BINdir) ; $(MAKE) xatlas_waitfile
+-$(INCAdir)/atlas_type.h : $(ATLFWAIT)
++$(INCAdir)/atlas_type.h : | $(ATLFWAIT)
+ 	cd $(SYSdir) ; $(MAKE) $(INCAdir)/atlas_type.h
+ 	$(ATLFWAIT) -f $(INCAdir)/atlas_type.h
+ sINCdep = $(INCAdir)/atlas_ssysinfo.h $(INCAdir)/atlas_type.h 
+-$(INCAdir)/atlas_ssysinfo.h : $(ATLFWAIT)
++$(INCAdir)/atlas_ssysinfo.h : | $(ATLFWAIT)
+ 	cd $(SYSdir) ; $(MAKE) $(INCAdir)/atlas_ssysinfo.h
+ 	$(ATLFWAIT) -f $(INCAdir)/atlas_ssysinfo.h
+ dINCdep = $(INCAdir)/atlas_dsysinfo.h $(INCAdir)/atlas_type.h 
+-$(INCAdir)/atlas_dsysinfo.h : $(ATLFWAIT)
++$(INCAdir)/atlas_dsysinfo.h : | $(ATLFWAIT)
+ 	cd $(SYSdir) ; $(MAKE) $(INCAdir)/atlas_dsysinfo.h
+ 	$(ATLFWAIT) -f $(INCAdir)/atlas_dsysinfo.h
+ cINCdep = $(INCAdir)/atlas_csysinfo.h $(INCAdir)/atlas_type.h 
+-$(INCAdir)/atlas_csysinfo.h : $(ATLFWAIT)
++$(INCAdir)/atlas_csysinfo.h : | $(ATLFWAIT)
+ 	cd $(SYSdir) ; $(MAKE) $(INCAdir)/atlas_csysinfo.h
+ 	$(ATLFWAIT) -f $(INCAdir)/atlas_csysinfo.h
+ zINCdep = $(INCAdir)/atlas_zsysinfo.h $(INCAdir)/atlas_type.h 
+-$(INCAdir)/atlas_zsysinfo.h : $(ATLFWAIT)
++$(INCAdir)/atlas_zsysinfo.h : | $(ATLFWAIT)
+ 	cd $(SYSdir) ; $(MAKE) $(INCAdir)/atlas_zsysinfo.h
+ 	$(ATLFWAIT) -f $(INCAdir)/atlas_zsysinfo.h
+ 
+diff --git a/makes/Make.bin b/makes/Make.bin
+index 1035cb9..acad578 100644
+--- a/makes/Make.bin
++++ b/makes/Make.bin
+@@ -163,7 +163,9 @@ IRunMADef :
+ 	cd $(SYSdir) ; $(MAKE) RunMADef pre=$(pre)
+ 
+ IRunMMDef :
++ifndef ATL_NOTUNE
+ 	cd $(MMTdir) ; $(MAKE) RunMMDef pre=$(pre)
++endif
+ 	cd $(MMTdir) ; ./xemit_mm  -p $(pre) -R -2
+ 	cd $(MMTdir) ; $(MAKE) install pre=$(pre)
+ IKillL1 : force_build
+@@ -303,22 +305,42 @@ INSTALL_LOG/$(pre)bestTT_$(nb)x$(nb)x$(nb) : \
+ 	cp $(MMTdir)/res/$(pre)bestTT_$(nb)x$(nb)x$(nb) INSTALL_LOG/.
+ 
+ $(R1Tdir)/res/$(pre)R2K.sum : $(R1Tdir)/res/$(pre)R1K.sum force_build
++ifdef ATL_NOTUNE
++	cd $(R1Tdir) ; $(MAKE) $(pre)r2install
++else
+ 	cd $(R1Tdir) ; $(MAKE) res/$(pre)R2K.sum pre=$(pre)
++endif
+ $(R1Tdir)/res/$(pre)R1K.sum : force_build
++ifdef ATL_NOTUNE
++	cd $(R1Tdir) ; $(MAKE) $(pre)r1install
++else
+ 	cd $(R1Tdir) ; $(MAKE) res/$(pre)R1K.sum pre=$(pre)
++endif
+ INSTALL_LOG/$(pre)R1K.sum : $(R1Tdir)/res/$(pre)R1K.sum
+ 	cp $(R1Tdir)/res/$(pre)R1K.sum INSTALL_LOG/.
+ INSTALL_LOG/$(pre)R2K.sum : INSTALL_LOG/$(pre)R1K.sum \
+    $(R1Tdir)/res/$(pre)R2K.sum
+ 	cp $(R1Tdir)/res/$(pre)R2K.sum INSTALL_LOG/.
++ifndef ATL_NOTUNE
+ 	cd $(R1Tdir) ; $(MAKE) $(pre)nxtune
++else
++	cd $(BLDdir)/src/blas/reference/level2 ; make $(pre)lib
++endif
+ 
+ $(MVTdir)/res/$(pre)MVNK.sum : force_build
++ifdef ATL_NOTUNE
++	cd $(MVTdir) ; $(MAKE) $(pre)mvninstall
++else
+ 	cd $(MVTdir) ; $(MAKE) res/$(pre)MVNK.sum pre=$(pre)
++endif
+ INSTALL_LOG/$(pre)MVNK.sum : $(MVTdir)/res/$(pre)MVNK.sum
+ 	cp $(MVTdir)/res/$(pre)MVNK.sum INSTALL_LOG/.
+ $(MVTdir)/res/$(pre)MVTK.sum : force_build
++ifdef ATL_NOTUNE
++	cd $(MVTdir) ; $(MAKE) $(pre)mvtinstall
++else
+ 	cd $(MVTdir) ; $(MAKE) res/$(pre)MVTK.sum pre=$(pre)
++endif
+ INSTALL_LOG/$(pre)MVTK.sum : $(MVTdir)/res/$(pre)MVTK.sum
+ 	cp $(MVTdir)/res/$(pre)MVTK.sum INSTALL_LOG/.
+ 
+diff --git a/makes/Make.l3tune b/makes/Make.l3tune
+index eaf7d7d..cd7f5f1 100644
+--- a/makes/Make.l3tune
++++ b/makes/Make.l3tune
+@@ -118,6 +118,7 @@ res/atlas_strsmXover.h :
+ 	cp $(strsmXover) res/.
+ 
+ stsmfc :
++ifndef ATL_NOTUNE
+ 	rm -f $(strsmXover)
+ 	cd $(L3Bdir) ; $(MAKE) slib
+ 	$(MAKE) xstsmfc2 pre=s typ=SREAL side=$(side) uplo=Upper_ \
+@@ -128,6 +129,7 @@ stsmfc :
+                 tran=NoTranspose_ diag=$(diag)
+ 	$(MAKE) xstsmfc2 pre=s typ=SREAL side=$(side) uplo=Lower_ \
+                 tran=Transpose_ diag=$(diag)
++endif
+ 	cd $(L3Bdir) ; $(MAKE) slib
+ dtrsmXover = $(INCAdir)/atlas_dtrsmXover.h
+ 
+@@ -138,6 +140,7 @@ res/atlas_dtrsmXover.h :
+ 	cp $(dtrsmXover) res/.
+ 
+ dtsmfc :
++ifndef ATL_NOTUNE
+ 	rm -f $(dtrsmXover)
+ 	cd $(L3Bdir) ; $(MAKE) dlib
+ 	$(MAKE) xdtsmfc2 pre=d typ=DREAL side=$(side) uplo=Upper_ \
+@@ -148,6 +151,7 @@ dtsmfc :
+                 tran=NoTranspose_ diag=$(diag)
+ 	$(MAKE) xdtsmfc2 pre=d typ=DREAL side=$(side) uplo=Lower_ \
+                 tran=Transpose_ diag=$(diag)
++endif
+ 	cd $(L3Bdir) ; $(MAKE) dlib
+ qtrsmXover = $(INCAdir)/atlas_qtrsmXover.h
+ 
+@@ -158,6 +162,7 @@ res/atlas_qtrsmXover.h :
+ 	cp $(qtrsmXover) res/.
+ 
+ qtsmfc :
++ifndef ATL_NOTUNE
+ 	rm -f $(qtrsmXover)
+ 	cd $(L3Bdir) ; $(MAKE) qlib
+ 	$(MAKE) xqtsmfc2 pre=q typ=QREAL side=$(side) uplo=Upper_ \
+@@ -168,6 +173,7 @@ qtsmfc :
+                 tran=NoTranspose_ diag=$(diag)
+ 	$(MAKE) xqtsmfc2 pre=q typ=QREAL side=$(side) uplo=Lower_ \
+                 tran=Transpose_ diag=$(diag)
++endif
+ 	cd $(L3Bdir) ; $(MAKE) qlib
+ 
+ $(pre)tsmfc.o : force_build
+diff --git a/makes/Make.sysinfo b/makes/Make.sysinfo
+index 2b7dfdc..8e5dab2 100644
+--- a/makes/Make.sysinfo
++++ b/makes/Make.sysinfo
+@@ -5,6 +5,7 @@ maxlat=6
+ mflop=200
+ flags=
+ 
++ifndef ATL_NOTUNE
+ sTestFlags : force_build
+ 	$(MAKE) srbob `cat res/sBEST` pre='s' type=float
+ 
+@@ -85,12 +86,14 @@ RunLamch : xemit_lamch
+ 	cp res/atlas_?lamch.h $(INCAdir)/.
+ RunTyp: xemit_typ
+ 	$(ATLRUN) $(SYSdir) xemit_typ > $(INCAdir)/atlas_type.h
++endif
+ 
+ xemit_buildinfo : emit_buildinfo.o
+ 	$(XCC) $(XCCFLAGS) -o $@ emit_buildinfo.o
+ xsyssum : GetSysSum.o
+ 	$(XCC) $(XCCFLAGS) -o $@ GetSysSum.o
+ 
++ifndef ATL_NOTUNE
+ xL1 : time.o L1CacheSize.o
+ 	$(KC) $(KCFLAGS) -o $@ L1CacheSize.o time.o
+ 
+@@ -125,6 +128,7 @@ smatime.o : $(mySRCdir)/matime.c
+ 	$(KC) -c $(KCFLAGS) -DSREAL $(mySRCdir)/matime.c
+ xmasrch : $(mySRCdir)/masrch.c
+ 	$(XCC) $(XCCFLAGS) -o $@ $(mySRCdir)/masrch.c
++endif
+ 
+ ATL_cputime.c : 
+ 	cp $(mySRCdir)/ATL_cputime.c .
+@@ -143,6 +147,8 @@ emit_buildinfo.o : $(mySRCdir)/emit_buildinfo.c
+ 	$(XCC) -c $(XCCFLAGS) $(mySRCdir)/emit_buildinfo.c
+ GetSysSum.o : $(INCAdir)/atlas_type.h $(mySRCdir)/GetSysSum.c
+ 	$(XCC) -c $(XCCFLAGS) $(mySRCdir)/GetSysSum.c
++
++ifndef ATL_NOTUNE
+ time.o : $(mySRCdir)/time.c
+ 	$(KC) -c $(KCFLAGS) -I./ $(mySRCdir)/time.c
+ emit_lamch.o : $(mySRCdir)/emit_lamch.c
+@@ -155,7 +161,7 @@ findNT.o : $(mySRCdir)/findNT.c
+ 	$(KC) -c $(KCFLAGS) $(mySRCdir)/findNT.c
+ tlb.o : $(mySRCdir)/tlb.c
+ 	$(KC) -c $(KCFLAGS) $(mySRCdir)/tlb.c
+-
++endif
+ 
+ 
+ force_build :
+-- 
+2.23.0
+
diff --git a/SOURCES/0008-Add-IBM-z15-support.patch b/SOURCES/0008-Add-IBM-z15-support.patch
new file mode 100644
index 0000000..526a039
--- /dev/null
+++ b/SOURCES/0008-Add-IBM-z15-support.patch
@@ -0,0 +1,105 @@
+From d249a8128806d08285eeda00b2a35b62a22236f4 Mon Sep 17 00:00:00 2001
+From: Andreas Arnez <arnez@linux.ibm.com>
+Date: Thu, 26 Mar 2020 17:14:49 +0100
+Subject: [PATCH 8/8] Add IBM z15 support
+
+Add support for specifying "IBMz15" as target architecture.
+---
+ CONFIG/include/atlconf.h            | 8 ++++----
+ CONFIG/src/atlcomp.txt              | 4 ++++
+ CONFIG/src/backend/archinfo_linux.c | 1 +
+ CONFIG/src/probe_comp.c             | 1 +
+ include/atlas_prefetch.h            | 2 +-
+ 5 files changed, 11 insertions(+), 5 deletions(-)
+
+diff --git a/CONFIG/include/atlconf.h b/CONFIG/include/atlconf.h
+index 3828fdb..382601f 100644
+--- a/CONFIG/include/atlconf.h
++++ b/CONFIG/include/atlconf.h
+@@ -25,11 +25,11 @@ enum ARCHFAM {AFOther=0, AFPPC, AFSPARC, AFALPHA, AFX86, AFIA64, AFMIPS,
+  * Corei3EP: v3 Haswell, E5-26XX
+  * Corei4: skylake
+  */
+-#define NMACH 63
++#define NMACH 64
+ static char *machnam[NMACH] =
+    {"UNKNOWN", "PPCG4", "PPCG5", "POWER3", "POWER4", "POWER5",
+     "POWER6", "POWER7", "POWER8", "POWERe6500",
+-    "IBMz9", "IBMz10", "IBMz196", "IBMz12", "IBMz13", "IBMz14",
++    "IBMz9", "IBMz10", "IBMz196", "IBMz12", "IBMz13", "IBMz14", "IBMz15",
+     "x86x87", "x86SSE1", "x86SSE2", "x86SSE3",
+     "P5", "P5MMX", "PPRO", "PII", "PIII", "PM", "CoreSolo",
+     "CoreDuo", "Core2Solo", "Core2", "Corei1", "Corei2", "Corei3",
+@@ -42,7 +42,7 @@ static char *machnam[NMACH] =
+     "ARM64xgene1", "ARM64a53", "ARM64a57"};
+ enum MACHTYPE {MACHOther, PPCG4, PPCG5, IbmPwr3, IbmPwr4, IbmPwr5,
+                IbmPwr6, IbmPwr7, IbmPwr8, Pwre6500,
+-               IbmZ9, IbmZ10, IbmZ196, IbmZ12, IbmZ13, IbmZ14, /* s390(x) */
++               IbmZ9, IbmZ10, IbmZ196, IbmZ12, IbmZ13, IbmZ14, IbmZ15,
+                x86x87, x86SSE1, x86SSE2, x86SSE3, /* generic targets */
+                IntP5, IntP5MMX, IntPPRO, IntPII, IntPIII, IntPM, IntCoreS,
+                IntCoreDuo, IntCore2Solo, IntCore2, IntCorei1, IntCorei2,
+@@ -82,7 +82,7 @@ enum MACHTYPE {MACHOther, PPCG4, PPCG5, IbmPwr3, IbmPwr4, IbmPwr5,
+ #define MachIsARM64(mach_) \
+    ( (mach_) >= ARM64xg && || (mach_) <= ARM64a57)
+ #define MachIsS390(mach_) \
+-   ( (mach_) >= IbmZ9 && (mach_) <= IbmZ14 )
++   ( (mach_) >= IbmZ9 && (mach_) <= IbmZ15 )
+ 
+ 
+ static char *f2c_namestr[5] = {"UNKNOWN","Add_", "Add__", "NoChange", "UpCase"};
+diff --git a/CONFIG/src/atlcomp.txt b/CONFIG/src/atlcomp.txt
+index 2cfacc2..acb2c83 100644
+--- a/CONFIG/src/atlcomp.txt
++++ b/CONFIG/src/atlcomp.txt
+@@ -254,6 +254,10 @@ MACH=IBMz14 OS=ALL LVL=1000 COMPS=smc,dmc,skc,dkc,icc,xcc,gcc
+    'gcc' '-march=z14 -mtune=z14 -O2'
+ MACH=IBMz14 OS=ALL LVL=1000 COMPS=f77
+    'gfortran' '-march=z14 -mtune=z14 -O2'
++MACH=IBMz15 OS=ALL LVL=1000 COMPS=smc,dmc,skc,dkc,icc,xcc,gcc
++   'gcc' '-march=arch13 -mtune=arch13 -O2'
++MACH=IBMz15 OS=ALL LVL=1000 COMPS=f77
++   'gfortran' '-march=arch13 -mtune=arch13 -O2'
+ #
+ # Windows defaults ; need to make SSE/SSE2 arch dep.
+ #
+diff --git a/CONFIG/src/backend/archinfo_linux.c b/CONFIG/src/backend/archinfo_linux.c
+index ed6f476..934a005 100644
+--- a/CONFIG/src/backend/archinfo_linux.c
++++ b/CONFIG/src/backend/archinfo_linux.c
+@@ -337,6 +337,7 @@ enum MACHTYPE ProbeArch()
+          else if (strstr(res, "2827") || strstr(res, "2828")) mach = IbmZ12;
+          else if (strstr(res, "2964") || strstr(res, "2965")) mach = IbmZ13;
+          else if (strstr(res, "3906") || strstr(res, "3907")) mach = IbmZ14;
++         else if (strstr(res, "8561") || strstr(res, "8562")) mach = IbmZ15;
+          else mach = IbmZ14;  /* looks risky to me, but IBM folks did it */
+          free(res);
+       }
+diff --git a/CONFIG/src/probe_comp.c b/CONFIG/src/probe_comp.c
+index 857ea82..88bb25e 100644
+--- a/CONFIG/src/probe_comp.c
++++ b/CONFIG/src/probe_comp.c
+@@ -1208,6 +1208,7 @@ void GetBestGccVers(enum OSTYPE OS, enum MACHTYPE arch,
+    case IbmZ12:
+    case IbmZ13:
+    case IbmZ14:
++   case IbmZ15:
+    case IntCorei3:
+    case IntCorei4:
+    case IntCorei2:
+diff --git a/include/atlas_prefetch.h b/include/atlas_prefetch.h
+index fa426ac..583f19d 100644
+--- a/include/atlas_prefetch.h
++++ b/include/atlas_prefetch.h
+@@ -156,7 +156,7 @@
+    #define ATL_L2LS 64
+ #elif defined(ATL_ARCH_IBMz196) || defined(ATL_ARCH_IBMz10) || \
+       defined(ATL_ARCH_IBMzEC12) || defined(ATL_ARCH_IBMz13) || \
+-      defined(ATL_ARCH_IbmZ14)
++      defined(ATL_ARCH_IbmZ14) || defined(ATL_ARCH_IbmZ15)
+    #define ATL_pfl1R(mem) __builtin_prefetch(mem, 0, 3)
+    #define ATL_pfl1W(mem) __builtin_prefetch(mem, 1, 3)
+    #define ATL_GOT_L1PREFETCH
+-- 
+2.23.0
+
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-gcc10.patch b/SOURCES/atlas-gcc10.patch
new file mode 100644
index 0000000..6d6eb4e
--- /dev/null
+++ b/SOURCES/atlas-gcc10.patch
@@ -0,0 +1,49 @@
+From 9a3e640a517926c47b5655ba0033d4f56df4a66e Mon Sep 17 00:00:00 2001
+From: Jakub Martisko <jamartis@redhat.com>
+Date: Wed, 22 Jan 2020 14:24:46 +0100
+Subject: [PATCH] test
+
+---
+ interfaces/blas/C/testing/c_dblat1.f | 4 ++--
+ interfaces/blas/C/testing/c_sblat1.f | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/interfaces/blas/C/testing/c_dblat1.f b/interfaces/blas/C/testing/c_dblat1.f
+index 55ea989..7269601 100644
+--- a/interfaces/blas/C/testing/c_dblat1.f
++++ b/interfaces/blas/C/testing/c_dblat1.f
+@@ -247,11 +247,11 @@
+             IF (ICASE.EQ.7) THEN
+ *              .. DNRM2TEST ..
+                STEMP(1) = DTRUE1(NP1)
+-               CALL STEST1(DNRM2TEST(N,SX,INCX),STEMP,STEMP,SFAC)
++               CALL STEST1(DNRM2TEST(N,SX,INCX),STEMP(1),STEMP,SFAC)
+             ELSE IF (ICASE.EQ.8) THEN
+ *              .. DASUMTEST ..
+                STEMP(1) = DTRUE3(NP1)
+-               CALL STEST1(DASUMTEST(N,SX,INCX),STEMP,STEMP,SFAC)
++               CALL STEST1(DASUMTEST(N,SX,INCX),STEMP(1),STEMP,SFAC)
+             ELSE IF (ICASE.EQ.9) THEN
+ *              .. DSCALTEST ..
+                CALL DSCALTEST(N,SA((INCX-1)*5+NP1),SX,INCX)
+diff --git a/interfaces/blas/C/testing/c_sblat1.f b/interfaces/blas/C/testing/c_sblat1.f
+index 1fc6dce..b97ed0b 100644
+--- a/interfaces/blas/C/testing/c_sblat1.f
++++ b/interfaces/blas/C/testing/c_sblat1.f
+@@ -247,11 +247,11 @@
+             IF (ICASE.EQ.7) THEN
+ *              .. SNRM2TEST ..
+                STEMP(1) = DTRUE1(NP1)
+-               CALL STEST1(SNRM2TEST(N,SX,INCX),STEMP,STEMP,SFAC)
++               CALL STEST1(SNRM2TEST(N,SX,INCX),STEMP(1),STEMP,SFAC)
+             ELSE IF (ICASE.EQ.8) THEN
+ *              .. SASUMTEST ..
+                STEMP(1) = DTRUE3(NP1)
+-               CALL STEST1(SASUMTEST(N,SX,INCX),STEMP,STEMP,SFAC)
++               CALL STEST1(SASUMTEST(N,SX,INCX),STEMP(1),STEMP,SFAC)
+             ELSE IF (ICASE.EQ.9) THEN
+ *              .. SSCALTEST ..
+                CALL SSCALTEST(N,SA((INCX-1)*5+NP1),SX,INCX)
+-- 
+2.24.1
+
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-getri.patch b/SOURCES/atlas-getri.patch
new file mode 100644
index 0000000..d4659a8
--- /dev/null
+++ b/SOURCES/atlas-getri.patch
@@ -0,0 +1,12 @@
+diff --git a/src/testing/ATL_f77getri.c b/src/testing/ATL_f77getri.c
+index 2cc576c..7ff8eba 100644
+--- a/src/testing/ATL_f77getri.c
++++ b/src/testing/ATL_f77getri.c
+@@ -97,7 +97,6 @@ int f77getri(const enum ATLAS_ORDER Order, const int N, TYPE *A, const int lda,
+    #ifdef ATL_FunkyInts
+       *lwork = F77lwork;
+       for (i=0; i < MN; i++) ipiv[i] = F77ipiv[i] + 1;
+-      free(F77ipiv);
+    #else
+       for (i=0; i < MN; i++) ipiv[i]++;
+    #endif
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 <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 +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..4929fcf
--- /dev/null
+++ b/SPECS/atlas.spec
@@ -0,0 +1,1137 @@
+%define enable_native_atlas 0
+
+Name:           atlas
+Version:        3.10.3
+%if "%{?enable_native_atlas}" != "0"
+%define dist .native
+%endif
+Release:        17%{?dist}
+Summary:        Automatically Tuned Linear Algebra Software
+
+License:        BSD
+URL:            http://math-atlas.sourceforge.net/
+Source0:        http://downloads.sourceforge.net/math-atlas/%{name}%{version}.tar.bz2
+Source1:        PPRO32.tgz
+Source2:        README.dist
+#archdefs taken from debian:
+Source3: 	POWER332.tar.bz2
+Source4: 	IBMz932.tar.bz2
+Source5: 	IBMz964.tar.bz2
+#upstream arm uses softfp abi, fedora arm uses hard
+Source6: 	ARMv732NEON.tar.bz2
+#again, taken from debian
+Source7: 	IBMz1264.tar.bz2
+Source8:	ARMa732.tar.bz2
+
+#Provided By IBM
+Source9: IBMz1364VXZ.tar.bz2
+Source10: IBMz1464VXZ2.tar.bz2
+Source11: IBMz1564VXZ2.tar.bz2
+
+# 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
+Patch1:		atlas-melf.patch
+Patch2:		atlas-throttling.patch
+
+#credits Lukas Slebodnik
+Patch3:		atlas-shared_libraries.patch
+
+Patch4:		atlas-genparse.patch
+
+# Unbundle LAPACK (BZ #1181369)
+Patch5:		atlas.3.10.1-unbundle.patch
+Patch6:	atlas-gcc10.patch
+
+
+#patches dealing with z{13,14,15}, provided by IBM
+Patch7: 0001-Avoid-c99-standard-compiler.patch
+Patch8: 0002-Fix-rpath-link-command-line-options.patch
+Patch9: 0003-Fix-SIMD-support-on-IBM-z13.patch
+Patch10: 0004-Read-L1-data-cache-size-from-sysconf-if-possible.patch
+Patch11: 0005-Optimizations-for-IBM-z13.patch
+Patch12: 0006-Add-IBM-z14-support.patch
+Patch13: 0007-Enable-cross-compile.patch
+Patch14: 0008-Add-IBM-z15-support.patch
+
+#Covscan
+Patch101:		atlas-getri.patch
+
+BuildRequires: make
+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.3-11
+Obsoletes:      atlas-z196 < 3.10.3-11
+%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
+Requires:       %{name} = %{version}-%{release}
+Obsoletes:	%name-header <= %version-%release
+Requires(posttrans):	/usr/sbin/alternatives
+Requires(postun):	/usr/sbin/alternatives
+
+%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
+
+%ifarch s390 s390x
+Obsoletes:      atlas-z10-devel < 3.10.3-11
+Obsoletes:      atlas-z196-devel < 3.10.3-11
+%endif
+
+%description devel
+This package contains headers for development with ATLAS
+(Automatically Tuned Linear Algebra Software).
+
+%package static
+Summary:        Static libraries for ATLAS
+Requires:       %{name}-devel = %{version}-%{release}
+Requires(posttrans):	/usr/sbin/alternatives
+Requires(postun):	/usr/sbin/alternatives
+
+%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
+
+%ifarch s390 s390x
+Obsoletes:      atlas-z10-static < 3.10.3-11
+Obsoletes:      atlas-z196-static  < 3.10.3-11
+%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
+
+%package corei2-static
+Summary:        ATLAS libraries for Corei2 (Ivy/Sandy bridge) CPUs
+
+%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
+
+%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
+Requires:       %{name}-corei2 = %{version}-%{release}
+Obsoletes:	%name-header <= %version-%release
+Requires(posttrans):	/usr/sbin/alternatives
+Requires(postun):	/usr/sbin/alternatives
+
+%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
+
+%endif
+
+%ifarch s390 s390x
+%define types base z14 z15
+
+%package z14
+Summary:        ATLAS libraries for z14
+Group:          System Environment/Libraries
+
+%description z14
+This package contains ATLAS (Automatically Tuned Linear Algebra Software)
+shared libraries compiled with optimizations for the z14 CPUs.
+
+%package z14-devel
+Summary:        Development libraries for ATLAS for z14
+Group:          Development/Libraries
+Requires:       %{name}-z14 = %{version}-%{release}
+Obsoletes:	%name-header <= %version-%release
+Requires(posttrans):	chkconfig
+Requires(postun):	chkconfig
+
+%description z14-devel
+This package contains shared and static versions of the ATLAS
+(Automatically Tuned Linear Algebra Software) libraries compiled with
+optimizations for the z14 CPUs.
+
+%package z14-static
+Summary:        Static libraries for ATLAS for z14
+Group:          Development/Libraries
+Requires:       %{name}-z14-devel = %{version}-%{release}
+Requires(posttrans):	chkconfig
+Requires(postun):	chkconfig
+
+%description z14-static
+This package contains the ATLAS (Automatically Tuned Linear Algebra
+Software) static libraries compiled with optimizations for the z14
+CPUs.
+
+
+%package z15
+Summary:        ATLAS libraries for z15
+Group:          System Environment/Libraries
+
+%description z15
+This package contains ATLAS (Automatically Tuned Linear Algebra Software)
+shared libraries compiled with optimizations for the z15 CPUs.
+
+%package z15-devel
+Summary:        Development libraries for ATLAS for z15
+Group:          Development/Libraries
+Requires:       %{name}-z15 = %{version}-%{release}
+Obsoletes:	%name-header <= %version-%release
+Requires(posttrans):	chkconfig
+Requires(postun):	chkconfig
+
+%description z15-devel
+This package contains shared and static versions of the ATLAS
+(Automatically Tuned Linear Algebra Software) libraries compiled with
+optimizations for the z15 CPUs.
+
+%package z15-static
+Summary:        Static libraries for ATLAS for z15
+Group:          Development/Libraries
+Requires:       %{name}-z15-devel = %{version}-%{release}
+Requires(posttrans):	chkconfig
+Requires(postun):	chkconfig
+
+%description z15-static
+This package contains the ATLAS (Automatically Tuned Linear Algebra
+Software) static libraries compiled with optimizations for the z15
+CPUs.
+%endif
+
+
+%ifarch ppc64
+%define types base power7 power8
+
+%package power8
+Summary:        ATLAS libraries for Power 8
+
+%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
+Requires:       %{name}-power8 = %{version}-%{release}
+Obsoletes:	%name-header <= %version-%release
+Requires(posttrans):	/usr/sbin/alternatives
+Requires(postun):	/usr/sbin/alternatives
+
+%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
+Requires:       %{name}-power8-devel = %{version}-%{release}
+Requires(posttrans):	/usr/sbin/alternatives
+Requires(postun):	/usr/sbin/alternatives
+
+%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
+
+%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
+Requires:       %{name}-power7 = %{version}-%{release}
+Obsoletes:	%name-header <= %version-%release
+Requires(posttrans):	/usr/sbin/alternatives
+Requires(postun):	/usr/sbin/alternatives
+
+%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
+Requires:       %{name}-power7-devel = %{version}-%{release}
+Requires(posttrans):	/usr/sbin/alternatives
+Requires(postun):	/usr/sbin/alternatives
+
+%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
+
+
+%patch1 -p1
+%patch2 -p1
+%patch3 -p2
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+
+%patch7 -p1
+%patch8 -p1
+%patch10 -p1
+
+%ifarch s390x s390
+%patch9 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%patch14 -p1
+%endif
+
+%patch101 -p1
+
+cp %{SOURCE1} CONFIG/ARCHS/
+cp %{SOURCE2} doc
+cp %{SOURCE3} CONFIG/ARCHS/
+cp %{SOURCE4} CONFIG/ARCHS/
+cp %{SOURCE5} CONFIG/ARCHS/
+cp %{SOURCE6} CONFIG/ARCHS/
+cp %{SOURCE7} CONFIG/ARCHS/
+cp %{SOURCE8} CONFIG/ARCHS/
+cp %{SOURCE9} CONFIG/ARCHS/
+cp %{SOURCE10} CONFIG/ARCHS/
+cp %{SOURCE11} CONFIG/ARCHS/
+
+%ifarch %{arm}
+sed -i -e 's,-mfloat-abi=softfp,-mfloat-abi=hard,' CONFIG/src/atlcomp.txt
+%endif
+
+# 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 IBMz12 -V 1"
+#%define base_options "-A IBMz13 -V 8 -Si archdef 2"
+%endif
+
+%ifarch x86_64
+%define flags %{nil}
+%define base_options "-A HAMMER -V 896"
+%endif
+
+%ifarch %ix86
+%define flags %{nil}
+%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" = "z14" ]; then
+			  thread_options="-t 4"
+			  arg_options="-A IBMz14 -V 4 -Si archdef 2"
+			  %define pr_z14 %(echo $((%{__isa_bits}+2)))
+		elif [ "$type" = "z15" ]; then
+			  thread_options="-t 4"
+			  arg_options="-A IBMz15 -V 4 -Si archdef 2"
+			  %define pr_z15 %(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 -F xc ' '  -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
+for type in %{types}; do
+	if [ "$type" = "z14" ] || [ "$type" = "z15" ]; then
+	    # skip the tests (may fail due to illegal instructions).
+		  echo "Skipping tests for the $type subpackage"
+	else
+	    pushd %{_arch}_${type}
+	    make check ptcheck
+	    popd
+  fi
+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}
+# No arch specific packages
+%endif
+
+%ifarch s390 s390x
+
+%post -n atlas-z14 -p /sbin/ldconfig
+
+%postun -n atlas-z14 -p /sbin/ldconfig
+
+%posttrans z14-devel
+/usr/sbin/alternatives	--install %{_includedir}/atlas atlas-inc 	\
+						    %{_includedir}/atlas-%{_arch}-z14  %{pr_z14}
+
+%postun z14-devel
+if [ $1 -ge 0 ] ; then
+		/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-z14
+fi
+
+%post -n atlas-z15 -p /sbin/ldconfig
+
+%postun -n atlas-z15 -p /sbin/ldconfig
+
+%posttrans z15-devel
+/usr/sbin/alternatives	--install %{_includedir}/atlas atlas-inc 	\
+					  %{_includedir}/atlas-%{_arch}-z15  %{pr_z15}
+
+%postun z15-devel
+if [ $1 -ge 0 ] ; then
+		/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-z15
+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 s390 s390x
+
+%files z14
+%doc doc/README.dist
+%dir %{_libdir}/atlas-z14
+%{_libdir}/atlas-z14/*.so.*
+%config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}-z14.conf
+
+%files z14-devel
+%doc doc
+%{_libdir}/atlas-z14/*.so
+%{_includedir}/atlas-%{_arch}-z14/
+%{_includedir}/*.h
+%ghost %{_includedir}/atlas
+
+%files z14-static
+%{_libdir}/atlas-z14/*.a
+
+
+%files z15
+%doc doc/README.dist
+%dir %{_libdir}/atlas-z15
+%{_libdir}/atlas-z15/*.so.*
+%config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}-z15.conf
+
+%files z15-devel
+%doc doc
+%{_libdir}/atlas-z15/*.so
+%{_includedir}/atlas-%{_arch}-z15/
+%{_includedir}/*.h
+%ghost %{_includedir}/atlas
+
+%files z15-static
+%{_libdir}/atlas-z15/*.a
+
+%endif
+
+
+#enable_native_atlas if
+%endif
+
+%changelog
+* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 3.10.3-17
+- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
+  Related: rhbz#1991688
+
+* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 3.10.3-16
+- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
+
+* Mon Feb 22 2021 Jakub Martisko <jamartis@redhat.com> - 3.10.3-15
+- Remove unused scriptlets
+
+* Mon Feb 22 2021 Jakub Martisko <jamartis@redhat.com> - 3.10.3-14
+- Fix the messed scriptlets
+Resolves: #1929845
+
+* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.10.3-13
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Thu Aug 27 2020 Jakub Martisko <jamartis@redhat.com> - 3.10.3.13
+- Sync with rhel 8.3 + cleanup
+- Add new subpackages - z{14,15}
+- Unlike in rhel8, the base subpackage still needs to be build for z12.
+- Covscan related bugfixes
+- Spec and git cleanup (remove unused patches/sources)
+
+* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.10.3-12
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Thu Feb 13 2020 Jakub Martisko <jamartis@redhat.com> - 3.10.3-11
+- Drop IBM z10 and z196 subpackages
+- s390 is now optimized for z12
+Related: #1780286
+
+* Mon Jan 27 2020 Jakub Martisko <jamartis@redhat.com> - 3.10.3-10
+- Fix compatibility with gcc 10
+- Sync compiler/linker flags with RHEL
+
+* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.10.3-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.10.3-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Sun Oct 14 2018 Peter Robinson <pbrobinson@fedoraproject.org> 3.10.3-7
+- Update requires for alternatives
+
+* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.10.3-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Wed Apr 11 2018 Jakub Martisko <jamartis@redhat.com> - 3.10.3-5
+- Pass RPM_LD_FLAGS to linker
+
+* Thu Mar 01 2018 Jakub Martisko <jamartis@redhat.com> - 3.10.3-4
+- Add gcc to buildrequires
+
+* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.10.3-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Tue Jan 30 2018 Björn Esser <besser82@fedoraproject.org> - 3.10.3-2
+- Rebuilt for GCC8
+
+* Thu Aug 17 2017 Jakub Martisko <jamartis@redhat.com> - 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 <spot@fedoraproject.org> - 3.10.2-20
+- rebuild again for fixed lapack
+
+* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3.10.2-12
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Sun Nov 29 2015 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 3.10.2-11
+- Rebuild for updated lapack
+
+* Thu Nov 26 2015 Than Ngo <than@redhat.com> 3.10.2-10
+- backport upstream patch for power8 support
+
+* Fri Nov 13 2015 Than Ngo <than@redhat.com> 3.10.2-9
+- add correct assembler option for ppc64
+
+* Wed Nov 04 2015 Than Ngo <than@redhat.com> - 3.10.2-8
+- add correct machine type for ppc64 -> fix build failure on ppc64
+
+* Wed Oct 28 2015 Susi Lehtola <jussilehtola@fedoraproject.org> - 3.10.2-7
+- Drop bundled(lapack) which was already fixed in atlas-3.10.1-18.
+
+* Thu Jul 09 2015 Than Ngo <than@redhat.com> 3.10.2-6
+- fix ppc64le patch
+
+* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.10.2-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Wed Jun 10 2015 Marcin Juszkiewicz <mjuszkiewicz@redhat.com> - 3.10.2-4
+- Refreshed AArch64 patch
+
+* Fri Jun 05 2015 Dan Horák <dan[at]danny.cz> - 3.10.2-3
+- drop upstreamed s390 patch
+
+* Wed May 20 2015 Frantisek Kluknavsky <fkluknav@redhat.com> - 3.10.2-2
+- include all single-threaded wrapper libraries in -static subpackage
+- bz#1222079
+
+* Thu May 14 2015 Orion Poplawski <orion@cora.nwra.com> - 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 <fkluknav@redhat.com> - 3.10.1-22
+- lapack bundled again, mark this.
+
+* Sat Feb 07 2015 Susi Lehtola <jussilehtola@fedoraproject.org> - 3.10.1-21
+- Devel packages don't need to require lapack-devel anymore.
+
+* Fri Jan 30 2015 Susi Lehtola <jussilehtola@fedoraproject.org> - 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 <fkluknav@redhat.com> - 3.10.1-19
+- updated chkconfig and dependencies of atlas-devel after unbundling
+
+* Fri Jan 23 2015 Frantisek Kluknavsky <fkluknav@redhat.com> - 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 <jcapik@redhat.com> - 3.10.1-17
+- patching for Power8 to pass performance tunings and tests on P8 builders
+
+* Fri Oct 24 2014 Orion Poplawski <orion@cora.nwra.com> - 3.10.1-16
+- Fix alternatives install
+
+* Thu Oct 23 2014 Frantisek Kluknavsky <fkluknav@redhat.com> - 3.10.1-15
+- added pkgconfig file
+
+* Fri Aug 15 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.10.1-14
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.10.1-13
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Mon Feb 24 2014 Peter Robinson <pbrobinson@fedoraproject.org> 3.10.1-12
+- Don't fail build on make check on aarch64 due to issues with tests
+
+* Sun Feb 16 2014 Marcin Juszkiewicz <mjuszkiewicz@redhat.com> - 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 <fkluknav@redhat.com> - 3.10.1-10
+- updated lapack to 3.5.0
+
+* Wed Nov 13 2013 Frantisek Kluknavsky <fkluknav@redhat.com> - 3.10.1-9
+- updated subpackage description
+
+* Tue Nov 05 2013 Frantisek Kluknavsky <fkluknav@redhat.com> - 3.10.1-8
+- patch for aarch64 from https://bugzilla.redhat.com/attachment.cgi?id=755555
+
+* Wed Oct 16 2013 Frantisek Kluknavsky <fkluknav@redhat.com> - 3.10.1-7
+- Provides: bundled(lapack)
+
+* Thu Oct 10 2013 Frantisek Kluknavsky <fkluknav@redhat.com> - 3.10.1-6
+- make check on arm enabled - seems to work
+
+* Wed Oct 2 2013 Orion Poplawski <orion@cora.nwra.com> - 3.10.1-5
+- Add -DATL_ARM_HARDFP=1 for arm build
+- Rework how arm flags are set
+
+* Mon Sep 30 2013 Frantisek Kluknavsky <fkluknav@redhat.com> - 3.10.1-4
+- disable tests on arm to allow update for x86
+
+* 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 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.