-
Notifications
You must be signed in to change notification settings - Fork 21
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
Oscar / Polymake is looking for mpfr in wrong spot on arm64 mac #428
Comments
The official julia dmg contains both, a symlink and the versioned library:
We don't really support anything other than the official julia packages, as unfortunately the BinaryBuilder system does not play well with other installations. I would say it is a bug in the homebrew package for julia if it ships a libmpfr.dylib (which might be a symlink) but no versioned library (edit: or at least a symlink for it). When building the polymake binaries we just pass |
You are right that Oscar's Polymake expects libraries that are independent of Julia somehwere inside Julia (is that the right way to go?). But I think it is not about versioned vs. not versioned. I put a symlink to libmpfr.6.dylib in one of the locations it mentions and then it does not find gmp...
|
Regarding these paths:
The first path The Cryptexes stuff seems to be another new security feature in macOS 13. (Such things also tend to break other software from time to time ...)
I would say that this is not really the way to go (I would prefer to install / manage the dependencies myself; at least on linux), but this is the way the julia developers have written their packaging system. Julia ships various libraries and packages that need those will use exactly those versions, both during build in their sandbox and then during runtime.
The place where this library should come from is In this case the name of the library is
Polymake is not really looking anywhere and not expecting any specific paths for these libraries:
This is from the aarch64-apple-darwin tarball. The The way the jlls work is that all dependencies for a library are explicitly loaded (via dlopen) beforehand using the dependency information from the packages. Since GMP and MPFR are stdlibs (and dependencies of julia itself) the libraries should even be in the process as soon as julia is started: % julia
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.8.5 (2023-01-08)
_/ |\__'_|_|_|\__'_| | Official https://julialang.org/ release
|__/ |
julia> using Libdl
julia> filter(contains("gmp"),dllist())
1-element Vector{String}:
"/Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libgmp.10.dylib"
julia> filter(contains("mpfr"),dllist())
1-element Vector{String}:
"/Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libmpfr.6.dylib" |
OK. Thanks for the explanations. I now agree that there is something wrong with the julia homebrew package. That path
It is also possible to install the dmg version of Julia with homebrew with |
There is a reason the OSCAR install instructions say this:
Indeed, the "crippled" bit holds for (at least) the Julia versions in Conda, Debian, and Homebrew; it also used to be crippled in Arch (and still might be, I didn't check recently). These days I recommend installing Julia via juliaup as that also makes it quite convenient to update it and to install multiple versions in parallel. |
@fingolfin It is still unsupported on Arch, linking to system blas, llvm and whatnot; |
Hi there,
when precompiling Oscar on a freshly installed arm64 Mac I run into this:
Possible location for mpfr on this machine are:
I would suggest looking for it in
/opt/homebrew/lib/
. Note that the one inside the Julia install is calledlibmpfr.dylib
while the code above is looking forlibmpfr6.dylib
.The text was updated successfully, but these errors were encountered: