1 From 4a7aa30ae9f3ce798dd886c2f2d4164c43027748 Mon Sep 17 00:00:00 2001
2 From: Jussi Kivilinna <jussi.kivilinna@iki.fi>
3 Date: Sat, 29 Jul 2017 14:34:23 +0300
4 Subject: [PATCH] Fix building AArch32 CE implementations when target is ARMv6
7 * cipher/cipher-gcm-armv8-aarch32-ce.S: Select ARMv8 architecure.
8 * cipher/rijndael-armv8-aarch32-ce.S: Ditto.
9 * cipher/sha1-armv8-aarch32-ce.S: Ditto.
10 * cipher/sha256-armv8-aarch32-ce.S: Ditto.
11 * configure.ac (gcry_cv_gcc_inline_asm_aarch32_crypto): Ditto.
14 Raspbian distribution defaults to ARMv6 architecture thus 'rbit'
15 instruction is not available with default compiler flags. Patch
16 adds explicit architecture selection for ARMv8 to enable 'rbit'
17 usage with ARMv8/AArch32-CE assembly implementations of SHA,
20 Reported-by: Chris Horry <zerbey@gmail.com>
21 Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
23 Signed-off-by: Paul Barker <pbarker@toganlabs.com>
24 Upstream-Status: Backport
27 cipher/cipher-gcm-armv8-aarch32-ce.S | 1 +
28 cipher/rijndael-armv8-aarch32-ce.S | 1 +
29 cipher/sha1-armv8-aarch32-ce.S | 1 +
30 cipher/sha256-armv8-aarch32-ce.S | 1 +
32 5 files changed, 5 insertions(+)
34 diff --git a/cipher/cipher-gcm-armv8-aarch32-ce.S b/cipher/cipher-gcm-armv8-aarch32-ce.S
35 index b61a7871..1de66a16 100644
36 --- a/cipher/cipher-gcm-armv8-aarch32-ce.S
37 +++ b/cipher/cipher-gcm-armv8-aarch32-ce.S
39 defined(HAVE_GCC_INLINE_ASM_AARCH32_CRYPTO)
43 .fpu crypto-neon-fp-armv8
46 diff --git a/cipher/rijndael-armv8-aarch32-ce.S b/cipher/rijndael-armv8-aarch32-ce.S
47 index f375f673..5c8fa3c0 100644
48 --- a/cipher/rijndael-armv8-aarch32-ce.S
49 +++ b/cipher/rijndael-armv8-aarch32-ce.S
51 defined(HAVE_GCC_INLINE_ASM_AARCH32_CRYPTO)
55 .fpu crypto-neon-fp-armv8
58 diff --git a/cipher/sha1-armv8-aarch32-ce.S b/cipher/sha1-armv8-aarch32-ce.S
59 index b0bc5ffe..bf2b233b 100644
60 --- a/cipher/sha1-armv8-aarch32-ce.S
61 +++ b/cipher/sha1-armv8-aarch32-ce.S
63 defined(HAVE_GCC_INLINE_ASM_AARCH32_CRYPTO) && defined(USE_SHA1)
67 .fpu crypto-neon-fp-armv8
70 diff --git a/cipher/sha256-armv8-aarch32-ce.S b/cipher/sha256-armv8-aarch32-ce.S
71 index 2041a237..2b17ab1b 100644
72 --- a/cipher/sha256-armv8-aarch32-ce.S
73 +++ b/cipher/sha256-armv8-aarch32-ce.S
75 defined(HAVE_GCC_INLINE_ASM_AARCH32_CRYPTO) && defined(USE_SHA256)
79 .fpu crypto-neon-fp-armv8
82 diff --git a/configure.ac b/configure.ac
83 index 27faa7f4..66e7cd67 100644
86 @@ -1619,6 +1619,7 @@ AC_CACHE_CHECK([whether GCC inline assembler supports AArch32 Crypto Extension i
87 AC_COMPILE_IFELSE([AC_LANG_SOURCE(
92 ".fpu crypto-neon-fp-armv8\n\t"