-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we pull in the version from the buildsystem? See base/Makefile the build_h.jl generation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@gbaraldi bump
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In fact, is there a reason for BigNums being part of base instead of being stdlibs?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
They're used in Base, no?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
They’re needed quite early because we can parse literal bignums
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.dll So now we're linking to |
beb18ca
to
6b0b3a7
Compare
All Windows tests are green 🥳 |
Use versioned libblastrampoline and GMP (cherry picked from commit 335cd5e)
Basically the title.