- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm trying to link some code compiled with ifc 8.0 with the Intel MKL v 5.2, and am getting link failures:
/opt/intel/mkl52/lib/32/libmkl_lapack64.so: undefined reference to `z_abs'
/opt/intel/mkl52/lib/32/libmkl_lapack64.so: undefined reference to `c_sqrt'
/opt/intel/mkl52/lib/32/libmkl_lapack64.so: undefined reference to `z_exp'
/opt/intel/mkl52/lib/32/libmkl_lapack64.so: undefined reference to `c_exp'
/opt/intel/mkl52/lib/32/libmkl_lapack64.so: undefined reference to `z_sqrt'
/opt/intel/mkl52/lib/32/libmkl_lapack64.so: undefined reference to `s_cat'
/opt/intel/mkl52/lib/32/libmkl_lapack64.so: undefined reference to `c_abs'
/opt/intel/mkl52/lib/32/libmkl_lapack64.so: undefined reference to `s_copy'
This worked perfectly well when using the 7.1 compiler.
A little investigation reveals that these symbols were defined in:
/opt/intel/compiler70/ia32/lib/libF90.so.3.
Can it really be true that the MKL library is dependent on compiler version-specific basic maths functions?
Keith Refson
/opt/intel/mkl52/lib/32/libmkl_lapack64.so: undefined reference to `z_abs'
/opt/intel/mkl52/lib/32/libmkl_lapack64.so: undefined reference to `c_sqrt'
/opt/intel/mkl52/lib/32/libmkl_lapack64.so: undefined reference to `z_exp'
/opt/intel/mkl52/lib/32/libmkl_lapack64.so: undefined reference to `c_exp'
/opt/intel/mkl52/lib/32/libmkl_lapack64.so: undefined reference to `z_sqrt'
/opt/intel/mkl52/lib/32/libmkl_lapack64.so: undefined reference to `s_cat'
/opt/intel/mkl52/lib/32/libmkl_lapack64.so: undefined reference to `c_abs'
/opt/intel/mkl52/lib/32/libmkl_lapack64.so: undefined reference to `s_copy'
This worked perfectly well when using the 7.1 compiler.
A little investigation reveals that these symbols were defined in:
/opt/intel/compiler70/ia32/lib/libF90.so.3.
Can it really be true that the MKL library is dependent on compiler version-specific basic maths functions?
Keith Refson
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You are using a rather old version of MKL with a new compiler. There were major, one-timechanges in the 8.0 Fortran compiler, with the adoption of a new front end and runtime libraries (whose roots are in Compaq Visual Fortran). Whilst we strive to make MKL insensitive to the RTL, thedifferences hereare too great. For example, some intrinsics, such as complex double precision square roots, are not part of the Fortran standard, and 7.1 (ZSQRT) and 8.0 (CDSQRT) front ends and corresponding libraries have different conventions. In general, objects built with older compilers will need to be rebuilt with 8.0. We do not expect comparable changes between future compiler versions.
Future versions of MKL are anyway intended to be independent of the runtime library. I believe the current MKL version (6.1) should already be compatible with both the 7.1 and 8.0 compilers.
Martyn
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page