Summary: | <dev-qt/qtdeclarative-5.6.1 crashes when built with gcc-6 (KCrash: Application 'plasmashell' crashing) | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Peter Levine <plevine457> |
Component: | [OLD] GCC Porting | Assignee: | Qt Bug Alias <qt> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | octoploid, plevine457 |
Priority: | Normal | Keywords: | UPSTREAM |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 582084 | ||
Attachments: |
emerge --info
xsession-errors |
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. |
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