[OE-core] [PATCH v2] openssl: Fix a build bug on aarch64BE.

ChenQi Qi.Chen at windriver.com
Mon Jun 17 05:16:36 UTC 2019


On 06/06/2019 05:46 AM, Lei Maohui wrote:
> Fix bug as following on aarch64BE:
>
> Error: operand 1 must be an integer register -- `rev v31.16b,v31.16b'
>
> https://github.com/openssl/openssl/pull/9151
>
> Upstream-Status: Submitted
>
> Signed-off-by: Lei Maohui <leimaohui at cn.fujitsu.com>
> ---
>   ...01-Fix-build-error-for-aarch64-big-endian.patch | 41 ++++++++++++++++++++++
>   .../recipes-connectivity/openssl/openssl_1.1.1c.bb |  1 +
>   2 files changed, 42 insertions(+)
>   create mode 100644 meta/recipes-connectivity/openssl/openssl/0001-Fix-build-error-for-aarch64-big-endian.patch
>
> diff --git a/meta/recipes-connectivity/openssl/openssl/0001-Fix-build-error-for-aarch64-big-endian.patch b/meta/recipes-connectivity/openssl/openssl/0001-Fix-build-error-for-aarch64-big-endian.patch
> new file mode 100644
> index 0000000..65ca02c
> --- /dev/null
> +++ b/meta/recipes-connectivity/openssl/openssl/0001-Fix-build-error-for-aarch64-big-endian.patch
> @@ -0,0 +1,41 @@
> +From 1f8c0f2feea5cdcae0bcd9dfc78198d9e2c4cf09 Mon Sep 17 00:00:00 2001
> +From: Lei Maohui <leimaohui at cn.fujitsu.com>
> +Date: Thu, 13 Jun 2019 12:17:30 +0900
> +Subject: [PATCH] Fix build error for aarch64 big endian.
> +
> +Modified rev to rev64, because rev only takes integer registers.
> +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90827
> +Otherwise, the following error will occur.
> +
> +Error: operand 1 must be an integer register -- `rev v31.16b,v31.16b'
> +

Put Upstream-Status here.

Best Regards,
Chen Qi

> +Signed-off-by: Lei Maohui <leimaohui at cn.fujitsu.com>
> +---
> + crypto/sha/asm/keccak1600-armv8.pl | 4 ++--
> + 1 file changed, 2 insertions(+), 2 deletions(-)
> +
> +diff --git a/crypto/sha/asm/keccak1600-armv8.pl b/crypto/sha/asm/keccak1600-armv8.pl
> +index dc72f18..6620690 100755
> +--- a/crypto/sha/asm/keccak1600-armv8.pl
> ++++ b/crypto/sha/asm/keccak1600-armv8.pl
> +@@ -731,7 +731,7 @@ $code.=<<___;
> + 	blo	.Lprocess_block_ce
> + 	ldr	d31,[$inp],#8		// *inp++
> + #ifdef	__AARCH64EB__
> +-	rev	v31.16b,v31.16b
> ++	rev64	v31.16b,v31.16b
> + #endif
> + 	eor	$A[$j/5][$j%5],$A[$j/5][$j%5],v31.16b
> + 	beq	.Lprocess_block_ce
> +@@ -740,7 +740,7 @@ ___
> + $code.=<<___;
> + 	ldr	d31,[$inp],#8		// *inp++
> + #ifdef	__AARCH64EB__
> +-	rev	v31.16b,v31.16b
> ++	rev64	v31.16b,v31.16b
> + #endif
> + 	eor	$A[4][4],$A[4][4],v31.16b
> +
> +--
> +2.7.4
> +
> diff --git a/meta/recipes-connectivity/openssl/openssl_1.1.1c.bb b/meta/recipes-connectivity/openssl/openssl_1.1.1c.bb
> index 669b1a1..ec85ccd 100644
> --- a/meta/recipes-connectivity/openssl/openssl_1.1.1c.bb
> +++ b/meta/recipes-connectivity/openssl/openssl_1.1.1c.bb
> @@ -16,6 +16,7 @@ SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \
>              file://0001-skip-test_symbol_presence.patch \
>              file://0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch \
>              file://afalg.patch \
> +           file://0001-Fix-build-error-for-aarch64-big-endian.patch \
>              "
>   
>   SRC_URI_append_class-nativesdk = " \




More information about the Openembedded-core mailing list