From 1fd3b3842520b092f88370ce7d357b4205173f8d Mon Sep 17 00:00:00 2001 From: Christian Rorvik Date: Fri, 2 Jan 2026 16:33:55 +0100 Subject: [PATCH 1/2] Refactor MKL function calls to use ccall --- src/mkl.jl | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/mkl.jl b/src/mkl.jl index 4aa76d2f..55dd514c 100644 --- a/src/mkl.jl +++ b/src/mkl.jl @@ -41,15 +41,13 @@ 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 +mkl_get_dynamic() = ccall((:mkl_get_dynamic, find_mkl()), Cint, ()) """ mkl_set_dynamic(flag::Integer) 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 -end +mkl_set_dynamic(flag::Integer) = ccall((:MKL_Set_Dynamic, find_mkl()), Cvoid, (Cint,), flag) end # module From 17b3e2c1818e2d470fca2920c1bae9a92ce6944b Mon Sep 17 00:00:00 2001 From: Christian Rorvik Date: Fri, 2 Jan 2026 17:00:07 +0100 Subject: [PATCH 2/2] Fixes --- src/mkl.jl | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/mkl.jl b/src/mkl.jl index 55dd514c..05e22bf2 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,13 +42,19 @@ 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_get_dynamic, find_mkl()), Cint, ()) +function mkl_get_dynamic() + sym = Libdl.dlsym(Libdl.dlopen(mkl_fullpath()), :mkl_get_dynamic) + ccall(sym, Cint, ()) +end """ mkl_set_dynamic(flag::Integer) 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). """ -mkl_set_dynamic(flag::Integer) = ccall((:MKL_Set_Dynamic, find_mkl()), Cvoid, (Cint,), flag) +function mkl_set_dynamic(flag::Integer) + sym = Libdl.dlsym(Libdl.dlopen(mkl_fullpath()), :MKL_Set_Dynamic) + ccall(sym, Cvoid, (Cint,), flag) +end end # module