diff --git a/cmake/randomx.cmake b/cmake/randomx.cmake index c94c66d3..a50e078f 100644 --- a/cmake/randomx.cmake +++ b/cmake/randomx.cmake @@ -1,10 +1,16 @@ if (WITH_RANDOMX) - include(CheckFunctionExists) + include(CheckSymbolExists) - check_function_exists(posix_memalign HAVE_POSIX_MEMALIGN) - - if(HAVE_POSIX_MEMALIGN) - add_definitions(/DHAVE_POSIX_MEMALIGN) + if (WIN32) + check_symbol_exists(_aligned_malloc "stdlib.h" HAVE_ALIGNED_MALLOC) + if (HAVE_ALIGNED_MALLOC) + add_compile_definitions(HAVE_ALIGNED_MALLOC) + endif() + else() + check_symbol_exists(posix_memalign "stdlib.h" HAVE_POSIX_MEMALIGN) + if (HAVE_POSIX_MEMALIGN) + add_compile_definitions(HAVE_POSIX_MEMALIGN) + endif() endif() add_definitions(/DXMRIG_ALGO_RANDOMX) diff --git a/src/crypto/randomx/intrin_portable.h b/src/crypto/randomx/intrin_portable.h index 8ec8325e..7e3641ea 100644 --- a/src/crypto/randomx/intrin_portable.h +++ b/src/crypto/randomx/intrin_portable.h @@ -412,7 +412,7 @@ inline void* rx_aligned_alloc(size_t size, size_t align) { return 0; }; # define rx_aligned_free(a) free(a) -#elif defined(_MSC_VER) +#elif defined(HAVE_ALIGNED_MALLOC) # define rx_aligned_alloc(a, b) _aligned_malloc(a, b) # define rx_aligned_free(a) _aligned_free(a) #else @@ -569,7 +569,7 @@ inline void* rx_aligned_alloc(size_t size, size_t align) { return 0; }; # define rx_aligned_free(a) free(a) -#elif defined(_MSC_VER) +#elif defined(HAVE_ALIGNED_MALLOC) # define rx_aligned_alloc(a, b) _aligned_malloc(a, b) # define rx_aligned_free(a) _aligned_free(a) #else