rebuilt with liblapack-3.4.2-5mamba implementing extended precision routines (xblas) [release 3.8.4-3mamba;Mon Aug 26 2013]
This commit is contained in:
parent
9fbcde0db9
commit
4f4f019703
32
ATLAS-README
Normal file
32
ATLAS-README
Normal file
@ -0,0 +1,32 @@
|
||||
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 openmamba requires some compromises.
|
||||
Firstly, a binary ATLAS package must perform reasonably well on the
|
||||
entire range of hardware on which it could potentially be installed.
|
||||
Optimizing ATLAS for the most modern hardware can result in
|
||||
significant performance penalties for users using the same package on
|
||||
older hardware. Second, building from the same source package must
|
||||
result in identical binaries for any computer of a particular
|
||||
architecture. This is because the binaries installed on a user's
|
||||
computer are built on a computer in the openmamba Extras build system,
|
||||
which will have hardware different from the end user's hardware, and
|
||||
quite possibly different from other available hardware in the build
|
||||
system.
|
||||
|
||||
For i386 systems, 3 ATLAS subpackages are built for SSE1, SSE2, and SSE3 ix86
|
||||
extensions, using architectural defaults obtained from PIII, Pentium 4 with
|
||||
SSE2 extension and PENTIUM 4 with SSE3 extensions respectively.
|
||||
|
||||
This package is designed to build RPMs that are identical regardless
|
||||
of where they are compiled and that provide reasonable performance on
|
||||
a wide range of hardware. 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 libatlas-@VER_REL@.src.rpm
|
||||
|
||||
This will cause the ATLAS build to use the achitectural default most
|
||||
appropriate for the system on which the package is to be built.
|
@ -1,2 +1,4 @@
|
||||
# libatlas
|
||||
|
||||
The ATLAS (Automatically Tuned Linear Algebra Software) project is an ongoing research effort focusing on applying empirical techniques in order to provide portable performance. At present, it provides C and Fortran77 interfaces to a portably efficient BLAS implementation, as well as a few routines from LAPACK.
|
||||
|
||||
|
375
atlas-3.8.4-arm.patch
Normal file
375
atlas-3.8.4-arm.patch
Normal file
@ -0,0 +1,375 @@
|
||||
diff -ru ATLAS/CONFIG/include/atlconf.h ATLAS-3.8.4-arm/CONFIG/include/atlconf.h
|
||||
--- ATLAS/CONFIG/include/atlconf.h 2011-05-14 19:33:24.000000000 +0200
|
||||
+++ ATLAS-3.8.4-arm/CONFIG/include/atlconf.h 2011-05-16 13:50:44.000000000 +0200
|
||||
@@ -14,9 +14,9 @@
|
||||
OSWin9x, OSWinNT, OSHPUX, OSFreeBSD, OSOSX};
|
||||
#define OSIsWin(OS_) (((OS_) == OSWinNT) || ((OS_) == OSWin9x))
|
||||
|
||||
-enum ARCHFAM {AFOther=0, AFPPC, AFSPARC, AFALPHA, AFX86, AFIA64, AFMIPS};
|
||||
+enum ARCHFAM {AFOther=0, AFPPC, AFSPARC, AFALPHA, AFX86, AFIA64, AFMIPS, AFARM};
|
||||
|
||||
-#define NMACH 37
|
||||
+#define NMACH 39
|
||||
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", "ARMv7VFP", "ARMv7VFPNEON"};
|
||||
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 */
|
||||
+ ARMv7VFP, ARMv7VFPNEON
|
||||
};
|
||||
#define MachIsX86(mach_) \
|
||||
( (mach_) >= IntP5 && (mach_) <= x86X )
|
||||
@@ -51,6 +52,8 @@
|
||||
#endif
|
||||
#define MachIsPPC(mach_) \
|
||||
( (mach_) >= PPCG4 && (mach_) <= PPCG5 )
|
||||
+#define MachIsARM(mach_) \
|
||||
+ ( (mach_) >= ARMv7VFP && (mach_) <= ARMv7VFPNEON )
|
||||
|
||||
static char *f2c_namestr[5] = {"UNKNOWN","Add_", "Add__", "NoChange", "UpCase"};
|
||||
static char *f2c_intstr[5] =
|
||||
@@ -63,18 +66,18 @@
|
||||
enum F2CINT {f2c_IntErr=0, FintCint, FintClong, FintClonglong, FintCshort};
|
||||
enum F2CSTRING {f2c_StrErr=0, fstrSun, fstrCray, fstrStructVal, fstrStructPtr};
|
||||
|
||||
-#define NISA 6
|
||||
+#define NISA 7
|
||||
static char *ISAXNAM[NISA] =
|
||||
- {"", "AltiVec", "SSE3", "SSE2", "SSE1", "3DNow"};
|
||||
-enum ISAEXT {ISA_None=0, ISA_AV, ISA_SSE3, ISA_SSE2, ISA_SSE1, ISA_3DNow};
|
||||
+ {"", "AltiVec", "SSE3", "SSE2", "SSE1", "3DNow", "NEON"};
|
||||
+enum ISAEXT {ISA_None=0, ISA_AV, ISA_SSE3, ISA_SSE2, ISA_SSE1, ISA_3DNow, ISA_NEON};
|
||||
|
||||
-#define NASMD 7
|
||||
+#define NASMD 8
|
||||
enum ASMDIA
|
||||
{ASM_None=0, gas_x86_32, gas_x86_64, gas_sparc, gas_ppc, gas_parisc,
|
||||
- gas_mips};
|
||||
+ gas_mips, gas_arm};
|
||||
static char *ASMNAM[NASMD] =
|
||||
{"", "GAS_x8632", "GAS_x8664", "GAS_SPARC", "GAS_PPC", "GAS_PARISC",
|
||||
- "GAS_MIPS"};
|
||||
+ "GAS_MIPS", "GAS_ARM"};
|
||||
|
||||
|
||||
/*
|
||||
diff -ru ATLAS/CONFIG/src/Makefile ATLAS-3.8.4-arm/CONFIG/src/Makefile
|
||||
--- ATLAS/CONFIG/src/Makefile 2011-05-14 19:33:24.000000000 +0200
|
||||
+++ ATLAS-3.8.4-arm/CONFIG/src/Makefile 2011-04-20 16:43:26.000000000 +0200
|
||||
@@ -151,6 +151,11 @@
|
||||
$(MAKE) $(atlrun) atldir=$(mydir) exe=xprobe_sse3 args="$(args)" \
|
||||
redir=config0.out
|
||||
- cat config0.out
|
||||
+IRun_NEON :
|
||||
+ $(CC) $(CCFLAGS) -mfpu=neon -o xprobe_neon $(SRCdir)/backend/probe_svec.c $(SRCdir)/backend/probe_NEON.S
|
||||
+ $(MAKE) $(atlrun) atldir=$(mydir) exe=xprobe_neon args="$(args)" \
|
||||
+ redir=config0.out
|
||||
+ - cat config0.out
|
||||
|
||||
IRun_GAS_SPARC :
|
||||
$(CC) $(CCFLAGS) -o xprobe_gas_sparc $(SRCdir)/backend/probe_this_asm.c $(SRCdir)/backend/probe_gas_sparc.S
|
||||
@@ -177,6 +182,11 @@
|
||||
$(MAKE) $(atlrun) atldir=$(mydir) exe=xprobe_gas_x8632 args="$(args)" \
|
||||
redir=config0.out
|
||||
- cat config0.out
|
||||
+IRun_GAS_ARM :
|
||||
+ $(CC) $(CCFLAGS) -o xprobe_gas_arm $(SRCdir)/backend/probe_this_asm.c $(SRCdir)/backend/probe_gas_arm.S
|
||||
+ $(MAKE) $(atlrun) atldir=$(mydir) exe=xprobe_gas_arm args="$(args)" \
|
||||
+ redir=config0.out
|
||||
+ - cat config0.out
|
||||
|
||||
IRunC2C :
|
||||
- rm -f config0.out xc2c c2cslave.o
|
||||
diff -ru ATLAS/CONFIG/src/atlcomp.txt ATLAS-3.8.4-arm/CONFIG/src/atlcomp.txt
|
||||
--- ATLAS/CONFIG/src/atlcomp.txt 2011-05-14 19:33:24.000000000 +0200
|
||||
+++ ATLAS-3.8.4-arm/CONFIG/src/atlcomp.txt 2012-05-16 19:47:42.000000000 +0200
|
||||
@@ -164,6 +164,19 @@
|
||||
MACH=P4,PM OS=WinNT LVL=0 COMPS=icc,dmc,smc,dkc,skc,xcc
|
||||
'icl' '-QxN -O3 -Qprec -fp:extended -fp:except -nologo -Oy'
|
||||
#
|
||||
+# ARM defaults
|
||||
+#
|
||||
+MACH=ARMv7VFP,ARMv7VFPNEON OS=ALL LVL=1000 COMPS=icc,xcc
|
||||
+ 'gcc' '-march=armv7-a -O1'
|
||||
+MACH=ARMv7VFPNEON OS=ALL LVL=1000 COMPS=smc,skc
|
||||
+ 'gcc' '-march=armv7-a -mfpu=neon -ffast-math -O3 -fschedule-insns -fschedule-insns2 -fprefetch-loop-arrays'
|
||||
+MACH=ARMv7VFP OS=ALL LVL=1000 COMPS=smc,skc
|
||||
+ 'gcc' '-march=armv7-a -mfpu=vfpv3 -O1 -fno-expensive-optimizations'
|
||||
+MACH=ARMv7VFP,ARMv7VFPNEON OS=ALL LVL=1000 COMPS=dmc,dkc
|
||||
+ 'gcc' '-march=armv7-a -mfpu=vfpv3 -O1 -fno-schedule-insns2'
|
||||
+MACH=ARMv7VFP,ARMv7VFPNEON OS=ALL LVL=1000 COMPS=f77
|
||||
+ 'gfortran' '-march=armv7-a -O1'
|
||||
+#
|
||||
# Generic defaults
|
||||
#
|
||||
MACH=ALL OS=ALL LVL=5 COMPS=icc,smc,dmc,skc,dkc,xcc
|
||||
diff -ru ATLAS/CONFIG/src/atlconf_misc.c ATLAS-3.8.4-arm/CONFIG/src/atlconf_misc.c
|
||||
--- ATLAS/CONFIG/src/atlconf_misc.c 2011-05-14 19:33:24.000000000 +0200
|
||||
+++ ATLAS-3.8.4-arm/CONFIG/src/atlconf_misc.c 2011-04-20 16:43:26.000000000 +0200
|
||||
@@ -480,6 +480,7 @@
|
||||
else if (strstr(res, "alpha")) fam = AFALPHA;
|
||||
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, "i686") || strstr(res, "i586") ||
|
||||
strstr(res, "i486") || strstr(res, "i386") ||
|
||||
strstr(res, "x86") || strstr(res, "x86_64") ) fam = AFX86;
|
||||
@@ -501,6 +502,7 @@
|
||||
strstr(res, "i486") || strstr(res, "i386") ||
|
||||
strstr(res, "x86_64") ) fam = AFX86;
|
||||
else if (strstr(res, "mips")) fam = AFMIPS;
|
||||
+ else if (strstr(res, "arm")) fam = AFARM;
|
||||
}
|
||||
}
|
||||
return(fam);
|
||||
diff -ru ATLAS/CONFIG/src/backend/archinfo_linux.c ATLAS-3.8.4-arm/CONFIG/src/backend/archinfo_linux.c
|
||||
--- ATLAS/CONFIG/src/backend/archinfo_linux.c 2011-05-14 19:33:24.000000000 +0200
|
||||
+++ ATLAS-3.8.4-arm/CONFIG/src/backend/archinfo_linux.c 2011-05-16 14:19:02.000000000 +0200
|
||||
@@ -166,6 +166,20 @@
|
||||
else if (strstr(res, "AMD-K7")) mach = AmdAthlon;
|
||||
}
|
||||
break;
|
||||
+ case AFARM:
|
||||
+ if ( !CmndOneLine(NULL, "fgrep 'Processor' /proc/cpuinfo", res) )
|
||||
+ {
|
||||
+ if (strstr(res, "ARMv7") || strstr(res,"v7l")) mach = ARMv7VFP;
|
||||
+ }
|
||||
+ else if ( !CmndOneLine(NULL, "fgrep 'cpu' /proc/cpuinfo", res) )
|
||||
+ {
|
||||
+ if (strstr(res, "ARMv7") || strstr(res,"v7l")) mach = ARMv7VFP;
|
||||
+ }
|
||||
+ if ( !CmndOneLine(NULL, "fgrep 'Features' /proc/cpuinfo", res) )
|
||||
+ {
|
||||
+ if (strstr(res, "neon")) mach = ARMv7VFPNEON;
|
||||
+ }
|
||||
+ break;
|
||||
/*
|
||||
* Add these back if we get machine access and can test
|
||||
*/
|
||||
diff -ru ATLAS/README ATLAS-3.8.4-arm/README
|
||||
--- ATLAS/README 2011-05-14 19:33:23.000000000 +0200
|
||||
+++ ATLAS-3.8.4-arm/README 2012-06-18 23:19:46.000000000 +0200
|
||||
@@ -1,3 +1,19 @@
|
||||
+ATLAS-3.8.4-arm
|
||||
+released 18 June 2012
|
||||
+
|
||||
+Changes since beta 1:
|
||||
+
|
||||
+ - assembly headers changed to link properly on Unbuntu 11.10 and 12.04
|
||||
+ - VFP single-precision GEMM by Clint Whaley backported from ATLAS 3.9.x
|
||||
+
|
||||
+Changes since beta 2:
|
||||
+
|
||||
+ - VFP assembly GEMM kernels added for hard floating-point ABI (like Ubuntu 12.04)
|
||||
+
|
||||
+Changes since beta 3:
|
||||
+ (none)
|
||||
+
|
||||
+
|
||||
This is the README index file. If you want install intructions,
|
||||
read ATLAS/INSTALL.txt. Windows users should read
|
||||
ATLAS/doc/Windows.txt as well. Note that all of this documentation is
|
||||
diff -ru ATLAS/tune/blas/gemm/CASES/ccases.flg ATLAS-3.8.4-arm/tune/blas/gemm/CASES/ccases.flg
|
||||
--- ATLAS/tune/blas/gemm/CASES/ccases.flg 2011-05-14 19:34:10.000000000 +0200
|
||||
+++ ATLAS-3.8.4-arm/tune/blas/gemm/CASES/ccases.flg 2012-06-03 14:25:17.000000000 +0200
|
||||
@@ -1,5 +1,5 @@
|
||||
<ID> <flag> <mb> <nb> <kb> <muladd> <lat> <mu> <nu> <ku> <rout> "<Contributer>"
|
||||
-20
|
||||
+25
|
||||
304 192 4 3 8 0 4 4 3 8 ATL_mm4x3x8p.c "R. Clint Whaley" \
|
||||
gcc
|
||||
-mcpu=ultrasparc -mtune=ultrasparc -fomit-frame-pointer -O
|
||||
@@ -52,3 +52,18 @@
|
||||
gcc
|
||||
-x assembler-with-cpp -mips4
|
||||
332 192 8 2 4 1 0 8 2 4 ATL_smm8x2x4_av.c "IBM"
|
||||
+333 448 4 4 2 1 1 4 4 2 ATL_smm4x4x2pf_arm.c "R. Clint Whaley" \
|
||||
+gcc
|
||||
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
|
||||
+334 448 4 4 2 1 1 4 4 2 ATL_smm4x4x2dld_arm.c "R. Clint Whaley" \
|
||||
+gcc
|
||||
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
|
||||
+335 448 4 4 2 1 1 4 4 2 ATL_smm4x4x2pf_armhf.c "R. Clint Whaley" \
|
||||
+gcc
|
||||
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
|
||||
+336 448 4 4 2 1 1 4 4 2 ATL_smm4x4x2dld_armhf.c "R. Clint Whaley" \
|
||||
+gcc
|
||||
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
|
||||
+337 480 4 4 4 1 1 4 4 4 ATL_smm4x4x4p_neon.c "Vesperix Corporation" \
|
||||
+gcc
|
||||
+-march=armv7-a -mfpu=neon -O2
|
||||
diff -ru ATLAS/tune/blas/gemm/CASES/dcases.flg ATLAS-3.8.4-arm/tune/blas/gemm/CASES/dcases.flg
|
||||
--- ATLAS/tune/blas/gemm/CASES/dcases.flg 2011-05-14 19:34:10.000000000 +0200
|
||||
+++ ATLAS-3.8.4-arm/tune/blas/gemm/CASES/dcases.flg 2012-06-03 14:23:02.000000000 +0200
|
||||
@@ -1,5 +1,5 @@
|
||||
<ID> <flag> <mb> <nb> <kb> <muladd> <lat> <mu> <nu> <ku> <rout> "<Contributer>"
|
||||
-31
|
||||
+33
|
||||
306 192 4 3 8 0 4 4 3 8 ATL_mm4x3x8p.c "R. Clint Whaley" \
|
||||
gcc
|
||||
-mcpu=ultrasparc -mtune=ultrasparc -fomit-frame-pointer -O -fno-schedule-insns -fno-schedule-insns2
|
||||
@@ -85,6 +85,11 @@
|
||||
338 192 8 4 2 1 0 8 4 2 ATL_dmm8x4x2_vsx.c "IBM" \
|
||||
gcc
|
||||
-O3 -mvsx
|
||||
-
|
||||
+339 448 4 4 2 1 1 4 4 2 ATL_dmm4x4x2pf_arm.c "R. Clint Whaley" \
|
||||
+gcc
|
||||
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
|
||||
+340 448 4 4 2 1 1 4 4 2 ATL_dmm4x4x2pf_armhf.c "R. Clint Whaley" \
|
||||
+gcc
|
||||
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
|
||||
# NB = 80 and NB = 120 are to force UltraSparc to try NB > L1 Cache,
|
||||
# needed for optimal performance on Ultra2 and Ultra4, respectively
|
||||
diff -ru ATLAS/tune/blas/gemm/CASES/scases.flg ATLAS-3.8.4-arm/tune/blas/gemm/CASES/scases.flg
|
||||
--- ATLAS/tune/blas/gemm/CASES/scases.flg 2011-05-14 19:34:10.000000000 +0200
|
||||
+++ ATLAS-3.8.4-arm/tune/blas/gemm/CASES/scases.flg 2012-06-03 14:25:48.000000000 +0200
|
||||
@@ -1,5 +1,5 @@
|
||||
<ID> <flag> <mb> <nb> <kb> <muladd> <lat> <mu> <nu> <ku> <rout> "<Contributer>"
|
||||
-22
|
||||
+27
|
||||
304 192 4 3 8 0 4 4 3 8 ATL_mm4x3x8p.c "R. Clint Whaley" \
|
||||
gcc
|
||||
-mcpu=ultrasparc -mtune=ultrasparc -fomit-frame-pointer -O
|
||||
@@ -58,3 +58,18 @@
|
||||
gcc
|
||||
-x assembler-with-cpp -mips4
|
||||
332 192 8 2 4 1 0 8 2 4 ATL_smm8x2x4_av.c "IBM"
|
||||
+333 448 4 4 2 1 1 4 4 2 ATL_smm4x4x2pf_arm.c "R. Clint Whaley" \
|
||||
+gcc
|
||||
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
|
||||
+334 448 4 4 2 1 1 4 4 2 ATL_smm4x4x2dld_arm.c "R. Clint Whaley" \
|
||||
+gcc
|
||||
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
|
||||
+335 448 4 4 2 1 1 4 4 2 ATL_smm4x4x2pf_armhf.c "R. Clint Whaley" \
|
||||
+gcc
|
||||
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
|
||||
+336 448 4 4 2 1 1 4 4 2 ATL_smm4x4x2dld_armhf.c "R. Clint Whaley" \
|
||||
+gcc
|
||||
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
|
||||
+337 480 4 4 4 1 1 4 4 4 ATL_smm4x4x4p_neon.c "Vesperix Corporation" \
|
||||
+gcc
|
||||
+-march=armv7-a -mfpu=neon -O2
|
||||
diff -ru ATLAS/tune/blas/gemm/CASES/zcases.flg ATLAS-3.8.4-arm/tune/blas/gemm/CASES/zcases.flg
|
||||
--- ATLAS/tune/blas/gemm/CASES/zcases.flg 2011-05-14 19:34:10.000000000 +0200
|
||||
+++ ATLAS-3.8.4-arm/tune/blas/gemm/CASES/zcases.flg 2012-06-03 14:23:36.000000000 +0200
|
||||
@@ -1,5 +1,5 @@
|
||||
<ID> <flag> <mb> <nb> <kb> <muladd> <lat> <mu> <nu> <ku> <rout> "<Contributer>"
|
||||
-30
|
||||
+32
|
||||
306 192 4 3 8 0 4 4 3 8 ATL_mm4x3x8p.c "R. Clint Whaley" \
|
||||
gcc
|
||||
-mcpu=ultrasparc -mtune=ultrasparc -fomit-frame-pointer -O -fno-schedule-insns -fno-schedule-insns2
|
||||
@@ -82,6 +82,11 @@
|
||||
338 192 8 4 2 1 0 8 4 2 ATL_dmm8x4x2_vsx.c "IBM" \
|
||||
gcc
|
||||
-O3 -mvsx
|
||||
-
|
||||
+339 448 4 4 2 1 1 4 4 2 ATL_dmm4x4x2pf_arm.c "R. Clint Whaley" \
|
||||
+gcc
|
||||
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
|
||||
+340 448 4 4 2 1 1 4 4 2 ATL_dmm4x4x2pf_armhf.c "R. Clint Whaley" \
|
||||
+gcc
|
||||
+-x assembler-with-cpp -mfpu=vfpv3 -march=armv7-a
|
||||
# NB = 80 and NB = 120 are to force UltraSparc to try NB > L1 Cache,
|
||||
# needed for optimal performance on Ultra2 and Ultra4, respectively
|
||||
diff -ru ATLAS/tune/sysinfo/ATL_cputime.c ATLAS-3.8.4-arm/tune/sysinfo/ATL_cputime.c
|
||||
--- ATLAS/tune/sysinfo/ATL_cputime.c 2011-05-14 19:34:09.000000000 +0200
|
||||
+++ ATLAS-3.8.4-arm/tune/sysinfo/ATL_cputime.c 2012-05-05 18:16:58.000000000 +0200
|
||||
@@ -48,6 +48,26 @@
|
||||
t0 = clock();
|
||||
return(0.0);
|
||||
}
|
||||
+#elif defined(POSIX_HR) /* use the POSIX HR timers */
|
||||
+ #include <time.h>
|
||||
+ double ATL_cputime(void)
|
||||
+ {
|
||||
+ struct timespec ts;
|
||||
+ static double t0;
|
||||
+ double res;
|
||||
+ static int INIT = 0;
|
||||
+
|
||||
+ if (INIT)
|
||||
+ {
|
||||
+ clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts);
|
||||
+ res = ts.tv_sec + 1.0e-9 * ts.tv_nsec;
|
||||
+ return(res - t0);
|
||||
+ }
|
||||
+ clock_gettime(CLOCK_PROCESS_CPUTIME_ID,&ts);
|
||||
+ t0 = ts.tv_sec + 1.0e-9 * ts.tv_nsec;
|
||||
+ INIT = 1;
|
||||
+ return(0.0);
|
||||
+ }
|
||||
#elif defined(UseTimes)
|
||||
#include <stdlib.h>
|
||||
#include <sys/times.h>
|
||||
diff -ru ATLAS/tune/sysinfo/ATL_walltime.c ATLAS-3.8.4-arm/tune/sysinfo/ATL_walltime.c
|
||||
--- ATLAS/tune/sysinfo/ATL_walltime.c 2011-05-14 19:34:09.000000000 +0200
|
||||
+++ ATLAS-3.8.4-arm/tune/sysinfo/ATL_walltime.c 2012-05-05 18:23:20.000000000 +0200
|
||||
@@ -79,6 +79,26 @@
|
||||
myout = (myout<<32) | msout.LowPart;
|
||||
return(myout*freqRecip);
|
||||
}
|
||||
+#elif defined(POSIX_HR) /* use the POSIX HR timers */
|
||||
+ #include <time.h>
|
||||
+ double ATL_cputime(void)
|
||||
+ {
|
||||
+ struct timespec ts;
|
||||
+ static double t0;
|
||||
+ double res;
|
||||
+ static int INIT = 0;
|
||||
+
|
||||
+ if (INIT)
|
||||
+ {
|
||||
+ clock_gettime(CLOCK_REALTIME, &ts);
|
||||
+ res = ts.tv_sec + 1.0e-9 * ts.tv_nsec;
|
||||
+ return(res - t0);
|
||||
+ }
|
||||
+ clock_gettime(CLOCK_REALTIME,&ts);
|
||||
+ t0 = ts.tv_sec + 1.0e-9 * ts.tv_nsec;
|
||||
+ INIT = 1;
|
||||
+ return(0.0);
|
||||
+ }
|
||||
#elif defined(UseTimes)
|
||||
#include <stdlib.h>
|
||||
#include <sys/times.h>
|
||||
@@ -97,6 +117,26 @@
|
||||
{
|
||||
return(gethrtime()*1.0e-9);
|
||||
}
|
||||
+#elif defined(POSIX_HR) /* use the POSIX HR timers */
|
||||
+ #include <time.h>
|
||||
+ double ATL_walltime(void)
|
||||
+ {
|
||||
+ struct timespec ts;
|
||||
+ static double t0;
|
||||
+ double res;
|
||||
+ static int INIT = 0;
|
||||
+
|
||||
+ if (INIT)
|
||||
+ {
|
||||
+ clock_gettime(CLOCK_REALTIME, &ts);
|
||||
+ res = ts.tv_sec + 1.0e-9 * ts.tv_nsec;
|
||||
+ return(res - t0);
|
||||
+ }
|
||||
+ clock_gettime(CLOCK_REALTIME, &ts);
|
||||
+ t0 = ts.tv_sec + 1.0e-9 * ts.tv_nsec;
|
||||
+ INIT = 1;
|
||||
+ return(0.0);
|
||||
+ }
|
||||
/*
|
||||
* Without gcc, I know no standard Windows wall-timer, so use cputime
|
||||
*/
|
15
libatlas-3.8.4-fix-melf-link-flags.patch
Normal file
15
libatlas-3.8.4-fix-melf-link-flags.patch
Normal file
@ -0,0 +1,15 @@
|
||||
diff -up ATLAS/CONFIG/src/SpewMakeInc.c.melf ATLAS/CONFIG/src/SpewMakeInc.c
|
||||
--- ATLAS/CONFIG/src/SpewMakeInc.c.melf 2011-05-14 11:33:24.000000000 -0600
|
||||
+++ ATLAS/CONFIG/src/SpewMakeInc.c 2012-08-09 10:52:28.051926489 -0600
|
||||
@@ -665,9 +665,9 @@ main(int nargs, char **args)
|
||||
if (MachIsX86(mach))
|
||||
{
|
||||
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");
|
||||
}
|
111
libatlas-3.8.4-shared.patch
Normal file
111
libatlas-3.8.4-shared.patch
Normal file
@ -0,0 +1,111 @@
|
||||
--- ATLAS/makes/Make.lib 2009-02-18 19:47:36.000000000 +0100
|
||||
+++ ATLAS/makes/Make.lib-gil 2009-05-09 08:26:56.000000000 +0200
|
||||
@@ -3,6 +3,8 @@
|
||||
#
|
||||
# override with libatlas.so only when atlas is built to one lib
|
||||
#
|
||||
+so_ver_major=3
|
||||
+so_ver = $(so_ver_major).0
|
||||
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
|
||||
@@ -32,38 +34,78 @@
|
||||
mv $(tarnam).tar.gz $(tarnam).tgz
|
||||
|
||||
ptshared :
|
||||
- - rm -f libatlas.so liblapack.so
|
||||
- $(MAKE) libatlas.so liblapack.so libptf77blas.so libf77blas.so \
|
||||
- libptcblas.so libcblas.so liblapack.so
|
||||
+ - rm -f libatlas.so* liblapack.so* \
|
||||
+ lib*blas.so* libclapack.so*
|
||||
+ $(MAKE) libatlas.so libcblas.so libptf77blas.so libf77blas.so \
|
||||
+ libptcblas.so liblapack.so libclapack.so
|
||||
shared :
|
||||
- - rm -f libatlas.so liblapack.so
|
||||
- $(MAKE) libatlas.so liblapack.so libf77blas.so libcblas.so liblapack.so
|
||||
+ - rm -f libatlas.so liblapack.so \
|
||||
+ libatlas.so.$(so_ver) liblapack.so.$(so_ver)
|
||||
+ $(MAKE) libatlas.so libcblas.so libf77blas.so liblapack.so libclapack.so
|
||||
cptshared :
|
||||
- - rm -f libatlas.so libclapack.so
|
||||
- $(MAKE) libatlas.so libclapack.so libptcblas.so libcblas.so
|
||||
+ - rm -f libatlas.so libclapack.so \
|
||||
+ libatlas.so.$(so_ver) libclapack.so.$(so_ver)
|
||||
+ $(MAKE) libatlas.so libptcblas.so libcblas.so libclapack.so
|
||||
cshared :
|
||||
- - rm -f libatlas.so libclapack.so
|
||||
- $(MAKE) libatlas.so libclapack.so libcblas.so
|
||||
+ - rm -f libatlas.so libclapack.so \
|
||||
+ libatlas.so.$(so_ver) libclapack.so.$(so_ver)
|
||||
+ $(MAKE) libatlas.so libcblas.so libclapack.so
|
||||
|
||||
libatlas.so : libatlas.a
|
||||
- ld $(LDFLAGS) -shared -soname libatlas.so -o libatlas.so \
|
||||
- --whole-archive libatlas.a --no-whole-archive -lc $(LIBS)
|
||||
+ mkdir static_libs ; cd static_libs ; ar x ../libatlas.a ; cd ../
|
||||
+ gcc $(LDFLAGS) -shared -Wl,-soname=libatlas.so.$(so_ver_major) \
|
||||
+ -o libatlas.so.$(so_ver) static_libs/*.o -lc $(LIBS)
|
||||
+ rm -rf static_libs
|
||||
+ ln -sf ./libatlas.so.$(so_ver) libatlas.so.$(so_ver_major)
|
||||
+ ln -sf ./libatlas.so.$(so_ver) libatlas.so
|
||||
liblapack.so : liblapack.a
|
||||
- ld $(LDFLAGS) -shared -soname $@ -o $@ --whole-archive \
|
||||
- liblapack.a --no-whole-archive $(F77SYSLIB)
|
||||
+ mkdir static_libs ; cd static_libs ; ar x ../liblapack.a ; cd ../
|
||||
+ gcc $(LDFLAGS) -shared -Wl,-soname=liblapack.so.$(so_ver_major) \
|
||||
+ -o liblapack.so.$(so_ver) static_libs/*.o $(F77SYSLIB) \
|
||||
+ libf77blas.so.$(so_ver_major) libcblas.so.$(so_ver_major)
|
||||
+ rm -rf static_libs
|
||||
+ ln -sf ./liblapack.so.$(so_ver) liblapack.so.$(so_ver_major)
|
||||
+ ln -sf ./liblapack.so.$(so_ver) liblapack.so
|
||||
libclapack.so : libclapack.a
|
||||
- ld $(LDFLAGS) -shared -soname liblapack.so -o liblapack.so \
|
||||
- --whole-archive libclapack.a
|
||||
+ mkdir static_libs ; cd static_libs ; ar x ../libclapack.a ; cd ../
|
||||
+ gcc $(LDFLAGS) -shared -Wl,-soname=libclapack.so.$(so_ver_major) \
|
||||
+ -o libclapack.so.$(so_ver) static_libs/*.o \
|
||||
+ libcblas.so.$(so_ver_major) -lc $(LIBS)
|
||||
+ rm -rf static_libs
|
||||
+ ln -sf ./libclapack.so.$(so_ver) libclapack.so.$(so_ver_major)
|
||||
+ ln -sf ./libclapack.so.$(so_ver) libclapack.so
|
||||
libptf77blas.so : libptf77blas.a
|
||||
- ld $(LDFLAGS) -shared -soname $@ -o $@ --whole-archive libptf77blas.a \
|
||||
- --no-whole-archive $(F77SYSLIB)
|
||||
+ mkdir static_libs ; cd static_libs ; ar x ../libptf77blas.a ; cd ../
|
||||
+ gcc $(LDFLAGS) -shared -Wl,-soname=libptf77blas.so.$(so_ver_major) \
|
||||
+ -o libptf77blas.so.$(so_ver) static_libs/*.o \
|
||||
+ libatlas.so.$(so_ver) $(F77SYSLIB)
|
||||
+ rm -rf static_libs
|
||||
+ ln -sf ./libptf77blas.so.$(so_ver) libptf77blas.so.$(so_ver_major)
|
||||
+ ln -sf ./libptf77blas.so.$(so_ver) libptf77blas.so
|
||||
libf77blas.so : libf77blas.a
|
||||
- ld $(LDFLAGS) -shared -soname $@ -o $@ --whole-archive libf77blas.a \
|
||||
- --no-whole-archive $(F77SYSLIB)
|
||||
+ mkdir static_libs ; cd static_libs ; ar x ../libf77blas.a ; cd ../
|
||||
+ gcc $(LDFLAGS) -shared -Wl,-soname=libf77blas.so.$(so_ver_major) \
|
||||
+ -o libf77blas.so.$(so_ver) static_libs/*.o \
|
||||
+ libatlas.so.$(so_ver) $(F77SYSLIB)
|
||||
+ rm -rf static_libs
|
||||
+ ln -sf ./libf77blas.so.$(so_ver) libf77blas.so.$(so_ver_major)
|
||||
+ ln -sf ./libf77blas.so.$(so_ver) libf77blas.so
|
||||
libptcblas.so : libptcblas.a
|
||||
- ld $(LDFLAGS) -shared -soname $@ -o $@ --whole-archive libptcblas.a
|
||||
+ mkdir static_libs ; cd static_libs ; ar x ../libptcblas.a ; cd ../
|
||||
+ gcc $(LDFLAGS) -shared -Wl,-soname=libptcblas.so.$(so_ver_major) \
|
||||
+ -o libptcblas.so.$(so_ver) static_libs/*.o \
|
||||
+ libatlas.so.$(so_ver) -lc $(LIBS)
|
||||
+ rm -rf static_libs
|
||||
+ ln -sf ./libptcblas.so.$(so_ver) libptcblas.so.$(so_ver_major)
|
||||
+ ln -sf ./libptcblas.so.$(so_ver) libptcblas.so
|
||||
libcblas.so : libcblas.a
|
||||
- ld $(LDFLAGS) -shared -soname $@ -o $@ --whole-archive libcblas.a
|
||||
+ mkdir static_libs ; cd static_libs ; ar x ../libcblas.a ; cd ../
|
||||
+ gcc $(LDFLAGS) -shared -Wl,-soname=libcblas.so.$(so_ver_major) \
|
||||
+ -o libcblas.so.$(so_ver) static_libs/*.o \
|
||||
+ libatlas.so.$(so_ver) -lc $(LIBS)
|
||||
+ rm -rf static_libs
|
||||
+ ln -sf ./libcblas.so.$(so_ver) libcblas.so.$(so_ver_major)
|
||||
+ ln -sf ./libcblas.so.$(so_ver) libcblas.so
|
||||
#
|
||||
# Builds one shared lib from all ATLAS files
|
||||
#
|
565
libatlas.spec
Normal file
565
libatlas.spec
Normal file
@ -0,0 +1,565 @@
|
||||
%define major %(echo %version | cut -d. -f 1)
|
||||
%ifarch arm
|
||||
%define enable_native_atlas 0
|
||||
%else
|
||||
%define enable_native_atlas 1
|
||||
%endif
|
||||
|
||||
%if %enable_native_atlas
|
||||
%ifarch %ix86
|
||||
%define types base 3dnow sse sse2 sse3
|
||||
%define mode 32
|
||||
%define pr_sse2 35
|
||||
%endif
|
||||
%ifarch x86_64
|
||||
%define types base sse2
|
||||
%define mode 64
|
||||
%define pr_sse2 63
|
||||
%endif
|
||||
%else
|
||||
%ifarch %ix86 arm
|
||||
%define types base
|
||||
%define mode 32
|
||||
%endif
|
||||
%ifarch x86_64
|
||||
%define types base
|
||||
%define mode 64
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%define pr_base 32
|
||||
%define pr_3dnow 33
|
||||
%define pr_sse 34
|
||||
%define pr_sse3 36
|
||||
|
||||
Name: libatlas
|
||||
Version: 3.8.4
|
||||
Release: 3mamba
|
||||
Summary: ATLAS - Automatically Tuned Linear Algebra Software
|
||||
Group: System/Libraries
|
||||
Vendor: openmamba
|
||||
Distribution: openmamba
|
||||
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
URL: http://math-atlas.sourceforge.net/
|
||||
Source0: http://downloads.sourceforge.net/project/math-atlas/Stable/%{version}/atlas%{version}.tar.bz2
|
||||
Source1: ATLAS-README
|
||||
# http://sourceforge.net/cvs/?group_id=23725
|
||||
Source2: PPRO32.tgz
|
||||
Source3: K7323DNow.tgz
|
||||
Source4: USII64.tgz
|
||||
Source5: USII32.tgz
|
||||
Patch0: libatlas-3.8.4-shared.patch
|
||||
Patch1: libatlas-3.8.4-fix-melf-link-flags.patch
|
||||
# ARM patch diffed from:
|
||||
# http://www.vesperix.com/arm/atlas-arm/source/atlas-%{version}-arm.tar.gz
|
||||
Patch2: atlas-3.8.4-arm.patch
|
||||
License: BSD
|
||||
## AUTOBUILDREQ-BEGIN
|
||||
BuildRequires: gcc-fortran
|
||||
BuildRequires: glibc-devel
|
||||
## AUTOBUILDREQ-END
|
||||
BuildRequires: libblas-devel >= 3.4.2-3mamba
|
||||
BuildRequires: liblapack-devel >= 3.4.2-5mamba
|
||||
BuildRequires: libxblas-devel
|
||||
BuildRequires: libgomp-devel
|
||||
#ExclusiveArch: ix86 amd64 x86_64
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-root
|
||||
|
||||
%description
|
||||
The ATLAS (Automatically Tuned Linear Algebra Software) project is an ongoing research effort focusing on applying empirical techniques in order to provide portable performance. At present, it provides C and Fortran77 interfaces to a portably efficient BLAS implementation, as well as a few routines from LAPACK.
|
||||
|
||||
%package devel
|
||||
Group: Development/Libraries
|
||||
Summary: Development libraries for ATLAS
|
||||
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
|
||||
Requires: chkconfig
|
||||
|
||||
%description devel
|
||||
ATLAS - Automatically Tuned Linear Algebra Software.
|
||||
This package contains the libraries and headers for development with ATLAS.
|
||||
|
||||
%if %enable_native_atlas
|
||||
|
||||
%ifarch x86_64
|
||||
|
||||
%package sse2
|
||||
Group: System/Libraries
|
||||
Summary: ATLAS libraries for SSE2 extensions
|
||||
|
||||
%description sse2
|
||||
ATLAS - Automatically Tuned Linear Algebra Software.
|
||||
This package contains the ATLAS libraries compiled with optimizations for the SSE2 extensions to the x86_64 architecture.
|
||||
|
||||
%package sse2-devel
|
||||
Group: Development/Libraries
|
||||
Summary: Development libraries for ATLAS with SSE2 extensions
|
||||
Requires: %{name}-sse2 = %{?epoch:%epoch:}%{version}-%{release}
|
||||
Requires: chkconfig
|
||||
|
||||
%description sse2-devel
|
||||
This package contains shared and static versions of the ATLAS libraries compiled with optimizations for the SSE2 extensions to the x86_64 architecture.
|
||||
|
||||
%endif
|
||||
|
||||
%ifarch %ix86
|
||||
%package 3dnow
|
||||
Group: System/Libraries
|
||||
Summary: ATLAS libraries for 3DNow extensions
|
||||
|
||||
%description 3dnow
|
||||
ATLAS - Automatically Tuned Linear Algebra Software.
|
||||
This package contains the ATLAS libraries compiled with optimizations for the 3DNow extension to the ix86 architecture.
|
||||
|
||||
%package 3dnow-devel
|
||||
Group: Development/Libraries
|
||||
Summary: Development libraries for ATLAS with 3DNow extensions
|
||||
Requires: %{name}-3dnow = %{version}-%{release}
|
||||
Requires: chkconfig
|
||||
|
||||
%description 3dnow-devel
|
||||
ATLAS - Automatically Tuned Linear Algebra Software.
|
||||
This package contains headers and shared versions of the ATLAS libraries compiled with optimizations for the 3DNow extensions to the ix86 architecture.
|
||||
|
||||
%package sse
|
||||
Group: System/Libraries
|
||||
Summary: ATLAS libraries for SSE extensions
|
||||
|
||||
%description sse
|
||||
ATLAS - Automatically Tuned Linear Algebra Software.
|
||||
This package contains the ATLAS libraries compiled with optimizations for the SSE(1) extensions to the ix86 architecture.
|
||||
|
||||
%package sse-devel
|
||||
Group: Development/Libraries
|
||||
Summary: Development libraries for ATLAS with SSE extensions
|
||||
Requires: %{name}-sse = %{version}-%{release}
|
||||
Requires: chkconfig
|
||||
|
||||
%description sse-devel
|
||||
ATLAS - Automatically Tuned Linear Algebra Software.
|
||||
This package contains headers and shared versions of the ATLAS libraries compiled with optimizations for the SSE(1) extensions to the ix86 architecture.
|
||||
|
||||
%package sse2
|
||||
Group: System/Libraries
|
||||
Summary: ATLAS libraries for SSE2 extensions
|
||||
|
||||
%description sse2
|
||||
ATLAS - Automatically Tuned Linear Algebra Software.
|
||||
This package contains ATLAS shared libraries compiled with optimizations for the SSE2 extensions to the ix86 architecture.
|
||||
|
||||
%package sse2-devel
|
||||
Group: Development/Libraries
|
||||
Summary: Development libraries for ATLAS with SSE2 extensions
|
||||
Requires: %{name}-sse2 = %{?epoch:%epoch:}%{version}-%{release}
|
||||
Requires: chkconfig
|
||||
|
||||
%description sse2-devel
|
||||
ATLAS - Automatically Tuned Linear Algebra Software.
|
||||
This package contains ATLAS shared libraries compiled with optimizations for the SSE2 extensions to the ix86 architecture.
|
||||
|
||||
%package sse3
|
||||
Group: System/Libraries
|
||||
Summary: ATLAS libraries for SSE3 extensions
|
||||
|
||||
%description sse3
|
||||
ATLAS - Automatically Tuned Linear Algebra Software.
|
||||
This package contains the ATLAS libraries compiled with optimizations for the SSE3.
|
||||
|
||||
%package sse3-devel
|
||||
Group: Development/Libraries
|
||||
Summary: Development libraries for ATLAS with SSE3 extensions
|
||||
Requires: %{name}-sse3 = %{?epoch:%epoch:}%{version}-%{release}
|
||||
Requires: chkconfig
|
||||
|
||||
%description sse3-devel
|
||||
ATLAS - Automatically Tuned Linear Algebra Software.
|
||||
This package contains development libraries for ATLAS with SSE3 extensions to the ix86 architecture.
|
||||
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%package doc
|
||||
Summary: Documentation for %{name}
|
||||
Group: Documentation
|
||||
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
|
||||
|
||||
%description doc
|
||||
ATLAS - Automatically Tuned Linear Algebra Software.
|
||||
This package contains the documentation for %{name}.
|
||||
|
||||
%prep
|
||||
%setup -q -c -a0
|
||||
#-D -T
|
||||
#:<< __EOF
|
||||
cd ATLAS
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%ifarch arm
|
||||
%patch2 -p1
|
||||
%endif
|
||||
|
||||
cp %{SOURCE1} openmamba-README
|
||||
sed -i "s|@VER_REL@|%{version}-%{release}|" openmamba-README
|
||||
|
||||
%ifnarch arm
|
||||
cp %{SOURCE2} CONFIG/ARCHS/
|
||||
cp %{SOURCE3} CONFIG/ARCHS/
|
||||
cp %{SOURCE4} CONFIG/ARCHS/
|
||||
cp %{SOURCE5} CONFIG/ARCHS/
|
||||
%endif
|
||||
|
||||
%build
|
||||
#:<< _EOF
|
||||
cd ATLAS
|
||||
for type in %{types}; do
|
||||
if [ "$type" = "base" ]; then
|
||||
libname=atlas
|
||||
else
|
||||
libname=atlas-${type}
|
||||
fi
|
||||
mkdir -p %{_arch}_${type}
|
||||
cd %{_arch}_${type}
|
||||
../configure -b %{mode} -D c -DWALL -Fa alg '-g -Wa,--noexecstack -fPIC'\
|
||||
%ifarch arm
|
||||
-Si archdef 0 -Si cputhrchk 0 \
|
||||
%endif
|
||||
--prefix=%{buildroot}%{_prefix} \
|
||||
--incdir=%{buildroot}%{_includedir} \
|
||||
--libdir=%{buildroot}%{_libdir}/${libname} \
|
||||
--with-netlib-lapack=%{_libdir}/liblapack.a
|
||||
sed -i "s|LDFLAGS = \(.*\)|LDFLAGS = \1 -Wl,--allow-multiple-definition -lxblas|" Make.inc
|
||||
# -Si cputhrchk 0
|
||||
|
||||
%ifarch x86_64
|
||||
if [ "$type" = "sse2" ]; then
|
||||
sed -i 's#ARCH =.*#ARCH = HAMMER64SSE2#' Make.inc
|
||||
sed -i 's#-DATL_SSE3##' Make.inc
|
||||
sed -i 's#-msse3#-msse2#' Make.inc
|
||||
fi
|
||||
%endif
|
||||
|
||||
%ifarch %ix86
|
||||
if [ "$type" = "base" ]; then
|
||||
sed -i 's#ARCH =.*#ARCH = PPRO32#' Make.inc
|
||||
sed -i 's#-DATL_SSE3 -DATL_SSE2 -DATL_SSE1##' Make.inc
|
||||
sed -i 's#-mfpmath=sse -msse3#-mfpmath=387#' Make.inc
|
||||
elif [ "$type" = "3dnow" ]; then
|
||||
sed -i 's#ARCH =.*#ARCH = K7323DNow#' Make.inc
|
||||
sed -i 's#-DATL_SSE3 -DATL_SSE2 -DATL_SSE1##' Make.inc
|
||||
sed -i 's#-mfpmath=sse -msse3#-mfpmath=387#' Make.inc
|
||||
elif [ "$type" = "sse" ]; then
|
||||
sed -i 's#ARCH =.*#ARCH = PIII32SSE1#' Make.inc
|
||||
sed -i 's#-DATL_SSE3 -DATL_SSE2##' Make.inc
|
||||
sed -i 's#-msse3#-msse#' Make.inc
|
||||
elif [ "$type" = "sse2" ]; then
|
||||
sed -i 's#ARCH =.*#ARCH = P432SSE2#' Make.inc
|
||||
sed -i 's#-DATL_SSE3##' Make.inc
|
||||
sed -i 's#-msse3#-msse2#' Make.inc
|
||||
elif [ "$type" = "sse3" ]; then
|
||||
sed -i 's#ARCH =.*#ARCH = P4E32SSE3#' Make.inc
|
||||
fi
|
||||
%endif
|
||||
make build || make build || make build
|
||||
cd lib
|
||||
make shared
|
||||
#%ifarch x86_64
|
||||
# LDFLAGS=
|
||||
#%endif
|
||||
|
||||
make ptshared
|
||||
#%ifarch x86_64
|
||||
# LDFLAGS=
|
||||
#%endif
|
||||
|
||||
cd ..
|
||||
done
|
||||
|
||||
%install
|
||||
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
||||
cd ATLAS
|
||||
for type in %{types}; do
|
||||
cd %{_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
|
||||
else
|
||||
cp -pr lib/*.so* %{buildroot}%{_libdir}/atlas-${type}/
|
||||
rm -f %{buildroot}%{_libdir}/atlas-${type}/*.a
|
||||
fi
|
||||
cd ..
|
||||
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d
|
||||
if [ "$type" = "base" ]; then
|
||||
echo "%{_libdir}/atlas" \
|
||||
> %{buildroot}%{_sysconfdir}/ld.so.conf.d/atlas-%{_arch}.conf
|
||||
else
|
||||
echo "%{_libdir}/atlas-${type}" \
|
||||
> %{buildroot}%{_sysconfdir}/ld.so.conf.d/atlas-%{_arch}-${type}.conf
|
||||
fi
|
||||
done
|
||||
mkdir -p %{buildroot}%{_includedir}/atlas
|
||||
|
||||
%clean
|
||||
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
%postun -p /sbin/ldconfig
|
||||
|
||||
%post devel
|
||||
if [ $1 -ge 1 ]; then
|
||||
/usr/sbin/alternatives --install %{_includedir}/atlas atlas-inc \
|
||||
%{_includedir}/atlas-%{_arch}-base %{pr_base}
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%preun devel
|
||||
if [ $1 -eq 0 ]; then
|
||||
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-base
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%postun devel
|
||||
if [ $1 -eq 0 ]; then
|
||||
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-base
|
||||
fi
|
||||
:
|
||||
|
||||
%if %enable_native_atlas
|
||||
|
||||
%ifarch x86_64
|
||||
|
||||
%post sse2 -p /sbin/ldconfig
|
||||
|
||||
%postun sse2 -p /sbin/ldconfig
|
||||
|
||||
%post sse2-devel
|
||||
if [ $1 -ge 1 ]; then
|
||||
/usr/sbin/alternatives --install %{_includedir}/atlas atlas-inc \
|
||||
%{_includedir}/atlas-%{_arch}-sse2 %{pr_sse2}
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%preun sse2-devel
|
||||
if [ $1 -eq 0 ]; then
|
||||
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-sse2
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%postun sse2-devel
|
||||
if [ $1 -eq 0 ]; then
|
||||
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-sse2
|
||||
fi
|
||||
:
|
||||
|
||||
%endif
|
||||
|
||||
%ifarch %ix86
|
||||
%post 3dnow -p /sbin/ldconfig
|
||||
|
||||
%postun 3dnow -p /sbin/ldconfig
|
||||
|
||||
%post 3dnow-devel
|
||||
if [ $1 -ge 1 ]; then
|
||||
/usr/sbin/alternatives --install %{_includedir}/atlas atlas-inc \
|
||||
%{_includedir}/atlas-%{_arch}-3dnow %{pr_3dnow}
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%preun 3dnow-devel
|
||||
if [ $1 -eq 0 ]; then
|
||||
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-3dnow
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%postun 3dnow-devel
|
||||
if [ $1 -eq 0 ]; then
|
||||
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-3dnow
|
||||
fi
|
||||
:
|
||||
|
||||
%post sse -p /sbin/ldconfig
|
||||
|
||||
%postun sse -p /sbin/ldconfig
|
||||
|
||||
|
||||
%post sse-devel
|
||||
if [ $1 -ge 1 ]; then
|
||||
/usr/sbin/alternatives --install %{_includedir}/atlas atlas-inc \
|
||||
%{_includedir}/atlas-%{_arch}-sse %{pr_sse}
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%preun sse-devel
|
||||
if [ $1 -eq 0 ]; then
|
||||
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-sse
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%postun sse-devel
|
||||
if [ $1 -eq 0 ]; then
|
||||
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-sse
|
||||
fi
|
||||
:
|
||||
|
||||
%post sse2 -p /sbin/ldconfig
|
||||
|
||||
%postun sse2 -p /sbin/ldconfig
|
||||
|
||||
%post sse2-devel
|
||||
if [ $1 -ge 1 ]; then
|
||||
/usr/sbin/alternatives --install %{_includedir}/atlas atlas-inc \
|
||||
%{_includedir}/atlas-%{_arch}-sse2 %{pr_sse2}
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%preun sse2-devel
|
||||
if [ $1 -eq 0 ]; then
|
||||
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-sse2
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%postun sse2-devel
|
||||
if [ $1 -eq 0 ]; then
|
||||
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-sse2
|
||||
fi
|
||||
:
|
||||
|
||||
%post sse3 -p /sbin/ldconfig
|
||||
|
||||
%postun sse3 -p /sbin/ldconfig
|
||||
|
||||
%post sse3-devel
|
||||
if [ $1 -ge 1 ]; then
|
||||
/usr/sbin/alternatives --install %{_includedir}/atlas atlas-inc \
|
||||
%{_includedir}/atlas-%{_arch}-sse3 %{pr_sse3}
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%preun sse3-devel
|
||||
if [ $1 -eq 0 ]; then
|
||||
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-sse3
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%postun sse3-devel
|
||||
if [ $1 -eq 0 ]; then
|
||||
/usr/sbin/alternatives --remove atlas-inc %{_includedir}/atlas-%{_arch}-sse3
|
||||
fi
|
||||
:
|
||||
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/atlas-%{_arch}.conf
|
||||
%dir %{_libdir}/atlas
|
||||
%{_libdir}/atlas/*.so.*
|
||||
%doc ATLAS/*README
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root)
|
||||
%dir %{_includedir}/atlas-%{_arch}-base
|
||||
%{_includedir}/atlas-%{_arch}-base/*
|
||||
%{_includedir}/*.h
|
||||
%{_libdir}/atlas/*.so
|
||||
|
||||
%if %enable_native_atlas
|
||||
|
||||
%ifarch x86_64
|
||||
|
||||
%files sse2
|
||||
%defattr(-,root,root)
|
||||
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/atlas-%{_arch}-sse2.conf
|
||||
%dir %{_libdir}/atlas-sse2
|
||||
%{_libdir}/atlas-sse2/*.so.*
|
||||
|
||||
%files sse2-devel
|
||||
%defattr(-,root,root)
|
||||
%{_libdir}/atlas-sse2/*.so
|
||||
%{_includedir}/atlas-%{_arch}-sse2/
|
||||
%{_includedir}/*.h
|
||||
%ghost %{_includedir}/atlas
|
||||
|
||||
%endif
|
||||
|
||||
%ifarch %ix86
|
||||
|
||||
%files 3dnow
|
||||
%defattr(-,root,root)
|
||||
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/atlas-%{_arch}-3dnow.conf
|
||||
%dir %{_libdir}/atlas-3dnow
|
||||
%{_libdir}/atlas-3dnow/*.so.*
|
||||
|
||||
%files 3dnow-devel
|
||||
%defattr(-,root,root)
|
||||
%{_libdir}/atlas-3dnow/*.so
|
||||
%{_includedir}/atlas-%{_arch}-3dnow/
|
||||
%{_includedir}/*.h
|
||||
%ghost %{_includedir}/atlas
|
||||
|
||||
%files sse
|
||||
%defattr(-,root,root)
|
||||
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/atlas-%{_arch}-sse.conf
|
||||
%dir %{_libdir}/atlas-sse
|
||||
%{_libdir}/atlas-sse/*.so.*
|
||||
|
||||
%files sse-devel
|
||||
%defattr(-,root,root)
|
||||
%{_libdir}/atlas-sse/*.so
|
||||
%{_includedir}/atlas-%{_arch}-sse/
|
||||
%{_includedir}/*.h
|
||||
%ghost %{_includedir}/atlas
|
||||
|
||||
%files sse2
|
||||
%defattr(-,root,root)
|
||||
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/atlas-%{_arch}-sse2.conf
|
||||
%dir %{_libdir}/atlas-sse2
|
||||
%{_libdir}/atlas-sse2/*.so.*
|
||||
|
||||
%files sse2-devel
|
||||
%defattr(-,root,root)
|
||||
%{_libdir}/atlas-sse2/*.so
|
||||
%{_includedir}/atlas-%{_arch}-sse2/
|
||||
%{_includedir}/*.h
|
||||
%ghost %{_includedir}/atlas
|
||||
|
||||
%files sse3
|
||||
%defattr(-,root,root)
|
||||
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/atlas-%{_arch}-sse3.conf
|
||||
%dir %{_libdir}/atlas-sse3
|
||||
%{_libdir}/atlas-sse3/*.so.*
|
||||
|
||||
%files sse3-devel
|
||||
%defattr(-,root,root)
|
||||
%{_libdir}/atlas-sse3/*.so
|
||||
%{_includedir}/atlas-%{_arch}-sse3/
|
||||
%{_includedir}/*.h
|
||||
%ghost %{_includedir}/atlas
|
||||
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%files doc
|
||||
%defattr(-,root,root)
|
||||
%doc ATLAS/doc
|
||||
|
||||
%changelog
|
||||
* Mon Aug 26 2013 Silvan Calarco <silvan.calarco@mambasoft.it> 3.8.4-3mamba
|
||||
- rebuilt with liblapack-3.4.2-5mamba implementing extended precision routines (xblas)
|
||||
|
||||
* Thu Aug 22 2013 Silvan Calarco <silvan.calarco@mambasoft.it> 3.8.4-2mamba
|
||||
- rebuild with liblapack-3.4.2-3mamba providing static library
|
||||
|
||||
* Wed Aug 14 2013 Silvan Calarco <silvan.calarco@mambasoft.it> 3.8.4-1mamba
|
||||
- update to 3.8.4
|
||||
|
||||
* Wed Jan 05 2011 gil <puntogil@libero.it> 3.8.3-2mamba
|
||||
- rebuilt devel
|
||||
|
||||
* Sat May 09 2009 gil <puntogil@libero.it> 3.8.3-1mamba
|
||||
- update to 3.8.3
|
||||
|
||||
* Sat Oct 04 2008 gil <puntogil@libero.it> 3.8.2-1mamba
|
||||
- package created by autospec
|
Loading…
Reference in New Issue
Block a user