nss: fix for x32

This was casting to a pointer, and the pointer sizes are 32-bit on X32, not
64-bit. Adjust as appropriate.

(From OE-Core rev: d9dca61ed26af166df913f34bdce3f2830682b33)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Christopher Larson
2016-12-13 20:08:03 -07:00
committed by Richard Purdie
parent 602b185811
commit 0e74dff7e9
2 changed files with 32 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
From c8eadfcdfbc1d5a4799e9a264b0f859cb5954c05 Mon Sep 17 00:00:00 2001
From: Christopher Larson <chris_larson@mentor.com>
Date: Tue, 13 Dec 2016 11:40:47 -0700
Subject: [PATCH 7/7] Fix compilation for X32
X32 uses 32-bit pointers, not 64-bit.
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
---
nss/lib/freebl/poly1305-donna-x64-sse2-incremental-source.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/nss/lib/freebl/poly1305-donna-x64-sse2-incremental-source.c b/nss/lib/freebl/poly1305-donna-x64-sse2-incremental-source.c
index 2a3301e..d4ade41 100644
--- a/nss/lib/freebl/poly1305-donna-x64-sse2-incremental-source.c
+++ b/nss/lib/freebl/poly1305-donna-x64-sse2-incremental-source.c
@@ -87,7 +87,11 @@ static poly1305_state_internal INLINE
*
poly1305_aligned_state(poly1305_state *state)
{
+#ifdef __ILP32__
+ return (poly1305_state_internal *)(((uint32_t)state + 63) & ~63);
+#else
return (poly1305_state_internal *)(((uint64_t)state + 63) & ~63);
+#endif
}
/* copy 0-63 bytes */
--
2.8.0

View File

@@ -22,6 +22,7 @@ SRC_URI = "\
file://nss-fix-nsinstall-build.patch \
file://disable-Wvarargs-with-clang.patch \
file://pqg.c-ULL_addend.patch \
file://Fix-compilation-for-X32.patch \
file://nss.pc.in \
file://signlibs.sh \
"