Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
6435 Discussions

Missing SONAME for libmkl_rt.so / 2019.0.4

Goth__Sebastian
Beginner
322 Views

Hey there,

the current version (2019.0.4) of libmkl_rt.so has no SONAME set. This leads to various minor linking issues, as ld/cmake then places the absolute path in the DT_NEEDED ELF field, instead of only "libmkl_rt.so". That again is a problem in deployments.

Would it be possible to get SONAME set to simply "libmkl_rt.so" in an upcoming version?

Probably it would be best to do it for all dynamic mkl libraries.

Currently only the following libs have a SONAME:

libiomp5_db.so
libiomp5.so
libiompstubs5.so
libmkl_vml_avx2.so
libmkl_vml_avx512_mic.so
libmkl_vml_avx512.so
libmkl_vml_avx.so
libmkl_vml_cmpt.so
libmkl_vml_def.so
libmkl_vml_mc2.so
libmkl_vml_mc3.so
libmkl_vml_mc.so

If there is a better way to express this request for the free edition of MKL, please tell me.

Thanks,
Sebastian

0 Kudos
5 Replies
Gennady_F_Intel
Moderator
322 Views

actually libiomp*.so are part of the compiler, 

but you are right, objdupmped the latest 2019.4 shared objects and see we broken to add soname 

]$ objdump -p *.so | grep SONAME
  SONAME               libmkl_vml_avx2.so
  SONAME               libmkl_vml_avx512_mic.so
  SONAME               libmkl_vml_avx512.so
  SONAME               libmkl_vml_avx.so
  SONAME               libmkl_vml_cmpt.so
  SONAME               libmkl_vml_def.so
  SONAME               libmkl_vml_mc2.so
  SONAME               libmkl_vml_mc3.so
  SONAME               libmkl_vml_mc.so
Probably, we will try to resore this option in the future versions of mkl.

 

 

mokrejs__martin
Beginner
322 Views

I have a similar comment based on automated QC done by Gentoo Linux. also, you should include version numbers in the lib-foo*.${ver}.so and then make symbolic links from lib-foo*.so, etc.
 

>>> Emerging (2 of 3) sci-libs/mkl-rt-2019.4.243::gentoo
 * mkl-rt-2019.4.243.tar.bz2 BLAKE2B SHA512 size ;-) ...                                                                                                                                                                                                                                                              [ ok ]
>>> Unpacking source...
>>> Unpacking mkl-rt-2019.4.243.tar.bz2 to /scratch/var/tmp/portage/sci-libs/mkl-rt-2019.4.243/work
>>> Source unpacked in /scratch/var/tmp/portage/sci-libs/mkl-rt-2019.4.243/work
>>> Preparing source in /scratch/var/tmp/portage/sci-libs/mkl-rt-2019.4.243/work ...
>>> Source prepared.
>>> Configuring source in /scratch/var/tmp/portage/sci-libs/mkl-rt-2019.4.243/work ...
>>> Source configured.
>>> Compiling source in /scratch/var/tmp/portage/sci-libs/mkl-rt-2019.4.243/work ...
>>> Source compiled.
>>> Test phase [not enabled]: sci-libs/mkl-rt-2019.4.243

>>> Install sci-libs/mkl-rt-2019.4.243 into /scratch/var/tmp/portage/sci-libs/mkl-rt-2019.4.243/image
>>> Completed installing sci-libs/mkl-rt-2019.4.243 into /scratch/var/tmp/portage/sci-libs/mkl-rt-2019.4.243/image

 * Final size of build directory: 765212 KiB (747.2 MiB)
 * Final size of installed tree:  765004 KiB (747.0 MiB)


 * QA Notice: The following files contain runtime text relocations
 *  Text relocations force the dynamic linker to perform extra
 *  work at startup, waste system resources, and may pose a security
 *  risk.  On some architectures, the code may not even function
 *  properly, if at all.
 *  For more information, see:
 *
 *    https://wiki.gentoo.org/wiki/Hardened/HOWTO_locate_and_fix_textrels
 *
 *  Please include the following list of files in your report:
 * TEXTREL usr/lib64/libmkl_tbb_thread.so
 * TEXTREL usr/lib64/libmkl_core.so
 * TEXTREL usr/lib64/libmkl_avx2.so
 * TEXTREL usr/lib64/libmkl_pgi_thread.so
 * TEXTREL usr/lib64/libmkl_avx512_mic.so
 * TEXTREL usr/lib64/libmkl_avx512.so


 * QA Notice: The following shared libraries lack a SONAME
 * /usr/lib64/libmkl_avx.so
 * /usr/lib64/libmkl_avx2.so
 * /usr/lib64/libmkl_avx512.so
 * /usr/lib64/libmkl_avx512_mic.so
 * /usr/lib64/libmkl_blacs_intelmpi_ilp64.so
 * /usr/lib64/libmkl_blacs_intelmpi_lp64.so
 * /usr/lib64/libmkl_blacs_openmpi_ilp64.so
 * /usr/lib64/libmkl_blacs_openmpi_lp64.so
 * /usr/lib64/libmkl_blacs_sgimpt_ilp64.so
 * /usr/lib64/libmkl_blacs_sgimpt_lp64.so
 * /usr/lib64/libmkl_cdft_core.so
 * /usr/lib64/libmkl_core.so
 * /usr/lib64/libmkl_def.so
 * /usr/lib64/libmkl_gf_ilp64.so
 * /usr/lib64/libmkl_gf_lp64.so
 * /usr/lib64/libmkl_gnu_thread.so
 * /usr/lib64/libmkl_intel_ilp64.so
 * /usr/lib64/libmkl_intel_lp64.so
 * /usr/lib64/libmkl_intel_thread.so
 * /usr/lib64/libmkl_mc.so
 * /usr/lib64/libmkl_mc3.so
 * /usr/lib64/libmkl_pgi_thread.so
 * /usr/lib64/libmkl_rt.so
 * /usr/lib64/libmkl_scalapack_ilp64.so
 * /usr/lib64/libmkl_scalapack_lp64.so
 * /usr/lib64/libmkl_sequential.so
 * /usr/lib64/libmkl_tbb_thread.so


 * QA Notice: The following shared libraries lack NEEDED entries
 * /usr/lib64/libmkl_blacs_intelmpi_ilp64.so
 * /usr/lib64/libmkl_blacs_intelmpi_lp64.so
 * /usr/lib64/libmkl_blacs_openmpi_ilp64.so
 * /usr/lib64/libmkl_blacs_openmpi_lp64.so
 * /usr/lib64/libmkl_blacs_sgimpt_ilp64.so
 * /usr/lib64/libmkl_blacs_sgimpt_lp64.so
 * /usr/lib64/libmkl_cdft_core.so
 * /usr/lib64/libmkl_scalapack_ilp64.so
 * /usr/lib64/libmkl_scalapack_lp64.so

