powerpc64 graphics/mesa-dri build failure in poudriere, system clang's /usr/bin/cc got assert failure: "Target supports vector op, but scalar requires expansion?"

Mark Millard marklmi at yahoo.com
Fri May 24 07:44:29 UTC 2019



On 2019-May-24, at 00:10, Ralf Wenk <iz-rpi03 at hs-karlsruhe.de> wrote:

> On 2019-05-23, at 12:31 -0700, Mark Millard wrote:
>> On 2019-May-23, at 11:47, Jan Beich <jbeich at FreeBSD.org> wrote:
>> 
>>> Mark Millard <marklmi at yahoo.com> writes:
>>> 
>>>> Unfortunately poudiere bulk tar archives of failures do not
>>>> catch the /tmp/* material from:
>>>> 
>>>> 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 8.0.0 (tags/RELEASE_800/final 356365) (based on LLVM 8.0.0)
>>>> Target: powerpc64-unknown-freebsd13.0
>>>> Thread model: posix
>>>> InstalledDir: /usr/bin
>>> 
>>> Do you have the build log? Maybe it's possible to reproduce simply by adding
>>> -target powerpc64-unknown-freebsd13.0 while cross-building that particular file
>>> using otherwise the same command line options as native build.
>> 
>> I have expanded the poudriere bulk's tar of the failure and rerun the
>> command from there. The problem reproduced:
>> 
>> # ls -lTdt /tmp/nir_constant_expressions-9b094e.*
>> -rw-r--r--  1 root  wheel    11069 May 23 12:08:35 2019 /tmp/nir_constant_expressions-9b094e.sh
>> -rw-r--r--  1 root  wheel  1951892 May 23 12:08:35 2019 /tmp/nir_constant_expressions-9b094e.c
>> 
>> 
>> So I gzip'd the .c and created:
>> 
>> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=238082
>> 
>> with the two files as 2 attachments.
> 
> This looks familiar to me. Is the kernel you are using at r348115 or newer?

No, based on head -r347549 :

# uname -apKU
FreeBSD FBSDG5L 13.0-CURRENT FreeBSD 13.0-CURRENT #0 r347549M: Wed May 22 15:14:43 PDT 2019     markmi at FBSDG5L:/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/powerpc.powerpc64/sys/GENERIC64vtsc-NODBG  powerpc powerpc64 1300025 1300025


> r348115 triggers such kind of "unable to execute" compiler errors on my
> system. See https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=238084

I've had no troubles with buildworld or buildkernel.

"Unable to execute" is very generic, meaning little more
than did-not-finish for whatever reason. In my case it
did not finish because:

	      assert(!TLI.isOperationLegalOrCustom(N->getOpcode(), WideVecVT) &&
	             "Target supports vector op, but scalar requires expansion?");

failed the test and assert called abort, whihc in  turn sent a
SIGABRT to the process. Nothing about this suggests a kernel
issue. It is more likely a error in handling code generation
related to powerpc64 vector operations.

I used the core file produced to get the backtrace via gdb:

Core was generated by `/usr/bin/cc -cc1 -triple powerpc64-unknown-freebsd13.0 -emit-obj -disable-free -'.
Program terminated with signal SIGABRT, Aborted.
#0  .__sys_thr_kill () at thr_kill.S:3
3	RSYSCALL(thr_kill)
(gdb) bt
#0  .__sys_thr_kill () at thr_kill.S:3
#1  0x00000000133072d0 in __raise (s=330578472) at /usr/src/lib/libc/gen/raise.c:52
#2  0x00000000132c7898 in abort () at /usr/src/lib/libc/stdlib/abort.c:79
#3  0x00000000132f6c64 in __assert (func=<optimized out>, file=<optimized out>, line=<optimized out>, failedexpr=<optimized out>) at /usr/src/lib/libc/gen/assert.c:51
#4  0x00000000130f7c18 in WidenVectorResult () at /usr/src/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp:2531
#5  0x0000000012ad91f0 in run () at /usr/src/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp:281
#6  0x0000000012adfa5c in LegalizeTypes () at /usr/src/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp:1115
#7  0x000000001297ebb4 in CodeGenAndEmitDAG () at /usr/src/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:776
#8  0x000000001297e114 in SelectBasicBlock () at /usr/src/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:669
#9  0x000000001297cbc4 in SelectAllBasicBlocks () at /usr/src/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1784
#10 0x0000000000000000 in ?? ()

But I build with debug symbols generally, even for optimized builds.

===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)



More information about the freebsd-ports mailing list