[Pixman] Test suite failures on 32-bit x86?

Matt Turner mattst88 at gmail.com
Tue Nov 12 11:50:59 PST 2013

Building the 0.32.2 release and from git with

CC="gcc -m32" ./autogen.sh && make check

PASS: prng-test
PASS: a1-trap-test
PASS: region-translate-test
PASS: pdf-op-test
PASS: region-test
PASS: fetch-test
../test-driver: line 95:  3312 Segmentation fault      "$@" > $log_file 2>&1
FAIL: rotate-test
PASS: oob-test
PASS: infinite-loop
PASS: combiner-test
PASS: pixel-test
PASS: trap-crasher
PASS: alpha-loop
PASS: thread-test
PASS: scaling-helpers-test
PASS: scaling-crash-test
../test-driver: line 95:  3571 Segmentation fault      "$@" > $log_file 2>&1
FAIL: matrix-test
PASS: gradient-crash-test
../test-driver: line 95:  3637 Segmentation fault      "$@" > $log_file 2>&1
FAIL: blitters-test
../test-driver: line 95:  3659 Segmentation fault      "$@" > $log_file 2>&1
FAIL: glyph-test
../test-driver: line 95:  3681 Segmentation fault      "$@" > $log_file 2>&1
FAIL: scaling-test
../test-driver: line 95:  3703 Segmentation fault      "$@" > $log_file 2>&1
FAIL: affine-test
PASS: alphamap
PASS: composite-traps-test
PASS: region-contains-test
PASS: stress-test
PASS: composite

Manually running the tests shows that they all crash in
prng_rand_128_r (utils-prng.h:138):

> uint32x4 e = x->a - ((x->b << 27) + (x->b >> (32 - 27)));

which is code inside an #ifdef GCC_VECTOR_EXTENSIONS_SUPPORTED block.

I realize this may be a gcc bug, so I tested with 4.8.1 and 4.7.2 and
got the same results. Testing with 4.6.3 leads to only a single
failure, in matrix-test (with a different backtrace, so probably

Do we need some kind of configure check to make sure that our use of
gcc's vector extensions is actually going to work?

More information about the Pixman mailing list