From 12ff8fd00cb72d0059bf880a8bde52e85525627f Mon Sep 17 00:00:00 2001 From: Nikita Grigorian Date: Sun, 12 Apr 2026 02:48:04 -0700 Subject: [PATCH] Add meson build option for ILP64 fixes compiler warning about unused function --- meson.build | 4 ++++ meson.options | 2 ++ mkl/_mklinitmodule.c | 11 ++++++++++- 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 meson.options diff --git a/meson.build b/meson.build index 5e48d8b..b3c0e6a 100644 --- a/meson.build +++ b/meson.build @@ -15,6 +15,10 @@ py = import('python').find_installation(pure: false) c_args = ['-DNDEBUG'] +if get_option('ilp64') + c_args += '-DMKL_ILP64' +endif + thread_dep = dependency('threads') cc = meson.get_compiler('c') diff --git a/meson.options b/meson.options new file mode 100644 index 0000000..46117a3 --- /dev/null +++ b/meson.options @@ -0,0 +1,2 @@ +option('ilp64', type: 'boolean', value: false, + description: 'Build with MKL ILP64 interface') diff --git a/mkl/_mklinitmodule.c b/mkl/_mklinitmodule.c index 33abdf5..2156287 100644 --- a/mkl/_mklinitmodule.c +++ b/mkl/_mklinitmodule.c @@ -28,8 +28,11 @@ static struct PyMethodDef methods[] = {{NULL, NULL, 0, NULL}}; #define MKL_SERVICE_INLINE inline #endif +#ifdef MKL_ILP64 static MKL_SERVICE_INLINE void _set_mkl_ilp64(void); +#else static MKL_SERVICE_INLINE void _set_mkl_lp64(void); +#endif static MKL_SERVICE_INLINE void _set_mkl_interface(void); static const char *mtlayer; @@ -154,6 +157,7 @@ static void _preload_threading_layer(void) return; } +#ifdef MKL_ILP64 static MKL_SERVICE_INLINE void _set_mkl_ilp64(void) { #ifdef USING_MKL_RT @@ -161,7 +165,7 @@ static MKL_SERVICE_INLINE void _set_mkl_ilp64(void) #endif return; } - +#else static MKL_SERVICE_INLINE void _set_mkl_lp64(void) { #ifdef USING_MKL_RT @@ -169,10 +173,15 @@ static MKL_SERVICE_INLINE void _set_mkl_lp64(void) #endif return; } +#endif static MKL_SERVICE_INLINE void _set_mkl_interface(void) { +#ifdef MKL_ILP64 + _set_mkl_ilp64(); +#else _set_mkl_lp64(); +#endif _preload_threading_layer(); }