Shared Library Versioning
Intel® oneAPI Math Kernel Library (oneMKL)
This new feature:
- Allows applications to work correctly in an environment with multipleand/or Intel® MKL packages installedoneMKL
- Communicates clearly when incompatible changes are made, and an application should be rebuilt
- Allows you to link against a specific version of shared libraries
The starting version for shared libraries is “1” and any change that break backward compatibility will result in an increment to this number. Intel expects to make this change as seldom as possible and inform customers about it at least 24 months in advance.
The product version “2021.1” is now decoupled from the library version, meaning that “2021.2” can ship with shared libraries versioned as “1”. This means that the libraries shipped in “2021.2” are backward compatible with libraries shipped in “2021.1”.
Changes to the link-line:
- No changes are required to the link-line because symbolic links are provided with the old names, which point to the new library that contains the version information on Linux* and MacOS*. The symbolic link name is also thesonameandinstall_nameof that library on Linux and MacOS, respectively.
- For example,libmkl_core.so->libmkl_core.<version>.so
- For example,libmkl_core.dylib->libmkl_core.<version>.dylib
- Using-lmkl_corewill still work as before, ensuring backward compatibility with Intel® MKL 2020 line-up (including Intel® Parallel Studio and Intel® System Studio distributions).
- On Windows*, import libraries used in the link-line do not contain any version information, as before, but point to the new DLL, which contains the version information.
- For example,mkl_core_dll.libhas the same name as before and requires no change to the link-line. The linker, however, resolves this to the newmkl_core.<version>.dllinstead of the oldermkl_core.dll.