openblas: fix cross-compilation
This commit is contained in:
committed by
Frederik Rietdijk
parent
d6f401e132
commit
05ee1015bb
@@ -3,6 +3,7 @@
|
|||||||
# pointer width, but some expect to use 32-bit integers always
|
# pointer width, but some expect to use 32-bit integers always
|
||||||
# (for compatibility with reference BLAS).
|
# (for compatibility with reference BLAS).
|
||||||
, blas64 ? null
|
, blas64 ? null
|
||||||
|
, buildPackages
|
||||||
}:
|
}:
|
||||||
|
|
||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
@@ -16,7 +17,6 @@ let
|
|||||||
BINARY = "32";
|
BINARY = "32";
|
||||||
TARGET = "ARMV6";
|
TARGET = "ARMV6";
|
||||||
DYNAMIC_ARCH = "0";
|
DYNAMIC_ARCH = "0";
|
||||||
CC = "gcc";
|
|
||||||
USE_OPENMP = "1";
|
USE_OPENMP = "1";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -24,7 +24,6 @@ let
|
|||||||
BINARY = "32";
|
BINARY = "32";
|
||||||
TARGET = "ARMV7";
|
TARGET = "ARMV7";
|
||||||
DYNAMIC_ARCH = "0";
|
DYNAMIC_ARCH = "0";
|
||||||
CC = "gcc";
|
|
||||||
USE_OPENMP = "1";
|
USE_OPENMP = "1";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -32,7 +31,6 @@ let
|
|||||||
BINARY = "64";
|
BINARY = "64";
|
||||||
TARGET = "ARMV8";
|
TARGET = "ARMV8";
|
||||||
DYNAMIC_ARCH = "1";
|
DYNAMIC_ARCH = "1";
|
||||||
CC = "gcc";
|
|
||||||
USE_OPENMP = "1";
|
USE_OPENMP = "1";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -40,7 +38,6 @@ let
|
|||||||
BINARY = "32";
|
BINARY = "32";
|
||||||
TARGET = "P2";
|
TARGET = "P2";
|
||||||
DYNAMIC_ARCH = "1";
|
DYNAMIC_ARCH = "1";
|
||||||
CC = "gcc";
|
|
||||||
USE_OPENMP = "1";
|
USE_OPENMP = "1";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -48,9 +45,6 @@ let
|
|||||||
BINARY = "64";
|
BINARY = "64";
|
||||||
TARGET = "ATHLON";
|
TARGET = "ATHLON";
|
||||||
DYNAMIC_ARCH = "1";
|
DYNAMIC_ARCH = "1";
|
||||||
# Note that clang is available through the stdenv on OSX and
|
|
||||||
# thus is not an explicit dependency.
|
|
||||||
CC = "clang";
|
|
||||||
USE_OPENMP = "0";
|
USE_OPENMP = "0";
|
||||||
MACOSX_DEPLOYMENT_TARGET = "10.7";
|
MACOSX_DEPLOYMENT_TARGET = "10.7";
|
||||||
};
|
};
|
||||||
@@ -59,7 +53,6 @@ let
|
|||||||
BINARY = "64";
|
BINARY = "64";
|
||||||
TARGET = "ATHLON";
|
TARGET = "ATHLON";
|
||||||
DYNAMIC_ARCH = "1";
|
DYNAMIC_ARCH = "1";
|
||||||
CC = "gcc";
|
|
||||||
USE_OPENMP = "1";
|
USE_OPENMP = "1";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -113,21 +106,29 @@ stdenv.mkDerivation rec {
|
|||||||
"relro" "bindnow"
|
"relro" "bindnow"
|
||||||
];
|
];
|
||||||
|
|
||||||
nativeBuildInputs =
|
nativeBuildInputs = [
|
||||||
[gfortran perl which]
|
perl
|
||||||
++ optionals stdenv.isDarwin [coreutils];
|
which
|
||||||
|
buildPackages.gfortran
|
||||||
|
buildPackages.stdenv.cc
|
||||||
|
] ++ optionals stdenv.isDarwin [
|
||||||
|
coreutils
|
||||||
|
];
|
||||||
|
|
||||||
makeFlags =
|
makeFlags =
|
||||||
[
|
[
|
||||||
"FC=gfortran"
|
"FC=${optionalString (stdenv.hostPlatform != stdenv.buildPlatform) stdenv.cc.targetPrefix}gfortran"
|
||||||
|
"CC=${optionalString (stdenv.hostPlatform != stdenv.buildPlatform) stdenv.cc.targetPrefix}cc"
|
||||||
''PREFIX="''$(out)"''
|
''PREFIX="''$(out)"''
|
||||||
"NUM_THREADS=64"
|
"NUM_THREADS=64"
|
||||||
"INTERFACE64=${if blas64 then "1" else "0"}"
|
"INTERFACE64=${if blas64 then "1" else "0"}"
|
||||||
"NO_STATIC=1"
|
"NO_STATIC=1"
|
||||||
] ++ stdenv.lib.optional (stdenv.hostPlatform.libc == "musl") "NO_AFFINITY=1"
|
]
|
||||||
|
++ stdenv.lib.optional (stdenv.hostPlatform.libc == "musl") "NO_AFFINITY=1"
|
||||||
|
++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "NO_BINARY_MODE=1" "HOSTCC=cc" "CROSS=1" ]
|
||||||
++ mapAttrsToList (var: val: var + "=" + val) config;
|
++ mapAttrsToList (var: val: var + "=" + val) config;
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = stdenv.hostPlatform != stdenv.buildPlatform;
|
||||||
checkTarget = "tests";
|
checkTarget = "tests";
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
|
|||||||
Reference in New Issue
Block a user