From: steve.lionel on
renormalize(a)hotmail.com wrote:
> I'm not a particularly savy linux user, but I have managed to install
> Intel Fortran, C++, and MKL on my PC's linux partition (Ubuntu 6.0.6).
> Now I want to use the free Fortran package PROPACK to do singular value
> decompositions of large sparse matrices. Using the make file included
> with PROPACK works fine until it tries to link and optimize the example
> programs included with the package:
>
> make[2]: Entering directory `/home/ron/Desktop/PROPACK/double/Examples'
> ifort -cm -w95 -assume buffered_io -vec_report0 -O3 -ipo -xN -Vaxlib
> -o example.LINUX_ICC_IA32.x example.o matvec.o
> -L/opt/intel/mkl/8.1.1/lib/32 -L.. -L. ../libdpropack_LINUX_ICC_IA32.a
> ../libdlapack_util_LINUX_ICC_IA32.a -lmkl_p4 -lguide
> ../libdlapack_util_LINUX_ICC_IA32.a
> IPO: performing multi-file optimizations
> IPO: generating object file /tmp/ipo_ifort4usUFH.o
> /opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to
> `vsCos'
> /opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to
> `vslDeleteStream'
> /opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to
> `vdSin'
> /opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to
> `viRngUniformBits'
> /opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to
> `vslNewStream'
> /opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to
> `vdCos'
> /opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to
> `vsSin'
> make[2]: *** [example.LINUX_ICC_IA32.x] Error 1
> make[2]: Leaving directory `/home/ron/Desktop/PROPACK/double/Examples'
>
> I figured out that the above undefined references are functions from
> the Intel VML/VSL package, so I added -lmkl_vml_p4 after -lmkl_p4 in
> the above ifort line, but it still generates the same errors.

I realize this is an old post (which is why I quoted so much of it),
but I recently received a request from an MKL developer to supply a
response as follows:


Instead of using -lmk_vml_p4 and -lmkl_p4 he should be using
-lmkl and -lvml. The names are in these two files which will then
dispatch the appropriate .so based on cpuid check the names in the
processor specific .so's are decorated and that is why they will not
help him directly.

Linking information can be found in our Getting Started Guide:
http://www3.intel.com/cd/software/products/asmo-na/eng/307884.htm. I
looked it up and the information is there, but though we've changed
this a thousand times, it always seems this could be arranged better.

--

Steve