From 9c060f1c67cce9e109a7403a4d8220cb370c7435 Mon Sep 17 00:00:00 2001
From: Alan David Reyes <7783990+alandavidreyes@users.noreply.github.com>
Date: Wed, 19 Apr 2023 18:04:16 -0400
Subject: [PATCH 1/2] Add support for Linux and Mac ARM platforms
---
pom.xml | 4 ++++
src/main/java/org/lmdbjava/Library.java | 13 +++++++++----
2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/pom.xml b/pom.xml
index 09b36edb..49675d2f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -105,8 +105,10 @@
org.lmdbjava:lmdbjava-native-linux-x86_64
+ org.lmdbjava:lmdbjava-native-linux-aarch64
org.lmdbjava:lmdbjava-native-windows-x86_64
org.lmdbjava:lmdbjava-native-osx-x86_64
+ org.lmdbjava:lmdbjava-native-osx-arm64
com.github.jnr:jffi
@@ -146,8 +148,10 @@
org.lmdbjava:lmdbjava-native-linux-x86_64
+ org.lmdbjava:lmdbjava-native-linux-aarch64
org.lmdbjava:lmdbjava-native-windows-x86_64
org.lmdbjava:lmdbjava-native-osx-x86_64
+ org.lmdbjava:lmdbjava-native-osx-arm64
diff --git a/src/main/java/org/lmdbjava/Library.java b/src/main/java/org/lmdbjava/Library.java
index e48def73..23a8b0ba 100644
--- a/src/main/java/org/lmdbjava/Library.java
+++ b/src/main/java/org/lmdbjava/Library.java
@@ -102,8 +102,9 @@ final class Library {
final String libToLoad;
final String arch = getProperty("os.arch");
- final boolean arch64 = "x64".equals(arch) || "amd64".equals(arch)
+ final boolean x64 = "x64".equals(arch) || "amd64".equals(arch)
|| "x86_64".equals(arch);
+ final boolean arm64 = "arm64".equals(arch) || "aarch64".equals(arch);
final String os = getProperty("os.name");
final boolean linux = os.toLowerCase(ENGLISH).startsWith("linux");
@@ -112,11 +113,15 @@ final class Library {
if (SHOULD_USE_LIB) {
libToLoad = getProperty(LMDB_NATIVE_LIB_PROP);
- } else if (SHOULD_EXTRACT && arch64 && linux) {
+ } else if (SHOULD_EXTRACT && x64 && linux) {
libToLoad = extract("org/lmdbjava/lmdbjava-native-linux-x86_64.so");
- } else if (SHOULD_EXTRACT && arch64 && osx) {
+ } else if (SHOULD_EXTRACT && arm64 && linux) {
+ libToLoad = extract("org/lmdbjava/lmdbjava-native-linux-aarch64.so");
+ } else if (SHOULD_EXTRACT && x64 && osx) {
libToLoad = extract("org/lmdbjava/lmdbjava-native-osx-x86_64.dylib");
- } else if (SHOULD_EXTRACT && arch64 && windows) {
+ } else if (SHOULD_EXTRACT && arm64 && osx) {
+ libToLoad = extract("org/lmdbjava/lmdbjava-native-osx-arm64.dylib");
+ } else if (SHOULD_EXTRACT && x64 && windows) {
libToLoad = extract("org/lmdbjava/lmdbjava-native-windows-x86_64.dll");
} else {
libToLoad = LIB_NAME;
From 32716e2fefac1e4a1d036388f997e8616b523b9a Mon Sep 17 00:00:00 2001
From: Alan David Reyes <7783990+alandavidreyes@users.noreply.github.com>
Date: Fri, 21 Apr 2023 17:19:55 -0400
Subject: [PATCH 2/2] Update library to use arm64 naming convention
---
pom.xml | 4 ++--
src/main/java/org/lmdbjava/Library.java | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/pom.xml b/pom.xml
index 49675d2f..925b3e1f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -105,7 +105,7 @@
org.lmdbjava:lmdbjava-native-linux-x86_64
- org.lmdbjava:lmdbjava-native-linux-aarch64
+ org.lmdbjava:lmdbjava-native-linux-arm64
org.lmdbjava:lmdbjava-native-windows-x86_64
org.lmdbjava:lmdbjava-native-osx-x86_64
org.lmdbjava:lmdbjava-native-osx-arm64
@@ -148,7 +148,7 @@
org.lmdbjava:lmdbjava-native-linux-x86_64
- org.lmdbjava:lmdbjava-native-linux-aarch64
+ org.lmdbjava:lmdbjava-native-linux-arm64
org.lmdbjava:lmdbjava-native-windows-x86_64
org.lmdbjava:lmdbjava-native-osx-x86_64
org.lmdbjava:lmdbjava-native-osx-arm64
diff --git a/src/main/java/org/lmdbjava/Library.java b/src/main/java/org/lmdbjava/Library.java
index 23a8b0ba..4333e043 100644
--- a/src/main/java/org/lmdbjava/Library.java
+++ b/src/main/java/org/lmdbjava/Library.java
@@ -116,7 +116,7 @@ final class Library {
} else if (SHOULD_EXTRACT && x64 && linux) {
libToLoad = extract("org/lmdbjava/lmdbjava-native-linux-x86_64.so");
} else if (SHOULD_EXTRACT && arm64 && linux) {
- libToLoad = extract("org/lmdbjava/lmdbjava-native-linux-aarch64.so");
+ libToLoad = extract("org/lmdbjava/lmdbjava-native-linux-arm64.so");
} else if (SHOULD_EXTRACT && x64 && osx) {
libToLoad = extract("org/lmdbjava/lmdbjava-native-osx-x86_64.dylib");
} else if (SHOULD_EXTRACT && arm64 && osx) {