From 31d8758ad9b7e79f96325e1b3860c6986e6f4e8b Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Mon, 16 Nov 2020 16:30:15 -0500 Subject: [PATCH] Apple "fat binaries" are back! --- make-mac.mk | 5 +++-- node/Packet.cpp | 6 +++--- node/Utils.cpp | 8 ++++++-- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/make-mac.mk b/make-mac.mk index 279af3071..d476e9b0d 100644 --- a/make-mac.mk +++ b/make-mac.mk @@ -3,7 +3,8 @@ CXX=clang++ INCLUDES= DEFS= LIBS= -ARCH_FLAGS=-msse -msse2 -mssse3 -msse4 -msse4.1 -maes -mpclmul +ARCH_FLAGS=-msse -msse2 -arch x86_64 -arch arm64e + CODESIGN=echo PRODUCTSIGN=echo CODESIGN_APP_CERT= @@ -91,7 +92,7 @@ CXXFLAGS=$(CFLAGS) -std=c++11 -stdlib=libc++ all: one macui ext/x64-salsa2012-asm/salsa2012.o: - $(CC) $(CFLAGS) -c ext/x64-salsa2012-asm/salsa2012.s -o ext/x64-salsa2012-asm/salsa2012.o + as -o ext/x64-salsa2012-asm/salsa2012.o ext/x64-salsa2012-asm/salsa2012.s mac-agent: FORCE $(CC) -Ofast -o MacEthernetTapAgent osdep/MacEthernetTapAgent.c diff --git a/node/Packet.cpp b/node/Packet.cpp index 1dbb4211b..3bdeaf9e9 100644 --- a/node/Packet.cpp +++ b/node/Packet.cpp @@ -19,7 +19,7 @@ #include "Packet.hpp" -#ifdef ZT_USE_X64_ASM_SALSA2012 +#if defined(ZT_USE_X64_ASM_SALSA2012) && defined(ZT_ARCH_X64) #include "../ext/x64-salsa2012-asm/salsa2012.h" #endif #ifdef ZT_USE_ARM32_NEON_ASM_SALSA2012 @@ -42,7 +42,7 @@ namespace ZeroTier { /* Set up macros for fast single-pass ASM Salsa20/12 crypto, if we have it */ // x64 SSE crypto -#ifdef ZT_USE_X64_ASM_SALSA2012 +#if defined(ZT_USE_X64_ASM_SALSA2012) && defined(ZT_ARCH_X64) #define ZT_HAS_FAST_CRYPTO() (true) #define ZT_FAST_SINGLE_PASS_SALSA2012(b,l,n,k) zt_salsa2012_amd64_xmm6(reinterpret_cast(b),(l),reinterpret_cast(n),reinterpret_cast(k)) #endif @@ -880,7 +880,7 @@ void Packet::armor(const void *key,bool encryptPayload,const AES aesKeys[2]) { uint8_t *const data = reinterpret_cast(unsafeData()); if ((aesKeys) && (encryptPayload)) { - char tmp0[16],tmp1[16]; + //char tmp0[16],tmp1[16]; setCipher(ZT_PROTO_CIPHER_SUITE__AES_GMAC_SIV); uint8_t *const payload = data + ZT_PACKET_IDX_VERB; diff --git a/node/Utils.cpp b/node/Utils.cpp index 4d32c9b3a..345326984 100644 --- a/node/Utils.cpp +++ b/node/Utils.cpp @@ -96,13 +96,16 @@ const char Utils::HEXCHARS[16] = { '0','1','2','3','4','5','6','7','8','9','a',' #ifdef ZT_ARCH_ARM_HAS_NEON Utils::ARMCapabilities::ARMCapabilities() noexcept { -#if TARGET_OS_IPHONE +#ifdef __APPLE__ + this->aes = true; this->crc32 = true; this->pmull = true; this->sha1 = true; this->sha2 = true; + #else + #ifdef HWCAP2_AES if (sizeof(void *) == 4) { const long hwcaps2 = getauxval(AT_HWCAP2); @@ -122,7 +125,8 @@ Utils::ARMCapabilities::ARMCapabilities() noexcept #ifdef HWCAP2_AES } #endif -#endif // TARGET_OS_IPHONE + +#endif // __APPLE__ } const Utils::ARMCapabilities Utils::ARMCAP;