From e9b89143698d0d288ae2935dca11237fa2267460 Mon Sep 17 00:00:00 2001 From: David Abdurachmanov Date: Sat, 2 May 2020 13:08:34 +0300 Subject: [PATCH] Fix RISC-V compilation error Signed-off-by: David Abdurachmanov --- nss-3.50-fix-riscv64.patch | 28 ++++++++++++++++++++++++++++ nss.spec | 8 +++++++- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 nss-3.50-fix-riscv64.patch diff --git a/nss-3.50-fix-riscv64.patch b/nss-3.50-fix-riscv64.patch new file mode 100644 index 0000000..b874de0 --- /dev/null +++ b/nss-3.50-fix-riscv64.patch @@ -0,0 +1,28 @@ +diff --git nss/lib/freebl/verified/kremlin/include/kremlin/internal/types.h nss/lib/freebl/verified/kremlin/include/kremlin/internal/types.h +index 67d5af5..beaa862 100644 +--- nss/lib/freebl/verified/kremlin/include/kremlin/internal/types.h ++++ nss/lib/freebl/verified/kremlin/include/kremlin/internal/types.h +@@ -56,7 +56,8 @@ typedef const char *Prims_string; + #include + typedef __m128i FStar_UInt128_uint128; + #elif !defined(KRML_VERIFIED_UINT128) && !defined(_MSC_VER) && \ +- (defined(__x86_64__) || defined(__x86_64) || defined(__aarch64__)) ++ (defined(__x86_64__) || defined(__x86_64) || defined(__aarch64__) || \ ++ (defined(__riscv) && __riscv_xlen == 64)) + typedef unsigned __int128 FStar_UInt128_uint128; + #else + typedef struct FStar_UInt128_uint128_s { +diff --git nss/lib/freebl/verified/kremlin/kremlib/dist/minimal/fstar_uint128_gcc64.h nss/lib/freebl/verified/kremlin/kremlib/dist/minimal/fstar_uint128_gcc64.h +index ba01362..8bd90bc 100644 +--- nss/lib/freebl/verified/kremlin/kremlib/dist/minimal/fstar_uint128_gcc64.h ++++ nss/lib/freebl/verified/kremlin/kremlib/dist/minimal/fstar_uint128_gcc64.h +@@ -25,7 +25,8 @@ + #include "LowStar_Endianness.h" + + #if !defined(KRML_VERIFIED_UINT128) && !defined(_MSC_VER) && \ +- (defined(__x86_64__) || defined(__x86_64) || defined(__aarch64__)) ++ (defined(__x86_64__) || defined(__x86_64) || defined(__aarch64__) || \ ++ (defined(__riscv) && __riscv_xlen == 64)) + + /* GCC + using native unsigned __int128 support */ + diff --git a/nss.spec b/nss.spec index b83944f..3848120 100644 --- a/nss.spec +++ b/nss.spec @@ -44,7 +44,7 @@ rpm.define(string.format("nss_release_tag NSS_%s_RTM", Summary: Network Security Services Name: nss Version: %{nss_version} -Release: 2%{?dist} +Release: 2.0.riscv64%{?dist} License: MPLv2.0 URL: http://www.mozilla.org/projects/security/pki/nss/ Requires: nspr >= %{nspr_version} @@ -117,6 +117,9 @@ Patch12: nss-signtool-format.patch # https://github.com/FStarLang/kremlin/issues/166 Patch13: nss-kremlin-ppc64le.patch +# Fix RISC-V compilation +Patch20: nss-3.50-fix-riscv64.patch + %description Network Security Services (NSS) is a set of libraries designed to support cross-platform development of security-enabled client and @@ -894,6 +897,9 @@ update-crypto-policies &> /dev/null || : %changelog +* Sat May 2 2020 David Abdurachmanov - 3.51.1-2.0.riscv64 +- Fix RISC-V compilation errors + * Sat Apr 25 2020 Daiki Ueno - 3.51.1-2 - Temporarily revert DBM disablement for kernel build failure (#1827902)