Re: 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 via freebsd-toolchain <[email protected]>
Newsgroups gmane.os.freebsd.devel.toolchain,gmane.os.freebsd.devel.ppc,gmane.os.freebsd.devel.ports
Message-ID <[email protected]>
[Just sending to toolchain and powerpc lists as well. Somehow I
missed listing them the first time I sent this out.]

On 2019-May-23, at 11:20, Mark Millard <marklmi at yahoo.com> wrote:

> From a poudriere bulk build in a powerpc64 context (old PowerMac)
> that was built with and uses system clang 8 and base/binutils
> instead of the gcc 4.2.1 toolchain. I got:
> 
> [09:05:56] [04] [00:14:42] Saved graphics/mesa-dri | mesa-dri-18.3.2_2 wrkdir to: /usr/local/poudriere/data/wrkdirs/FBSDpowerpc64-default/default/mesa-dri-18.3.2_2.tbz
> [09:05:57] [04] [00:14:43] Finished graphics/mesa-dri | mesa-dri-18.3.2_2: Failed: build
> [09:05:59] [04] [00:14:45] Skipping x11-drivers/xf86-input-keyboard | xf86-input-keyboard-1.9.0_3: Dependent port graphics/mesa-dri | mesa-dri-18.3.2_2 failed
> [09:05:59] [04] [00:14:45] Skipping x11-drivers/xf86-input-mouse | xf86-input-mouse-1.9.3_2: Dependent port graphics/mesa-dri | mesa-dri-18.3.2_2 failed
> [09:05:59] [04] [00:14:45] Skipping x11-drivers/xf86-video-scfb | xf86-video-scfb-0.0.4_7: Dependent port graphics/mesa-dri | mesa-dri-18.3.2_2 failed
> [09:05:59] [04] [00:14:45] Skipping x11-drivers/xf86-video-vesa | xf86-video-vesa-2.4.0_2: Dependent port graphics/mesa-dri | mesa-dri-18.3.2_2 failed
> [09:05:59] [04] [00:14:45] Skipping x11/xorg-minimal | xorg-minimal-7.5.2_2: Dependent port graphics/mesa-dri | mesa-dri-18.3.2_2 failed
> [09:05:59] [04] [00:14:45] Skipping x11-servers/xorg-server | xorg-server-1.18.4_11,1: Dependent port graphics/mesa-dri | mesa-dri-18.3.2_2 failed
> 
> I do have a backtrace:
> 
> . . .
> 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 ?? ()
> 
> (gdb) up 4
> #4  0x00000000130f7c18 in WidenVectorResult () at /usr/src/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp:2531
> 2531	      assert(!TLI.isOperationLegalOrCustom(N->getOpcode(), WideVecVT) &&
> 
> (gdb) list
> 2526	    // libcalls on the undef elements. We are assuming that if the scalar op
> 2527	    // requires expanding, then the vector op needs expanding too.
> 2528	    EVT VT = N->getValueType(0);
> 2529	    if (TLI.isOperationExpand(N->getOpcode(), VT.getScalarType())) {
> 2530	      EVT WideVecVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
> 2531	      assert(!TLI.isOperationLegalOrCustom(N->getOpcode(), WideVecVT) &&
> 2532	             "Target supports vector op, but scalar requires expansion?");
> 2533	      Res = DAG.UnrollVectorOp(N, WideVecVT.getVectorNumElements());
> 2534	      break;
> 2535	    }
> 
> 
> 
> 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
> 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: 
> ********************
> 
> PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
> Preprocessed source(s) and associated run script(s) are located at:
> cc: note: diagnostic msg: /tmp/nir_constant_expressions-b77016.c
> cc: note: diagnostic msg: /tmp/nir_constant_expressions-b77016.sh
> cc: note: diagnostic msg: 
> 
> ********************
> gmake[5]: *** [Makefile:2829: nir/nir_constant_expressions.lo] Error 1
> gmake[5]: *** Waiting for unfinished jobs....
> gmake[5]: Leaving directory '/wrkdirs/usr/ports/graphics/mesa-dri/work/mesa-18.3.2/src/compiler'


===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.