diff options
author | Kai Kang <kai.kang@windriver.com> | 2015-06-17 09:32:47 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-06-23 11:46:58 +0100 |
commit | 3739d36068ad4e07afbf4ebfa48a98a8e3c23075 (patch) | |
tree | da4eccc0de70d0ab91f8b6930a5b130fef95d867 /meta | |
parent | b877c9689aa6925ce15024f1af0fce7eedabd0c5 (diff) | |
download | poky-3739d36068ad4e07afbf4ebfa48a98a8e3c23075.tar.gz |
qt4-4.8.7: restore arm64 patches which are dropped by mistake
During upgrade qt4 from 4.8.6 to 4.8.7, four arm64 patches are removed.
But three of them are dropped by mistake that they are not merged by
upstream and still needed.
Restore them.
(From OE-Core rev: 9d6f8fc0524d4f9968acc11058aa620764e092a4)
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
4 files changed, 636 insertions, 0 deletions
diff --git a/meta/recipes-qt/qt4/qt4-4.8.7.inc b/meta/recipes-qt/qt4/qt4-4.8.7.inc index 2f580cccea..67fad3ab94 100644 --- a/meta/recipes-qt/qt4/qt4-4.8.7.inc +++ b/meta/recipes-qt/qt4/qt4-4.8.7.inc | |||
@@ -22,6 +22,9 @@ SRC_URI = "http://download.qt-project.org/official_releases/qt/4.8/${PV}/qt-ever | |||
22 | file://0019-Fixes-for-gcc-4.7.0-particularly-on-qemux86.patch \ | 22 | file://0019-Fixes-for-gcc-4.7.0-particularly-on-qemux86.patch \ |
23 | file://0027-tools.pro-disable-qmeegographicssystemhelper.patch \ | 23 | file://0027-tools.pro-disable-qmeegographicssystemhelper.patch \ |
24 | file://0028-Don-t-crash-on-broken-GIF-images.patch \ | 24 | file://0028-Don-t-crash-on-broken-GIF-images.patch \ |
25 | file://0030-aarch64_arm64_qatomic_support.patch \ | ||
26 | file://0031-aarch64_arm64_mkspecs.patch \ | ||
27 | file://0032-aarch64_add_header.patch \ | ||
25 | file://Fix-QWSLock-invalid-argument-logs.patch \ | 28 | file://Fix-QWSLock-invalid-argument-logs.patch \ |
26 | file://add_check_for_aarch64_32.patch \ | 29 | file://add_check_for_aarch64_32.patch \ |
27 | file://g++.conf \ | 30 | file://g++.conf \ |
diff --git a/meta/recipes-qt/qt4/qt4-4.8.7/0030-aarch64_arm64_qatomic_support.patch b/meta/recipes-qt/qt4/qt4-4.8.7/0030-aarch64_arm64_qatomic_support.patch new file mode 100644 index 0000000000..ba4c2a6b4f --- /dev/null +++ b/meta/recipes-qt/qt4/qt4-4.8.7/0030-aarch64_arm64_qatomic_support.patch | |||
@@ -0,0 +1,491 @@ | |||
1 | From 294010b562c9846bb2bc4ee9c63ff78adc7c1f4f Mon Sep 17 00:00:00 2001 | ||
2 | From: =?UTF-8?q?Lisandro=20Dami=C3=A1n=20Nicanor=20P=C3=A9rez=20Meyer?= | ||
3 | <perezmeyer@gmail.com> | ||
4 | Date: Sat, 15 Mar 2014 15:40:49 -0300 | ||
5 | Subject: [PATCH] Add qatomic support for AArch64 (aka arm64). | ||
6 | |||
7 | Patch by Mark Salter <msalter@redhat.com> | ||
8 | licensed under BSD: | ||
9 | |||
10 | <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=735488#195> | ||
11 | |||
12 | This patch is known to not be the most correct way | ||
13 | to implement them, as it seems to be possible to do it in a faster way, | ||
14 | but should work non the less until we can provide something better. | ||
15 | |||
16 | Change-Id: Ib392b27dc54691fd4c2ea9896240ad71fb8128cc | ||
17 | |||
18 | |||
19 | Upstream-Status: Pending | ||
20 | |||
21 | Signed-off-by: Kai Kang <kai.kang@windriver.com> | ||
22 | |||
23 | --- | ||
24 | src/corelib/arch/aarch64/arch.pri | 4 + | ||
25 | src/corelib/arch/aarch64/qatomic_aarch64.cpp | 70 ++++++ | ||
26 | src/corelib/arch/arch.pri | 4 +- | ||
27 | src/corelib/arch/qatomic_aarch64.h | 335 +++++++++++++++++++++++++++ | ||
28 | src/corelib/arch/qatomic_arch.h | 2 + | ||
29 | 5 files changed, 414 insertions(+), 1 deletion(-) | ||
30 | create mode 100644 src/corelib/arch/aarch64/arch.pri | ||
31 | create mode 100644 src/corelib/arch/aarch64/qatomic_aarch64.cpp | ||
32 | create mode 100644 src/corelib/arch/qatomic_aarch64.h | ||
33 | |||
34 | diff --git a/src/corelib/arch/aarch64/arch.pri b/src/corelib/arch/aarch64/arch.pri | ||
35 | new file mode 100644 | ||
36 | index 0000000..63523d9 | ||
37 | --- /dev/null | ||
38 | +++ b/src/corelib/arch/aarch64/arch.pri | ||
39 | @@ -0,0 +1,4 @@ | ||
40 | +# | ||
41 | +# AArch64 architecture | ||
42 | +# | ||
43 | +SOURCES += $$QT_ARCH_CPP/qatomic_aarch64.cpp | ||
44 | diff --git a/src/corelib/arch/aarch64/qatomic_aarch64.cpp b/src/corelib/arch/aarch64/qatomic_aarch64.cpp | ||
45 | new file mode 100644 | ||
46 | index 0000000..fc851b9 | ||
47 | --- /dev/null | ||
48 | +++ b/src/corelib/arch/aarch64/qatomic_aarch64.cpp | ||
49 | @@ -0,0 +1,70 @@ | ||
50 | +/**************************************************************************** | ||
51 | +** | ||
52 | +** Copyright (C) 2012, 2013 Digia Plc and/or its subsidiary(-ies). | ||
53 | +** Contact: http://www.qt-project.org/legal | ||
54 | +** | ||
55 | +** This file is part of the QtCore module of the Qt Toolkit. | ||
56 | +** | ||
57 | +** $QT_BEGIN_LICENSE:LGPL$ | ||
58 | +** Commercial License Usage | ||
59 | +** Licensees holding valid commercial Qt licenses may use this file in | ||
60 | +** accordance with the commercial license agreement provided with the | ||
61 | +** Software or, alternatively, in accordance with the terms contained in | ||
62 | +** a written agreement between you and Digia. For licensing terms and | ||
63 | +** conditions see http://qt.digia.com/licensing. For further information | ||
64 | +** use the contact form at http://qt.digia.com/contact-us. | ||
65 | +** | ||
66 | +** GNU Lesser General Public License Usage | ||
67 | +** Alternatively, this file may be used under the terms of the GNU Lesser | ||
68 | +** General Public License version 2.1 as published by the Free Software | ||
69 | +** Foundation and appearing in the file LICENSE.LGPL included in the | ||
70 | +** packaging of this file. Please review the following information to | ||
71 | +** ensure the GNU Lesser General Public License version 2.1 requirements | ||
72 | +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. | ||
73 | +** | ||
74 | +** In addition, as a special exception, Digia gives you certain additional | ||
75 | +** rights. These rights are described in the Digia Qt LGPL Exception | ||
76 | +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. | ||
77 | +** | ||
78 | +** GNU General Public License Usage | ||
79 | +** Alternatively, this file may be used under the terms of the GNU | ||
80 | +** General Public License version 3.0 as published by the Free Software | ||
81 | +** Foundation and appearing in the file LICENSE.GPL included in the | ||
82 | +** packaging of this file. Please review the following information to | ||
83 | +** ensure the GNU General Public License version 3.0 requirements will be | ||
84 | +** met: http://www.gnu.org/copyleft/gpl.html. | ||
85 | +** | ||
86 | +** | ||
87 | +** $QT_END_LICENSE$ | ||
88 | +** | ||
89 | +****************************************************************************/ | ||
90 | + | ||
91 | +#include <QtCore/qglobal.h> | ||
92 | + | ||
93 | +#include <unistd.h> | ||
94 | +#ifdef _POSIX_PRIORITY_SCHEDULING | ||
95 | +# include <sched.h> | ||
96 | +#endif | ||
97 | +#include <time.h> | ||
98 | + | ||
99 | +QT_BEGIN_NAMESPACE | ||
100 | + | ||
101 | +QT_USE_NAMESPACE | ||
102 | + | ||
103 | +Q_CORE_EXPORT void qt_atomic_yield(int *count) | ||
104 | +{ | ||
105 | +#ifdef _POSIX_PRIORITY_SCHEDULING | ||
106 | + if ((*count)++ < 50) { | ||
107 | + sched_yield(); | ||
108 | + } else | ||
109 | +#endif | ||
110 | + { | ||
111 | + struct timespec tm; | ||
112 | + tm.tv_sec = 0; | ||
113 | + tm.tv_nsec = 2000001; | ||
114 | + nanosleep(&tm, NULL); | ||
115 | + *count = 0; | ||
116 | + } | ||
117 | +} | ||
118 | + | ||
119 | +QT_END_NAMESPACE | ||
120 | diff --git a/src/corelib/arch/arch.pri b/src/corelib/arch/arch.pri | ||
121 | index cd23e5e..f50fca7 100644 | ||
122 | --- a/src/corelib/arch/arch.pri | ||
123 | +++ b/src/corelib/arch/arch.pri | ||
124 | @@ -31,7 +31,9 @@ integrity:HEADERS += arch/qatomic_integrity.h | ||
125 | arch/qatomic_s390.h \ | ||
126 | arch/qatomic_x86_64.h \ | ||
127 | arch/qatomic_sh.h \ | ||
128 | - arch/qatomic_sh4a.h | ||
129 | + arch/qatomic_sh4a.h \ | ||
130 | + arch/qatomic_aarch64.h \ | ||
131 | + | ||
132 | |||
133 | QT_ARCH_CPP = $$QT_SOURCE_TREE/src/corelib/arch/$$QT_ARCH | ||
134 | DEPENDPATH += $$QT_ARCH_CPP | ||
135 | diff --git a/src/corelib/arch/qatomic_aarch64.h b/src/corelib/arch/qatomic_aarch64.h | ||
136 | new file mode 100644 | ||
137 | index 0000000..de61ca8 | ||
138 | --- /dev/null | ||
139 | +++ b/src/corelib/arch/qatomic_aarch64.h | ||
140 | @@ -0,0 +1,335 @@ | ||
141 | +/**************************************************************************** | ||
142 | +** | ||
143 | +** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). | ||
144 | +** Contact: http://www.qt-project.org/legal | ||
145 | +** | ||
146 | +** This file is part of the QtCore module of the Qt Toolkit. | ||
147 | +** | ||
148 | +** $QT_BEGIN_LICENSE:LGPL$ | ||
149 | +** Commercial License Usage | ||
150 | +** Licensees holding valid commercial Qt licenses may use this file in | ||
151 | +** accordance with the commercial license agreement provided with the | ||
152 | +** Software or, alternatively, in accordance with the terms contained in | ||
153 | +** a written agreement between you and Digia. For licensing terms and | ||
154 | +** conditions see http://qt.digia.com/licensing. For further information | ||
155 | +** use the contact form at http://qt.digia.com/contact-us. | ||
156 | +** | ||
157 | +** GNU Lesser General Public License Usage | ||
158 | +** Alternatively, this file may be used under the terms of the GNU Lesser | ||
159 | +** General Public License version 2.1 as published by the Free Software | ||
160 | +** Foundation and appearing in the file LICENSE.LGPL included in the | ||
161 | +** packaging of this file. Please review the following information to | ||
162 | +** ensure the GNU Lesser General Public License version 2.1 requirements | ||
163 | +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. | ||
164 | +** | ||
165 | +** In addition, as a special exception, Digia gives you certain additional | ||
166 | +** rights. These rights are described in the Digia Qt LGPL Exception | ||
167 | +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. | ||
168 | +** | ||
169 | +** GNU General Public License Usage | ||
170 | +** Alternatively, this file may be used under the terms of the GNU | ||
171 | +** General Public License version 3.0 as published by the Free Software | ||
172 | +** Foundation and appearing in the file LICENSE.GPL included in the | ||
173 | +** packaging of this file. Please review the following information to | ||
174 | +** ensure the GNU General Public License version 3.0 requirements will be | ||
175 | +** met: http://www.gnu.org/copyleft/gpl.html. | ||
176 | +** | ||
177 | +** | ||
178 | +** $QT_END_LICENSE$ | ||
179 | +** | ||
180 | +****************************************************************************/ | ||
181 | + | ||
182 | +#ifndef QATOMIC_AARCH64_H | ||
183 | +#define QATOMIC_AARCH64_H | ||
184 | + | ||
185 | +QT_BEGIN_HEADER | ||
186 | + | ||
187 | +QT_BEGIN_NAMESPACE | ||
188 | + | ||
189 | +#define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE | ||
190 | + | ||
191 | +inline bool QBasicAtomicInt::isReferenceCountingNative() | ||
192 | +{ return true; } | ||
193 | +inline bool QBasicAtomicInt::isReferenceCountingWaitFree() | ||
194 | +{ return false; } | ||
195 | + | ||
196 | +#define Q_ATOMIC_INT_TEST_AND_SET_IS_ALWAYS_NATIVE | ||
197 | + | ||
198 | +inline bool QBasicAtomicInt::isTestAndSetNative() | ||
199 | +{ return true; } | ||
200 | +inline bool QBasicAtomicInt::isTestAndSetWaitFree() | ||
201 | +{ return false; } | ||
202 | + | ||
203 | +#define Q_ATOMIC_INT_FETCH_AND_STORE_IS_ALWAYS_NATIVE | ||
204 | + | ||
205 | +inline bool QBasicAtomicInt::isFetchAndStoreNative() | ||
206 | +{ return true; } | ||
207 | +inline bool QBasicAtomicInt::isFetchAndStoreWaitFree() | ||
208 | +{ return false; } | ||
209 | + | ||
210 | +#define Q_ATOMIC_INT_FETCH_AND_ADD_IS_ALWAYS_NATIVE | ||
211 | + | ||
212 | +inline bool QBasicAtomicInt::isFetchAndAddNative() | ||
213 | +{ return true; } | ||
214 | +inline bool QBasicAtomicInt::isFetchAndAddWaitFree() | ||
215 | +{ return false; } | ||
216 | + | ||
217 | +#define Q_ATOMIC_POINTER_TEST_AND_SET_IS_ALWAYS_NATIVE | ||
218 | + | ||
219 | +template <typename T> | ||
220 | +Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isTestAndSetNative() | ||
221 | +{ return true; } | ||
222 | +template <typename T> | ||
223 | +Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isTestAndSetWaitFree() | ||
224 | +{ return false; } | ||
225 | + | ||
226 | +#define Q_ATOMIC_POINTER_FETCH_AND_STORE_IS_ALWAYS_NATIVE | ||
227 | + | ||
228 | +template <typename T> | ||
229 | +Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isFetchAndStoreNative() | ||
230 | +{ return true; } | ||
231 | +template <typename T> | ||
232 | +Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isFetchAndStoreWaitFree() | ||
233 | +{ return false; } | ||
234 | + | ||
235 | +#define Q_ATOMIC_POINTER_FETCH_AND_ADD_IS_ALWAYS_NATIVE | ||
236 | + | ||
237 | +template <typename T> | ||
238 | +Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isFetchAndAddNative() | ||
239 | +{ return true; } | ||
240 | +template <typename T> | ||
241 | +Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isFetchAndAddWaitFree() | ||
242 | +{ return false; } | ||
243 | + | ||
244 | +#ifndef Q_DATA_MEMORY_BARRIER | ||
245 | +# define Q_DATA_MEMORY_BARRIER asm volatile("dmb sy\n":::"memory") | ||
246 | +#endif | ||
247 | +#ifndef Q_COMPILER_MEMORY_BARRIER | ||
248 | +# define Q_COMPILER_MEMORY_BARRIER asm volatile("":::"memory") | ||
249 | +#endif | ||
250 | + | ||
251 | +inline bool QBasicAtomicInt::ref() | ||
252 | +{ | ||
253 | + int newValue; | ||
254 | + | ||
255 | + Q_COMPILER_MEMORY_BARRIER; | ||
256 | + newValue = __atomic_add_fetch(&_q_value, 1, __ATOMIC_ACQ_REL); | ||
257 | + Q_COMPILER_MEMORY_BARRIER; | ||
258 | + | ||
259 | + return newValue != 0; | ||
260 | +} | ||
261 | + | ||
262 | +inline bool QBasicAtomicInt::deref() | ||
263 | +{ | ||
264 | + int newValue; | ||
265 | + | ||
266 | + Q_COMPILER_MEMORY_BARRIER; | ||
267 | + newValue = __atomic_sub_fetch(&_q_value, 1, __ATOMIC_ACQ_REL); | ||
268 | + Q_COMPILER_MEMORY_BARRIER; | ||
269 | + | ||
270 | + return newValue != 0; | ||
271 | +} | ||
272 | + | ||
273 | +inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue) | ||
274 | +{ | ||
275 | + bool val; | ||
276 | + | ||
277 | + Q_COMPILER_MEMORY_BARRIER; | ||
278 | + val = __atomic_compare_exchange_n (&_q_value, &expectedValue, newValue, | ||
279 | + false, __ATOMIC_RELAXED, __ATOMIC_RELAXED); | ||
280 | + Q_COMPILER_MEMORY_BARRIER; | ||
281 | + return val; | ||
282 | +} | ||
283 | + | ||
284 | +inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue) | ||
285 | +{ | ||
286 | + int val; | ||
287 | + Q_COMPILER_MEMORY_BARRIER; | ||
288 | + val = __atomic_exchange_n(&_q_value, newValue, __ATOMIC_RELAXED); | ||
289 | + Q_COMPILER_MEMORY_BARRIER; | ||
290 | + return val; | ||
291 | +} | ||
292 | + | ||
293 | +inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd) | ||
294 | +{ | ||
295 | + int val; | ||
296 | + Q_COMPILER_MEMORY_BARRIER; | ||
297 | + val = __atomic_fetch_add(&_q_value, valueToAdd, __ATOMIC_RELAXED); | ||
298 | + Q_COMPILER_MEMORY_BARRIER; | ||
299 | + return val; | ||
300 | +} | ||
301 | + | ||
302 | +template <typename T> | ||
303 | +Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue) | ||
304 | +{ | ||
305 | + bool val; | ||
306 | + Q_COMPILER_MEMORY_BARRIER; | ||
307 | + val = __atomic_compare_exchange_n (&_q_value, &expectedValue, newValue, | ||
308 | + false, __ATOMIC_RELAXED, __ATOMIC_RELAXED); | ||
309 | + Q_COMPILER_MEMORY_BARRIER; | ||
310 | + return val; | ||
311 | +} | ||
312 | + | ||
313 | +template <typename T> | ||
314 | +Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue) | ||
315 | +{ | ||
316 | + T *val; | ||
317 | + Q_COMPILER_MEMORY_BARRIER; | ||
318 | + val = __atomic_exchange_n(&_q_value, newValue, __ATOMIC_RELAXED); | ||
319 | + Q_COMPILER_MEMORY_BARRIER; | ||
320 | + return val; | ||
321 | +} | ||
322 | + | ||
323 | +template <typename T> | ||
324 | +Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueToAdd) | ||
325 | +{ | ||
326 | + T *val; | ||
327 | + Q_COMPILER_MEMORY_BARRIER; | ||
328 | + val = __atomic_fetch_add(&_q_value, valueToAdd, __ATOMIC_RELAXED); | ||
329 | + Q_COMPILER_MEMORY_BARRIER; | ||
330 | + return val; | ||
331 | +} | ||
332 | + | ||
333 | +inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue) | ||
334 | +{ | ||
335 | + bool returnValue = testAndSetRelaxed(expectedValue, newValue); | ||
336 | + Q_DATA_MEMORY_BARRIER; | ||
337 | + return returnValue; | ||
338 | +} | ||
339 | + | ||
340 | +inline bool QBasicAtomicInt::testAndSetRelease(int expectedValue, int newValue) | ||
341 | +{ | ||
342 | + Q_DATA_MEMORY_BARRIER; | ||
343 | + return testAndSetRelaxed(expectedValue, newValue); | ||
344 | +} | ||
345 | + | ||
346 | +inline bool QBasicAtomicInt::testAndSetOrdered(int expectedValue, int newValue) | ||
347 | +{ | ||
348 | + Q_DATA_MEMORY_BARRIER; | ||
349 | + bool returnValue = testAndSetRelaxed(expectedValue, newValue); | ||
350 | + Q_COMPILER_MEMORY_BARRIER; | ||
351 | + return returnValue; | ||
352 | +} | ||
353 | + | ||
354 | +inline int QBasicAtomicInt::fetchAndStoreAcquire(int newValue) | ||
355 | +{ | ||
356 | + int returnValue = fetchAndStoreRelaxed(newValue); | ||
357 | + Q_DATA_MEMORY_BARRIER; | ||
358 | + return returnValue; | ||
359 | +} | ||
360 | + | ||
361 | +inline int QBasicAtomicInt::fetchAndStoreRelease(int newValue) | ||
362 | +{ | ||
363 | + Q_DATA_MEMORY_BARRIER; | ||
364 | + return fetchAndStoreRelaxed(newValue); | ||
365 | +} | ||
366 | + | ||
367 | +inline int QBasicAtomicInt::fetchAndStoreOrdered(int newValue) | ||
368 | +{ | ||
369 | + Q_DATA_MEMORY_BARRIER; | ||
370 | + int returnValue = fetchAndStoreRelaxed(newValue); | ||
371 | + Q_COMPILER_MEMORY_BARRIER; | ||
372 | + return returnValue; | ||
373 | +} | ||
374 | + | ||
375 | +inline int QBasicAtomicInt::fetchAndAddAcquire(int valueToAdd) | ||
376 | +{ | ||
377 | + int returnValue = fetchAndAddRelaxed(valueToAdd); | ||
378 | + Q_DATA_MEMORY_BARRIER; | ||
379 | + return returnValue; | ||
380 | +} | ||
381 | + | ||
382 | +inline int QBasicAtomicInt::fetchAndAddRelease(int valueToAdd) | ||
383 | +{ | ||
384 | + Q_DATA_MEMORY_BARRIER; | ||
385 | + return fetchAndAddRelaxed(valueToAdd); | ||
386 | +} | ||
387 | + | ||
388 | +inline int QBasicAtomicInt::fetchAndAddOrdered(int valueToAdd) | ||
389 | +{ | ||
390 | + Q_DATA_MEMORY_BARRIER; | ||
391 | + int returnValue = fetchAndAddRelaxed(valueToAdd); | ||
392 | + Q_COMPILER_MEMORY_BARRIER; | ||
393 | + return returnValue; | ||
394 | +} | ||
395 | + | ||
396 | +template <typename T> | ||
397 | +Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetAcquire(T *expectedValue, T *newValue) | ||
398 | +{ | ||
399 | + bool returnValue = testAndSetRelaxed(expectedValue, newValue); | ||
400 | + Q_DATA_MEMORY_BARRIER; | ||
401 | + return returnValue; | ||
402 | +} | ||
403 | + | ||
404 | +template <typename T> | ||
405 | +Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelease(T *expectedValue, T *newValue) | ||
406 | +{ | ||
407 | + Q_DATA_MEMORY_BARRIER; | ||
408 | + return testAndSetRelaxed(expectedValue, newValue); | ||
409 | +} | ||
410 | + | ||
411 | +template <typename T> | ||
412 | +Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetOrdered(T *expectedValue, T *newValue) | ||
413 | +{ | ||
414 | + Q_DATA_MEMORY_BARRIER; | ||
415 | + bool returnValue = testAndSetAcquire(expectedValue, newValue); | ||
416 | + Q_COMPILER_MEMORY_BARRIER; | ||
417 | + return returnValue; | ||
418 | +} | ||
419 | + | ||
420 | +template <typename T> | ||
421 | +Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreAcquire(T *newValue) | ||
422 | +{ | ||
423 | + T *returnValue = fetchAndStoreRelaxed(newValue); | ||
424 | + Q_DATA_MEMORY_BARRIER; | ||
425 | + return returnValue; | ||
426 | +} | ||
427 | + | ||
428 | +template <typename T> | ||
429 | +Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelease(T *newValue) | ||
430 | +{ | ||
431 | + Q_DATA_MEMORY_BARRIER; | ||
432 | + return fetchAndStoreRelaxed(newValue); | ||
433 | +} | ||
434 | + | ||
435 | +template <typename T> | ||
436 | +Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreOrdered(T *newValue) | ||
437 | +{ | ||
438 | + Q_DATA_MEMORY_BARRIER; | ||
439 | + T *returnValue = fetchAndStoreRelaxed(newValue); | ||
440 | + Q_COMPILER_MEMORY_BARRIER; | ||
441 | + return returnValue; | ||
442 | +} | ||
443 | + | ||
444 | +template <typename T> | ||
445 | +Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddAcquire(qptrdiff valueToAdd) | ||
446 | +{ | ||
447 | + T *returnValue = fetchAndAddRelaxed(valueToAdd); | ||
448 | + Q_DATA_MEMORY_BARRIER; | ||
449 | + return returnValue; | ||
450 | +} | ||
451 | + | ||
452 | +template <typename T> | ||
453 | +Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueToAdd) | ||
454 | +{ | ||
455 | + Q_DATA_MEMORY_BARRIER; | ||
456 | + return fetchAndAddRelaxed(valueToAdd); | ||
457 | +} | ||
458 | + | ||
459 | +template <typename T> | ||
460 | +Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddOrdered(qptrdiff valueToAdd) | ||
461 | +{ | ||
462 | + Q_DATA_MEMORY_BARRIER; | ||
463 | + T *returnValue = fetchAndAddRelaxed(valueToAdd); | ||
464 | + Q_COMPILER_MEMORY_BARRIER; | ||
465 | + return returnValue; | ||
466 | +} | ||
467 | + | ||
468 | +#undef Q_DATA_MEMORY_BARRIER | ||
469 | +#undef Q_COMPILER_MEMORY_BARRIER | ||
470 | + | ||
471 | +QT_END_NAMESPACE | ||
472 | + | ||
473 | +QT_END_HEADER | ||
474 | + | ||
475 | +#endif // QATOMIC_AARCH64_H | ||
476 | diff --git a/src/corelib/arch/qatomic_arch.h b/src/corelib/arch/qatomic_arch.h | ||
477 | index 141726c..3e96926 100644 | ||
478 | --- a/src/corelib/arch/qatomic_arch.h | ||
479 | +++ b/src/corelib/arch/qatomic_arch.h | ||
480 | @@ -94,6 +94,8 @@ QT_BEGIN_HEADER | ||
481 | # include "QtCore/qatomic_sh4a.h" | ||
482 | #elif defined(QT_ARCH_NACL) | ||
483 | # include "QtCore/qatomic_generic.h" | ||
484 | +#elif defined(QT_ARCH_AARCH64) | ||
485 | +# include "QtCore/qatomic_aarch64.h" | ||
486 | #else | ||
487 | # error "Qt has not been ported to this architecture" | ||
488 | #endif | ||
489 | -- | ||
490 | 2.1.0 | ||
491 | |||
diff --git a/meta/recipes-qt/qt4/qt4-4.8.7/0031-aarch64_arm64_mkspecs.patch b/meta/recipes-qt/qt4/qt4-4.8.7/0031-aarch64_arm64_mkspecs.patch new file mode 100644 index 0000000000..a01e7ada93 --- /dev/null +++ b/meta/recipes-qt/qt4/qt4-4.8.7/0031-aarch64_arm64_mkspecs.patch | |||
@@ -0,0 +1,124 @@ | |||
1 | From 7090fc80ff630712a90de92403190f647dd38a39 Mon Sep 17 00:00:00 2001 | ||
2 | From: =?UTF-8?q?Lisandro=20Dami=C3=A1n=20Nicanor=20P=C3=A9rez=20Meyer?= | ||
3 | <perezmeyer@gmail.com> | ||
4 | Date: Sat, 15 Mar 2014 15:35:00 -0300 | ||
5 | Subject: [PATCH] mkspecs for AArch64 (aka arm64). | ||
6 | |||
7 | Patch by Marcin Juszkiewicz <marcin@juszkiewicz.com.pl> | ||
8 | licensed under either Public Domain or BSD: | ||
9 | |||
10 | <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=735488#179> | ||
11 | |||
12 | Change-Id: I21f17953234cfb176bac023e52ecdc927fc5c1a9 | ||
13 | |||
14 | |||
15 | Upstream-Status: Pending | ||
16 | |||
17 | Signed-off-by: Kai Kang <kai.kang@windriver.com> | ||
18 | |||
19 | --- | ||
20 | configure | 3 +++ | ||
21 | mkspecs/linux-g++-aarch64/qmake.conf | 27 ++++++++++++++++++++ | ||
22 | mkspecs/linux-g++-aarch64/qplatformdefs.h | 42 +++++++++++++++++++++++++++++++ | ||
23 | 3 files changed, 72 insertions(+) | ||
24 | create mode 100644 mkspecs/linux-g++-aarch64/qmake.conf | ||
25 | create mode 100644 mkspecs/linux-g++-aarch64/qplatformdefs.h | ||
26 | |||
27 | diff --git a/configure b/configure | ||
28 | index a9ba7c8..e57d053 100755 | ||
29 | --- a/configure | ||
30 | +++ b/configure | ||
31 | @@ -2808,6 +2808,9 @@ if [ "$CFG_EMBEDDED" != "no" ]; then | ||
32 | *86_64) | ||
33 | PLATFORM=qws/linux-x86_64-g++ | ||
34 | ;; | ||
35 | + aarch64) | ||
36 | + PLATFORM=linux-aarch64-g++ | ||
37 | + ;; | ||
38 | *) | ||
39 | PLATFORM=qws/linux-generic-g++ | ||
40 | ;; | ||
41 | diff --git a/mkspecs/linux-g++-aarch64/qmake.conf b/mkspecs/linux-g++-aarch64/qmake.conf | ||
42 | new file mode 100644 | ||
43 | index 0000000..ebc0a92 | ||
44 | --- /dev/null | ||
45 | +++ b/mkspecs/linux-g++-aarch64/qmake.conf | ||
46 | @@ -0,0 +1,27 @@ | ||
47 | +# | ||
48 | +# qmake configuration for linux-g++ | ||
49 | +# | ||
50 | +# Written for GNU/Linux platforms that have both lib and lib64 directories, | ||
51 | +# like the AMD Opteron. | ||
52 | +# | ||
53 | + | ||
54 | +MAKEFILE_GENERATOR = UNIX | ||
55 | +TARGET_PLATFORM = unix | ||
56 | +TEMPLATE = app | ||
57 | +CONFIG += qt warn_on release incremental link_prl gdb_dwarf_index | ||
58 | +QT += core gui | ||
59 | +QMAKE_INCREMENTAL_STYLE = sublib | ||
60 | + | ||
61 | +QMAKE_CFLAGS = | ||
62 | +QMAKE_LFLAGS = | ||
63 | + | ||
64 | +QMAKE_CFLAGS_RELEASE += -O2 | ||
65 | + | ||
66 | +include(../common/linux.conf) | ||
67 | +include(../common/gcc-base-unix.conf) | ||
68 | +include(../common/g++-unix.conf) | ||
69 | + | ||
70 | +QMAKE_LIBDIR_X11 = /usr/X11R6/lib64 | ||
71 | +QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib64 | ||
72 | + | ||
73 | +load(qt_config) | ||
74 | diff --git a/mkspecs/linux-g++-aarch64/qplatformdefs.h b/mkspecs/linux-g++-aarch64/qplatformdefs.h | ||
75 | new file mode 100644 | ||
76 | index 0000000..562128b | ||
77 | --- /dev/null | ||
78 | +++ b/mkspecs/linux-g++-aarch64/qplatformdefs.h | ||
79 | @@ -0,0 +1,42 @@ | ||
80 | +/**************************************************************************** | ||
81 | +** | ||
82 | +** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). | ||
83 | +** Contact: http://www.qt-project.org/legal | ||
84 | +** | ||
85 | +** This file is part of the qmake spec of the Qt Toolkit. | ||
86 | +** | ||
87 | +** $QT_BEGIN_LICENSE:LGPL$ | ||
88 | +** Commercial License Usage | ||
89 | +** Licensees holding valid commercial Qt licenses may use this file in | ||
90 | +** accordance with the commercial license agreement provided with the | ||
91 | +** Software or, alternatively, in accordance with the terms contained in | ||
92 | +** a written agreement between you and Digia. For licensing terms and | ||
93 | +** conditions see http://qt.digia.com/licensing. For further information | ||
94 | +** use the contact form at http://qt.digia.com/contact-us. | ||
95 | +** | ||
96 | +** GNU Lesser General Public License Usage | ||
97 | +** Alternatively, this file may be used under the terms of the GNU Lesser | ||
98 | +** General Public License version 2.1 as published by the Free Software | ||
99 | +** Foundation and appearing in the file LICENSE.LGPL included in the | ||
100 | +** packaging of this file. Please review the following information to | ||
101 | +** ensure the GNU Lesser General Public License version 2.1 requirements | ||
102 | +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. | ||
103 | +** | ||
104 | +** In addition, as a special exception, Digia gives you certain additional | ||
105 | +** rights. These rights are described in the Digia Qt LGPL Exception | ||
106 | +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. | ||
107 | +** | ||
108 | +** GNU General Public License Usage | ||
109 | +** Alternatively, this file may be used under the terms of the GNU | ||
110 | +** General Public License version 3.0 as published by the Free Software | ||
111 | +** Foundation and appearing in the file LICENSE.GPL included in the | ||
112 | +** packaging of this file. Please review the following information to | ||
113 | +** ensure the GNU General Public License version 3.0 requirements will be | ||
114 | +** met: http://www.gnu.org/copyleft/gpl.html. | ||
115 | +** | ||
116 | +** | ||
117 | +** $QT_END_LICENSE$ | ||
118 | +** | ||
119 | +****************************************************************************/ | ||
120 | + | ||
121 | +#include "../linux-g++/qplatformdefs.h" | ||
122 | -- | ||
123 | 2.1.0 | ||
124 | |||
diff --git a/meta/recipes-qt/qt4/qt4-4.8.7/0032-aarch64_add_header.patch b/meta/recipes-qt/qt4/qt4-4.8.7/0032-aarch64_add_header.patch new file mode 100644 index 0000000000..178f784e1a --- /dev/null +++ b/meta/recipes-qt/qt4/qt4-4.8.7/0032-aarch64_add_header.patch | |||
@@ -0,0 +1,18 @@ | |||
1 | Add missing header for aarch64. And install ../corelib/arch/qatomic_aarch64.h. | ||
2 | |||
3 | Upstream-Status: Pending | ||
4 | |||
5 | Signed-off-by: Kai Kang <kai.kang@windriver.com> | ||
6 | --- | ||
7 | diff -Nru qt-everywhere-opensource-src-4.8.6.orig/include/QtCore/qatomic_aarch64.h qt-everywhere-opensource-src-4.8.6/include/QtCore/qatomic_aarch64.h | ||
8 | --- qt-everywhere-opensource-src-4.8.6.orig/include/QtCore/qatomic_aarch64.h 1970-01-01 08:30:00.000000000 +0830 | ||
9 | +++ qt-everywhere-opensource-src-4.8.6/include/QtCore/qatomic_aarch64.h 2014-09-09 17:18:03.768352551 +0800 | ||
10 | @@ -0,0 +1 @@ | ||
11 | +#include "../../src/corelib/arch/qatomic_aarch64.h" | ||
12 | --- qt-everywhere-opensource-src-4.8.6/include/QtCore/headers.pri.orig 2014-09-09 18:05:37.100430311 +0800 | ||
13 | +++ qt-everywhere-opensource-src-4.8.6/include/QtCore/headers.pri 2014-09-09 18:05:59.112430911 +0800 | ||
14 | @@ -1,3 +1,3 @@ | ||
15 | -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/qobject.h ../corelib/kernel/qobjectcleanuphandler.h ../corelib/kernel/qobjectdefs.h ../corelib/kernel/qpointer.h ../corelib/kernel/qsharedmemory.h ../corelib/kernel/qsignalmapper.h ../corelib/kernel/qsocketnotifier.h ../corelib/kernel/qsystemsemaphore.h ../corelib/kernel/qtimer.h ../corelib/kernel/qtranslator.h ../corelib/kernel/qvariant.h ../corelib/animation/qabstractanimation.h ../corelib/animation/qanimationgroup.h ../corelib/animation/qparallelanimationgroup.h ../corelib/animation/qpauseanimation.h ../corelib/animation/qpropertyanimation.h ../corelib/animation/qsequentialanimationgroup.h ../corelib/animation/qvariantanimation.h ../corelib/arch/qatomic_alpha.h ../corelib/arch/qatomic_arch.h ../corelib/arch/qatomic_arm.h ../corelib/arch/qatomic_armv5.h ../corelib/arch/qatomic_armv6.h ../corelib/arch/qatomic_armv7.h ../corelib/arch/qatomic_avr32.h ../corelib/arch/qatomic_bfin.h ../corelib/arch/qatomic_bootstrap.h ../corelib/arch/qatomic_generic.h ../corelib/arch/qatomic_i386.h ../corelib/arch/qatomic_ia64.h ../corelib/arch/qatomic_integrity.h ../corelib/arch/qatomic_m68k.h ../corelib/arch/qatomic_macosx.h ../corelib/arch/qatomic_mips.h ../corelib/arch/qatomic_parisc.h ../corelib/arch/qatomic_powerpc.h ../corelib/arch/qatomic_s390.h ../corelib/arch/qatomic_sh.h ../corelib/arch/qatomic_sh4a.h ../corelib/arch/qatomic_sparc.h ../corelib/arch/qatomic_symbian.h ../corelib/arch/qatomic_vxworks.h ../corelib/arch/qatomic_windows.h ../corelib/arch/qatomic_windowsce.h ../corelib/arch/qatomic_x86_64.h ../corelib/tools/qalgorithms.h ../corelib/tools/qbitarray.h ../corelib/tools/qbytearray.h ../corelib/tools/qbytearraymatcher.h ../corelib/tools/qcache.h ../corelib/tools/qchar.h ../corelib/tools/qcontainerfwd.h ../corelib/tools/qcontiguouscache.h ../corelib/tools/qcryptographichash.h ../corelib/tools/qdatetime.h ../corelib/tools/qeasingcurve.h ../corelib/tools/qelapsedtimer.h ../corelib/tools/qhash.h ../corelib/tools/qiterator.h ../corelib/tools/qline.h ../corelib/tools/qlinkedlist.h ../corelib/tools/qlist.h ../corelib/tools/qlocale.h ../corelib/tools/qlocale_blackberry.h ../corelib/tools/qmap.h ../corelib/tools/qmargins.h ../corelib/tools/qpair.h ../corelib/tools/qpoint.h ../corelib/tools/qqueue.h ../corelib/tools/qrect.h ../corelib/tools/qregexp.h ../corelib/tools/qscopedpointer.h ../corelib/tools/qscopedvaluerollback.h ../corelib/tools/qset.h ../corelib/tools/qshareddata.h ../corelib/tools/qsharedpointer.h ../corelib/tools/qsharedpointer_impl.h ../corelib/tools/qsize.h ../corelib/tools/qstack.h ../corelib/tools/qstring.h ../corelib/tools/qstringbuilder.h ../corelib/tools/qstringlist.h ../corelib/tools/qstringmatcher.h ../corelib/tools/qtextboundaryfinder.h ../corelib/tools/qtimeline.h ../corelib/tools/qvarlengtharray.h ../corelib/tools/qvector.h ../corelib/plugin/qfactoryinterface.h ../corelib/plugin/qlibrary.h ../corelib/plugin/qplugin.h ../corelib/plugin/qpluginloader.h ../corelib/plugin/quuid.h ../corelib/xml/qxmlstream.h ../corelib/thread/qatomic.h ../corelib/thread/qbasicatomic.h ../corelib/thread/qmutex.h ../corelib/thread/qreadwritelock.h ../corelib/thread/qsemaphore.h ../corelib/thread/qthread.h ../corelib/thread/qthreadstorage.h ../corelib/thread/qwaitcondition.h ../corelib/statemachine/qabstractstate.h ../corelib/statemachine/qabstracttransition.h ../corelib/statemachine/qeventtransition.h ../corelib/statemachine/qfinalstate.h ../corelib/statemachine/qhistorystate.h ../corelib/statemachine/qsignaltransition.h ../corelib/statemachine/qstate.h ../corelib/statemachine/qstatemachine.h ../corelib/concurrent/qfuture.h ../corelib/concurrent/qfutureinterface.h ../corelib/concurrent/qfuturesynchronizer.h ../corelib/concurrent/qfuturewatcher.h ../corelib/concurrent/qrunnable.h ../corelib/concurrent/qtconcurrentcompilertest.h ../corelib/concurrent/qtconcurrentexception.h ../corelib/concurrent/qtconcurrentfilter.h ../corelib/concurrent/qtconcurrentfilterkernel.h ../corelib/concurrent/qtconcurrentfunctionwrappers.h ../corelib/concurrent/qtconcurrentiteratekernel.h ../corelib/concurrent/qtconcurrentmap.h ../corelib/concurrent/qtconcurrentmapkernel.h ../corelib/concurrent/qtconcurrentmedian.h ../corelib/concurrent/qtconcurrentreducekernel.h ../corelib/concurrent/qtconcurrentresultstore.h ../corelib/concurrent/qtconcurrentrun.h ../corelib/concurrent/qtconcurrentrunbase.h ../corelib/concurrent/qtconcurrentstoredfunctioncall.h ../corelib/concurrent/qtconcurrentthreadengine.h ../corelib/concurrent/qthreadpool.h ../corelib/io/qabstractfileengine.h ../corelib/io/qbuffer.h ../corelib/io/qdatastream.h ../corelib/io/qdebug.h ../corelib/io/qdir.h ../corelib/io/qdiriterator.h ../corelib/io/qfile.h ../corelib/io/qfileinfo.h ../corelib/io/qfilesystemwatcher.h ../corelib/io/qfsfileengine.h ../corelib/io/qiodevice.h ../corelib/io/qprocess.h ../corelib/io/qresource.h ../corelib/io/qsettings.h ../corelib/io/qtemporaryfile.h ../corelib/io/qtextstream.h ../corelib/io/qurl.h ../corelib/global/qconfig-dist.h ../corelib/global/qconfig-large.h ../corelib/global/qconfig-medium.h ../corelib/global/qconfig-minimal.h ../corelib/global/qconfig-nacl.h ../corelib/global/qconfig-small.h ../corelib/global/qendian.h ../corelib/global/qfeatures.h ../corelib/global/qglobal.h ../corelib/global/qlibraryinfo.h ../corelib/global/qnamespace.h ../corelib/global/qnumeric.h ../corelib/global/qt_windows.h ../corelib/global/qconfig.h ../corelib/codecs/qtextcodec.h ../corelib/codecs/qtextcodecplugin.h ../../include/QtCore/QtCore | ||
16 | +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/qobject.h ../corelib/kernel/qobjectcleanuphandler.h ../corelib/kernel/qobjectdefs.h ../corelib/kernel/qpointer.h ../corelib/kernel/qsharedmemory.h ../corelib/kernel/qsignalmapper.h ../corelib/kernel/qsocketnotifier.h ../corelib/kernel/qsystemsemaphore.h ../corelib/kernel/qtimer.h ../corelib/kernel/qtranslator.h ../corelib/kernel/qvariant.h ../corelib/animation/qabstractanimation.h ../corelib/animation/qanimationgroup.h ../corelib/animation/qparallelanimationgroup.h ../corelib/animation/qpauseanimation.h ../corelib/animation/qpropertyanimation.h ../corelib/animation/qsequentialanimationgroup.h ../corelib/animation/qvariantanimation.h ../corelib/arch/qatomic_alpha.h ../corelib/arch/qatomic_arch.h ../corelib/arch/qatomic_arm.h ../corelib/arch/qatomic_armv5.h ../corelib/arch/qatomic_armv6.h ../corelib/arch/qatomic_armv7.h ../corelib/arch/qatomic_aarch64.h ../corelib/arch/qatomic_avr32.h ../corelib/arch/qatomic_bfin.h ../corelib/arch/qatomic_bootstrap.h ../corelib/arch/qatomic_generic.h ../corelib/arch/qatomic_i386.h ../corelib/arch/qatomic_ia64.h ../corelib/arch/qatomic_integrity.h ../corelib/arch/qatomic_m68k.h ../corelib/arch/qatomic_macosx.h ../corelib/arch/qatomic_mips.h ../corelib/arch/qatomic_parisc.h ../corelib/arch/qatomic_powerpc.h ../corelib/arch/qatomic_s390.h ../corelib/arch/qatomic_sh.h ../corelib/arch/qatomic_sh4a.h ../corelib/arch/qatomic_sparc.h ../corelib/arch/qatomic_symbian.h ../corelib/arch/qatomic_vxworks.h ../corelib/arch/qatomic_windows.h ../corelib/arch/qatomic_windowsce.h ../corelib/arch/qatomic_x86_64.h ../corelib/tools/qalgorithms.h ../corelib/tools/qbitarray.h ../corelib/tools/qbytearray.h ../corelib/tools/qbytearraymatcher.h ../corelib/tools/qcache.h ../corelib/tools/qchar.h ../corelib/tools/qcontainerfwd.h ../corelib/tools/qcontiguouscache.h ../corelib/tools/qcryptographichash.h ../corelib/tools/qdatetime.h ../corelib/tools/qeasingcurve.h ../corelib/tools/qelapsedtimer.h ../corelib/tools/qhash.h ../corelib/tools/qiterator.h ../corelib/tools/qline.h ../corelib/tools/qlinkedlist.h ../corelib/tools/qlist.h ../corelib/tools/qlocale.h ../corelib/tools/qlocale_blackberry.h ../corelib/tools/qmap.h ../corelib/tools/qmargins.h ../corelib/tools/qpair.h ../corelib/tools/qpoint.h ../corelib/tools/qqueue.h ../corelib/tools/qrect.h ../corelib/tools/qregexp.h ../corelib/tools/qscopedpointer.h ../corelib/tools/qscopedvaluerollback.h ../corelib/tools/qset.h ../corelib/tools/qshareddata.h ../corelib/tools/qsharedpointer.h ../corelib/tools/qsharedpointer_impl.h ../corelib/tools/qsize.h ../corelib/tools/qstack.h ../corelib/tools/qstring.h ../corelib/tools/qstringbuilder.h ../corelib/tools/qstringlist.h ../corelib/tools/qstringmatcher.h ../corelib/tools/qtextboundaryfinder.h ../corelib/tools/qtimeline.h ../corelib/tools/qvarlengtharray.h ../corelib/tools/qvector.h ../corelib/plugin/qfactoryinterface.h ../corelib/plugin/qlibrary.h ../corelib/plugin/qplugin.h ../corelib/plugin/qpluginloader.h ../corelib/plugin/quuid.h ../corelib/xml/qxmlstream.h ../corelib/thread/qatomic.h ../corelib/thread/qbasicatomic.h ../corelib/thread/qmutex.h ../corelib/thread/qreadwritelock.h ../corelib/thread/qsemaphore.h ../corelib/thread/qthread.h ../corelib/thread/qthreadstorage.h ../corelib/thread/qwaitcondition.h ../corelib/statemachine/qabstractstate.h ../corelib/statemachine/qabstracttransition.h ../corelib/statemachine/qeventtransition.h ../corelib/statemachine/qfinalstate.h ../corelib/statemachine/qhistorystate.h ../corelib/statemachine/qsignaltransition.h ../corelib/statemachine/qstate.h ../corelib/statemachine/qstatemachine.h ../corelib/concurrent/qfuture.h ../corelib/concurrent/qfutureinterface.h ../corelib/concurrent/qfuturesynchronizer.h ../corelib/concurrent/qfuturewatcher.h ../corelib/concurrent/qrunnable.h ../corelib/concurrent/qtconcurrentcompilertest.h ../corelib/concurrent/qtconcurrentexception.h ../corelib/concurrent/qtconcurrentfilter.h ../corelib/concurrent/qtconcurrentfilterkernel.h ../corelib/concurrent/qtconcurrentfunctionwrappers.h ../corelib/concurrent/qtconcurrentiteratekernel.h ../corelib/concurrent/qtconcurrentmap.h ../corelib/concurrent/qtconcurrentmapkernel.h ../corelib/concurrent/qtconcurrentmedian.h ../corelib/concurrent/qtconcurrentreducekernel.h ../corelib/concurrent/qtconcurrentresultstore.h ../corelib/concurrent/qtconcurrentrun.h ../corelib/concurrent/qtconcurrentrunbase.h ../corelib/concurrent/qtconcurrentstoredfunctioncall.h ../corelib/concurrent/qtconcurrentthreadengine.h ../corelib/concurrent/qthreadpool.h ../corelib/io/qabstractfileengine.h ../corelib/io/qbuffer.h ../corelib/io/qdatastream.h ../corelib/io/qdebug.h ../corelib/io/qdir.h ../corelib/io/qdiriterator.h ../corelib/io/qfile.h ../corelib/io/qfileinfo.h ../corelib/io/qfilesystemwatcher.h ../corelib/io/qfsfileengine.h ../corelib/io/qiodevice.h ../corelib/io/qprocess.h ../corelib/io/qresource.h ../corelib/io/qsettings.h ../corelib/io/qtemporaryfile.h ../corelib/io/qtextstream.h ../corelib/io/qurl.h ../corelib/global/qconfig-dist.h ../corelib/global/qconfig-large.h ../corelib/global/qconfig-medium.h ../corelib/global/qconfig-minimal.h ../corelib/global/qconfig-nacl.h ../corelib/global/qconfig-small.h ../corelib/global/qendian.h ../corelib/global/qfeatures.h ../corelib/global/qglobal.h ../corelib/global/qlibraryinfo.h ../corelib/global/qnamespace.h ../corelib/global/qnumeric.h ../corelib/global/qt_windows.h ../corelib/global/qconfig.h ../corelib/codecs/qtextcodec.h ../corelib/codecs/qtextcodecplugin.h ../../include/QtCore/QtCore | ||
17 | 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/QtCore/QChildEvent ../../include/QtCore/QCustomEvent ../../include/QtCore/QDynamicPropertyChangeEvent ../../include/QtCore/QEventLoop ../../include/QtCore/QMetaMethod ../../include/QtCore/QMetaEnum ../../include/QtCore/QMetaProperty ../../include/QtCore/QMetaClassInfo ../../include/QtCore/QMetaType ../../include/QtCore/QMetaTypeId ../../include/QtCore/QMetaTypeId2 ../../include/QtCore/QMimeData ../../include/QtCore/QObjectList ../../include/QtCore/QObjectData ../../include/QtCore/QObject ../../include/QtCore/QObjectUserData ../../include/QtCore/QObjectCleanupHandler ../../include/QtCore/QGenericArgument ../../include/QtCore/QGenericReturnArgument ../../include/QtCore/QArgument ../../include/QtCore/QReturnArgument ../../include/QtCore/QMetaObject ../../include/QtCore/QMetaObjectAccessor ../../include/QtCore/QMetaObjectExtraData ../../include/QtCore/QPointer ../../include/QtCore/QSharedMemory ../../include/QtCore/QSignalMapper ../../include/QtCore/QSocketNotifier ../../include/QtCore/QSystemSemaphore ../../include/QtCore/QTimer ../../include/QtCore/QTranslator ../../include/QtCore/QVariant ../../include/QtCore/QVariantList ../../include/QtCore/QVariantMap ../../include/QtCore/QVariantHash ../../include/QtCore/QVariantComparisonHelper ../../include/QtCore/QAbstractAnimation ../../include/QtCore/QAnimationDriver ../../include/QtCore/QAnimationGroup ../../include/QtCore/QParallelAnimationGroup ../../include/QtCore/QPauseAnimation ../../include/QtCore/QPropertyAnimation ../../include/QtCore/QSequentialAnimationGroup ../../include/QtCore/QVariantAnimation ../../include/QtCore/QtAlgorithms ../../include/QtCore/QBitArray ../../include/QtCore/QBitRef ../../include/QtCore/QByteArray ../../include/QtCore/QByteRef ../../include/QtCore/QByteArrayMatcher ../../include/QtCore/QCache ../../include/QtCore/QLatin1Char ../../include/QtCore/QChar ../../include/QtCore/QtContainerFwd ../../include/QtCore/QContiguousCacheData ../../include/QtCore/QContiguousCacheTypedData ../../include/QtCore/QContiguousCache ../../include/QtCore/QCryptographicHash ../../include/QtCore/QDate ../../include/QtCore/QTime ../../include/QtCore/QDateTime ../../include/QtCore/QEasingCurve ../../include/QtCore/QElapsedTimer ../../include/QtCore/QHashData ../../include/QtCore/QHashDummyValue ../../include/QtCore/QHashDummyNode ../../include/QtCore/QHashNode ../../include/QtCore/QHash ../../include/QtCore/QMultiHash ../../include/QtCore/QHashIterator ../../include/QtCore/QMutableHashIterator ../../include/QtCore/QLine ../../include/QtCore/QLineF ../../include/QtCore/QLinkedListData ../../include/QtCore/QLinkedListNode ../../include/QtCore/QLinkedList ../../include/QtCore/QLinkedListIterator ../../include/QtCore/QMutableLinkedListIterator ../../include/QtCore/QListData ../../include/QtCore/QList ../../include/QtCore/QListIterator ../../include/QtCore/QMutableListIterator ../../include/QtCore/QSystemLocale ../../include/QtCore/QLocale ../../include/QtCore/QBBSystemLocaleData ../../include/QtCore/QMapData ../../include/QtCore/QMapNode ../../include/QtCore/QMapPayloadNode ../../include/QtCore/QMap ../../include/QtCore/QMultiMap ../../include/QtCore/QMapIterator ../../include/QtCore/QMutableMapIterator ../../include/QtCore/QMargins ../../include/QtCore/QPair ../../include/QtCore/QPoint ../../include/QtCore/QPointF ../../include/QtCore/QQueue ../../include/QtCore/QRect ../../include/QtCore/QRectF ../../include/QtCore/QRegExp ../../include/QtCore/QScopedPointerDeleter ../../include/QtCore/QScopedPointerArrayDeleter ../../include/QtCore/QScopedPointerPodDeleter ../../include/QtCore/QScopedPointer ../../include/QtCore/QScopedArrayPointer ../../include/QtCore/QScopedValueRollback ../../include/QtCore/QSet ../../include/QtCore/QSetIterator ../../include/QtCore/QMutableSetIterator ../../include/QtCore/QSharedData ../../include/QtCore/QSharedDataPointer ../../include/QtCore/QExplicitlySharedDataPointer ../../include/QtCore/QSharedPointer ../../include/QtCore/QWeakPointer ../../include/QtCore/QSize ../../include/QtCore/QSizeF ../../include/QtCore/QStack ../../include/QtCore/QStdWString ../../include/QtCore/QString ../../include/QtCore/QLatin1String ../../include/QtCore/QCharRef ../../include/QtCore/QConstString ../../include/QtCore/QStringRef ../../include/QtCore/QLatin1Literal ../../include/QtCore/QAbstractConcatenable ../../include/QtCore/QConcatenable ../../include/QtCore/QStringBuilder ../../include/QtCore/QStringListIterator ../../include/QtCore/QMutableStringListIterator ../../include/QtCore/QStringList ../../include/QtCore/QStringMatcher ../../include/QtCore/QTextBoundaryFinder ../../include/QtCore/QTimeLine ../../include/QtCore/QVarLengthArray ../../include/QtCore/QVectorData ../../include/QtCore/QVectorTypedData ../../include/QtCore/QVector ../../include/QtCore/QVectorIterator ../../include/QtCore/QMutableVectorIterator ../../include/QtCore/QFactoryInterface ../../include/QtCore/QLibrary ../../include/QtCore/QtPlugin ../../include/QtCore/QtPluginInstanceFunction ../../include/QtCore/QPluginLoader ../../include/QtCore/QUuid ../../include/QtCore/QXmlStreamStringRef ../../include/QtCore/QXmlStreamAttribute ../../include/QtCore/QXmlStreamAttributes ../../include/QtCore/QXmlStreamNamespaceDeclaration ../../include/QtCore/QXmlStreamNamespaceDeclarations ../../include/QtCore/QXmlStreamNotationDeclaration ../../include/QtCore/QXmlStreamNotationDeclarations ../../include/QtCore/QXmlStreamEntityDeclaration ../../include/QtCore/QXmlStreamEntityDeclarations ../../include/QtCore/QXmlStreamEntityResolver ../../include/QtCore/QXmlStreamReader ../../include/QtCore/QXmlStreamWriter ../../include/QtCore/QAtomicInt ../../include/QtCore/QAtomicPointer ../../include/QtCore/QBasicAtomicInt ../../include/QtCore/QBasicAtomicPointer ../../include/QtCore/QMutex ../../include/QtCore/QMutexLocker ../../include/QtCore/QMutexData ../../include/QtCore/QReadWriteLock ../../include/QtCore/QReadLocker ../../include/QtCore/QWriteLocker ../../include/QtCore/QSemaphore ../../include/QtCore/QThread ../../include/QtCore/QThreadStorageData ../../include/QtCore/QThreadStorage ../../include/QtCore/QWaitCondition ../../include/QtCore/QAbstractState ../../include/QtCore/QAbstractTransition ../../include/QtCore/QEventTransition ../../include/QtCore/QFinalState ../../include/QtCore/QHistoryState ../../include/QtCore/QSignalTransition ../../include/QtCore/QState ../../include/QtCore/QStateMachine ../../include/QtCore/QFuture ../../include/QtCore/QFutureIterator ../../include/QtCore/QMutableFutureIterator ../../include/QtCore/QFutureInterfaceBase ../../include/QtCore/QFutureInterface ../../include/QtCore/QFutureSynchronizer ../../include/QtCore/QFutureWatcherBase ../../include/QtCore/QFutureWatcher ../../include/QtCore/QRunnable ../../include/QtCore/QtConcurrentFilter ../../include/QtCore/QtConcurrentMap ../../include/QtCore/QtConcurrentRun ../../include/QtCore/QThreadPool ../../include/QtCore/QAbstractFileEngine ../../include/QtCore/QAbstractFileEngineHandler ../../include/QtCore/QAbstractFileEngineIterator ../../include/QtCore/QBuffer ../../include/QtCore/QDataStream ../../include/QtCore/QtDebug ../../include/QtCore/QDebug ../../include/QtCore/QNoDebug ../../include/QtCore/QDir ../../include/QtCore/QDirIterator ../../include/QtCore/QFile ../../include/QtCore/QFileInfo ../../include/QtCore/QFileInfoList ../../include/QtCore/QFileInfoListIterator ../../include/QtCore/QFileSystemWatcher ../../include/QtCore/QFSFileEngine ../../include/QtCore/QIODevice ../../include/QtCore/Q_PID ../../include/QtCore/QProcessEnvironment ../../include/QtCore/QProcess ../../include/QtCore/QResource ../../include/QtCore/QSettings ../../include/QtCore/QTemporaryFile ../../include/QtCore/QTextStream ../../include/QtCore/QTextStreamFunction ../../include/QtCore/QTextStreamManipulator ../../include/QtCore/QTS ../../include/QtCore/QTextIStream ../../include/QtCore/QTextOStream ../../include/QtCore/QUrl ../../include/QtCore/QtEndian ../../include/QtCore/QtGlobal ../../include/QtCore/QIntegerForSize ../../include/QtCore/QNoImplicitBoolCast ../../include/QtCore/Q_INT8 ../../include/QtCore/Q_UINT8 ../../include/QtCore/Q_INT16 ../../include/QtCore/Q_UINT16 ../../include/QtCore/Q_INT32 ../../include/QtCore/Q_UINT32 ../../include/QtCore/Q_INT64 ../../include/QtCore/Q_UINT64 ../../include/QtCore/Q_LLONG ../../include/QtCore/Q_ULLONG ../../include/QtCore/Q_LONG ../../include/QtCore/Q_ULONG ../../include/QtCore/QSysInfo ../../include/QtCore/QtMsgHandler ../../include/QtCore/QGlobalStatic ../../include/QtCore/QGlobalStaticDeleter ../../include/QtCore/QBool ../../include/QtCore/QTypeInfo ../../include/QtCore/QFlag ../../include/QtCore/QIncompatibleFlag ../../include/QtCore/QFlags ../../include/QtCore/QForeachContainer ../../include/QtCore/QForeachContainerBase ../../include/QtCore/QLibraryInfo ../../include/QtCore/Qt ../../include/QtCore/QInternal ../../include/QtCore/QCOORD ../../include/QtCore/QtConfig ../../include/QtCore/QTextCodec ../../include/QtCore/QTextEncoder ../../include/QtCore/QTextDecoder ../../include/QtCore/QTextCodecFactoryInterface ../../include/QtCore/QTextCodecPlugin | ||
18 | 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/qeventdispatcher_symbian_p.h ../corelib/kernel/qeventdispatcher_unix_p.h ../corelib/kernel/qeventdispatcher_win_p.h ../corelib/kernel/qfunctions_p.h ../corelib/kernel/qmetaobject_p.h ../corelib/kernel/qobject_p.h ../corelib/kernel/qsharedmemory_p.h ../corelib/kernel/qsystemerror_p.h ../corelib/kernel/qsystemsemaphore_p.h ../corelib/kernel/qtranslator_p.h ../corelib/kernel/qvariant_p.h ../corelib/kernel/qwineventnotifier_p.h ../corelib/animation/qabstractanimation_p.h ../corelib/animation/qanimationgroup_p.h ../corelib/animation/qparallelanimationgroup_p.h ../corelib/animation/qpropertyanimation_p.h ../corelib/animation/qsequentialanimationgroup_p.h ../corelib/animation/qvariantanimation_p.h ../corelib/tools/qbytedata_p.h ../corelib/tools/qdatetime_p.h ../corelib/tools/qharfbuzz_p.h ../corelib/tools/qlocale_data_p.h ../corelib/tools/qlocale_p.h ../corelib/tools/qlocale_tools_p.h ../corelib/tools/qpodlist_p.h ../corelib/tools/qringbuffer_p.h ../corelib/tools/qscopedpointer_p.h ../corelib/tools/qsimd_p.h ../corelib/tools/qtools_p.h ../corelib/tools/qunicodetables_p.h ../corelib/plugin/qelfparser_p.h ../corelib/plugin/qfactoryloader_p.h ../corelib/plugin/qlibrary_p.h ../corelib/plugin/qsystemlibrary_p.h ../corelib/xml/qxmlstream_p.h ../corelib/xml/qxmlutils_p.h ../corelib/thread/qmutex_p.h ../corelib/thread/qmutexpool_p.h ../corelib/thread/qorderedmutexlocker_p.h ../corelib/thread/qreadwritelock_p.h ../corelib/thread/qthread_p.h ../corelib/statemachine/qabstractstate_p.h ../corelib/statemachine/qabstracttransition_p.h ../corelib/statemachine/qeventtransition_p.h ../corelib/statemachine/qhistorystate_p.h ../corelib/statemachine/qsignaleventgenerator_p.h ../corelib/statemachine/qsignaltransition_p.h ../corelib/statemachine/qstate_p.h ../corelib/statemachine/qstatemachine_p.h ../corelib/concurrent/qfutureinterface_p.h ../corelib/concurrent/qfuturewatcher_p.h ../corelib/concurrent/qthreadpool_p.h ../corelib/io/qabstractfileengine_p.h ../corelib/io/qdatastream_p.h ../corelib/io/qdataurl_p.h ../corelib/io/qdir_p.h ../corelib/io/qfile_p.h ../corelib/io/qfileinfo_p.h ../corelib/io/qfilesystemengine_p.h ../corelib/io/qfilesystementry_p.h ../corelib/io/qfilesystemiterator_p.h ../corelib/io/qfilesystemmetadata_p.h ../corelib/io/qfilesystemwatcher_dnotify_p.h ../corelib/io/qfilesystemwatcher_fsevents_p.h ../corelib/io/qfilesystemwatcher_inotify_p.h ../corelib/io/qfilesystemwatcher_kqueue_p.h ../corelib/io/qfilesystemwatcher_p.h ../corelib/io/qfilesystemwatcher_symbian_p.h ../corelib/io/qfilesystemwatcher_win_p.h ../corelib/io/qfsfileengine_iterator_p.h ../corelib/io/qfsfileengine_p.h ../corelib/io/qiodevice_p.h ../corelib/io/qnoncontiguousbytedevice_p.h ../corelib/io/qprocess_p.h ../corelib/io/qresource_iterator_p.h ../corelib/io/qresource_p.h ../corelib/io/qsettings_p.h ../corelib/io/qtldurl_p.h ../corelib/io/qurltlds_p.h ../corelib/io/qwindowspipewriter_p.h ../corelib/global/qnumeric_p.h ../corelib/global/qt_pch.h ../corelib/codecs/qfontlaocodec_p.h ../corelib/codecs/qiconvcodec_p.h ../corelib/codecs/qisciicodec_p.h ../corelib/codecs/qlatincodec_p.h ../corelib/codecs/qsimplecodec_p.h ../corelib/codecs/qtextcodec_p.h ../corelib/codecs/qtsciicodec_p.h ../corelib/codecs/qutfcodec_p.h | ||