From 56ef3dcacf994dd6f973380931c447b4bcdf095d Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Fri, 10 Feb 2023 13:28:33 +0100 Subject: [PATCH] fix platform detection logic on MacOS This was tested on an M1 MacBook; it reports the machine type as ``arm64``, not ``aarch64``. The full ``uname -a`` output is: Darwin -MBP14.local 22.2.0 Darwin Kernel Version 22.2.0: Fri Nov 11 02:03:51 PST 2022; root:xnu-8792.61.2~4/RELEASE_ARM64_T6000 arm64 This diverges from what ``System.getProperty("os.arch")`` reports as the architecture. Signed-off-by: Philipp Gesang --- BuildNative | 7 ++++++- src/main/java/org/bridj/Platform.java | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/BuildNative b/BuildNative index 91250c4..36e3f66 100755 --- a/BuildNative +++ b/BuildNative @@ -8,6 +8,11 @@ export DYNCALL_HOME=$BASE_DIR/dyncall DYNCALL_DIFF=$BASE_DIR/src/main/cpp/bridj/dyncall.diff +function failed() { + echo "$@" + exit 1 +} + if [[ ! -d "$DYNCALL_HOME" ]] then $BASE_DIR/admin/checkout_and_patch_dyncall.sh $DYNCALL_DIFF || failed "Failed to checkout and patch dyncall" @@ -40,7 +45,7 @@ function get_arch() { x86_64|amd64) echo x64 ;; - aarch64) + aarch64|arm64) echo arm64 ;; arm*) diff --git a/src/main/java/org/bridj/Platform.java b/src/main/java/org/bridj/Platform.java index f04f5e6..8777107 100644 --- a/src/main/java/org/bridj/Platform.java +++ b/src/main/java/org/bridj/Platform.java @@ -525,6 +525,9 @@ public static String getMachine() { return "i386"; // we are running a 32 bits JVM on a 64 bits platform } } + if (isMacOSX() && arch.equals("aarch64")) { + return "arm64"; + } return arch; }