Hi all,

Remember  this problem with dlopen and openblas 
<https://groups.google.com/forum/#!topic/julia-users/A8HwlmldVTM>?  That 
problem was resolved by modifying how embedded Julia loads (perhaps only on 
OS/X).Well now there is a similar problem on Linux.  Same software.  The 
exact problem is different because the dynamic linkers are different.  It 
appears to me from LD_DEBUG that symbols in libjulia.so are not being 
resolved correctly when sys.so is initialized.  Much of the functionality 
is missing, but for example tuple() still works...   The relevant debug 
information is:

18788:     find library=libjulia.so [0]; searching
18788:      search path=/usr/local/julia-aa5ffc6ac6/lib/julia/tls/x86_64:
/usr/local/julia-aa5ffc6ac6/lib/julia/tls:/usr/local/julia-aa5ffc6ac6/lib/
julia/x86_64:/usr/local/julia-aa5ffc6ac6/lib/julia              (RPATH from 
file /home/jeffw/src/nj-test2/node_modules/node-julia/build/Release/nj.node)

18788:       trying file=/usr/local/julia-aa5ffc6ac6/lib/julia/tls/x86_64/
libjulia.so
18788:       trying file=/usr/local/julia-aa5ffc6ac6/lib/julia/tls/libjulia.
so
18788:       trying file=/usr/local/julia-aa5ffc6ac6/lib/julia/x86_64/
libjulia.so
18788:       trying file=/usr/local/julia-aa5ffc6ac6/lib/julia/libjulia.so

Followed by:
18788:  calling init: /usr/local/julia-aa5ffc6ac6/lib/julia/libjulia.so
Which returns with no errors

Then when calling init on my .so, the following happens

18788:     /usr/local/julia-aa5ffc6ac6/lib/../lib/julia/sys.so: error: 
symbol lookup error: undefined symbol: jl_diverror_exception (fatal)
18788:  node: error: symbol lookup error: undefined symbol: jl_ast_rettype (
fatal)
18788:   node: error: symbol lookup error: undefined symbol: jl_prepare_ast 
(fatal)
18788:   node: error: symbol lookup error: undefined symbol: 
jl_alloc_array_1d (fatal)
18788:        node: error: symbol lookup error: undefined symbol: 
jl_alloc_array_1d (fatal)
18788:        node: error: symbol lookup error: undefined symbol: 
jl_alloc_array_1d (fatal)
18788:        node: error: symbol lookup error: undefined symbol: 
jl_alloc_array_1d (fatal)

followed by about 50 more unresolved symbols...

But those symbols are in libjulia.so, 

The effect of this is later on is the following exception

Error: Julia ccall: could not find function jl_prepare_ast


Here's the output of ldd of the .so library .  In linux @rpath is $ORIGIN, 
and I don't see that here, so maybe that's the culprit, or maybe a red 
herring

linux-vdso.so.1 =>  (0x00007fff765d9000)
libjulia.so => /usr/local/julia-aa5ffc6ac6/lib/julia/libjulia.so (
0x00007f89c4cd1000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (
0x00007f89c49c3000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f89c47ac000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f89c458f000
)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f89c41cf000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f89c3fc6000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f89c3dc2000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f89c3bab000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f89c38ae000)
/lib64/ld-linux-x86-64.so.2 (0x00007f89c5fb1000)


Reply via email to