Software Archive
Read-only legacy content
17061 Discussions

warnings while compiling

TK
Beginner
1,475 Views

When i compile my programs I get the following warnings

ipo: warning #11010: *MIC* file format not recognized for /usr/lib64/libm.so

same for libthread.so.0, libc.so.6, ld-linux-x86-64.so.2, libdl.so

AND

x86_64-k1om-linux-ld: skipping incompatible /use/lib64/libm.so when searching for -lm

same for -lpthread, -lc, -ldl

Why do I get these? Thanks.

0 Kudos
12 Replies
TimP
Honored Contributor III
1,475 Views

A typical way in which these might arise is with a Makefile which specifically sets library paths for host links.  When you source the icc compilervars.sh to set up the paths, this shouldn't happen.

k1om-linux-ld acts just like the host linux 32- and 64-bit versions of ld; it issues those warning messages if it encounters first a library which doesn't match its architecture.

0 Kudos
TK
Beginner
1,475 Views

Thanks. I compiling my program as follows: icc -lz -openmp -O3 -I/usr/include -L/usr/lib64 -lgsl -lgslcblas a.c

What should I change? Thanks.

0 Kudos
TimP
Honored Contributor III
1,475 Views

You should allow icc to select the std include and library paths rather than putting them in as -I and -L directives.  This would require setting up the environment in accordance with compilervars script.

0 Kudos
TK
Beginner
1,475 Views

Thanks. Do you mean to compile it as follows: icc -lz -openmp -O3 -lgsl -lgslcblas a.c? If so, then I get the error saying: "catastrophic error: *MIC*  cannot open source file "zlib.h"".

0 Kudos
TimP
Honored Contributor III
1,475 Views

That might indicate that you need a MIC build of zlib.  If using zlib only on the host side, you might try including the specific zlib.h path rather than putting /usr/include/ ahead of the choices icc make.

0 Kudos
TK
Beginner
1,475 Views

Thanks Tim. Yes, I am using zlib and gsl on the host side only. Do you mean to do the following ?

[cpp] #include </usr/include/zlib.h>

#include </usr/include/gsl/gsl_math.h>

[/cpp]

0 Kudos
TK
Beginner
1,475 Views

Hi Tim, instead I did the following while compiling: icc -I/usr/include -lgsl -lgslcblas -lz a.c. It compiled without any warnings. Thanks.

0 Kudos
mohamad_a_
Beginner
1,475 Views

Hello Tim and TK

Similar to TK's code, when I compile my code I get the following warnings:

ipo: warning #11010: *MIC* file format not recognized for /lib64/libpthread.so.0
ipo: warning #11010: *MIC* file format not recognized for /lib64/libc.so.6
ipo: warning #11010: *MIC* file format not recognized for /lib64/libc.so.6

Why do I get these?

Thank you.

#################################################################################################

I have set the compilervars.sh in the bashrc as "source /opt/intel/composer_xe_2013_sp1.0.080/bin/compilevars.sh intel64".

I have 2 c++ codes using mkl library & openmp pragmas & compiler assisted offload

When I run the code I almost get the followings:

icpc -c -I/opt/intel/composer_xe_2013_sp1.0.080/mkl/include -offload-attribute-target=mic -O2 -fargument-noalias  -DNDEBUG -Wall -Weffc++ -Woverloaded-virtual -W -Wfloat-equal -Wshadow -wd2015,2012,11069 -vec-report=3 -mkl -openmp -openmp_report2  main.cpp

icpc -c -I/opt/intel/composer_xe_2013_sp1.0.080/mkl/include -offload-attribute-target=mic -O2 -fargument-noalias  -DNDEBUG -Wall -Weffc++ -Woverloaded-virtual -W -Wfloat-equal -Wshadow -wd2015,2012,11069 -vec-report=3 -mkl -openmp -openmp_report2  mylib.cpp

icpc   main.o mylib.o   -openmp  -Wl,--start-group /opt/intel/composer_xe_2013_sp1.0.080/mkl/lib/intel64/libmkl_intel_lp64.a /opt/intel/composer_xe_2013_sp1.0.080/mkl/lib/intel64/libmkl_core.a /opt/intel/composer_xe_2013_sp1.0.080/mkl/lib/intel64/libmkl_intel_thread.a -Wl,--end-group -lpthread -lm -offload-option,mic,compiler,"  -Wl,--start-group /opt/intel/composer_xe_2013_sp1.0.080/mkl/lib/mic/libmkl_intel_lp64.a /opt/intel/composer_xe_2013_sp1.0.080/mkl/lib/mic/libmkl_core.a /opt/intel/composer_xe_2013_sp1.0.080/mkl/lib/mic/libmkl_intel_thread.a -Wl,--end-group" -o main.ICC_OFFLOAD_

ipo: warning #11010: *MIC* file format not recognized for /lib64/libpthread.so.0
ipo: warning #11010: *MIC* file format not recognized for /lib64/libc.so.6
ipo: warning #11010: *MIC* file format not recognized for /lib64/libc.so.6

##################################################################################################

0 Kudos
TimP
Honored Contributor III
1,475 Views

It looks like you are trying to combine compiler assisted offload with MIC native MKL linkage models.  The latter would be for builds using -mmic.  That option at link time should include the MIC library search paths, but would not work with the host MKL search paths which support compiler assisted offload.  If you really intend to combine the models you should say so when asking for advice (and be more specific; are you trying to call MKL both from your own offload functions and direct from host) (I haven't found a documented method), otherwise stick to one or the other.

The 0.080 release is the buggiest of the sp1 series; many MIC bugs were corrected in the subsequent updates.

0 Kudos
mohamad_a_
Beginner
1,475 Views

Thank you Tim for your fast response,

I got the whole link from http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor

and yes, actually,

I am trying to use a combination of Offload&Blas, Offload&openmp, Host&Blas and Host&openmp in a code and compare results.

What should I do?

0 Kudos
TimP
Honored Contributor III
1,475 Views

You have multiple groups of MKL linking, only one of which comes from the link advisor with the CAO selection.  If it is CAO only, there should be no references to the libraries required for MIC native linking.

When you have CAO, the choice between host and MIC offload in MKL is under the control of thresholds set in your environment variables; it doesn't involve additional link commands beyond the basic CAO.

0 Kudos
Ravi_N_Intel
Employee
1,475 Views

There is an issue with the compiler when IPO is enabled.  It searches the /usr/lib64 during MIC compilation and it should not.  These are warnings and you can ignore them.

0 Kudos
Reply