-
-
Notifications
You must be signed in to change notification settings - Fork 5.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error initializing module LinAlg on Ubuntu 15.04 #11913
Comments
Is that with the PPA package, or a build from source? Looks like it's using the reference BLAS, yet expecting it corresponds to OpenBLAS. |
It's from the PPA package https://launchpad.net/~staticfloat/+archive/ubuntu/juliareleases |
CC: @staticfloat |
What does this show for you:
|
ii libblas-common 1.2.20110419-10 amd64 Dependency package for all BLAS implementations
ii libblas-dev 1.2.20110419-10 amd64 Basic Linear Algebra Subroutines 3, static library
ii libblas3 1.2.20110419-10 amd64 Basic Linear Algebra Reference implementations, shared library
ii libopenblas-base 0.2.12-1ubuntu1 amd64 Optimized BLAS (linear algebra) library based on GotoBLAS2 |
Alright, I've got a 15.04 VM up and running right now. What does the following say for you:
|
libblas.so.3 - auto mode
link currently points to /usr/lib/openblas-base/libblas.so.3
/usr/lib/libblas/libblas.so.3 - priority 10
slave libblas.so.3gf: /usr/lib/libblas/libblas.so.3
/usr/lib/openblas-base/libblas.so.3 - priority 40
slave libblas.so.3gf: /usr/lib/openblas-base/libblas.so.3
Current 'best' version is '/usr/lib/openblas-base/libblas.so.3'. |
And in julia, what does this say:
Potentially followed by this:
|
julia> filter( x -> contains(x, "blas"), Sys.dllist())
0-element Array{String,1}
julia> for file in filter( x -> contains(x, "blas"), Sys.dllist())
println(realpath(file))
end
julia> Note the second produces nothing. BTW, the installed Julia is 0.3.8 by default. |
I.....uhh..... huh. That's interesting. :) I'm assuming this is Julia version 0.3.8? (0.3.10 is building for 15.04 as we speak, but that shouldn't affect anything in this issue) What happens if you do:
|
julia> dlopen("/usr/lib/openblas-base/libblas.so.3")
ERROR: could not load module /usr/lib/openblas-base/libblas.so.3: /usr/lib/openblas-base/libblas.so.3: undefined symbol: gotoblas
in dlopen at c.jl:19 |
Good! Okay, so on my machine, look at what happens; I ask "what does
The response says "this library wants to use a symbol called
I checked them all out, but the one we're interested in is
It's got quite a few things that match our |
OK. First, $ readelf -Ws /usr/lib/openblas-base/libblas.so.3 | grep gotoblas
246: 0000000000000000 0 OBJECT GLOBAL DEFAULT UND gotoblas Then, $ ldd /usr/lib/openblas-base/libblas.so.3
linux-vdso.so.1 => (0x00007fff34dfa000)
libopenblas.so.0 => /usr/local/lib/libopenblas.so.0 (0x00007f5597c7b000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5597973000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f55975a9000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f559738b000)
libgfortran.so.3 => /usr/lib/x86_64-linux-gnu/libgfortran.so.3 (0x00007f5597062000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5598d86000)
libquadmath.so.0 => /usr/lib/x86_64-linux-gnu/libquadmath.so.0 (0x00007f5596e24000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f5596c0e000) and finally $ readelf -Ws /usr/local/lib/libopenblas.so.0 | grep gotoblas
988: 000000000027a7c0 256 FUNC GLOBAL DEFAULT 11 gotoblas_pthread
2466: 000000000007a000 26 FUNC GLOBAL DEFAULT 11 gotoblas_quit
2486: 000000000007a020 71 FUNC GLOBAL DEFAULT 11 gotoblas_init
46: 0000000000d9d730 4 OBJECT LOCAL DEFAULT 24 gotoblas_initialized
9577: 000000000027a7c0 256 FUNC GLOBAL DEFAULT 11 gotoblas_pthread
10496: 000000000007a020 71 FUNC GLOBAL DEFAULT 11 gotoblas_init
12863: 000000000007a000 26 FUNC GLOBAL DEFAULT 11 gotoblas_quit The last step breaks down. |
Interesting! You've got |
Yes. I do have You reminded me. I installed OpenBLAS manually before but it didn't cause the problem until I upgraded Ubuntu to 15.04. Now that I've deleted the one in |
Great! Yes, likely when you upgraded packages once you got onto 15.04 these problems surfaced. Glad you got it working. :) |
Thanks a lot! Looking forward to 0.3.10 built in the PPA channel. |
Thank you both, this thread is very educational and helpful. |
That helps me a lot! Thanks @staticfloat a lot. |
I upgraded Ubuntu from 14.04 to 15.04 today. Julia was runinng fine before but after the upgrading, I got the warning when staring Julia.
Warning: error initializing module LinAlg: ErrorException("error compiling __init__: error compiling check_blas: error compiling openblas_get_config: could not load module libblas.so.3: /usr/lib/libblas.so.3: undefined symbol: gotoblas")
Any idea what's going on? Reinstallation doesn't solve the problem
The text was updated successfully, but these errors were encountered: