*) suffix='dll' ;;
esac
+FLAGS=""
+if [ "$(uname)" = "Darwin" ]; then
+ FLAGS="$FLAGS -framework Security"
+fi
+
echo "Compiling onyx_runtime.$suffix"
$ONYX_CC -shared -fpic -w -O2 \
-o onyx_runtime.$suffix \
-I ../shared/include -I ../compiler/include \
./onyx_runtime.c \
+ $FLAGS \
-lpthread
ONYX_DEF(__random_get, (WASM_PTR, WASM_I32), ()) {
- #if defined(_BH_LINUX) || defined(_BH_DARWIN)
+ #if defined(_BH_LINUX)
getrandom(ONYX_PTR(params->data[0].of.i32), params->data[1].of.i32, 0);
#endif
+ #if defined(_BH_DARWIN)
+ SecRandomCopyBytes(NULL, params->data[1].of.i32, ONYX_PTR(params->data[0].of.i32));
+ #endif
+
#ifdef _BH_WINDOWS
BCRYPT_ALG_HANDLE alg;
BCryptOpenAlgorithmProvider(&alg, L"SHA256", NULL, 0);