- fix 64bit platform logic, use linux-g++-64 everywhere except x86_64

(#569542)
This commit is contained in:
Rex Dieter 2010-03-01 17:33:54 +00:00
parent d3bc0d2254
commit 9d4b9accf8
2 changed files with 12 additions and 65 deletions

View File

@ -1,60 +0,0 @@
--- qt-x11-opensource-src-4.5.0/src/3rdparty/webkit/JavaScriptCore/wtf/Threading.h.orig 2009-03-15 00:21:08.000000000 -0500
+++ qt-x11-opensource-src-4.5.0/src/3rdparty/webkit/JavaScriptCore/wtf/Threading.h 2009-03-15 00:22:38.000000000 -0500
@@ -196,14 +196,14 @@
#elif COMPILER(GCC)
#define WTF_USE_LOCKFREE_THREADSAFESHARED 1
-inline void atomicIncrement(int volatile* addend) { __gnu_cxx::__atomic_add(addend, 1); }
-inline int atomicDecrement(int volatile* addend) { return __gnu_cxx::__exchange_and_add(addend, -1) - 1; }
+inline void atomicIncrement(_Atomic_word volatile* addend) { __gnu_cxx::__atomic_add(addend, 1); }
+inline _Atomic_word atomicDecrement(_Atomic_word volatile* addend) { return __gnu_cxx::__exchange_and_add(addend, -1) - 1; }
#endif
template<class T> class ThreadSafeShared : Noncopyable {
public:
- ThreadSafeShared(int initialRefCount = 1)
+ ThreadSafeShared(_Atomic_word initialRefCount = 1)
: m_refCount(initialRefCount)
{
}
@@ -237,16 +237,16 @@
return refCount() == 1;
}
- int refCount() const
+ _Atomic_word refCount() const
{
#if !USE(LOCKFREE_THREADSAFESHARED)
MutexLocker locker(m_mutex);
#endif
- return static_cast<int const volatile &>(m_refCount);
+ return static_cast<_Atomic_word const volatile &>(m_refCount);
}
private:
- int m_refCount;
+ _Atomic_word m_refCount;
#if !USE(LOCKFREE_THREADSAFESHARED)
mutable Mutex m_mutex;
#endif
--- qt-x11-opensource-src-4.5.0/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h.orig 2009-03-15 00:21:37.000000000 -0500
+++ qt-x11-opensource-src-4.5.0/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h 2009-03-15 00:22:38.000000000 -0500
@@ -214,9 +214,16 @@
#endif
/* PLATFORM(SPARC64) */
-#if defined(__sparc64__)
+#if defined(__sparc64__) \
+ || defined(__sparc__) && defined(_arch64__)
#define WTF_PLATFORM_SPARC64 1
#define WTF_PLATFORM_BIG_ENDIAN 1
+#else
+/* PLATFORM(SPARC) */
+#if defined(__sparc__)
+#define WTF_PLATFORM_SPARC 1
+#define WTF_PLATFORM_BIG_ENDIAN 1
+#endif
#endif
/* PLATFORM(WIN_CE) && PLATFORM(QT)

17
qt.spec
View File

@ -13,7 +13,7 @@ Summary: Qt toolkit
Name: qt
Epoch: 1
Version: 4.6.2
Release: 3%{?dist}
Release: 4%{?dist}
# See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details
License: LGPLv2 with exceptions or GPLv3 with exceptions
@ -51,7 +51,6 @@ Requires: ca-certificates
## upstreamable bits
# http://bugzilla.redhat.com/485677
Patch51: qt-everywhere-opensource-src-4.6.0-beta1-qdoc3.patch
Patch52: qt-4.5-sparc64.patch
# fix invalid inline assembly in qatomic_{i386,x86_64}.h (de)ref implementations
Patch53: qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm.patch
# fix invalid assumptions about mysql_config --libs
@ -399,8 +398,6 @@ Qt libraries used for drawing widgets and OpenGL items.
%patch21 -p1 -b .gst-pulsaudio
%patch22 -p1 -b .system_ca_certificates
%patch51 -p1 -b .qdoc3
## FIXME: port patch
#patch52 -p1 -b .sparc64
## TODO: still worth carrying? if so, upstream it.
%patch53 -p1 -b .qatomic-inline-asm
## TODO: upstream me
@ -423,10 +420,17 @@ Qt libraries used for drawing widgets and OpenGL items.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed 's|-fexceptions||g'`
%define platform linux-g++
%if "%{_qt4_datadir}" != "%{_qt4_prefix}" && "%{_lib}" == "lib64"
# some 64bit platforms assume -64 suffix, https://bugzilla.redhat.com/569542
%if "%{?__isa_bits}" == "64"
%define platform linux-g++-64
%endif
# https://bugzilla.redhat.com/478481
%ifarch x86_64
%define platform linux-g++
%endif
sed -i \
-e "s|-O2|$RPM_OPT_FLAGS|g" \
-e "s|g++.conf|g++-multilib.conf|g" mkspecs/%{platform}/qmake.conf
@ -1005,6 +1009,9 @@ fi
%changelog
* Mon Mar 01 2010 Rex Dieter <rdieter@fedoraproject.org> - 4.6.2-4
- fix 64bit platform logic, use linux-g++-64 everywhere except x86_64 (#569542)
* Sun Feb 28 2010 Kevin Kofler <Kevin@tigcc.ticalc.org> - 4.6.2-3
- fix CUPS patch not to crash if currentPPD is NULL (#566304)