From 2b5e2d9c2c146203a2c6d89ffd47aeead307a29f Mon Sep 17 00:00:00 2001 From: Benbuck Nason Date: Wed, 9 Oct 2024 19:57:47 -0700 Subject: [PATCH] libc-emcc: Use alternate method to check getrandom support (#3848) --- .../libraries/libc-emcc/libc_emcc_wrapper.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/core/iwasm/libraries/libc-emcc/libc_emcc_wrapper.c b/core/iwasm/libraries/libc-emcc/libc_emcc_wrapper.c index 11795069..3bb6bc6b 100644 --- a/core/iwasm/libraries/libc-emcc/libc_emcc_wrapper.c +++ b/core/iwasm/libraries/libc-emcc/libc_emcc_wrapper.c @@ -7,8 +7,13 @@ #include "bh_log.h" #include "wasm_export.h" #include "../interpreter/wasm.h" -#if !defined(_DEFAULT_SOURCE) && !defined(BH_PLATFORM_LINUX_SGX) -#include "sys/syscall.h" + +#if defined(__linux__) +#include +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0) +#define HAVE_SYSCALL_GETRANDOM +#include +#endif #endif /* clang-format off */ @@ -270,11 +275,10 @@ getentropy_wrapper(wasm_exec_env_t exec_env, void *buffer, uint32 length) { if (buffer == NULL) return -1; -#if defined(_DEFAULT_SOURCE) || defined(BH_PLATFORM_LINUX_SGX) \ - || defined(__APPLE__) - return getentropy(buffer, length); -#else +#if defined(HAVE_SYSCALL_GETRANDOM) return syscall(SYS_getrandom, buffer, length, 0); +#else + return getentropy(buffer, length); #endif }