Describe the bug
the error caused by https://github.com/NixOS/nixpkgs/commit/43873351ffed36b52170571839e26b57c9f15920#diff-036410e9211b4336186fc613f7200b12R24424
error output
ln -sf /nix/store/w14gvb104fsxqn20aqx7bigvwygfkd39-pcre2-10.34/lib/libpcre2-8.so.0 /build/source/usr/lib/julia/libpcre2-8.so
ln -sf /nix/store/p7jsg6hs9hqqsxxzp5862gxivadsk8z1-openlibm-0.7.0/lib/libopenlibm.so.3 /build/source/usr/lib/julia/libopenlibm.so
make[1]: *** [Makefile:187: /build/source/usr/lib/julia/liblapack.so] Error 1
make[1]: *** Waiting for unfinished jobs....
ln -sf /nix/store/nf0qb57dirbrjz1p68m6906n8kbw1l51-blas-3/lib/libblas.so.3 /build/source/usr/lib/julia/libblas.so
PERL base/build_h.jl.phony
ln -sf /nix/store/3hkj53lkmaz332zv7kcap0rlr5g6vich-gmp-6.2.0/lib/libgmp.so.10 /build/source/usr/lib/julia/libgmp.so
make: *** [Makefile:66: julia-base] Error 2
make: *** Waiting for unfinished jobs....
Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute: pkgs.julia_13
# a list of nixos modules affected by the problem
module:
thanks for checking @cstich @matthewbauer
Currently the julia expression is a bit of a mess, but as we are currently downloading all the dependencies anyway from the Julia website, we can probably just use the libraries provided by julia. The relevant lines in the julia expression are these:
"USE_SYSTEM_BLAS=1"
"USE_BLAS64=${if openblas.blas64 then "1" else "0"}"
"LIBBLAS=-lopenblas"
"LIBBLASNAME=libopenblas"
"USE_SYSTEM_LAPACK=1"
"LIBLAPACK=-lopenblas"
"LIBLAPACKNAME=libopenblas"
the default setting of Blas/ALTS. it has been changed to
"LIBBLAS=-lblas"
"LIBLAPACK=-llapack"
So, Does the args assert blas.implementation == "openblas" && lapack.implementation == "openblas"; need to replace assert (!blas.isILP64) && (!lapack.isILP64); ? also, adding the openblas in buildInputs and changing default blas.implementation to openblas.
fixed liblapack link by https://github.com/GTrunSec/nixpkgs/commit/84c9fd7c468982bef3238d5363d7b1b5977f1f1f
new error output on compiling Julia's pkgs process
Warning: git information unavailable; versioning information limited
JULIA usr/lib/julia/sys-o.a
Generating precompile statements...ERROR: LoadError: IOError: stream is closed or unusable
Stacktrace:
[1] check_open at ./stream.jl:328 [inlined]
[2] uv_write_async(::Base.TTY, ::Ptr{UInt8}, ::UInt64) at ./stream.jl:961
[3] uv_write(::Base.TTY, ::Ptr{UInt8}, ::UInt64) at ./stream.jl:924
[4] unsafe_write(::Base.TTY, ::Ptr{UInt8}, ::UInt64) at ./stream.jl:1007
[5] macro expansion at ./gcutils.jl:91 [inlined]
[6] write at ./strings/io.jl:186 [inlined]
[7] write(::Base.TTY, ::SubString{String}, ::String) at ./io.jl:584
[8] (::Main.anonymous.var"#2#6"{Float64,Base.DevNull})(::String, ::IOStream) at /build/source/contrib/generate_precompile.jl:120
[9] mktemp(::Main.anonymous.var"#2#6"{Float64,Base.DevNull}, ::String) at ./file.jl:611
[10] mktemp at ./file.jl:609 [inlined]
[11] generate_precompile_statements() at /build/source/contrib/generate_precompile.jl:67
[12] top-level scope at /build/source/contrib/generate_precompile.jl:177
in expression starting at /build/source/contrib/generate_precompile.jl:3
*** This error is usually fixed by running `make clean`. If the error persists, try `make cleanall`. ***
make[1]: *** [sysimage.mk:85: /build/source/usr/lib/julia/sys-o.a] Error 1
I got it compiling just by adding lapack to LD_LIBRARY_PATH:
LD_LIBRARY_PATH = makeLibraryPath [
arpack fftw fftwSinglePrec gmp libgit2 mpfr lapack blas openlibm
openspecfun pcre2
];
But I had to disable the tests because some random ones fail (unfortunately I didn't record which ones).
Edit: after disabling the tests, things appear to be running okay so far.
I passed the compiling too. thanks for helping.
maybe we can disable the checkTarget by default. No binary cache at here. nobody wants to build it to spend 30mins.
You are very welcome. Thank you for fixing!