fixed: darwin compilation of random_get
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Wed, 22 Nov 2023 19:26:01 +0000 (13:26 -0600)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Wed, 22 Nov 2023 19:26:01 +0000 (13:26 -0600)
runtime/build.sh
runtime/src/ort_os.h

index a5bd95c5358b9feec2f3ea4c158d7c6b48f945c9..a4ba6aeb8051f1ea1d4663ffd71b03379726629c 100755 (executable)
@@ -7,9 +7,15 @@ case "$(uname)" in
     *)      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
index e6ef5e88e8443afcd5cddf562d3a5fbc202e7d45..001ff6f33b04d09e8f573ce3f620651d19b96be8 100644 (file)
@@ -131,10 +131,14 @@ ONYX_DEF(__lookup_env, (WASM_I32, WASM_I32, WASM_I32, WASM_I32), (WASM_I32)) {
 
 
 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);