-
Notifications
You must be signed in to change notification settings - Fork 18
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
Fix libblastrampoline with Ipopt_jll #163
Conversation
odow
commented
Mar 22, 2023
As a note to my future self, here's a drop in replacement for import OpenBLAS32_jll
import Ipopt_jll
function amplexe(f)
lbt_default_libs = get(ENV, "LBT_DEFAULT_LIBS", nothing)
if lbt_default_libs === nothing
ENV["LBT_DEFAULT_LIBS"] = OpenBLAS32_jll.libopenblas
end
ret = Ipopt_jll.amplexe(f)
if lbt_default_libs === nothing
delete!(ENV, "LBT_DEFAULT_LIBS")
else
ENV["LBT_DEFAULT_LIBS"] = lbt_default_libs
end
return ret
end |
Aaaaand. Windows is the odd duck https://github.com/jump-dev/AmplNLWriter.jl/actions/runs/4486368238/jobs/7888794896?pr=163 |
As a general remark, I'd warn you against manipulating |
Sure. I don't think we'd advise using it in anything critical. (The code here uses It's more for the occasions when I want to run the binary quickly in the REPL to test something. |
So all we get is an unhelpful The complication is that we use But it seems like the original reason is now fixed, JuliaLinearAlgebra/libblastrampoline#89, JuliaLang/julia#47638, so we could try rebuilding Ipopt. |
@staticfloat any ideas? Our
I don't have a windows machine, so I'm a but out of luck. We know that the LibraryProduct works fine on Windows, because that's what https://github.com/jump-dev/Ipopt.jl is. This is just a problem with the ExecutableProduct. |
I don't really know, sorry. It's weird to me that there are so many backslashes.... is there some kind of path escaping going on? |
@odow I recompiled MUMPS with LBT for Julia >= 1.9. I propose to not support anymore the artifacts with partial support of LBT when Julia 1.9 will be released. |
Okay. I'll wait for that release before spending more time trying to debug this |
I tried removing some of the escapes. But I think it's just a printing artifact of how we're catching the exception, storing it as a string, and then printing it. |
It can't even spawn |
@odow For Windows we don't need to modify something because I precompiled the last |
Let's see how JuliaPackaging/Yggdrasil#6734 goes. |
@amontoison is used the new version: It was compiled with https://buildkite.com/julialang/yggdrasil/builds/2943#01880319-dbcd-47ac-bf17-436ae373a5d4 It's using MUMPS 500.500.101, which is JuliaPackaging/Yggdrasil#5599, which uses OpenBLAS on Windows. |
@odow |
Hoorah. Only. What does that mean. |
@odow |
Can you add a |
It pulled in Julia v1.9.0? |
test/MOI_wrapper.jl
Outdated
end | ||
path() do exe | ||
run(`$exe -v`) | ||
end |
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.
@amontoison I think you need some tests like this.
In the normal tests, we can't open the executable, but we trap the error and return OTHER_ERROR
to MOI so it looks as if the binary didn't find a solution, but really it crashed.
@amontoison the windows executable is still a problem |
I don't know where is the issue Oscar. :( |
That doesn't make much sense since we do dynamic linking. But using an older gcc+binutils can make a difference |
Indeed, it is not relevant.
The issue is that ipopt uses libgfortran and we can't use a compiler older than GCC8 if we link with |
@odow Can you try the last |
Fixed at last |
Amazing @odow 🎉 🎉 |
No idea. But you must have done something. Perhaps the openmp stuff? Or just general Julia/lbt improvements. |