summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch
blob: bfc375e83a5efbcbddbd3934e872638d7c02b8f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
From 8b67c22b057e158f61c9fdd5b01f37195c6f5ca4 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Wed, 18 Dec 2019 12:29:50 +0100
Subject: [PATCH] freebl: add a configure option to disable ARM HW crypto

Not all current hardware supports it, particularly anything
prior to armv8 does not.

Upstream-Status: Pending
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>

---
 nss/lib/freebl/Makefile | 4 ++++
 nss/lib/freebl/gcm.c    | 2 ++
 2 files changed, 6 insertions(+)

--- a/nss/lib/freebl/Makefile
+++ b/nss/lib/freebl/Makefile
@@ -126,6 +126,8 @@ else
 endif
 endif
 ifdef NS_USE_GCC
+ifdef NSS_USE_ARM_HW_CRYPTO
+    DEFINES += -DNSS_USE_ARM_HW_CRYPTO
 ifeq ($(CPU_ARCH),aarch64)
     DEFINES += -DUSE_HW_AES -DUSE_HW_SHA1 -DUSE_HW_SHA2
     EXTRA_SRCS += aes-armv8.c gcm-aarch64.c sha1-armv8.c sha256-armv8.c
@@ -150,6 +152,7 @@ endif
         endif
     endif
 endif
+endif
 
 ifeq ($(OS_TARGET),OSF1)
     DEFINES += -DMP_ASSEMBLY_MULTIPLY -DMP_NO_MP_WORD
--- a/nss/lib/freebl/gcm.c
+++ b/nss/lib/freebl/gcm.c
@@ -21,7 +21,9 @@
 /* old gcc doesn't support some poly64x2_t intrinsic */
 #if defined(__aarch64__) && defined(IS_LITTLE_ENDIAN) && \
     (defined(__clang__) || defined(__GNUC__) && __GNUC__ > 6)
+# ifdef NSS_USE_ARM_HW_CRYPTO
 #define USE_ARM_GCM
+# endif
 #elif defined(__arm__) && defined(IS_LITTLE_ENDIAN) && \
     !defined(NSS_DISABLE_ARM32_NEON)
 /* We don't test on big endian platform, so disable this on big endian. */