Browse Source

more magic incantations to make crypto extensions work on Android/ARM64

pull/2/head
Grant Limberg 6 years ago
parent
commit
7d8cfb1fee
No known key found for this signature in database
GPG Key ID: 2BA62CCABBB4095A
  1. 4
      java/jni/Android.mk
  2. 2
      java/jni/Application.mk
  3. 2
      node/Constants.hpp
  4. 4
      node/Utils.cpp

4
java/jni/Android.mk

@ -11,13 +11,15 @@ LOCAL_C_INCLUDES := \
LOCAL_LDLIBS := -llog
# LOCAL_CFLAGS := -g
APP_UNIFIED_HEADERS := true
LOCAL_CFLAGS := -DZT_USE_MINIUPNPC
ifeq ($(TARGET_ARCH_ABI),x86_64)
LOCAL_CXXFLAGS := -maes -mpclmul -msse4.1
endif
ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
LOCAL_ARM_NEON := true
LOCAL_CXXFLAGS := -mfloat-abi=softfp -mfpu=neon
LOCAL_CXXFLAGS := -march=armv8-a+crypto -mfloat-abi=softfp -mfpu=neon -maes -isystem $NDK/sysroot/usr/include/$TRIPLE
endif
# ZeroTierOne SDK source files

2
java/jni/Application.mk

@ -1,5 +1,5 @@
# NDK_TOOLCHAIN_VERSION := clang3.5
APP_STL := c++_static
APP_CPPFLAGS := -Wall -fstack-protector -fexceptions -fno-strict-aliasing -frtti -Wno-deprecated-register -DZT_NO_TYPE_PUNNING=1
APP_PLATFORM := android-14
APP_PLATFORM := android-21
APP_ABI := all

2
node/Constants.hpp

@ -114,7 +114,7 @@
#if (defined(__ARM_NEON) || defined(__ARM_NEON__) || defined(ZT_ARCH_ARM_HAS_NEON))
#if (defined(__APPLE__) && !defined(__LP64__)) || defined(__ANDROID__)
#if (defined(__APPLE__) && !defined(__LP64__)) || (defined(__ANDROID__) && defined(__arm__))
#ifdef ZT_ARCH_ARM_HAS_NEON
#undef ZT_ARCH_ARM_HAS_NEON
#endif

4
node/Utils.cpp

@ -46,6 +46,10 @@
#include <TargetConditionals.h>
#endif
#if defined(__ANDROID__) && defined(__aarch64__)
#include <asm/hwcap.h>
#endif
namespace ZeroTier {
const uint64_t Utils::ZERO256[4] = {0ULL,0ULL,0ULL,0ULL};

Loading…
Cancel
Save