Bug 243245 - net/spread: fix build on powerpc64 elfv2
Summary: net/spread: fix build on powerpc64 elfv2
Status: New
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: powerpc Any
: --- Affects Only Me
Assignee: Piotr Kubaj
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-01-10 14:00 UTC by Piotr Kubaj
Modified: 2020-01-16 11:28 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (portmaster)


Attachments
patch (650 bytes, patch)
2020-01-10 14:00 UTC, Piotr Kubaj
pkubaj: maintainer-approval? (portmaster)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Piotr Kubaj freebsd_committer 2020-01-10 14:00:24 UTC
Created attachment 210593 [details]
patch

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/cc -cc1 -triple powerpc64-unknown-freebsd13.0 -emit-obj -disable-free -main-file-name Spread.c -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/spread/work/spread-src-3.17.4/perl/Spread/Spread.gcno -resource-dir /usr/lib/clang/9.0.1 -I ../.. -I ../spread-src-3.17.0/ -D VERSION="3.17.4.4" -D XS_VERSION="3.17.4.4" -D PIC -I /usr/local/lib/perl5/5.30/mach/CORE -O2 -fdebug-compilation-dir /wrkdirs/usr/ports/net/spread/work/spread-src-3.17.4/perl/Spread -ferror-limit 19 -fmessage-length 0 -stack-protector 2 -fno-signed-char -fobjc-runtime=gnustep -fdiagnostics-show-option -vectorize-loops -vectorize-slp -faddrsig -o Spread.o -x c Spread.c 
1.	<eof> parser at end of file
2.	Code generation
3.	Running pass 'Function Pass Manager' on module 'Spread.c'.
4.	Running pass 'PowerPC DAG->DAG Pattern Instruction Selection' on function '@XS_Spread_receive'
#0 0x000000001371df18 (/usr/bin/cc+0x1371df18)
#1 0x000000001371e594 (/usr/bin/cc+0x1371e594)
#2 0x000000001371b858 (/usr/bin/cc+0x1371b858)
#3 0x000000001371ed0c (/usr/bin/cc+0x1371ed0c)
#4 0x000000081520176c (/lib/libthr.so.3+0x1b76c)
cc: error: unable to execute command: Abort trap (core dumped)
cc: 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
cc: 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.
cc: note: diagnostic msg: 
********************

The workaround is to optimize for POWER7, which supports necessary features in hardware.