BinaryBuilder.jl
BinaryBuilder.jl copied to clipboard
problems when used from julia with statically linked llvm
If you build julia 1.2 with statically linked LLVM ( need to patch first https://github.com/JuliaLang/julia/issues/32665 ). Then BinaryBuilder will fail trying to build SpecialFunctions.jl
What is the error you're running into? I'm not sure we'll be able to support running BB on highly customized versions of Julia, but I can't think of why the LLVM that Julia is using would matter in this case.
Building SpecialFunctions → `~/.julia/packages/SpecialFunctions/ne2iw/deps/build.log`
┌ Error: Error building `SpecialFunctions`:
│ ERROR: LoadError: LoadError: Unable to open libLLVM!
│ Stacktrace:
│ [1] error(::String) at ./error.jl:33
│ [2] (::getfield(BinaryProvider, Symbol("#open_libllvm#114")))() at <redacted>/.julia/packages/BinaryProvider/kcGxO/src/PlatformNames.jl:652
│ [3] detect_cxx11_string_abi() at <redacted>/.julia/packages/BinaryProvider/kcGxO/src/PlatformNames.jl:655
│ [4] detect_compiler_abi() at <redacted>/.julia/packages/BinaryProvider/kcGxO/src/PlatformNames.jl:668
│ [5] top-level scope at <redacted>/.julia/packages/BinaryProvider/kcGxO/src/PlatformNames.jl:685
│ [6] include at ./boot.jl:328 [inlined]
│ [7] include_relative(::Module, ::String) at ./loading.jl:1094
│ [8] include at ./Base.jl:31 [inlined]
│ [9] include(::String) at <redacted>/.julia/packages/BinaryProvider/kcGxO/src/BinaryProvider.jl:1
│ [10] top-level scope at <redacted>/.julia/packages/BinaryProvider/kcGxO/src/BinaryProvider.jl:12
│ [11] include at ./boot.jl:328 [inlined]
│ [12] include_relative(::Module, ::String) at ./loading.jl:1094
│ [13] include(::Module, ::String) at ./Base.jl:31
│ [14] top-level scope at none:2
│ [15] eval at ./boot.jl:330 [inlined]
│ [16] eval(::Expr) at ./client.jl:432
│ [17] top-level scope at ./none:3
│ in expression starting at <redacted>/.julia/packages/BinaryProvider/kcGxO/src/PlatformNames.jl:685
│ in expression starting at <redacted>/.julia/packages/BinaryProvider/kcGxO/src/BinaryProvider.jl:12
│ ERROR: LoadError: Failed to precompile BinaryProvider [b99e7846-7c00-51b0-8f62-c81ae34c0232] to <redacted>/.julia/compiled/v1.2/BinaryProvider/ek6VZ.ji.
│ Stacktrace:
│ [1] error(::String) at ./error.jl:33
│ [2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1253
│ [3] _require(::Base.PkgId) at ./loading.jl:1013
│ [4] require(::Base.PkgId) at ./loading.jl:911
│ [5] require(::Module, ::Symbol) at ./loading.jl:906
│ [6] include at ./boot.jl:328 [inlined]
│ [7] include_relative(::Module, ::String) at ./loading.jl:1094
│ [8] include(::Module, ::String) at ./Base.jl:31
│ [9] include(::String) at ./client.jl:431
│ [10] top-level scope at none:5
│ in expression starting at <redacted>/.julia/packages/SpecialFunctions/ne2iw/deps/build.jl:1
└ @ Pkg.Operations <redacted>/julia/1.2.0_staticllvm/private/src/julia-1.2.0-rc2/usr/share/julia/stdlib/v1.2/Pkg/src/backwards_compatible_isolation.jl:647
Seems to be trying to open the llvm lib instead of using the statically linked one.
I should also mention that we are building julia with -D_GLIBCXX_USE_CXX11_ABI=0
Ah, I see. Yes, this is a problem. We expect to be able to dlopen()
libLLVM.
Is this still relevant with e.g. Julia 1.5?
yes sadly...