[SCM] Qt 4 packaging branch, master, updated. debian/4.7.2-4-10-gdf2bbfa

Modestas Vainius modax at alioth.debian.org
Fri May 6 23:56:41 UTC 2011


The following commit has been merged in the master branch:
commit e3e4dc5600c1c7c52d68d4d2959f0faa03d8c3c7
Author: Modestas Vainius <modax at debian.org>
Date:   Sat May 7 02:28:52 2011 +0300

    Disable strict-volatile-bitfields for some QBasicAtomicInt methods.
    
    Disable -fstrict-volatile-bitfields for
    QBasicAtomicInt::fetchAndStoreOrdered(int) method on arm. This should fix
    FTBFSes triggered by this inline function.
    Patch arm_qbasicatomicint_disable_vol_bitfields.diff.
---
 debian/changelog                                   |    4 ++
 .../arm_qbasicatomicint_disable_vol_bitfields.diff |   50 ++++++++++++++++++++
 debian/patches/series                              |    1 +
 3 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index afdacc0..8e8e056 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -11,6 +11,10 @@ qt4-x11 (4:4.7.3-1) UNRELEASED; urgency=low
   * Bump Standards-Version to 3.9.2: no changes needed.
   * Drop blacklist_fraudulent_comodo_certificates.diff patch, upstream.
   * Refresh patches.
+  * Add arm_qbasicatomicint_disable_vol_bitfields.diff patch which disables
+    -fstrict-volatile-bitfields for QBasicAtomicInt::fetchAndStoreOrdered(int)
+    method on arm. This should fix FTBFSes triggered by this inline function.
+    (Closes: #625825)
 
  -- Fathi Boudra <fabo at debian.org>  Wed, 04 May 2011 13:08:38 +0300
 
diff --git a/debian/patches/arm_qbasicatomicint_disable_vol_bitfields.diff b/debian/patches/arm_qbasicatomicint_disable_vol_bitfields.diff
new file mode 100644
index 0000000..0f0ca37
--- /dev/null
+++ b/debian/patches/arm_qbasicatomicint_disable_vol_bitfields.diff
@@ -0,0 +1,50 @@
+From: Modestas Vainius <modax at debian.org>
+Subject: Fix compilation of some QBasicAtomicInt methods with gcc 4.6
+Bug-Debian: http://bugs.debian.org/625825
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gcc-4.5/+bug/675347
+Forwarded: not-needed
+Origin: vendor
+Last-Update: 2011-05-07
+
+-fstrict-volatile-bitfields flag, which is enabled by default on arm* since gcc
+4.6, triggers a FTBFS in QBasicAtomicInt::fetchAndStoreOrdered(int) (asm code)
+[1]. While it's believed to be a gcc issue (see Ubuntu bug), workaround it in
+Qt itself by disabling strict-volatile-bitfields optimazation flag for this
+function on arm*. Hackish but it should do it until gcc is fixed.
+
+[1] In file included from /usr/include/qt4/QtCore/qatomic_arch.h:54:0,
+                 from /usr/include/qt4/QtCore/qbasicatomic.h:227,
+                 from /usr/include/qt4/QtCore/qatomic.h:46,
+                 from /usr/include/qt4/QtCore/QAtomicInt:1,
+                 from qatomic.cpp:1:
+/usr/include/qt4/QtCore/qatomic_arm.h: In function 'int main(int, char**)':
+/usr/include/qt4/QtCore/qatomic_arm.h:232:35: error: output number 1 not directly addressable
+/usr/include/qt4/QtCore/qatomic_arm.h:232:35: error: output number 1 not directly addressable
+
+
+--- a/src/corelib/thread/qbasicatomic.h
++++ b/src/corelib/thread/qbasicatomic.h
+@@ -94,6 +94,14 @@ public:
+         return *this;
+     }
+ 
++// Debian: disable -fstrict-volatile-bitfields for some functions on arm* due
++// to the bug in gcc 4.6 (#625825)
++#if defined(QT_ARCH_ARM) && defined(Q_CC_GNU) && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 6)
++#define DEBIAN_QATOMIC_ARM_NO_VOL_BITF __attribute((optimize("no-strict-volatile-bitfields")))
++#else
++#define DEBIAN_QATOMIC_ARM_NO_VOL_BITF
++#endif
++
+     // Atomic API, implemented in qatomic_XXX.h
+ 
+     static bool isReferenceCountingNative();
+@@ -116,7 +124,7 @@ public:
+     int fetchAndStoreRelaxed(int newValue);
+     int fetchAndStoreAcquire(int newValue);
+     int fetchAndStoreRelease(int newValue);
+-    int fetchAndStoreOrdered(int newValue);
++    int fetchAndStoreOrdered(int newValue) DEBIAN_QATOMIC_ARM_NO_VOL_BITF;
+ 
+     static bool isFetchAndAddNative();
+     static bool isFetchAndAddWaitFree();
diff --git a/debian/patches/series b/debian/patches/series
index eabb715..359d478 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -39,3 +39,4 @@ x-0003-Use-GCC-intrinsics-for-armv6-atomic-operations.patch
 powerpcspe.diff
 sh.diff
 kfreebsd_monotonic_clock.diff
+arm_qbasicatomicint_disable_vol_bitfields.diff

-- 
Qt 4 packaging



More information about the pkg-kde-commits mailing list