blas,lapack: use isILP64 instead of is64bit

This is a better name since we have multiple 64-bit things that could
be referred to.

LP64  : integer=32, long=64, pointer=64
ILP64 : integer=64, long=64, pointer=64
This commit is contained in:
Matthew Bauer 2020-04-20 15:50:55 -05:00
parent f86d582ea7
commit ff2f2644f8
32 changed files with 47 additions and 47 deletions

View File

@ -2,7 +2,7 @@
, libyaml, libxc, fftw, blas, lapack, gsl, netcdf, arpack, autoreconfHook , libyaml, libxc, fftw, blas, lapack, gsl, netcdf, arpack, autoreconfHook
}: }:
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "octopus"; pname = "octopus";

View File

@ -13,7 +13,7 @@
assert pythonSupport -> pythonPackages != null; assert pythonSupport -> pythonPackages != null;
assert opencvSupport -> opencv != null; assert opencvSupport -> opencv != null;
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
let let
pname = "shogun"; pname = "shogun";

View File

@ -9,7 +9,7 @@
, static ? false , static ? false
}: }:
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "R-3.6.3"; name = "R-3.6.3";

View File

@ -5,7 +5,7 @@
}: }:
assert enableGUI -> libGLU != null && libGL != null && xorg != null && fltk != null; assert enableGUI -> libGLU != null && libGL != null && xorg != null && fltk != null;
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "giac${lib.optionalString enableGUI "-with-xcas"}"; pname = "giac${lib.optionalString enableGUI "-with-xcas"}";

View File

@ -1,7 +1,7 @@
{ stdenv, fetchurl, cmake, blas, lapack, gfortran, gmm, fltk, libjpeg { stdenv, fetchurl, cmake, blas, lapack, gfortran, gmm, fltk, libjpeg
, zlib, libGL, libGLU, xorg, opencascade-occt }: , zlib, libGL, libGLU, xorg, opencascade-occt }:
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gmsh"; pname = "gmsh";

View File

@ -54,7 +54,7 @@
, less , less
}: }:
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
# This generates a `sage-env` shell file that will be sourced by sage on startup. # This generates a `sage-env` shell file that will be sourced by sage on startup.
# It sets up various environment variables, telling sage where to find its # It sets up various environment variables, telling sage where to find its

View File

@ -23,7 +23,7 @@
}: }:
# lots of segfaults with (64 bit) blas # lots of segfaults with (64 bit) blas
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
# Wrapper that combined `sagelib` with `sage-env` to produce an actually # Wrapper that combined `sagelib` with `sage-env` to produce an actually
# executable sage. No tests are run yet and no documentation is built. # executable sage. No tests are run yet and no documentation is built.

View File

@ -53,7 +53,7 @@
, pplpy , pplpy
}: }:
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
# This is the core sage python package. Everything else is just wrappers gluing # This is the core sage python package. Everything else is just wrappers gluing
# stuff together. It is not very useful on its own though, since it will not # stuff together. It is not very useful on its own though, since it will not

View File

@ -1,7 +1,7 @@
{ lib, stdenv { lib, stdenv
, lapack-reference, openblasCompat, openblas , lapack-reference, openblasCompat, openblas
, is64bit ? false , isILP64 ? false
, blasProvider ? if is64bit then openblas else openblasCompat }: , blasProvider ? if isILP64 then openblas else openblasCompat }:
let let
blasFortranSymbols = [ blasFortranSymbols = [
@ -31,12 +31,12 @@ let
else stdenv.hostPlatform.extensions.sharedLibrary; else stdenv.hostPlatform.extensions.sharedLibrary;
is64bit = blasProvider.blas64 or false; isILP64 = blasProvider.blas64 or false;
blasImplementation = lib.getName blasProvider; blasImplementation = lib.getName blasProvider;
in in
assert is64bit -> (blasImplementation == "openblas" && blasProvider.blas64) || blasImplementation == "mkl"; assert isILP64 -> (blasImplementation == "openblas" && blasProvider.blas64) || blasImplementation == "mkl";
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "blas"; pname = "blas";
@ -49,7 +49,7 @@ stdenv.mkDerivation {
}; };
passthru = { passthru = {
inherit is64bit; inherit isILP64;
provider = blasProvider; provider = blasProvider;
implementation = blasImplementation; implementation = blasImplementation;
}; };
@ -134,6 +134,6 @@ Libs: -L$out/lib -lcblas
EOF EOF
'' + stdenv.lib.optionalString (blasImplementation == "mkl") '' '' + stdenv.lib.optionalString (blasImplementation == "mkl") ''
mkdir -p $out/nix-support mkdir -p $out/nix-support
echo 'export MKL_INTERFACE_LAYER=${lib.optionalString is64bit "I"}LP64,GNU' > $out/nix-support/setup-hook echo 'export MKL_INTERFACE_LAYER=${lib.optionalString isILP64 "I"}LP64,GNU' > $out/nix-support/setup-hook
''); '');
} }

View File

@ -1,7 +1,7 @@
{ lib, stdenv { lib, stdenv
, lapack-reference, openblasCompat, openblas , lapack-reference, openblasCompat, openblas
, is64bit ? false , isILP64 ? false
, lapackProvider ? if is64bit then openblas else openblasCompat }: , lapackProvider ? if isILP64 then openblas else openblasCompat }:
let let
@ -14,7 +14,7 @@ let
in in
assert is64bit -> (lapackImplementation == "openblas" && lapackProvider.blas64) || lapackImplementation == "mkl"; assert isILP64 -> (lapackImplementation == "openblas" && lapackProvider.blas64) || lapackImplementation == "mkl";
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "lapack"; pname = "lapack";
@ -27,7 +27,7 @@ stdenv.mkDerivation {
}; };
passthru = { passthru = {
inherit is64bit; inherit isILP64;
provider = lapackProvider; provider = lapackProvider;
implementation = lapackImplementation; implementation = lapackImplementation;
}; };
@ -108,6 +108,6 @@ Libs: -L$out/lib -llapacke
EOF EOF
'' + stdenv.lib.optionalString (lapackImplementation == "mkl") '' '' + stdenv.lib.optionalString (lapackImplementation == "mkl") ''
mkdir -p $out/nix-support mkdir -p $out/nix-support
echo 'export MKL_INTERFACE_LAYER=${lib.optionalString is64bit "I"}LP64,GNU' > $out/nix-support/setup-hook echo 'export MKL_INTERFACE_LAYER=${lib.optionalString isILP64 "I"}LP64,GNU' > $out/nix-support/setup-hook
''); '');
} }

View File

@ -12,7 +12,7 @@
, CoreServices, ApplicationServices , CoreServices, ApplicationServices
}: }:
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
with stdenv.lib; with stdenv.lib;
@ -88,7 +88,7 @@ stdenv.mkDerivation rec {
"SHELL=${stdenv.shell}" "SHELL=${stdenv.shell}"
"USE_SYSTEM_BLAS=1" "USE_SYSTEM_BLAS=1"
"USE_BLAS64=${if blas.is64bit then "1" else "0"}" "USE_BLAS64=${if blas.isILP64 then "1" else "0"}"
"USE_SYSTEM_LAPACK=1" "USE_SYSTEM_LAPACK=1"

View File

@ -22,7 +22,7 @@
with stdenv.lib; with stdenv.lib;
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
let let
dsfmtVersion = "2.2.3"; dsfmtVersion = "2.2.3";
@ -137,7 +137,7 @@ stdenv.mkDerivation rec {
"SHELL=${stdenv.shell}" "SHELL=${stdenv.shell}"
"USE_SYSTEM_BLAS=1" "USE_SYSTEM_BLAS=1"
"USE_BLAS64=${if blas.is64bit then "1" else "0"}" "USE_BLAS64=${if blas.isILP64 then "1" else "0"}"
"USE_SYSTEM_LAPACK=1" "USE_SYSTEM_LAPACK=1"

View File

@ -53,7 +53,7 @@
, darwin , darwin
}: }:
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "5.2.0"; version = "5.2.0";
@ -125,12 +125,12 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
# See https://savannah.gnu.org/bugs/?50339 # See https://savannah.gnu.org/bugs/?50339
F77_INTEGER_8_FLAG = if blas.is64bit then "-fdefault-integer-8" else ""; F77_INTEGER_8_FLAG = if blas.isILP64 then "-fdefault-integer-8" else "";
configureFlags = [ configureFlags = [
"--with-blas=blas" "--with-blas=blas"
"--with-lapack=lapack" "--with-lapack=lapack"
(if blas.is64bit then "--enable-64" else "--disable-64") (if blas.isILP64 then "--enable-64" else "--disable-64")
] ]
++ (if stdenv.isDarwin then [ "--enable-link-all-dependencies" ] else [ ]) ++ (if stdenv.isDarwin then [ "--enable-link-all-dependencies" ] else [ ])
++ stdenv.lib.optionals enableReadline [ "--enable-readline" ] ++ stdenv.lib.optionals enableReadline [ "--enable-readline" ]

