I am trying to build certain MAGMA functions into a shared library. The idea behind this is that I want a number of backends (CPU blas, MAGMA, ... etc) that adhere to a common interface for a benchmarking application that I am developing. I have tried to do this using the static libraries supplied with MAGMA by executing the following commands (scons output)

/usr/bin/ld: /home/elezar/src/cuda/magma_0.2/lib/libmagmablas.a(sinplace_transpose.cu_o): relocation R_X86_64_32 against `.nvFatBinSegment' can not be used when making a shared object; recompile with -fPIC/home/elezar/src/cuda/magma_0.2/lib/libmagmablas.a: could not read symbols: Bad valuecollect2: ld returned 1 exit status

When I place the shared libraries posted on the forum in the same folder as the static libs, the compilation is successful, but when I run a simple LAPACK test program I get the following:

Evan,Function slamch is auxiliary LAPACK functions, and indeed is not defined in the magma or magmablas libraries. How did you manage to make the compiler link when you have something undefined? I make shared objects the way you do and it works. When you link with the shared libraries, and then try to run the executable, does your LD_LIBRARY_PATH variable have the path to all shared libraries used? I use lapack from MKL so I have in it the path to the MKL shared libraries and to the MAGMA shared libraries.Stan

Which I foolishly thought was due to lapack incompatibilities. After reading through some forum posts, it dawned on me that this is actually due to the routines in the get_np.cpp file in the testing folder not being present and adding this to the shared library sources had the desired result.

I just discovered MAGMA, and am very excited to start using it. I would like to call it from Python using ctypes, which would require a shared library. Earlier in this discussion thread there is reference to a "shared library that was posted on the forum", but I can't find it now. Is it still available somewhere? FYI, I'm using 64-bit Linux.