Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Jan 2020 21:09:43 +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: r523941 - head/net/norm
Message-ID:  <202001232109.00NL9heD040731@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pkubaj
Date: Thu Jan 23 21:09:43 2020
New Revision: 523941
URL: https://svnweb.freebsd.org/changeset/ports/523941

Log:
  net/norm: fix build on powerpc64 elfv2
  
  On ELFv2 ABI Clang can't build this port by default and throws assertion (already reported):
  Assertion failed: ((Op.getOpcode() == ISD::FP_TO_SINT || Subtarget.hasFPCVT()) && "i64 FP_TO_UINT is supported only with FPCVT"), function LowerFP_TO_INTForReuse, file /poudriere/jails/powerpc64-elfv2-pkubaj/usr/src/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCISelLowering.cpp, line 7281.
  Stack dump:
  0.	Program arguments: /usr/bin/c++ -cc1 -triple powerpc64-unknown-freebsd13.0 -emit-obj -disable-free -main-file-name protoDispatcher.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -relaxed-aliasing -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu ppc64 -target-feature +secure-plt -mfloat-abi hard -dwarf-column-info -debugger-tuning=gdb -momit-leaf-frame-pointer -coverage-notes-file /wrkdirs/usr/ports/net/norm/work/norm-1.5r6/build/protolib/src/common/protoDispatcher.cpp.1.gcno -resource-dir /usr/lib/clang/9.0.1 -I /wrkdirs/usr/ports/net/norm/work/norm-1.5r6/build/protolib/include -I /wrkdirs/usr/ports/net/norm/work/norm-1.5r6/protolib/include -I /wrkdirs/usr/ports/net/norm/work/norm-1.5r6/build/protolib/include/unix -I /wrkdirs/usr/ports/net/norm/work/norm-1.5r6/protolib/include/unix -D UNIX -D HAVE_DIRFD -D HAVE_IPV6 -D HAVE_ASSERT -D HAVE_GETLOGIN -D HAVE_FLOCK -D NDEBUG -internal-isystem /usr/include/c++/v1 -O3 -fdeprecated-macro -f
 debug-compilation-dir /wrkdirs/usr/ports/net/norm/work/norm-1.5r6/build -ferror-limit 19 -fmessage-length 0 -stack-protector 2 -fno-signed-char -fobjc-runtime=gnustep -fcxx-exceptions -fexceptions -fdiagnostics-show-option -vectorize-loops -vectorize-slp -faddrsig -o /wrkdirs/usr/ports/net/norm/work/norm-1.5r6/build/protolib/src/common/protoDispatcher.cpp.1.o -x c++ ../protolib/src/common/protoDispatcher.cpp
  1.	<eof> parser at end of file
  2.	Code generation
  3.	Running pass 'Function Pass Manager' on module '../protolib/src/common/protoDispatcher.cpp'.
  4.	Running pass 'PowerPC DAG->DAG Pattern Instruction Selection' on function '@_ZN15ProtoDispatcher4WaitEv'
  #0 0x000000001371df18 (/usr/bin/c+++0x1371df18)
  #1 0x000000001371e594 (/usr/bin/c+++0x1371e594)
  #2 0x000000001371b858 (/usr/bin/c+++0x1371b858)
  #3 0x000000001371ed0c (/usr/bin/c+++0x1371ed0c)
  #4 0x000000081520176c (/lib/libthr.so.3+0x1b76c)
  c++: error: unable to execute command: Abort trap (core dumped)
  c++: error: clang frontend command failed due to signal (use -v to see invocation)
  FreeBSD clang version 9.0.1 (git@github.com:llvm/llvm-project.git c1a0a213378a458fbea1a5c77b315c7dce08fd05) (based on LLVM 9.0.1)
  Target: powerpc64-unknown-freebsd13.0
  Thread model: posix
  InstalledDir: /usr/bin
  c++: note: diagnostic msg: PLEASE submit a bug report to https://bugs.freebsd.org/submit/ and include the crash backtrace, preprocessed source, and associated run script.
  c++: note: diagnostic msg:
  
  The workaround is to optimize for POWER7, which supports necessary features in hardware. This will break run-time for older CPU's, but at least we can get this port running on POWER7 and newer.
  
  PR:		243227
  Approved by:	hd@oc.dk (maintainer timeout)

Modified:
  head/net/norm/Makefile

Modified: head/net/norm/Makefile
==============================================================================
--- head/net/norm/Makefile	Thu Jan 23 21:08:55 2020	(r523940)
+++ head/net/norm/Makefile	Thu Jan 23 21:09:43 2020	(r523941)
@@ -20,6 +20,12 @@ USE_LDCONFIG=	yes
 PLIST_FILES=	include/normApi.h lib/libnorm.so lib/libnorm.so.1 \
 		lib/libnorm.so.1.0.0
 
+.include <bsd.port.pre.mk>
+
+.if defined(PPC_ABI) && ${PPC_ABI} == ELFv2
+CXXFLAGS+=	-mcpu=power7
+.endif
+
 post-extract:
 	${CP} ${DISTDIR}/waf-2.0.19 ${WRKSRC}/waf
 
@@ -27,4 +33,4 @@ post-install:
 	${INSTALL_DATA} ${WRKSRC}/include/normApi.h ${STAGEDIR}${PREFIX}/include/
 	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libnorm.so.1.0.0
 
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>



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