mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-14 17:53:37 +00:00
openblas: 0.3.4 -> 0.3.5, rework a bit (#53972)
* openblas: simplify a bit, fix doCheck so tests are enabled non-cross. * doCheck should be 'true' in (at least) the non-cross case, this looks like an inverted check that's largely benign * doCheck will be set to 'false' in the cross case anyway, makeDerivation does this IIRC * targetPrefix can be used without checking, probably by design Derivation hash does change but no "real" functionality change intended. * openblas: nix types for config attrs (hash-preserving) * openblas: more nix-ification, merge in cross attrs, prefer to always set (but set appropriately for cross and non-cross cases both) * I'm not sure what NO_BINARY_MODE does, this change now sets explicitly false in the non-cross scenario (previously unset unless cross). * Drop musl NO_AFFINITY case, will be removed in upgrade shortly * openblas: 0.3.4 -> 0.3.5
This commit is contained in:
parent
befac4ae4b
commit
1f0467005d
@ -14,46 +14,46 @@ let
|
|||||||
# To add support for a new platform, add an element to this set.
|
# To add support for a new platform, add an element to this set.
|
||||||
configs = {
|
configs = {
|
||||||
armv6l-linux = {
|
armv6l-linux = {
|
||||||
BINARY = "32";
|
BINARY = 32;
|
||||||
TARGET = "ARMV6";
|
TARGET = "ARMV6";
|
||||||
DYNAMIC_ARCH = "0";
|
DYNAMIC_ARCH = false;
|
||||||
USE_OPENMP = "1";
|
USE_OPENMP = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
armv7l-linux = {
|
armv7l-linux = {
|
||||||
BINARY = "32";
|
BINARY = 32;
|
||||||
TARGET = "ARMV7";
|
TARGET = "ARMV7";
|
||||||
DYNAMIC_ARCH = "0";
|
DYNAMIC_ARCH = false;
|
||||||
USE_OPENMP = "1";
|
USE_OPENMP = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
aarch64-linux = {
|
aarch64-linux = {
|
||||||
BINARY = "64";
|
BINARY = 64;
|
||||||
TARGET = "ARMV8";
|
TARGET = "ARMV8";
|
||||||
DYNAMIC_ARCH = "1";
|
DYNAMIC_ARCH = true;
|
||||||
USE_OPENMP = "1";
|
USE_OPENMP = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
i686-linux = {
|
i686-linux = {
|
||||||
BINARY = "32";
|
BINARY = 32;
|
||||||
TARGET = "P2";
|
TARGET = "P2";
|
||||||
DYNAMIC_ARCH = "1";
|
DYNAMIC_ARCH = true;
|
||||||
USE_OPENMP = "1";
|
USE_OPENMP = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
x86_64-darwin = {
|
x86_64-darwin = {
|
||||||
BINARY = "64";
|
BINARY = 64;
|
||||||
TARGET = "ATHLON";
|
TARGET = "ATHLON";
|
||||||
DYNAMIC_ARCH = "1";
|
DYNAMIC_ARCH = true;
|
||||||
USE_OPENMP = "0";
|
USE_OPENMP = false;
|
||||||
MACOSX_DEPLOYMENT_TARGET = "10.7";
|
MACOSX_DEPLOYMENT_TARGET = "10.7";
|
||||||
};
|
};
|
||||||
|
|
||||||
x86_64-linux = {
|
x86_64-linux = {
|
||||||
BINARY = "64";
|
BINARY = 64;
|
||||||
TARGET = "ATHLON";
|
TARGET = "ATHLON";
|
||||||
DYNAMIC_ARCH = "1";
|
DYNAMIC_ARCH = true;
|
||||||
USE_OPENMP = "1";
|
USE_OPENMP = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
@ -72,25 +72,16 @@ let
|
|||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "openblas-${version}";
|
name = "openblas-${version}";
|
||||||
version = "0.3.4";
|
version = "0.3.5";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "xianyi";
|
owner = "xianyi";
|
||||||
repo = "OpenBLAS";
|
repo = "OpenBLAS";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1jdq4msfyg13pdmwwfqpixf4fshss68qzls820lmn0i6y7h4aix3";
|
sha256 = "0hwfplr6ciqjvfqkya5vz92z2rx8bhdg5mkh923z246ylhs6d94k";
|
||||||
};
|
};
|
||||||
|
|
||||||
inherit blas64;
|
inherit blas64;
|
||||||
|
|
||||||
patches = [
|
|
||||||
# Fixes build on x86_64-darwin. See:
|
|
||||||
# https://github.com/xianyi/OpenBLAS/issues/1926
|
|
||||||
(fetchpatch {
|
|
||||||
url = https://github.com/xianyi/OpenBLAS/commit/701ea88347461e4c5d896765438dc870281b3834.patch;
|
|
||||||
sha256 = "18rcfgkjsijl9d2510jn961wqvz7zdlz2fgy1yjmax29kvv8fqd9";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
# Some hardening features are disabled due to sporadic failures in
|
# Some hardening features are disabled due to sporadic failures in
|
||||||
# OpenBLAS-based programs. The problem may not be with OpenBLAS itself, but
|
# OpenBLAS-based programs. The problem may not be with OpenBLAS itself, but
|
||||||
# with how these flags interact with hardening measures used downstream.
|
# with how these flags interact with hardening measures used downstream.
|
||||||
@ -115,20 +106,19 @@ stdenv.mkDerivation rec {
|
|||||||
coreutils
|
coreutils
|
||||||
];
|
];
|
||||||
|
|
||||||
makeFlags =
|
makeFlags = mapAttrsToList (var: val: "${var}=${toString val}") (config // {
|
||||||
[
|
FC = "${stdenv.cc.targetPrefix}gfortran";
|
||||||
"FC=${optionalString (stdenv.hostPlatform != stdenv.buildPlatform) stdenv.cc.targetPrefix}gfortran"
|
CC = "${stdenv.cc.targetPrefix}cc";
|
||||||
"CC=${optionalString (stdenv.hostPlatform != stdenv.buildPlatform) stdenv.cc.targetPrefix}cc"
|
PREFIX = placeholder "out";
|
||||||
''PREFIX="''$(out)"''
|
NUM_THREADS = 64;
|
||||||
"NUM_THREADS=64"
|
INTERFACE64 = blas64;
|
||||||
"INTERFACE64=${if blas64 then "1" else "0"}"
|
NO_STATIC = true;
|
||||||
"NO_STATIC=1"
|
CROSS = stdenv.hostPlatform != stdenv.buildPlatform;
|
||||||
]
|
HOSTCC = "${buildPackages.stdenv.cc.targetPrefix}cc";
|
||||||
++ stdenv.lib.optional (stdenv.hostPlatform.libc == "musl") "NO_AFFINITY=1"
|
NO_BINARY_MODE = stdenv.hostPlatform != stdenv.buildPlatform;
|
||||||
++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "NO_BINARY_MODE=1" "HOSTCC=cc" "CROSS=1" ]
|
});
|
||||||
++ mapAttrsToList (var: val: var + "=" + val) config;
|
|
||||||
|
|
||||||
doCheck = stdenv.hostPlatform != stdenv.buildPlatform;
|
doCheck = true;
|
||||||
checkTarget = "tests";
|
checkTarget = "tests";
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
|
Loading…
Reference in New Issue
Block a user