making executable: /usr/lib64/libmkl_avx.so
making executable: /usr/lib64/libmkl_avx2.so
making executable: /usr/lib64/libmkl_avx512.so
making executable: /usr/lib64/libmkl_avx512_mic.so
making executable: /usr/lib64/libmkl_blacs_intelmpi_ilp64.so
making executable: /usr/lib64/libmkl_blacs_intelmpi_lp64.so
making executable: /usr/lib64/libmkl_blacs_openmpi_ilp64.so
making executable: /usr/lib64/libmkl_blacs_openmpi_lp64.so
making executable: /usr/lib64/libmkl_blacs_sgimpt_ilp64.so
making executable: /usr/lib64/libmkl_blacs_sgimpt_lp64.so
making executable: /usr/lib64/libmkl_cdft_core.so
making executable: /usr/lib64/libmkl_core.so
making executable: /usr/lib64/libmkl_def.so
making executable: /usr/lib64/libmkl_gf_ilp64.so
making executable: /usr/lib64/libmkl_gf_lp64.so
making executable: /usr/lib64/libmkl_gnu_thread.so
making executable: /usr/lib64/libmkl_intel_ilp64.so
making executable: /usr/lib64/libmkl_intel_lp64.so
making executable: /usr/lib64/libmkl_intel_thread.so
making executable: /usr/lib64/libmkl_mc.so
making executable: /usr/lib64/libmkl_mc3.so
making executable: /usr/lib64/libmkl_pgi_thread.so
making executable: /usr/lib64/libmkl_rt.so
making executable: /usr/lib64/libmkl_scalapack_ilp64.so
making executable: /usr/lib64/libmkl_scalapack_lp64.so
making executable: /usr/lib64/libmkl_sequential.so
making executable: /usr/lib64/libmkl_tbb_thread.so
making executable: /usr/lib64/libmkl_vml_avx.so
making executable: /usr/lib64/libmkl_vml_avx2.so
making executable: /usr/lib64/libmkl_vml_avx512.so
making executable: /usr/lib64/libmkl_vml_avx512_mic.so
making executable: /usr/lib64/libmkl_vml_cmpt.so
making executable: /usr/lib64/libmkl_vml_def.so
making executable: /usr/lib64/libmkl_vml_mc.so
making executable: /usr/lib64/libmkl_vml_mc2.so
making executable: /usr/lib64/libmkl_vml_mc3.so

>>> Installing (2 of 3) sci-libs/mkl-rt-2019.4.243::gentoo

 

Gennady_F_Intel
Moderator
322 Views

ok, thanks for the additional info. Meantime, I would recommend you submit the issue into Intel Online Service Center.

Gennady_F_Intel
Moderator
312 Views

Could you check the latest version of MKL 2020 update 2 which available for downloading and it contains the fix of the issue?

Gennady_F_Intel
Moderator
310 Views

here what I see with MKL v. 2020.2

$ objdump -p *.so | grep SONAME
SONAME libmkl_avx2.so
SONAME libmkl_avx512_mic.so
SONAME libmkl_avx512.so
SONAME libmkl_avx.so
SONAME libmkl_blacs_intelmpi_ilp64.so
SONAME libmkl_blacs_intelmpi_lp64.so
SONAME libmkl_blacs_openmpi_ilp64.so
SONAME libmkl_blacs_openmpi_lp64.so
SONAME libmkl_blacs_sgimpt_ilp64.so
SONAME libmkl_blacs_sgimpt_lp64.so
SONAME libmkl_cdft_core.so
SONAME libmkl_core.so
SONAME libmkl_def.so
SONAME libmkl_gf_ilp64.so
SONAME libmkl_gf_lp64.so
SONAME libmkl_gnu_thread.so
SONAME libmkl_intel_ilp64.so
SONAME libmkl_intel_lp64.so
SONAME libmkl_intel_thread.so
SONAME libmkl_mc3.so
SONAME libmkl_mc.so
SONAME libmkl_pgi_thread.so
SONAME libmkl_rt.so
SONAME libmkl_scalapack_ilp64.so
SONAME libmkl_scalapack_lp64.so
SONAME libmkl_sequential.so
SONAME libmkl_tbb_thread.so
SONAME libmkl_vml_avx2.so
SONAME libmkl_vml_avx512_mic.so
SONAME libmkl_vml_avx512.so
SONAME libmkl_vml_avx.so
SONAME libmkl_vml_cmpt.so
SONAME libmkl_vml_def.so
SONAME libmkl_vml_mc2.so
SONAME libmkl_vml_mc3.so
SONAME libmkl_vml_mc.so

Reply