[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