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

Lei Maohui leimaohui at cn.fujitsu.com
Thu Jun 6 03:05:05 UTC 2019


Fix bug as following on aarch64BE:

Error: operand 1 must be an integer register -- `rev v31.16b,v31.16b'

Signed-off-by: Lei Maohui <leimaohui at cn.fujitsu.com>
---
 ...01-Fix-build-error-for-aarch64-big-endian.patch | 43 ++++++++++++++++++++++
 .../recipes-connectivity/openssl/openssl_1.1.1c.bb |  1 +
 2 files changed, 44 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..9a90a68
--- /dev/null
+++ b/meta/recipes-connectivity/openssl/openssl/0001-Fix-build-error-for-aarch64-big-endian.patch
@@ -0,0 +1,43 @@
+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'
+
+Upstream-Status: Submitted [https://github.com/openssl/openssl/pull/9151]
+
+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 = " \
-- 
2.7.4





More information about the Openembedded-core mailing list