Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

Runtime error with the libirng.so (undefined symbol: _intel_avx_rep_memcpy) for icpc of Intel Parallel Studio 2018.1.163

Rex__Ren
Beginner
3,576 Views

On Ubuntu Virtualbox, I can generate a '.so' file without problem using the 'icpc' command of Intel Parallel Studio 2018.1.163. However, when I run the program linked with the '.so' file, there is an error saying:

symbol lookup error: /opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64/libirng.so: undefined symbol: __intel_avx_rep_memcpy

Does anyone know how I can fix this? Is it related to LD_LIBRARY_PATH or anything else?

My 'LD_LIBRARY_PATH' is shown below:

/opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64:/opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64_lin:/opt/intel/compilers_and_libraries_2018.1.163/linux/mpi/intel64/lib:/opt/intel/compilers_and_libraries_2018.1.163/linux/mpi/mic/lib:/opt/intel/compilers_and_libraries_2018.1.163/linux/ipp/lib/intel64:/opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64_lin:/opt/intel/compilers_and_libraries_2018.1.163/linux/mkl/lib/intel64_lin:/opt/intel/compilers_and_libraries_2018.1.163/linux/tbb/lib/intel64/gcc4.7:/opt/intel/compilers_and_libraries_2018.1.163/linux/tbb/lib/intel64/gcc4.7:/opt/intel/debugger_2018/iga/lib:/opt/intel/debugger_2018/libipt/intel64/lib:/opt/intel/compilers_and_libraries_2018.1.163/linux/daal/lib/intel64_lin:/opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64:/opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64_lin:/opt/intel/compilers_and_libraries_2018.1.163/linux/mpi/intel64/lib:/opt/intel/compilers_and_libraries_2018.1.163/linux/mpi/mic/lib:/opt/intel/compilers_and_libraries_2018.1.163/linux/ipp/lib/intel64:/opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64_lin:/opt/intel/compilers_and_libraries_2018.1.163/linux/mkl/lib/intel64_lin:/opt/intel/compilers_and_libraries_2018.1.163/linux/tbb/lib/intel64/gcc4.7:/opt/intel/compilers_and_libraries_2018.1.163/linux/tbb/lib/intel64/gcc4.7:/opt/intel/debugger_2018/iga/lib:/opt/intel/debugger_2018/libipt/intel64/lib:/opt/intel/compilers_and_libraries_2018.1.163/linux/daal/lib/intel64_lin:/opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64:/opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64_lin:/opt/intel/compilers_and_libraries_2018.1.163/linux/mpi/intel64/lib:/opt/intel/compilers_and_libraries_2018.1.163/linux/mpi/mic/lib:/opt/intel/compilers_and_libraries_2018.1.163/linux/ipp/lib/intel64:/opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64_lin:/opt/intel/compilers_and_libraries_2018.1.163/linux/mkl/lib/intel64_lin:/opt/intel/compilers_and_libraries_2018.1.163/linux/tbb/lib/intel64/gcc4.7:/opt/intel/compilers_and_libraries_2018.1.163/linux/tbb/lib/intel64/gcc4.7:/opt/intel/debugger_2018/iga/lib:/opt/intel/debugger_2018/libipt/intel64/lib:/opt/intel/compilers_and_libraries_2018.1.163/linux/daal/lib/intel64_lin:/opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64:/opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64_lin:/opt/intel/compilers_and_libraries_2018.1.163/linux/mpi/intel64/lib:/opt/intel/compilers_and_libraries_2018.1.163/linux/mpi/mic/lib:/opt/intel/compilers_and_libraries_2018.1.163/linux/ipp/lib/intel64:/opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64_lin:/opt/intel/compilers_and_libraries_2018.1.163/linux/mkl/lib/intel64_lin:/opt/intel/compilers_and_libraries_2018.1.163/linux/tbb/lib/intel64/gcc4.7:/opt/intel/compilers_and_libraries_2018.1.163/linux/tbb/lib/intel64/gcc4.7:/opt/intel/debugger_2018/iga/lib:/opt/intel/debugger_2018/libipt/intel64/lib:/opt/intel/compilers_and_libraries_2018.1.163/linux/daal/lib/intel64_lin:/opt/intel/compilers_and_libraries_2018.1.163/linux/daal/../tbb/lib/intel64_lin/gcc4.4::/opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64_lin:/lib/x86_64-linux-gnu:/lib64


 

0 Kudos
9 Replies
Viet_H_Intel
Moderator
3,576 Views

 

Can you run: "ldd /opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64/libirng.so" to see if it can find libintlc.so.5?

Thanks,

Viet

0 Kudos
Rex__Ren
Beginner
3,576 Views

