openssl: use assembler version of aes on arm - nearly doubles aes encryption performance
SVN-Revision: 18790
This commit is contained in:
		| @@ -71,12 +71,16 @@ OPENSSL_NO_CIPHERS:= no-idea no-md2 no-mdc2 no-rc5 no-sha0 no-smime \ | |||||||
| 					no-rmd160 no-aes192 no-ripemd no-camellia no-ans1 no-krb5 | 					no-rmd160 no-aes192 no-ripemd no-camellia no-ans1 no-krb5 | ||||||
| ifeq ($(BOARD),ixp4xx) | ifeq ($(BOARD),ixp4xx) | ||||||
| OPENSSL_OPTIONS:= shared no-ec no-err no-hw no-threads zlib-dynamic \ | OPENSSL_OPTIONS:= shared no-ec no-err no-hw no-threads zlib-dynamic \ | ||||||
| 					no-sse2 no-perlasm --with-cryptodev | 					no-sse2 --with-cryptodev | ||||||
| else | else | ||||||
| OPENSSL_OPTIONS:= shared no-ec no-err no-hw no-threads zlib-dynamic \ | OPENSSL_OPTIONS:= shared no-ec no-err no-hw no-threads zlib-dynamic \ | ||||||
| 					no-engines no-sse2 no-perlasm | 					no-engines no-sse2 | ||||||
|  | endif | ||||||
|  | ifdef CONFIG_arm | ||||||
|  | OPENSSL_MAKEFLAGS := AES_ASM_OBJ="aes-armv4.o aes_cbc.o" | ||||||
|  | else | ||||||
|  | OPENSSL_OPTIONS += no-perlasm | ||||||
| endif | endif | ||||||
|  |  | ||||||
|  |  | ||||||
| define Build/Configure | define Build/Configure | ||||||
| 	(cd $(PKG_BUILD_DIR); \ | 	(cd $(PKG_BUILD_DIR); \ | ||||||
| @@ -100,21 +104,25 @@ define Build/Compile | |||||||
| 	$(MAKE) -C $(PKG_BUILD_DIR) \ | 	$(MAKE) -C $(PKG_BUILD_DIR) \ | ||||||
| 		MAKEDEPPROG="$(TARGET_CROSS)gcc" \ | 		MAKEDEPPROG="$(TARGET_CROSS)gcc" \ | ||||||
| 		OPENWRT_OPTIMIZATION_FLAGS="$(TARGET_CFLAGS)" \ | 		OPENWRT_OPTIMIZATION_FLAGS="$(TARGET_CFLAGS)" \ | ||||||
|  | 		$(OPENSSL_MAKEFLAGS) \ | ||||||
| 		depend | 		depend | ||||||
| 	$(MAKE) -C $(PKG_BUILD_DIR) \ | 	$(MAKE) -C $(PKG_BUILD_DIR) \ | ||||||
| 		CC="$(TARGET_CC)" \ | 		CC="$(TARGET_CC)" \ | ||||||
| 		AR="$(TARGET_CROSS)ar r" \ | 		AR="$(TARGET_CROSS)ar r" \ | ||||||
| 		RANLIB="$(TARGET_CROSS)ranlib" \ | 		RANLIB="$(TARGET_CROSS)ranlib" \ | ||||||
| 		OPENWRT_OPTIMIZATION_FLAGS="$(TARGET_CFLAGS)" \ | 		OPENWRT_OPTIMIZATION_FLAGS="$(TARGET_CFLAGS)" \ | ||||||
|  | 		$(OPENSSL_MAKEFLAGS) \ | ||||||
| 		all build-shared | 		all build-shared | ||||||
| 	# Work around openssl build bug to link libssl.so with libcrypto.so. | 	# Work around openssl build bug to link libssl.so with libcrypto.so. | ||||||
| 	-rm $(PKG_BUILD_DIR)/libssl.so.*.*.* | 	-rm $(PKG_BUILD_DIR)/libssl.so.*.*.* | ||||||
| 	$(MAKE) -C $(PKG_BUILD_DIR) \ | 	$(MAKE) -C $(PKG_BUILD_DIR) \ | ||||||
| 		CC="$(TARGET_CC)" \ | 		CC="$(TARGET_CC)" \ | ||||||
| 		OPENWRT_OPTIMIZATION_FLAGS="$(TARGET_CFLAGS)" \ | 		OPENWRT_OPTIMIZATION_FLAGS="$(TARGET_CFLAGS)" \ | ||||||
|  | 		$(OPENSSL_MAKEFLAGS) \ | ||||||
| 		do_linux-shared | 		do_linux-shared | ||||||
| 	$(MAKE) -C $(PKG_BUILD_DIR) \ | 	$(MAKE) -C $(PKG_BUILD_DIR) \ | ||||||
| 		INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \ | 		INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \ | ||||||
|  | 		$(OPENSSL_MAKEFLAGS) \ | ||||||
| 		install | 		install | ||||||
| endef | endef | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										13
									
								
								package/openssl/patches/310-arm_asm.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								package/openssl/patches/310-arm_asm.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | --- a/crypto/aes/Makefile | ||||||
|  | +++ b/crypto/aes/Makefile | ||||||
|  | @@ -47,6 +47,9 @@ lib:	$(LIBOBJ) | ||||||
|  |   | ||||||
|  |  $(LIBOBJ): $(LIBSRC) | ||||||
|  |   | ||||||
|  | +aes-armv4.s: asm/aes-armv4.pl | ||||||
|  | +	$(PERL) $^ > $@ | ||||||
|  | + | ||||||
|  |  aes-ia64.s: asm/aes-ia64.S | ||||||
|  |  	$(CC) $(CFLAGS) -E asm/aes-ia64.S > $@ | ||||||
|  |   | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau