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) {