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

Siarhei Siamashka siarhei.siamashka at gmail.com
Tue Nov 12 15:37:42 PST 2013


On Tue, 12 Nov 2013 11:50:59 -0800
Matt Turner <mattst88 at gmail.com> wrote:

> 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
> different).
> 
> Do we need some kind of configure check to make sure that our use of
> gcc's vector extensions is actually going to work?

git bisect blames the commit "utils.c: On x86-32 unalign the stack
before calling test_function":

    http://cgit.freedesktop.org/pixman/commit/?id=3dce229772354877ef29

(with gcc 4.7.2 and using export CFLAGS="-O2 -m32" before configure)

-- 
Best regards,
Siarhei Siamashka


More information about the Pixman mailing list