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
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?
https://github.com/ararslan/CirrusCI.jl/blob/master/bin/install.sh#L68-L76. Just the official binaries.
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.