commit
2e18ba6c5a
pkgs
applications/science
development/libraries/science/math
atlas
liblapack
scalapack
top-level
|
@ -2,9 +2,9 @@
|
||||||
# data, compression
|
# data, compression
|
||||||
, bzip2, curl, hdf5, json_c, lzma, lzo, protobuf, snappy
|
, bzip2, curl, hdf5, json_c, lzma, lzo, protobuf, snappy
|
||||||
# maths
|
# maths
|
||||||
, blas, eigen, nlopt, lp_solve, colpack
|
, openblasCompat, eigen, nlopt, lp_solve, colpack
|
||||||
# libraries
|
# libraries
|
||||||
, libarchive, liblapack, libxml2
|
, libarchive, libxml2
|
||||||
# extra support
|
# extra support
|
||||||
, pythonSupport ? true, pythonPackages ? null
|
, pythonSupport ? true, pythonPackages ? null
|
||||||
, opencvSupport ? false, opencv ? null
|
, opencvSupport ? false, opencv ? null
|
||||||
|
@ -41,8 +41,8 @@ stdenv.mkDerivation rec {
|
||||||
CCACHE_DIR=".ccache";
|
CCACHE_DIR=".ccache";
|
||||||
|
|
||||||
buildInputs = with lib; [
|
buildInputs = with lib; [
|
||||||
blas bzip2 ccache cmake colpack curl ctags eigen hdf5 json_c lp_solve lzma lzo
|
openblasCompat bzip2 ccache cmake colpack curl ctags eigen hdf5 json_c lp_solve lzma lzo
|
||||||
protobuf nlopt snappy swig (libarchive.dev) liblapack libxml2
|
protobuf nlopt snappy swig (libarchive.dev) libxml2
|
||||||
]
|
]
|
||||||
++ optionals (pythonSupport) (with pythonPackages; [ python ply numpy ])
|
++ optionals (pythonSupport) (with pythonPackages; [ python ply numpy ])
|
||||||
++ optional (opencvSupport) opencv;
|
++ optional (opencvSupport) opencv;
|
||||||
|
|
|
@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
|
||||||
vertex coloring and derivative computation";
|
vertex coloring and derivative computation";
|
||||||
homepage = "http://cscapes.cs.purdue.edu/coloringpage/software.htm#functionalities";
|
homepage = "http://cscapes.cs.purdue.edu/coloringpage/software.htm#functionalities";
|
||||||
license = licenses.lgpl3;
|
license = licenses.lgpl3;
|
||||||
|
platforms = platforms.linux;
|
||||||
maintainers = with maintainers; [ edwtjo ];
|
maintainers = with maintainers; [ edwtjo ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, fetchpatch, texlive, bison, flex, liblapackWithoutAtlas
|
{ stdenv, fetchurl, fetchpatch, texlive, bison, flex, liblapack
|
||||||
, gmp, mpfr, pari, ntl, gsl, blas, mpfi
|
, gmp, mpfr, pari, ntl, gsl, blas, mpfi
|
||||||
, readline, gettext, libpng, libao, gfortran, perl
|
, readline, gettext, libpng, libao, gfortran, perl
|
||||||
, enableGUI ? false, libGLU_combined ? null, xorg ? null, fltk ? null
|
, enableGUI ? false, libGLU_combined ? null, xorg ? null, fltk ? null
|
||||||
|
@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
|
||||||
# gfortran.cc default output contains static libraries compiled without -fPIC
|
# gfortran.cc default output contains static libraries compiled without -fPIC
|
||||||
# we want libgfortran.so.3 instead
|
# we want libgfortran.so.3 instead
|
||||||
(stdenv.lib.getLib gfortran.cc)
|
(stdenv.lib.getLib gfortran.cc)
|
||||||
liblapackWithoutAtlas
|
liblapack
|
||||||
] ++ stdenv.lib.optionals enableGUI [
|
] ++ stdenv.lib.optionals enableGUI [
|
||||||
libGLU_combined fltk xorg.libX11
|
libGLU_combined fltk xorg.libX11
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, apfel, apfelgrid, applgrid, blas, gfortran, lhapdf, liblapackWithoutAtlas, libyaml, lynx, mela, root5, qcdnum, which }:
|
{ stdenv, fetchurl, apfel, apfelgrid, applgrid, blas, gfortran, lhapdf, liblapack, libyaml, lynx, mela, root5, qcdnum, which }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "xfitter-${version}";
|
name = "xfitter-${version}";
|
||||||
|
@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
nativeBuildInputs = [ gfortran which ];
|
nativeBuildInputs = [ gfortran which ];
|
||||||
buildInputs =
|
buildInputs =
|
||||||
[ apfel apfelgrid applgrid blas lhapdf liblapackWithoutAtlas mela root5 qcdnum ]
|
[ apfel apfelgrid applgrid blas lhapdf liblapack mela root5 qcdnum ]
|
||||||
# pdf2yaml requires fmemopen and open_memstream which are not readily available on Darwin
|
# pdf2yaml requires fmemopen and open_memstream which are not readily available on Darwin
|
||||||
++ stdenv.lib.optional (!stdenv.isDarwin) libyaml
|
++ stdenv.lib.optional (!stdenv.isDarwin) libyaml
|
||||||
;
|
;
|
||||||
|
|
|
@ -1,126 +0,0 @@
|
||||||
{ stdenv, fetchurl, gfortran, tolerateCpuTimingInaccuracy ? true, shared ? false
|
|
||||||
, cpuConfig ? if stdenv.isi686 then "-b 32 -A 12 -V 1" else "-b 64 -A 14 -V 384"
|
|
||||||
, cacheEdge ? "262144"
|
|
||||||
, threads ? "0"
|
|
||||||
, liblapack, withLapack
|
|
||||||
}:
|
|
||||||
|
|
||||||
# Atlas detects the CPU and optimizes its build accordingly. This is great when
|
|
||||||
# the code is run on the same machine that built the binary, but in case of a
|
|
||||||
# central build farm like Hydra, this feature is dangerous because the code may
|
|
||||||
# be generated utilizing fancy features that users who download the binary
|
|
||||||
# cannot execute.
|
|
||||||
#
|
|
||||||
# To avoid these issues, the build is configured using the 'cpuConfig'
|
|
||||||
# parameter. Upstream recommends these defaults for distributions:
|
|
||||||
#
|
|
||||||
# | x86 CPU | x86_64 CPU |
|
|
||||||
# |---------------------------------------------+------------------------|
|
|
||||||
# | -b 32 | -b 64 |
|
|
||||||
# | -A 12 (x86x87) | -A 14 (x86SSE2) |
|
|
||||||
# | -V 1 (No SIMD) | -V 384 (SSE1 and SSE2) |
|
|
||||||
#
|
|
||||||
# These defaults should give consistent performance across machines.
|
|
||||||
# Performance will be substantially lower than an optimized build, but a build
|
|
||||||
# optimized for one machine will give even worse performance on others. If you
|
|
||||||
# are a serious user of Atlas (e.g., you write code that uses it) you should
|
|
||||||
# compile an optimized version for each of your machines.
|
|
||||||
#
|
|
||||||
# The parameter 'cacheEdge' sets the L2 cache per core (in bytes). Setting this
|
|
||||||
# parameter reduces build time because some tests to detect the L2 cache size
|
|
||||||
# will not be run. It will also reduce impurity; different build nodes on Hydra
|
|
||||||
# may have different L2 cache sizes, but fixing the L2 cache size should
|
|
||||||
# account for that. This also makes the performance of binary substitutes more
|
|
||||||
# consistent.
|
|
||||||
#
|
|
||||||
# The -V flags can change with each release as new instruction sets are added
|
|
||||||
# because upstream thinks it's a good idea to add entries at the start of an
|
|
||||||
# enum, rather than the end. If the build suddenly fails with messages about
|
|
||||||
# missing instruction sets, you may need to poke around in the source a bit.
|
|
||||||
#
|
|
||||||
# Upstream recommends the x86x87/x86SSE2 architectures for generic x86/x86_64
|
|
||||||
# for distribution builds. Additionally, we set 'cacheEdge' to reduce impurity.
|
|
||||||
# Otherwise, the cache parameters will be detected by timing which will be
|
|
||||||
# highly variable on Hydra.
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (stdenv.lib) optional optionalString;
|
|
||||||
# Don't upgrade until https://github.com/math-atlas/math-atlas/issues/44
|
|
||||||
# is resolved.
|
|
||||||
version = "3.10.3";
|
|
||||||
in
|
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
name = "atlas${optionalString withLapack "-with-lapack"}-${version}";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "mirror://sourceforge/math-atlas/atlas${version}.tar.bz2";
|
|
||||||
sha256 = "1dyjlq3fiparvm8ypwk6rsmjzmnwk81l88gkishphpvc79ryp216";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = [ gfortran ];
|
|
||||||
|
|
||||||
# Atlas aborts the build if it detects that some kind of CPU frequency
|
|
||||||
# scaling is active on the build machine because that feature offsets the
|
|
||||||
# performance timings. We ignore that check, however, because with binaries
|
|
||||||
# being pre-built on Hydra those timings aren't accurate for the local
|
|
||||||
# machine in the first place.
|
|
||||||
patches = optional tolerateCpuTimingInaccuracy ./disable-timing-accuracy-check.patch
|
|
||||||
++ optional stdenv.isDarwin ./tmpdir.patch;
|
|
||||||
|
|
||||||
hardeningDisable = [ "format" ];
|
|
||||||
|
|
||||||
# Configure outside of the source directory.
|
|
||||||
preConfigure = ''
|
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
configureScript=../configure
|
|
||||||
'';
|
|
||||||
|
|
||||||
# * -t 0 disables use of multi-threading. It's not quite clear what the
|
|
||||||
# consequences of that setting are and whether it's necessary or not.
|
|
||||||
configureFlags = [
|
|
||||||
"-t ${threads}"
|
|
||||||
cpuConfig
|
|
||||||
] ++ optional shared "--shared"
|
|
||||||
++ optional withLapack "--with-netlib-lapack-tarfile=${liblapack.src}";
|
|
||||||
|
|
||||||
postConfigure = ''
|
|
||||||
if [[ -n "${cacheEdge}" ]]; then
|
|
||||||
echo '#define CacheEdge ${cacheEdge}' >> include/atlas_cacheedge.h
|
|
||||||
echo '#define CacheEdge ${cacheEdge}' >> include/atlas_tcacheedge.h
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
|
|
||||||
doCheck = true;
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
# Avoid name collision with the real lapack (ATLAS only builds a partial
|
|
||||||
# lapack unless withLapack = true).
|
|
||||||
if ${if withLapack then "false" else "true"}; then
|
|
||||||
mv $out/lib/liblapack.a $out/lib/liblapack_atlas.a
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
|
|
||||||
# 1. /buildATLAS/build/bin/ATLrun.sh: multiple segfaults.
|
|
||||||
# 2. "atlas does its own parallel builds"
|
|
||||||
enableParallelBuilding = false;
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
homepage = http://math-atlas.sourceforge.net/;
|
|
||||||
description = "Automatically Tuned Linear Algebra Software (ATLAS)";
|
|
||||||
license = stdenv.lib.licenses.bsd3;
|
|
||||||
broken = stdenv.isDarwin; # test when updating to >=3.10.3
|
|
||||||
platforms = stdenv.lib.platforms.unix;
|
|
||||||
|
|
||||||
longDescription = ''
|
|
||||||
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.
|
|
||||||
'';
|
|
||||||
|
|
||||||
maintainers = with stdenv.lib.maintainers; [ ttuegel ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
diff -ubr ATLAS-orig/CONFIG/src/config.c ATLAS/CONFIG/src/config.c
|
|
||||||
--- ATLAS-orig/CONFIG/src/config.c 2013-02-06 11:23:47.078036878 +0100
|
|
||||||
+++ ATLAS/CONFIG/src/config.c 2013-02-06 11:24:16.481120888 +0100
|
|
||||||
@@ -711,17 +711,7 @@
|
|
||||||
|
|
||||||
int ProbeCPUThrottle(int verb, char *targarg, enum OSTYPE OS, enum ASMDIA asmb)
|
|
||||||
{
|
|
||||||
- int i, iret;
|
|
||||||
- char *ln;
|
|
||||||
- i = strlen(targarg) + 22 + 12;
|
|
||||||
- ln = malloc(i*sizeof(char));
|
|
||||||
- assert(ln);
|
|
||||||
- sprintf(ln, "%s -O %d -s %d -t", targarg, OS, asmb);
|
|
||||||
- iret = GetIntProbe(verb, ln, "arch", "CPU THROTTLE", 0);
|
|
||||||
- free(ln);
|
|
||||||
- if (iret) printf("CPU Throttling apparently enabled!\n");
|
|
||||||
- else printf("Cannot detect CPU throttling.\n");
|
|
||||||
- return(iret);
|
|
||||||
+ return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
char *NewAppendedString_SFLAG(char *old, char *flag, char *str)
|
|
|
@ -1,276 +0,0 @@
|
||||||
diff --git a/CONFIG/ARCHS/negflt.c b/CONFIG/ARCHS/negflt.c
|
|
||||||
index e5b7871..d45e387 100644
|
|
||||||
--- a/CONFIG/ARCHS/negflt.c
|
|
||||||
+++ b/CONFIG/ARCHS/negflt.c
|
|
||||||
@@ -239,7 +239,7 @@ void NegFile(char *fnam, int N, int *cols)
|
|
||||||
FILE *fpin, *fpout;
|
|
||||||
WORDS *wp0, *wp;
|
|
||||||
|
|
||||||
- tnam = tmpnam(NULL);
|
|
||||||
+ tnam = tempnam(NULL, NULL);
|
|
||||||
fpin = fopen(fnam, "r");
|
|
||||||
assert(fpin);
|
|
||||||
fpout = fopen(tnam, "w");
|
|
||||||
diff --git a/CONFIG/include/atlas_sys.h b/CONFIG/include/atlas_sys.h
|
|
||||||
index b83a749..8902d38 100644
|
|
||||||
--- a/CONFIG/include/atlas_sys.h
|
|
||||||
+++ b/CONFIG/include/atlas_sys.h
|
|
||||||
@@ -216,12 +216,13 @@ static char *ATL_fgets_CWS(char *sout, int *plen, FILE *fpin)
|
|
||||||
|
|
||||||
static char *ATL_tmpnam(void)
|
|
||||||
{
|
|
||||||
- static char tnam[L_tmpnam];
|
|
||||||
+ static char *tnam;
|
|
||||||
static char FirstTime=1;
|
|
||||||
if (FirstTime)
|
|
||||||
{
|
|
||||||
FirstTime = 0;
|
|
||||||
- assert(tmpnam(tnam));
|
|
||||||
+ tnam = tempnam(NULL, NULL);
|
|
||||||
+ assert(tnam);
|
|
||||||
}
|
|
||||||
return(tnam);
|
|
||||||
}
|
|
||||||
diff --git a/bin/atlas_install.c b/bin/atlas_install.c
|
|
||||||
index 2753cbf..e49cc3e 100644
|
|
||||||
--- a/bin/atlas_install.c
|
|
||||||
+++ b/bin/atlas_install.c
|
|
||||||
@@ -662,7 +662,8 @@ void GoToTown(int ARCHDEF, int L1DEF, int TuneLA)
|
|
||||||
{
|
|
||||||
const char TR[2] = {'N','T'};
|
|
||||||
char prec[4] = {'d', 's', 'z', 'c'}, pre, upre, *typ;
|
|
||||||
- char ln[1024], tnam[256], ln2[512], ln3[512], fnam[128];
|
|
||||||
+ char ln[1024], ln2[512], ln3[512], fnam[128];
|
|
||||||
+ char *tnam;
|
|
||||||
char *mulinst, *peakstr, *peakstr2;
|
|
||||||
int nprec=4;
|
|
||||||
int iL1, lat, muladd, maused, latuse, lbnreg;
|
|
||||||
@@ -681,7 +682,7 @@ void GoToTown(int ARCHDEF, int L1DEF, int TuneLA)
|
|
||||||
fpsum = fopen("INSTALL_LOG/SUMMARY.LOG", "a");
|
|
||||||
ATL_Cassert(fpsum, "OPENING INSTALL_LOG/SUMMARY.LOG", NULL);
|
|
||||||
|
|
||||||
- ATL_Cassert(tmpnam(tnam), "GETTING TEMPFILE", NULL);
|
|
||||||
+ ATL_Cassert((tnam = tempnam(NULL, NULL)), "GETTING TEMPFILE", NULL);
|
|
||||||
|
|
||||||
if (L1DEF)
|
|
||||||
{
|
|
||||||
diff --git a/bin/extract.c b/bin/extract.c
|
|
||||||
index 7a5a926..53fb8bf 100644
|
|
||||||
--- a/bin/extract.c
|
|
||||||
+++ b/bin/extract.c
|
|
||||||
@@ -3378,7 +3378,7 @@ void PushProc0(EXTENV *EE, EXTPROC **basep, EXTPROC **myfuncs, char *ln)
|
|
||||||
pp->argnams = KillWord(wp, wp);
|
|
||||||
pp->nargs = CountWords(pp->argnams);
|
|
||||||
|
|
||||||
- cp = tmpnam(NULL);
|
|
||||||
+ cp = tempnam(NULL, NULL);
|
|
||||||
if (cp == NULL) ExtErr(EE, "Out of tmpnams!!!");
|
|
||||||
i = Wstrlen(cp) + 1;
|
|
||||||
pp->FileNam = malloc(i*sizeof(char));
|
|
||||||
diff --git a/include/atlas_mvtesttime.h b/include/atlas_mvtesttime.h
|
|
||||||
index 9147fcb..ab6a99f 100644
|
|
||||||
--- a/include/atlas_mvtesttime.h
|
|
||||||
+++ b/include/atlas_mvtesttime.h
|
|
||||||
@@ -105,14 +105,15 @@ static int MVKernelFailsTest
|
|
||||||
char ln[4096];
|
|
||||||
char *sp;
|
|
||||||
int i, lda0;
|
|
||||||
- static char outnam[L_tmpnam];
|
|
||||||
+ static char* outnam;
|
|
||||||
static int FirstTime=1;
|
|
||||||
|
|
||||||
if (FirstTime)
|
|
||||||
{
|
|
||||||
|
|
||||||
FirstTime = 0;
|
|
||||||
- assert(tmpnam(outnam));
|
|
||||||
+ outnam = tempnam(NULL, NULL);
|
|
||||||
+ assert(outnam);
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
* If the file is generated, call generator to create it
|
|
||||||
@@ -221,14 +222,15 @@ static double TimeMVKernel
|
|
||||||
char ln[2048], resf[256], *sp;
|
|
||||||
double *dp, mf;
|
|
||||||
int i, align = pre2size(pre);
|
|
||||||
- static char outnam[L_tmpnam];
|
|
||||||
+ static char* outnam;
|
|
||||||
static int FirstTime=1;
|
|
||||||
|
|
||||||
if (FirstTime)
|
|
||||||
{
|
|
||||||
|
|
||||||
FirstTime = 0;
|
|
||||||
- assert(tmpnam(outnam));
|
|
||||||
+ outnam = tempnam(NULL, NULL);
|
|
||||||
+ assert(outnam);
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
* If the file is generated, call generator to create it
|
|
||||||
diff --git a/include/atlas_r1testtime.h b/include/atlas_r1testtime.h
|
|
||||||
index b33213a..f27ee25 100644
|
|
||||||
--- a/include/atlas_r1testtime.h
|
|
||||||
+++ b/include/atlas_r1testtime.h
|
|
||||||
@@ -76,14 +76,15 @@ static int R1KernelFailsTest
|
|
||||||
char ln[4096];
|
|
||||||
char *sp;
|
|
||||||
int i, lda0;
|
|
||||||
- static char outnam[L_tmpnam];
|
|
||||||
+ static char* outnam;
|
|
||||||
static int FirstTime=1;
|
|
||||||
|
|
||||||
if (FirstTime)
|
|
||||||
{
|
|
||||||
|
|
||||||
FirstTime = 0;
|
|
||||||
- assert(tmpnam(outnam));
|
|
||||||
+ outnam = tempnam(NULL, NULL);
|
|
||||||
+ assert(outnam);
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
* If the file is generated, call generator to create it
|
|
||||||
@@ -187,14 +188,15 @@ static double TimeR1Kernel
|
|
||||||
char ln[2048], resf[256], *sp;
|
|
||||||
double *dp, mf;
|
|
||||||
int i, align = pre2size(pre);
|
|
||||||
- static char outnam[L_tmpnam];
|
|
||||||
+ static char* outnam;
|
|
||||||
static int FirstTime=1;
|
|
||||||
|
|
||||||
if (FirstTime)
|
|
||||||
{
|
|
||||||
|
|
||||||
FirstTime = 0;
|
|
||||||
- assert(tmpnam(outnam));
|
|
||||||
+ outnam = tempnam(NULL, NULL);
|
|
||||||
+ assert(outnam);
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
* If the file is generated, call generator to create it
|
|
||||||
diff --git a/include/atlas_r2testtime.h b/include/atlas_r2testtime.h
|
|
||||||
index facc66d..c638dce 100644
|
|
||||||
--- a/include/atlas_r2testtime.h
|
|
||||||
+++ b/include/atlas_r2testtime.h
|
|
||||||
@@ -76,14 +76,15 @@ static int R2KernelFailsTest
|
|
||||||
char ln[4096];
|
|
||||||
char *sp;
|
|
||||||
int i, lda0;
|
|
||||||
- static char outnam[L_tmpnam];
|
|
||||||
+ static char* outnam;
|
|
||||||
static int FirstTime=1;
|
|
||||||
|
|
||||||
if (FirstTime)
|
|
||||||
{
|
|
||||||
|
|
||||||
FirstTime = 0;
|
|
||||||
- assert(tmpnam(outnam));
|
|
||||||
+ outnam = tempnam(NULL, NULL);
|
|
||||||
+ assert(outnam);
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
* If the file is generated, call generator to create it
|
|
||||||
@@ -187,14 +188,15 @@ static double TimeR2Kernel
|
|
||||||
char ln[2048], resf[256], *sp;
|
|
||||||
double *dp, mf;
|
|
||||||
int i, align = pre2size(pre);
|
|
||||||
- static char outnam[L_tmpnam];
|
|
||||||
+ static char* outnam;
|
|
||||||
static int FirstTime=1;
|
|
||||||
|
|
||||||
if (FirstTime)
|
|
||||||
{
|
|
||||||
|
|
||||||
FirstTime = 0;
|
|
||||||
- assert(tmpnam(outnam));
|
|
||||||
+ outnam = tempnam(NULL, NULL);
|
|
||||||
+ assert(outnam);
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
* If the file is generated, call generator to create it
|
|
||||||
diff --git a/include/atlas_sys.h b/include/atlas_sys.h
|
|
||||||
index b83a749..b3f88d2 100644
|
|
||||||
--- a/include/atlas_sys.h
|
|
||||||
+++ b/include/atlas_sys.h
|
|
||||||
@@ -216,12 +216,13 @@ static char *ATL_fgets_CWS(char *sout, int *plen, FILE *fpin)
|
|
||||||
|
|
||||||
static char *ATL_tmpnam(void)
|
|
||||||
{
|
|
||||||
- static char tnam[L_tmpnam];
|
|
||||||
+ static char* tnam;
|
|
||||||
static char FirstTime=1;
|
|
||||||
if (FirstTime)
|
|
||||||
{
|
|
||||||
FirstTime = 0;
|
|
||||||
- assert(tmpnam(tnam));
|
|
||||||
+ tnam = tempnam(NULL, NULL);
|
|
||||||
+ assert(tnam);
|
|
||||||
}
|
|
||||||
return(tnam);
|
|
||||||
}
|
|
||||||
diff --git a/tune/blas/gemm/usercomb.c b/tune/blas/gemm/usercomb.c
|
|
||||||
index 59a7cd4..eb3eb05 100644
|
|
||||||
--- a/tune/blas/gemm/usercomb.c
|
|
||||||
+++ b/tune/blas/gemm/usercomb.c
|
|
||||||
@@ -138,11 +138,13 @@ int GetUserCase(char pre, int icase, int *iflag, int *mb, int *nb, int *kb,
|
|
||||||
|
|
||||||
void CombineFiles(char *fout, int nfiles, char **fnams)
|
|
||||||
{
|
|
||||||
- char tnam[256], ln[512];
|
|
||||||
+ char ln[512];
|
|
||||||
+ char *tnam;
|
|
||||||
int i, j, n, nn;
|
|
||||||
FILE *fpout, *fpin;
|
|
||||||
|
|
||||||
- assert(tmpnam(tnam));
|
|
||||||
+ tnam = tempnam(NULL, NULL);
|
|
||||||
+ assert(tnam);
|
|
||||||
for (n=i=0; i < nfiles; i++) n += NumUserCases0(fnams[i]);
|
|
||||||
|
|
||||||
fpout = fopen(tnam, "w");
|
|
||||||
diff --git a/tune/blas/gemm/userflag.c b/tune/blas/gemm/userflag.c
|
|
||||||
index c3983e4..b7dd70b 100644
|
|
||||||
--- a/tune/blas/gemm/userflag.c
|
|
||||||
+++ b/tune/blas/gemm/userflag.c
|
|
||||||
@@ -139,8 +139,8 @@ int GetUserCase(char pre, int icase, int *iflag, int *mb, int *nb, int *kb,
|
|
||||||
|
|
||||||
void GoGetThem(char *infile, char *outfile)
|
|
||||||
{
|
|
||||||
- char ln[512], ln2[512], tnam[256], MCC[256], MMFLAGS[256];
|
|
||||||
- char *chkfile = "FlagCheck.c", *sp, *sp2;
|
|
||||||
+ char ln[512], ln2[512], MCC[256], MMFLAGS[256];
|
|
||||||
+ char *chkfile = "FlagCheck.c", *sp, *sp2, *tnam;
|
|
||||||
FILE *fpin, *fpout;
|
|
||||||
int i, j, n, nmin=0, good;
|
|
||||||
int wass;
|
|
||||||
@@ -152,7 +152,8 @@ void GoGetThem(char *infile, char *outfile)
|
|
||||||
n = NumUserCases0(infile);
|
|
||||||
fpin = fopen(infile, "r");
|
|
||||||
assert(fpin);
|
|
||||||
- assert(tmpnam(tnam));
|
|
||||||
+ tnam = tempnam(NULL, NULL);
|
|
||||||
+ assert(tnam);
|
|
||||||
fpout = fopen(tnam, "w");
|
|
||||||
assert(fpout);
|
|
||||||
assert(fgets(ln, 512, fpin));
|
|
||||||
diff --git a/tune/sysinfo/emit_buildinfo.c b/tune/sysinfo/emit_buildinfo.c
|
|
||||||
index 309c06a..3feaea7 100644
|
|
||||||
--- a/tune/sysinfo/emit_buildinfo.c
|
|
||||||
+++ b/tune/sysinfo/emit_buildinfo.c
|
|
||||||
@@ -41,14 +41,15 @@ static char SMCVERS[LNLEN], DMCVERS[LNLEN], SKCVERS[LNLEN], DKCVERS[LNLEN];
|
|
||||||
static char UNAM[64], DATE[128];
|
|
||||||
char *CmndResults(char *cmnd)
|
|
||||||
{
|
|
||||||
- static char tnam[128];
|
|
||||||
+ static char* tnam;
|
|
||||||
static int FirstTime=1;
|
|
||||||
char ln[512];
|
|
||||||
|
|
||||||
if (FirstTime)
|
|
||||||
{
|
|
||||||
FirstTime = 0;
|
|
||||||
- assert(tmpnam(tnam));
|
|
||||||
+ tnam = tempnam(NULL, NULL);
|
|
||||||
+ assert(tnam);
|
|
||||||
}
|
|
||||||
sprintf(ln, "%s > %s\n", cmnd, tnam);
|
|
||||||
fprintf(stderr, "system: %s", ln);
|
|
|
@ -4,12 +4,9 @@
|
||||||
gfortran,
|
gfortran,
|
||||||
cmake,
|
cmake,
|
||||||
python2,
|
python2,
|
||||||
atlas ? null,
|
|
||||||
shared ? false
|
shared ? false
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
atlasMaybeShared = if atlas != null then atlas.override { inherit shared; }
|
|
||||||
else null;
|
|
||||||
usedLibExtension = if shared then ".so" else ".a";
|
usedLibExtension = if shared then ".so" else ".a";
|
||||||
inherit (stdenv.lib) optional optionals;
|
inherit (stdenv.lib) optional optionals;
|
||||||
version = "3.8.0";
|
version = "3.8.0";
|
||||||
|
@ -22,7 +19,6 @@ stdenv.mkDerivation rec {
|
||||||
sha256 = "1xmwi2mqmipvg950gb0rhgprcps8gy8sjm8ic9rgy2qjlv22rcny";
|
sha256 = "1xmwi2mqmipvg950gb0rhgprcps8gy8sjm8ic9rgy2qjlv22rcny";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ atlasMaybeShared ];
|
|
||||||
buildInputs = [ gfortran cmake ];
|
buildInputs = [ gfortran cmake ];
|
||||||
nativeBuildInputs = [ python2 ];
|
nativeBuildInputs = [ python2 ];
|
||||||
|
|
||||||
|
@ -30,15 +26,7 @@ stdenv.mkDerivation rec {
|
||||||
"-DUSE_OPTIMIZED_BLAS=ON"
|
"-DUSE_OPTIMIZED_BLAS=ON"
|
||||||
"-DCMAKE_Fortran_FLAGS=-fPIC"
|
"-DCMAKE_Fortran_FLAGS=-fPIC"
|
||||||
]
|
]
|
||||||
++ (optionals (atlas != null) [
|
++ (optional shared "-DBUILD_SHARED_LIBS=ON");
|
||||||
"-DBLAS_ATLAS_f77blas_LIBRARY=${atlasMaybeShared}/lib/libf77blas${usedLibExtension}"
|
|
||||||
"-DBLAS_ATLAS_atlas_LIBRARY=${atlasMaybeShared}/lib/libatlas${usedLibExtension}"
|
|
||||||
])
|
|
||||||
++ (optional shared "-DBUILD_SHARED_LIBS=ON")
|
|
||||||
# If we're on darwin, CMake will automatically detect impure paths. This switch
|
|
||||||
# prevents that.
|
|
||||||
++ (optional stdenv.isDarwin "-DCMAKE_OSX_SYSROOT:PATH=''")
|
|
||||||
;
|
|
||||||
|
|
||||||
doCheck = ! shared;
|
doCheck = ! shared;
|
||||||
|
|
||||||
|
@ -48,10 +36,6 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
passthru = {
|
|
||||||
blas = atlas;
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
inherit version;
|
inherit version;
|
||||||
description = "Linear Algebra PACKage";
|
description = "Linear Algebra PACKage";
|
||||||
|
|
|
@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
|
||||||
homepage = http://www.netlib.org/scalapack/;
|
homepage = http://www.netlib.org/scalapack/;
|
||||||
description = "Library of high-performance linear algebra routines for parallel distributed memory machines";
|
description = "Library of high-performance linear algebra routines for parallel distributed memory machines";
|
||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
platforms = platforms.all;
|
platforms = platforms.linux;
|
||||||
maintainers = [ maintainers.costrouc ];
|
maintainers = [ maintainers.costrouc ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -164,6 +164,7 @@ mapAliases ({
|
||||||
libgumbo = gumbo; # added 2018-01-21
|
libgumbo = gumbo; # added 2018-01-21
|
||||||
libintlOrEmpty = stdenv.lib.optional (!stdenv.isLinux || stdenv.hostPlatform.libc != "glibc") gettext; # added 2018-03-14
|
libintlOrEmpty = stdenv.lib.optional (!stdenv.isLinux || stdenv.hostPlatform.libc != "glibc") gettext; # added 2018-03-14
|
||||||
libjson_rpc_cpp = libjson-rpc-cpp; # added 2017-02-28
|
libjson_rpc_cpp = libjson-rpc-cpp; # added 2017-02-28
|
||||||
|
liblapackWithoutAtlas = liblapack; # added 2018-11-05
|
||||||
libmysql = mysql.connector-c; # added # 2017-12-28, this was a misnomer refering to libmysqlclient
|
libmysql = mysql.connector-c; # added # 2017-12-28, this was a misnomer refering to libmysqlclient
|
||||||
librecad2 = librecad; # backwards compatibility alias, added 2015-10
|
librecad2 = librecad; # backwards compatibility alias, added 2015-10
|
||||||
libsysfs = sysfsutils; # added 2018-04-25
|
libsysfs = sysfsutils; # added 2018-04-25
|
||||||
|
|
|
@ -16156,9 +16156,7 @@ with pkgs;
|
||||||
|
|
||||||
cpp_ethereum = callPackage ../applications/misc/cpp-ethereum { };
|
cpp_ethereum = callPackage ../applications/misc/cpp-ethereum { };
|
||||||
|
|
||||||
csdp = callPackage ../applications/science/math/csdp {
|
csdp = callPackage ../applications/science/math/csdp { };
|
||||||
liblapack = liblapackWithoutAtlas;
|
|
||||||
};
|
|
||||||
|
|
||||||
ctop = callPackage ../tools/system/ctop { };
|
ctop = callPackage ../tools/system/ctop { };
|
||||||
|
|
||||||
|
@ -21245,16 +21243,6 @@ with pkgs;
|
||||||
|
|
||||||
arpack = callPackage ../development/libraries/science/math/arpack { };
|
arpack = callPackage ../development/libraries/science/math/arpack { };
|
||||||
|
|
||||||
atlas = callPackage ../development/libraries/science/math/atlas {
|
|
||||||
# The build process measures CPU capabilities and optimizes the
|
|
||||||
# library to perform best on that particular machine. That is a
|
|
||||||
# great feature, but it's of limited use with pre-built binaries
|
|
||||||
# coming from a central build farm.
|
|
||||||
tolerateCpuTimingInaccuracy = true;
|
|
||||||
liblapack = liblapackWithoutAtlas;
|
|
||||||
withLapack = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
blas = callPackage ../development/libraries/science/math/blas { };
|
blas = callPackage ../development/libraries/science/math/blas { };
|
||||||
|
|
||||||
brial = callPackage ../development/libraries/science/math/brial { };
|
brial = callPackage ../development/libraries/science/math/brial { };
|
||||||
|
@ -21277,13 +21265,7 @@ with pkgs;
|
||||||
|
|
||||||
libhomfly = callPackage ../development/libraries/science/math/libhomfly { };
|
libhomfly = callPackage ../development/libraries/science/math/libhomfly { };
|
||||||
|
|
||||||
# We have essentially 4 permutations of liblapack: version 3.4.1 or 3.5.0,
|
|
||||||
# and with or without atlas as a dependency. The default `liblapack` is 3.4.1
|
|
||||||
# with atlas. Atlas, when built with liblapack as a dependency, uses 3.5.0
|
|
||||||
# without atlas. Etc.
|
|
||||||
liblapack = callPackage ../development/libraries/science/math/liblapack {};
|
liblapack = callPackage ../development/libraries/science/math/liblapack {};
|
||||||
liblapackWithoutAtlas = liblapackWithAtlas.override { atlas = null; };
|
|
||||||
liblapackWithAtlas = liblapack;
|
|
||||||
|
|
||||||
liblbfgs = callPackage ../development/libraries/science/math/liblbfgs { };
|
liblbfgs = callPackage ../development/libraries/science/math/liblbfgs { };
|
||||||
|
|
||||||
|
@ -21350,9 +21332,7 @@ with pkgs;
|
||||||
|
|
||||||
QuadProgpp = callPackage ../development/libraries/science/math/QuadProgpp { };
|
QuadProgpp = callPackage ../development/libraries/science/math/QuadProgpp { };
|
||||||
|
|
||||||
scs = callPackage ../development/libraries/science/math/scs {
|
scs = callPackage ../development/libraries/science/math/scs { };
|
||||||
liblapack = liblapackWithoutAtlas;
|
|
||||||
};
|
|
||||||
|
|
||||||
sage = callPackage ../applications/science/math/sage {
|
sage = callPackage ../applications/science/math/sage {
|
||||||
nixpkgs = pkgs;
|
nixpkgs = pkgs;
|
||||||
|
|
|
@ -18,7 +18,6 @@ with import ./release-lib.nix { inherit supportedSystems; };
|
||||||
|
|
||||||
aspell = all;
|
aspell = all;
|
||||||
at = linux;
|
at = linux;
|
||||||
atlas = linux;
|
|
||||||
autoconf = all;
|
autoconf = all;
|
||||||
automake = all;
|
automake = all;
|
||||||
avahi = unix; # Cygwin builds fail
|
avahi = unix; # Cygwin builds fail
|
||||||
|
|
Loading…
Reference in New Issue