<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/d198280ec13c03e93a72225dfcd327ac71a8f013">https://github.com/macports/macports-ports/commit/d198280ec13c03e93a72225dfcd327ac71a8f013</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit d198280ec13c03e93a72225dfcd327ac71a8f013
</span>Author: Sergey Fedorov <vital.had@gmail.com>
AuthorDate: Mon Nov 25 15:56:39 2024 +0800
<span style='display:block; white-space:pre;color:#404040;'> qt4-mac: fix build on aarch64
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/68496
</span>---
aqua/qt4-mac/Portfile | 13 +-
aqua/qt4-mac/files/patch-Platform.h.diff | 49 +++
aqua/qt4-mac/files/patch-configure.diff | 40 +-
aqua/qt4-mac/files/patch-defaultarch.test.diff | 12 +
aqua/qt4-mac/files/patch-features-mac-arm64.diff | 10 +
.../files/patch-mkspecs_common_g++-macx.conf.diff | 7 +-
.../files/patch-mkspecs_darwin-g++_qmake.conf.diff | 16 +-
.../qt4-mac/files/patch-mkspecs_objective_cxx.diff | 26 +-
.../files/patch-no-x86-simd-on-aarch64.diff | 11 +
aqua/qt4-mac/files/patch-qatomic.diff | 482 +++++++++++++++++++++
aqua/qt4-mac/files/patch-qmake-generator.diff | 26 ++
...make_generators_unix_unixmake.cpp.fix_arch.diff | 2 +-
aqua/qt4-mac/files/patch-stat64.diff | 13 +
aqua/qt4-mac/files/patch-thread_state.diff | 61 +++
14 files changed, 752 insertions(+), 16 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt4-mac/Portfile b/aqua/qt4-mac/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 2a92fdf5719..4e2c17f4627 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aqua/qt4-mac/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt4-mac/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -441,6 +441,16 @@ platform darwin {
</span> }
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Support aarch64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append patch-no-x86-simd-on-aarch64.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-defaultarch.test.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-features-mac-arm64.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-qmake-generator.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-qatomic.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-stat64.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-Platform.h.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-thread_state.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # the version header file is part of C++20
# newer versions of Clang find VERSION instead
post-extract {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -477,9 +487,6 @@ if {${SDK} eq ""} {
</span> }
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# no support for ARM64 yet
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-supported_archs ppc ppc64 i386 x86_64
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> post-patch {
# set ARCHES in configure (per the third patchfile above), for
# building QMake. join any 2 or more arch entries with the GCC
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt4-mac/files/patch-Platform.h.diff b/aqua/qt4-mac/files/patch-Platform.h.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..02a730bfef5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt4-mac/files/patch-Platform.h.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,49 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h 2015-05-07 22:14:48
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h 2024-11-25 15:13:45
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -209,9 +209,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define WTF_CPU_AIX64 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* CPU(AARCH64) - AArch64 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(__aarch64__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define WTF_CPU_AARCH64 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* CPU(ARM64) - AArch64 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__aarch64__) || defined(__arm64__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define WTF_CPU_ARM64 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(__AARCH64EB__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define WTF_CPU_BIG_ENDIAN 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -903,7 +903,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if !defined(WTF_USE_JSVALUE64) && !defined(WTF_USE_JSVALUE32) && !defined(WTF_USE_JSVALUE32_64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64) || CPU(MIPS64) || CPU(AARCH64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64) || CPU(MIPS64) || CPU(ARM64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define WTF_USE_JSVALUE64 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif CPU(ARM) || CPU(PPC64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define WTF_USE_JSVALUE32 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h 2015-05-07 22:14:45
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h 2024-11-25 15:11:34
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -234,6 +234,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(__x86_64__) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ || defined(_M_X64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define WTF_CPU_X86_64 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* CPU(ARM64) */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__aarch64__) || defined(__arm64__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define WTF_CPU_ARM64 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* CPU(ARM) - ARM, any version*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1003,7 +1008,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ || CPU(SPARC64) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ || CPU(S390X) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ || CPU(PPC64) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- || CPU(MIPS64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || CPU(MIPS64) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || CPU(ARM64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define WTF_USE_JSVALUE64 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define WTF_USE_JSVALUE32_64 1
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt4-mac/files/patch-configure.diff b/aqua/qt4-mac/files/patch-configure.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 10301ed8802..bef88f28b51 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aqua/qt4-mac/files/patch-configure.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt4-mac/files/patch-configure.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -34,6 +34,15 @@
</span> qtnamespace)
QT_NAMESPACE="$VAL"
;;
<span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1692,7 +1698,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case `uname -p` in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i386) NATIVE_64_ARCH="x86_64" ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ powerpc) NATIVE_64_ARCH="ppc64" ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ arm) NATIVE_64_ARCH="arm64" ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if [ ! -z "$NATIVE_64_ARCH" ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
</span> @@ -2519,6 +2524,13 @@
UNKNOWN_OPT=yes
fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -48,6 +57,23 @@
</span> system-proxies)
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
CFG_SYSTEM_PROXIES="$VAL"
<span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3370,14 +3382,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # process CFG_MAC_ARCHS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if [ "$PLATFORM_MAC" = "yes" ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # check -arch arguments for validity.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ALLOWED="x86 ppc x86_64 ppc64 i386 arm armv6 armv7"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ALLOWED="x86 ppc x86_64 ppc64 i386 arm armv6 armv7 arm64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Save the list so we can re-write it using only valid values
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CFG_MAC_ARCHS_IN="$CFG_MAC_ARCHS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CFG_MAC_ARCHS=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for i in $CFG_MAC_ARCHS_IN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if echo "$ALLOWED" | grep -w -v "$i" > /dev/null 2>&1; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- echo "Unknown architecture: \"$i\". Supported architectures: x86[i386] ppc x86_64 ppc64 arm armv6 armv7";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "Unknown architecture: \"$i\". Supported architectures: x86[i386] ppc x86_64 ppc64 arm armv6 armv7 arm64";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit 2;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if [ "$i" = "i386" -o "$i" = "x86" ]; then
</span> @@ -3460,6 +3472,53 @@
CFG_MAC_XARCH=no
fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -274,7 +300,7 @@
</span>
if [ "x$PLATFORM_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ] && [ "$XPLATFORM_SYMBIAN" != "yes" ]; then
#On Mac we implicitly link against libz, so we
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -7986,28 +8037,32 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7986,29 +8037,40 @@
</span> ;;
*)
if echo "$CFG_MAC_ARCHS" | grep '\<x86\>' > /dev/null 2>&1; then
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -321,9 +347,17 @@
</span> + QMakeVar add QMAKE_OBJECTIVE_CFLAGS_PPC_64 "-arch ppc64 -Xarch_ppc64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
+ QMakeVar add QMAKE_OBJECTIVE_CXXFLAGS_PPC_64 "-arch ppc64 -Xarch_ppc64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++ if echo "$CFG_MAC_ARCHS" | grep '\<arm64\>' > /dev/null 2>&1; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QMakeVar add QMAKE_CFLAGS "-Xarch_arm64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QMakeVar add QMAKE_CXXFLAGS "-Xarch_arm64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QMakeVar add QMAKE_LFLAGS "-Xarch_arm64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QMakeVar add QMAKE_OBJECTIVE_CFLAGS_ARM_64 "-arch arm64 -Xarch_arm64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QMakeVar add QMAKE_OBJECTIVE_CXXFLAGS_ARM_64 "-arch arm64 -Xarch_arm64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span> ;;
esac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -8772,6 +8827,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8772,6 +8830,7 @@
</span> QMAKE_RCC = \$\$QT_BUILD_TREE/bin/rcc
QMAKE_QDBUSXML2CPP = \$\$QT_BUILD_TREE/bin/qdbusxml2cpp
QMAKE_INCDIR_QT = \$\$QT_BUILD_TREE/include
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -331,7 +365,7 @@
</span> QMAKE_LIBDIR_QT = \$\$QT_BUILD_TREE/lib
EOF
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -8810,6 +8866,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8810,6 +8869,11 @@
</span> echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$CACHEFILE.tmp"
fi
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt4-mac/files/patch-defaultarch.test.diff b/aqua/qt4-mac/files/patch-defaultarch.test.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..e62c4fb7d84
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt4-mac/files/patch-defaultarch.test.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- config.tests/mac/defaultarch.test.orig 2015-05-07 22:14:42
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ config.tests/mac/defaultarch.test 2024-11-25 09:37:07
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28,6 +28,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if echo "$FIlE_OUTPUT" | grep '\<ppc64\>' > /dev/null 2>&1; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QT_MAC_DEFAULT_ARCH=ppc64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if echo "$FIlE_OUTPUT" | grep '\<arm64\>' > /dev/null 2>&1; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QT_MAC_DEFAULT_ARCH=arm64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [ "$VERBOSE" = "yes" ] && echo "setting QT_MAC_DEFAULT_ARCH to \"$QT_MAC_DEFAULT_ARCH\""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ export QT_MAC_DEFAULT_ARCH
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt4-mac/files/patch-features-mac-arm64.diff b/aqua/qt4-mac/files/patch-features-mac-arm64.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..43e0a90688f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt4-mac/files/patch-features-mac-arm64.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null 2024-11-25 09:10:10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ mkspecs/features/mac/arm64.prf 2024-11-25 09:05:49
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++macx-xcode|macx-pbuilder {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++} else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QMAKE_CFLAGS += $$QMAKE_CFLAGS_ARM_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_ARM_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_ARM_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ QMAKE_LFLAGS += $$QMAKE_LFLAGS_ARM_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt4-mac/files/patch-mkspecs_common_g++-macx.conf.diff b/aqua/qt4-mac/files/patch-mkspecs_common_g++-macx.conf.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 4f316c7f64f..67caf1991c5 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aqua/qt4-mac/files/patch-mkspecs_common_g++-macx.conf.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt4-mac/files/patch-mkspecs_common_g++-macx.conf.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,6 +1,6 @@
</span> --- mkspecs/common/g++-macx.conf.orig
+++ mkspecs/common/g++-macx.conf
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -16,16 +16,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16,16 +16,25 @@
</span>
QMAKE_LFLAGS_STATIC_LIB += -all_load
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8,15 +8,20 @@
</span> -QMAKE_CFLAGS_PPC_64 += -Xarch_ppc64 -mmacosx-version-min=10.5
+QMAKE_CFLAGS_X86_64 += -Xarch_x86_64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@
+QMAKE_CFLAGS_PPC_64 += -Xarch_ppc64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@
<span style='display:block; white-space:pre;background:#e0ffe0;'>++QMAKE_CFLAGS_ARM_64 += -Xarch_arm64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@
</span>
QMAKE_CXXFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64
QMAKE_CXXFLAGS_PPC_64 = $$QMAKE_CFLAGS_PPC_64
<span style='display:block; white-space:pre;background:#e0ffe0;'>++QMAKE_CXXFLAGS_ARM_64 = $$QMAKE_CFLAGS_ARM_64
</span> QMAKE_OBJECTIVE_CFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64
QMAKE_OBJECTIVE_CFLAGS_PPC_64 = $$QMAKE_CFLAGS_PPC_64
<span style='display:block; white-space:pre;background:#e0ffe0;'>++QMAKE_OBJECTIVE_CFLAGS_ARM_64 = $$QMAKE_CFLAGS_ARM_64
</span> +QMAKE_OBJECTIVE_CXXFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64
+QMAKE_OBJECTIVE_CXXFLAGS_PPC_64 = $$QMAKE_CFLAGS_PPC_64
<span style='display:block; white-space:pre;background:#e0ffe0;'>++QMAKE_OBJECTIVE_CXXFLAGS_ARM_64 = $$QMAKE_CFLAGS_ARM_64
</span> QMAKE_LFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64
QMAKE_LFLAGS_PPC_64 = $$QMAKE_CFLAGS_PPC_64
<span style='display:block; white-space:pre;background:#e0ffe0;'>++QMAKE_LFLAGS_ARM_64 = $$QMAKE_CFLAGS_ARM_64
</span>
+QMAKE_OBJECTIVE_CXXFLAGS_CXX11 = $$QMAKE_CXXFLAGS_CXX11
+
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt4-mac/files/patch-mkspecs_darwin-g++_qmake.conf.diff b/aqua/qt4-mac/files/patch-mkspecs_darwin-g++_qmake.conf.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 6867167880c..b78bf018be3 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aqua/qt4-mac/files/patch-mkspecs_darwin-g++_qmake.conf.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt4-mac/files/patch-mkspecs_darwin-g++_qmake.conf.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,5 +1,5 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- mkspecs/darwin-g++/qmake.conf.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ mkspecs/darwin-g++/qmake.conf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- mkspecs/darwin-g++/qmake.conf.orig 2015-05-07 22:14:41
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ mkspecs/darwin-g++/qmake.conf 2024-11-25 05:11:51
</span> @@ -1,21 +1,22 @@
#
# qmake configuration for darwin-g++
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -29,7 +29,7 @@
</span> QMAKE_CFLAGS = -pipe
QMAKE_CFLAGS_DEPS = -M
QMAKE_CFLAGS_WARN_ON = -Wall -W
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -24,12 +25,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24,12 +25,17 @@
</span> QMAKE_CFLAGS_DEBUG = -g
QMAKE_CFLAGS_SHLIB = -fPIC
QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -41,6 +41,7 @@
</span> QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden
-QMAKE_CFLAGS_THREAD =
-QMAKE_CFLAGS_PRECOMPILE += -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
<span style='display:block; white-space:pre;background:#e0ffe0;'>++QMAKE_CFLAGS_ARM_64 += -arch arm64 -Xarch_arm64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@
</span> +QMAKE_CFLAGS_PPC_64 += -arch ppc64 -Xarch_ppc64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@
+QMAKE_CFLAGS_X86_64 += -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@
+QMAKE_CFLAGS_PPC += -arch ppc
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -50,11 +51,12 @@
</span> QMAKE_CFLAGS_USE_PRECOMPILE += -include ${QMAKE_PCH_OUTPUT_BASE}
QMAKE_CXX = c++
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -43,7 +48,48 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -43,8 +49,52 @@
</span> QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_HIDESYMS += $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden
-QMAKE_CXXFLAGS_THREAD =
<span style='display:block; white-space:pre;background:#e0ffe0;'>++QMAKE_CXXFLAGS_ARM_64 += -arch arm64 -Xarch_arm64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@
</span> +QMAKE_CXXFLAGS_PPC_64 += -arch ppc64 -Xarch_ppc64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@
+QMAKE_CXXFLAGS_X86_64 += -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@
+QMAKE_CXXFLAGS_PPC += -arch ppc
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -63,6 +65,7 @@
</span> +QMAKE_CXXFLAGS_PRECOMPILE += -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
+QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
+
<span style='display:block; white-space:pre;background:#e0ffe0;'>++QMAKE_OBJECTIVE_CFLAGS_ARM_64 += -arch arm64 -Xarch_arm64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@
</span> +QMAKE_OBJECTIVE_CFLAGS_PPC_64 += -arch ppc64 -Xarch_ppc64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@
+QMAKE_OBJECTIVE_CFLAGS_X86_64 += -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@
+QMAKE_OBJECTIVE_CFLAGS_PPC += -arch ppc
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -88,6 +91,7 @@
</span> +QMAKE_LFLAGS_THREAD +=
+QMAKE_LFLAGS_INCREMENTAL+= -undefined suppress -flat_namespace
+QMAKE_LFLAGS_SONAME += -install_name$${LITERAL_WHITESPACE}
<span style='display:block; white-space:pre;background:#e0ffe0;'>++QMAKE_LFLAGS_ARM_64 += -arch arm64 -Xarch_arm64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@
</span> +QMAKE_LFLAGS_PPC_64 += -arch ppc64 -Xarch_ppc64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@
+QMAKE_LFLAGS_X86_64 += -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=@MACOSX_DEPLOYMENT_TARGET@
+QMAKE_LFLAGS_PPC += -arch ppc
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -100,7 +104,7 @@
</span>
QMAKE_INCDIR =
QMAKE_LIBDIR =
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -54,29 +100,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -54,29 +104,11 @@
</span> QMAKE_INCDIR_OPENGL = /usr/X11R6/include
QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -130,7 +134,7 @@
</span>
QMAKE_MOC = $$[QT_INSTALL_BINS]/moc
QMAKE_UIC = $$[QT_INSTALL_BINS]/uic
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -88,19 +116,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -88,19 +120,19 @@
</span> QMAKE_TAR = tar -cf
QMAKE_GZIP = gzip -9f
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt4-mac/files/patch-mkspecs_objective_cxx.diff b/aqua/qt4-mac/files/patch-mkspecs_objective_cxx.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 288c57f5c7c..4ac8668c81b 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aqua/qt4-mac/files/patch-mkspecs_objective_cxx.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt4-mac/files/patch-mkspecs_objective_cxx.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,6 +1,21 @@
</span> --- mkspecs/common/gcc-base-macx.conf.orig
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ mkspecs/common/gcc-base-macx.conf
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -29,12 +29,23 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ mkspecs/common/gcc-base-macx.conf 2024-11-25 09:20:22
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16,12 +16,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QMAKE_CFLAGS_X86_64 += -arch x86_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QMAKE_CFLAGS_PPC += -arch ppc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QMAKE_CFLAGS_PPC_64 += -arch ppc64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QMAKE_CFLAGS_ARM_64 += -arch arm64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QMAKE_CFLAGS_DWARF2 += -gdwarf-2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QMAKE_CXXFLAGS_X86 += $$QMAKE_CFLAGS_X86
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QMAKE_CXXFLAGS_X86_64 += $$QMAKE_CFLAGS_X86_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QMAKE_CXXFLAGS_PPC += $$QMAKE_CFLAGS_PPC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QMAKE_CXXFLAGS_PPC_64 += $$QMAKE_CFLAGS_PPC_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QMAKE_CXXFLAGS_ARM_64 += $$QMAKE_CFLAGS_ARM_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QMAKE_CXXFLAGS_DWARF2 += $$QMAKE_CFLAGS_DWARF2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QMAKE_OBJECTIVE_CFLAGS = $$QMAKE_CFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -29,16 +31,30 @@
</span> QMAKE_OBJECTIVE_CFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
QMAKE_OBJECTIVE_CFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
QMAKE_OBJECTIVE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10,6 +25,7 @@
</span> QMAKE_OBJECTIVE_CFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64
QMAKE_OBJECTIVE_CFLAGS_PPC = $$QMAKE_CFLAGS_PPC
QMAKE_OBJECTIVE_CFLAGS_PPC_64 = $$QMAKE_CFLAGS_PPC_64
<span style='display:block; white-space:pre;background:#e0ffe0;'>++QMAKE_OBJECTIVE_CFLAGS_ARM_64 = $$QMAKE_CFLAGS_ARM_64
</span>
+QMAKE_OBJECTIVE_CXXFLAGS = $$QMAKE_CXXFLAGS
+QMAKE_OBJECTIVE_CXXFLAGS_WARN_ON = $$QMAKE_CXXFLAGS_WARN_ON
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -21,10 +37,16 @@
</span> +QMAKE_OBJECTIVE_CXXFLAGS_X86_64 = $$QMAKE_CXXFLAGS_X86_64
+QMAKE_OBJECTIVE_CXXFLAGS_PPC = $$QMAKE_CXXFLAGS_PPC
+QMAKE_OBJECTIVE_CXXFLAGS_PPC_64 = $$QMAKE_CXXFLAGS_PPC_64
<span style='display:block; white-space:pre;background:#e0ffe0;'>++QMAKE_OBJECTIVE_CXXFLAGS_ARM_64 = $$QMAKE_CXXFLAGS_ARM_64
</span> +
QMAKE_LFLAGS_X86 += $$QMAKE_CFLAGS_X86
QMAKE_LFLAGS_X86_64 += $$QMAKE_CFLAGS_X86_64
QMAKE_LFLAGS_PPC += $$QMAKE_CFLAGS_PPC
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ QMAKE_LFLAGS_PPC_64 += $$QMAKE_CFLAGS_PPC_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QMAKE_LFLAGS_ARM_64 += $$QMAKE_CFLAGS_ARM_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QMAKE_LFLAGS += -headerpad_max_install_names
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QMAKE_LFLAGS_SHLIB += -single_module -dynamiclib
</span> --- mkspecs/features/debug.prf.orig
+++ mkspecs/features/debug.prf
@@ -3,6 +3,7 @@
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt4-mac/files/patch-no-x86-simd-on-aarch64.diff b/aqua/qt4-mac/files/patch-no-x86-simd-on-aarch64.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..e1f1aaff826
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt4-mac/files/patch-no-x86-simd-on-aarch64.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/corelib/tools/qsimd_p.h.orig 2015-05-07 22:14:48
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/corelib/tools/qsimd_p.h 2024-11-25 08:51:53
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -48,7 +48,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QT_BEGIN_HEADER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(QT_NO_MAC_XARCH) || (defined(Q_OS_DARWIN) && (defined(__ppc__) || defined(__ppc64__)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(QT_NO_MAC_XARCH) || (defined(Q_OS_DARWIN) && (defined(__ppc__) || defined(__ppc64__) || defined(__arm64__)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Disable MMX and SSE on Mac/PPC builds, or if the compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // does not support -Xarch argument passing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef QT_HAVE_SSE
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt4-mac/files/patch-qatomic.diff b/aqua/qt4-mac/files/patch-qatomic.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..e254915c8e5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt4-mac/files/patch-qatomic.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,482 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ include/QtCore/qatomic_arm64.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "../../src/corelib/arch/qatomic_arm64.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/corelib/arch/arm64/arch.pri
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,4 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# ARM64 architecture
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++SOURCES += $$QT_ARCH_CPP/qatomic_arm64.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/corelib/arch/qatomic_arm64.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,335 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/****************************************************************************
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** Contact: http://www.qt-project.org/legal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** This file is part of the QtCore module of the Qt Toolkit.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** $QT_BEGIN_LICENSE:LGPL$
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** Commercial License Usage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** Licensees holding valid commercial Qt licenses may use this file in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** accordance with the commercial license agreement provided with the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** Software or, alternatively, in accordance with the terms contained in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** a written agreement between you and Digia. For licensing terms and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** conditions see http://qt.digia.com/licensing. For further information
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** use the contact form at http://qt.digia.com/contact-us.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** GNU Lesser General Public License Usage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** Alternatively, this file may be used under the terms of the GNU Lesser
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** General Public License version 2.1 as published by the Free Software
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** Foundation and appearing in the file LICENSE.LGPL included in the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** packaging of this file. Please review the following information to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ensure the GNU Lesser General Public License version 2.1 requirements
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** In addition, as a special exception, Digia gives you certain additional
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** rights. These rights are described in the Digia Qt LGPL Exception
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** GNU General Public License Usage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** Alternatively, this file may be used under the terms of the GNU
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** General Public License version 3.0 as published by the Free Software
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** Foundation and appearing in the file LICENSE.GPL included in the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** packaging of this file. Please review the following information to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ensure the GNU General Public License version 3.0 requirements will be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** met: http://www.gnu.org/copyleft/gpl.html.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** $QT_END_LICENSE$
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++****************************************************************************/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef QATOMIC_AARCH64_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define QATOMIC_AARCH64_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QT_BEGIN_HEADER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QT_BEGIN_NAMESPACE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline bool QBasicAtomicInt::isReferenceCountingNative()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ return true; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline bool QBasicAtomicInt::isReferenceCountingWaitFree()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ return false; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define Q_ATOMIC_INT_TEST_AND_SET_IS_ALWAYS_NATIVE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline bool QBasicAtomicInt::isTestAndSetNative()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ return true; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline bool QBasicAtomicInt::isTestAndSetWaitFree()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ return false; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define Q_ATOMIC_INT_FETCH_AND_STORE_IS_ALWAYS_NATIVE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline bool QBasicAtomicInt::isFetchAndStoreNative()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ return true; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline bool QBasicAtomicInt::isFetchAndStoreWaitFree()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ return false; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define Q_ATOMIC_INT_FETCH_AND_ADD_IS_ALWAYS_NATIVE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline bool QBasicAtomicInt::isFetchAndAddNative()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ return true; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline bool QBasicAtomicInt::isFetchAndAddWaitFree()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ return false; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define Q_ATOMIC_POINTER_TEST_AND_SET_IS_ALWAYS_NATIVE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++template <typename T>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isTestAndSetNative()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ return true; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++template <typename T>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isTestAndSetWaitFree()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ return false; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define Q_ATOMIC_POINTER_FETCH_AND_STORE_IS_ALWAYS_NATIVE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++template <typename T>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isFetchAndStoreNative()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ return true; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++template <typename T>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isFetchAndStoreWaitFree()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ return false; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define Q_ATOMIC_POINTER_FETCH_AND_ADD_IS_ALWAYS_NATIVE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++template <typename T>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isFetchAndAddNative()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ return true; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++template <typename T>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isFetchAndAddWaitFree()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ return false; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef Q_DATA_MEMORY_BARRIER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define Q_DATA_MEMORY_BARRIER asm volatile("dmb sy\n":::"memory")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef Q_COMPILER_MEMORY_BARRIER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define Q_COMPILER_MEMORY_BARRIER asm volatile("":::"memory")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline bool QBasicAtomicInt::ref()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int newValue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_COMPILER_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ newValue = __atomic_add_fetch(&_q_value, 1, __ATOMIC_ACQ_REL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_COMPILER_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return newValue != 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline bool QBasicAtomicInt::deref()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int newValue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_COMPILER_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ newValue = __atomic_sub_fetch(&_q_value, 1, __ATOMIC_ACQ_REL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_COMPILER_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return newValue != 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool val;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_COMPILER_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ val = __atomic_compare_exchange_n (&_q_value, &expectedValue, newValue,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ false, __ATOMIC_RELAXED, __ATOMIC_RELAXED);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_COMPILER_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return val;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int val;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_COMPILER_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ val = __atomic_exchange_n(&_q_value, newValue, __ATOMIC_RELAXED);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_COMPILER_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return val;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int val;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_COMPILER_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ val = __atomic_fetch_add(&_q_value, valueToAdd, __ATOMIC_RELAXED);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_COMPILER_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return val;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++template <typename T>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool val;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_COMPILER_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ val = __atomic_compare_exchange_n (&_q_value, &expectedValue, newValue,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ false, __ATOMIC_RELAXED, __ATOMIC_RELAXED);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_COMPILER_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return val;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++template <typename T>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ T *val;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_COMPILER_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ val = __atomic_exchange_n(&_q_value, newValue, __ATOMIC_RELAXED);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_COMPILER_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return val;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++template <typename T>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueToAdd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ T *val;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_COMPILER_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ val = __atomic_fetch_add(&_q_value, valueToAdd, __ATOMIC_RELAXED);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_COMPILER_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return val;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool returnValue = testAndSetRelaxed(expectedValue, newValue);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_DATA_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return returnValue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline bool QBasicAtomicInt::testAndSetRelease(int expectedValue, int newValue)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_DATA_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return testAndSetRelaxed(expectedValue, newValue);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline bool QBasicAtomicInt::testAndSetOrdered(int expectedValue, int newValue)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_DATA_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool returnValue = testAndSetRelaxed(expectedValue, newValue);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_COMPILER_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return returnValue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline int QBasicAtomicInt::fetchAndStoreAcquire(int newValue)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int returnValue = fetchAndStoreRelaxed(newValue);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_DATA_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return returnValue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline int QBasicAtomicInt::fetchAndStoreRelease(int newValue)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_DATA_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return fetchAndStoreRelaxed(newValue);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline int QBasicAtomicInt::fetchAndStoreOrdered(int newValue)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_DATA_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int returnValue = fetchAndStoreRelaxed(newValue);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_COMPILER_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return returnValue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline int QBasicAtomicInt::fetchAndAddAcquire(int valueToAdd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int returnValue = fetchAndAddRelaxed(valueToAdd);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_DATA_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return returnValue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline int QBasicAtomicInt::fetchAndAddRelease(int valueToAdd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_DATA_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return fetchAndAddRelaxed(valueToAdd);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++inline int QBasicAtomicInt::fetchAndAddOrdered(int valueToAdd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_DATA_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int returnValue = fetchAndAddRelaxed(valueToAdd);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_COMPILER_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return returnValue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++template <typename T>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetAcquire(T *expectedValue, T *newValue)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool returnValue = testAndSetRelaxed(expectedValue, newValue);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_DATA_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return returnValue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++template <typename T>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelease(T *expectedValue, T *newValue)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_DATA_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return testAndSetRelaxed(expectedValue, newValue);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++template <typename T>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetOrdered(T *expectedValue, T *newValue)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_DATA_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool returnValue = testAndSetAcquire(expectedValue, newValue);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_COMPILER_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return returnValue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++template <typename T>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreAcquire(T *newValue)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ T *returnValue = fetchAndStoreRelaxed(newValue);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_DATA_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return returnValue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++template <typename T>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelease(T *newValue)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_DATA_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return fetchAndStoreRelaxed(newValue);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++template <typename T>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreOrdered(T *newValue)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_DATA_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ T *returnValue = fetchAndStoreRelaxed(newValue);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_COMPILER_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return returnValue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++template <typename T>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddAcquire(qptrdiff valueToAdd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ T *returnValue = fetchAndAddRelaxed(valueToAdd);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_DATA_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return returnValue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++template <typename T>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueToAdd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_DATA_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return fetchAndAddRelaxed(valueToAdd);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++template <typename T>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddOrdered(qptrdiff valueToAdd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_DATA_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ T *returnValue = fetchAndAddRelaxed(valueToAdd);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Q_COMPILER_MEMORY_BARRIER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return returnValue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef Q_DATA_MEMORY_BARRIER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef Q_COMPILER_MEMORY_BARRIER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QT_END_NAMESPACE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QT_END_HEADER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif // QATOMIC_AARCH64_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/corelib/arch/macosx/qatomic_arm64.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,70 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/****************************************************************************
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** Copyright (C) 2012, 2013 Digia Plc and/or its subsidiary(-ies).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** Contact: http://www.qt-project.org/legal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** This file is part of the QtCore module of the Qt Toolkit.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** $QT_BEGIN_LICENSE:LGPL$
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** Commercial License Usage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** Licensees holding valid commercial Qt licenses may use this file in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** accordance with the commercial license agreement provided with the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** Software or, alternatively, in accordance with the terms contained in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** a written agreement between you and Digia. For licensing terms and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** conditions see http://qt.digia.com/licensing. For further information
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** use the contact form at http://qt.digia.com/contact-us.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** GNU Lesser General Public License Usage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** Alternatively, this file may be used under the terms of the GNU Lesser
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** General Public License version 2.1 as published by the Free Software
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** Foundation and appearing in the file LICENSE.LGPL included in the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** packaging of this file. Please review the following information to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ensure the GNU Lesser General Public License version 2.1 requirements
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** In addition, as a special exception, Digia gives you certain additional
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** rights. These rights are described in the Digia Qt LGPL Exception
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** GNU General Public License Usage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** Alternatively, this file may be used under the terms of the GNU
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** General Public License version 3.0 as published by the Free Software
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** Foundation and appearing in the file LICENSE.GPL included in the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** packaging of this file. Please review the following information to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ensure the GNU General Public License version 3.0 requirements will be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** met: http://www.gnu.org/copyleft/gpl.html.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** $QT_END_LICENSE$
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++****************************************************************************/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <QtCore/qglobal.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <unistd.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef _POSIX_PRIORITY_SCHEDULING
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# include <sched.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <time.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QT_BEGIN_NAMESPACE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QT_USE_NAMESPACE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Q_CORE_EXPORT void qt_atomic_yield(int *count)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef _POSIX_PRIORITY_SCHEDULING
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if ((*count)++ < 50) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sched_yield();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ } else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ struct timespec tm;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tm.tv_sec = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tm.tv_nsec = 2000001;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ nanosleep(&tm, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *count = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QT_END_NAMESPACE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/corelib/arch/qatomic_macosx.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/corelib/arch/qatomic_macosx.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -48,9 +48,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # include <QtCore/qatomic_x86_64.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(__i386__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # include <QtCore/qatomic_i386.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#else // !__x86_64 && !__i386__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif (defined(__arm64__) || defined(__aarch64__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# include <QtCore/qatomic_arm64.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else // !__x86_64 && !__i386__ && !__arm64__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # include <QtCore/qatomic_powerpc.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#endif // !__x86_64__ && !__i386__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif // !__x86_64__ && !__i386__ !__arm64__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QT_END_HEADER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/corelib/arch/qatomic_arch.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/corelib/arch/qatomic_arch.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -56,6 +56,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # include "QtCore/qatomic_arm.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(QT_ARCH_ARMV6)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # include "QtCore/qatomic_armv6.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif defined(QT_ARCH_ARM64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# include "QtCore/qatomic_arm64.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(QT_ARCH_AVR32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # include "QtCore/qatomic_avr32.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(QT_ARCH_BFIN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/corelib/arch/macosx/arch.pri
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/corelib/arch/macosx/arch.pri
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2,5 +2,4 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Mac OS X architecture
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Left blank intentionally since all the current compilers that we support can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# handle in-line assembly.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++arm64:SOURCES += $$QT_ARCH_CPP/qatomic_arm64.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/corelib/arch/arch.pri
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/corelib/arch/arch.pri
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -26,6 +26,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ arch/qatomic_armv5.h \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ arch/qatomic_armv6.h \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ arch/qatomic_armv7.h \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ arch/qatomic_arm64.h \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ arch/qatomic_i386.h \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ arch/qatomic_mips.h \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ arch/qatomic_s390.h \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- include/QtCore/headers.pri
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ include/QtCore/headers.pri
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,3 +1,3 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-SYNCQT.HEADER_FILES = ../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/qobjec [...]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++SYNCQT.HEADER_FILES = ../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/qobjec [...]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SYNCQT.HEADER_CLASSES = ../../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/Qt [...]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SYNCQT.PRIVATE_HEADER_FILES = ../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/qeventdi [...]
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt4-mac/files/patch-qmake-generator.diff b/aqua/qt4-mac/files/patch-qmake-generator.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..d827ac46776
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt4-mac/files/patch-qmake-generator.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,26 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- qmake/generators/mac/pbuilder_pbx.cpp.orig 2015-05-07 22:14:42
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ qmake/generators/mac/pbuilder_pbx.cpp 2024-11-25 09:31:11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1355,6 +1355,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(!archs.isEmpty())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ archs += " ";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ archs += "x86_64";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(project->isActiveConfig("arm64")) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(!archs.isEmpty())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ archs += " ";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ archs += "arm64";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(!archs.isEmpty())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ t << "\t\t\t\t" << writeSettings("ARCHS", archs) << ";" << "\n";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1582,6 +1587,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ archs += " ";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ archs += "x86_64";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (project->isActiveConfig("arm64")) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!archs.isEmpty())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ archs += " ";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ archs += "arm64";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (!archs.isEmpty())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ t << "\t\t\t\t" << writeSettings("ARCHS", archs) << ";" << "\n";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt4-mac/files/patch-qmake_generators_unix_unixmake.cpp.fix_arch.diff b/aqua/qt4-mac/files/patch-qmake_generators_unix_unixmake.cpp.fix_arch.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index c1e085e03e3..a628f8e62fc 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aqua/qt4-mac/files/patch-qmake_generators_unix_unixmake.cpp.fix_arch.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt4-mac/files/patch-qmake_generators_unix_unixmake.cpp.fix_arch.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -46,7 +46,7 @@
</span> + }
+ QString t_arch = l.at(lit).trimmed().toLower();
+ // make sure next option is valid
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ const QString archs[] = { "i386", "x86_64", "ppc", "ppc64", QString() };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const QString archs[] = { "i386", "x86_64", "ppc", "ppc64", "arm64", QString() };
</span> + int i = 0;
+ for(; !archs[i].isNull(); ++i) {
+ if (t_arch.startsWith(archs[i])) {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt4-mac/files/patch-stat64.diff b/aqua/qt4-mac/files/patch-stat64.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..7ba59f4e5cd
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt4-mac/files/patch-stat64.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/corelib/io/qfilesystemwatcher_fsevents_p.h.orig 2015-05-07 22:14:48
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/corelib/io/qfilesystemwatcher_fsevents_p.h 2024-11-25 11:06:21
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -72,6 +72,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef UInt32 FSEventStreamEventFlags;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef uint64_t FSEventStreamEventId;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __arm64__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define stat64 stat
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QT_BEGIN_NAMESPACE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 && !defined(Q_OS_IOS)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt4-mac/files/patch-thread_state.diff b/aqua/qt4-mac/files/patch-thread_state.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..af8e575426b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt4-mac/files/patch-thread_state.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,61 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp 2015-05-07 22:14:48
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp 2024-11-25 15:33:02
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -859,6 +859,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef ppc_thread_state64_t PlatformThreadRegisters;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif CPU(ARM)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef arm_thread_state_t PlatformThreadRegisters;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif CPU(ARM64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef arm_thread_state64_t PlatformThreadRegisters;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #error Unknown Architecture
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -888,6 +890,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif CPU(ARM)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned user_count = ARM_THREAD_STATE_COUNT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ thread_state_flavor_t flavor = ARM_THREAD_STATE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif CPU(ARM64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned user_count = ARM_THREAD_STATE64_COUNT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ thread_state_flavor_t flavor = ARM_THREAD_STATE64;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #error Unknown Architecture
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -922,7 +927,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return reinterpret_cast<void*>(regs.__rsp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif CPU(PPC) || CPU(PPC64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return reinterpret_cast<void*>(regs.__r1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#elif CPU(ARM)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif CPU(ARM) || CPU(ARM64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return reinterpret_cast<void*>(regs.__sp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #error Unknown Architecture
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/3rdparty/webkit/Source/JavaScriptCore/heap/MachineStackMarker.cpp 2015-05-07 22:14:45
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/3rdparty/webkit/Source/JavaScriptCore/heap/MachineStackMarker.cpp 2024-11-25 15:31:19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -329,6 +329,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef ppc_thread_state64_t PlatformThreadRegisters;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif CPU(ARM)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef arm_thread_state_t PlatformThreadRegisters;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif CPU(ARM64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef arm_thread_state64_t PlatformThreadRegisters;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #error Unknown Architecture
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -360,6 +362,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif CPU(ARM)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned user_count = ARM_THREAD_STATE_COUNT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ thread_state_flavor_t flavor = ARM_THREAD_STATE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif CPU(ARM64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned user_count = ARM_THREAD_STATE64_COUNT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ thread_state_flavor_t flavor = ARM_THREAD_STATE64;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #error Unknown Architecture
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -404,7 +409,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return reinterpret_cast<void*>(regs.__rsp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif CPU(PPC) || CPU(PPC64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return reinterpret_cast<void*>(regs.__r1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#elif CPU(ARM)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif CPU(ARM) || CPU(ARM64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return reinterpret_cast<void*>(regs.__sp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #error Unknown Architecture
</span></pre><pre style='margin:0'>
</pre>