2020-09-05 08:46:10 +00:00
|
|
|
# HG changeset patch
|
|
|
|
# User Daiki Ueno <dueno@redhat.com>
|
|
|
|
# Date 1599294537 -7200
|
|
|
|
# Sat Sep 05 10:28:57 2020 +0200
|
2020-09-05 09:08:21 +00:00
|
|
|
# Node ID c2a28193fcf8771dc1f739bf5f41adf3f68b1d7d
|
2020-09-05 08:46:10 +00:00
|
|
|
# Parent e03296e73ba666329bd9c1257038353bc9074466
|
|
|
|
Bug 1659256, add gcc version check on AArch64 optimization, r?rrelyea
|
|
|
|
|
|
|
|
Reviewers: rrelyea
|
|
|
|
|
|
|
|
Bug #: 1659256
|
|
|
|
|
|
|
|
Differential Revision: https://phabricator.services.mozilla.com/D87174
|
|
|
|
|
2020-09-05 09:08:21 +00:00
|
|
|
diff -r e03296e73ba6 -r c2a28193fcf8 lib/freebl/Makefile
|
2020-09-05 08:46:10 +00:00
|
|
|
--- a/lib/freebl/Makefile Sat Sep 05 08:53:40 2020 +0200
|
|
|
|
+++ b/lib/freebl/Makefile Sat Sep 05 10:28:57 2020 +0200
|
|
|
|
@@ -119,11 +119,24 @@
|
|
|
|
DEFINES += -DNSS_X86
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
-ifdef NS_USE_GCC
|
|
|
|
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
|
|
|
|
-endif
|
|
|
|
+ ifdef CC_IS_CLANG
|
|
|
|
+ DEFINES += -DUSE_HW_AES -DUSE_HW_SHA1 -DUSE_HW_SHA2
|
|
|
|
+ EXTRA_SRCS += aes-armv8.c gcm-aarch64.c sha1-armv8.c sha256-armv8.c
|
|
|
|
+ else ifeq (1,$(CC_IS_GCC))
|
|
|
|
+ # GCC versions older than 4.9 don't support ARM AES. The check
|
|
|
|
+ # is done in two parts, first allows "major.minor" == "4.9",
|
|
|
|
+ # and then rejects any major versions prior to 5. Note that
|
|
|
|
+ # there has been no GCC 4.10, as it is renamed to GCC 5.
|
|
|
|
+ ifneq (,$(filter 4.9,$(word 1,$(GCC_VERSION)).$(word 2,$(GCC_VERSION))))
|
|
|
|
+ DEFINES += -DUSE_HW_AES -DUSE_HW_SHA1 -DUSE_HW_SHA2
|
|
|
|
+ EXTRA_SRCS += aes-armv8.c gcm-aarch64.c sha1-armv8.c sha256-armv8.c
|
|
|
|
+ endif
|
|
|
|
+ ifeq (,$(filter 0 1 2 3 4,$(word 1,$(GCC_VERSION))))
|
|
|
|
+ DEFINES += -DUSE_HW_AES -DUSE_HW_SHA1 -DUSE_HW_SHA2
|
|
|
|
+ EXTRA_SRCS += aes-armv8.c gcm-aarch64.c sha1-armv8.c sha256-armv8.c
|
|
|
|
+ endif
|
|
|
|
+ endif
|
|
|
|
endif
|
|
|
|
ifeq ($(CPU_ARCH),arm)
|
|
|
|
ifndef NSS_DISABLE_ARM32_NEON
|
|
|
|
@@ -133,7 +146,10 @@
|
|
|
|
DEFINES += -DUSE_HW_AES -DUSE_HW_SHA1 -DUSE_HW_SHA2
|
|
|
|
EXTRA_SRCS += aes-armv8.c sha1-armv8.c sha256-armv8.c
|
|
|
|
else ifeq (1,$(CC_IS_GCC))
|
|
|
|
- # Old compiler doesn't support ARM AES.
|
|
|
|
+ # GCC versions older than 4.9 don't support ARM AES. The check
|
|
|
|
+ # is done in two parts, first allows "major.minor" == "4.9",
|
|
|
|
+ # and then rejects any major versions prior to 5. Note that
|
|
|
|
+ # there has been no GCC 4.10, as it is renamed to GCC 5.
|
|
|
|
ifneq (,$(filter 4.9,$(word 1,$(GCC_VERSION)).$(word 2,$(GCC_VERSION))))
|
|
|
|
DEFINES += -DUSE_HW_AES -DUSE_HW_SHA1 -DUSE_HW_SHA2
|
|
|
|
EXTRA_SRCS += aes-armv8.c sha1-armv8.c sha256-armv8.c
|
2020-09-05 09:08:21 +00:00
|
|
|
@@ -728,14 +744,12 @@
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
-ifdef NS_USE_GCC
|
|
|
|
ifeq ($(CPU_ARCH),aarch64)
|
|
|
|
$(OBJDIR)/$(PROG_PREFIX)aes-armv8$(OBJ_SUFFIX): CFLAGS += -march=armv8-a+crypto
|
|
|
|
$(OBJDIR)/$(PROG_PREFIX)gcm-aarch64$(OBJ_SUFFIX): CFLAGS += -march=armv8-a+crypto
|
|
|
|
$(OBJDIR)/$(PROG_PREFIX)sha1-armv8$(OBJ_SUFFIX): CFLAGS += -march=armv8-a+crypto
|
|
|
|
$(OBJDIR)/$(PROG_PREFIX)sha256-armv8$(OBJ_SUFFIX): CFLAGS += -march=armv8-a+crypto
|
|
|
|
endif
|
|
|
|
-endif
|
|
|
|
|
|
|
|
ifeq ($(CPU_ARCH),ppc)
|
|
|
|
ifndef NSS_DISABLE_ALTIVEC
|