[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#368883: qt4-x11: FTBFS on alpha



tags 368883 patch
thanks

So, having diagnosed that this is an interaction between
-fvisibility-inlines-hidden and referencing inlined methods (bug #369642),
the obvious workaround is to keep the problematic methods from getting
inlined.

The attached patch should do this; unfortunately, I haven't tested it
completely because qt4-x11 is also missing a build-conflict with
unixodbc-dev, and I don't have the patience to try to build it a second time
on alpha.  Please consider applying the patch, I don't believe it has
negative side-effects for other archs.

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
vorlon@debian.org                                   http://www.debian.org/
diff -u qt4-x11-4.1.2/debian/changelog qt4-x11-4.1.2/debian/changelog
--- qt4-x11-4.1.2/debian/changelog
+++ qt4-x11-4.1.2/debian/changelog
@@ -1,3 +1,11 @@
+qt4-x11 (4.1.2-2.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Workaround for -fvisibility-inlines-hidden on alpha: break out the
+    static methods so they're not inlined.  Closes: #368883.
+
+ -- Steve Langasek <vorlon@debian.org>  Tue, 30 May 2006 19:56:44 -0700
+
 qt4-x11 (4.1.2-2) unstable; urgency=low
 
   * debian/libqt4-debug-dev.install, debian/libqt4-dev.install: added
only in patch2:
unchanged:
--- qt4-x11-4.1.2.orig/src/corelib/global/qlibraryinfo.cpp
+++ qt4-x11-4.1.2/src/corelib/global/qlibraryinfo.cpp
@@ -47,14 +47,7 @@
 {
 public:
     static QSettings *findConfiguration();
-    static void cleanup()
-    {
-        QLibrarySettings *ls = qt_library_settings();
-        if (ls) {
-            delete static_cast<QSettings *>(ls->settings);
-            ls->settings = 0;
-        }
-    }
+    static void cleanup();
     static QSettings *configuration()
     {
         QLibrarySettings *ls = qt_library_settings();
@@ -64,6 +57,15 @@
     Q_GLOBAL_STATIC(QLibrarySettings, qt_library_settings)
 };
 
+void QLibraryInfoPrivate::cleanup()
+{
+    QLibrarySettings *ls = qt_library_settings();
+    if (ls) {
+        delete static_cast<QSettings *>(ls->settings);
+        ls->settings = 0;
+    }
+}
+
 QLibrarySettings::QLibrarySettings()
 {
     settings = QLibraryInfoPrivate::findConfiguration();
only in patch2:
unchanged:
--- qt4-x11-4.1.2.orig/src/corelib/tools/qhash.h
+++ qt4-x11-4.1.2/src/corelib/tools/qhash.h
@@ -396,7 +396,7 @@
 }
 
 template <class Key, class T>
-Q_INLINE_TEMPLATE void QHash<Key, T>::duplicateNode(QHashData::Node *node, void *newNode)
+void QHash<Key, T>::duplicateNode(QHashData::Node *node, void *newNode)
 {
     Node *concreteNode = concrete(node);
     if (QTypeInfo<T>::isDummy) {

Attachment: signature.asc
Description: Digital signature


Reply to: