Bläddra i källkod

FindLAPACK: Correct library name and symbol searched in LAPACK95 wrapper

The symbol "CHEEV", originally used to determine if a library provides
Fortran 95 wrappers for LAPACK, has been replaced by "cheev_f95". "CHEEV"
is provided by libmkl_intel_(i)lp64, which does not provide the generic
Fortran 95 wrappers. Instead, libmkl_lapack95_(i)lp64 does; one of the
specializations of the type-generic interfaces contained in that library
is "lapack_f95".

Also, FindLAPACK used libmkl_intel_(i)lp64 instead of the correct
libmkl_lapack95_(i)lp64 library for LAPACK95 functionality. This has
been fixed, too.
Jakub Benda 7 år sedan
förälder
incheckning
f1a3e4eca8
1 ändrade filer med 2 tillägg och 2 borttagningar
  1. 2 2
      Modules/FindLAPACK.cmake

+ 2 - 2
Modules/FindLAPACK.cmake

@@ -287,7 +287,7 @@ if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
     set(LAPACK_SEARCH_LIBS "")
 
     if (BLA_F95)
-      set(LAPACK_mkl_SEARCH_SYMBOL "CHEEV")
+      set(LAPACK_mkl_SEARCH_SYMBOL "cheev_f95")
       set(_LIBRARIES LAPACK95_LIBRARIES)
       set(_BLAS_LIBRARIES ${BLAS95_LIBRARIES})
 
@@ -298,7 +298,7 @@ if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
       list(APPEND LAPACK_SEARCH_LIBS
         "mkl_intel_c")
       list(APPEND LAPACK_SEARCH_LIBS
-        "mkl_intel_${BLAS_mkl_ILP_MODE}")
+        "mkl_lapack95_${BLAS_mkl_ILP_MODE}")
     else()
       set(LAPACK_mkl_SEARCH_SYMBOL "cheev")
       set(_LIBRARIES LAPACK_LIBRARIES)