Comment 7 for bug 705689

Revision history for this message
Michael Casadevall (mcasadevall) wrote : Re: unity-2d-launcher crashes with segfault error on armel (natty only)

On a hunch that we're looking at a possible compiler regression, I recompiled the maverick Qt 4.7.0 source package against natty (and added the thumb2 patch attached below from the 4.7.1 package) and installed it on a working natty system which still developed a segfault.

Backtrace with 4.7.0 built on natty.

Program received signal SIGSEGV, Segmentation fault.
0x404695ba in operator int (this=0xe0ab10, parent=<value optimized out>)
    at ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h:85
85 return _q_value;
(gdb) bt
#0 0x404695ba in operator int (this=0xe0ab10,
    parent=<value optimized out>)
    at ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h:85
#1 qt_metatype_id (this=0xe0ab10, parent=<value optimized out>)
    at ../../include/QtGui/private/../../../src/gui/kernel/qgesture.h:56
#2 qt_metatype_id (this=0xe0ab10, parent=<value optimized out>)
    at ../../include/QtCore/../../src/corelib/kernel/qmetatype.h:222
#3 qMetaTypeId<Qt::GestureState> (this=0xe0ab10,
    parent=<value optimized out>)
    at ../../include/QtCore/../../src/corelib/kernel/qmetatype.h:232
#4 qRegisterMetaType<Qt::GestureState> (this=0xe0ab10,
    parent=<value optimized out>)
    at ../../include/QtCore/../../src/corelib/kernel/qmetatype.h:245
#5 QGestureManager::QGestureManager (this=0xe0ab10,
    parent=<value optimized out>) at kernel/qgesturemanager.cpp:76
#6 0x4042e0d2 in QGestureManager::instance ()
    at kernel/qapplication.cpp:5798
#7 0x4045dece in QWidget::grabGesture (this=<value optimized out>,
    gesture=Qt::PanGesture, flags=...) at kernel/qwidget.cpp:12066
#8 0x40705d18 in QAbstractScrollAreaPrivate::init (this=0xe1f4c0)
    at widgets/qabstractscrollarea.cpp:299
#9 0x40705dc8 in QAbstractScrollArea::QAbstractScrollArea (
    this=0xbe8d65b0, dd=<value optimized out>,
    parent=<value optimized out>) at widgets/qabstractscrollarea.cpp:493
#10 0x407ff78c in QGraphicsView::QGraphicsView (this=0xbe8d65b0,
    dd=<value optimized out>, parent=<value optimized out>)
    at graphicsview/qgraphicsview.cpp:1146
#11 0x40a07a8e in QDeclarativeView::QDeclarativeView (this=0xbe8d65b0,
    parent=0x0) at util/qdeclarativeview.cpp:254
#12 0x0000c796 in LauncherView::LauncherView() ()
#13 0x0000c050 in main ()

mcasadevall@risingsun:~$ cat src/qt4-x11-4.7.0/debian/patches/kubuntu_22_thumb2_support.diff
Provide Thumb2 support on armel - See LP Bug #673085 for details
Index: qt-everywhere-opensource-src-4.7.1/src/corelib/arch/qatomic_armv6.h
===================================================================
--- qt-everywhere-opensource-src-4.7.1.orig/src/corelib/arch/qatomic_armv6.h2010-11-06 01:55:18.000000000 +0000
+++ qt-everywhere-opensource-src-4.7.1/src/corelib/arch/qatomic_armv6.h 2010-11-16 17:58:27.831286420 +0000
@@ -144,6 +144,7 @@
     asm volatile("0:\n"
                  "ldrex %[result], [%[_q_value]]\n"
                  "eors %[result], %[result], %[expectedValue]\n"
+ "itt eq\n"
                  "strexeq %[result], %[newValue], [%[_q_value]]\n"
                  "teqeq %[result], #1\n"
                  "beq 0b\n"
@@ -202,6 +203,7 @@
     asm volatile("0:\n"
                  "ldrex %[result], [%[_q_value]]\n"
                  "eors %[result], %[result], %[expectedValue]\n"
+ "itt eq\n"
                  "strexeq %[result], %[newValue], [%[_q_value]]\n"
                  "teqeq %[result], #1\n"
                  "beq 0b\n"

Will attempt building natty's Qt on maverick to confirm compiler regression.