diff --git a/src/mkl.jl b/src/mkl.jl index 4aa76d2..05e22bf 100644 --- a/src/mkl.jl +++ b/src/mkl.jl @@ -1,6 +1,7 @@ module MKL using LinearAlgebra: LinearAlgebra, BLAS +using Libdl const MKL_PATH = Ref{Union{Nothing, String}}(nothing) @@ -41,7 +42,10 @@ end mkl_get_dynamic() Wrapper around the MKL function [`mkl_get_dynamic`](https://www.intel.com/content/www/us/en/develop/documentation/onemkl-developer-reference-fortran/top/support-functions/threading-control/mkl-get-dynamic.html). """ -mkl_get_dynamic() = @ccall mkl_fullpath().mkl_get_dynamic()::Cint +function mkl_get_dynamic() + sym = Libdl.dlsym(Libdl.dlopen(mkl_fullpath()), :mkl_get_dynamic) + ccall(sym, Cint, ()) +end """ mkl_set_dynamic(flag::Integer) @@ -49,7 +53,8 @@ mkl_get_dynamic() = @ccall mkl_fullpath().mkl_get_dynamic()::Cint Wrapper around the MKL function [`mkl_set_dynamic`](https://www.intel.com/content/www/us/en/develop/documentation/onemkl-developer-reference-c/top/support-functions/threading-control/mkl-set-dynamic.html). """ function mkl_set_dynamic(flag::Integer) - @ccall mkl_fullpath().MKL_Set_Dynamic(flag::Cint)::Cvoid + sym = Libdl.dlsym(Libdl.dlopen(mkl_fullpath()), :MKL_Set_Dynamic) + ccall(sym, Cvoid, (Cint,), flag) end end # module