I have a project on the DevCloud that uses MKL and is built with CMake. For convenience, CMake invokes `mkl_link_tool` to construct the link line. However, `mkl_link_tool` happens to be a 32-bit executable:
/glob/development-tools/versions/intel-parallel-studio/compilers_and_libraries_2019.3.199/linux$ file mkl/tools/mkl_link_tool mkl/tools/mkl_link_tool: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-, for GNU/Linux 2.6.18, BuildID[sha1]=ec312866645ce227a0fd3b0aeabe20b1c9d7ba42, not stripped
and Ubuntu does not let it run. `bash` gives a very misleading error message, saying that the file could not be found.
The cure is to install the 32-bit compatibility layer package:
`sudo apt-get install lib32stdc++6`
but hey, I have no sudo privileges on the DevCloud :-)
Is there a quick workaround at the user level?
BTW, it's high time for `mkl_link_tool` grew up and gained an additional set of 32 bits which I am sure it deserves .:-)
Cheers, AA
链接已复制
yes, you are right, this is a 32-bit routine. I am not sure about the workaround with this case...only manually added the need libraries but this is not what you like to see as I guess. Could you submit the official Feature Request to the Intel Online Service Center?
Thank you for your reply. I will certainly submit a Feature Request as suggested.
However, a quick fix is needed ASAP. Would it be possible that a sysadmin installs the Ubuntu 32-bit compatibility layer on the DevCloud in the meantime? As far as I can tell the following commands are needed:
sudo dpkg --add-architecture i386 sudo apt update sudo apt install libc6:i386
...but I leave it to the experts to figure out the details :-)
Many thanks, András
Spencer P. (Intel) wrote:Please note that MKL 2020 update 1 has 32bit and 64 bit binaries for the mkl_link_tool already. They are found in mkl/tools/mkl_link_tool/{ia32/intel64} folders.
Spencer
Thank you, but that does not help me as I cannot install that on the DevCloud either :-)