diff -Nru qtbase-opensource-src-5.0.2+dfsg1/debian/changelog qtbase-opensource-src-5.0.2+dfsg1/debian/changelog --- qtbase-opensource-src-5.0.2+dfsg1/debian/changelog 2013-10-07 11:46:03.000000000 +0000 +++ qtbase-opensource-src-5.0.2+dfsg1/debian/changelog 2013-10-13 13:34:26.000000000 +0000 @@ -1,3 +1,12 @@ +qtbase-opensource-src (5.0.2+dfsg1-7ubuntu11) saucy; urgency=low + + * debian/patches/aarch64_fix_atomic_set.patch: + Fix QBasicAtomicInt::testAndSetRelaxed and + QBasicAtomicPointer::testAndSetRelaxed to actually set the given value, + rather than a pointer to that value on the local stack frame. + + -- William Grant Sun, 13 Oct 2013 23:38:28 +1100 + qtbase-opensource-src (5.0.2+dfsg1-7ubuntu10) saucy; urgency=low * debian/patches/fix_rowinserted.patch: diff -Nru qtbase-opensource-src-5.0.2+dfsg1/debian/patches/aarch64_fix_atomic_set.patch qtbase-opensource-src-5.0.2+dfsg1/debian/patches/aarch64_fix_atomic_set.patch --- qtbase-opensource-src-5.0.2+dfsg1/debian/patches/aarch64_fix_atomic_set.patch 1970-01-01 00:00:00.000000000 +0000 +++ qtbase-opensource-src-5.0.2+dfsg1/debian/patches/aarch64_fix_atomic_set.patch 2013-10-13 13:34:26.000000000 +0000 @@ -0,0 +1,29 @@ +Description: Fix aarch64 atomic test and set to set the right value. + QBasicAtomicInt::testAndSetRelaxed and + QBasicAtomicPointer::testAndSetRelaxed would previously set the + target to a local stack frame pointer to the new value, rather than to + the new value itself. +Author: William Grant + +Index: qtbase-opensource-src-5.0.2+dfsg1/src/corelib/arch/qatomic_aarch64.h +=================================================================== +--- qtbase-opensource-src-5.0.2+dfsg1.orig/src/corelib/arch/qatomic_aarch64.h 2013-10-13 23:38:07.591891127 +1100 ++++ qtbase-opensource-src-5.0.2+dfsg1/src/corelib/arch/qatomic_aarch64.h 2013-10-13 23:38:23.887695304 +1100 +@@ -135,7 +135,7 @@ + bool val; + + Q_COMPILER_MEMORY_BARRIER; +- val = __atomic_compare_exchange_n (&_q_value, &expectedValue, &newValue, ++ val = __atomic_compare_exchange_n (&_q_value, &expectedValue, newValue, + false, __ATOMIC_RELAXED, __ATOMIC_RELAXED); + Q_COMPILER_MEMORY_BARRIER; + return val; +@@ -164,7 +164,7 @@ + { + bool val; + Q_COMPILER_MEMORY_BARRIER; +- val = __atomic_compare_exchange_n (&_q_value, &expectedValue, &newValue, ++ val = __atomic_compare_exchange_n (&_q_value, &expectedValue, newValue, + false, __ATOMIC_RELAXED, __ATOMIC_RELAXED); + Q_COMPILER_MEMORY_BARRIER; + return val; diff -Nru qtbase-opensource-src-5.0.2+dfsg1/debian/patches/series qtbase-opensource-src-5.0.2+dfsg1/debian/patches/series --- qtbase-opensource-src-5.0.2+dfsg1/debian/patches/series 2013-10-07 11:46:03.000000000 +0000 +++ qtbase-opensource-src-5.0.2+dfsg1/debian/patches/series 2013-10-13 13:34:26.000000000 +0000 @@ -18,3 +18,4 @@ load_testability_from_env_var.patch bug1227629.patch fix_rowinserted.patch +aarch64_fix_atomic_set.patch