View File

@ -2,7 +2,7 @@
, gmpxx , gmpxx
}: }:
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "fflas-ffpack"; pname = "fflas-ffpack";

View File

@ -10,7 +10,7 @@
, withSage ? false # sage support , withSage ? false # sage support
}: }:
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "linbox"; pname = "linbox";

View File

@ -18,7 +18,7 @@ stdenv.mkDerivation {
-e 's,^LAPACK=.*,LAPACK=-L${lapack}/lib -llapack,' \ -e 's,^LAPACK=.*,LAPACK=-L${lapack}/lib -llapack,' \
Makeconf Makeconf
'' ''
+ stdenv.lib.optionalString blas.is64bit + stdenv.lib.optionalString blas.isILP64
'' ''
sed -i Makeconf -e '/^FFLAGS=.*/ s/$/-fdefault-integer-8/' sed -i Makeconf -e '/^FFLAGS=.*/ s/$/-fdefault-integer-8/'
''; '';

View File

@ -27,7 +27,7 @@ stdenv.mkDerivation {
cmakeFlags = [ cmakeFlags = [
"-DBUILD_SHARED_LIBS=ON" "-DBUILD_SHARED_LIBS=ON"
"-DINTERFACE64=${optionalString blas.is64bit "1"}" "-DINTERFACE64=${optionalString blas.isILP64 "1"}"
]; ];
preCheck = if stdenv.isDarwin then '' preCheck = if stdenv.isDarwin then ''

View File

@ -1,6 +1,6 @@
{ stdenv, fetchurl, unzip, blas, lapack, gfortran }: { stdenv, fetchurl, unzip, blas, lapack, gfortran }:
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ipopt"; pname = "ipopt";

View File

@ -2,7 +2,7 @@
, gfortran, mpi, blas, lapack , gfortran, mpi, blas, lapack
} : } :
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "scalapack"; pname = "scalapack";

View File

@ -1,6 +1,6 @@
{ stdenv, fetchFromGitHub, blas, lapack, gfortran, fixDarwinDylibNames }: { stdenv, fetchFromGitHub, blas, lapack, gfortran, fixDarwinDylibNames }:
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "scs"; pname = "scs";

View File

@ -1,7 +1,7 @@
{ stdenv, fetchurl, gfortran, blas, lapack }: { stdenv, fetchurl, gfortran, blas, lapack }:
let let
int_t = if blas.is64bit then "int64_t" else "int32_t"; int_t = if blas.isILP64 then "int64_t" else "int32_t";
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "4.2.1"; version = "4.2.1";

View File

