Arb_jll fails to load/precompile dylib after MacOS update

I upgraded MacOS from Sequoia 15.3 to 15.4 this week. I also updated homebrew at the same time. Julia is installed via juliaup and is at 1.11.4.

Since the upgrade, julia fails to load Arb_jll needed by ArbNumerics.jl, with the error

julia> using Arb_jll
ERROR: InitError: could not load library "/Users/henry/.julia/artifacts/0aee3fc14042059a9f00ba046404366d5bdd7607/lib/libarb.dylib"
dlopen(/Users/henry/.julia/artifacts/0aee3fc14042059a9f00ba046404366d5bdd7607/lib/libarb.dylib, 0x0001): tried: '/Users/henry/.julia/artifacts/0aee3fc14042059a9f00ba046404366d5bdd7607/lib/libarb.dylib' (duplicate LC_RPATH '/workspace/destdir/lib'), '/System/Volumes/Preboot/Cryptexes/OS/Users/henry/.julia/artifacts/0aee3fc14042059a9f00ba046404366d5bdd7607/lib/libarb.dylib' (no such file), '/Users/henry/.julia/artifacts/0aee3fc14042059a9f00ba046404366d5bdd7607/lib/libarb.dylib' (duplicate LC_RPATH '/workspace/destdir/lib'), '/Users/henry/.julia/artifacts/0aee3fc14042059a9f00ba046404366d5bdd7607/lib/libarb-2.14.0.dylib' (duplicate LC_RPATH '/workspace/destdir/lib'), '/System/Volumes/Preboot/Cryptexes/OS/Users/henry/.julia/artifacts/0aee3fc14042059a9f00ba046404366d5bdd7607/lib/libarb-2.14.0.dylib' (no such file), '/Users/henry/.julia/artifacts/0aee3fc14042059a9f00ba046404366d5bdd7607/lib/libarb-2.14.0.dylib' (duplicate LC_RPATH '/workspace/destdir/lib')
Stacktrace:
  [1] dlopen(s::String, flags::UInt32; throw_error::Bool)
    @ Base.Libc.Libdl ./libdl.jl:120
  [2] dlopen(s::String, flags::UInt32)
    @ Base.Libc.Libdl ./libdl.jl:119
  [3] macro expansion
    @ ~/.julia/packages/JLLWrappers/GfYNv/src/products/library_generators.jl:63 [inlined]
  [4] __init__()
    @ Arb_jll ~/.julia/dev/Arb_jll/src/wrappers/aarch64-apple-darwin.jl:11
  [5] run_module_init(mod::Module, i::Int64)
    @ Base ./loading.jl:1378
  [6] register_restored_modules(sv::Core.SimpleVector, pkg::Base.PkgId, path::String)
    @ Base ./loading.jl:1366
  [7] _include_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String, depmods::Vector{…}, ignore_native::Nothing; register::Bool)
    @ Base ./loading.jl:1254
  [8] _include_from_serialized (repeats 2 times)
    @ ./loading.jl:1210 [inlined]
  [9] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128, stalecheck::Bool; reasons::Dict{…}, DEPOT_PATH::Vector{…})
    @ Base ./loading.jl:2057
 [10] _require(pkg::Base.PkgId, env::String)
    @ Base ./loading.jl:2527
 [11] __require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:2388
 [12] #invoke_in_world#3
    @ ./essentials.jl:1089 [inlined]
 [13] invoke_in_world
    @ ./essentials.jl:1086 [inlined]
 [14] _require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:2375
 [15] macro expansion
    @ ./loading.jl:2314 [inlined]
 [16] macro expansion
    @ ./lock.jl:273 [inlined]
 [17] __require(into::Module, mod::Symbol)
    @ Base ./loading.jl:2271
 [18] #invoke_in_world#3
    @ ./essentials.jl:1089 [inlined]
 [19] invoke_in_world
    @ ./essentials.jl:1086 [inlined]
 [20] require(into::Module, mod::Symbol)
    @ Base ./loading.jl:2260
during initialization of module Arb_jll
Some type information was truncated. Use `show(err)` to see complete types.

The file /Users/henry/.julia/artifacts/0aee3fc14042059a9f00ba046404366d5bdd7607/lib/libarb.dylib exists and points to another existing file:

% file /Users/henry/.julia/artifacts/0aee3fc14042059a9f00ba046404366d5bdd7607/lib/libarb-2.14.0.dylib
/Users/henry/.julia/artifacts/0aee3fc14042059a9f00ba046404366d5bdd7607/lib/libarb-2.14.0.dylib: Mach-O 64-bit dynamically linked shared library arm64

Any help deciphering the error message is much appreciated!

I also nuked by ~/.julia to verify there is no problem in there.

julia> versioninfo()
Julia Version 1.11.4
Commit 8561cc3d68d (2025-03-10 11:36 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: macOS (arm64-apple-darwin24.0.0)
  CPU: 10 × Apple M1 Max
  WORD_SIZE: 64
  LLVM: libLLVM-16.0.6 (ORCJIT, apple-m1)
Threads: 1 default, 0 interactive, 1 GC (on 8 virtual cores)
1 Like

Works for me on macOS 14.4.1, I guess Apple broke something once again.

As a temporary workaround, someone suggested you may have some luck with

install_name_tool -delete_rpath /workspace/destdir/lib /Users/henry/.julia/artifacts/0aee3fc14042059a9f00ba046404366d5bdd7607/lib/libarb.dylib
install_name_tool -delete_rpath /workspace/destdir/lib /Users/henry/.julia/artifacts/0aee3fc14042059a9f00ba046404366d5bdd7607/lib/libarb.dylib

(yes, repeat the same command twice). And thank Apple for breaking loading of libraries in every other release.

Thanks, I did the above, and now I get

julia> using Arb_jll
zsh: killed     julia

That’s it.

macOS is amazing, isn’t it? Every day making life harder for users.

Solution might be simple. I made a PR: libarb is merged into FLINT by hsgg · Pull Request #80 · JeffreySarnoff/ArbNumerics.jl · GitHub