Use versioned libblastrampoline and GMP#47676
Conversation
|
Very interesting; both win32 and win64 died with approximately the same error. Any ideas as to why? |
|
It's minimally reproducible with the following: |
|
I imagine it's the blas trampoline change, because the GMP change works in the mimalloc PR. |
|
|
That looks quite probable: |
|
So there is still something pulling in the wrong library. |
|
It's SuiteSparse: |
| version() = VersionNumber(unsafe_string(unsafe_load(cglobal((:__gmp_version, :libgmp), Ptr{Cchar})))) | ||
| bits_per_limb() = Int(unsafe_load(cglobal((:__gmp_bits_per_limb, :libgmp), Cint))) | ||
| if Sys.iswindows() | ||
| const libgmp = "libgmp-10.dll" |
There was a problem hiding this comment.
Can we pull in the version from the buildsystem? See base/Makefile the build_h.jl generation
There was a problem hiding this comment.
I'm not sure, maybe we can pull the version from the jll from inside the makefile? It's kind of annoying not being able to depend on the jll proper here.
There was a problem hiding this comment.
In fact, is there a reason for BigNums being part of base instead of being stdlibs?
There was a problem hiding this comment.
They’re needed quite early because we can parse literal bignums
There was a problem hiding this comment.
We can get version numbers from the makefile system, then embed those into build_h.jl. I suggest we try some awk trickery to figure out the so major version number.
|
One minor nit we should move the so version into a place where packagers can override them, and it would be great to just have a single place to change them |
|
SuiteSparse is still failing on Windows despite the update to the new build 😕 |
sandbox:${WORKSPACE} # for f in bin/*.dll; do if [[ -n $(${target}-objdump -p $f | grep "libblastrampoline.dll") ]]; then echo $f; fi; done
bin/libblastrampoline.dll
sandbox:${WORKSPACE} # for f in bin/*.dll; do if [[ -n $(${target}-objdump -p $f | grep "libblastrampoline-5.dll") ]]; then echo $f; fi; done
bin/libblastrampoline-5.dll
sandbox:${WORKSPACE} # for f in bin/*.dll; do if [[ -n $(${target}-objdump -p $f | grep "libblastrampoline-5-2-0.dll") ]]; then echo $f; fi; done
bin/libblastrampoline-5-2-0.dll
bin/libblastrampoline-5.dll
bin/libblastrampoline.dll
bin/libcholmod.dll
bin/libspqr.dll
bin/libumfpack.dllSo now we're linking to |
beb18ca to
6b0b3a7
Compare
|
All Windows tests are green 🥳 |
Use versioned libblastrampoline and GMP (cherry picked from commit 335cd5e)
The other `ccall`s to MPFR use the versioned lib name. I suppose the `ccall`s modified in this change were simply missed in PR JuliaLang#47676.
The other `ccall`s to MPFR use the versioned lib name. I suppose the `ccall`s modified in this change were simply missed in PR JuliaLang#47676.
The other `ccall`s to MPFR use the versioned lib name. I suppose the `ccall`s modified in this change were simply missed in PR JuliaLang#47676.
Basically the title.