-
Notifications
You must be signed in to change notification settings - Fork 13
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
Add LAPACK binary dependency #7
Comments
Can you use Blas/Lapack from LinearAlgebra, I mean the one that comes with julia? |
Good question. I don't know. I guess I managed to handle BLAS dependency by adding OpenBLAS to dependency list, but I think we also need LAPACK. I think the question is that is there BLAS and/or LAPACK development files available inside the cross-compile environment? |
Do you have any pointers about how to tweak the build to point to LAPACK? When I build Gmsh this error message is in the logs:
and presumably as a result, when I try to generate a mesh, I get
and then a segfault. I'm building on a cluster, so my linear algebra libraries are installed in non-standard locations. Do you have pointers about how I can point Gmsh/BinaryBuilder to the right directories/libraries? I see the cmake command here but I can't figure out where that file is so I can edit it. |
I think the right way to go is to use binary dependencies, just like with OpenBLAS |
Here is an example how to use julia Lapack: https://github.com/TeroFrondelius/umat_binaries_builder/blob/242ebd1c3f1d04bc2780d0d0b684c23a46ea1008/build_tarballs.jl#L76 |
I think what I'm struggling with is how to edit
The only mention of GmshBuilder is here, which appears to only be used to download the source code:
I can of course clone the GmshBuilder repo and edit (In addition, it's maybe worth mentioning that I have also Gmsh installed separately. So if I can just point Gmsh.jl to that installation, I'm also happy to do that.) |
The package downloads pre-build binaries from here: https://github.com/ahojukka5/GmshBuilder/releases/tag/v4.4.1. The changes in building binaries should be made there. Download the tar file and check the structure. Use |
Oh I see now. It's just downloading prebuilt binaries and the Linux version is missing BLAS/LAPACK:
By contrast, the Mac version has BLAS/LAPACK:
I have been working with a colleague on some code using Gmsh and it was working for him and not for me. I assumed this was because he was on a desktop and I was on a cluster. But it turns out to be because he's on a Mac and I'm on Linux. I guess I need to edit build.jl to point it to the source tarball instead or maybe bypass all of this and just point to my external installation. |
Okay it appears to be working now after the following steps (here
I could have not removed all of Thank you both for your help with this! |
Hmm, so you didn't use a cross-compiling environment used in BinaryBuilder to make the binary at all? |
No, I didn't - I just made sure that Julia and gmsh were built with the same compiler and other dependencies and it seemed to work, at least in initial testing. Is not using BinaryBuilder going to come back to bite me at some point? |
Likely not, but it doesn't generalize. Thus we cannot use it to create binaries that should work for all. If we generate the binaries using BinaryBuilder, we can then distribute the binaries and everyone can easily install Gmsh.jl. |
It looks like this is still an issue with the JLL binary? My students tell me that the Mac version has LAPACK but the Linux version gives a "LU factorization and substitution requires LAPACK" error. I don't see any mention of a LAPACK or OpenBLAS dependency in the Yggdrasil build script, it seems like this needs to be added? Should this issue be re-opened? |
Did they run on master? There haven't been a release of thsi package in a while. Edit: JuliaRegistries/General#63264 |
Thanks! Yes, updating to the latest version fixed the problem. |
No description provided.
The text was updated successfully, but these errors were encountered: