[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