From b9cce08add9d38add9b282dc96969aa0cc3c878f Mon Sep 17 00:00:00 2001 From: Jiri Date: Thu, 13 Aug 2020 21:03:29 +0200 Subject: [PATCH 1/5] Added usage of aarch64 build of native llmdb --- pom.xml | 8 ++++++++ src/main/java/org/lmdbjava/Library.java | 3 +++ 2 files changed, 11 insertions(+) diff --git a/pom.xml b/pom.xml index 1e8874a0..8b91258a 100644 --- a/pom.xml +++ b/pom.xml @@ -70,6 +70,12 @@ org.hamcrest hamcrest + + org.lmdbjava + lmdbjava-native-linux-aarch64 + 0.9.24-2-SNAPSHOT + true + org.lmdbjava lmdbjava-native-linux-x86_64 @@ -112,6 +118,7 @@ maven-dependency-plugin + org.lmdbjava:lmdbjava-native-linux-aarch64 org.lmdbjava:lmdbjava-native-linux-x86_64 org.lmdbjava:lmdbjava-native-windows-x86_64 org.lmdbjava:lmdbjava-native-osx-x86_64 @@ -142,6 +149,7 @@ + org.lmdbjava:lmdbjava-native-linux-aarch64 org.lmdbjava:lmdbjava-native-linux-x86_64 org.lmdbjava:lmdbjava-native-windows-x86_64 org.lmdbjava:lmdbjava-native-osx-x86_64 diff --git a/src/main/java/org/lmdbjava/Library.java b/src/main/java/org/lmdbjava/Library.java index 18d3e717..c50eaa9e 100644 --- a/src/main/java/org/lmdbjava/Library.java +++ b/src/main/java/org/lmdbjava/Library.java @@ -104,6 +104,7 @@ final class Library { final String arch = getProperty("os.arch"); final boolean arch64 = "x64".equals(arch) || "amd64".equals(arch) || "x86_64".equals(arch); + final boolean aarch64 = "aarch64".equals(arch); final String os = getProperty("os.name"); final boolean linux = os.toLowerCase(ENGLISH).startsWith("linux"); @@ -112,6 +113,8 @@ final class Library { if (SHOULD_USE_LIB) { libToLoad = getProperty(LMDB_NATIVE_LIB_PROP); + } else if (SHOULD_EXTRACT && aarch64 && linux) { + libToLoad = extract("org/lmdbjava/lmdbjava-native-linux-aarch64.so"); } else if (SHOULD_EXTRACT && arch64 && linux) { libToLoad = extract("org/lmdbjava/lmdbjava-native-linux-x86_64.so"); } else if (SHOULD_EXTRACT && arch64 && osx) { From e4b6569b013cda7694807899c61d196e896e1448 Mon Sep 17 00:00:00 2001 From: Jiri Date: Sat, 15 Aug 2020 17:30:43 +0200 Subject: [PATCH 2/5] Added usage of ppc64le build of native llmdb --- pom.xml | 8 ++++++++ src/main/java/org/lmdbjava/Library.java | 3 +++ 2 files changed, 11 insertions(+) diff --git a/pom.xml b/pom.xml index 8b91258a..f94b76b7 100644 --- a/pom.xml +++ b/pom.xml @@ -76,6 +76,12 @@ 0.9.24-2-SNAPSHOT true + + org.lmdbjava + lmdbjava-native-linux-ppc64le + 0.9.24-2-SNAPSHOT + true + org.lmdbjava lmdbjava-native-linux-x86_64 @@ -118,6 +124,7 @@ maven-dependency-plugin + org.lmdbjava:lmdbjava-native-linux-ppc64le org.lmdbjava:lmdbjava-native-linux-aarch64 org.lmdbjava:lmdbjava-native-linux-x86_64 org.lmdbjava:lmdbjava-native-windows-x86_64 @@ -149,6 +156,7 @@ + org.lmdbjava:lmdbjava-native-linux-ppc64le org.lmdbjava:lmdbjava-native-linux-aarch64 org.lmdbjava:lmdbjava-native-linux-x86_64 org.lmdbjava:lmdbjava-native-windows-x86_64 diff --git a/src/main/java/org/lmdbjava/Library.java b/src/main/java/org/lmdbjava/Library.java index c50eaa9e..90119427 100644 --- a/src/main/java/org/lmdbjava/Library.java +++ b/src/main/java/org/lmdbjava/Library.java @@ -105,6 +105,7 @@ final class Library { final boolean arch64 = "x64".equals(arch) || "amd64".equals(arch) || "x86_64".equals(arch); final boolean aarch64 = "aarch64".equals(arch); + final boolean ppc64le = "ppc64le".equals(arch); final String os = getProperty("os.name"); final boolean linux = os.toLowerCase(ENGLISH).startsWith("linux"); @@ -115,6 +116,8 @@ final class Library { libToLoad = getProperty(LMDB_NATIVE_LIB_PROP); } else if (SHOULD_EXTRACT && aarch64 && linux) { libToLoad = extract("org/lmdbjava/lmdbjava-native-linux-aarch64.so"); + } else if (SHOULD_EXTRACT && ppc64le && linux) { + libToLoad = extract("org/lmdbjava/lmdbjava-native-linux-ppc64le.so"); } else if (SHOULD_EXTRACT && arch64 && linux) { libToLoad = extract("org/lmdbjava/lmdbjava-native-linux-x86_64.so"); } else if (SHOULD_EXTRACT && arch64 && osx) { From 551fd7f3d79e58a4a713e2cd70fc09aa78b951a8 Mon Sep 17 00:00:00 2001 From: Jiri Date: Mon, 17 Aug 2020 09:49:57 +0200 Subject: [PATCH 3/5] Added more distinguished names for x86_64, aarch64, ppc64le and unified arch64 for all three linuxes --- src/main/java/org/lmdbjava/Library.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/lmdbjava/Library.java b/src/main/java/org/lmdbjava/Library.java index 90119427..9e4f72f9 100644 --- a/src/main/java/org/lmdbjava/Library.java +++ b/src/main/java/org/lmdbjava/Library.java @@ -102,11 +102,13 @@ final class Library { final String libToLoad; final String arch = getProperty("os.arch"); - final boolean arch64 = "x64".equals(arch) || "amd64".equals(arch) + final boolean x86_64 = "x64".equals(arch) || "amd64".equals(arch) || "x86_64".equals(arch); final boolean aarch64 = "aarch64".equals(arch); final boolean ppc64le = "ppc64le".equals(arch); + final boolean arch64 = x86_64 || aarch64 || ppc64le; + final String os = getProperty("os.name"); final boolean linux = os.toLowerCase(ENGLISH).startsWith("linux"); final boolean osx = os.startsWith("Mac OS X"); @@ -118,11 +120,11 @@ final class Library { libToLoad = extract("org/lmdbjava/lmdbjava-native-linux-aarch64.so"); } else if (SHOULD_EXTRACT && ppc64le && linux) { libToLoad = extract("org/lmdbjava/lmdbjava-native-linux-ppc64le.so"); - } else if (SHOULD_EXTRACT && arch64 && linux) { + } else if (SHOULD_EXTRACT && x86_64 && linux) { libToLoad = extract("org/lmdbjava/lmdbjava-native-linux-x86_64.so"); - } else if (SHOULD_EXTRACT && arch64 && osx) { + } else if (SHOULD_EXTRACT && x86_64 && osx) { libToLoad = extract("org/lmdbjava/lmdbjava-native-osx-x86_64.dylib"); - } else if (SHOULD_EXTRACT && arch64 && windows) { + } else if (SHOULD_EXTRACT && x86_64 && windows) { libToLoad = extract("org/lmdbjava/lmdbjava-native-windows-x86_64.dll"); } else { libToLoad = LIB_NAME; From a0e562f8aa30bbe696fc4912554c1a39c0c7c4c1 Mon Sep 17 00:00:00 2001 From: Jiri Date: Mon, 17 Aug 2020 10:00:47 +0200 Subject: [PATCH 4/5] Renamed unifying x86_64 varable to make spotbugs happy --- src/main/java/org/lmdbjava/Library.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/lmdbjava/Library.java b/src/main/java/org/lmdbjava/Library.java index 9e4f72f9..1620c6c7 100644 --- a/src/main/java/org/lmdbjava/Library.java +++ b/src/main/java/org/lmdbjava/Library.java @@ -102,12 +102,12 @@ final class Library { final String libToLoad; final String arch = getProperty("os.arch"); - final boolean x86_64 = "x64".equals(arch) || "amd64".equals(arch) + final boolean x64 = "x64".equals(arch) || "amd64".equals(arch) || "x86_64".equals(arch); final boolean aarch64 = "aarch64".equals(arch); final boolean ppc64le = "ppc64le".equals(arch); - final boolean arch64 = x86_64 || aarch64 || ppc64le; + final boolean arch64 = x64 || aarch64 || ppc64le; final String os = getProperty("os.name"); final boolean linux = os.toLowerCase(ENGLISH).startsWith("linux"); @@ -120,11 +120,11 @@ final class Library { libToLoad = extract("org/lmdbjava/lmdbjava-native-linux-aarch64.so"); } else if (SHOULD_EXTRACT && ppc64le && linux) { libToLoad = extract("org/lmdbjava/lmdbjava-native-linux-ppc64le.so"); - } else if (SHOULD_EXTRACT && x86_64 && linux) { + } else if (SHOULD_EXTRACT && x64 && linux) { libToLoad = extract("org/lmdbjava/lmdbjava-native-linux-x86_64.so"); - } else if (SHOULD_EXTRACT && x86_64 && osx) { + } else if (SHOULD_EXTRACT && x64 && osx) { libToLoad = extract("org/lmdbjava/lmdbjava-native-osx-x86_64.dylib"); - } else if (SHOULD_EXTRACT && x86_64 && windows) { + } else if (SHOULD_EXTRACT && x64 && windows) { libToLoad = extract("org/lmdbjava/lmdbjava-native-windows-x86_64.dll"); } else { libToLoad = LIB_NAME; From 72fde4661c8076701a8a60e38de3847cf5f2eb63 Mon Sep 17 00:00:00 2001 From: Jiri Date: Mon, 17 Aug 2020 10:05:05 +0200 Subject: [PATCH 5/5] Commented out really unused arch64 variable and thus giving up hopes for simple fix for failing aarch64 and ppc64le tests --- src/main/java/org/lmdbjava/Library.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/lmdbjava/Library.java b/src/main/java/org/lmdbjava/Library.java index 1620c6c7..7e9aeb6c 100644 --- a/src/main/java/org/lmdbjava/Library.java +++ b/src/main/java/org/lmdbjava/Library.java @@ -107,7 +107,7 @@ final class Library { final boolean aarch64 = "aarch64".equals(arch); final boolean ppc64le = "ppc64le".equals(arch); - final boolean arch64 = x64 || aarch64 || ppc64le; + // final boolean arch64 = x64 || aarch64 || ppc64le; final String os = getProperty("os.name"); final boolean linux = os.toLowerCase(ENGLISH).startsWith("linux");