From: Andy Polyakov <appro@openssl.org> Date: Mon, 12 Mar 2018 09:46:23 +0000 (+0100) Subject: ec/curve25519.c: resolve regression with Android NDK's arm64 gcc. X-Git-Tag: OpenSSL_1_1_1-pre3~109 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=b3e02d06ba802aaa137b5f5000b02c504b72cdcb;p=oweals%2Fopenssl.git ec/curve25519.c: resolve regression with Android NDK's arm64 gcc. Unlike "upstream", Android NDK's arm64 gcc [but not clang] performs 64x64=128-bit multiplications with library calls, which appears to have devastating impact on performance. [The condition is reduced to __ANDROID__ [&& !__clang__], because x86_64 has corresponding assembly module.] Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5589) --- diff --git a/crypto/ec/curve25519.c b/crypto/ec/curve25519.c index 45525f4742..0f18ff7c7d 100644 --- a/crypto/ec/curve25519.c +++ b/crypto/ec/curve25519.c @@ -13,7 +13,8 @@ #if defined(X25519_ASM) \ || ( (defined(__SIZEOF_INT128__) && __SIZEOF_INT128__ == 16) \ - && !defined(__sparc__) ) + && !defined(__sparc__) \ + && !(defined(__ANDROID__) && !defined(__clang__)) ) /* * Base 2^51 implementation. */