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>