From 9e6dba90665f5ad85e8547087e106fde611cc2d6 Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Mon, 21 Sep 2020 18:05:25 -0700 Subject: [PATCH] Enable AES-NI on Android X86-64 Need to find the magic incantation to enable it on ARM64 still --- java/jni/Android.mk | 6 ++++++ node/Constants.hpp | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/java/jni/Android.mk b/java/jni/Android.mk index f018950d2..176931551 100644 --- a/java/jni/Android.mk +++ b/java/jni/Android.mk @@ -12,9 +12,15 @@ LOCAL_LDLIBS := -llog # LOCAL_CFLAGS := -g LOCAL_CFLAGS := -DZT_USE_MINIUPNPC +ifeq ($(TARGET_ARCH_ABI),x86_64) + LOCAL_CXXFLAGS := -maes -mpclmul -msse4.1 +endif # ZeroTierOne SDK source files LOCAL_SRC_FILES := \ + $(ZT1)/node/AES.cpp \ + $(ZT1)/node/Bond.cpp \ + $(ZT1)/node/BondController.cpp \ $(ZT1)/node/C25519.cpp \ $(ZT1)/node/Capability.cpp \ $(ZT1)/node/CertificateOfMembership.cpp \ diff --git a/node/Constants.hpp b/node/Constants.hpp index 660c8772d..ccb7c4cf8 100644 --- a/node/Constants.hpp +++ b/node/Constants.hpp @@ -111,8 +111,10 @@ #include #endif + + #if (defined(__ARM_NEON) || defined(__ARM_NEON__) || defined(ZT_ARCH_ARM_HAS_NEON)) -#if defined(__APPLE__) && !defined(__LP64__) +#if (defined(__APPLE__) && !defined(__LP64__)) || defined(__ANDROID__) #ifdef ZT_ARCH_ARM_HAS_NEON #undef ZT_ARCH_ARM_HAS_NEON #endif