From 7b8a6e9774e90c4152e094dccfe4cb759dc926c3 Mon Sep 17 00:00:00 2001 From: Peter Michael Green Date: Thu, 20 Oct 2022 17:38:40 +0100 Subject: [PATCH] Patch out neon in freebl Gbp-Pq: Name patch-out-neon-in-freebl.patch --- security/nss/lib/freebl/Makefile | 12 +-- security/nss/lib/freebl/freebl.gyp | 90 +++++++++---------- security/nss/lib/freebl/gcm.c | 2 +- security/nss/lib/freebl/rijndael.c | 4 +- .../nss_build_common/.cargo-checksum.json | 2 +- third_party/rust/nss_build_common/src/lib.rs | 6 +- 6 files changed, 58 insertions(+), 58 deletions(-) diff --git a/security/nss/lib/freebl/Makefile b/security/nss/lib/freebl/Makefile index 7673357304..b3ed441928 100644 --- a/security/nss/lib/freebl/Makefile +++ b/security/nss/lib/freebl/Makefile @@ -153,9 +153,9 @@ ifeq ($(CPU_ARCH),aarch64) endif endif ifeq ($(CPU_ARCH),arm) -ifndef NSS_DISABLE_ARM32_NEON - EXTRA_SRCS += gcm-arm32-neon.c -endif +#ifndef NSS_DISABLE_ARM32_NEON +# EXTRA_SRCS += gcm-arm32-neon.c +#endif ifdef CC_IS_CLANG DEFINES += -DUSE_HW_AES -DUSE_HW_SHA1 -DUSE_HW_SHA2 EXTRA_SRCS += aes-armv8.c sha1-armv8.c sha256-armv8.c @@ -774,9 +774,9 @@ USES_SOFTFLOAT_ABI := $(shell $(CC) -o - -E -dM - $(CFLAGS) < /dev/null | grep _ $(OBJDIR)/$(PROG_PREFIX)aes-armv8$(OBJ_SUFFIX): CFLAGS += -march=armv8-a -mfpu=crypto-neon-fp-armv8$(if $(USES_SOFTFLOAT_ABI), -mfloat-abi=softfp) $(OBJDIR)/$(PROG_PREFIX)sha1-armv8$(OBJ_SUFFIX): CFLAGS += -march=armv8-a -mfpu=crypto-neon-fp-armv8$(if $(USES_SOFTFLOAT_ABI), -mfloat-abi=softfp) $(OBJDIR)/$(PROG_PREFIX)sha256-armv8$(OBJ_SUFFIX): CFLAGS += -march=armv8-a -mfpu=crypto-neon-fp-armv8$(if $(USES_SOFTFLOAT_ABI), -mfloat-abi=softfp) -ifndef NSS_DISABLE_ARM32_NEON -$(OBJDIR)/$(PROG_PREFIX)gcm-arm32-neon$(OBJ_SUFFIX): CFLAGS += -mfpu=neon$(if $(USES_SOFTFLOAT_ABI), -mfloat-abi=softfp) -endif +#ifndef NSS_DISABLE_ARM32_NEON +#$(OBJDIR)/$(PROG_PREFIX)gcm-arm32-neon$(OBJ_SUFFIX): CFLAGS += -mfpu=neon$(if $(USES_SOFTFLOAT_ABI), -mfloat-abi=softfp) +#endif endif ifeq ($(CPU_ARCH),aarch64) diff --git a/security/nss/lib/freebl/freebl.gyp b/security/nss/lib/freebl/freebl.gyp index 72e1b9b739..e9d58ee3bf 100644 --- a/security/nss/lib/freebl/freebl.gyp +++ b/security/nss/lib/freebl/freebl.gyp @@ -103,13 +103,13 @@ ], }, }], - [ 'target_arch=="arm"', { - # Gecko doesn't support non-NEON platform on Android, but tier-3 - # platform such as Linux/arm will need it - 'cflags_mozilla': [ - '-mfpu=neon' - ], - }], + #[ 'target_arch=="arm"', { + # # Gecko doesn't support non-NEON platform on Android, but tier-3 + # # platform such as Linux/arm will need it + # 'cflags_mozilla': [ + # '-mfpu=neon' + # ], + #}], [ 'target_arch=="x64"', { 'sources': [ 'verified/Hacl_Poly1305_128.c', @@ -172,13 +172,13 @@ ], }, }], - [ 'target_arch=="arm"', { - # Gecko doesn't support non-NEON platform on Android, but tier-3 - # platform such as Linux/arm will need it - 'cflags_mozilla': [ - '-mfpu=neon' - ], - }], + #[ 'target_arch=="arm"', { + # # Gecko doesn't support non-NEON platform on Android, but tier-3 + # # platform such as Linux/arm will need it + # 'cflags_mozilla': [ + # '-mfpu=neon' + # ], + #}], [ 'target_arch=="x64"', { 'sources': [ 'verified/Hacl_Poly1305_256.c', @@ -251,25 +251,25 @@ }] ] }, - { - 'target_name': 'gcm-aes-arm32-neon_c_lib', - 'type': 'static_library', - 'sources': [ - 'gcm-arm32-neon.c' - ], - 'dependencies': [ - '<(DEPTH)/exports.gyp:nss_exports' - ], - 'cflags': [ - '-march=armv7', - '-mfpu=neon', - '<@(softfp_cflags)', - ], - 'cflags_mozilla': [ - '-mfpu=neon', - '<@(softfp_cflags)', - ] - }, + #{ + # 'target_name': 'gcm-aes-arm32-neon_c_lib', + # 'type': 'static_library', + # 'sources': [ + # 'gcm-arm32-neon.c' + # ], + # 'dependencies': [ + # '<(DEPTH)/exports.gyp:nss_exports' + # ], + # #'cflags': [ + # # '-march=armv7', + # # '-mfpu=neon', + # # '<@(softfp_cflags)', + # #], + # #'cflags_mozilla': [ + # # '-mfpu=neon', + # # '<@(softfp_cflags)', + # #] + #}, { 'target_name': 'gcm-aes-aarch64_c_lib', 'type': 'static_library', @@ -525,12 +525,12 @@ 'sha-x86_c_lib', ], }], - [ 'disable_arm32_neon==0 and target_arch=="arm"', { - 'dependencies': [ - 'gcm-aes-arm32-neon_c_lib', - ], - }], - [ 'disable_arm32_neon==1 and target_arch=="arm"', { + #[ 'disable_arm32_neon==0 and target_arch=="arm"', { + # 'dependencies': [ + # 'gcm-aes-arm32-neon_c_lib', + # ], + #}], + [ 'target_arch=="arm"', { 'defines!': [ 'NSS_DISABLE_ARM32_NEON', ], @@ -612,12 +612,12 @@ 'sha-x86_c_lib', ], }], - [ 'disable_arm32_neon==0 and target_arch=="arm"', { - 'dependencies': [ - 'gcm-aes-arm32-neon_c_lib', - ], - }], - [ 'disable_arm32_neon==1 and target_arch=="arm"', { + #[ 'disable_arm32_neon==0 and target_arch=="arm"', { + # 'dependencies': [ + # 'gcm-aes-arm32-neon_c_lib', + # ], + #}], + [ 'target_arch=="arm"', { 'defines!': [ 'NSS_DISABLE_ARM32_NEON', ], diff --git a/security/nss/lib/freebl/gcm.c b/security/nss/lib/freebl/gcm.c index ac461b4885..67b58fdeea 100644 --- a/security/nss/lib/freebl/gcm.c +++ b/security/nss/lib/freebl/gcm.c @@ -25,7 +25,7 @@ #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. */ -#define USE_ARM_GCM +//#define USE_ARM_GCM #endif /* Forward declarations */ diff --git a/security/nss/lib/freebl/rijndael.c b/security/nss/lib/freebl/rijndael.c index 82b1f419d9..e255787646 100644 --- a/security/nss/lib/freebl/rijndael.c +++ b/security/nss/lib/freebl/rijndael.c @@ -20,10 +20,10 @@ #include "gcm.h" #include "mpi.h" -#if !defined(IS_LITTLE_ENDIAN) && !defined(NSS_X86_OR_X64) +//#if !defined(IS_LITTLE_ENDIAN) && !defined(NSS_X86_OR_X64) // not test yet on big endian platform of arm #undef USE_HW_AES -#endif +//#endif #ifdef __powerpc64__ #include "ppc-crypto.h" diff --git a/third_party/rust/nss_build_common/.cargo-checksum.json b/third_party/rust/nss_build_common/.cargo-checksum.json index 5807703dce..6614fc4d73 100644 --- a/third_party/rust/nss_build_common/.cargo-checksum.json +++ b/third_party/rust/nss_build_common/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.toml":"4f1d37d926e853eb9f3d8074b45c00a317e2b4aafbc339a471430d28526716e9","src/lib.rs":"1cbfa62f63ce62078b51105c28bd4783c0045a4059175a1644ac0cc79837bf00"},"package":null} \ No newline at end of file +{"files":{"Cargo.toml":"4f1d37d926e853eb9f3d8074b45c00a317e2b4aafbc339a471430d28526716e9","src/lib.rs":"e1b529d6facc6f16a234a81d4b39904002ee023539a73bd29fae75e9a433fef3"},"package":null} diff --git a/third_party/rust/nss_build_common/src/lib.rs b/third_party/rust/nss_build_common/src/lib.rs index 320dc0d40d..2cc52196f2 100644 --- a/third_party/rust/nss_build_common/src/lib.rs +++ b/third_party/rust/nss_build_common/src/lib.rs @@ -117,9 +117,9 @@ fn get_nss_libs(kind: LinkingKind) -> Vec<&'static str> { if target_arch == "x86_64" || target_arch == "x86" { static_libs.push("gcm-aes-x86_c_lib"); } - if target_arch == "arm" { - static_libs.push("gcm-aes-arm32-neon_c_lib") - } + //if target_arch == "arm" { + // static_libs.push("gcm-aes-arm32-neon_c_lib") + //} if target_arch == "aarch64" { static_libs.push("gcm-aes-aarch64_c_lib"); } -- 2.30.2