# HG changeset patch # User Mike Hommey # Date 1527430800 -7200 # Node ID 3d3e34bb75172462c7b4bbe7bd5e3e47ed65e464 # Parent 8e600e2af5bf0c29e88f928471e6aba1a734d05b Bug 1432455 - Build FStar.c when not building with int128 support. r=fkiefer Patch retrieved and slightly updated (to add nss path) from: https://hg.mozilla.org/projects/nss/rev/3d3e34bb75172462c7b4bbe7bd5e3e47ed65e464 Signed-off-by: Fabrice Fontaine diff --git a/nss/lib/freebl/Makefile b/nss/lib/freebl/Makefile --- a/nss/lib/freebl/Makefile +++ b/nss/lib/freebl/Makefile @@ -530,22 +530,26 @@ ifndef NSS_DISABLE_CHACHAPOLY VERIFIED_SRCS += Hacl_Chacha20.c VERIFIED_SRCS += Hacl_Chacha20_Vec128.c endif # NSS_DISABLE_CHACHAPOLY ifeq (,$(filter-out i386 x386 x86 x86_64 aarch64,$(CPU_ARCH))) # All intel architectures get the 64 bit version # With custom uint128 if necessary (faster than generic 32 bit version). ECL_SRCS += curve25519_64.c - VERIFIED_SRCS += Hacl_Curve25519.c FStar.c + VERIFIED_SRCS += Hacl_Curve25519.c else # All non intel architectures get the generic 32 bit implementation (slow!) ECL_SRCS += curve25519_32.c endif +ifndef HAVE_INT128_SUPPORT + VERIFIED_SRCS += FStar.c +endif + ####################################################################### # (5) Execute "global" rules. (OPTIONAL) # ####################################################################### include $(CORE_DEPTH)/coreconf/rules.mk ####################################################################### # (6) Execute "component" rules. (OPTIONAL) # diff --git a/nss/lib/freebl/freebl.gyp b/nss/lib/freebl/freebl.gyp --- a/nss/lib/freebl/freebl.gyp +++ b/nss/lib/freebl/freebl.gyp @@ -272,28 +272,20 @@ }, }], [ 'cc_use_gnu_ld==1 and OS=="win" and target_arch=="x64"', { # mingw x64 'defines': [ 'MP_IS_LITTLE_ENDIAN', ], }], - [ 'OS!="win"', { - 'conditions': [ - [ 'target_arch=="x64" or target_arch=="arm64" or target_arch=="aarch64"', { - 'defines': [ - # The Makefile does version-tests on GCC, but we're not doing that here. - 'HAVE_INT128_SUPPORT', - ], - }, { - 'defines': [ - 'KRML_NOUINT128', - ], - }], + [ 'have_int128_support==1', { + 'defines': [ + # The Makefile does version-tests on GCC, but we're not doing that here. + 'HAVE_INT128_SUPPORT', ], }, { 'defines': [ 'KRML_NOUINT128', ], }], [ 'OS=="linux"', { 'defines': [ @@ -345,10 +337,23 @@ ], }], ], }], ], }, 'variables': { 'module': 'nss', + 'conditions': [ + [ 'OS!="win"', { + 'conditions': [ + [ 'target_arch=="x64" or target_arch=="arm64" or target_arch=="aarch64"', { + 'have_int128_support%': 1, + }, { + 'have_int128_support%': 0, + }], + ], + }, { + 'have_int128_support%': 0, + }], + ], } } diff --git a/nss/lib/freebl/freebl_base.gypi b/nss/lib/freebl/freebl_base.gypi --- a/nss/lib/freebl/freebl_base.gypi +++ b/nss/lib/freebl/freebl_base.gypi @@ -55,17 +55,16 @@ 'rsa.c', 'rsapkcs.c', 'seed.c', 'sha512.c', 'sha_fast.c', 'shvfy.c', 'sysrand.c', 'tlsprfalg.c', - 'verified/FStar.c', ], 'conditions': [ [ 'OS=="linux" or OS=="android"', { 'conditions': [ [ 'target_arch=="x64"', { 'sources': [ 'arcfour-amd64-gas.s', 'intel-aes.s', @@ -215,13 +214,16 @@ 'MP_USE_UINT_DIGIT', 'MP_ASSEMBLY_MULTIPLY', 'MP_ASSEMBLY_SQUARE', 'MP_ASSEMBLY_DIV_2DX1D', ], }], ], }], + [ 'have_int128_support==0', { + 'sources': [ 'verified/FStar.c' ], + }], ], 'ldflags': [ '-Wl,-Bsymbolic' ], }