From 30933c60156c67a9624fefae2be6504300ce71bb Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Fri, 30 Jan 2015 07:04:39 +0100 Subject: Bug 1122: Add AArch64 support (Android, GNU/Linux and in general) - Add AArch64 detection via - Elf Parser - Android properties - Java properties - Android: Validate CPUType.Family _and_ ABIType - MachineDescription - Remove redundant Type ID and its field - Reuse X86_64_UNIX for AArch64 (static config) New ARCH 'aarch64' for ant: armv8a aarch64 New CPUType.ARM64 (ARM): java: os.arch aarch64 arm64 New CPUType.ARMv8_A (ARM): java: os.arch armv8-a arm64-v8a New ABIType: EABI_AARCH64 --- src/java/com/jogamp/common/os/AndroidVersion.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/java/com/jogamp/common/os/AndroidVersion.java') diff --git a/src/java/com/jogamp/common/os/AndroidVersion.java b/src/java/com/jogamp/common/os/AndroidVersion.java index adfb1ef..0e30602 100644 --- a/src/java/com/jogamp/common/os/AndroidVersion.java +++ b/src/java/com/jogamp/common/os/AndroidVersion.java @@ -85,10 +85,16 @@ public class AndroidVersion { private static final CPUType getCPUTypeImpl(final String cpuABI) { if( null == cpuABI ) { return null; + } else if( cpuABI.equals("armv8-a") || + cpuABI.equals("arm64-v8a") ) { + return CPUType.ARMv8_A; + } else if( cpuABI.equals("aarch64") || + cpuABI.startsWith("arm64") ) { + return CPUType.ARM64; } else if( cpuABI.equals("armeabi-v7a") ) { return CPUType.ARMv7; } else if( cpuABI.equals("armeabi") || - cpuABI.startsWith("arm") ) { // last chance .. + cpuABI.startsWith("arm") ) { // last 32bit chance .. return CPUType.ARM; } else if( cpuABI.equals("x86") ) { return CPUType.X86_32; @@ -103,6 +109,9 @@ public class AndroidVersion { return null; } else if( CPUFamily.ARM != cpuType.family ) { return ABIType.GENERIC_ABI; + } else if( CPUType.ARM64 == cpuType || + CPUType.ARMv8_A == cpuType ) { + return ABIType.EABI_AARCH64; } return ABIType.EABI_GNU_ARMEL; // FIXME: How will they name ABIType.EABI_GNU_ARMHF } -- cgit v1.2.3