From f55d5f290e12a22eb42969fed8bda99879c195f6 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Nov 19 2015 15:46:32 +0000 Subject: import atlas-3.10.1-10.el7 --- diff --git a/SOURCES/atlas-aarch64port.patch b/SOURCES/atlas-aarch64port.patch new file mode 100644 index 0000000..0435239 --- /dev/null +++ b/SOURCES/atlas-aarch64port.patch @@ -0,0 +1,218 @@ +diff --git a/CONFIG/include/atlconf.h b/CONFIG/include/atlconf.h +index cdceda3..e6d71d3 100644 +--- a/CONFIG/include/atlconf.h ++++ b/CONFIG/include/atlconf.h +@@ -16,9 +16,9 @@ enum OSTYPE {OSOther=0, OSLinux, OSSunOS, OSSunOS4, OSOSF1, OSIRIX, OSAIX, + ((OS_) == OSWin64) ) + + enum ARCHFAM {AFOther=0, AFPPC, AFSPARC, AFALPHA, AFX86, AFIA64, AFMIPS, +- AFARM, AFS390}; ++ AFARM, AFS390, AFAARCH64}; + +-#define NMACH 47 ++#define NMACH 48 + static char *machnam[NMACH] = + {"UNKNOWN", "POWER3", "POWER4", "POWER5", "PPCG4", "PPCG5", + "POWER6", "POWER7", "IBMz9", "IBMz10", "IBMz196", +@@ -28,7 +28,7 @@ static char *machnam[NMACH] = + "Efficeon", "K7", "HAMMER", "AMD64K10h", "AMDDOZER", "UNKNOWNx86", + "IA64Itan", "IA64Itan2", + "USI", "USII", "USIII", "USIV", "UST2", "UnknownUS", +- "MIPSR1xK", "MIPSICE9", "ARMv7"}; ++ "MIPSR1xK", "MIPSICE9", "ARMv7", "AARCH64"}; + enum MACHTYPE {MACHOther, IbmPwr3, IbmPwr4, IbmPwr5, PPCG4, PPCG5, + IbmPwr6, IbmPwr7, + IbmZ9, IbmZ10, IbmZ196, /* s390(x) in Linux */ +@@ -41,7 +41,8 @@ enum MACHTYPE {MACHOther, IbmPwr3, IbmPwr4, IbmPwr5, PPCG4, PPCG5, + SunUSI, SunUSII, SunUSIII, SunUSIV, SunUST2, SunUSX, + MIPSR1xK, /* includes R10K, R12K, R14K, R16K */ + MIPSICE9, /* SiCortex ICE9 -- like MIPS5K */ +- ARMv7 /* includes Cortex A8, A9 */ ++ ARMv7, /* includes Cortex A8, A9 */ ++ AARCH64 + }; + #define MachIsX86(mach_) \ + ( (mach_) >= x86x87 && (mach_) <= x86X ) +@@ -62,6 +63,8 @@ enum MACHTYPE {MACHOther, IbmPwr3, IbmPwr4, IbmPwr5, PPCG4, PPCG5, + ( (mach_) == ARMv7 ) + #define MachIsS390(mach_) \ + ( (mach_) >= IbmZ9 && (mach_) <= IbmZ196 ) ++#define MachIsAARCH64(mach_) \ ++ ( (mach_) == AARCH64 ) + + + static char *f2c_namestr[5] = {"UNKNOWN","Add_", "Add__", "NoChange", "UpCase"}; +@@ -83,13 +86,13 @@ enum ISAEXT + {ISA_None=0, ISA_VSX, ISA_AV, ISA_AVXMAC, ISA_AVXFMA4, ISA_AVX, + ISA_SSE3, ISA_SSE2, ISA_SSE1, ISA_3DNow, ISA_NEON}; + +-#define NASMD 9 ++#define NASMD 10 + enum ASMDIA + {ASM_None=0, gas_x86_32, gas_x86_64, gas_sparc, gas_ppc, gas_parisc, +- gas_mips, gas_arm, gas_s390}; ++ gas_mips, gas_arm, gas_s390, gas_aarch64}; + static char *ASMNAM[NASMD] = + {"", "GAS_x8632", "GAS_x8664", "GAS_SPARC", "GAS_PPC", "GAS_PARISC", +- "GAS_MIPS", "GAS_ARM", "GAS_S390"}; ++ "GAS_MIPS", "GAS_ARM", "GAS_S390", "GAS_AARCH64"}; + + /* + * Used for archinfo probes (can pack in bitfield) +diff --git a/CONFIG/src/Makefile b/CONFIG/src/Makefile +index 8eb38f7..afad1bc 100644 +--- a/CONFIG/src/Makefile ++++ b/CONFIG/src/Makefile +@@ -260,6 +260,11 @@ IRun_BINDP : + redir=config0.out + - cat config0.out + ++IRun_GAS_AARCH64 : ++ $(CC) $(CCFLAGS) -o xprobe_gas_aarch64 $(SRCdir)/backend/probe_this_asm.c $(SRCdir)/backend/probe_gas_aarch64.S ++ $(MAKE) $(atlrun) atldir=$(mydir) exe=xprobe_gas_aarch64 args="$(args)" \ ++ redir=config0.out ++ - cat config0.out + IRun_GAS_S390 : + $(CC) $(CCFLAGS) -o xprobe_gas_s390 $(SRCdir)/backend/probe_this_asm.c $(SRCdir)/backend/probe_gas_s390.S + $(MAKE) $(atlrun) atldir=$(mydir) exe=xprobe_gas_s390 args="$(args)" \ +diff --git a/CONFIG/src/SpewMakeInc.c b/CONFIG/src/SpewMakeInc.c +index 65d68a1..f5eb467 100644 +--- a/CONFIG/src/SpewMakeInc.c ++++ b/CONFIG/src/SpewMakeInc.c +@@ -391,6 +391,8 @@ char *GetPtrbitsFlag(enum OSTYPE OS, enum MACHTYPE arch, int ptrbits, + + if (MachIsIA64(arch)) + return(sp); ++ if (MachIsAARCH64(arch)) ++ return(sp); + if (MachIsMIPS(arch)) + return((ptrbits == 64) ? "-mabi=64" : "-mabi=n32"); + if (MachIsS390(arch)) +diff --git a/CONFIG/src/atlcomp.txt b/CONFIG/src/atlcomp.txt +index 5bf32d9..5e0c538 100644 +--- a/CONFIG/src/atlcomp.txt ++++ b/CONFIG/src/atlcomp.txt +@@ -263,6 +263,17 @@ MACH=ARMv7 OS=ALL LVL=1000 COMPS=dmc,dkc + MACH=ARMv7 OS=ALL LVL=1000 COMPS=f77 + 'gfortran' '-mcpu=cortex-a8 -mfpu=vfpv3 -mfloat-abi=softfp -O' + # ++# AArch64 defaults ++# ++MACH=AARCH64 OS=ALL LVL=1000 COMPS=xcc ++ 'gcc' '-O2' ++MACH=AARCH64 OS=ALL LVL=1000 COMPS=smc,skc,gcc,icc ++ 'gcc' '-O2' ++MACH=AARCH64 OS=ALL LVL=1000 COMPS=dmc,dkc ++ 'gcc' '-O2' ++MACH=AARCH64 OS=ALL LVL=1000 COMPS=f77 ++ 'gfortran' '-O' ++# + # Generic defaults + # + MACH=ALL OS=ALL LVL=5 COMPS=icc,smc,dmc,skc,dkc,xcc,gcc +diff --git a/CONFIG/src/atlconf_misc.c b/CONFIG/src/atlconf_misc.c +index b669e8e..f7af4a8 100644 +--- a/CONFIG/src/atlconf_misc.c ++++ b/CONFIG/src/atlconf_misc.c +@@ -481,6 +481,7 @@ enum ARCHFAM ProbeArchFam(char *targ) + else if (strstr(res, "ia64")) fam = AFIA64; + else if (strstr(res, "mips")) fam = AFMIPS; + else if (strstr(res, "arm")) fam = AFARM; ++ else if (strstr(res, "aarch64")) fam = AFAARCH64; + else if (strstr(res, "s390")) fam = AFS390; + else if ( strstr(res, "i686") || strstr(res, "i586") || + strstr(res, "i486") || strstr(res, "i386") || +@@ -506,6 +507,7 @@ enum ARCHFAM ProbeArchFam(char *targ) + strstr(res, "x86_64") ) fam = AFX86; + else if (strstr(res, "mips")) fam = AFMIPS; + else if (strstr(res, "arm")) fam = AFARM; ++ else if (strstr(res, "aarch64")) fam = AFAARCH64; + else if (strstr(res, "s390")) fam = AFS390; + free(res); + } +diff --git a/CONFIG/src/backend/Make.ext b/CONFIG/src/backend/Make.ext +index 9f236f6..918a053 100644 +--- a/CONFIG/src/backend/Make.ext ++++ b/CONFIG/src/backend/Make.ext +@@ -57,6 +57,8 @@ probe_gas_arm.S : $(basf) + $(extC) -b $(basf) -o probe_gas_arm.S rout=probe_gas_arm.S + probe_gas_s390.S : $(basf) + $(extC) -b $(basf) -o probe_gas_s390.S rout=probe_gas_s390.S ++probe_gas_aarch64.S : $(basf) ++ $(extC) -b $(basf) -o probe_gas_aarch64.S rout=probe_gas_aarch64.S + probe_AVXMAC.S : $(basf) + $(extC) -b $(basf) -o probe_AVXMAC.S rout=probe_AVXMAC.S + probe_AVXFMA4.S : $(basf) +diff --git a/CONFIG/src/backend/archinfo_linux.c b/CONFIG/src/backend/archinfo_linux.c +index d3d3fd8..4c419a3 100644 +--- a/CONFIG/src/backend/archinfo_linux.c ++++ b/CONFIG/src/backend/archinfo_linux.c +@@ -248,6 +248,14 @@ enum MACHTYPE ProbeArch() + free(res); + } + break; ++ case AFAARCH64: ++ res = atlsys_1L(NULL, "fgrep 'Processor' /proc/cpuinfo", 0, 0); ++ if (res) ++ { ++ if (strstr(res, "AArch64")) mach = AARCH64; ++ free(res); ++ } ++ break; + default: + #if 0 + if (!CmndOneLine(NULL, "fgrep 'cpu family' /proc/cpuinfo", res)) +diff --git a/CONFIG/src/backend/probe_gas_aarch64.S b/CONFIG/src/backend/probe_gas_aarch64.S +new file mode 100644 +index 0000000..d4c3d68 +--- /dev/null ++++ b/CONFIG/src/backend/probe_gas_aarch64.S +@@ -0,0 +1,14 @@ ++#define ATL_GAS_AARCH64 ++#include "atlas_asm.h" ++# ++# Linux AArch64 assembler for: ++# int asm_probe(int i) ++# RETURNS: i*3 ++# ++.text ++.globl ATL_asmdecor(asm_probe) ++.type ATL_asmdecor(asm_probe), %function ++ATL_asmdecor(asm_probe): ++ add w0, w0, w0, LSL #1 ++ ret ++.size ATL_asmdecor(asm_probe),.-ATL_asmdecor(asm_probe) +diff --git a/CONFIG/src/probe_comp.c b/CONFIG/src/probe_comp.c +index 48f518d..3d5aa3b 100644 +--- a/CONFIG/src/probe_comp.c ++++ b/CONFIG/src/probe_comp.c +@@ -578,7 +578,7 @@ char *GetPtrbitsFlag(enum OSTYPE OS, enum MACHTYPE arch, int ptrbits, + char *sp = ""; + int i, j, k; + +- if (MachIsIA64(arch)) ++ if (MachIsIA64(arch) || MachIsAARCH64(arch)) + return(sp); + if (MachIsMIPS(arch)) + return((ptrbits == 64) ? "-mabi=64" : "-mabi=n32"); +diff --git a/include/atlas_genparse.h b/include/atlas_genparse.h +index 1955687..909a38e 100644 +--- a/include/atlas_genparse.h ++++ b/include/atlas_genparse.h +@@ -6,13 +6,13 @@ + #include + #include + #include +-#define NASMD 9 ++#define NASMD 10 + enum ASMDIA + {ASM_None=0, gas_x86_32, gas_x86_64, gas_sparc, gas_ppc, gas_parisc, +- gas_mips, gas_arm, gas_s390}; ++ gas_mips, gas_arm, gas_s390, gas_aarch64}; + static char *ASMNAM[NASMD] = + {"", "GAS_x8632", "GAS_x8664", "GAS_SPARC", "GAS_PPC", "GAS_PARISC", +- "GAS_MIPS", "GAS_ARM", "GAS_S390"}; ++ "GAS_MIPS", "GAS_ARM", "GAS_S390", "GAS_AARCH64"}; + /* + * Basic data structure for forming queues with some minimal info + */ diff --git a/SOURCES/atlas-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/getdoublearr.stripwhite.patch b/SOURCES/getdoublearr.stripwhite.patch new file mode 100644 index 0000000..e1dc84d --- /dev/null +++ b/SOURCES/getdoublearr.stripwhite.patch @@ -0,0 +1,50 @@ +Subject: getdoublearr.stripwhite +From: Michel Normand + +GetDoubleArr must only handle the comma delimited list at string head +and ignore anything after the first blank character. + +Signed-off-by: Michel Normand +--- + ATLAS/include/atlas_genparse.h | 16 ++++++++++++++-- + 1 file changed, 14 insertions(+), 2 deletions(-) + +Index: atlas/ATLAS/include/atlas_genparse.h +=================================================================== +--- atlas.orig/ATLAS/include/atlas_genparse.h ++++ atlas/ATLAS/include/atlas_genparse.h +@@ -149,13 +149,24 @@ static int asmNames2bitfield(char *str) + } + + /* procedure 7 */ +-static int GetDoubleArr(char *str, int N, double *d) ++static int GetDoubleArr(char *callerstr, int N, double *d) + /* + * Reads in a list with form "%le,%le...,%le"; N-length d recieves doubles. + * RETURNS: the number of doubles found, or N, whichever is less + */ + { +- int i=1; ++ int i; ++ char *dupstr = DupString(callerstr); ++ char *str = dupstr; ++ /* strip the string to end on first white space */ ++ for (i=0; dupstr[i]; i++) ++ { ++ if (isspace(dupstr[i])) { ++ dupstr[i] = '\0'; ++ break; ++ } ++ } ++ i = 1; + assert(sscanf(str, "%le", d) == 1); + while (i < N) + { +@@ -166,6 +177,7 @@ static int GetDoubleArr(char *str, int N + break; + i++; + } ++ free(dupstr); + return(i); + } + diff --git a/SOURCES/initialize_malloc_memory.invtrsm.wms.oct23.patch b/SOURCES/initialize_malloc_memory.invtrsm.wms.oct23.patch new file mode 100644 index 0000000..f57a9e4 --- /dev/null +++ b/SOURCES/initialize_malloc_memory.invtrsm.wms.oct23.patch @@ -0,0 +1,10 @@ +--- ./ATLAS.first/tune/blas/level3/invtrsm.c 2013-10-22 19:35:03.000000000 +0000 ++++ ./ATLAS/tune/blas/level3/invtrsm.c 2013-10-23 21:24:01.000000000 +0000 +@@ -525,6 +525,7 @@ + a = A = malloc(i * ATL_MulBySize(incA)); + if (A) + { ++ memset(A,0,i*ATL_MulBySize(incA)); /* wms (!!) malloc call above returns non-initialized memory. */ + if (Uplo == TestGE) + for (i=0; i < k; i++) + Mjoin(PATL,gegen)(N, N, A+i*incA, lda, N+lda); diff --git a/SOURCES/p8-mem-barrier.patch b/SOURCES/p8-mem-barrier.patch new file mode 100644 index 0000000..15d7b8a --- /dev/null +++ b/SOURCES/p8-mem-barrier.patch @@ -0,0 +1,12 @@ +diff -Naur ATLAS.orig/include/atlas_pca.h ATLAS/include/atlas_pca.h +--- ATLAS.orig/include/atlas_pca.h 2013-01-08 19:15:40.000000000 +0100 ++++ ATLAS/include/atlas_pca.h 2014-10-23 13:45:36.956698637 +0200 +@@ -26,7 +26,7 @@ + #endif + #elif defined(ATL_ARCH_POWER3) || defined(ATL_ARCH_POWER4) || \ + defined(ATL_ARCH_POWER5) || defined(ATL_ARCH_POWER6) || \ +- defined(ATL_ARCH_POWER7) ++ defined(ATL_ARCH_POWER7) || 1 + #ifdef __GNUC__ + #define ATL_membarrier __asm__ __volatile__ ("dcs") + /* #define ATL_USEPCA 1 */ diff --git a/SOURCES/ppc64le-abiv2.patch b/SOURCES/ppc64le-abiv2.patch new file mode 100644 index 0000000..556dd04 --- /dev/null +++ b/SOURCES/ppc64le-abiv2.patch @@ -0,0 +1,60 @@ +--- atlas/ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x80_ppc.c 2013-12-05 19:19:57.000000000 +0100 ++++ atlas/ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x80_ppc.c.new 2013-12-06 16:29:57.000000000 +0100 +@@ -170,13 +170,21 @@ void ATL_USERMM(const int M, const int N + const TYPE beta, TYPE *C, const int ldc) + (r10) 8(r1) + ******************************************************************************* +-64 bit ABIs: ++64 bit ABIv1s: + r3 r4 r5 r6/f1 + void ATL_USERMM(const int M, const int N, const int K, const TYPE alpha, + r7 r8 r9 r10 + const TYPE *A, const int lda, const TYPE *B, const int ldb, + f2 120(r1) 128(r1) + const TYPE beta, TYPE *C, const int ldc) ++ ++64 bit ABIv2s: ++ r3 r4 r5 r6/f1 ++void ATL_USERMM(const int M, const int N, const int K, const TYPE alpha, ++ r7 r8 r9 r10 ++ const TYPE *A, const int lda, const TYPE *B, const int ldb, ++ f2 104(r1) 112(r1) ++ const TYPE beta, TYPE *C, const int ldc) + #endif + #ifdef ATL_AS_AIX_PPC + .csect .text[PR] +@@ -202,7 +210,7 @@ Mjoin(.,ATL_USERMM): + .globl Mjoin(_,ATL_USERMM) + Mjoin(_,ATL_USERMM): + #else +- #if defined(ATL_USE64BITS) ++ #if defined(ATL_USE64BITS) && _CALL_ELF != 2 + /* + * Official Program Descripter section, seg fault w/o it on Linux/PPC64 + */ +@@ -217,6 +225,7 @@ ATL_USERMM: + .globl Mjoin(.,ATL_USERMM) + Mjoin(.,ATL_USERMM): + #else ++/* ppc64 have no longer function descriptors in ABIv2 */ + .globl ATL_USERMM + ATL_USERMM: + #endif +@@ -257,9 +266,17 @@ ATL_USERMM: + #endif + #endif + ++ + #if defined (ATL_USE64BITS) ++#if _CALL_ELF == 2 ++/* ABIv2 */ ++ ld pC0, 104(r1) ++ ld incCn, 112(r1) ++#else ++/* ABIv1 */ + ld pC0, 120(r1) + ld incCn, 128(r1) ++#endif + #elif defined(ATL_AS_OSX_PPC) || defined(ATL_AS_AIX_PPC) + lwz pC0, 68(r1) + lwz incCn, 72(r1) diff --git a/SOURCES/ppc64le-remove-vsx.patch b/SOURCES/ppc64le-remove-vsx.patch new file mode 100644 index 0000000..a79bea6 --- /dev/null +++ b/SOURCES/ppc64le-remove-vsx.patch @@ -0,0 +1,39 @@ +Subject: ppc64le remove vsx +From: Michel Normand + +temporarily remove the vsx related flags +as long as not supported for ppc64le +Note that also force as power4 + +Signed-off-by: Michel Normand +Index: atlas/ATLAS/CONFIG/src/atlcomp.txt +=================================================================== +--- atlas.orig/ATLAS/CONFIG/src/atlcomp.txt ++++ atlas/ATLAS/CONFIG/src/atlcomp.txt +@@ -187,9 +187,9 @@ MACH=PPCG5 OS=ALL LVL=1000 COMPS=dmc,icc + MACH=PPCG5 OS=ALL LVL=1000 COMPS=skc + 'gcc' '-mpowerpc64 -maltivec -mabi=altivec -mcpu=970 -mtune=970 -O2 -mvrsave' + MACH=POWER7 OS=ALL LVL=1010 COMPS=icc,smc,dmc,skc,dkc,xcc,gcc +- 'gcc' '-O2 -mvsx -mcpu=power7 -mtune=power7 -m64 -mvrsave -funroll-all-loops' ++ 'gcc' '-O2 -m64 -mvrsave -funroll-all-loops' + MACH=POWER7 OS=ALL LVL=1010 COMPS=f77 +- 'gfortran' '-O2 -mvsx -mcpu=power7 -mtune=power7 -m64 -mvrsave -funroll-all-loops' ++ 'gfortran' '-O2 -m64 -mvrsave -funroll-all-loops' + MACH=POWER6 OS=ALL LVL=1010 COMPS=icc,smc,dmc,skc,dkc,xcc,gcc + 'gcc' '-mcpu=power6 -mtune=power6 -maltivec -O3 -fno-schedule-insns -fschedule-insns2 -minsert-sched-nops=2' + MACH=POWER5 OS=ALL LVL=1010 COMPS=icc,smc,dmc,skc,dkc,xcc,gcc +Index: atlas/ATLAS/CONFIG/src/probe_comp.c +=================================================================== +--- atlas.orig/ATLAS/CONFIG/src/probe_comp.c ++++ atlas/ATLAS/CONFIG/src/probe_comp.c +@@ -446,8 +446,8 @@ COMPNODE **GetDefaultComps(enum OSTYPE O + + if ((vecexts & (1< + +try to bypass error while building ppc64le +"make[2]: xlf: Command not found" + +Signed-off-by: Michel Normand +--- + ATLAS/CONFIG/src/atlcomp.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: atlas/ATLAS/CONFIG/src/atlcomp.txt +=================================================================== +--- atlas.orig/ATLAS/CONFIG/src/atlcomp.txt ++++ atlas/ATLAS/CONFIG/src/atlcomp.txt +@@ -199,7 +199,7 @@ MACH=POWER6 OS=ALL LVL=1010 COMPS=f77 + MACH=POWER5 OS=ALL LVL=1010 COMPS=f77 + 'gfortran' '-mcpu=power5 -mtune=power5 -O3 -fno-schedule-insns -fno-rerun-loop-opt' + MACH=POWER7 OS=ALL LVL=1010 COMPS=f77 +- 'xlf' '-qtune=pwr7 -qarch=pwr7 -O3 -qmaxmem=-1 -qfloat=hsflt' ++ 'gfortran' '-O2 -m64 -mvrsave -funroll-all-loops' + MACH=POWER5 OS=ALL LVL=1010 COMPS=f77 + 'xlf' '-qtune=pwr5 -qarch=pwr5 -O3 -qmaxmem=-1 -qfloat=hsflt' + MACH=POWER4 OS=ALL LVL=1010 COMPS=icc,dmc,smc,dkc,skc,xcc,gcc diff --git a/SPECS/atlas.spec b/SPECS/atlas.spec index 9a9b5ce..6a352d4 100644 --- a/SPECS/atlas.spec +++ b/SPECS/atlas.spec @@ -5,7 +5,7 @@ Version: 3.10.1 %if "%{?enable_native_atlas}" != "0" %define dist .native %endif -Release: 7%{?dist} +Release: 10%{?dist} Summary: Automatically Tuned Linear Algebra Software Group: System Environment/Libraries @@ -41,6 +41,17 @@ Patch5: atlas-shared_libraries.patch Patch6: atlas-affinity.patch +Patch7: atlas-aarch64port.patch +Patch8: atlas-genparse.patch + +# ppc64le patches +Patch95: initialize_malloc_memory.invtrsm.wms.oct23.patch +Patch96: xlf.command.not.found.patch +Patch98: getdoublearr.stripwhite.patch +Patch99: ppc64le-remove-vsx.patch +Patch100: ppc64le-abiv2.patch +Patch110: p8-mem-barrier.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: gcc-gfortran @@ -314,6 +325,10 @@ ix86 architecture. %patch6 -p1 -b .affinity %endif #%patch6 -p1 -b .m32 +%ifarch aarch64 +%patch7 -p1 -b .aarch64 +%endif +%patch8 -p1 -b .genparse cp %{SOURCE1} CONFIG/ARCHS/ #cp %{SOURCE2} CONFIG/ARCHS/ cp %{SOURCE3} doc @@ -325,6 +340,15 @@ cp %{SOURCE14} CONFIG/ARCHS/ #cp %{SOURCE8} CONFIG/ARCHS/ #cp %{SOURCE9} CONFIG/ARCHS/ +%ifarch ppc64le +%patch99 -p2 +%patch98 -p2 +%patch96 -p2 +%patch95 -p2 +%patch100 -p2 +%patch110 -p1 +%endif + %build for type in %{types}; do @@ -419,6 +443,14 @@ for type in %{types}; do sed -i 's#-m64#-m32#g' Make.inc %endif +%ifarch ppc64le + sed -i 's#-mvsx##g' Make.inc + sed -i 's#-DATL_VSX##g' Make.inc + sed -i 's#-DATL_AltiVec##g' Make.inc + sed -i 's#-maltivec##g' Make.inc + sed -i 's#ARCH =.*#ARCH = POWER464#' Make.inc +%endif + %endif make build cd lib @@ -456,7 +488,7 @@ mkdir -p %{buildroot}%{_includedir}/atlas %check -%ifnarch s390 +%ifnarch s390 aarch64 for type in %{types}; do pushd %{_arch}_${type} make check ptcheck @@ -753,6 +785,18 @@ fi %endif %changelog +* Thu Oct 23 2014 Jaromir Capik - 3.10.1-10 +- patching for Power8 to pass performance tunings and tests on P8 builders +- re-enabling tests on ppc64le +- Resolves: rhbz#1125475 + +* Sun Sep 07 2014 Frantisek Kluknavsky - 3.10.1-9 +- ppcle patches (conflicting patches modified) +- tests on ppcle disabled to shorten build time and fit into 24 hour limit +- resolves bug 1125475 +- aarch64 patches +- Resolves: rhbz#1061956 + * Fri Feb 28 2014 Frantisek Kluknavsky - 3.10.1-7 - change x86_64 archdef to P4, prefetch instruction from hammer is illegal on some pentium 4 - add -fstack-protector-strong to flags @@ -762,6 +806,12 @@ fi - use upstream archdef for s390x 64-bit - Resolves: rhbz#804763 +* Wed Feb 5 2014 Brendan Conoboy - 3.10.1-5.2 +- Temporarily make %check failures non-fatal. + +* Wed Feb 5 2014 Brendan Conoboy - 3.10.1-5.1 +- Add Mark Salter's initial aarch64 port. + * Fri Jan 24 2014 Daniel Mach - 3.10.1-5 - Mass rebuild 2014-01-24