Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 841322 Details for
Bug 1046360
Add support for aarch64
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
Fedora patch to add aarch64 support
qt-add-aarch64.patch (text/plain), 47.68 KB, created by
Peter Robinson
on 2013-12-24 21:29:38 UTC
(
hide
)
Description:
Fedora patch to add aarch64 support
Filename:
MIME Type:
Creator:
Peter Robinson
Created:
2013-12-24 21:29:38 UTC
Size:
47.68 KB
patch
obsolete
>diff --git a/qt-aarch64.patch b/qt-aarch64.patch >new file mode 100644 >index 0000000..d4817c7 >--- /dev/null >+++ b/qt-aarch64.patch >@@ -0,0 +1,651 @@ >+Index: b/configure >+=================================================================== >+--- a/configure >++++ b/configure >+@@ -2808,6 +2811,9 @@ >+ *86_64) >+ PLATFORM=qws/linux-x86_64-g++ >+ ;; >++ aarch64) >++ PLATFORM=linux-g++-aarch64 >++ ;; >+ *) >+ PLATFORM=qws/linux-generic-g++ >+ ;; >+@@ -3246,6 +3192,12 @@ >+ echo " ARM (arm)" >+ fi >+ CFG_HOST_ARCH=arm >++ ;; >++ *:*:aarch64*) >++ if [ "$OPT_VERBOSE" = "yes" ]; then >++ echo " AArch64 (aarch64)" >++ fi >++ CFG_HOST_ARCH=aarch64 >+ ;; >+ Linux:*:sparc*) >+ if [ "$OPT_VERBOSE" = "yes" ]; then >+diff --git a/include/QtCore/qatomic_aarch64.h b/include/QtCore/qatomic_aarch64.h >+new file mode 100644 >+index 0000000..2049aec >+--- /dev/null >++++ b/include/QtCore/qatomic_aarch64.h >+@@ -0,0 +1 @@ >++#include "../../src/corelib/arch/qatomic_aarch64.h" >+Index: b/mkspecs/linux-g++-aarch64/qmake.conf >+=================================================================== >+--- /dev/null >++++ b/mkspecs/linux-g++-aarch64/qmake.conf >+@@ -0,0 +1,28 @@ >++# >++# qmake configuration for linux-g++ >++# >++# Written for GNU/Linux platforms that have both lib and lib64 directories, >++# like the AMD Opteron. >++# >++ >++MAKEFILE_GENERATOR = UNIX >++TARGET_PLATFORM = unix >++TEMPLATE = app >++CONFIG += qt warn_on release incremental link_prl gdb_dwarf_index >++QT += core gui >++QMAKE_INCREMENTAL_STYLE = sublib >++ >++QMAKE_CFLAGS = -fpermissive >++QMAKE_LFLAGS = >++ >++QMAKE_CFLAGS_RELEASE += -O2 >++ >++include(../common/linux.conf) >++include(../common/gcc-base-unix.conf) >++include(../common/g++-unix.conf) >++ >++ >++QMAKE_LIBDIR_X11 = /usr/X11R6/lib64 >++QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib64 >++ >++load(qt_config) >+Index: b/mkspecs/linux-g++-aarch64/qplatformdefs.h >+=================================================================== >+--- /dev/null >++++ b/mkspecs/linux-g++-aarch64/qplatformdefs.h >+@@ -0,0 +1,42 @@ >++/**************************************************************************** >++** >++** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). >++** Contact: http://www.qt-project.org/legal >++** >++** This file is part of the qmake spec of the Qt Toolkit. >++** >++** $QT_BEGIN_LICENSE:LGPL$ >++** Commercial License Usage >++** Licensees holding valid commercial Qt licenses may use this file in >++** accordance with the commercial license agreement provided with the >++** Software or, alternatively, in accordance with the terms contained in >++** a written agreement between you and Digia. For licensing terms and >++** conditions see http://qt.digia.com/licensing. For further information >++** use the contact form at http://qt.digia.com/contact-us. >++** >++** GNU Lesser General Public License Usage >++** Alternatively, this file may be used under the terms of the GNU Lesser >++** General Public License version 2.1 as published by the Free Software >++** Foundation and appearing in the file LICENSE.LGPL included in the >++** packaging of this file. Please review the following information to >++** ensure the GNU Lesser General Public License version 2.1 requirements >++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. >++** >++** In addition, as a special exception, Digia gives you certain additional >++** rights. These rights are described in the Digia Qt LGPL Exception >++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. >++** >++** GNU General Public License Usage >++** Alternatively, this file may be used under the terms of the GNU >++** General Public License version 3.0 as published by the Free Software >++** Foundation and appearing in the file LICENSE.GPL included in the >++** packaging of this file. Please review the following information to >++** ensure the GNU General Public License version 3.0 requirements will be >++** met: http://www.gnu.org/copyleft/gpl.html. >++** >++** >++** $QT_END_LICENSE$ >++** >++****************************************************************************/ >++ >++#include "../linux-g++/qplatformdefs.h" >+=================================================================== >+Index: b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h >+=================================================================== >+--- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h >++++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h >+@@ -238,6 +238,11 @@ >+ >+ #endif >+ >++/* CPU(AARCH64) - AArch64 */ >++#if defined(__aarch64__) >++#define WTF_CPU_AARCH64 1 >++#endif >++ >+ #define WTF_ARM_ARCH_AT_LEAST(N) (CPU(ARM) && WTF_ARM_ARCH_VERSION >= N) >+ >+ /* Set WTF_ARM_ARCH_VERSION */ >+@@ -885,7 +890,7 @@ >+ #endif >+ >+ #if !defined(WTF_USE_JSVALUE64) && !defined(WTF_USE_JSVALUE32) && !defined(WTF_USE_JSVALUE32_64) >+-#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64) || CPU(S390X) >++#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64) || CPU(S390X) || CPU(AARCH64) >+ #define WTF_USE_JSVALUE64 1 >+ #elif CPU(ARM) || CPU(PPC64) >+ #define WTF_USE_JSVALUE32 1 >+Index: b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h >+=================================================================== >+--- a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h >++++ b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h >+@@ -365,10 +365,15 @@ >+ >+ #endif /* ARM */ >+ >+-#if CPU(ARM) || CPU(MIPS) || CPU(SH4) >++#if CPU(ARM) || CPU(MIPS) || CPU(SH4) || CPU(AARCH64) >+ #define WTF_CPU_NEEDS_ALIGNED_ACCESS 1 >+ #endif >+ >++/* CPU(AARCH64) - Aarch64 */ >++#if defined(__aarch64__) >++#define WTF_CPU_AARCH64 1 >++#endif >++ >+ /* ==== OS() - underlying operating system; only to be used for mandated low-level services like >+ virtual memory, not to choose a GUI toolkit ==== */ >+ >+@@ -998,7 +1003,8 @@ >+ || CPU(ALPHA) \ >+ || CPU(SPARC64) \ >+ || CPU(S390X) \ >+- || CPU(PPC64) >++ || CPU(PPC64) \ >++ || CPU(AARCH64) >+ #define WTF_USE_JSVALUE64 1 >+ #else >+ #define WTF_USE_JSVALUE32_64 1 >+diff --git a/include/QtCore/headers.pri b/include/QtCore/headers.pri >+index bc9a645..c97e17e 100644 >+--- a/include/QtCore/headers.pri >++++ b/include/QtCore/headers.pri >+@@ -1,3 +1,3 @@ >+-SYNCQT.HEADER_FILES = ../corelib/statemachine/qabstractstate.h ../corelib/statemachine/qabstracttransition.h ../corelib/statemachine/qeventtransition.h ../corelib/statemachine/qfinalstate.h ../corelib/statemachine/qhistorystate.h ../corelib/statemachine/qsignaltransition.h ../corelib/statemachine/qstate.h ../corelib/statemachine/qstatemachine.h ../corelib/arch/qatomic_alpha.h ../corelib/arch/qatomic_arch.h ../corelib/arch/qatomic_arm.h ../corelib/arch/qatomic_armv5.h ../corelib/arch/qatomic_armv6.h ../corelib/arch/qatomic_armv7.h ../corelib/arch/qatomic_avr32.h ../corelib/arch/qatomic_bfin.h ../corelib/arch/qatomic_bootstrap.h ../corelib/arch/qatomic_generic.h ../corelib/arch/qatomic_i386.h ../corelib/arch/qatomic_ia64.h ../corelib/arch/qatomic_integrity.h ../corelib/arch/qatomic_macosx.h ../corelib/arch/qatomic_mips.h ../corelib/arch/qatomic_parisc.h ../corelib/arch/qatomic_powerpc.h ../corelib/arch/qatomic_s390.h ../corelib/arch/qatomic_sh.h ../corelib/arch/qatomic_sh4a.h ../corelib/arch/qatomic_sparc.h ../corelib/arch/qatomic_symbian.h ../corelib/arch/qatomic_vxworks.h ../corelib/arch/qatomic_windows.h ../corelib/arch/qatomic_windowsce.h ../corelib/arch/qatomic_x86_64.h ../corelib/thread/qatomic.h ../corelib/thread/qbasicatomic.h ../corelib/thread/qmutex.h ../corelib/thread/qreadwritelock.h ../corelib/thread/qsemaphore.h ../corelib/thread/qthread.h ../corelib/thread/qthreadstorage.h ../corelib/thread/qwaitcondition.h ../corelib/xml/qxmlstream.h ../corelib/concurrent/qfuture.h ../corelib/concurrent/qfutureinterface.h ../corelib/concurrent/qfuturesynchronizer.h ../corelib/concurrent/qfuturewatcher.h ../corelib/concurrent/qrunnable.h ../corelib/concurrent/qtconcurrentcompilertest.h ../corelib/concurrent/qtconcurrentexception.h ../corelib/concurrent/qtconcurrentfilter.h ../corelib/concurrent/qtconcurrentfilterkernel.h ../corelib/concurrent/qtconcurrentfunctionwrappers.h ../corelib/concurrent/qtconcurrentiteratekernel.h ../corelib/concurrent/qtconcurrentmap.h ../corelib/concurrent/qtconcurrentmapkernel.h ../corelib/concurrent/qtconcurrentmedian.h ../corelib/concurrent/qtconcurrentreducekernel.h ../corelib/concurrent/qtconcurrentresultstore.h ../corelib/concurrent/qtconcurrentrun.h ../corelib/concurrent/qtconcurrentrunbase.h ../corelib/concurrent/qtconcurrentstoredfunctioncall.h ../corelib/concurrent/qtconcurrentthreadengine.h ../corelib/concurrent/qthreadpool.h ../corelib/kernel/qabstracteventdispatcher.h ../corelib/kernel/qabstractitemmodel.h ../corelib/kernel/qbasictimer.h ../corelib/kernel/qcoreapplication.h ../corelib/kernel/qcoreevent.h ../corelib/kernel/qeventloop.h ../corelib/kernel/qfunctions_nacl.h ../corelib/kernel/qfunctions_vxworks.h ../corelib/kernel/qfunctions_wince.h ../corelib/kernel/qmath.h ../corelib/kernel/qmetaobject.h ../corelib/kernel/qmetatype.h ../corelib/kernel/qmimedata.h ../corelib/kernel/qobject.h ../corelib/kernel/qobjectcleanuphandler.h ../corelib/kernel/qobjectdefs.h ../corelib/kernel/qpointer.h ../corelib/kernel/qsharedmemory.h ../corelib/kernel/qsignalmapper.h ../corelib/kernel/qsocketnotifier.h ../corelib/kernel/qsystemsemaphore.h ../corelib/kernel/qtimer.h ../corelib/kernel/qtranslator.h ../corelib/kernel/qvariant.h ../corelib/plugin/qfactoryinterface.h ../corelib/plugin/qlibrary.h ../corelib/plugin/qplugin.h ../corelib/plugin/qpluginloader.h ../corelib/plugin/quuid.h ../corelib/global/qconfig-dist.h ../corelib/global/qconfig-large.h ../corelib/global/qconfig-medium.h ../corelib/global/qconfig-minimal.h ../corelib/global/qconfig-nacl.h ../corelib/global/qconfig-small.h ../corelib/global/qendian.h ../corelib/global/qfeatures.h ../corelib/global/qglobal.h ../corelib/global/qlibraryinfo.h ../corelib/global/qnamespace.h ../corelib/global/qnumeric.h ../corelib/global/qt_windows.h ../corelib/global/qconfig.h ../corelib/codecs/qtextcodec.h ../corelib/codecs/qtextcodecplugin.h ../corelib/io/qabstractfileengine.h ../corelib/io/qbuffer.h ../corelib/io/qdatastream.h ../corelib/io/qdebug.h ../corelib/io/qdir.h ../corelib/io/qdiriterator.h ../corelib/io/qfile.h ../corelib/io/qfileinfo.h ../corelib/io/qfilesystemwatcher.h ../corelib/io/qfsfileengine.h ../corelib/io/qiodevice.h ../corelib/io/qprocess.h ../corelib/io/qresource.h ../corelib/io/qsettings.h ../corelib/io/qtemporaryfile.h ../corelib/io/qtextstream.h ../corelib/io/qurl.h ../corelib/animation/qabstractanimation.h ../corelib/animation/qanimationgroup.h ../corelib/animation/qparallelanimationgroup.h ../corelib/animation/qpauseanimation.h ../corelib/animation/qpropertyanimation.h ../corelib/animation/qsequentialanimationgroup.h ../corelib/animation/qvariantanimation.h ../corelib/tools/qalgorithms.h ../corelib/tools/qbitarray.h ../corelib/tools/qbytearray.h ../corelib/tools/qbytearraymatcher.h ../corelib/tools/qcache.h ../corelib/tools/qchar.h ../corelib/tools/qcontainerfwd.h ../corelib/tools/qcontiguouscache.h ../corelib/tools/qcryptographichash.h ../corelib/tools/qdatetime.h ../corelib/tools/qeasingcurve.h ../corelib/tools/qelapsedtimer.h ../corelib/tools/qhash.h ../corelib/tools/qiterator.h ../corelib/tools/qline.h ../corelib/tools/qlinkedlist.h ../corelib/tools/qlist.h ../corelib/tools/qlocale.h ../corelib/tools/qlocale_blackberry.h ../corelib/tools/qmap.h ../corelib/tools/qmargins.h ../corelib/tools/qpair.h ../corelib/tools/qpoint.h ../corelib/tools/qqueue.h ../corelib/tools/qrect.h ../corelib/tools/qregexp.h ../corelib/tools/qscopedpointer.h ../corelib/tools/qscopedvaluerollback.h ../corelib/tools/qset.h ../corelib/tools/qshareddata.h ../corelib/tools/qsharedpointer.h ../corelib/tools/qsharedpointer_impl.h ../corelib/tools/qsize.h ../corelib/tools/qstack.h ../corelib/tools/qstring.h ../corelib/tools/qstringbuilder.h ../corelib/tools/qstringlist.h ../corelib/tools/qstringmatcher.h ../corelib/tools/qtextboundaryfinder.h ../corelib/tools/qtimeline.h ../corelib/tools/qvarlengtharray.h ../corelib/tools/qvector.h ../../include/QtCore/QtCore >++SYNCQT.HEADER_FILES = ../corelib/statemachine/qabstractstate.h ../corelib/statemachine/qabstracttransition.h ../corelib/statemachine/qeventtransition.h ../corelib/statemachine/qfinalstate.h ../corelib/statemachine/qhistorystate.h ../corelib/statemachine/qsignaltransition.h ../corelib/statemachine/qstate.h ../corelib/statemachine/qstatemachine.h ../corelib/arch/qatomic_aarch64.h ../corelib/arch/qatomic_alpha.h ../corelib/arch/qatomic_arch.h ../corelib/arch/qatomic_arm.h ../corelib/arch/qatomic_armv5.h ../corelib/arch/qatomic_armv6.h ../corelib/arch/qatomic_armv7.h ../corelib/arch/qatomic_avr32.h ../corelib/arch/qatomic_bfin.h ../corelib/arch/qatomic_bootstrap.h ../corelib/arch/qatomic_generic.h ../corelib/arch/qatomic_i386.h ../corelib/arch/qatomic_ia64.h ../corelib/arch/qatomic_integrity.h ../corelib/arch/qatomic_macosx.h ../corelib/arch/qatomic_mips.h ../corelib/arch/qatomic_parisc.h ../corelib/arch/qatomic_powerpc.h ../corelib/arch/qatomic_s390.h ../corelib/arch/qatomic_sh.h ../corelib/arch/qatomic_sh4a.h ../corelib/arch/qatomic_sparc.h ../corelib/arch/qatomic_symbian.h ../corelib/arch/qatomic_vxworks.h ../corelib/arch/qatomic_windows.h ../corelib/arch/qatomic_windowsce.h ../corelib/arch/qatomic_x86_64.h ../corelib/thread/qatomic.h ../corelib/thread/qbasicatomic.h ../corelib/thread/qmutex.h ../corelib/thread/qreadwritelock.h ../corelib/thread/qsemaphore.h ../corelib/thread/qthread.h ../corelib/thread/qthreadstorage.h ../corelib/thread/qwaitcondition.h ../corelib/xml/qxmlstream.h ../corelib/concurrent/qfuture.h ../corelib/concurrent/qfutureinterface.h ../corelib/concurrent/qfuturesynchronizer.h ../corelib/concurrent/qfuturewatcher.h ../corelib/concurrent/qrunnable.h ../corelib/concurrent/qtconcurrentcompilertest.h ../corelib/concurrent/qtconcurrentexception.h ../corelib/concurrent/qtconcurrentfilter.h ../corelib/concurrent/qtconcurrentfilterkernel.h ../corelib/concurrent/qtconcurrentfunctionwrappers.h ../corelib/concurrent/qtconcurrentiteratekernel.h ../corelib/concurrent/qtconcurrentmap.h ../corelib/concurrent/qtconcurrentmapkernel.h ../corelib/concurrent/qtconcurrentmedian.h ../corelib/concurrent/qtconcurrentreducekernel.h ../corelib/concurrent/qtconcurrentresultstore.h ../corelib/concurrent/qtconcurrentrun.h ../corelib/concurrent/qtconcurrentrunbase.h ../corelib/concurrent/qtconcurrentstoredfunctioncall.h ../corelib/concurrent/qtconcurrentthreadengine.h ../corelib/concurrent/qthreadpool.h ../corelib/kernel/qabstracteventdispatcher.h ../corelib/kernel/qabstractitemmodel.h ../corelib/kernel/qbasictimer.h ../corelib/kernel/qcoreapplication.h ../corelib/kernel/qcoreevent.h ../corelib/kernel/qeventloop.h ../corelib/kernel/qfunctions_nacl.h ../corelib/kernel/qfunctions_vxworks.h ../corelib/kernel/qfunctions_wince.h ../corelib/kernel/qmath.h ../corelib/kernel/qmetaobject.h ../corelib/kernel/qmetatype.h ../corelib/kernel/qmimedata.h ../corelib/kernel/qobject.h ../corelib/kernel/qobjectcleanuphandler.h ../corelib/kernel/qobjectdefs.h ../corelib/kernel/qpointer.h ../corelib/kernel/qsharedmemory.h ../corelib/kernel/qsignalmapper.h ../corelib/kernel/qsocketnotifier.h ../corelib/kernel/qsystemsemaphore.h ../corelib/kernel/qtimer.h ../corelib/kernel/qtranslator.h ../corelib/kernel/qvariant.h ../corelib/plugin/qfactoryinterface.h ../corelib/plugin/qlibrary.h ../corelib/plugin/qplugin.h ../corelib/plugin/qpluginloader.h ../corelib/plugin/quuid.h ../corelib/global/qconfig-dist.h ../corelib/global/qconfig-large.h ../corelib/global/qconfig-medium.h ../corelib/global/qconfig-minimal.h ../corelib/global/qconfig-nacl.h ../corelib/global/qconfig-small.h ../corelib/global/qendian.h ../corelib/global/qfeatures.h ../corelib/global/qglobal.h ../corelib/global/qlibraryinfo.h ../corelib/global/qnamespace.h ../corelib/global/qnumeric.h ../corelib/global/qt_windows.h ../corelib/global/qconfig.h ../corelib/codecs/qtextcodec.h ../corelib/codecs/qtextcodecplugin.h ../corelib/io/qabstractfileengine.h ../corelib/io/qbuffer.h ../corelib/io/qdatastream.h ../corelib/io/qdebug.h ../corelib/io/qdir.h ../corelib/io/qdiriterator.h ../corelib/io/qfile.h ../corelib/io/qfileinfo.h ../corelib/io/qfilesystemwatcher.h ../corelib/io/qfsfileengine.h ../corelib/io/qiodevice.h ../corelib/io/qprocess.h ../corelib/io/qresource.h ../corelib/io/qsettings.h ../corelib/io/qtemporaryfile.h ../corelib/io/qtextstream.h ../corelib/io/qurl.h ../corelib/animation/qabstractanimation.h ../corelib/animation/qanimationgroup.h ../corelib/animation/qparallelanimationgroup.h ../corelib/animation/qpauseanimation.h ../corelib/animation/qpropertyanimation.h ../corelib/animation/qsequentialanimationgroup.h ../corelib/animation/qvariantanimation.h ../corelib/tools/qalgorithms.h ../corelib/tools/qbitarray.h ../corelib/tools/qbytearray.h ../corelib/tools/qbytearraymatcher.h ../corelib/tools/qcache.h ../corelib/tools/qchar.h ../corelib/tools/qcontainerfwd.h ../corelib/tools/qcontiguouscache.h ../corelib/tools/qcryptographichash.h ../corelib/tools/qdatetime.h ../corelib/tools/qeasingcurve.h ../corelib/tools/qelapsedtimer.h ../corelib/tools/qhash.h ../corelib/tools/qiterator.h ../corelib/tools/qline.h ../corelib/tools/qlinkedlist.h ../corelib/tools/qlist.h ../corelib/tools/qlocale.h ../corelib/tools/qlocale_blackberry.h ../corelib/tools/qmap.h ../corelib/tools/qmargins.h ../corelib/tools/qpair.h ../corelib/tools/qpoint.h ../corelib/tools/qqueue.h ../corelib/tools/qrect.h ../corelib/tools/qregexp.h ../corelib/tools/qscopedpointer.h ../corelib/tools/qscopedvaluerollback.h ../corelib/tools/qset.h ../corelib/tools/qshareddata.h ../corelib/tools/qsharedpointer.h ../corelib/tools/qsharedpointer_impl.h ../corelib/tools/qsize.h ../corelib/tools/qstack.h ../corelib/tools/qstring.h ../corelib/tools/qstringbuilder.h ../corelib/tools/qstringlist.h ../corelib/tools/qstringmatcher.h ../corelib/tools/qtextboundaryfinder.h ../corelib/tools/qtimeline.h ../corelib/tools/qvarlengtharray.h ../corelib/tools/qvector.h ../../include/QtCore/QtCore >+ SYNCQT.HEADER_CLASSES = ../../include/QtCore/QAbstractState ../../include/QtCore/QAbstractTransition ../../include/QtCore/QEventTransition ../../include/QtCore/QFinalState ../../include/QtCore/QHistoryState ../../include/QtCore/QSignalTransition ../../include/QtCore/QState ../../include/QtCore/QStateMachine ../../include/QtCore/QAtomicInt ../../include/QtCore/QAtomicPointer ../../include/QtCore/QBasicAtomicInt ../../include/QtCore/QBasicAtomicPointer ../../include/QtCore/QMutex ../../include/QtCore/QMutexLocker ../../include/QtCore/QMutexData ../../include/QtCore/QReadWriteLock ../../include/QtCore/QReadLocker ../../include/QtCore/QWriteLocker ../../include/QtCore/QSemaphore ../../include/QtCore/QThread ../../include/QtCore/QThreadStorageData ../../include/QtCore/QThreadStorage ../../include/QtCore/QWaitCondition ../../include/QtCore/QXmlStreamStringRef ../../include/QtCore/QXmlStreamAttribute ../../include/QtCore/QXmlStreamAttributes ../../include/QtCore/QXmlStreamNamespaceDeclaration ../../include/QtCore/QXmlStreamNamespaceDeclarations ../../include/QtCore/QXmlStreamNotationDeclaration ../../include/QtCore/QXmlStreamNotationDeclarations ../../include/QtCore/QXmlStreamEntityDeclaration ../../include/QtCore/QXmlStreamEntityDeclarations ../../include/QtCore/QXmlStreamEntityResolver ../../include/QtCore/QXmlStreamReader ../../include/QtCore/QXmlStreamWriter ../../include/QtCore/QFuture ../../include/QtCore/QFutureIterator ../../include/QtCore/QMutableFutureIterator ../../include/QtCore/QFutureInterfaceBase ../../include/QtCore/QFutureInterface ../../include/QtCore/QFutureSynchronizer ../../include/QtCore/QFutureWatcherBase ../../include/QtCore/QFutureWatcher ../../include/QtCore/QRunnable ../../include/QtCore/QtConcurrentFilter ../../include/QtCore/QtConcurrentMap ../../include/QtCore/QtConcurrentRun ../../include/QtCore/QThreadPool ../../include/QtCore/QAbstractEventDispatcher ../../include/QtCore/QModelIndex ../../include/QtCore/QPersistentModelIndex ../../include/QtCore/QModelIndexList ../../include/QtCore/QAbstractItemModel ../../include/QtCore/QAbstractTableModel ../../include/QtCore/QAbstractListModel ../../include/QtCore/QBasicTimer ../../include/QtCore/QCoreApplication ../../include/QtCore/QtCleanUpFunction ../../include/QtCore/QEvent ../../include/QtCore/QTimerEvent ../../include/QtCore/QChildEvent ../../include/QtCore/QCustomEvent ../../include/QtCore/QDynamicPropertyChangeEvent ../../include/QtCore/QEventLoop ../../include/QtCore/QMetaMethod ../../include/QtCore/QMetaEnum ../../include/QtCore/QMetaProperty ../../include/QtCore/QMetaClassInfo ../../include/QtCore/QMetaType ../../include/QtCore/QMetaTypeId ../../include/QtCore/QMetaTypeId2 ../../include/QtCore/QMimeData ../../include/QtCore/QObjectList ../../include/QtCore/QObjectData ../../include/QtCore/QObject ../../include/QtCore/QObjectUserData ../../include/QtCore/QObjectCleanupHandler ../../include/QtCore/QGenericArgument ../../include/QtCore/QGenericReturnArgument ../../include/QtCore/QArgument ../../include/QtCore/QReturnArgument ../../include/QtCore/QMetaObject ../../include/QtCore/QMetaObjectAccessor ../../include/QtCore/QMetaObjectExtraData ../../include/QtCore/QPointer ../../include/QtCore/QSharedMemory ../../include/QtCore/QSignalMapper ../../include/QtCore/QSocketNotifier ../../include/QtCore/QSystemSemaphore ../../include/QtCore/QTimer ../../include/QtCore/QTranslator ../../include/QtCore/QVariant ../../include/QtCore/QVariantList ../../include/QtCore/QVariantMap ../../include/QtCore/QVariantHash ../../include/QtCore/QVariantComparisonHelper ../../include/QtCore/QFactoryInterface ../../include/QtCore/QLibrary ../../include/QtCore/QtPlugin ../../include/QtCore/QtPluginInstanceFunction ../../include/QtCore/QPluginLoader ../../include/QtCore/QUuid ../../include/QtCore/QtEndian ../../include/QtCore/QtGlobal ../../include/QtCore/QIntegerForSize ../../include/QtCore/QNoImplicitBoolCast ../../include/QtCore/Q_INT8 ../../include/QtCore/Q_UINT8 ../../include/QtCore/Q_INT16 ../../include/QtCore/Q_UINT16 ../../include/QtCore/Q_INT32 ../../include/QtCore/Q_UINT32 ../../include/QtCore/Q_INT64 ../../include/QtCore/Q_UINT64 ../../include/QtCore/Q_LLONG ../../include/QtCore/Q_ULLONG ../../include/QtCore/Q_LONG ../../include/QtCore/Q_ULONG ../../include/QtCore/QSysInfo ../../include/QtCore/QtMsgHandler ../../include/QtCore/QGlobalStatic ../../include/QtCore/QGlobalStaticDeleter ../../include/QtCore/QBool ../../include/QtCore/QTypeInfo ../../include/QtCore/QFlag ../../include/QtCore/QIncompatibleFlag ../../include/QtCore/QFlags ../../include/QtCore/QForeachContainer ../../include/QtCore/QForeachContainerBase ../../include/QtCore/QLibraryInfo ../../include/QtCore/Qt ../../include/QtCore/QInternal ../../include/QtCore/QCOORD ../../include/QtCore/QtConfig ../../include/QtCore/QTextCodec ../../include/QtCore/QTextEncoder ../../include/QtCore/QTextDecoder ../../include/QtCore/QTextCodecFactoryInterface ../../include/QtCore/QTextCodecPlugin ../../include/QtCore/QAbstractFileEngine ../../include/QtCore/QAbstractFileEngineHandler ../../include/QtCore/QAbstractFileEngineIterator ../../include/QtCore/QBuffer ../../include/QtCore/QDataStream ../../include/QtCore/QtDebug ../../include/QtCore/QDebug ../../include/QtCore/QNoDebug ../../include/QtCore/QDir ../../include/QtCore/QDirIterator ../../include/QtCore/QFile ../../include/QtCore/QFileInfo ../../include/QtCore/QFileInfoList ../../include/QtCore/QFileInfoListIterator ../../include/QtCore/QFileSystemWatcher ../../include/QtCore/QFSFileEngine ../../include/QtCore/QIODevice ../../include/QtCore/Q_PID ../../include/QtCore/QProcessEnvironment ../../include/QtCore/QProcess ../../include/QtCore/QResource ../../include/QtCore/QSettings ../../include/QtCore/QTemporaryFile ../../include/QtCore/QTextStream ../../include/QtCore/QTextStreamFunction ../../include/QtCore/QTextStreamManipulator ../../include/QtCore/QTS ../../include/QtCore/QTextIStream ../../include/QtCore/QTextOStream ../../include/QtCore/QUrl ../../include/QtCore/QAbstractAnimation ../../include/QtCore/QAnimationDriver ../../include/QtCore/QAnimationGroup ../../include/QtCore/QParallelAnimationGroup ../../include/QtCore/QPauseAnimation ../../include/QtCore/QPropertyAnimation ../../include/QtCore/QSequentialAnimationGroup ../../include/QtCore/QVariantAnimation ../../include/QtCore/QtAlgorithms ../../include/QtCore/QBitArray ../../include/QtCore/QBitRef ../../include/QtCore/QByteArray ../../include/QtCore/QByteRef ../../include/QtCore/QByteArrayMatcher ../../include/QtCore/QCache ../../include/QtCore/QLatin1Char ../../include/QtCore/QChar ../../include/QtCore/QtContainerFwd ../../include/QtCore/QContiguousCacheData ../../include/QtCore/QContiguousCacheTypedData ../../include/QtCore/QContiguousCache ../../include/QtCore/QCryptographicHash ../../include/QtCore/QDate ../../include/QtCore/QTime ../../include/QtCore/QDateTime ../../include/QtCore/QEasingCurve ../../include/QtCore/QElapsedTimer ../../include/QtCore/QHashData ../../include/QtCore/QHashDummyValue ../../include/QtCore/QHashDummyNode ../../include/QtCore/QHashNode ../../include/QtCore/QHash ../../include/QtCore/QMultiHash ../../include/QtCore/QHashIterator ../../include/QtCore/QMutableHashIterator ../../include/QtCore/QLine ../../include/QtCore/QLineF ../../include/QtCore/QLinkedListData ../../include/QtCore/QLinkedListNode ../../include/QtCore/QLinkedList ../../include/QtCore/QLinkedListIterator ../../include/QtCore/QMutableLinkedListIterator ../../include/QtCore/QListData ../../include/QtCore/QList ../../include/QtCore/QListIterator ../../include/QtCore/QMutableListIterator ../../include/QtCore/QSystemLocale ../../include/QtCore/QLocale ../../include/QtCore/QBBSystemLocaleData ../../include/QtCore/QMapData ../../include/QtCore/QMapNode ../../include/QtCore/QMapPayloadNode ../../include/QtCore/QMap ../../include/QtCore/QMultiMap ../../include/QtCore/QMapIterator ../../include/QtCore/QMutableMapIterator ../../include/QtCore/QMargins ../../include/QtCore/QPair ../../include/QtCore/QPoint ../../include/QtCore/QPointF ../../include/QtCore/QQueue ../../include/QtCore/QRect ../../include/QtCore/QRectF ../../include/QtCore/QRegExp ../../include/QtCore/QScopedPointerDeleter ../../include/QtCore/QScopedPointerArrayDeleter ../../include/QtCore/QScopedPointerPodDeleter ../../include/QtCore/QScopedPointer ../../include/QtCore/QScopedArrayPointer ../../include/QtCore/QScopedValueRollback ../../include/QtCore/QSet ../../include/QtCore/QSetIterator ../../include/QtCore/QMutableSetIterator ../../include/QtCore/QSharedData ../../include/QtCore/QSharedDataPointer ../../include/QtCore/QExplicitlySharedDataPointer ../../include/QtCore/QSharedPointer ../../include/QtCore/QWeakPointer ../../include/QtCore/QSize ../../include/QtCore/QSizeF ../../include/QtCore/QStack ../../include/QtCore/QStdWString ../../include/QtCore/QString ../../include/QtCore/QLatin1String ../../include/QtCore/QCharRef ../../include/QtCore/QConstString ../../include/QtCore/QStringRef ../../include/QtCore/QLatin1Literal ../../include/QtCore/QAbstractConcatenable ../../include/QtCore/QConcatenable ../../include/QtCore/QStringBuilder ../../include/QtCore/QStringListIterator ../../include/QtCore/QMutableStringListIterator ../../include/QtCore/QStringList ../../include/QtCore/QStringMatcher ../../include/QtCore/QTextBoundaryFinder ../../include/QtCore/QTimeLine ../../include/QtCore/QVarLengthArray ../../include/QtCore/QVectorData ../../include/QtCore/QVectorTypedData ../../include/QtCore/QVector ../../include/QtCore/QVectorIterator ../../include/QtCore/QMutableVectorIterator >+ SYNCQT.PRIVATE_HEADER_FILES = ../corelib/statemachine/qabstractstate_p.h ../corelib/statemachine/qabstracttransition_p.h ../corelib/statemachine/qeventtransition_p.h ../corelib/statemachine/qhistorystate_p.h ../corelib/statemachine/qsignaleventgenerator_p.h ../corelib/statemachine/qsignaltransition_p.h ../corelib/statemachine/qstate_p.h ../corelib/statemachine/qstatemachine_p.h ../corelib/thread/qmutex_p.h ../corelib/thread/qmutexpool_p.h ../corelib/thread/qorderedmutexlocker_p.h ../corelib/thread/qreadwritelock_p.h ../corelib/thread/qthread_p.h ../corelib/xml/qxmlstream_p.h ../corelib/xml/qxmlutils_p.h ../corelib/concurrent/qfutureinterface_p.h ../corelib/concurrent/qfuturewatcher_p.h ../corelib/concurrent/qthreadpool_p.h ../corelib/kernel/qabstracteventdispatcher_p.h ../corelib/kernel/qabstractitemmodel_p.h ../corelib/kernel/qcore_mac_p.h ../corelib/kernel/qcore_symbian_p.h ../corelib/kernel/qcore_unix_p.h ../corelib/kernel/qcoreapplication_p.h ../corelib/kernel/qcorecmdlineargs_p.h ../corelib/kernel/qcoreglobaldata_p.h ../corelib/kernel/qcrashhandler_p.h ../corelib/kernel/qeventdispatcher_blackberry_p.h ../corelib/kernel/qeventdispatcher_glib_p.h ../corelib/kernel/qeventdispatcher_symbian_p.h ../corelib/kernel/qeventdispatcher_unix_p.h ../corelib/kernel/qeventdispatcher_win_p.h ../corelib/kernel/qfunctions_p.h ../corelib/kernel/qmetaobject_p.h ../corelib/kernel/qobject_p.h ../corelib/kernel/qsharedmemory_p.h ../corelib/kernel/qsystemerror_p.h ../corelib/kernel/qsystemsemaphore_p.h ../corelib/kernel/qtranslator_p.h ../corelib/kernel/qvariant_p.h ../corelib/kernel/qwineventnotifier_p.h ../corelib/plugin/qelfparser_p.h ../corelib/plugin/qfactoryloader_p.h ../corelib/plugin/qlibrary_p.h ../corelib/plugin/qsystemlibrary_p.h ../corelib/global/qnumeric_p.h ../corelib/global/qt_pch.h ../corelib/codecs/qfontlaocodec_p.h ../corelib/codecs/qiconvcodec_p.h ../corelib/codecs/qisciicodec_p.h ../corelib/codecs/qlatincodec_p.h ../corelib/codecs/qsimplecodec_p.h ../corelib/codecs/qtextcodec_p.h ../corelib/codecs/qtsciicodec_p.h ../corelib/codecs/qutfcodec_p.h ../corelib/io/qabstractfileengine_p.h ../corelib/io/qdatastream_p.h ../corelib/io/qdataurl_p.h ../corelib/io/qdir_p.h ../corelib/io/qfile_p.h ../corelib/io/qfileinfo_p.h ../corelib/io/qfilesystemengine_p.h ../corelib/io/qfilesystementry_p.h ../corelib/io/qfilesystemiterator_p.h ../corelib/io/qfilesystemmetadata_p.h ../corelib/io/qfilesystemwatcher_dnotify_p.h ../corelib/io/qfilesystemwatcher_fsevents_p.h ../corelib/io/qfilesystemwatcher_inotify_p.h ../corelib/io/qfilesystemwatcher_kqueue_p.h ../corelib/io/qfilesystemwatcher_p.h ../corelib/io/qfilesystemwatcher_symbian_p.h ../corelib/io/qfilesystemwatcher_win_p.h ../corelib/io/qfsfileengine_iterator_p.h ../corelib/io/qfsfileengine_p.h ../corelib/io/qiodevice_p.h ../corelib/io/qnoncontiguousbytedevice_p.h ../corelib/io/qprocess_p.h ../corelib/io/qresource_iterator_p.h ../corelib/io/qresource_p.h ../corelib/io/qsettings_p.h ../corelib/io/qtldurl_p.h ../corelib/io/qurltlds_p.h ../corelib/io/qwindowspipewriter_p.h ../corelib/animation/qabstractanimation_p.h ../corelib/animation/qanimationgroup_p.h ../corelib/animation/qparallelanimationgroup_p.h ../corelib/animation/qpropertyanimation_p.h ../corelib/animation/qsequentialanimationgroup_p.h ../corelib/animation/qvariantanimation_p.h ../corelib/tools/qbytedata_p.h ../corelib/tools/qdatetime_p.h ../corelib/tools/qharfbuzz_p.h ../corelib/tools/qlocale_data_p.h ../corelib/tools/qlocale_p.h ../corelib/tools/qlocale_tools_p.h ../corelib/tools/qpodlist_p.h ../corelib/tools/qringbuffer_p.h ../corelib/tools/qscopedpointer_p.h ../corelib/tools/qsimd_p.h ../corelib/tools/qtools_p.h ../corelib/tools/qunicodetables_p.h >+Index: b/src/corelib/arch/aarch64/qatomic_aarch64.cpp >+=================================================================== >+--- /dev/null >++++ b/src/corelib/arch/aarch64/qatomic_aarch64.cpp >+@@ -0,0 +1,70 @@ >++/**************************************************************************** >++** >++** Copyright (C) 2012, 2013 Digia Plc and/or its subsidiary(-ies). >++** Contact: http://www.qt-project.org/legal >++** >++** This file is part of the QtCore module of the Qt Toolkit. >++** >++** $QT_BEGIN_LICENSE:LGPL$ >++** Commercial License Usage >++** Licensees holding valid commercial Qt licenses may use this file in >++** accordance with the commercial license agreement provided with the >++** Software or, alternatively, in accordance with the terms contained in >++** a written agreement between you and Digia. For licensing terms and >++** conditions see http://qt.digia.com/licensing. For further information >++** use the contact form at http://qt.digia.com/contact-us. >++** >++** GNU Lesser General Public License Usage >++** Alternatively, this file may be used under the terms of the GNU Lesser >++** General Public License version 2.1 as published by the Free Software >++** Foundation and appearing in the file LICENSE.LGPL included in the >++** packaging of this file. Please review the following information to >++** ensure the GNU Lesser General Public License version 2.1 requirements >++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. >++** >++** In addition, as a special exception, Digia gives you certain additional >++** rights. These rights are described in the Digia Qt LGPL Exception >++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. >++** >++** GNU General Public License Usage >++** Alternatively, this file may be used under the terms of the GNU >++** General Public License version 3.0 as published by the Free Software >++** Foundation and appearing in the file LICENSE.GPL included in the >++** packaging of this file. Please review the following information to >++** ensure the GNU General Public License version 3.0 requirements will be >++** met: http://www.gnu.org/copyleft/gpl.html. >++** >++** >++** $QT_END_LICENSE$ >++** >++****************************************************************************/ >++ >++#include <QtCore/qglobal.h> >++ >++#include <unistd.h> >++#ifdef _POSIX_PRIORITY_SCHEDULING >++# include <sched.h> >++#endif >++#include <time.h> >++ >++QT_BEGIN_NAMESPACE >++ >++QT_USE_NAMESPACE >++ >++Q_CORE_EXPORT void qt_atomic_yield(int *count) >++{ >++#ifdef _POSIX_PRIORITY_SCHEDULING >++ if((*count)++ < 50) { >++ sched_yield(); >++ } else >++#endif >++ { >++ struct timespec tm; >++ tm.tv_sec = 0; >++ tm.tv_nsec = 2000001; >++ nanosleep(&tm, NULL); >++ *count = 0; >++ } >++} >++ >++QT_END_NAMESPACE >+Index: b/src/corelib/arch/arch.pri >+=================================================================== >+--- a/src/corelib/arch/arch.pri >++++ b/src/corelib/arch/arch.pri >+@@ -31,7 +31,9 @@ >+ arch/qatomic_s390.h \ >+ arch/qatomic_x86_64.h \ >+ arch/qatomic_sh.h \ >+- arch/qatomic_sh4a.h >++ arch/qatomic_sh4a.h \ >++ arch/qatomic_aarch64.h \ >++ >+ >+ QT_ARCH_CPP = $$QT_SOURCE_TREE/src/corelib/arch/$$QT_ARCH >+ DEPENDPATH += $$QT_ARCH_CPP >+Index: b/src/corelib/arch/qatomic_aarch64.h >+=================================================================== >+--- /dev/null >++++ b/src/corelib/arch/qatomic_aarch64.h >+@@ -0,0 +1,335 @@ >++/**************************************************************************** >++** >++** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). >++** Contact: http://www.qt-project.org/legal >++** >++** This file is part of the QtCore module of the Qt Toolkit. >++** >++** $QT_BEGIN_LICENSE:LGPL$ >++** Commercial License Usage >++** Licensees holding valid commercial Qt licenses may use this file in >++** accordance with the commercial license agreement provided with the >++** Software or, alternatively, in accordance with the terms contained in >++** a written agreement between you and Digia. For licensing terms and >++** conditions see http://qt.digia.com/licensing. For further information >++** use the contact form at http://qt.digia.com/contact-us. >++** >++** GNU Lesser General Public License Usage >++** Alternatively, this file may be used under the terms of the GNU Lesser >++** General Public License version 2.1 as published by the Free Software >++** Foundation and appearing in the file LICENSE.LGPL included in the >++** packaging of this file. Please review the following information to >++** ensure the GNU Lesser General Public License version 2.1 requirements >++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. >++** >++** In addition, as a special exception, Digia gives you certain additional >++** rights. These rights are described in the Digia Qt LGPL Exception >++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. >++** >++** GNU General Public License Usage >++** Alternatively, this file may be used under the terms of the GNU >++** General Public License version 3.0 as published by the Free Software >++** Foundation and appearing in the file LICENSE.GPL included in the >++** packaging of this file. Please review the following information to >++** ensure the GNU General Public License version 3.0 requirements will be >++** met: http://www.gnu.org/copyleft/gpl.html. >++** >++** >++** $QT_END_LICENSE$ >++** >++****************************************************************************/ >++ >++#ifndef QATOMIC_AARCH64_H >++#define QATOMIC_AARCH64_H >++ >++QT_BEGIN_HEADER >++ >++QT_BEGIN_NAMESPACE >++ >++#define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE >++ >++inline bool QBasicAtomicInt::isReferenceCountingNative() >++{ return true; } >++inline bool QBasicAtomicInt::isReferenceCountingWaitFree() >++{ return false; } >++ >++#define Q_ATOMIC_INT_TEST_AND_SET_IS_ALWAYS_NATIVE >++ >++inline bool QBasicAtomicInt::isTestAndSetNative() >++{ return true; } >++inline bool QBasicAtomicInt::isTestAndSetWaitFree() >++{ return false; } >++ >++#define Q_ATOMIC_INT_FETCH_AND_STORE_IS_ALWAYS_NATIVE >++ >++inline bool QBasicAtomicInt::isFetchAndStoreNative() >++{ return true; } >++inline bool QBasicAtomicInt::isFetchAndStoreWaitFree() >++{ return false; } >++ >++#define Q_ATOMIC_INT_FETCH_AND_ADD_IS_ALWAYS_NATIVE >++ >++inline bool QBasicAtomicInt::isFetchAndAddNative() >++{ return true; } >++inline bool QBasicAtomicInt::isFetchAndAddWaitFree() >++{ return false; } >++ >++#define Q_ATOMIC_POINTER_TEST_AND_SET_IS_ALWAYS_NATIVE >++ >++template <typename T> >++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isTestAndSetNative() >++{ return true; } >++template <typename T> >++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isTestAndSetWaitFree() >++{ return false; } >++ >++#define Q_ATOMIC_POINTER_FETCH_AND_STORE_IS_ALWAYS_NATIVE >++ >++template <typename T> >++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isFetchAndStoreNative() >++{ return true; } >++template <typename T> >++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isFetchAndStoreWaitFree() >++{ return false; } >++ >++#define Q_ATOMIC_POINTER_FETCH_AND_ADD_IS_ALWAYS_NATIVE >++ >++template <typename T> >++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isFetchAndAddNative() >++{ return true; } >++template <typename T> >++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isFetchAndAddWaitFree() >++{ return false; } >++ >++#ifndef Q_DATA_MEMORY_BARRIER >++# define Q_DATA_MEMORY_BARRIER asm volatile("dmb sy\n":::"memory") >++#endif >++#ifndef Q_COMPILER_MEMORY_BARRIER >++# define Q_COMPILER_MEMORY_BARRIER asm volatile("":::"memory") >++#endif >++ >++inline bool QBasicAtomicInt::ref() >++{ >++ int newValue; >++ >++ Q_COMPILER_MEMORY_BARRIER; >++ newValue = __atomic_add_fetch(&_q_value, 1, __ATOMIC_ACQ_REL); >++ Q_COMPILER_MEMORY_BARRIER; >++ >++ return newValue != 0; >++} >++ >++inline bool QBasicAtomicInt::deref() >++{ >++ int newValue; >++ >++ Q_COMPILER_MEMORY_BARRIER; >++ newValue = __atomic_sub_fetch(&_q_value, 1, __ATOMIC_ACQ_REL); >++ Q_COMPILER_MEMORY_BARRIER; >++ >++ return newValue != 0; >++} >++ >++inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue) >++{ >++ bool val; >++ >++ Q_COMPILER_MEMORY_BARRIER; >++ val = __atomic_compare_exchange_n (&_q_value, &expectedValue, newValue, >++ false, __ATOMIC_RELAXED, __ATOMIC_RELAXED); >++ Q_COMPILER_MEMORY_BARRIER; >++ return val; >++} >++ >++inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue) >++{ >++ int val; >++ Q_COMPILER_MEMORY_BARRIER; >++ val = __atomic_exchange_n(&_q_value, newValue, __ATOMIC_RELAXED); >++ Q_COMPILER_MEMORY_BARRIER; >++ return val; >++} >++ >++inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd) >++{ >++ int val; >++ Q_COMPILER_MEMORY_BARRIER; >++ val = __atomic_fetch_add(&_q_value, valueToAdd, __ATOMIC_RELAXED); >++ Q_COMPILER_MEMORY_BARRIER; >++ return val; >++} >++ >++template <typename T> >++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue) >++{ >++ bool val; >++ Q_COMPILER_MEMORY_BARRIER; >++ val = __atomic_compare_exchange_n (&_q_value, &expectedValue, newValue, >++ false, __ATOMIC_RELAXED, __ATOMIC_RELAXED); >++ Q_COMPILER_MEMORY_BARRIER; >++ return val; >++} >++ >++template <typename T> >++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue) >++{ >++ T *val; >++ Q_COMPILER_MEMORY_BARRIER; >++ val = __atomic_exchange_n(&_q_value, newValue, __ATOMIC_RELAXED); >++ Q_COMPILER_MEMORY_BARRIER; >++ return val; >++} >++ >++template <typename T> >++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueToAdd) >++{ >++ T *val; >++ Q_COMPILER_MEMORY_BARRIER; >++ val = __atomic_fetch_add(&_q_value, valueToAdd, __ATOMIC_RELAXED); >++ Q_COMPILER_MEMORY_BARRIER; >++ return val; >++} >++ >++inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue) >++{ >++ bool returnValue = testAndSetRelaxed(expectedValue, newValue); >++ Q_DATA_MEMORY_BARRIER; >++ return returnValue; >++} >++ >++inline bool QBasicAtomicInt::testAndSetRelease(int expectedValue, int newValue) >++{ >++ Q_DATA_MEMORY_BARRIER; >++ return testAndSetRelaxed(expectedValue, newValue); >++} >++ >++inline bool QBasicAtomicInt::testAndSetOrdered(int expectedValue, int newValue) >++{ >++ Q_DATA_MEMORY_BARRIER; >++ bool returnValue = testAndSetRelaxed(expectedValue, newValue); >++ Q_COMPILER_MEMORY_BARRIER; >++ return returnValue; >++} >++ >++inline int QBasicAtomicInt::fetchAndStoreAcquire(int newValue) >++{ >++ int returnValue = fetchAndStoreRelaxed(newValue); >++ Q_DATA_MEMORY_BARRIER; >++ return returnValue; >++} >++ >++inline int QBasicAtomicInt::fetchAndStoreRelease(int newValue) >++{ >++ Q_DATA_MEMORY_BARRIER; >++ return fetchAndStoreRelaxed(newValue); >++} >++ >++inline int QBasicAtomicInt::fetchAndStoreOrdered(int newValue) >++{ >++ Q_DATA_MEMORY_BARRIER; >++ int returnValue = fetchAndStoreRelaxed(newValue); >++ Q_COMPILER_MEMORY_BARRIER; >++ return returnValue; >++} >++ >++inline int QBasicAtomicInt::fetchAndAddAcquire(int valueToAdd) >++{ >++ int returnValue = fetchAndAddRelaxed(valueToAdd); >++ Q_DATA_MEMORY_BARRIER; >++ return returnValue; >++} >++ >++inline int QBasicAtomicInt::fetchAndAddRelease(int valueToAdd) >++{ >++ Q_DATA_MEMORY_BARRIER; >++ return fetchAndAddRelaxed(valueToAdd); >++} >++ >++inline int QBasicAtomicInt::fetchAndAddOrdered(int valueToAdd) >++{ >++ Q_DATA_MEMORY_BARRIER; >++ int returnValue = fetchAndAddRelaxed(valueToAdd); >++ Q_COMPILER_MEMORY_BARRIER; >++ return returnValue; >++} >++ >++template <typename T> >++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetAcquire(T *expectedValue, T *newValue) >++{ >++ bool returnValue = testAndSetRelaxed(expectedValue, newValue); >++ Q_DATA_MEMORY_BARRIER; >++ return returnValue; >++} >++ >++template <typename T> >++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelease(T *expectedValue, T *newValue) >++{ >++ Q_DATA_MEMORY_BARRIER; >++ return testAndSetRelaxed(expectedValue, newValue); >++} >++ >++template <typename T> >++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetOrdered(T *expectedValue, T *newValue) >++{ >++ Q_DATA_MEMORY_BARRIER; >++ bool returnValue = testAndSetAcquire(expectedValue, newValue); >++ Q_COMPILER_MEMORY_BARRIER; >++ return returnValue; >++} >++ >++template <typename T> >++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreAcquire(T *newValue) >++{ >++ T *returnValue = fetchAndStoreRelaxed(newValue); >++ Q_DATA_MEMORY_BARRIER; >++ return returnValue; >++} >++ >++template <typename T> >++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelease(T *newValue) >++{ >++ Q_DATA_MEMORY_BARRIER; >++ return fetchAndStoreRelaxed(newValue); >++} >++ >++template <typename T> >++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreOrdered(T *newValue) >++{ >++ Q_DATA_MEMORY_BARRIER; >++ T *returnValue = fetchAndStoreRelaxed(newValue); >++ Q_COMPILER_MEMORY_BARRIER; >++ return returnValue; >++} >++ >++template <typename T> >++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddAcquire(qptrdiff valueToAdd) >++{ >++ T *returnValue = fetchAndAddRelaxed(valueToAdd); >++ Q_DATA_MEMORY_BARRIER; >++ return returnValue; >++} >++ >++template <typename T> >++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueToAdd) >++{ >++ Q_DATA_MEMORY_BARRIER; >++ return fetchAndAddRelaxed(valueToAdd); >++} >++ >++template <typename T> >++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddOrdered(qptrdiff valueToAdd) >++{ >++ Q_DATA_MEMORY_BARRIER; >++ T *returnValue = fetchAndAddRelaxed(valueToAdd); >++ Q_COMPILER_MEMORY_BARRIER; >++ return returnValue; >++} >++ >++#undef Q_DATA_MEMORY_BARRIER >++#undef Q_COMPILER_MEMORY_BARRIER >++ >++QT_END_NAMESPACE >++ >++QT_END_HEADER >++ >++#endif // QATOMIC_AARCH64_H >+Index: b/src/corelib/arch/qatomic_arch.h >+=================================================================== >+--- a/src/corelib/arch/qatomic_arch.h >++++ b/src/corelib/arch/qatomic_arch.h >+@@ -92,6 +92,8 @@ >+ # include "QtCore/qatomic_sh4a.h" >+ #elif defined(QT_ARCH_NACL) >+ # include "QtCore/qatomic_generic.h" >++#elif defined(QT_ARCH_AARCH64) >++# include "QtCore/qatomic_aarch64.h" >+ #else >+ # error "Qt has not been ported to this architecture" >+ #endif >+Index: b/src/corelib/io/qfilesystemwatcher_inotify.cpp >+=================================================================== >+--- a/src/corelib/io/qfilesystemwatcher_inotify.cpp >++++ b/src/corelib/io/qfilesystemwatcher_inotify.cpp >+@@ -138,6 +138,11 @@ >+ # define __NR_inotify_add_watch 285 >+ # define __NR_inotify_rm_watch 286 >+ # define __NR_inotify_init1 328 >++#elif defined (__aarch64__) >++# define __NR_inotify_init1 26 >++# define __NR_inotify_add_watch 27 >++# define __NR_inotify_rm_watch 28 >++// no inotify_init for aarch64 >+ #else >+ # error "This architecture is not supported. Please talk to qt-bugs@trolltech.com" >+ #endif >+@@ -155,7 +160,11 @@ >+ >+ static inline int inotify_init() >+ { >++#ifdef __NR_inotify_init >+ return syscall(__NR_inotify_init); >++#else >++ return syscall(__NR_inotify_init1, 0); >++#endif >+ } >+ >+ static inline int inotify_add_watch(int fd, const char *name, __u32 mask) >diff --git a/qt.spec b/qt.spec >index 52230bc..4dbe08b 100644 >--- a/qt.spec >+++ b/qt.spec >@@ -29,7 +29,7 @@ Summary: Qt toolkit > Name: qt > Epoch: 1 > Version: 4.8.5 >-Release: 12%{?dist} >+Release: 13%{?dist} > > # See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details > License: (LGPLv2 with exceptions or GPLv3 with exceptions) and ASL 2.0 and BSD and FTL and MIT >@@ -160,6 +160,10 @@ Patch113: qt-everywhere-opensource-src-4.8.5-QTBUG-22829.patch > # REVERT, causes regressions http://bugzilla.redhat.com/968794 > #Patch155: qt-everywhere-opensource-src-4.8-QTBUG-27809.patch > >+# aarch64 support >+# https://bugreports.qt-project.org/browse/QTBUG-35442 >+Patch180: qt-aarch64.patch >+ > ## upstream git > # related prereq patch to 0162 below > Patch1147: 0147-Disallow-deep-or-widely-nested-entity-references.patch >@@ -534,6 +538,9 @@ rm -fv mkspecs/linux-g++*/qmake.conf.multilib-optflags > %patch113 -p1 -b .QTBUG-22829 > #patch155 -p1 -b .QTBUG-27809 > >+# aarch64 >+%patch180 -p1 -b .aarch64 >+ > # security fixes > %patch1147 -p1 -b .0147 > %patch1162 -p1 -b .0162 >@@ -553,6 +560,11 @@ RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed 's|-fexceptions||g'` > %define platform linux-g++ > %endif > >+# qt mkspecs makes assumptions about CFLAGS where it should distro defaults >+%ifarch aarch64 >+%define platform linux-g++-aarch64 >+%endif >+ > sed -i -e "s|-O2|$RPM_OPT_FLAGS|g" \ > mkspecs/%{platform}/qmake.conf > >@@ -1228,6 +1240,9 @@ fi > > > %changelog >+* Mon Dec 23 2013 Peter Robinson <pbrobinson@fedoraproject.org> 4.8.5-13 >+- Add patch for aarch64 support >+ > * Thu Dec 05 2013 Rex Dieter <rdieter@fedoraproject.org> 4.8.5-12 > - XML Entity Expansion Denial of Service (CVE-2013-4549) >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 1046360
: 841322