Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Dec 2019 18:57:48 +0000 (UTC)
From:      Piotr Kubaj <pkubaj@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r519827 - in head/security/nss: . files
Message-ID:  <201912111857.xBBIvm60025791@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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;
+ }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201912111857.xBBIvm60025791>