head -r340287 based powerpc64: multimedia/ffmpeg -r484273 gets a system-clang assert failure [reduced to 15 program]

Mark Millard marklmi at yahoo.com
Fri Nov 23 09:13:46 UTC 2018


[I isolated the compiler crash down to a 20 line program
that makes the assert fail.]

On 2018-Nov-22, at 13:03, Mark Millard <marklmi at yahoo.com> wrote:

> During a (native) poudriere-devel run I got the following failure.
> [Unfortunately clang and poudriere are mismatched for where the
> preprocessed source(s) and run script(s) are placed as far as
> what is in the poudriere tar archive produced. But I did have
> kern.corefile set so that the core file was captured.]
> 
> This happens to be on powerpc64 where I experiment with using
> fairly modern cc/c++ and the like. devel/powerpc64-xtoolchain-gcc
> was used for buildworld buildkernel and clang was built as cc.
> But the system binutils is from base/binutils . So not an official
> gcc 4.2.1 toolchain context, more of a futures-testing context.
> 
> The error report from clang (after 332 other ports had built):
> 
> 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 6.0.1 (tags/RELEASE_601/final 335540) (based on LLVM 6.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: 
> ********************
> 
> 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/vf_convolution-9639c0.c
> cc: note: diagnostic msg: /tmp/vf_convolution-9639c0.sh
> cc: note: diagnostic msg: 
> 
> ********************
> gmake[1]: *** [ffbuild/common.mak:60: libavfilter/vf_convolution.o] Error 254
> gmake[1]: *** Waiting for unfinished jobs....
> gmake[1]: Leaving directory '/wrkdirs/usr/ports/multimedia/ffmpeg/work/ffmpeg-4.1'
> ===> Compilation failed unexpectedly.
> Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
> the maintainer.
> *** Error code 1
> 
> . . .
> 

I isolated the system-clang crash down to a 15 line program
that makes the assert fail for the reduced command:

"/usr/bin/cc" "-cc1" "-emit-obj" "-target-cpu" "ppc64" "-O1" "-vectorize-loops" "vf_convolution-mmjnk.c"

( -O2 and -O3 also cause the failure. )

# more vf_convolution-mmjnk.c 
double  sqrt(double);

static void filter_sobel(unsigned char *dst, int width,
                         const unsigned char *c[])
{
    const unsigned char *c0 = c[0], *c1 = c[1];
    int x;

    for (x = 0; x < width; x++) {
        dst[x] = sqrt(c0[x] * -1 + c1[x] * -2);
    }
}

void (*mmjnk)(unsigned char *dst, int width,
                      const unsigned char *c[]) = filter_sobel;


The error reported is:

Assertion failed: (isSimple() && "Expected a SimpleValueType!"), function getSimpleVT, file /usr/src/contrib/llvm/include/llvm/CodeGen/ValueTypes.h, line 254.
Abort trap (core dumped)



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



More information about the freebsd-ppc mailing list