提交 223cd213 编写于 作者: L LEAN-ESX

mbedtls: add support for x64 SSE2/AES-NI speedup

上级 03b0c42c
......@@ -8,18 +8,20 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=mbedtls
PKG_VERSION:=2.14.1
PKG_RELEASE:=1
PKG_VERSION:=2.16.3
PKG_RELEASE:=2
PKG_USE_MIPS16:=0
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-gpl.tgz
PKG_SOURCE_URL:=https://tls.mbed.org/download/
PKG_HASH:=baa1121952786f5b2c66c52226a8ca0e05126de920d1756266551df677915b7e
PKG_HASH:=fd01fe4b289116df7781d05e1ef712b6c98823c5334f4a27404f13a8d066ef6a
PKG_BUILD_PARALLEL:=1
PKG_LICENSE:=GPL-2.0+
PKG_CPE_ID:=cpe:/a:arm:mbed_tls
PKG_CONFIG_DEPENDS:=CONFIG_LIBMBEDTLS_HAVE_SSE2
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
......@@ -39,7 +41,23 @@ $(call Package/mbedtls/Default)
CATEGORY:=Libraries
SUBMENU:=SSL
TITLE+= (library)
ABI_VERSION:=$(PKG_VERSION)-$(PKG_RELEASE)
ABI_VERSION:=12
endef
define Package/libmbedtls/config
config LIBMBEDTLS_HAVE_SSE2
depends on PACKAGE_libmbedtls
bool
default y if x86_64
prompt "Enable use of x86 SSE2 instructions"
depends on x86_64
help
Use of SSE2 instructions greatly increase performance (up to
3x faster) with a minimum (~0.2%, or 23KB) increase in package
size, but it will bring no benefit if your hardware does not
support them, such as Geode GX and LX. In this case you may
save 23KB by saying yes here. AMD Geode NX, and Intel
Pentium 4 and above support SSE2.
endef
define Package/mbedtls-util
......@@ -71,6 +89,17 @@ CMAKE_OPTIONS += \
-DENABLE_TESTING:Bool=OFF \
-DENABLE_PROGRAMS:Bool=ON
define Build/Configure
$(Build/Configure/Default)
awk 'BEGIN { rc = 1 } \
/#define MBEDTLS_HAVE_SSE2/ { $$$$0 = "$(if $(CONFIG_LIBMBEDTLS_HAVE_SSE2),,// )#define MBEDTLS_HAVE_SSE2"; rc = 0 } \
{ print } \
END { exit(rc) }' $(PKG_BUILD_DIR)/include/mbedtls/config.h \
>$(PKG_BUILD_DIR)/include/mbedtls/config.h.new && \
mv $(PKG_BUILD_DIR)/include/mbedtls/config.h.new $(PKG_BUILD_DIR)/include/mbedtls/config.h
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/mbedtls $(1)/usr/include/
......@@ -81,7 +110,7 @@ endef
define Package/libmbedtls/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.so* $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.so.* $(1)/usr/lib/
endef
define Package/mbedtls-util/install
......
--- a/include/mbedtls/config.h
+++ b/include/mbedtls/config.h
@@ -557,14 +557,14 @@
@@ -633,14 +633,14 @@
*
* Enable Output Feedback mode (OFB) for symmetric ciphers.
*/
......@@ -17,7 +17,7 @@
/**
* \def MBEDTLS_CIPHER_NULL_CIPHER
@@ -654,19 +654,19 @@
@@ -750,19 +750,19 @@
*
* Comment macros to disable the curve and functions for it
*/
......@@ -46,7 +46,7 @@
/**
* \def MBEDTLS_ECP_NIST_OPTIM
@@ -768,7 +768,7 @@
@@ -864,7 +864,7 @@
* See dhm.h for more details.
*
*/
......@@ -55,7 +55,7 @@
/**
* \def MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
@@ -788,7 +788,7 @@
@@ -884,7 +884,7 @@
* MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA
* MBEDTLS_TLS_ECDHE_PSK_WITH_RC4_128_SHA
*/
......@@ -64,7 +64,7 @@
/**
* \def MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED
@@ -813,7 +813,7 @@
@@ -909,7 +909,7 @@
* MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA
* MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA
*/
......@@ -73,7 +73,7 @@
/**
* \def MBEDTLS_KEY_EXCHANGE_RSA_ENABLED
@@ -947,7 +947,7 @@
@@ -1043,7 +1043,7 @@
* MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
* MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
*/
......@@ -82,7 +82,7 @@
/**
* \def MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED
@@ -971,7 +971,7 @@
@@ -1067,7 +1067,7 @@
* MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256
* MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384
*/
......@@ -91,7 +91,7 @@
/**
* \def MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED
@@ -1075,7 +1075,7 @@
@@ -1171,7 +1171,7 @@
* This option is only useful if both MBEDTLS_SHA256_C and
* MBEDTLS_SHA512_C are defined. Otherwise the available hash module is used.
*/
......@@ -100,7 +100,7 @@
/**
* \def MBEDTLS_ENTROPY_NV_SEED
@@ -1170,14 +1170,14 @@
@@ -1266,14 +1266,14 @@
* Uncomment this macro to disable the use of CRT in RSA.
*
*/
......@@ -117,7 +117,7 @@
/**
* \def MBEDTLS_SHA256_SMALLER
@@ -1331,7 +1331,7 @@
@@ -1427,7 +1427,7 @@
* configuration of this extension).
*
*/
......@@ -126,7 +126,7 @@
/**
* \def MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO
@@ -1506,7 +1506,7 @@
@@ -1602,7 +1602,7 @@
*
* Comment this macro to disable support for SSL session tickets
*/
......@@ -135,7 +135,7 @@
/**
* \def MBEDTLS_SSL_EXPORT_KEYS
@@ -1536,7 +1536,7 @@
@@ -1632,7 +1632,7 @@
*
* Comment this macro to disable support for truncated HMAC in SSL
*/
......@@ -144,7 +144,7 @@
/**
* \def MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT
@@ -1595,7 +1595,7 @@
@@ -1691,7 +1691,7 @@
*
* Comment this to disable run-time checking and save ROM space
*/
......@@ -153,7 +153,7 @@
/**
* \def MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3
@@ -1925,7 +1925,7 @@
@@ -2021,7 +2021,7 @@
* MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256
* MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256
*/
......@@ -162,7 +162,7 @@
/**
* \def MBEDTLS_ARIA_C
@@ -1991,7 +1991,7 @@
@@ -2087,7 +2087,7 @@
* This module enables the AES-CCM ciphersuites, if other requisites are
* enabled as well.
*/
......@@ -171,7 +171,7 @@
/**
* \def MBEDTLS_CERTS_C
@@ -2003,7 +2003,7 @@
@@ -2099,7 +2099,7 @@
*
* This module is used for testing (ssl_client/server).
*/
......@@ -180,16 +180,7 @@
/**
* \def MBEDTLS_CHACHA20_C
@@ -2078,7 +2078,7 @@
*
* This module provides debugging functions.
*/
-#define MBEDTLS_DEBUG_C
+//#define MBEDTLS_DEBUG_C
/**
* \def MBEDTLS_DES_C
@@ -2107,7 +2107,7 @@
@@ -2203,7 +2203,7 @@
* \warning DES is considered a weak cipher and its use constitutes a
* security risk. We recommend considering stronger ciphers instead.
*/
......@@ -198,7 +189,7 @@
/**
* \def MBEDTLS_DHM_C
@@ -2270,7 +2270,7 @@
@@ -2366,7 +2366,7 @@
* This module adds support for the Hashed Message Authentication Code
* (HMAC)-based key derivation function (HKDF).
*/
......@@ -207,7 +198,7 @@
/**
* \def MBEDTLS_HMAC_DRBG_C
@@ -2580,7 +2580,7 @@
@@ -2676,7 +2676,7 @@
*
* This module enables abstraction of common (libc) functions.
*/
......@@ -216,7 +207,7 @@
/**
* \def MBEDTLS_POLY1305_C
@@ -2601,7 +2601,7 @@
@@ -2697,7 +2697,7 @@
* Caller: library/md.c
*
*/
......@@ -225,7 +216,7 @@
/**
* \def MBEDTLS_RSA_C
@@ -2708,7 +2708,7 @@
@@ -2804,7 +2804,7 @@
*
* Requires: MBEDTLS_CIPHER_C
*/
......@@ -234,7 +225,7 @@
/**
* \def MBEDTLS_SSL_CLI_C
@@ -2808,7 +2808,7 @@
@@ -2904,7 +2904,7 @@
*
* This module provides run-time version information.
*/
......@@ -243,7 +234,7 @@
/**
* \def MBEDTLS_X509_USE_C
@@ -2918,7 +2918,7 @@
@@ -3014,7 +3014,7 @@
* Module: library/xtea.c
* Caller:
*/
......
From 7aff5a70f3580426865b6c86437a3e47546d13f7 Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Sun, 16 Dec 2018 13:02:49 +0100
Subject: [PATCH] bn_mul.h: Use optimized MULADDC code only on ARM >= 6
The optimized code uses umaal which was only introduced with ARMv6 and
is not available on older versions.
This broke compilation with arm926ej-s CPU for me.
Fixes: 16b1bd89326 ("bn_mul.h: add ARM DSP optimized MULADDC code")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
include/mbedtls/bn_mul.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/include/mbedtls/bn_mul.h
+++ b/include/mbedtls/bn_mul.h
@@ -638,7 +638,8 @@
"r6", "r7", "r8", "r9", "cc" \
);
-#elif defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)
+#elif defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1) && \
+ __TARGET_ARCH_ARM >= 6
#define MULADDC_INIT \
asm(
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册