Software Archive
Read-only legacy content
17060 Discusiones

warnings while compiling

TK
Principiante
2.626 Vistas

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 Respuestas
TimP
Colaborador Distinguido III
2.626 Vistas

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.

TK
Principiante
2.626 Vistas

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.

TimP
Colaborador Distinguido III
2.626 Vistas

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.

TK
Principiante
2.626 Vistas

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"".

TimP
Colaborador Distinguido III
2.626 Vistas

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.

TK
Principiante
2.626 Vistas

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]

TK
Principiante
2.626 Vistas

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

mohamad_a_
Principiante
2.626 Vistas

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

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

TimP
Colaborador Distinguido III
2.626 Vistas

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.

mohamad_a_
Principiante
2.626 Vistas

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?

TimP
Colaborador Distinguido III
2.626 Vistas

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.

Ravi_N_Intel
Empleados
2.626 Vistas

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.

Responder