Skip to content

Commit 2b5e2d9

Browse files
authored
libc-emcc: Use alternate method to check getrandom support (#3848)
1 parent deacb7a commit 2b5e2d9

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

core/iwasm/libraries/libc-emcc/libc_emcc_wrapper.c

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,13 @@
77
#include "bh_log.h"
88
#include "wasm_export.h"
99
#include "../interpreter/wasm.h"
10-
#if !defined(_DEFAULT_SOURCE) && !defined(BH_PLATFORM_LINUX_SGX)
11-
#include "sys/syscall.h"
10+
11+
#if defined(__linux__)
12+
#include <linux/version.h>
13+
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0)
14+
#define HAVE_SYSCALL_GETRANDOM
15+
#include <sys/syscall.h>
16+
#endif
1217
#endif
1318

1419
/* clang-format off */
@@ -270,11 +275,10 @@ getentropy_wrapper(wasm_exec_env_t exec_env, void *buffer, uint32 length)
270275
{
271276
if (buffer == NULL)
272277
return -1;
273-
#if defined(_DEFAULT_SOURCE) || defined(BH_PLATFORM_LINUX_SGX) \
274-
|| defined(__APPLE__)
275-
return getentropy(buffer, length);
276-
#else
278+
#if defined(HAVE_SYSCALL_GETRANDOM)
277279
return syscall(SYS_getrandom, buffer, length, 0);
280+
#else
281+
return getentropy(buffer, length);
278282
#endif
279283
}
280284

0 commit comments

Comments
 (0)