0

While compiling+linking some MIC (Intel Xeon Phi coprocessor) code, I got this warnings.

x86_64-k1om-linux-ld: warning: libimf.so, needed by /usr/local/Intel/parallel_studio_xe_2013_sp1/composer_xe_2015.0.090/compiler/lib/mic/liboffload.so.5, not found (try using -rpath or -rpath-link)
x86_64-k1om-linux-ld: warning: libsvml.so, needed by /usr/local/Intel/parallel_studio_xe_2013_sp1/composer_xe_2015.0.090/compiler/lib/mic/liboffload.so.5, not found (try using -rpath or -rpath-link)
x86_64-k1om-linux-ld: warning: libirng.so, needed by /usr/local/Intel/parallel_studio_xe_2013_sp1/composer_xe_2015.0.090/compiler/lib/mic/liboffload.so.5, not found (try using -rpath or -rpath-link)
x86_64-k1om-linux-ld: warning: libintlc.so.5, needed by /usr/local/Intel/parallel_studio_xe_2013_sp1/composer_xe_2015.0.090/compiler/lib/mic/liboffload.so.5, not found (try using -rpath or -rpath-link)

But these libraries are existing and the code is compiling+linking and executable. The Intel C++ compiler is used.

SScholl
  • 598
  • 6
  • 19
  • "They exist". Maybe. The linker cannot find them. Tell it where they are by using -rpath-link. – n. m. could be an AI Oct 30 '14 at 14:09
  • @CaptainObvlious no, it's a totally different issue. – n. m. could be an AI Oct 30 '14 at 17:27
  • @n.m. the -rpath or -rpath-link option is ignored. – SScholl Nov 27 '14 at 09:25
  • The compiler does not know these options, you need to pass them to the linker. If you are linking with icc, try -Wl,-rpath=/your/dir – n. m. could be an AI Nov 27 '14 at 09:43
  • @n.m. I do so, but didn't work. `icc -openmp -Wl -rpath=/usr/local/Intel/parallel_studio_xe_2013_sp1/composer_xe_2015.0.090/compiler/lib/mic/ -o matmul_c_intel.exe matmul_c.o -L/usr/local/lib` If i add it directly to LDLIBS, the linker is skipping it. E.g. `ld: skipping incompatible /usr/local/Intel/parallel_studio_xe_2013_sp1/composer_xe_2015.0.090/compiler/lib/mic/libimf.a when searching for -liomp5` – SScholl Nov 27 '14 at 10:36
  • Please don't re-type, but rather copy and paste. The recipe says -Wl,-rpath= with no space and a comma in between. You need this comma, and you don't need the space. Read `icc -help` and verify. – n. m. could be an AI Nov 27 '14 at 11:01
  • Thanks! But that did not help. The compiler accepts the option, but linker warnings are still the same. – SScholl Nov 27 '14 at 12:06
  • Are you sure they are 64-bit libraries? – n. m. could be an AI Nov 27 '14 at 17:31

1 Answers1

0

You don't say what compiler options you are using but if you are compiling the code to run native on the coprocessor (if you are using -mmic on the compiler command), then these messages are not harmful. The offload libraries are not used when you run your program directly on the coprocessor. I'm not sure why the loader thinks it needs those libraries but they are not needed, hence they do not link, hence the loader thinks the library is missing. No amount of playing with library paths is going to make the warning go away.

froth
  • 319
  • 1
  • 6