Julia: ErrorException("could not load library "libopenblas64_" on FreeBSD

Created on 30 Mar 2019  ยท  13Comments  ยท  Source: JuliaLang/julia

See https://cirrus-ci.com/task/6313708253872128 (ref https://github.com/JuliaMath/SpecialFunctions.jl/pull/151):

WARNING: Error during initialization of module LinearAlgebra:
ErrorException("could not load library "libopenblas64_"
Shared object "libgfortran.so.5" not found, required by "libopenblas64_.so"")
โ”Œ Error: Error during initialization of module CHOLMOD
โ”‚   exception =
โ”‚    could not load library "libcholmod"
โ”‚    Shared object "libgfortran.so.5" not found, required by "libopenblas64_.so"
โ”‚    Stacktrace:
โ”‚     [1] #dlopen#3(::Bool, ::typeof(Libdl.dlopen), ::String, ::UInt32) at /usr/home/julia/buildbot/worker/package_freebsd64/build/usr/share/julia/stdlib/v1.2/Libdl/src/Libdl.jl:109
โ”‚     [2] dlopen at /usr/home/julia/buildbot/worker/package_freebsd64/build/usr/share/julia/stdlib/v1.2/Libdl/src/Libdl.jl:109 [inlined] (repeats 2 times)
โ”‚     [3] __init__() at /usr/home/julia/buildbot/worker/package_freebsd64/build/usr/share/julia/stdlib/v1.2/SuiteSparse/src/cholmod.jl:89
โ”” @ SuiteSparse.CHOLMOD /usr/home/julia/buildbot/worker/package_freebsd64/build/usr/share/julia/stdlib/v1.2/SuiteSparse/src/cholmod.jl:176
WARNING: Error during initialization of module LinearAlgebra:
ErrorException("could not load library "libopenblas64_"
Shared object "libgfortran.so.5" not found, required by "libopenblas64_.so"")
โ”Œ Error: Error during initialization of module CHOLMOD
โ”‚   exception =
โ”‚    could not load library "libcholmod"
โ”‚    Shared object "libgfortran.so.5" not found, required by "libopenblas64_.so"
โ”‚    Stacktrace:
โ”‚     [1] #dlopen#3(::Bool, ::typeof(Libdl.dlopen), ::String, ::UInt32) at /usr/home/julia/buildbot/worker/package_freebsd64/build/usr/share/julia/stdlib/v1.2/Libdl/src/Libdl.jl:109
โ”‚     [2] dlopen at /usr/home/julia/buildbot/worker/package_freebsd64/build/usr/share/julia/stdlib/v1.2/Libdl/src/Libdl.jl:109 [inlined] (repeats 2 times)
โ”‚     [3] __init__() at /usr/home/julia/buildbot/worker/package_freebsd64/build/usr/share/julia/stdlib/v1.2/SuiteSparse/src/cholmod.jl:89
โ”” @ SuiteSparse.CHOLMOD /usr/home/julia/buildbot/worker/package_freebsd64/build/usr/share/julia/stdlib/v1.2/SuiteSparse/src/cholmod.jl:176
build

All 13 comments

BinaryBuilder woes, @staticfloat?

That is indeed what it sounds like. First things first; let's check to make sure that the julia tarball actually bundled libgfortran.so properly. I don't see the URL it pulled julia from in the cirrus CI logs. @ararslan where is that coming from?

Is there a way I can figure out exactly which URL was pulled from?

Not at the moment. I should add that to CirrusCI.jl. Based on the versioninfo output in the install section of the Cirrus log, it looks like it's a nightly binary, which means it's getting -latest.

Julia Version 1.2.0-DEV.600
Commit 0557467288 (2019-03-30 08:39 UTC)
Platform Info:
  OS: FreeBSD (x86_64-unknown-freebsd12.0)
  CPU: Intel(R) Xeon(R) CPU @ 2.50GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, ivybridge)

The odd thing here is that it's identifying the OS as FreeBSD 12.0, which is what's running on, but my understanding was that we always listed the OS as what the Julia binary was built on. Last I checked we were packaging for FreeBSD on 11.1.

Last I checked we were packaging for FreeBSD on 11.1.

The FreeBSD buildbot is now running 12.0. ๐ŸŽ‰ Surprise! ๐ŸŽ‰

Well, https://github.com/JuliaMath/SpecialFunctions.jl/blob/master/.cirrus.yml starts with

image: freebsd-12-0-release-amd64

Oh, you refer to the machine building the binary not running the test?

you refer to the machine building the binary not running the test?

Correct.

The FreeBSD buildbot is now running 12.0. :tada: Surprise! :tada:

Ahaha okay. Have we verified that binaries built on 12.0 work on 11.x? For Julia 1.2-DEV stuff I always use a source build, so I haven't tried any nightly binaries locally.

Hmmm, libgfortran.so.5 _is_ being shipped, but it's not being picked up by libopenblas, because libopenblas doesn't have a proper RPATH $ORIGIN set.

Have we verified that binaries built on 12.0 work on 11.x?

Oops, turns out they are not. I guess I'll need to rebuild the FreeBSD bot as an 11.2 machine.

The FreeBSD bots have multiplied, and are also now all running 11.2. Once new nightlies make their way through the system and out the door, we should be good to go.

I must say that I don't remember what was the problem here, but it looks like now SpecialFunctions.jl works flawlessly on FreeBSD: https://cirrus-ci.com/github/JuliaMath/SpecialFunctions.jl

The issue was that we were using a newer version of FreeBSD on the buildbots than what was running on Cirrus. Binaries built on FreeBSD 11.x can run on 12.x but not vice versa. Seems things have been resolved.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

StefanKarpinski picture StefanKarpinski  ยท  3Comments

omus picture omus  ยท  3Comments

ararslan picture ararslan  ยท  3Comments

m-j-w picture m-j-w  ยท  3Comments

Keno picture Keno  ยท  3Comments