Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
The Intel sign-in experience has changed to support enhanced security controls. If you sign in, click here for more information.
6743 Discussions

Static linking PGI with MKL - missing `mkl_serv_default_xerbla'

miro_ilias
Beginner
280 Views

Dear experts,

I am trying to couple PGI compilers with the MKL library in static manner. Please what library should I include/how to rearrange linking command to satisfy missing reference ?

ilias@login-sivvp.ui.savba.sk:/shared/home/ilias/Work/software/dirac/trunk_release/build_pgi_mkl_i8_dbg_static/./opt/pgi/linux86-64/13.10/bin/pgf90 -Bstatic -Wl,--no-export-dynamic -Wl,-E -DVAR_PGF90 -Bstatic -i8 -g CMakeFiles/cfread.x.dir/utils/cfread.F90.o -o cfread.x -L/shared/home/ilias/Work/software/dirac/trunk_release/build_pgi_mkl_i8_dbg_static/external/lib -L/shared/home/ilias/Work/software/dirac/trunk_release/build_pgi_mkl_i8_dbg_static/external/pcmsolver-build/external/lib lib/libdirac.a -lpcm -lgetkw /usr/lib64/libz.a lib/libxcfun.a -Wl,--start-group /opt/intel/mkl/lib/intel64/libmkl_lapack95_ilp64.a /opt/intel/mkl/lib/intel64/libmkl_intel_ilp64.a -mp -Wl,--end-group -Wl,--no-export-dynamic -lzceh -lstdz -lCz -lstdc++ -Wl,-rpath,/shared/home/ilias/Work/software/dirac/trunk_release/build_pgi_mkl_i8_dbg_static/external/lib:/shared/home/ilias/Work/software/dirac/trunk_release/build_pgi_mkl_i8_dbg_static/external/pcmsolver-build/external/lib: /opt/intel/mkl/lib/intel64/libmkl_core.a 

/opt/intel/mkl/lib/intel64/libmkl_intel_ilp64.a(_xerbla.o): In function `XERBLA':

../../../../serv/iface/thunks_ext_to_ker/_xerbla.c:(.text+0x1): undefined reference to `mkl_serv_default_xerbla'

ilias@login-sivvp.ui.savba.sk:/shared/home/ilias/Work/software/dirac/trunk_release/build_pgi_mkl_i8_dbg_static/.

 

0 Kudos
2 Replies
TimP
Black Belt
280 Views

I suspect it may work better if you use the start-group....end-group directives in accordance with link advisor putting (only and all of) the specified libraries between those directives.

https://software.intel.com/sites/products/mkl/MKL_Link_Line_Advisor%2B%2B.html

Dmitry_B_Intel
Employee
280 Views

Please use Link Line Advisor as Tim suggested.
The missing symbol is defined in the threading layer of MKL, which is missing on your link line.

Reply