New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
openblas: 0.3.4 -> 0.3.5, rework a bit #53972
Conversation
This needs a rebase after my CC change. |
* 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.
(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
f40d37f
to
4738517
Compare
rebased! Basically same changes but across a few commits to make easier for review, squash as preferred (or LMK and i'll do so). |
Thanks for the improvements and the |
FWIW #54886 conflicts with this, I resolved it in my tree with this result: https://github.com/dtzWill/nixpkgs/blob/1c5bfc30a7fcf22138adb8f8441d2c40dda201e1/pkgs/development/libraries/science/math/openblas/default.nix Quick notes about what was done and why: dtzWill@1c5bfc3 Thought I'd share for whoever/whenever master and staging get merged. |
This commit (1f046700) broke openblas build on aarch64-linux. (I re-tried the commit itself and its parent.) Error logs e.g. on Hydra: https://hydra.nixos.org/build/87629037 |
Is it related to the |
Hmm, two things I noticed:
Very sorry re:1, although it's a shame because I like this much better. But broken is worse than ugly! :P |
Note: I just merged this into master via c40f211. I didn't feel like attempting to solve this as well, and I guess blas on aarch64 isn't such a big deal, so we might afford to break it temporarily (I hope). |
BTW, this darwin error also seems new: https://nix-cache.s3.amazonaws.com/log/agn0dzc87gb4mnrf3kyswr30zbr92kmm-openblas-0.3.5.drv |
My earlier change mistakenly expected `toString false` to produce '0' instead of the empty string, leading to unexpected config changes. Intended to address issue mentioned here and in following discussion: NixOS#53972 (comment) Sorry, folks! (special-case handling of bools here makes this "cleanup" a bit less of an obvious win but hopefully still preferable overall :)) ----------- makeFlags in resulting derivation, according to this one-liner: $ nix show-derivation -f . openblas|jq ".[].env.makeFlags" before: "BINARY=64 CC=cc CROSS= DYNAMIC_ARCH=1 FC=gfortran HOSTCC=cc INTERFACE64=1 NO_BINARY_MODE= NO_STATIC=1 NUM_THREADS=64 PREFIX=/1rz4g4znpzjwh1xymhjpm42vipw92pr73vdgl6xs1hycac8kf2n9 TARGET=ATHLON USE_OPENMP=1" after: "BINARY=64 CC=cc CROSS=0 DYNAMIC_ARCH=1 FC=gfortran HOSTCC=cc INTERFACE64=1 NO_BINARY_MODE=0 NO_STATIC=1 NUM_THREADS=64 PREFIX=/1rz4g4znpzjwh1xymhjpm42vipw92pr73vdgl6xs1hycac8kf2n9 TARGET=ATHLON USE_OPENMP=1" Without knowing how `placeholder` works, it seems interesting if entirely unrelated that the `PREFIX` is same for both! :). TIL.
My earlier change mistakenly expected `toString false` to produce '0' instead of the empty string, leading to unexpected config changes. Intended to address issue mentioned here and in following discussion: NixOS#53972 (comment) Sorry, folks! (special-case handling of bools here makes this "cleanup" a bit less of an obvious win but hopefully still preferable overall :)) ----------- makeFlags in resulting derivation, according to this one-liner: $ nix show-derivation -f . openblas|jq ".[].env.makeFlags" before: "BINARY=64 CC=cc CROSS= DYNAMIC_ARCH=1 FC=gfortran HOSTCC=cc INTERFACE64=1 NO_BINARY_MODE= NO_STATIC=1 NUM_THREADS=64 PREFIX=/1rz4g4znpzjwh1xymhjpm42vipw92pr73vdgl6xs1hycac8kf2n9 TARGET=ATHLON USE_OPENMP=1" after: "BINARY=64 CC=cc CROSS=0 DYNAMIC_ARCH=1 FC=gfortran HOSTCC=cc INTERFACE64=1 NO_BINARY_MODE=0 NO_STATIC=1 NUM_THREADS=64 PREFIX=/1rz4g4znpzjwh1xymhjpm42vipw92pr73vdgl6xs1hycac8kf2n9 TARGET=ATHLON USE_OPENMP=1" Without knowing how `placeholder` works, it seems interesting if entirely unrelated that the `PREFIX` is same for both! :). TIL.
My earlier change mistakenly expected `toString false` to produce '0' instead of the empty string, leading to unexpected config changes. Intended to address issue mentioned here and in following discussion: #53972 (comment) Sorry, folks! (special-case handling of bools here makes this "cleanup" a bit less of an obvious win but hopefully still preferable overall :)) ----------- makeFlags in resulting derivation, according to this one-liner: $ nix show-derivation -f . openblas|jq ".[].env.makeFlags" before: "BINARY=64 CC=cc CROSS= DYNAMIC_ARCH=1 FC=gfortran HOSTCC=cc INTERFACE64=1 NO_BINARY_MODE= NO_STATIC=1 NUM_THREADS=64 PREFIX=/1rz4g4znpzjwh1xymhjpm42vipw92pr73vdgl6xs1hycac8kf2n9 TARGET=ATHLON USE_OPENMP=1" after: "BINARY=64 CC=cc CROSS=0 DYNAMIC_ARCH=1 FC=gfortran HOSTCC=cc INTERFACE64=1 NO_BINARY_MODE=0 NO_STATIC=1 NUM_THREADS=64 PREFIX=/1rz4g4znpzjwh1xymhjpm42vipw92pr73vdgl6xs1hycac8kf2n9 TARGET=ATHLON USE_OPENMP=1" Without knowing how `placeholder` works, it seems interesting if entirely unrelated that the `PREFIX` is same for both! :). TIL.
Motivation for this change
https://github.com/xianyi/OpenBLAS/releases/tag/v0.3.5
Things done
sandbox
innix.conf
on non-NixOS)nix-shell -p nox --run "nox-review wip"
./result/bin/
)nix path-info -S
before and after)