Skip to content

FindBLAS and FindLAPACK: extend search directories for MKL

evatux requested to merge evatux/cmake:mkl-lib-dir into master

Even though Intel MKL typically puts the libraries under $MKLROOT/lib/$arch_$os some installations may still use $MKLROOT/lib/$arch/ path. Ideally, $arch should be a symlink to $arch_$os, but sometimes the opposite happens (for instance, see Intel MKL distribution in Arch Linux [1]), and sometimes only $arch directory alone is present.

This patch extends the search list with $MKLROOT/lib/$arch with lower priority than $MKLROOT/lib/$arch_$os, as the latter is the official path to Intel MKL libraries.

It is also worth mentioning that Intel MKL Link Line Adviser [2] recommends using $MKLROOT/lib/$arch directory in a link line:

-L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_intel_lp64
-lmkl_sequential -lmkl_core -lpthread -lm -ldl

Merge request reports