BinaryBuilder.jl icon indicating copy to clipboard operation
BinaryBuilder.jl copied to clipboard

problems when used from julia with statically linked llvm

Open Orbots opened this issue 5 years ago • 6 comments

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

Orbots avatar Aug 22 '19 17:08 Orbots

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.

staticfloat avatar Dec 06 '19 01:12 staticfloat

  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.

Orbots avatar Dec 06 '19 01:12 Orbots

I should also mention that we are building julia with -D_GLIBCXX_USE_CXX11_ABI=0

Orbots avatar Dec 06 '19 02:12 Orbots

Ah, I see. Yes, this is a problem. We expect to be able to dlopen() libLLVM.

staticfloat avatar Dec 06 '19 05:12 staticfloat

Is this still relevant with e.g. Julia 1.5?

fingolfin avatar Nov 06 '20 01:11 fingolfin

yes sadly...

vogt31337 avatar Jun 18 '21 11:06 vogt31337