nss: Pass NSS_USE_ARM_HW_CRYPTO as define in CFLAGS

Use NSS_USE_ARM_HW_CRYPTO to detect USE_ARM_GCM, since there are
dependent, without this we control the crypto code function inclusion in
build but do not control the call sites, which can result in undefined
symbols e.g.

Linux_SINGLE_SHLIB/gcm.o: in function `gcmHash_InitContext':
/usr/src/debug/nss/3.49.1-r0/nss-3.49.1/nss/lib/freebl/gcm.c:112: undefined reference to `gcm_HashInit_hw'

(From OE-Core rev: 4f8f2fd72fee6cf5aedbb679b2c29b88f98a5e11)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Khem Raj 2020-01-26 11:27:39 -08:00 committed by Richard Purdie
parent 403b5e4b53
commit d52913fe19

View File

@ -12,20 +12,19 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
nss/lib/freebl/Makefile | 3 +++
1 file changed, 3 insertions(+)
diff --git a/nss/lib/freebl/Makefile b/nss/lib/freebl/Makefile
index 06506f0..a8b015d 100644
--- a/nss/lib/freebl/Makefile
+++ b/nss/lib/freebl/Makefile
@@ -125,6 +125,8 @@ else
@@ -125,6 +125,9 @@ else
DEFINES += -DNSS_X86
endif
endif
+
+ifdef NSS_USE_ARM_HW_CRYPTO
+ DEFINES += -DNSS_USE_ARM_HW_CRYPTO
ifeq ($(CPU_ARCH),aarch64)
DEFINES += -DUSE_HW_AES
EXTRA_SRCS += aes-armv8.c gcm-aarch64.c
@@ -145,6 +147,7 @@ ifeq ($(CPU_ARCH),arm)
@@ -146,6 +149,7 @@ ifeq ($(CPU_ARCH),arm)
endif
endif
endif
@ -33,3 +32,21 @@ index 06506f0..a8b015d 100644
ifeq ($(OS_TARGET),OSF1)
DEFINES += -DMP_ASSEMBLY_MULTIPLY -DMP_NO_MP_WORD
--- a/nss/lib/freebl/gcm.c
+++ b/nss/lib/freebl/gcm.c
@@ -17,6 +17,7 @@
#include <limits.h>
+#ifdef NSS_USE_ARM_HW_CRYPTO
/* old gcc doesn't support some poly64x2_t intrinsic */
#if defined(__aarch64__) && defined(IS_LITTLE_ENDIAN) && \
(defined(__clang__) || defined(__GNUC__) && __GNUC__ > 6)
@@ -28,6 +29,7 @@
* that compiler uses -mfpu=neon only. */
#define USE_ARM_GCM
#endif
+#endif
/* Forward declarations */
SECStatus gcm_HashInit_hw(gcmHashContext *ghash);