Bug 250956

Summary: security/nss: does not build for armv6
Product: Ports & Packages Reporter: Sean Rees <sean>
Component: Individual Port(s)Assignee: freebsd-gecko (Nobody) <gecko>
Status: Closed FIXED    
Severity: Affects Only Me CC: mikael, vince
Priority: --- Flags: bugzilla: maintainer-feedback? (gecko)
Version: Latest   
Hardware: arm   
OS: Any   
Attachments:
Description Flags
Patch to disable NEON on armv6
none
Successful build log with the linked patch none

Description Sean Rees 2020-11-08 16:01:17 UTC
Created attachment 219460 [details]
Patch to disable NEON on armv6

The port fails trying to build NEON support, on a compiler that doesn't know how. I've attached a patch that disables NEON on armv6, which builds successfully.

Host: 12.2-RELEASE/amd64
Target: 12.2-RELEASE/armv6 via poudriere & QEMU

Error message:

cc -o FreeBSD12.2_OPT.OBJ/FreeBSD_SINGLE_SHLIB/gcm-arm32-neon.o -c -std=c99 -O -pipe  -I/usr/local/include/nspr -Wno-error=unused-function -fstack-protector-strong -fno-strict-aliasing   -fPIC -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -Wall -Wshadow -Qunused-arguments -Wno-parentheses-equality -Wno-array-bounds -Wno-unevaluated-expression -DNSS_NO_GCC48 -DXP_UNIX -UDEBUG -DNDEBUG -D_THREAD_SAFE -D_REENTRANT -DNSS_DISABLE_AVX2 -DNSS_NO_INIT_SUPPORT -DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -I./../dist/FreeBSD12.2_OPT.OBJ/include -I./../dist/public/ -I./../dist/private/   -fPIC -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -Wall -Wshadow -Qunused-arguments -Wno-parentheses-equality -Wno-array-bounds -Wno-unevaluated-expression -DNSS_NO_GCC48 -DXP_UNIX -UDEBUG -DNDEBUG -D_THREAD_SAFE -D_REENTRANT -DNSS_DISABLE_AVX2 -DNSS_NO_INIT_SUPPORT -DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -I./../dist/FreeBSD12.2_OPT.OBJ/include -I./../dist/public/ -I./../dist/private/   -fPIC -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -Wall -Wshadow -Qunused-arguments -Wno-parentheses-equality -Wno-array-bounds -Wno-unevaluated-expression -DNSS_NO_GCC48 -DXP_UNIX -UDEBUG -DNDEBUG -D_THREAD_SAFE -D_REENTRANT -DNSS_DISABLE_AVX2 -DNSS_NO_INIT_SUPPORT -DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -I../../dist/FreeBSD12.2_OPT.OBJ/include -I../../dist/public/ -I../../dist/private/   -fPIC -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -Wall -Wshadow -Qunused-arguments -Wno-parentheses-equality -Wno-array-bounds -Wno-unevaluated-expression -DNSS_NO_GCC48 -DXP_UNIX -DSHLIB_SUFFIX=\"so\" -DSHLIB_PREFIX=\"lib\" -DSHLIB_VERSION=\"3\" -DSOFTOKEN_SHLIB_VERSION=\"3\" -DRIJNDAEL_INCLUDE_TABLES -UDEBUG -DNDEBUG -D_THREAD_SAFE -D_REENTRANT -DNSS_DISABLE_AVX2 -DNSS_NO_INIT_SUPPORT -DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -DFREEBL_LOWHASH -DUSE_HW_AES -DUSE_HW_SHA1 -DUSE_HW_SHA2 -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE -DMP_USE_UINT_DIGIT -DSHA_NO_LONG_LONG  -DKRML_VERIFIED_UINT128 -DMP_API_COMPATIBLE -I../../../dist/FreeBSD12.2_OPT.OBJ/include -I../../../dist/public/nss -I../../../dist/private/nss -Impi -Iecl -Iverified -Iverified/kremlin/include -Iverified/kremlin/kremlib/dist/minimal -Ideprecated   -fPIC -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -Wall -Wshadow -Qunused-arguments -Wno-parentheses-equality -Wno-array-bounds -Wno-unevaluated-expression -DNSS_NO_GCC48 -DXP_UNIX -DSHLIB_SUFFIX=\"so\" -DSHLIB_PREFIX=\"lib\" -DSHLIB_VERSION=\"3\" -DSOFTOKEN_SHLIB_VERSION=\"3\" -DRIJNDAEL_INCLUDE_TABLES -UDEBUG -DNDEBUG -D_THREAD_SAFE -D_REENTRANT -DNSS_DISABLE_AVX2 -DNSS_NO_INIT_SUPPORT -DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -DFREEBL_LOWHASH -DUSE_HW_AES -DUSE_HW_SHA1 -DUSE_HW_SHA2 -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE -DMP_USE_UINT_DIGIT -DSHA_NO_LONG_LONG  -DKRML_VERIFIED_UINT128 -DMP_API_COMPATIBLE -I../../../dist/FreeBSD12.2_OPT.OBJ/include -I../../../dist/public/nss -I../../../dist/private/nss -Impi -Iecl -Iverified -Iverified/kremlin/include -Iverified/kremlin/kremlib/dist/minimal -Ideprecated  -mfpu=neon gcm-arm32-neon.c
In file included from gcm-arm32-neon.c:16:
/usr/lib/clang/10.0.1/include/arm_neon.h:28:2: error: "NEON support not enabled"
#error "NEON support not enabled"
 ^
1 error generated.
gmake[5]: *** [../../coreconf/rules.mk:292: FreeBSD12.2_OPT.OBJ/FreeBSD_SINGLE_SHLIB/gcm-arm32-neon.o] Error 1
Comment 1 Sean Rees 2020-11-08 16:02:38 UTC
Created attachment 219461 [details]
Successful build log with the linked patch

Build log (gzip to get under size) of successful build with my patch
Comment 2 commit-hook freebsd_committer 2021-02-28 15:06:39 UTC
A commit references this bug:

Author: mikael
Date: Sun Feb 28 15:05:56 UTC 2021
New revision: 566771
URL: https://svnweb.freebsd.org/changeset/ports/566771

Log:
  security/nss: Fix build on armv6

  PR:		250956
  Submitted by:	Sean Rees

Changes:
  head/security/nss/Makefile
Comment 3 Mikael Urankar freebsd_committer 2021-02-28 15:11:26 UTC
Thanks!