summaryrefslogtreecommitdiff
path: root/extra/qt5/qatomic-before-mips32.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/qt5/qatomic-before-mips32.patch')
-rw-r--r--extra/qt5/qatomic-before-mips32.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/extra/qt5/qatomic-before-mips32.patch b/extra/qt5/qatomic-before-mips32.patch
new file mode 100644
index 000000000..47d550f93
--- /dev/null
+++ b/extra/qt5/qatomic-before-mips32.patch
@@ -0,0 +1,34 @@
+ISAs before MIPS32 do not support the argument of sync, so build fails
+with -march=mips3 (or -march=loongson2f).
+
+Since the default argument of 0 does all work of other values, not
+specifying it should keep the code correct on older ISAs.
+
+A proper patch would detect if "sync 0x11" is accepted by the
+assembler and choose the appropriate code.
+
+--- qt-everywhere-opensource-src-5.0.1.orig/qtbase/src/corelib/arch/qatomic_mips.h 2013-03-03 18:52:14.370775913 +0100
++++ qt-everywhere-opensource-src-5.0.1/qtbase/src/corelib/arch/qatomic_mips.h 2013-03-03 19:30:16.209001188 +0100
+@@ -122,19 +122,19 @@
+ template <int size> template <typename T> inline
+ void QBasicAtomicOps<size>::acquireMemoryFence(const T &) Q_DECL_NOTHROW
+ {
+- asm volatile ("sync 0x11" ::: "memory");
++ asm volatile ("sync" ::: "memory");
+ }
+
+ template <int size> template <typename T> inline
+ void QBasicAtomicOps<size>::releaseMemoryFence(const T &) Q_DECL_NOTHROW
+ {
+- asm volatile ("sync 0x12" ::: "memory");
++ asm volatile ("sync" ::: "memory");
+ }
+
+ template <int size> template <typename T> inline
+ void QBasicAtomicOps<size>::orderedMemoryFence(const T &) Q_DECL_NOTHROW
+ {
+- asm volatile ("sync 0" ::: "memory");
++ asm volatile ("sync" ::: "memory");
+ }
+
+ template<> template<typename T> inline