diff --git a/qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm.patch b/qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm.patch new file mode 100644 index 0000000..e5ab4ba --- /dev/null +++ b/qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm.patch @@ -0,0 +1,50 @@ +diff -ur qt-x11-opensource-src-4.5.0/src/corelib/arch/qatomic_i386.h qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm/src/corelib/arch/qatomic_i386.h +--- qt-x11-opensource-src-4.5.0/src/corelib/arch/qatomic_i386.h 2009-02-25 22:09:21.000000000 +0100 ++++ qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm/src/corelib/arch/qatomic_i386.h 2009-04-01 17:54:21.000000000 +0200 +@@ -115,8 +115,8 @@ + asm volatile("lock\n" + "incl %0\n" + "setne %1" +- : "=m" (_q_value), "=qm" (ret) +- : "m" (_q_value) ++ : "+m" (_q_value), "=qm" (ret) ++ : + : "memory"); + return ret != 0; + } +@@ -127,8 +127,8 @@ + asm volatile("lock\n" + "decl %0\n" + "setne %1" +- : "=m" (_q_value), "=qm" (ret) +- : "m" (_q_value) ++ : "+m" (_q_value), "=qm" (ret) ++ : + : "memory"); + return ret != 0; + } +diff -ur qt-x11-opensource-src-4.5.0/src/corelib/arch/qatomic_x86_64.h qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm/src/corelib/arch/qatomic_x86_64.h +--- qt-x11-opensource-src-4.5.0/src/corelib/arch/qatomic_x86_64.h 2009-02-25 22:09:21.000000000 +0100 ++++ qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm/src/corelib/arch/qatomic_x86_64.h 2009-04-01 17:54:32.000000000 +0200 +@@ -116,8 +116,8 @@ + asm volatile("lock\n" + "incl %0\n" + "setne %1" +- : "=m" (_q_value), "=qm" (ret) +- : "m" (_q_value) ++ : "+m" (_q_value), "=qm" (ret) ++ : + : "memory"); + return ret != 0; + } +@@ -128,8 +128,8 @@ + asm volatile("lock\n" + "decl %0\n" + "setne %1" +- : "=m" (_q_value), "=qm" (ret) +- : "m" (_q_value) ++ : "+m" (_q_value), "=qm" (ret) ++ : + : "memory"); + return ret != 0; + } diff --git a/qt.spec b/qt.spec index edd63aa..a55e5e4 100644 --- a/qt.spec +++ b/qt.spec @@ -12,7 +12,7 @@ Epoch: 1 Name: qt4 %endif Version: 4.5.0 -Release: 11%{?dist} +Release: 12%{?dist} # See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details License: LGPLv2 with exceptions or GPLv3 with exceptions @@ -50,6 +50,10 @@ Patch14: qt-x11-opensource-src-4.5.0-ia64_boilerplate.patch Patch50: qt-x11-opensource-src-4.5.0-rc1-qhostaddress.patch Patch51: qt-x11-opensource-src-4.5.0-qdoc3.patch Patch52: qt-4.5-sparc64.patch +# fix invalid inline assembly in qatomic_{i386,x86_64}.h (de)ref implementations +# should fix the reference counting in qt_toX11Pixmap and thus the Kolourpaint +# crash with Qt 4.5 +Patch53: qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm.patch ## qt-copy patches %define qt_copy 20090325 @@ -324,6 +328,7 @@ test -x apply_patches && ./apply_patches %patch50 -p1 -b .qhostaddress %patch51 -p1 -b .qdoc3 %patch52 -p1 -b .sparc64 +%patch53 -p1 -b .qatomic-inline-asm # drop -fexceptions from $RPM_OPT_FLAGS RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed 's|-fexceptions||g'` @@ -804,6 +809,9 @@ gtk-update-icon-cache -q %{_datadir}/icons/hicolor 2> /dev/null ||: %changelog +* Wed Apr 01 2009 Kevin Kofler - 4.5.0-12 +- fix inline asm in qatomic (de)ref (i386/x86_64), should fix Kolourpaint crash + * Mon Mar 30 2009 Rex Dieter - 4.5.0-11 - qt fails to build on ia64 (#492174)