Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
6437 Discussions

how to compile my program using static mode for MIC(Xeon Phi)

Allam_F_
Beginner
122 Views

I compile my program as the follwoing  to staticly link MKL I get the follwoing error .

I am using composer_xe_2013 , and icc .

bash-4.1$ icc -mmic -openmp -no-vec s_mkl_double_one_dim_reorder_err.c  -Wl,--start-group  libmkl_intel_lp64.a libmkl_intel_thread.a libmkl_core.a libiomp5.so -Wl,--end-group -o s_mkl_static.mic

The Error that I have from compiling it :


x86_64-k1om-linux-ld: i386:x86-64 architecture of input file `libmkl_intel_lp64.a(cblas_dgemm_lp64.o)' is incompatible with k1om output
x86_64-k1om-linux-ld: i386:x86-64 architecture of input file `libmkl_intel_lp64.a(_dgemm_lp64.o)' is incompatible with k1om output
x86_64-k1om-linux-ld: i386:x86-64 architecture of input file `libmkl_intel_lp64.a(cblas_xerbla_lp64.o)' is incompatible with k1om output
x86_64-k1om-linux-ld: i386:x86-64 architecture of input file `libmkl_intel_lp64.a(cblas_auxi_lp64.o)' is incompatible with k1om output
x86_64-k1om-linux-ld: i386:x86-64 architecture of input file `libmkl_intel_lp64.a(errchk_dgemm.o)' is incompatible with k1om output
x86_64-k1om-linux-ld: i386:x86-64 architecture of input file `libmkl_intel_lp64.a(_cdecl_xerbla.o)' is incompatible with k1om output
x86_64-k1om-linux-ld: i386:x86-64 architecture of input file `libmkl_intel_lp64.a(_xerbla_l.o)' is incompatible with k1om output
x86_64-k1om-linux-ld: i386:x86-64 architecture of input file `libmkl_intel_lp64.a(_xerbla_l_.o)' is incompatible with k1om output
x86_64-k1om-linux-ld: i386:x86-64 architecture of input file `libmkl_intel_lp64.a(_xerbla_u_.o)' is incompatible with k1om output
x86_64-k1om-linux-ld: i386:x86-64 architecture of input file `libmkl_intel_lp64.a(_xerbla.o)' is incompatible with k1om output
x86_64-k1om-linux-ld: BFD (GNU Binutils) 2.22.52.20120302 internal error, aborting at ../../../binutils/bfd/elf64-x86-64.c line 3382 in elf_x86_64_relocate_section

x86_64-k1om-linux-ld: Please report this bug.

0 Kudos
2 Replies
TimP
Black Belt
122 Views

According to the messages, you are trying to link libraries from mkl/lib/intel64/ where you need those from mkl/lib/mic/.  According to the link advisor http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor you must give the full path of each .a file.

libiomp5.so wouldn't normally be place inside the start-group ... end-group specifiers, and would normally be specified as -liomp5, but that may not be a problem.

Ying_H_Intel
Employee
122 Views

Hi Allam,

It looks all of the mkl and openmp library are for X86-64 (intel64), not for mic, which invoke the incompatible report.  You may try add the mic path explicitly for example,

-Wl,--start-group /opt/intel/composer_xe_2013_sp1/mkl/lib/mic/libmkl_intel_lp64.a /opt/intel/composer_xe_2013_sp1/mkl/lib/mic/libmkl_intel_thread.a /opt/intel/composer_xe_2013_sp1/mkl/lib/mic/libmkl_core.a /opt/intel/composer_xe_2013_sp1/lib/mic/libiomp5.so

and see if it works?

Some related link:

MKL user guide: http://software.intel.com/sites/products/documentation/doclib/mkl_sa/11/mkl_userguide_lnx/GUID-D0627...

MKL link advisor: http://software.intel.com/sites/products/mkl/MKL_Link_Line_Advisor.html

Best Regards

Ying

 

Reply