I am experimenting with calling IBM's Watson Sparse Matrix Package (WSMP)
from Julia.
This is not Open Source software. It is shipped as a library. The
evaluation version is a static library but the author was kind enough to
send me a dynamic library for Linux.
I was able to compile, link and run a standalone C program with the
libwsmp64.so that I have. But accessing the same symbol through ccall in
Julia produces a segfault. In fact a symbol lookup with give a segfault.
Using julia-debug from version
Version 0.3.0-rc2+62 (2014-08-08 11:49 UTC)
Commit 07b75b9 (0 days old master)
x86_64-pc-linux-gnu
I get
julia> const libwsmp = Pkg.dir("MixedModels","deps", "usr", "lib",
"libwsmp.so")
"/home/bates/.julia/v0.3/MixedModels/deps/usr/lib/libwsmp.so"
julia> tt = dlsym_e(libwsmp,:wssmp_)
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7de4912 in _dl_lookup_symbol_x (undef_name=0x7ffff7e511a8
"wssmp_",
undef_map=0x61622f656d6f682f, ref=0x7fffffffc470,
symbol_scope=0x61622f656d6f6bb7, version=0x0,
type_class=0, flags=2, skip_map=0x0) at dl-lookup.c:731
731 dl-lookup.c: No such file or directory.
(gdb)
This is with my version of the shard library that contains linkage
information to libgfortran, etc. but the same thing happens with the
libwsmp64.so that the package author provided.
Suggestions?