Dear Viet,

After I run the command you suggest, the information below is printed on the terminal. It seems it can find 'libintlc.so.5', do you have any comments on this? Thanks!

    linux-vdso.so.1 =>  (0x00007fff68ba4000)
    libintlc.so.5 => /opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64/libintlc.so.5 (0x00007effa0d37000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007effa096d000)
    /lib64/ld-linux-x86-64.so.2 (0x0000562f3c45b000)

 

Rex

 

 

Viet Hoang (Intel) wrote:

 

Can you run: "ldd /opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64/libirng.so" to see if it can find libintlc.so.5?

Thanks,

Viet

0 Kudos
Viet_H_Intel
Moderator
3,576 Views

Can you try ldd on your *.so to see if dependency was missing?

Thanks,

Viet 

0 Kudos
Rex__Ren
Beginner
3,576 Views

Hi Viet,

After my tried ldd *.so, the information below is printed on the terminal:

linux-vdso.so.1 =>  (0x00007ffc34da8000)
    libirc.so => /opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64/libirc.so (0x00007ff2073a2000)
    libirng.so => /opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64/libirng.so (0x00007ff20702e000)
    libintlc.so.5 => /opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64/libintlc.so.5 (0x00007ff206dc1000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff2069f6000)
    libifport.so.5 => /opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64/libifport.so.5 (0x00007ff2067c7000)
    libifcoremt.so.5 => /opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64/libifcoremt.so.5 (0x00007ff206433000)
    libsvml.so => /opt/intel/compilers_and_libraries_2018.1.163/linux/compiler/lib/intel64/libsvml.so (0x00007ff204d7f000)

...

As you can see that again the 'libintlc.so.5' can be found. Do you have any additional comments?

Thanks,

Rex

 

Viet Hoang (Intel) wrote:

Can you try ldd on your *.so to see if dependency was missing?

Thanks,

Viet 

0 Kudos
Henrique_M_
Beginner
3,576 Views

Did you manage to solve the problem?

I started getting the following message after updating to intel compilers 2018:

ERROR: 1> /Intel/compilers_and_libraries_2018.2.199/linux/compiler/lib/intel64/libirng.so: undefined reference to `__intel_skx_avx512_memcpy'

ERROR: 1> collect2: error: ld returned 1 exit status

I have run the ldd on the file libirng.so and the result is:

linux-vdso.so.1 =>  (0x00007ffdcd172000)
libintlc.so.5 => /data2/dev_rio/Intel/compilers_and_libraries_2018.2.199/linux/compiler/lib/intel64/libintlc.so.5 (0x00007f63f748e000)
libc.so.6 => /lib64/libc.so.6 (0x00007f63f70e2000)
/lib64/ld-linux-x86-64.so.2 (0x0000003d66000000)

Anyone has any clue on how can I solve that?

0 Kudos
Henrique_M_
Beginner
3,576 Views

I ran nm in this library (libirng.so) just to see whether there was any missing symbols therein. For my surprise, I got the following output:

...
0000000000012980 t __intel_lcong48__skx256
                 U __intel_mic_avx512f_memcpy
                 U __intel_skx_avx512_memcpy
...

For what I understand, U means that the symbol is undefined.

Does that ring any bell? Moderators, should I open another thread for it? 

0 Kudos
Vladimir_P_1234567890
3,576 Views

hello, did you link with libirc?

to check you can try the following trick:

LD_PRELOAD=/Intel/compilers_and_libraries_2018.2.199/linux/compiler/lib/intel64/libirc.so <your app and command line>

--Vladimir

0 Kudos
Henrique_M_
Beginner
3,576 Views

Hi Vladimir,

Same problem. I tried this trick before (although with the libirng.so library and defining the LD_PRELOAD variable with env in front of it since I am using tcsh here, not bash. ; )

Anyway, it is not a linker problem because I already have the directory of this library defined in the path.

Let me elaborate a bit more my problem, I am trying to compile a source code with g++ using Makefile. This code is compiling fine with the 2017 Intel libraries, the problem is only happening with the 2018 Intel libraries.

Another thing that is worth mentioning and which differs from the environment that is working is that I am running everything through a virtual machine on this one.

0 Kudos
Henrique_M_
Beginner
3,576 Views

Well, it seems that the problem was due to the installation be done in the virtual machine.

What I did to solve the problem was installing the intel compilers/libraries in the host machine and exporting it via nfs to the virtual machine. After that I was able to link against the intel libraries with no problem.

Another thing that might be the reason for that to work this time is that at first I was using the Parallel Studio XE 2018 update 2. When I reinstalled it in the host machine I used the new update 3 release.

0 Kudos
Reply