Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

Missing SONAME for libmkl_rt.so / 2019.0.4

Goth__Sebastian
Beginner
815 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
815 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.

 

 

0 Kudos
mokrejs__martin
Beginner
815 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

 

0 Kudos
Gennady_F_Intel
Moderator
815 Views

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

0 Kudos
Gennady_F_Intel
Moderator
805 Views

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

0 Kudos
Gennady_F_Intel
Moderator
803 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

0 Kudos
Reply