nss_latest: remove curve25519 support

Was enabled unconditionally, but causes SIGILL on machines that do not
support the Intel ADX instruction extensions.
This commit is contained in:
Martin Weinelt 2023-06-20 14:46:07 +02:00
parent 871fd1b210
commit 2e5b94de00
No known key found for this signature in database
GPG key ID: 87C1E9888F856759
2 changed files with 73 additions and 0 deletions

View file

@ -52,6 +52,10 @@ stdenv.mkDerivation rec {
# https://bugzilla.mozilla.org/show_bug.cgi?id=1771273
# https://hg.mozilla.org/projects/nss/raw-rev/21e7aaa1f7d94bca15d997e5b4c2329b32fad21a
./gcc-13-esr.patch
] ++ lib.optionals (lib.versionAtLeast version "3.90") [
# https://bugzilla.mozilla.org/show_bug.cgi?id=1836925
# https://phabricator.services.mozilla.com/D180068
./remove-c25519-support.patch
];
patchFlags = [ "-p0" ];

View file

@ -0,0 +1,69 @@
diff --git a/nss/lib/freebl/Makefile b/nss/lib/freebl/Makefile
index 74e8e65..aa9dd95 100644
--- nss/lib/freebl/Makefile
+++ nss/lib/freebl/Makefile
@@ -568,7 +568,6 @@ ifneq ($(shell $(CC) -? 2>&1 >/dev/null </dev/null | sed -e 's/:.*//;1q'),lcc)
HAVE_INT128_SUPPORT = 1
DEFINES += -DHAVE_INT128_SUPPORT
else ifeq (1,$(CC_IS_GCC))
- SUPPORTS_VALE_CURVE25519 = 1
ifneq (,$(filter 4.6 4.7 4.8 4.9,$(word 1,$(GCC_VERSION)).$(word 2,$(GCC_VERSION))))
HAVE_INT128_SUPPORT = 1
DEFINES += -DHAVE_INT128_SUPPORT
@@ -593,11 +592,6 @@ ifndef HAVE_INT128_SUPPORT
DEFINES += -DKRML_VERIFIED_UINT128
endif
-ifdef SUPPORTS_VALE_CURVE25519
- VERIFIED_SRCS += Hacl_Curve25519_64.c
- DEFINES += -DHACL_CAN_COMPILE_INLINE_ASM
-endif
-
ifndef NSS_DISABLE_CHACHAPOLY
ifeq ($(CPU_ARCH),x86_64)
ifndef NSS_DISABLE_AVX2
diff --git a/nss/lib/freebl/freebl.gyp b/nss/lib/freebl/freebl.gyp
index 65f9a80..23940ef 100644
--- nss/lib/freebl/freebl.gyp
+++ nss/lib/freebl/freebl.gyp
@@ -866,12 +866,6 @@
}],
],
}],
- [ 'supports_vale_curve25519==1', {
- 'defines': [
- # The Makefile does version-tests on GCC, but we're not doing that here.
- 'HACL_CAN_COMPILE_INLINE_ASM',
- ],
- }],
[ 'OS=="linux" or OS=="android"', {
'conditions': [
[ 'target_arch=="x64"', {
@@ -934,11 +928,6 @@
'variables': {
'module': 'nss',
'conditions': [
- [ 'target_arch=="x64" and cc_is_gcc==1', {
- 'supports_vale_curve25519%': 1,
- }, {
- 'supports_vale_curve25519%': 0,
- }],
[ 'target_arch=="x64" or target_arch=="arm64" or target_arch=="aarch64"', {
'have_int128_support%': 1,
}, {
diff --git a/nss/lib/freebl/freebl_base.gypi b/nss/lib/freebl/freebl_base.gypi
index d198c44..34b6b3c 100644
--- nss/lib/freebl/freebl_base.gypi
+++ nss/lib/freebl/freebl_base.gypi
@@ -151,11 +151,6 @@
'ecl/curve25519_32.c',
],
}],
- ['supports_vale_curve25519==1', {
- 'sources': [
- 'verified/Hacl_Curve25519_64.c',
- ],
- }],
['(target_arch!="ppc64" and target_arch!="ppc64le") or disable_altivec==1', {
'sources': [
# Gyp does not support per-file cflags, so working around like this.