-
-
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
Libblastrampoline soversion breaks ecosystem on Windows #47638
Comments
Sounds like a bug that should be fixed, though I'm not entirely sure if the fix will be here or https://github.com/JuliaPackaging/BinaryBuilder.jl If you think the bug is in Julia itself, one way to move forward might be to try to bisect which commit caused it between 1.7 and 1.8 |
The problems started with Julia 1.8.0 as current version and when I switched to the newly generated library SLICOT_jll-v5.8 See also my remark here. |
Oh, so was the only thing you changed the Julia version, or did you also change the jll or the version of the underlying software SILCOT? |
Here is a short history of events.
|
Is there anyway to minify this. Like is there a specific ccall that fails? |
The following is a MWE for Julia 1.7 under Windows and probably works for Julia 1.7 and 1.8 on Linux. However, it fails on Julia 1.8.1 under Windows.
|
Can you edit the post and try to condense it as much as possible? Docstrings for example are probably not needed for it to reproduce? |
OK. |
The next step is probably to reconstruct that call in C. That would determine if it is something to do with the way Julia does the ccall or if it is something purely with how the library is called. |
So under
|
Ah, so that would suggest the regression is perhaps not in Julia but in |
Okay after a manual
So looking closer. 5.8
5.7
On Linux these are symlinked, but on Windows these are separate libraries. My hypothesis is that we initalize one of them correctly, but the second "copy" is pointing to the wrong library. So it's might be binarybuilders fault. |
maybe JuliaPackaging/Yggdrasil#7 ? |
@staticfloat can you take a look at this? (Happy to jump on a call). As far as I can tell there are two issues at play here.
We need functioning dlls on Windows for 1.8 and for 1.9 we should be consistent in whether we use so-version or not. LBT v4
v5.2.0
v5.0.2
|
seems equivalent to that, but for a different library |
@vchuravy, is there a plan for resolving this? |
The plan for resolving this is to use the major-versioned SONAME everywhere. In order for that to work, we may need to rebuild a few JLLs such as SuiteSparse to link against the correct name. |
Shouldn't we also use the correctly versioned sonames in julia/stdlib/libblastrampoline_jll/src/libblastrampoline_jll.jl Lines 21 to 27 in 6ac5159
|
Yes, we should |
This should have been fixed by #47676 (but JLLs will need to be built against libblastrampoline 5.4.0) |
I think this can be closed here. |
The following error occured, when performing tests with the nightly version on Windows (Linux is OK, see here) for DescriptorSystems, which uses the MatrixPencils package:
I am using in module
|
and no one has done that as far as I know. |
In the above case, both Linux and Windows load in the tests
(without complaints). Could it be that the generic name "libblastrampoline" is not properly set for Windows? |
It is not, that's the reason why we have |
The nightly test involves (probably) Julia 1.10. I wonder if the same failure is to be expected on Julia 1.9 (the next stable version) running under Windows. |
I am raising this issue following the invitation of ararslan to report any issue related to the recently released Julia 1.8.3. I must say, this is not the first time I am reporting this issue and I am not even sure if here is the right place for my attemp to get support for my problem.
My current project is the development of PeriodicSystems, a collection of computational tools for handling linear dynamical systems with periodic coefficient matrices. In this development I am relying on efficient structure preserving computational tools to compute periodic Schur decompositions, which are available in the Fortran library SLICOT (a pure Julia project has been also started here).
The problem is related to the use of Fortran libraries under Windows with Julia starting with version 1.8. The issue is simple: the library SLICOT_jll for Windows created with the BinaryBuilder.jl does not work for Julia 1.8 and Julia nightly, but it still works for Julia 1.7. The good news is that the libraries generated for Linux work for all Julia versions. Unfortunately, I don't have the necessary competence to debug this error. For the generation of the libraries, I benefitted of the generous help of several people (RalphAS, mkitti, giordano), but the error still persists (see bellow) for the recently updated version of the library (2 days ago).
Here is the link to the last tests.
I am performing my developments using exclusively a Windows machine. Just now, I am constrained to use Julia 1.7 for my work because of this bug. I am facing the unexpected situation for me to be forced to stop developing the PeriodicSystems, just because, probably, some compiler switches are set in a particular way on which I have no control.
I hope very much there is a solution to my problem in the near future. I thank in advance for any help.
Q: I wonder if am I the only user of Julia with such a problem ?
The text was updated successfully, but these errors were encountered: