Summary: | make check fails on ARMv7 (GCC 4.9 wrong-code compiler bug) | ||
---|---|---|---|
Product: | pixman | Reporter: | Peter <pbrobinson> |
Component: | pixman | Assignee: | Søren Sandmann Pedersen <soren.sandmann> |
Status: | RESOLVED MOVED | QA Contact: | Søren Sandmann Pedersen <soren.sandmann> |
Severity: | normal | ||
Priority: | medium | CC: | siarhei.siamashka |
Version: | other | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Peter
2014-07-11 12:01:33 UTC
Thanks for the bug report. It's difficult to say what's going on without a way to reproduce, but a few questions that may shed some light: - On ARMv7, does PIXMAN_DISABLE=arm-neon make check still fail? - On ppc64le, does PIXMAN_DISABLE=vmx make check still fail? - Is the hardware known to be unreliable? When I was at Red Hat I remember some of the ARM hardware having issues. It is especially suspicious that the matrix-test is failing. - Are the same tests failing on both ppc64le and ARMv7? > - On ARMv7, does > > PIXMAN_DISABLE=arm-neon make check > > still fail? Yes, see output below > - Is the hardware known to be unreliable? When I was at Red Hat I remember > some of the ARM hardware having issues. It is especially suspicious that > the matrix-test is failing. The hardware is fine, not sure of the issues you are referring to. We've not had many issues other than actual power with the ARM builders for some time. Even when there were issues they were more due to being low end and running off SD cards as opposed to any reliability with compiling of code. Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.BHW3nq + umask 022 + cd /builddir/build/BUILD + cd pixman-0.32.6 + PIXMAN_DISABLE=arm-neon + make check -j4 V=1 Making check in pixman make[1]: Entering directory '/builddir/build/BUILD/pixman-0.32.6/pixman' make[1]: Nothing to be done for 'check'. make[1]: Leaving directory '/builddir/build/BUILD/pixman-0.32.6/pixman' Making check in demos make[1]: Entering directory '/builddir/build/BUILD/pixman-0.32.6/demos' make[1]: Nothing to be done for 'check'. make[1]: Leaving directory '/builddir/build/BUILD/pixman-0.32.6/demos' Making check in test make[1]: Entering directory '/builddir/build/BUILD/pixman-0.32.6/test' make check-TESTS make[2]: Entering directory '/builddir/build/BUILD/pixman-0.32.6/test' make[3]: Entering directory '/builddir/build/BUILD/pixman-0.32.6/test' PASS: a1-trap-test PASS: prng-test PASS: pdf-op-test PASS: region-test PASS: region-translate-test PASS: combiner-test PASS: fetch-test PASS: pixel-test PASS: oob-test PASS: infinite-loop PASS: trap-crasher PASS: alpha-loop FAIL: thread-test PASS: rotate-test PASS: scaling-crash-test PASS: scaling-helpers-test PASS: gradient-crash-test FAIL: matrix-test PASS: alphamap FAIL: composite-traps-test PASS: region-contains-test FAIL: glyph-test PASS: stress-test FAIL: blitters-test FAIL: affine-test FAIL: scaling-test PASS: composite make[4]: Entering directory '/builddir/build/BUILD/pixman-0.32.6/test' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/builddir/build/BUILD/pixman-0.32.6/test' ============================================================================ Testsuite summary for pixman 0.32.6 ============================================================================ # TOTAL: 27 # PASS: 20 # SKIP: 0 # XFAIL: 0 # FAIL: 7 # XPASS: 0 # ERROR: 0 ============================================================================ See test/test-suite.log Please report to pixman@lists.freedesktop.org ============================================================================ Makefile:1113: recipe for target 'test-suite.log' failed make[3]: Leaving directory '/builddir/build/BUILD/pixman-0.32.6/test' Makefile:1219: recipe for target 'check-TESTS' failed make[2]: Leaving directory '/builddir/build/BUILD/pixman-0.32.6/test' Makefile:1474: recipe for target 'check-am' failed make[1]: Leaving directory '/builddir/build/BUILD/pixman-0.32.6/test' make[3]: *** [test-suite.log] Error 1 make[2]: *** [check-TESTS] Error 2 make[1]: *** [check-am] Error 2 make: *** [check-recursive] Error 1 > - On ppc64le, does
>
> PIXMAN_DISABLE=vmx make check
>
> still fail?
All pass work vmx disabled
Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.10JUrM
+ umask 022
+ cd /builddir/build/BUILD
+ cd pixman-0.32.6
+ PIXMAN_DISABLE=vmx
+ make check -j16 V=1
Making check in pixman
make[1]: Entering directory '/builddir/build/BUILD/pixman-0.32.6/pixman'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/builddir/build/BUILD/pixman-0.32.6/pixman'
Making check in demos
make[1]: Entering directory '/builddir/build/BUILD/pixman-0.32.6/demos'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/builddir/build/BUILD/pixman-0.32.6/demos'
Making check in test
make[1]: Entering directory '/builddir/build/BUILD/pixman-0.32.6/test'
make check-TESTS
make[2]: Entering directory '/builddir/build/BUILD/pixman-0.32.6/test'
make[3]: Entering directory '/builddir/build/BUILD/pixman-0.32.6/test'
PASS: infinite-loop
PASS: fetch-test
PASS: region-translate-test
PASS: oob-test
PASS: trap-crasher
PASS: prng-test
PASS: combiner-test
PASS: pdf-op-test
PASS: a1-trap-test
PASS: alpha-loop
PASS: region-test
PASS: pixel-test
PASS: scaling-crash-test
PASS: rotate-test
PASS: scaling-helpers-test
PASS: thread-test
PASS: matrix-test
PASS: gradient-crash-test
PASS: composite-traps-test
PASS: alphamap
PASS: region-contains-test
PASS: glyph-test
PASS: affine-test
PASS: scaling-test
PASS: composite
PASS: blitters-test
PASS: stress-test
make[4]: Entering directory '/builddir/build/BUILD/pixman-0.32.6/test'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/builddir/build/BUILD/pixman-0.32.6/test'
============================================================================
Testsuite summary for pixman 0.32.6
============================================================================
# TOTAL: 27
# PASS: 27
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 0
============================================================================
make[3]: Leaving directory '/builddir/build/BUILD/pixman-0.32.6/test'
make[2]: Leaving directory '/builddir/build/BUILD/pixman-0.32.6/test'
make[1]: Leaving directory '/builddir/build/BUILD/pixman-0.32.6/test'
make[1]: Entering directory '/builddir/build/BUILD/pixman-0.32.6'
make[1]: Nothing to be done for 'check-am'.
make[1]: Leaving directory '/builddir/build/BUILD/pixman-0.32.6'
+ exit 0
So running make check on ARMv7 (no means of doing it on ppc64le) on Fedora 20 (gcc 4.8.3 / glibc 2.18) passes compared to F-21 (gcc 4.9.1 / glibc 2.19.90). Only change in CFLAGS is addition of -Werror=format-security Not sure if that helps PASS: prng-test PASS: a1-trap-test PASS: pdf-op-test PASS: region-test PASS: region-translate-test PASS: combiner-test PASS: fetch-test PASS: pixel-test PASS: infinite-loop PASS: trap-crasher PASS: oob-test PASS: rotate-test PASS: alpha-loop PASS: thread-test PASS: scaling-crash-test PASS: scaling-helpers-test PASS: gradient-crash-test PASS: matrix-test PASS: alphamap PASS: composite-traps-test PASS: region-contains-test PASS: glyph-test PASS: sress-test PASS: blitters-test PASS: affine-test PASS: scaling-test PASS: composite make[4]: Entering directory `/builddir/build/BUILD/pixman-0.32.6/test' make[4]: Nothing to be done for `all'. make[4]: Leaving directory `/builddir/build/BUILD/pixman-0.32.6/test' ============================================================================ Testsuite summary for pixman 0.32.6 ============================================================================ # TOTAL: 27 # PASS: 27 # SKIP: 0 # XFAIL: 0 # FAIL: 0 # XPASS: 0 # ERROR: 0 ============================================================================ make[3]: Leaving directory `/builddir/build/BUILD/pixman-0.32.6/test' make[2]: Leaving directory `/builddir/build/BUILD/pixman-0.32.6/test' make[1]: Leaving directory `/builddir/build/BUILD/pixman-0.32.6/test' make[1]: Entering directory `/builddir/build/BUILD/pixman-0.32.6' make[1]: Leaving directory `/builddir/build/BUILD/pixman-0.32.6' (In reply to comment #4) > So running make check on ARMv7 (no means of doing it on ppc64le) on Fedora > 20 (gcc 4.8.3 / glibc 2.18) passes compared to F-21 (gcc 4.9.1 / glibc > 2.19.90). Only change in CFLAGS is addition of -Werror=format-security > > Not sure if that helps Well, that certainly points towards either a compiler bug or possibly pixman relying on undefined behavior somewhere. It's hard to say which without hardware to test on. (In reply to comment #3) > > - On ppc64le, does > > > > PIXMAN_DISABLE=vmx make check > > > > still fail? > > All pass work vmx disabled It is possible that the vmx code in pixman is just making some big endian assumptions. This either needs to be properly fixed or somebody can try to make a simple patch to disable the vmx code path on ppc64le. (In reply to comment #5) > (In reply to comment #4) > > So running make check on ARMv7 (no means of doing it on ppc64le) on Fedora > > 20 (gcc 4.8.3 / glibc 2.18) passes compared to F-21 (gcc 4.9.1 / glibc > > 2.19.90). Only change in CFLAGS is addition of -Werror=format-security > > > > Not sure if that helps > > Well, that certainly points towards either a compiler bug or possibly pixman > relying on undefined behavior somewhere. It's hard to say which without > hardware to test on. Out of curiosity, which version of gcc was used on the system with pixman test failures? > > > So running make check on ARMv7 (no means of doing it on ppc64le) on Fedora
> > > 20 (gcc 4.8.3 / glibc 2.18) passes compared to F-21 (gcc 4.9.1 / glibc
> > > 2.19.90). Only change in CFLAGS is addition of -Werror=format-security
> > >
> > > Not sure if that helps
> >
> > Well, that certainly points towards either a compiler bug or possibly pixman
> > relying on undefined behavior somewhere. It's hard to say which without
> > hardware to test on.
>
> Out of curiosity, which version of gcc was used on the system with pixman
> test failures?
It's documented above in the comments which you quote :)
(In reply to Peter from comment #8) > > > > So running make check on ARMv7 (no means of doing it on ppc64le) on Fedora > > > > 20 (gcc 4.8.3 / glibc 2.18) passes compared to F-21 (gcc 4.9.1 / glibc > > > > 2.19.90). Only change in CFLAGS is addition of -Werror=format-security > > > > > > > > Not sure if that helps > > > > > > Well, that certainly points towards either a compiler bug or possibly pixman > > > relying on undefined behavior somewhere. It's hard to say which without > > > hardware to test on. > > > > Out of curiosity, which version of gcc was used on the system with pixman > > test failures? > > It's documented above in the comments which you quote :) Yes, sure :) Also managed to reproduce it here. This looks like a problem in GCC 4.9.x - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64172 This bug only affects the PRNG code from the test suite, but the pixman library itself should be fine. Seems like a workaround is going to be reasonably simple. There is one more GCC 4.9.x problem in the pixman arm-iwmmxt code, which fails with an internal compiler error, as reported in the pixman mailing list: http://lists.freedesktop.org/archives/pixman/2014-December/003462.html It is better to track the PPC64le problem separately (because it is unrelated to ARMv7) - https://bugs.freedesktop.org/show_bug.cgi?id=87001 PPC64le problems were solved as of release pixman-0.33.2 -- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/pixman/pixman/issues/18. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.