diff options
| author | Kai Kang <kai.kang@windriver.com> | 2015-06-02 09:52:57 +0800 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-06-08 17:30:50 +0100 |
| commit | 4d033fdc5e754e22edb2e9074e30e58847c4b791 (patch) | |
| tree | 85189088f467605738c715ae5b2dcdc78c729354 /meta | |
| parent | 3b1d89a51445cf526ca84eb5b53de434f9585d6e (diff) | |
| download | openembedded-core-4d033fdc5e754e22edb2e9074e30e58847c4b791.tar.gz openembedded-core-4d033fdc5e754e22edb2e9074e30e58847c4b791.tar.bz2 openembedded-core-4d033fdc5e754e22edb2e9074e30e58847c4b791.zip | |
qt4: upgrade to 4.8.7
Upgrade qt4 packages from version 4.8.6 to 4.8.7.
* remove arm64 related patches which are merged
* remove 0034-Fix-a-division-by-zero-when-processing-malformed-BMP.patch
which is backported.
* update 0010-configure-Hack-to-not-use-the-pg_config-of-the-host-.patch
and 0013-configure-add-crossarch-option.patch for new version
* remove useless variable INC_PR
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Diffstat (limited to 'meta')
| -rw-r--r-- | meta/recipes-qt/qt4/nativesdk-qt4-tools.inc | 2 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/nativesdk-qt4-tools_4.8.6.bb | 6 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/nativesdk-qt4-tools_4.8.7.bb | 6 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.6/0029-aarch64_arm64_fix_arch_detection.patch | 53 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.6/0030-aarch64_arm64_qatomic_support.patch | 491 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.6/0031-aarch64_arm64_mkspecs.patch | 124 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.6/0032-aarch64_add_header.patch | 18 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.6/0034-Fix-a-division-by-zero-when-processing-malformed-BMP.patch | 44 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7.inc (renamed from meta/recipes-qt/qt4/qt4-4.8.6.inc) | 9 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0001-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0001-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0002-qkbdtty_qws-fix-build-with-old-kernel-headers.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0002-qkbdtty_qws-fix-build-with-old-kernel-headers.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0003-webkit2-set-OUTPUT_DIR-value-if-empty.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0003-webkit2-set-OUTPUT_DIR-value-if-empty.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0004-configure-qmake-is-already-built-in-qt4-tools-native.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0004-configure-qmake-is-already-built-in-qt4-tools-native.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0005-configure-set-LFLAGS-to-pick-up-zlib-from-staging.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0005-configure-set-LFLAGS-to-pick-up-zlib-from-staging.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0006-configure-Use-OE_QMAKE_-values-to-specify-Qt-utility.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0006-configure-Use-OE_QMAKE_-values-to-specify-Qt-utility.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0007-dbus-Remove-const-usage-that-causes-compile-failure-.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0007-dbus-Remove-const-usage-that-causes-compile-failure-.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0008-qmake.pro-Allow-building-a-separate-qmake-for-the-ta.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0008-qmake.pro-Allow-building-a-separate-qmake-for-the-ta.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0009-qmake-fix-source-file-references-in-qmake.pri.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0009-qmake-fix-source-file-references-in-qmake.pri.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0010-configure-Hack-to-not-use-the-pg_config-of-the-host-.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0010-configure-Hack-to-not-use-the-pg_config-of-the-host-.patch) | 20 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0011-freetype-host-includes.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0011-freetype-host-includes.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0012-Add-2bpp-support.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0012-Add-2bpp-support.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0013-configure-add-crossarch-option.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0013-configure-add-crossarch-option.patch) | 22 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0014-translations-fix-phony-translation-linking-error.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0014-translations-fix-phony-translation-linking-error.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0015-configure-add-nostrip-for-debug-packages.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0015-configure-add-nostrip-for-debug-packages.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0016-configure-eval-QMAKE_CXX.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0016-configure-eval-QMAKE_CXX.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0017-configure-ensure-we-identify-the-compiler-as-g-in-co.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0017-configure-ensure-we-identify-the-compiler-as-g-in-co.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0018-configure-make-pulseaudio-a-configurable-option.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0018-configure-make-pulseaudio-a-configurable-option.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0019-Fixes-for-gcc-4.7.0-particularly-on-qemux86.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0019-Fixes-for-gcc-4.7.0-particularly-on-qemux86.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0021-configure-make-qt4-native-work-with-long-building-pa.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0021-configure-make-qt4-native-work-with-long-building-pa.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0027-tools.pro-disable-qmeegographicssystemhelper.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0027-tools.pro-disable-qmeegographicssystemhelper.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0028-Don-t-crash-on-broken-GIF-images.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0028-Don-t-crash-on-broken-GIF-images.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/0033-configure-support-c-0x-standard-for-directfd.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/0033-configure-support-c-0x-standard-for-directfd.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/Fix-QWSLock-invalid-argument-logs.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/Fix-QWSLock-invalid-argument-logs.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/add_check_for_aarch64_32.patch (renamed from meta/recipes-qt/qt4/qt4-4.8.6/add_check_for_aarch64_32.patch) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/g++.conf (renamed from meta/recipes-qt/qt4/qt4-4.8.6/g++.conf) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/linux.conf (renamed from meta/recipes-qt/qt4/qt4-4.8.6/linux.conf) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-4.8.7/qte.sh (renamed from meta/recipes-qt/qt4/qt4-4.8.6/qte.sh) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-embedded.inc | 1 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-embedded_4.8.7.bb (renamed from meta/recipes-qt/qt4/qt4-embedded_4.8.6.bb) | 0 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-native.inc | 6 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-native_4.8.6.bb | 6 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-native_4.8.7.bb | 6 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-x11-free.inc | 2 | ||||
| -rw-r--r-- | meta/recipes-qt/qt4/qt4-x11-free_4.8.7.bb (renamed from meta/recipes-qt/qt4/qt4-x11-free_4.8.6.bb) | 0 |
44 files changed, 39 insertions, 777 deletions
diff --git a/meta/recipes-qt/qt4/nativesdk-qt4-tools.inc b/meta/recipes-qt/qt4/nativesdk-qt4-tools.inc index 1c9ee2e6ea..aa84e3dcfd 100644 --- a/meta/recipes-qt/qt4/nativesdk-qt4-tools.inc +++ b/meta/recipes-qt/qt4/nativesdk-qt4-tools.inc @@ -4,8 +4,6 @@ SECTION = "libs" HOMEPAGE = "http://qt-project.org/" LICENSE = "LGPLv2.1 | GPLv3" -INC_PR = "r13" - FILESEXTRAPATHS =. "${FILE_DIRNAME}/qt4-${PV}:" inherit nativesdk qmake2 diff --git a/meta/recipes-qt/qt4/nativesdk-qt4-tools_4.8.6.bb b/meta/recipes-qt/qt4/nativesdk-qt4-tools_4.8.6.bb deleted file mode 100644 index 00526b891d..0000000000 --- a/meta/recipes-qt/qt4/nativesdk-qt4-tools_4.8.6.bb +++ /dev/null @@ -1,6 +0,0 @@ -require nativesdk-qt4-tools.inc - -SRC_URI += "file://0009-qmake-fix-source-file-references-in-qmake.pri.patch" - -SRC_URI[md5sum] = "2edbe4d6c2eff33ef91732602f3518eb" -SRC_URI[sha256sum] = "8b14dd91b52862e09b8e6a963507b74bc2580787d171feda197badfa7034032c" diff --git a/meta/recipes-qt/qt4/nativesdk-qt4-tools_4.8.7.bb b/meta/recipes-qt/qt4/nativesdk-qt4-tools_4.8.7.bb new file mode 100644 index 0000000000..90ba07c9e1 --- /dev/null +++ b/meta/recipes-qt/qt4/nativesdk-qt4-tools_4.8.7.bb @@ -0,0 +1,6 @@ +require nativesdk-qt4-tools.inc + +SRC_URI += "file://0009-qmake-fix-source-file-references-in-qmake.pri.patch" + +SRC_URI[md5sum] = "d990ee66bf7ab0c785589776f35ba6ad" +SRC_URI[sha256sum] = "e2882295097e47fe089f8ac741a95fef47e0a73a3f3cdf21b56990638f626ea0" diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0029-aarch64_arm64_fix_arch_detection.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0029-aarch64_arm64_fix_arch_detection.patch deleted file mode 100644 index fbd32b173d..0000000000 --- a/meta/recipes-qt/qt4/qt4-4.8.6/0029-aarch64_arm64_fix_arch_detection.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 800abbba658203fc8e746e3fc780a297cd4110cf Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Lisandro=20Dami=C3=A1n=20Nicanor=20P=C3=A9rez=20Meyer?= - <perezmeyer@gmail.com> -Date: Wed, 20 Aug 2014 17:52:49 -0300 -Subject: [PATCH] Fix AArch64/arm64 detection. - -The detection needs to go before arm, else the system will detect AArch64/arm64 -as arm. - -This patch comes from Wookey, he has agreed to put it under BSD or Expat -to allow it's inclusion in here: -<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=735488#255> - -Change-Id: Ic2171c03fca8bb871347940fa3a2bc467776f797 - - -Upstream-Status: Pending - -Signed-off-by: Kai Kang <kai.kang@windriver.com> ---- - configure | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/configure b/configure -index a9ba7c8..eb88b72 100755 ---- a/configure -+++ b/configure -@@ -3241,17 +3241,17 @@ if [ -z "${CFG_HOST_ARCH}" ]; then - fi - CFG_HOST_ARCH=s390 - ;; -- *:*:arm*) -+ *:*:aarch64*|*:*:arm64*) - if [ "$OPT_VERBOSE" = "yes" ]; then -- echo " ARM (arm)" -+ echo " AArch64 (aarch64)" - fi -- CFG_HOST_ARCH=arm -+ CFG_HOST_ARCH=aarch64 - ;; -- *:*:aarch64*) -+ *:*:arm*) - if [ "$OPT_VERBOSE" = "yes" ]; then -- echo " AArch64 (aarch64)" -+ echo " ARM (arm)" - fi -- CFG_HOST_ARCH=aarch64 -+ CFG_HOST_ARCH=arm - ;; - Linux:*:sparc*) - if [ "$OPT_VERBOSE" = "yes" ]; then --- -2.1.0 diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0030-aarch64_arm64_qatomic_support.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0030-aarch64_arm64_qatomic_support.patch deleted file mode 100644 index ba4c2a6b4f..0000000000 --- a/meta/recipes-qt/qt4/qt4-4.8.6/0030-aarch64_arm64_qatomic_support.patch +++ /dev/null @@ -1,491 +0,0 @@ -From 294010b562c9846bb2bc4ee9c63ff78adc7c1f4f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Lisandro=20Dami=C3=A1n=20Nicanor=20P=C3=A9rez=20Meyer?= - <perezmeyer@gmail.com> -Date: Sat, 15 Mar 2014 15:40:49 -0300 -Subject: [PATCH] Add qatomic support for AArch64 (aka arm64). - -Patch by Mark Salter <msalter@redhat.com> -licensed under BSD: - -<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=735488#195> - -This patch is known to not be the most correct way -to implement them, as it seems to be possible to do it in a faster way, -but should work non the less until we can provide something better. - -Change-Id: Ib392b27dc54691fd4c2ea9896240ad71fb8128cc - - -Upstream-Status: Pending - -Signed-off-by: Kai Kang <kai.kang@windriver.com> - ---- - src/corelib/arch/aarch64/arch.pri | 4 + - src/corelib/arch/aarch64/qatomic_aarch64.cpp | 70 ++++++ - src/corelib/arch/arch.pri | 4 +- - src/corelib/arch/qatomic_aarch64.h | 335 +++++++++++++++++++++++++++ - src/corelib/arch/qatomic_arch.h | 2 + - 5 files changed, 414 insertions(+), 1 deletion(-) - create mode 100644 src/corelib/arch/aarch64/arch.pri - create mode 100644 src/corelib/arch/aarch64/qatomic_aarch64.cpp - create mode 100644 src/corelib/arch/qatomic_aarch64.h - -diff --git a/src/corelib/arch/aarch64/arch.pri b/src/corelib/arch/aarch64/arch.pri -new file mode 100644 -index 0000000..63523d9 ---- /dev/null -+++ b/src/corelib/arch/aarch64/arch.pri -@@ -0,0 +1,4 @@ -+# -+# AArch64 architecture -+# -+SOURCES += $$QT_ARCH_CPP/qatomic_aarch64.cpp -diff --git a/src/corelib/arch/aarch64/qatomic_aarch64.cpp b/src/corelib/arch/aarch64/qatomic_aarch64.cpp -new file mode 100644 -index 0000000..fc851b9 ---- /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 -diff --git a/src/corelib/arch/arch.pri b/src/corelib/arch/arch.pri -index cd23e5e..f50fca7 100644 ---- a/src/corelib/arch/arch.pri -+++ b/src/corelib/arch/arch.pri -@@ -31,7 +31,9 @@ integrity:HEADERS += arch/qatomic_integrity.h - 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 -diff --git a/src/corelib/arch/qatomic_aarch64.h b/src/corelib/arch/qatomic_aarch64.h -new file mode 100644 -index 0000000..de61ca8 ---- /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< |
