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 ()
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. QtCore/ ../../src/ corelib/ thread/ qbasicatomic. h:85 QtCore/ ../../src/ corelib/ thread/ qbasicatomic. h:85 QtGui/private/ ../../. ./src/gui/ kernel/ qgesture. h:56 QtCore/ ../../src/ corelib/ kernel/ qmetatype. h:222 Qt::GestureStat e> (this=0xe0ab10, QtCore/ ../../src/ corelib/ kernel/ qmetatype. h:232 pe<Qt:: GestureState> (this=0xe0ab10, QtCore/ ../../src/ corelib/ kernel/ qmetatype. h:245 ::QGestureManag er (this=0xe0ab10, qgesturemanager .cpp:76 ::instance () qapplication. cpp:5798 :grabGesture (this=<value optimized out>, Qt::PanGesture, flags=...) at kernel/ qwidget. cpp:12066 AreaPrivate: :init (this=0xe1f4c0) qabstractscroll area.cpp: 299 Area::QAbstract ScrollArea ( 0xbe8d65b0, dd=<value optimized out>, qabstractscroll area.cpp: 493 :QGraphicsView (this=0xbe8d65b0, qgraphicsview. cpp:1146 w::QDeclarative View (this=0xbe8d65b0, veview. cpp:254 :LauncherView( ) ()
0x404695ba in operator int (this=0xe0ab10, parent=<value optimized out>)
at ../../include/
85 return _q_value;
(gdb) bt
#0 0x404695ba in operator int (this=0xe0ab10,
parent=<value optimized out>)
at ../../include/
#1 qt_metatype_id (this=0xe0ab10, parent=<value optimized out>)
at ../../include/
#2 qt_metatype_id (this=0xe0ab10, parent=<value optimized out>)
at ../../include/
#3 qMetaTypeId<
parent=<value optimized out>)
at ../../include/
#4 qRegisterMetaTy
parent=<value optimized out>)
at ../../include/
#5 QGestureManager
parent=<value optimized out>) at kernel/
#6 0x4042e0d2 in QGestureManager
at kernel/
#7 0x4045dece in QWidget:
gesture=
#8 0x40705d18 in QAbstractScroll
at widgets/
#9 0x40705dc8 in QAbstractScroll
this=
parent=<value optimized out>) at widgets/
#10 0x407ff78c in QGraphicsView:
dd=<value optimized out>, parent=<value optimized out>)
at graphicsview/
#11 0x40a07a8e in QDeclarativeVie
parent=0x0) at util/qdeclarati
#12 0x0000c796 in LauncherView:
#13 0x0000c050 in main ()
mcasadevall@ risingsun: ~$ cat src/qt4- x11-4.7. 0/debian/ patches/ kubuntu_ 22_thumb2_ support. diff opensource- src-4.7. 1/src/corelib/ arch/qatomic_ armv6.h ======= ======= ======= ======= ======= ======= ======= ======= ==== opensource- src-4.7. 1.orig/ src/corelib/ arch/qatomic_ armv6.h2010- 11-06 01:55:18.000000000 +0000 opensource- src-4.7. 1/src/corelib/ arch/qatomic_ armv6.h 2010-11-16 17:58:27.831286420 +0000
"ldrex %[result], [%[_q_value]]\n"
"eors %[result], %[result], %[expectedValue]\n"
"strexeq %[result], %[newValue], [%[_q_value]]\n"
"teqeq %[result], #1\n"
"beq 0b\n"
"ldrex %[result], [%[_q_value]]\n"
"eors %[result], %[result], %[expectedValue]\n"
"strexeq %[result], %[newValue], [%[_q_value]]\n"
"teqeq %[result], #1\n"
"beq 0b\n"
Provide Thumb2 support on armel - See LP Bug #673085 for details
Index: qt-everywhere-
=======
--- qt-everywhere-
+++ qt-everywhere-
@@ -144,6 +144,7 @@
asm volatile("0:\n"
+ "itt eq\n"
@@ -202,6 +203,7 @@
asm volatile("0:\n"
+ "itt eq\n"
Will attempt building natty's Qt on maverick to confirm compiler regression.