@ -6,7 +6,7 @@ let
version = "4.4.4"; version = "4.4.4";
name = "suitesparse-${version}"; name = "suitesparse-${version}";
int_t = if blas.is64bit then "int64_t" else "int32_t"; int_t = if blas.isILP64 then "int64_t" else "int32_t";
SHLIB_EXT = stdenv.hostPlatform.extensions.sharedLibrary; SHLIB_EXT = stdenv.hostPlatform.extensions.sharedLibrary;
in in
stdenv.mkDerivation { stdenv.mkDerivation {

View File

@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
"BLAS=-lblas" "BLAS=-lblas"
"LAPACK=-llapack" "LAPACK=-llapack"
"MY_METIS_LIB=-lmetis" "MY_METIS_LIB=-lmetis"
] ++ stdenv.lib.optionals blas.is64bit [ ] ++ stdenv.lib.optionals blas.isILP64 [
"CFLAGS=-DBLAS64" "CFLAGS=-DBLAS64"
] ++ stdenv.lib.optionals enableCuda [ ] ++ stdenv.lib.optionals enableCuda [
"CUDA_PATH=${cudatoolkit}" "CUDA_PATH=${cudatoolkit}"

View File

@ -1,7 +1,7 @@
{ stdenv, fetchurl, cmake, { stdenv, fetchurl, cmake,
gfortran, blas, lapack}: gfortran, blas, lapack}:
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "5.2.1"; version = "5.2.1";

View File

@ -8,7 +8,7 @@
, gfortran , gfortran
, lapackSupport ? true }: , lapackSupport ? true }:
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "sundials"; pname = "sundials";

View File

@ -7,7 +7,7 @@
, gfortran , gfortran
, lapackSupport ? true }: , lapackSupport ? true }:
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "sundials"; pname = "sundials";

View File

@ -1,7 +1,7 @@
{ stdenv, fetchFromGitHub, darwin, ocaml, findlib, dune, base, stdio, lapack, blas }: { stdenv, fetchFromGitHub, darwin, ocaml, findlib, dune, base, stdio, lapack, blas }:
assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "4.05.0"; assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "4.05.0";
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-lacaml"; pname = "ocaml${ocaml.version}-lacaml";

View File

@ -11,7 +11,7 @@
, npy , npy
}: }:
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
assert blas.implementation == "openblas" && lapack.implementation == "openblas"; assert blas.implementation == "openblas" && lapack.implementation == "openblas";
buildDunePackage rec { buildDunePackage rec {

View File

@ -14,7 +14,7 @@
, withFftw ? true , withFftw ? true
}: }:
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
buildPythonPackage rec { buildPythonPackage rec {
pname = "cvxopt"; pname = "cvxopt";

View File

@ -12,7 +12,7 @@
, setuptoolsBuildHook , setuptoolsBuildHook
}: }:
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
let let
cfg = writeTextFile { cfg = writeTextFile {

View File

@ -1,6 +1,6 @@
{ stdenv, fetchurl, blas, lapack, mpi } : { stdenv, fetchurl, blas, lapack, mpi } :
assert (!blas.is64bit) && (!lapack.is64bit); assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "hpl"; pname = "hpl";

View File

@ -59,7 +59,7 @@ in
{ {
blas = mapListToAttrs supportedSystems (system': let system = lib.systems.elaborate { system = system'; }; blas = mapListToAttrs supportedSystems (system': let system = lib.systems.elaborate { system = system'; };
in mapListToAttrs (blasProviders system) (provider: let in mapListToAttrs (blasProviders system) (provider: let
is64bit = builtins.elem provider (["mkl64"] ++ lib.optional system.is64bit "openblas"); isILP64 = builtins.elem provider (["mkl64"] ++ lib.optional system.is64bit "openblas");
pkgs = pkgsFun { pkgs = pkgsFun {
config = { inherit allowUnfree; }; config = { inherit allowUnfree; };
system = system'; system = system';
@ -68,13 +68,13 @@ in
lapackProvider = if provider == "mkl64" lapackProvider = if provider == "mkl64"
then super.mkl then super.mkl
else builtins.getAttr provider super; else builtins.getAttr provider super;
inherit is64bit; inherit isILP64;
}; };
blas = super.blas.override { blas = super.blas.override {
blasProvider = if provider == "mkl64" blasProvider = if provider == "mkl64"
then super.mkl then super.mkl
else builtins.getAttr provider super; else builtins.getAttr provider super;
inherit is64bit; inherit isILP64;
}; };
})]; })];
}; };