[OpenWrt-Devel] [PATCH] [packages] enable openssl's arm asm support

John Crispin john at phrozen.org
Sat Jul 12 02:31:27 EDT 2014


Hi,

had to look up if i missed the newest trend but i did not ... :)

https://www.kernel.org/doc/Documentation/SubmittingPatches
<quote>

The sign-off is a simple line at the end of the explanation for the
patch, which certifies that you wrote it or otherwise have the right to
pass it on as an open-source patch.  The rules are pretty simple: if you
can certify the below:

        Developer's Certificate of Origin 1.1

        By making a contribution to this project, I certify that:

        (a) ...
        (b) ...
        (c) ...
	(d) ...

then you just add a line saying

	Signed-off-by: Random J Developer <random at developer.example.org>

using your real name (sorry, no pseudonyms or anonymous contributions.)


</quote>

apart from that it looks sane will run this on a few arm boards today.

	John


On 11/07/2014 19:09, Daniel Drown wrote:
> This speeds up openssl on the arm platform.  My test machine is a
> dual-core 1ghz Freescale i.MX6 board.
> 
> [before] # openssl speed -multi 2 aes-128-cbc aes-128 cbc
> 33402.86k    36116.95k    36406.44k    36468.74k    36208.64k
> 
> [after] # openssl speed -multi 2 aes-128-cbc aes-128 cbc
> 54901.30k    60114.15k    61398.10k    61680.98k    61762.22k
> 
> or, roughly a 70% speed increase
> 
> The ASFLAGS need to change because the asm code includes
> crypto/arm_arch.h
> 
> Developer's Certificate of Origin 1.1
> 
> By making a contribution to this project, I certify that:
> 
> (a) The contribution was created in whole or in part by me and I 
> have the right to submit it under the open source license indicated
> in the file; or
> 
> (b) The contribution is based upon previous work that, to the best 
> of my knowledge, is covered under an appropriate open source 
> license and I have the right under that license to submit that work
> with modifications, whether created in whole or in part by me,
> under the same open source license (unless I am permitted to submit
> under a different license), as indicated in the file; or
> 
> (c) The contribution was provided directly to me by some other 
> person who certified (a), (b) or (c) and I have not modified it.
> 
> (d) I understand and agree that this project and the contribution 
> are public and that a record of the contribution (including all 
> personal information I submit with it, including my sign-off) is 
> maintained indefinitely and may be redistributed consistent with 
> this project or the open source license(s) involved.
> 
> Signed-off-by: Daniel Drown <dan-openwrt at drown.org>
> 
> 
> diff --git a/package/libs/openssl/Makefile
> b/package/libs/openssl/Makefile index fff260b..5740e13 100644 ---
> a/package/libs/openssl/Makefile +++
> b/package/libs/openssl/Makefile @@ -105,6 +105,8 @@ else 
> OPENSSL_OPTIONS+=no-sse2 ifeq ($(CONFIG_mips)$(CONFIG_mipsel),y) 
> OPENSSL_TARGET:=linux-mips-openwrt +  else ifeq ($(CONFIG_arm),y) +
> OPENSSL_TARGET:=linux-armv4-openwrt else 
> OPENSSL_TARGET:=linux-generic-openwrt OPENSSL_OPTIONS+=no-perlasm 
> @@ -143,7 +145,7 @@ TARGET_CFLAGS += $(FPIC) define Build/Compile 
> +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \ CC="$(TARGET_CC)" \ -
> ASFLAGS="$(TARGET_ASFLAGS) -c" \ +		ASFLAGS="$(TARGET_ASFLAGS)
> -I$(PKG_BUILD_DIR)/crypto -c" \ AR="$(TARGET_CROSS)ar r" \ 
> RANLIB="$(TARGET_CROSS)ranlib" \ 
> OPENWRT_OPTIMIZATION_FLAGS="$(TARGET_CFLAGS)" \ @@ -151,7 +153,7 @@
> define Build/Compile all +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)
> \ CC="$(TARGET_CC)" \ -		ASFLAGS="$(TARGET_ASFLAGS) -c" \ +
> ASFLAGS="$(TARGET_ASFLAGS) -I$(PKG_BUILD_DIR)/crypto -c" \ 
> AR="$(TARGET_CROSS)ar r" \ RANLIB="$(TARGET_CROSS)ranlib" \ 
> OPENWRT_OPTIMIZATION_FLAGS="$(TARGET_CFLAGS)" \ diff --git
> a/package/libs/openssl/patches/220-Configure-arm.patch
> b/package/libs/openssl/patches/220-Configure-arm.patch new file
> mode 100644 index 0000000..3bc92e4 --- /dev/null +++
> b/package/libs/openssl/patches/220-Configure-arm.patch @@ -0,0
> +1,10 @@ +--- a/Configure	2014-07-11 15:48:35.788111874 +0000 ++++
> b/Configure	2014-07-11 15:49:10.699784507 +0000 +@@ -406,6 +406,7
> @@ + # OpenWrt targets + "linux-mips-openwrt","gcc:-DTERMIOS
> \$(OPENWRT_OPTIMIZATION_FLAGS) -fomit-frame-pointer
> -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT
> DES_UNROLL
> BF_PTR:${mips32_asm}:o32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
>
> 
+ "linux-generic-openwrt","gcc:-DTERMIOS \$(OPENWRT_OPTIMIZATION_FLAGS)
-fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR
RC4_CHUNK DES_INT DES_UNROLL
BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
> ++"linux-armv4-openwrt","gcc:-DTERMIOS
> \$(OPENWRT_OPTIMIZATION_FLAGS) -fomit-frame-pointer
> -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT
> DES_UNROLL
> BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
>
> 
+
> + # Android: linux-* but without -DTERMIO and pointers to headers
> and libs. + "android","gcc:-mandroid -I\$(ANDROID_DEV)/include
> -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer
> -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT
> DES_UNROLL
> BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
>
> 
_______________________________________________
> openwrt-devel mailing list openwrt-devel at lists.openwrt.org 
> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
> 
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list