import atlas-3.10.3-6.el8

This commit is contained in:
CentOS Sources 2019-05-07 06:03:47 -04:00 committed by Andrew Lukoshko
commit c763dcaad6
11 changed files with 1576 additions and 0 deletions

8
.atlas.metadata Normal file
View File

@ -0,0 +1,8 @@
0e11ec19a521973eaa551954debd112c21479e9c SOURCES/ARMa732.tar.bz2
9398518fe55b4a544278237bc639656e04543c50 SOURCES/ARMv732NEON.tar.bz2
d2f7a62aacdc5091aaa673a311a23f521e5c6486 SOURCES/IBMz1264.tar.bz2
b3ee9bca1510b11c6aa671ba5ba7dff8918ce0cf SOURCES/IBMz932.tar.bz2
43f8d8eaf8cc62bc4665df3550b77e95f3dced22 SOURCES/IBMz964.tar.bz2
c47ac6f00d7bf4ab882e71fa1ab894cc551c77b7 SOURCES/POWER332.tar.bz2
85c00d3190abbe250d46472824b17d9164e3dfc2 SOURCES/PPRO32.tgz
337eef1167030a9440ea645ce0037abfd4b0be4e SOURCES/atlas3.10.3.tar.bz2

8
.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
SOURCES/ARMa732.tar.bz2
SOURCES/ARMv732NEON.tar.bz2
SOURCES/IBMz1264.tar.bz2
SOURCES/IBMz932.tar.bz2
SOURCES/IBMz964.tar.bz2
SOURCES/POWER332.tar.bz2
SOURCES/PPRO32.tgz
SOURCES/atlas3.10.3.tar.bz2

47
SOURCES/README.dist Normal file
View File

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

View File

@ -0,0 +1,219 @@
Author: Mark Salter <msalter@redhat.com>
Index: ATLAS/CONFIG/include/atlconf.h
===================================================================
--- ATLAS.orig/CONFIG/include/atlconf.h
+++ ATLAS/CONFIG/include/atlconf.h
@@ -16,9 +16,9 @@ enum OSTYPE {OSOther=0, OSLinux, OSSunOS
((OS_) == OSWin64) )
enum ARCHFAM {AFOther=0, AFPPC, AFSPARC, AFALPHA, AFX86, AFIA64, AFMIPS,
- AFARM, AFS390};
+ AFARM, AFS390, AFAARCH64};
-#define NMACH 52
+#define NMACH 53
static char *machnam[NMACH] =
{"UNKNOWN", "POWER3", "POWER4", "POWER5", "PPCG4", "PPCG5",
"POWER6", "POWER7", "POWERe6500", "IBMz9", "IBMz10", "IBMz196",
@@ -29,7 +29,7 @@ static char *machnam[NMACH] =
"Efficeon", "K7", "HAMMER", "AMD64K10h", "AMDLLANO", "AMDDOZER","AMDDRIVER",
"UNKNOWNx86", "IA64Itan", "IA64Itan2",
"USI", "USII", "USIII", "USIV", "UST1", "UST2", "UnknownUS",
- "MIPSR1xK", "MIPSICE9", "ARMv7"};
+ "MIPSR1xK", "MIPSICE9", "ARMv7", "AARCH64"};
enum MACHTYPE {MACHOther, IbmPwr3, IbmPwr4, IbmPwr5, PPCG4, PPCG5,
IbmPwr6, IbmPwr7, Pwre6500,
IbmZ9, IbmZ10, IbmZ196, /* s390(x) in Linux */
@@ -42,7 +42,8 @@ enum MACHTYPE {MACHOther, IbmPwr3, IbmPw
SunUSI, SunUSII, SunUSIII, SunUSIV, SunUST1, SunUST2, SunUSX,
MIPSR1xK, /* includes R10K, R12K, R14K, R16K */
MIPSICE9, /* SiCortex ICE9 -- like MIPS5K */
- ARMv7 /* includes Cortex A8, A9 */
+ ARMv7, /* includes Cortex A8, A9 */
+ AARCH64
};
#define MachIsX86(mach_) \
( (mach_) >= x86x87 && (mach_) <= x86X )
@@ -63,6 +64,8 @@ enum MACHTYPE {MACHOther, IbmPwr3, IbmPw
( (mach_) == ARMv7 )
#define MachIsS390(mach_) \
( (mach_) >= IbmZ9 && (mach_) <= IbmZ196 )
+#define MachIsAARCH64(mach_) \
+ ( (mach_) == AARCH64 )
static char *f2c_namestr[5] = {"UNKNOWN","Add_", "Add__", "NoChange", "UpCase"};
@@ -84,13 +87,13 @@ enum ISAEXT
{ISA_None=0, ISA_VSX, ISA_AV, ISA_AVXMAC, ISA_AVXFMA4, ISA_AVX,
ISA_SSE3, ISA_SSE2, ISA_SSE1, ISA_3DNow, ISA_NEON};
-#define NASMD 9
+#define NASMD 10
enum ASMDIA
{ASM_None=0, gas_x86_32, gas_x86_64, gas_sparc, gas_ppc, gas_parisc,
- gas_mips, gas_arm, gas_s390};
+ gas_mips, gas_arm, gas_s390, gas_aarch64};
static char *ASMNAM[NASMD] =
{"", "GAS_x8632", "GAS_x8664", "GAS_SPARC", "GAS_PPC", "GAS_PARISC",
- "GAS_MIPS", "GAS_ARM", "GAS_S390"};
+ "GAS_MIPS", "GAS_ARM", "GAS_S390", "GAS_AARCH64"};
/*
* Used for archinfo probes (can pack in bitfield)
Index: ATLAS/CONFIG/src/Makefile
===================================================================
--- ATLAS.orig/CONFIG/src/Makefile
+++ ATLAS/CONFIG/src/Makefile
@@ -260,6 +260,11 @@ IRun_BINDP :
redir=config0.out
- cat config0.out
+IRun_GAS_AARCH64 :
+ $(CC) $(CCFLAGS) -o xprobe_gas_aarch64 $(SRCdir)/backend/probe_this_asm.c $(SRCdir)/backend/probe_gas_aarch64.S
+ $(MAKE) $(atlrun) atldir=$(mydir) exe=xprobe_gas_aarch64 args="$(args)" \
+ redir=config0.out
+ - cat config0.out
IRun_GAS_S390 :
$(CC) $(CCFLAGS) -o xprobe_gas_s390 $(SRCdir)/backend/probe_this_asm.c $(SRCdir)/backend/probe_gas_s390.S
$(MAKE) $(atlrun) atldir=$(mydir) exe=xprobe_gas_s390 args="$(args)" \
Index: ATLAS/CONFIG/src/SpewMakeInc.c
===================================================================
--- ATLAS.orig/CONFIG/src/SpewMakeInc.c
+++ ATLAS/CONFIG/src/SpewMakeInc.c
@@ -391,6 +391,8 @@ char *GetPtrbitsFlag(enum OSTYPE OS, enu
if (MachIsIA64(arch))
return(sp);
+ if (MachIsAARCH64(arch))
+ return(sp);
if (MachIsMIPS(arch))
return((ptrbits == 64) ? "-mabi=64" : "-mabi=n32");
if (MachIsS390(arch))
Index: ATLAS/CONFIG/src/atlcomp.txt
===================================================================
--- ATLAS.orig/CONFIG/src/atlcomp.txt
+++ ATLAS/CONFIG/src/atlcomp.txt
@@ -267,6 +267,17 @@ MACH=ARMv7 OS=ALL LVL=1000 COMPS=dmc,dkc
MACH=ARMv7 OS=ALL LVL=1000 COMPS=f77
'gfortran' '-mcpu=cortex-a8 -mfpu=vfpv3 -mfloat-abi=softfp -O'
#
+# AArch64 defaults
+#
+MACH=AARCH64 OS=ALL LVL=1000 COMPS=xcc
+ 'gcc' '-O2'
+MACH=AARCH64 OS=ALL LVL=1000 COMPS=smc,skc,gcc,icc
+ 'gcc' '-O2'
+MACH=AARCH64 OS=ALL LVL=1000 COMPS=dmc,dkc
+ 'gcc' '-O2'
+MACH=AARCH64 OS=ALL LVL=1000 COMPS=f77
+ 'gfortran' '-O'
+#
# Generic defaults
#
MACH=ALL OS=ALL LVL=5 COMPS=icc,smc,dmc,skc,dkc,xcc,gcc
Index: ATLAS/CONFIG/src/atlconf_misc.c
===================================================================
--- ATLAS.orig/CONFIG/src/atlconf_misc.c
+++ ATLAS/CONFIG/src/atlconf_misc.c
@@ -563,6 +563,7 @@ enum ARCHFAM ProbeArchFam(char *targ)
else if (strstr(res, "ia64")) fam = AFIA64;
else if (strstr(res, "mips")) fam = AFMIPS;
else if (strstr(res, "arm")) fam = AFARM;
+ else if (strstr(res, "aarch64")) fam = AFAARCH64;
else if (strstr(res, "s390")) fam = AFS390;
else if ( strstr(res, "i686") || strstr(res, "i586") ||
strstr(res, "i486") || strstr(res, "i386") ||
@@ -588,6 +589,7 @@ enum ARCHFAM ProbeArchFam(char *targ)
strstr(res, "x86_64") ) fam = AFX86;
else if (strstr(res, "mips")) fam = AFMIPS;
else if (strstr(res, "arm")) fam = AFARM;
+ else if (strstr(res, "aarch64")) fam = AFAARCH64;
else if (strstr(res, "s390")) fam = AFS390;
free(res);
}
Index: ATLAS/CONFIG/src/backend/Make.ext
===================================================================
--- ATLAS.orig/CONFIG/src/backend/Make.ext
+++ ATLAS/CONFIG/src/backend/Make.ext
@@ -57,6 +57,8 @@ probe_gas_arm.S : $(basf)
$(extC) -b $(basf) -o probe_gas_arm.S rout=probe_gas_arm.S
probe_gas_s390.S : $(basf)
$(extC) -b $(basf) -o probe_gas_s390.S rout=probe_gas_s390.S
+probe_gas_aarch64.S : $(basf)
+ $(extC) -b $(basf) -o probe_gas_aarch64.S rout=probe_gas_aarch64.S
probe_AVXMAC.S : $(basf)
$(extC) -b $(basf) -o probe_AVXMAC.S rout=probe_AVXMAC.S
probe_AVXFMA4.S : $(basf)
Index: ATLAS/CONFIG/src/backend/archinfo_linux.c
===================================================================
--- ATLAS.orig/CONFIG/src/backend/archinfo_linux.c
+++ ATLAS/CONFIG/src/backend/archinfo_linux.c
@@ -267,6 +267,14 @@ enum MACHTYPE ProbeArch()
free(res);
}
break;
+ case AFAARCH64:
+ res = atlsys_1L(NULL, "fgrep 'Processor' /proc/cpuinfo", 0, 0);
+ if (res)
+ {
+ if (strstr(res, "AArch64")) mach = AARCH64;
+ free(res);
+ }
+ break;
default:
#if 0
if (!CmndOneLine(NULL, "fgrep 'cpu family' /proc/cpuinfo", res))
Index: ATLAS/CONFIG/src/backend/probe_gas_aarch64.S
===================================================================
--- /dev/null
+++ ATLAS/CONFIG/src/backend/probe_gas_aarch64.S
@@ -0,0 +1,14 @@
+#define ATL_GAS_AARCH64
+#include "atlas_asm.h"
+#
+# Linux AArch64 assembler for:
+# int asm_probe(int i)
+# RETURNS: i*3
+#
+.text
+.globl ATL_asmdecor(asm_probe)
+.type ATL_asmdecor(asm_probe), %function
+ATL_asmdecor(asm_probe):
+ add w0, w0, w0, LSL #1
+ ret
+.size ATL_asmdecor(asm_probe),.-ATL_asmdecor(asm_probe)
Index: ATLAS/CONFIG/src/probe_comp.c
===================================================================
--- ATLAS.orig/CONFIG/src/probe_comp.c
+++ ATLAS/CONFIG/src/probe_comp.c
@@ -582,7 +582,7 @@ char *GetPtrbitsFlag(enum OSTYPE OS, enu
char *sp = "";
int i, j, k;
- if (MachIsIA64(arch))
+ if (MachIsIA64(arch) || MachIsAARCH64(arch))
return(sp);
if (MachIsMIPS(arch))
return((ptrbits == 64) ? "-mabi=64" : "-mabi=n32");
Index: ATLAS/include/atlas_genparse.h
===================================================================
--- ATLAS.orig/include/atlas_genparse.h
+++ ATLAS/include/atlas_genparse.h
@@ -6,13 +6,13 @@
#include <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
*/

View File

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

View File

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

16
SOURCES/atlas-melf.patch Normal file
View File

@ -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");
}

View File

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

View File

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

View File

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

1145
SPECS/atlas.spec Normal file

File diff suppressed because it is too large Load Diff