From e0db7e7f9c9d197b62d8b1a36af49305e0a7f8c6 Mon Sep 17 00:00:00 2001 From: Ernesto Castellotti Date: Mon, 26 Nov 2018 16:17:57 +0100 Subject: [PATCH] Setup new arch in java loadlibrary --- .../java/it/ernytech/tdlib/utils/Arch.java | 5 +++- .../it/ernytech/tdlib/utils/LoadLibrary.java | 27 +++++++++++++++++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/main/java/it/ernytech/tdlib/utils/Arch.java b/src/main/java/it/ernytech/tdlib/utils/Arch.java index 9aa615a..b5694d9 100644 --- a/src/main/java/it/ernytech/tdlib/utils/Arch.java +++ b/src/main/java/it/ernytech/tdlib/utils/Arch.java @@ -22,6 +22,9 @@ package it.ernytech.tdlib.utils; */ public enum Arch { amd64, - i686, + i386, + armhf, + aarch64, + ppc64el unknown } diff --git a/src/main/java/it/ernytech/tdlib/utils/LoadLibrary.java b/src/main/java/it/ernytech/tdlib/utils/LoadLibrary.java index a345da7..043245f 100644 --- a/src/main/java/it/ernytech/tdlib/utils/LoadLibrary.java +++ b/src/main/java/it/ernytech/tdlib/utils/LoadLibrary.java @@ -19,6 +19,7 @@ package it.ernytech.tdlib.utils; import java.io.IOException; import java.nio.file.*; +import java.nio.ByteOrder; import java.util.concurrent.ConcurrentHashMap; /** @@ -99,10 +100,32 @@ public class LoadLibrary { return Arch.amd64; } - case "x86" : { - return Arch.i686; + case "x86_64" : { + return Arch.amd64; } + case "i386" : { + return Arch.i386; + } + + case "x86" : { + return Arch.i386; + } + + case "arm" : { + return Arch.armhf; + } + + case "aarch64" : { + return Arch.aarch64; + } + + case "ppc64" : { + if (!ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN)) { // Java always returns ppc64 for all 64-bit powerpc but + return Arch.ppc64el; // powerpc64le (our target) is very different, it uses + } // little-endian unlike powerpc64, so we just check + } // this condition to accurately identify the architecture + default : { return Arch.unknown; }