If dev-qt/qtdeclarative-5.6.0 (USE="jit widgets xml") is built with gcc-6.1.0, the KDE plasma5 splash animation hangs at the the end for about 30 seconds and fades to a black screen. The only visible element is the movable mouse cursor. The following extra lines exist in ~/.xsession-errors: > KCrash: Attempting to start /usr/bin/plasmashell from kdeinit > KCrash: Application 'plasmashell' crashing... > KCrash: Attempting to start /usr/lib64/libexec/drkonqi from kdeinit > KCrash: Attempting to start /usr/bin/krunner from kdeinit > KCrash: Application 'krunner' crashing... > KCrash: Attempting to start /usr/lib64/libexec/drkonqi from kdeinit
Created attachment 436130 [details] emerge --info
Created attachment 436132 [details] xsession-errors
There is a suggestion to try here: https://bugs.gentoo.org/show_bug.cgi?id=581434#c4
There are a few known upstream bugs in qtdeclarative related to gcc6... https://bugreports.qt.io/browse/QTBUG-52057 https://bugreports.qt.io/browse/QTBUG-53373
I can confirm "-flifetime-dse=1" fixes the issue but it's a band-aid over the problem. I tried to compile with "-fsanitize=undefined" in my CXXFLAGS and "-lubsan" in my LDFLAGS but the build fails with: > .obj/qquickimageparticle.o(.data.rel+0x2b18): error: undefined reference to 'typeinfo for QQuickSprite'
Apparently, it's patched upstream as a temporary workaround: http://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=18e77550f149722e0554f24ddfa326e03a9fef10 I can confirm that it resolves this issue.
-fno-delete-null-pointer-checks fixes a totally different kind of issue than -flifetime-dse=1. They are not related at all. Furthemore -fsanitize=undefined will _not_ point out any -flifetime-dse=2 issues. So one could argue that it was premature to enable this optimization before there was a correspondent sanitizer.
(In reply to octoploid from comment #7) > -fno-delete-null-pointer-checks fixes a totally different kind of issue > than -flifetime-dse=1. They are not related at all. If I'm reading it right, according to: https://bugreports.qt.io/browse/QTBUG-52057?focusedCommentId=321609&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-321609 "-fno-delete-null-pointer-checks" solves the problem on x86_64 but not on i686 and "-fno-lifetime-dse" seems to fix the issue on both. So a GCC bug may be involved as well.
(In reply to Peter Levine from comment #8) > So a GCC bug may be involved as well. No, QT invokes undefined behavior in both cases. So it is clearly _not_ a gcc bug. Once the UB gets fixed in QT, there will be no more crashes...
5.6.1, which contains a workaround, is now in tree.