svn commit: r519827 - in head/security/nss: . files
Piotr Kubaj
pkubaj at FreeBSD.org
Wed Dec 11 18:57:49 UTC 2019
Author: pkubaj
Date: Wed Dec 11 18:57:48 2019
New Revision: 519827
URL: https://svnweb.freebsd.org/changeset/ports/519827
Log:
security/nss: fix build on powerpc platforms
NSS 3.48 broke powerpc by using getauxval, which FreeBSD doesn't have. GCC9 is also required because of usage of VSX, which needs to be manually added for some files.
PR: 242521
Approved by: jbeich (maintainer)
Added:
head/security/nss/files/patch-bug1602386 (contents, props changed)
Modified:
head/security/nss/Makefile
Modified: head/security/nss/Makefile
==============================================================================
--- head/security/nss/Makefile Wed Dec 11 18:41:52 2019 (r519826)
+++ head/security/nss/Makefile Wed Dec 11 18:57:48 2019 (r519827)
@@ -55,8 +55,8 @@ BINS= ${DIST}/${OPSYS}${OSREL}_OPT.OBJ
BINS= ${DIST}/${OPSYS}${OSREL}_DBG.OBJ
.endif
-.if ${OPSYS} == FreeBSD && ${ARCH} == i386 && ! ${MACHINE_CPU:Msse2}
-USES+= compiler:c++14-lang # gcm.h
+.if ${ARCH} == powerpc64
+USES+= compiler:c++11-lang # -mcrypto -mvsx
.endif
.if ${OPSYS} == FreeBSD && ${ARCH} == amd64
Added: head/security/nss/files/patch-bug1602386
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/security/nss/files/patch-bug1602386 Wed Dec 11 18:57:48 2019 (r519827)
@@ -0,0 +1,49 @@
+Fix build on FreeBSD/powerpc platforms.
+
+https://bugzilla.mozilla.org/show_bug.cgi?id=1602386
+
+--- lib/freebl/Makefile.orig 2019-12-04 01:03:31.000000000 +0100
++++ lib/freebl/Makefile 2019-12-11 16:48:47.959791000 +0100
+@@ -788,5 +788,7 @@
+ endif
+
+ ifeq ($(CPU_ARCH),ppc)
+-$(OBJDIR)/$(PROG_PREFIX)gcm-ppc$(OBJ_SUFFIX): CFLAGS += -mcrypto -maltivec
++$(OBJDIR)/$(PROG_PREFIX)gcm-ppc$(OBJ_SUFFIX): CFLAGS += -mcrypto -maltivec -mvsx
++$(OBJDIR)/$(PROG_PREFIX)gcm$(OBJ_SUFFIX): CFLAGS += -mcrypto -maltivec -mvsx
++$(OBJDIR)/$(PROG_PREFIX)rijndael$(OBJ_SUFFIX): CFLAGS += -mcrypto -maltivec -mvsx
+ endif
+--- lib/freebl/blinit.c.orig 2019-12-11 17:45:06.930646000 +0100
++++ lib/freebl/blinit.c 2019-12-11 17:50:04.797680000 +0100
+@@ -393,7 +393,12 @@
+
+ #if defined(__powerpc__)
+
++#if defined(__FreeBSD__) && __FreeBSD__ < 12
++#include <sys/types.h>
++#include <sys/sysctl.h>
++#else
+ #include <sys/auxv.h>
++#endif
+
+ // Defines from cputable.h in Linux kernel - PPC, letting us build on older kernels
+ #ifndef PPC_FEATURE2_VEC_CRYPTO
+@@ -405,7 +410,17 @@
+ {
+ char *disable_hw_crypto = PR_GetEnvSecure("NSS_DISABLE_PPC_GHASH");
+
+- long hwcaps = getauxval(AT_HWCAP2);
++ unsigned long hwcaps = 0;
++#if defined(__linux__)
++ hwcaps = getauxval(AT_HWCAP2);
++#elif defined(__FreeBSD__)
++# if __FreeBSD__ >= 12
++ elf_aux_info(AT_HWCAP2, &hwcaps, sizeof(hwcaps));
++# else
++ size_t len = sizeof(hwcaps);
++ sysctlbyname("hw.cpu_features2", &hwcaps, &len, NULL, 0);
++# endif
++#endif
+
+ ppc_crypto_support_ = hwcaps & PPC_FEATURE2_VEC_CRYPTO && disable_hw_crypto == NULL;
+ }
More information about the svn-ports-all
mailing list