summaryrefslogtreecommitdiffstats
path: root/recipes-qt/qt5/qtbase
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-qt/qt5/qtbase')
-rw-r--r--recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch314
-rw-r--r--recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch36
-rw-r--r--recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch154
-rw-r--r--recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch10
-rw-r--r--recipes-qt/qt5/qtbase/0006-QOpenGLPaintDevice-sub-area-support.patch154
-rw-r--r--recipes-qt/qt5/qtbase/0007-linux-oe-g-Invert-conditional-for-defining-QT_SOCKLE.patch32
-rw-r--r--recipes-qt/qt5/qtbase/0008-configure-paths-for-target-qmake-properly.patch18
-rw-r--r--recipes-qt/qt5/qtbase/0009-Disable-all-unknown-features-instead-of-erroring-out.patch28
-rw-r--r--recipes-qt/qt5/qtbase/0009-Reorder-EGL-libraries-from-pkgconfig-and-defaults.patch95
-rw-r--r--recipes-qt/qt5/qtbase/0012-Add-external-hostbindir-option-for-native-sdk.patch131
-rw-r--r--recipes-qt/qt5/qtbase/0013-Fix-build-with-QT_NO_OPENGL.patch33
11 files changed, 101 insertions, 904 deletions
diff --git a/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch b/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch
index b28ca8b6..df2016e1 100644
--- a/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch
+++ b/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch
@@ -1,4 +1,4 @@
1From d6c75f788e15fb552eacb08359698a1342a97f20 Mon Sep 17 00:00:00 2001 1From 2784921c40d0b523c75e613e48b7fd1e90ba3ef1 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com> 2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Mon, 15 Apr 2013 04:29:32 +0200 3Date: Mon, 15 Apr 2013 04:29:32 +0200
4Subject: [PATCH] Add linux-oe-g++ platform 4Subject: [PATCH] Add linux-oe-g++ platform
@@ -7,176 +7,53 @@ Subject: [PATCH] Add linux-oe-g++ platform
7 shell environment, because it's easier for qt recipes to export 7 shell environment, because it's easier for qt recipes to export
8 *FLAGS or CC specific for given recipe 8 *FLAGS or CC specific for given recipe
9 9
10* configure: add getQEvalMakeConf and getXQEvalMakeConf 10* configure: extend setBootstrapVariable to convert $$(...) operator
11 Allow expansion of $(...) references from qmake.conf to generate 11 to $(...) operator to work in qmake's Makefiles
12 qmake environment from shell environment as exported by qmake5_base
13
14* configure: don't export SYSTEM_VARIABLES to .qmake.vars
15 linux-oe-g++ should handle this correctly and exporting LD as QMAKE_LINK is
16 causing issues as we need g++ to be used as linker
17 12
18* configure.prf: Allow to add extra arguments to make 13* configure.prf: Allow to add extra arguments to make
19 sometimes we would like to add -e or define some variable and respect it from both 14 sometimes we would like to add -e or define some variable and respect it from both
20 Makefiles used in configure tests and also Makefiles to build the application 15 Makefiles used in configure tests and also Makefiles to build the application
21 16
22* OE_QMAKE_CXX in order to allow compiler version check to succeed
23 which allows WebKit to be enabled.
24
25* Other variables in order to let config.tests to use our -platform
26 settings
27
28* Add setBootstrapEvalVariable to bootstrap qmake with our environment
29 too, this allows us to use -platform linux-oe-g++ also for native
30 recipe
31
32* disable gdb_dwarf_index
33 * qmake is trying to call native gdb and we don't depend on gdb-native
34 (or even provide gdb-native)
35 * fixes errors like this:
36 /bin/sh: gdb: command not found
37 /bin/sh: line 0: test: -gt: unary operator expected
38 which are not fatal, but still misleading in do_configure output
39
40* add -target suffix to qmake built in qtbase configure, this way we can
41 use qmake from qtbase-native, but then include qmake built for target
42 in qtbase-tools package (smilarly for nativesdk-qtbase).
43
44Upstream-Status: Inappropriate [embedded specific] 17Upstream-Status: Inappropriate [embedded specific]
45 too OE specific, probably cannot be upstreamed 18 too OE specific, probably cannot be upstreamed
46 19
47Change-Id: I0591ed5da0d61d7cf1509d420e6b293582f1863c 20Change-Id: I0591ed5da0d61d7cf1509d420e6b293582f1863c
48Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> 21Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
49--- 22---
50 configure | 55 ++++++++++++------- 23 configure | 2 +-
51 mkspecs/features/configure.prf | 4 +- 24 mkspecs/features/configure.prf | 4 ++--
52 mkspecs/linux-oe-g++/qmake.conf | 42 +++++++++++++++ 25 mkspecs/features/qt_functions.prf | 2 +-
53 mkspecs/linux-oe-g++/qplatformdefs.h | 100 +++++++++++++++++++++++++++++++++++ 26 mkspecs/linux-oe-g++/qmake.conf | 43 ++++++++++++++++++++++++++++++++++++
54 4 files changed, 181 insertions(+), 20 deletions(-) 27 mkspecs/linux-oe-g++/qplatformdefs.h | 1 +
28 5 files changed, 48 insertions(+), 4 deletions(-)
55 create mode 100644 mkspecs/linux-oe-g++/qmake.conf 29 create mode 100644 mkspecs/linux-oe-g++/qmake.conf
56 create mode 100644 mkspecs/linux-oe-g++/qplatformdefs.h 30 create mode 100644 mkspecs/linux-oe-g++/qplatformdefs.h
57 31
58diff --git a/configure b/configure 32diff --git a/configure b/configure
59index 0ba0c31..052872e 100755 33index 789ba4c..59cce01 100755
60--- a/configure 34--- a/configure
61+++ b/configure 35+++ b/configure
62@@ -333,6 +333,16 @@ getQMakeConf() 36@@ -1624,7 +1624,7 @@ fi
63 getSingleQMakeVariable "$1" "$specvals" 37 # is where the resulting variable is written to
64 } 38 setBootstrapVariable()
65
66+# OE qmake.conf is reading some variables from shell env
67+# read them from qmake.conf, replace qmake () syntax with shell and eval
68+getQEvalMakeConf()
69+{
70+ VAL=`getQMakeConf "$1" | sed -n 's/$[(]\([0-9a-zA-Z_]*\)[)]/$\1/pg'`
71+ EVAL=`eval "echo ${VAL}"`
72+# echo "Running getQEvalMakeConf: var='$1', val='`getQMakeConf \"$1\"`, val-sed='$VAL', eval='$EVAL'" >&2
73+ eval "echo ${VAL}"
74+}
75+
76 getXQMakeConf()
77 { 39 {
78 if [ -z "$xspecvals" ]; then 40- getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
79@@ -357,6 +367,16 @@ testXConfig() 41+ getQMakeConf "$1" | sed 's:\$\$(:\$(:' | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
80 esac
81 }
82
83+# OE qmake.conf is reading some variables from shell env
84+# read them from qmake.conf, replace qmake () syntax with shell and eval
85+getXQEvalMakeConf()
86+{
87+ VAL=`getXQMakeConf "$1" | sed -n 's/$[(]\([0-9a-zA-Z_]*\)[)]/$\1/pg'`
88+ EVAL=`eval "echo ${VAL}"`
89+# echo "Running getXQEvalMakeConf: var='$1', val='`getXQMakeConf \"$1\"`, val-sed='$VAL', eval='$EVAL'" >&2
90+ eval "echo ${VAL}"
91+}
92+
93 compilerSupportsFlag()
94 {
95 cat >conftest.cpp <<EOF
96@@ -578,24 +598,14 @@ fi
97 # initalize variables
98 #-------------------------------------------------------------------------------
99
100-SYSTEM_VARIABLES="AR RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
101-for varname in $SYSTEM_VARIABLES; do
102+# Export all OE variables for qmake.conf from shell env to QMakeVars
103+OE_VARIABLES="AR CC CFLAGS COMPILER CXX CXXFLAGS LDFLAGS LINK QT_CONFIG STRIP"
104+for varname in $OE_VARIABLES; do
105 qmakevarname="${varname}"
106- qmakecmdargs=""
107- # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
108- if [ "${varname}" = "LDFLAGS" ]; then
109- qmakevarname="LFLAGS"
110- elif [ "${varname}" = "LD" ]; then
111- qmakevarname="LINK"
112- elif [ "${varname}" = "AR" ]; then
113- # QMAKE_AR needs to be set to "/path/to/ar cqs" but the
114- # environment variable will be set to the command only so we
115- # need to append " cqs" for autoconf compatibility
116- qmakecmdargs=" cqs"
117- fi
118 cmd=`echo \
119-'if [ -n "\$'${varname}'" ]; then
120- QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}${qmakecmdargs}'"
121+'if [ -n "\$OE_QMAKE_'${varname}'" ]; then
122+ QMakeVar set OE_QMAKE_'${qmakevarname}' "\$OE_QMAKE_'${varname}'"
123+# echo "Exporting OE_QMAKE_'${qmakevarname}' value=\"\$OE_QMAKE_'${varname}'\"" >&2
124 fi'`
125 eval "$cmd"
126 done
127@@ -3443,7 +3453,7 @@ if [ "$XPLATFORM_MAC" = "yes" ]; then
128 [ "$CFG_GTK" = "auto" ] && CFG_GTK=no
129 fi
130
131-QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
132+QMAKE_CONF_COMPILER=`getXQEvalMakeConf QMAKE_CXX`
133
134 TEST_COMPILER=$QMAKE_CONF_COMPILER
135
136@@ -3494,7 +3504,7 @@ if [ "$XPLATFORM_ANDROID" = "yes" ] ; then
137 fi
138 fi
139
140-TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
141+TEST_COMPILER_CXXFLAGS=`getXQEvalMakeConf QMAKE_CXXFLAGS`
142
143 GCC_MACHINE_DUMP=
144 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
145@@ -3893,6 +3903,14 @@ setBootstrapVariable()
146 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
147 } 42 }
148 43
149+# OE qmake.conf is reading some variables from shell env
150+# read them from qmake.conf, replace qmake () syntax with shell and eval
151+setBootstrapEvalVariable()
152+{
153+ getQEvalMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
154+}
155+
156+
157 # build qmake 44 # build qmake
158 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
159 echo "Creating qmake..."
160@@ -3986,6 +4004,7 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
161 EXEEXT=
162 ;;
163 esac
164+ [ "$QT_CROSS_COMPILE" = "yes" ] && EXEEXT=-target
165 if [ "$BUILD_ON_MAC" = "yes" ]; then
166 echo "COCOA_LFLAGS =-framework Foundation -framework CoreServices" >>"$mkfile"
167 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
168diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf 45diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf
169index a890c7f..151630c 100644 46index f275e3a..5aa15f5 100644
170--- a/mkspecs/features/configure.prf 47--- a/mkspecs/features/configure.prf
171+++ b/mkspecs/features/configure.prf 48+++ b/mkspecs/features/configure.prf
172@@ -71,14 +71,14 @@ defineTest(qtCompileTest) { 49@@ -37,14 +37,14 @@ defineTest(qtCompileTest) {
173 } 50 }
174 51
175 # Clean up after previous run 52 # Clean up after previous run
176- exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE distclean") 53- exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE distclean")
177+ exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE $$(QMAKE_MAKE_ARGS) distclean") 54+ exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE $$(QMAKE_MAKE_ARGS) distclean")
178 55
179 mkpath($$test_out_dir)|error("Aborting.") 56 mkpath($$test_out_dir)|error()
180 57
181 !isEmpty (QMAKE_QTCONF): qtconfarg = -qtconf $$QMAKE_QTCONF 58 !isEmpty (QMAKE_QTCONF): qtconfarg = -qtconf $$QMAKE_QTCONF
182 59
@@ -186,157 +63,72 @@ index a890c7f..151630c 100644
186 log("yes$$escape_expand(\\n)") 63 log("yes$$escape_expand(\\n)")
187 msg = "test $$1 succeeded" 64 msg = "test $$1 succeeded"
188 write_file($$QMAKE_CONFIG_LOG, msg, append) 65 write_file($$QMAKE_CONFIG_LOG, msg, append)
66diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
67index 708815d..097ac49 100644
68--- a/mkspecs/features/qt_functions.prf
69+++ b/mkspecs/features/qt_functions.prf
70@@ -67,7 +67,7 @@ defineTest(qtHaveModule) {
71 defineTest(qtPrepareTool) {
72 cmd = $$eval(QT_TOOL.$${2}.binary)
73 isEmpty(cmd) {
74- cmd = $$[QT_HOST_BINS]/$$2
75+ cmd = $$[QT_HOST_BINS/get]/$$2
76 exists($${cmd}.pl) {
77 $${1}_EXE = $${cmd}.pl
78 cmd = perl -w $$system_path($${cmd}.pl)
189diff --git a/mkspecs/linux-oe-g++/qmake.conf b/mkspecs/linux-oe-g++/qmake.conf 79diff --git a/mkspecs/linux-oe-g++/qmake.conf b/mkspecs/linux-oe-g++/qmake.conf
190new file mode 100644 80new file mode 100644
191index 0000000..311ba04 81index 0000000..c1837e6
192--- /dev/null 82--- /dev/null
193+++ b/mkspecs/linux-oe-g++/qmake.conf 83+++ b/mkspecs/linux-oe-g++/qmake.conf
194@@ -0,0 +1,42 @@ 84@@ -0,0 +1,43 @@
195+# 85+#
196+# qmake configuration for linux-g++ with modifications for building with OpenEmbedded 86+# qmake configuration for linux-g++ with modifications for building with OpenEmbedded
197+# 87+#
198+ 88+
199+MAKEFILE_GENERATOR = UNIX 89+MAKEFILE_GENERATOR = UNIX
200+CONFIG += incremental 90+CONFIG += incremental
201+QMAKE_INCREMENTAL_STYLE = sublib 91+QMAKE_INCREMENTAL_STYLE = sublib
202+ 92+
203+include(../common/linux.conf) 93+include(../common/linux.conf)
204+ 94+
205+# QMAKE_<TOOL> (moc, uic, rcc) are gone, overwrite only ar and strip 95+# QMAKE_<TOOL> (moc, uic, rcc) are gone, overwrite only ar and strip
206+QMAKE_AR = $(OE_QMAKE_AR) cqs 96+QMAKE_AR = $$(OE_QMAKE_AR) cqs
207+QMAKE_STRIP = $(OE_QMAKE_STRIP) 97+QMAKE_STRIP = $$(OE_QMAKE_STRIP)
208+QMAKE_WAYLAND_SCANNER = $(OE_QMAKE_WAYLAND_SCANNER) 98+QMAKE_WAYLAND_SCANNER = $$(OE_QMAKE_WAYLAND_SCANNER)
209+ 99+
210+include(../common/gcc-base-unix.conf) 100+include(../common/gcc-base-unix.conf)
211+ 101+
212+# *FLAGS from gcc-base.conf 102+# *FLAGS from gcc-base.conf
213+QMAKE_CFLAGS += $(OE_QMAKE_CFLAGS) 103+QMAKE_CFLAGS += $$(OE_QMAKE_CFLAGS)
214+QMAKE_CXXFLAGS += $(OE_QMAKE_CXXFLAGS) 104+QMAKE_CXXFLAGS += $$(OE_QMAKE_CXXFLAGS)
215+QMAKE_LFLAGS += $(OE_QMAKE_LDFLAGS) 105+QMAKE_LFLAGS += $$(OE_QMAKE_LDFLAGS)
216+ 106+
217+include(../common/g++-unix.conf) 107+include(../common/g++-unix.conf)
218+ 108+
219+# tc settings from g++-base.conf 109+# tc settings from g++-base.conf
220+QMAKE_COMPILER = $(OE_QMAKE_COMPILER) gcc 110+QMAKE_COMPILER = $$(OE_QMAKE_COMPILER) gcc
221+QMAKE_CC = $(OE_QMAKE_CC) 111+QMAKE_CC = $$(OE_QMAKE_CC)
222+QMAKE_CXX = $(OE_QMAKE_CXX) 112+QMAKE_CXX = $$(OE_QMAKE_CXX)
223+ 113+
224+QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $(OE_QMAKE_CFLAGS) 114+QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$(OE_QMAKE_CFLAGS)
225+ 115+
226+QMAKE_LINK = $(OE_QMAKE_LINK) 116+QMAKE_LINK = $$(OE_QMAKE_LINK)
227+QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK) 117+QMAKE_LINK_SHLIB = $$(OE_QMAKE_LINK)
228+QMAKE_LINK_C = $(OE_QMAKE_LINK) 118+QMAKE_LINK_C = $$(OE_QMAKE_LINK)
229+QMAKE_LINK_C_SHLIB = $(OE_QMAKE_LINK) 119+QMAKE_LINK_C_SHLIB = $$(OE_QMAKE_LINK)
230+ 120+
231+# for the SDK 121+# for the SDK
232+isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $(OE_QMAKE_QT_CONFIG) 122+isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $$(OE_QMAKE_QT_CONFIG)
233+ 123+
234+include(../oe-device-extra.pri) 124+include(../oe-device-extra.pri)
235+ 125+
126+load(device_config)
236+load(qt_config) 127+load(qt_config)
237diff --git a/mkspecs/linux-oe-g++/qplatformdefs.h b/mkspecs/linux-oe-g++/qplatformdefs.h 128diff --git a/mkspecs/linux-oe-g++/qplatformdefs.h b/mkspecs/linux-oe-g++/qplatformdefs.h
238new file mode 100644 129new file mode 100644
239index 0000000..dd12003 130index 0000000..5d22fb4
240--- /dev/null 131--- /dev/null
241+++ b/mkspecs/linux-oe-g++/qplatformdefs.h 132+++ b/mkspecs/linux-oe-g++/qplatformdefs.h
242@@ -0,0 +1,100 @@ 133@@ -0,0 +1 @@
243+/**************************************************************************** 134+#include "../linux-g++/qplatformdefs.h"
244+**
245+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
246+** Contact: http://www.qt-project.org/legal
247+**
248+** This file is part of the qmake spec of the Qt Toolkit.
249+**
250+** $QT_BEGIN_LICENSE:LGPL$
251+** Commercial License Usage
252+** Licensees holding valid commercial Qt licenses may use this file in
253+** accordance with the commercial license agreement provided with the
254+** Software or, alternatively, in accordance with the terms contained in
255+** a written agreement between you and Digia. For licensing terms and
256+** conditions see http://qt.digia.com/licensing. For further information
257+** use the contact form at http://qt.digia.com/contact-us.
258+**
259+** GNU Lesser General Public License Usage
260+** Alternatively, this file may be used under the terms of the GNU Lesser
261+** General Public License version 2.1 as published by the Free Software
262+** Foundation and appearing in the file LICENSE.LGPL included in the
263+** packaging of this file. Please review the following information to
264+** ensure the GNU Lesser General Public License version 2.1 requirements
265+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
266+**
267+** In addition, as a special exception, Digia gives you certain additional
268+** rights. These rights are described in the Digia Qt LGPL Exception
269+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
270+**
271+** GNU General Public License Usage
272+** Alternatively, this file may be used under the terms of the GNU
273+** General Public License version 3.0 as published by the Free Software
274+** Foundation and appearing in the file LICENSE.GPL included in the
275+** packaging of this file. Please review the following information to
276+** ensure the GNU General Public License version 3.0 requirements will be
277+** met: http://www.gnu.org/copyleft/gpl.html.
278+**
279+**
280+** $QT_END_LICENSE$
281+**
282+****************************************************************************/
283+
284+#ifndef QPLATFORMDEFS_H
285+#define QPLATFORMDEFS_H
286+
287+// Get Qt defines/settings
288+
289+#include "qglobal.h"
290+
291+// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs
292+
293+// 1) need to reset default environment if _BSD_SOURCE is defined
294+// 2) need to specify POSIX thread interfaces explicitly in glibc 2.0
295+// 3) it seems older glibc need this to include the X/Open stuff
296+#ifndef _GNU_SOURCE
297+# define _GNU_SOURCE
298+#endif
299+
300+#include <unistd.h>
301+
302+
303+// We are hot - unistd.h should have turned on the specific APIs we requested
304+
305+#include <features.h>
306+#include <pthread.h>
307+#include <dirent.h>
308+#include <fcntl.h>
309+#include <grp.h>
310+#include <pwd.h>
311+#include <signal.h>
312+
313+#include <sys/types.h>
314+#include <sys/ioctl.h>
315+#include <sys/ipc.h>
316+#include <sys/time.h>
317+#include <sys/shm.h>
318+#include <sys/socket.h>
319+#include <sys/stat.h>
320+#include <sys/wait.h>
321+#include <netinet/in.h>
322+#ifndef QT_NO_IPV6IFNAME
323+#include <net/if.h>
324+#endif
325+
326+#define QT_USE_XOPEN_LFS_EXTENSIONS
327+#include "../common/posix/qplatformdefs.h"
328+
329+#undef QT_SOCKLEN_T
330+
331+#if defined(__GLIBC__) && (__GLIBC__ >= 2)
332+#define QT_SOCKLEN_T socklen_t
333+#else
334+#define QT_SOCKLEN_T int
335+#endif
336+
337+#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500)
338+#define QT_SNPRINTF ::snprintf
339+#define QT_VSNPRINTF ::vsnprintf
340+#endif
341+
342+#endif // QPLATFORMDEFS_H
diff --git a/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch b/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch
deleted file mode 100644
index 699e3856..00000000
--- a/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1From e5f8607cfa1d2bcc798686cdf7c87ea0c6577d30 Mon Sep 17 00:00:00 2001
2From: Holger Freyther <zecke@selfish.org>
3Date: Wed, 26 Sep 2012 17:22:30 +0200
4Subject: [PATCH] qlibraryinfo: allow to set qt.conf from the outside using the
5 environment
6
7Allow to set a qt.conf from the outside using the environment. This allows
8to inject new prefixes and other paths into qmake. This is needed when using
9the same qmake binary to build qt/x11 and qt/embedded
10
11Upstream-Status: Inappropriate [embedded specific]
12 again very OE specific to read everything from environment (reusing the same
13 qmake from sstate and replacing all configured paths in it with qt.conf from
14 environment).
15
16Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
17---
18 src/corelib/global/qlibraryinfo.cpp | 5 ++++-
19 1 file changed, 4 insertions(+), 1 deletion(-)
20
21diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
22index 4582001..ff65ef9 100644
23--- a/src/corelib/global/qlibraryinfo.cpp
24+++ b/src/corelib/global/qlibraryinfo.cpp
25@@ -163,7 +163,10 @@ void QLibrarySettings::load()
26
27 QSettings *QLibraryInfoPrivate::findConfiguration()
28 {
29- QString qtconfig = QStringLiteral(":/qt/etc/qt.conf");
30+ QByteArray config = getenv("QT_CONF_PATH");
31+ QString qtconfig = QFile::decodeName(config);
32+ if(!QFile::exists(qtconfig))
33+ qtconfig = QStringLiteral(":/qt/etc/qt.conf");
34 if (QFile::exists(qtconfig))
35 return new QSettings(qtconfig, QSettings::IniFormat);
36 #ifdef QT_BUILD_QMAKE
diff --git a/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch b/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch
index 381cde29..8224171a 100644
--- a/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch
+++ b/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch
@@ -1,165 +1,23 @@
1From c1dc6165d6a085f162ed32ef5697f645019f9ee0 Mon Sep 17 00:00:00 2001 1From 502b95b840a5f79e5a68e9bd5b10dbdc92485f1f Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com> 2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Sat, 6 Apr 2013 13:15:07 +0200 3Date: Sat, 6 Apr 2013 13:15:07 +0200
4Subject: [PATCH] Add -external-hostbindir option 4Subject: [PATCH] Add -external-hostbindir option
5 5
6* when cross-compiling it's sometimes useful to use existing tools from machine
7 (or in OpenEmbedded built with separate native recipe) when building for target
8
9* this way we can skip bootstraping tools we already have
10
11* qt_functions: temporary remove isEmpty check
12* now we assume that every build will provide QT_EXTERNAL_HOST_BINS value
13* isEmpty works correctly only with qmake variables (e.g. $$FOO -
14 isEmpty(FOO)), but doesn't work with system properties like $$[FOO].
15
16* cmake: Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS to determine path to host binaries 6* cmake: Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS to determine path to host binaries
17 7
18Upstream-Status: Pending 8Upstream-Status: Inappropriate [OE specific]
19 is a lot better for upstreaming (and it was already sort of approved by
20 Oswald) but in 5.2.0 I've noticed that he added something similar for
21 android builds
22 9
23Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> 10Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
24Signed-off-by: Simon Busch <morphis@gravedo.de> 11Signed-off-by: Simon Busch <morphis@gravedo.de>
25Signed-off-by: Jonathan Liu <net147@gmail.com> 12Signed-off-by: Jonathan Liu <net147@gmail.com>
26 13
27Conflicts:
28 configure
29
30Change-Id: Iacaa1c5531cd6dcc094891610c351673db55d7b2 14Change-Id: Iacaa1c5531cd6dcc094891610c351673db55d7b2
31--- 15---
32 configure | 14 ++++++++++++++ 16 src/corelib/Qt5CoreConfigExtras.cmake.in | 6 +++---
33 mkspecs/features/qt_functions.prf | 6 +++++- 17 src/dbus/Qt5DBusConfigExtras.cmake.in | 4 ++--
34 mkspecs/features/qt_tool.prf | 4 +++- 18 src/widgets/Qt5WidgetsConfigExtras.cmake.in | 2 +-
35 qtbase.pro | 16 ++++++++++++++++ 19 3 files changed, 6 insertions(+), 6 deletions(-)
36 src/corelib/Qt5CoreConfigExtras.cmake.in | 6 +++---
37 src/dbus/Qt5DBusConfigExtras.cmake.in | 4 ++--
38 src/widgets/Qt5WidgetsConfigExtras.cmake.in | 2 +-
39 7 files changed, 44 insertions(+), 8 deletions(-)
40 20
41diff --git a/configure b/configure
42index 052872e..1fcbb3a 100755
43--- a/configure
44+++ b/configure
45@@ -834,6 +834,7 @@ QT_HOST_BINS=
46 QT_HOST_LIBS=
47 QT_HOST_DATA=
48 QT_EXT_PREFIX=
49+QT_EXTERNAL_HOST_BINS=
50
51 #flags for SQL drivers
52 QT_CFLAGS_PSQL=
53@@ -953,6 +954,7 @@ while [ "$#" -gt 0 ]; do
54 -testsdir| \
55 -hostdatadir| \
56 -hostbindir| \
57+ -external-hostbindir| \
58 -hostlibdir| \
59 -extprefix| \
60 -sysroot| \
61@@ -1185,6 +1187,9 @@ while [ "$#" -gt 0 ]; do
62 extprefix)
63 QT_EXT_PREFIX="$VAL"
64 ;;
65+ external-hostbindir)
66+ QT_EXTERNAL_HOST_BINS="$VAL"
67+ ;;
68 pkg-config)
69 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
70 CFG_PKGCONFIG="$VAL"
71@@ -2447,6 +2452,10 @@ Installation options:
72 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
73 (default HOSTPREFIX)
74
75+ -external-hostbindir <dir> Use external host executables instead of building them
76+ (not used by defaut)
77+
78+
79 Configure options:
80
81 The defaults (*) are usually acceptable. A plus (+) denotes a default value
82@@ -3209,6 +3218,11 @@ fi
83 # command line and environment validation
84 #-------------------------------------------------------------------------------
85
86+# default is empty, don't call makeabs if it is empty
87+if [ ! -z "$QT_EXTERNAL_HOST_BINS" ]; then
88+ QT_EXTERNAL_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_EXTERNAL_HOST_BINS"`
89+fi
90+
91 # update QT_CONFIG to show our current predefined configuration
92 CFG_QCONFIG_PATH=$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h
93 case "$CFG_QCONFIG" in
94diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
95index 54641ce..7d7baa4 100644
96--- a/mkspecs/features/qt_functions.prf
97+++ b/mkspecs/features/qt_functions.prf
98@@ -71,7 +71,11 @@ defineTest(qtHaveModule) {
99 defineTest(qtPrepareTool) {
100 cmd = $$eval(QT_TOOL.$${2}.binary)
101 isEmpty(cmd) {
102- cmd = $$[QT_HOST_BINS]/$$2
103+ QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS]
104+ isEmpty(QT_EXTERNAL_HOST_BINS): \
105+ cmd = $$[QT_HOST_BINS]/$$2
106+ else: \
107+ cmd = $$[QT_EXTERNAL_HOST_BINS]/$$2
108 exists($${cmd}.pl) {
109 $${1}_EXE = $${cmd}.pl
110 cmd = perl -w $$system_path($${cmd}.pl)
111diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf
112index bdeb59c..b8c539f 100644
113--- a/mkspecs/features/qt_tool.prf
114+++ b/mkspecs/features/qt_tool.prf
115@@ -14,10 +14,12 @@ load(qt_app)
116 CONFIG += console
117 DEFINES *= QT_USE_QSTRINGBUILDER
118
119+QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS]
120+
121 # If we are doing a prefix build, create a "module" pri which enables
122 # qtPrepareTool() to work with the non-installed build.
123 # Non-bootstrapped tools always need this because of the environment setup.
124-!build_pass:if(!host_build|!force_bootstrap|force_independent|!isEmpty(HOST_QT_TOOLS)) {
125+!build_pass:if(!host_build|!force_bootstrap|force_independent|!isEmpty(HOST_QT_TOOLS)):isEmpty(QT_EXTERNAL_HOST_BINS) {
126 isEmpty(MODULE):MODULE = $$TARGET
127
128 load(qt_build_paths)
129diff --git a/qtbase.pro b/qtbase.pro
130index 11cff9e..ec03669 100644
131--- a/qtbase.pro
132+++ b/qtbase.pro
133@@ -38,6 +38,19 @@ CONFIG -= qt
134
135 ### installations ####
136
137+QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS]
138+
139+#qmake
140+qmake.path = $$[QT_HOST_BINS]
141+qmake.files = $$OUT_PWD/bin/qmake
142+!isEmpty(QT_EXTERNAL_HOST_BINS) {
143+ qmake.files = $$[QT_EXTERNAL_HOST_BINS]/qmake
144+}
145+equals(QMAKE_HOST.os, Windows) {
146+ qmake.files = $${qmake.files}.exe
147+}
148+INSTALLS += qmake
149+
150 #licheck
151 licheck.path = $$[QT_HOST_BINS]
152 licheck.files = $$PWD/bin/$$QT_LICHECK
153@@ -51,6 +64,9 @@ INSTALLS += fixqt4headers
154 #syncqt
155 syncqt.path = $$[QT_HOST_BINS]
156 syncqt.files = $$PWD/bin/syncqt.pl
157+!isEmpty(QT_EXTERNAL_HOST_BINS) {
158+ syncqt.files = $$[QT_EXTERNAL_HOST_BINS]/syncqt.pl
159+}
160 INSTALLS += syncqt
161
162 # If we are doing a prefix build, create a "module" pri which enables
163diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in 21diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in
164index a5ed8b2..0e11a1e 100644 22index a5ed8b2..0e11a1e 100644
165--- a/src/corelib/Qt5CoreConfigExtras.cmake.in 23--- a/src/corelib/Qt5CoreConfigExtras.cmake.in
diff --git a/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch b/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch
index e24d4758..c105488e 100644
--- a/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch
+++ b/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch
@@ -1,4 +1,4 @@
1From d83234c35de8f52ce3bf6eb262ad8e6af467ac34 Mon Sep 17 00:00:00 2001 1From bf1498618415e7b1e57b54881b1e56d74f2cdf6b Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com> 2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Sat, 27 Apr 2013 23:15:37 +0200 3Date: Sat, 27 Apr 2013 23:15:37 +0200
4Subject: [PATCH] qt_module: Fix pkgconfig and libtool replacements 4Subject: [PATCH] qt_module: Fix pkgconfig and libtool replacements
@@ -68,7 +68,7 @@ Signed-off-by: Jonathan Liu <net147@gmail.com>
68 2 files changed, 14 insertions(+), 1 deletion(-) 68 2 files changed, 14 insertions(+), 1 deletion(-)
69 69
70diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf 70diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf
71index 71e96b4..0d7535c 100644 71index 0c5f080..a6e4f09 100644
72--- a/mkspecs/features/qt.prf 72--- a/mkspecs/features/qt.prf
73+++ b/mkspecs/features/qt.prf 73+++ b/mkspecs/features/qt.prf
74@@ -317,6 +317,19 @@ contains(TEMPLATE, .*app) { 74@@ -317,6 +317,19 @@ contains(TEMPLATE, .*app) {
@@ -89,13 +89,13 @@ index 71e96b4..0d7535c 100644
89+} 89+}
90+ 90+
91 QT_PLUGIN_VERIFY = DEPLOYMENT_PLUGIN 91 QT_PLUGIN_VERIFY = DEPLOYMENT_PLUGIN
92 contains(QT_CONFIG, static) { 92 qtConfig(static) {
93 QT_PLUGIN_VERIFY += QTPLUGIN 93 QT_PLUGIN_VERIFY += QTPLUGIN
94diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf 94diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf
95index b367bc1..209cc43 100644 95index e754a17..4c1530e 100644
96--- a/mkspecs/features/qt_common.prf 96--- a/mkspecs/features/qt_common.prf
97+++ b/mkspecs/features/qt_common.prf 97+++ b/mkspecs/features/qt_common.prf
98@@ -38,7 +38,7 @@ contains(TEMPLATE, .*lib) { 98@@ -37,7 +37,7 @@ contains(TEMPLATE, .*lib) {
99 lib_replace.replace = 99 lib_replace.replace =
100 } else { 100 } else {
101 lib_replace.match = $$rplbase/lib 101 lib_replace.match = $$rplbase/lib
diff --git a/recipes-qt/qt5/qtbase/0006-QOpenGLPaintDevice-sub-area-support.patch b/recipes-qt/qt5/qtbase/0006-QOpenGLPaintDevice-sub-area-support.patch
deleted file mode 100644
index c58b1d9a..00000000
--- a/recipes-qt/qt5/qtbase/0006-QOpenGLPaintDevice-sub-area-support.patch
+++ /dev/null
@@ -1,154 +0,0 @@
1From f207997b59f1381cf3523521209cb435b1a73f25 Mon Sep 17 00:00:00 2001
2From: Jani Hautakangas <jani.hautakangas@ixonos.com>
3Date: Thu, 16 May 2013 09:52:07 +0300
4Subject: [PATCH] QOpenGLPaintDevice sub-area support
5
6Allows creating QOpenGLPaintDevice targetting sub-area
7of binded framebuffer.
8
9Upstream-Status: Pending
10
11Change-Id: Ida2f079aa1ac0b87d36b54129e226399dbcdda80
12
13Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
14---
15 src/gui/opengl/qopenglpaintdevice.cpp | 11 +++++++++++
16 src/gui/opengl/qopenglpaintdevice.h | 2 ++
17 src/gui/opengl/qopenglpaintdevice_p.h | 1 +
18 src/gui/opengl/qopenglpaintengine.cpp | 9 +++++++--
19 src/gui/opengl/qopenglpaintengine_p.h | 1 +
20 src/gui/opengl/qopengltextureglyphcache.cpp | 2 +-
21 6 files changed, 23 insertions(+), 3 deletions(-)
22
23diff --git a/src/gui/opengl/qopenglpaintdevice.cpp b/src/gui/opengl/qopenglpaintdevice.cpp
24index 75f09d6..17d7155 100644
25--- a/src/gui/opengl/qopenglpaintdevice.cpp
26+++ b/src/gui/opengl/qopenglpaintdevice.cpp
27@@ -141,6 +141,12 @@ QOpenGLPaintDevice::QOpenGLPaintDevice(int width, int height)
28 {
29 }
30
31+QOpenGLPaintDevice::QOpenGLPaintDevice(int x, int y, int width, int height)
32+ : d_ptr(new QOpenGLPaintDevicePrivate(QSize(width, height)))
33+{
34+ d_ptr->offset = QPoint(x,y);
35+}
36+
37 /*!
38 \internal
39 */
40@@ -222,6 +228,11 @@ QOpenGLContext *QOpenGLPaintDevice::context() const
41 return d_ptr->ctx;
42 }
43
44+QPoint QOpenGLPaintDevice::offset() const
45+{
46+ return d_ptr->offset;
47+}
48+
49 /*!
50 Returns the pixel size of the paint device.
51
52diff --git a/src/gui/opengl/qopenglpaintdevice.h b/src/gui/opengl/qopenglpaintdevice.h
53index dffa68c..66a1e3d 100644
54--- a/src/gui/opengl/qopenglpaintdevice.h
55+++ b/src/gui/opengl/qopenglpaintdevice.h
56@@ -59,12 +59,14 @@ public:
57 QOpenGLPaintDevice();
58 explicit QOpenGLPaintDevice(const QSize &size);
59 QOpenGLPaintDevice(int width, int height);
60+ QOpenGLPaintDevice(int x, int y, int width, int height);
61 virtual ~QOpenGLPaintDevice();
62
63 int devType() const { return QInternal::OpenGL; }
64 QPaintEngine *paintEngine() const;
65
66 QOpenGLContext *context() const;
67+ QPoint offset() const;
68 QSize size() const;
69 void setSize(const QSize &size);
70 void setDevicePixelRatio(qreal devicePixelRatio);
71diff --git a/src/gui/opengl/qopenglpaintdevice_p.h b/src/gui/opengl/qopenglpaintdevice_p.h
72index 78e6b7a..6630461 100644
73--- a/src/gui/opengl/qopenglpaintdevice_p.h
74+++ b/src/gui/opengl/qopenglpaintdevice_p.h
75@@ -71,6 +71,7 @@ public:
76
77 public:
78 QSize size;
79+ QPoint offset;
80 QOpenGLContext *ctx;
81
82 qreal dpmx;
83diff --git a/src/gui/opengl/qopenglpaintengine.cpp b/src/gui/opengl/qopenglpaintengine.cpp
84index d93871c..be2bee9 100644
85--- a/src/gui/opengl/qopenglpaintengine.cpp
86+++ b/src/gui/opengl/qopenglpaintengine.cpp
87@@ -2084,7 +2084,10 @@ bool QOpenGL2PaintEngineEx::begin(QPaintDevice *pdev)
88 for (int i = 0; i < QT_GL_VERTEX_ARRAY_TRACKED_COUNT; ++i)
89 d->vertexAttributeArraysEnabledState[i] = false;
90
91+ const QPoint offset = d->device->offset();
92 const QSize sz = d->device->size();
93+ d->x = offset.x();
94+ d->y = offset.y();
95 d->width = sz.width();
96 d->height = sz.height();
97 d->mode = BrushDrawingMode;
98@@ -2171,7 +2174,7 @@ void QOpenGL2PaintEngineEx::ensureActive()
99 d->device->ensureActiveTarget();
100
101 d->transferMode(BrushDrawingMode);
102- d->funcs.glViewport(0, 0, d->width, d->height);
103+ d->funcs.glViewport(d->x, d->y, d->width, d->height);
104 d->needsSync = false;
105 d->shaderManager->setDirty();
106 d->syncGlState();
107@@ -2213,6 +2216,7 @@ void QOpenGL2PaintEngineExPrivate::updateClipScissorTest()
108 if (bounds == QRect(0, 0, width, height)) {
109 funcs.glDisable(GL_SCISSOR_TEST);
110 } else {
111+ bounds = QRect(bounds.x(), bounds.y(), bounds.width(), bounds.height());
112 funcs.glEnable(GL_SCISSOR_TEST);
113 setScissor(bounds);
114 }
115@@ -2221,12 +2225,13 @@ void QOpenGL2PaintEngineExPrivate::updateClipScissorTest()
116
117 void QOpenGL2PaintEngineExPrivate::setScissor(const QRect &rect)
118 {
119- const int left = rect.left();
120+ const int left = rect.left() + x;
121 const int width = rect.width();
122 int bottom = height - (rect.top() + rect.height());
123 if (device->paintFlipped()) {
124 bottom = rect.top();
125 }
126+ bottom += y;
127 const int height = rect.height();
128
129 funcs.glScissor(left, bottom, width, height);
130diff --git a/src/gui/opengl/qopenglpaintengine_p.h b/src/gui/opengl/qopenglpaintengine_p.h
131index c9f3282..7c0616b 100644
132--- a/src/gui/opengl/qopenglpaintengine_p.h
133+++ b/src/gui/opengl/qopenglpaintengine_p.h
134@@ -270,6 +270,7 @@ public:
135 QOpenGL2PaintEngineEx* q;
136 QOpenGLEngineShaderManager* shaderManager;
137 QOpenGLPaintDevice* device;
138+ int x, y;
139 int width, height;
140 QOpenGLContext *ctx;
141 EngineMode mode;
142diff --git a/src/gui/opengl/qopengltextureglyphcache.cpp b/src/gui/opengl/qopengltextureglyphcache.cpp
143index 9a7b1eb..6f301f8 100644
144--- a/src/gui/opengl/qopengltextureglyphcache.cpp
145+++ b/src/gui/opengl/qopengltextureglyphcache.cpp
146@@ -403,7 +403,7 @@ void QOpenGLTextureGlyphCache::resizeTextureData(int width, int height)
147 funcs->glBindFramebuffer(GL_FRAMEBUFFER, (GLuint)oldFbo);
148
149 if (pex != 0) {
150- funcs->glViewport(0, 0, pex->width, pex->height);
151+ funcs->glViewport(pex->x, pex->y, pex->width, pex->height);
152 pex->updateClipScissorTest();
153 } else {
154 if (m_vao.isCreated()) {
diff --git a/recipes-qt/qt5/qtbase/0007-linux-oe-g-Invert-conditional-for-defining-QT_SOCKLE.patch b/recipes-qt/qt5/qtbase/0007-linux-oe-g-Invert-conditional-for-defining-QT_SOCKLE.patch
deleted file mode 100644
index 4ea4061a..00000000
--- a/recipes-qt/qt5/qtbase/0007-linux-oe-g-Invert-conditional-for-defining-QT_SOCKLE.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1From 7ab6ff7ba20a3173c10a76814d3c9ed312c80627 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 8 Jun 2015 13:59:25 -0700
4Subject: [PATCH] linux-oe-g++: Invert conditional for defining QT_SOCKLEN_T
5
6This helps to make sure that QT_SOCKLEN_T is defined to be 'int'
7only when its glibc < 2 and not also for the libraries which may define
8it as per standards but are not glibc, e.g. musl
9
10Signed-off-by: Khem Raj <raj.khem@gmail.com>
11---
12 mkspecs/linux-oe-g++/qplatformdefs.h | 6 +++---
13 1 file changed, 3 insertions(+), 3 deletions(-)
14
15diff --git a/mkspecs/linux-oe-g++/qplatformdefs.h b/mkspecs/linux-oe-g++/qplatformdefs.h
16index dd12003..8623651 100644
17--- a/mkspecs/linux-oe-g++/qplatformdefs.h
18+++ b/mkspecs/linux-oe-g++/qplatformdefs.h
19@@ -86,10 +86,10 @@
20
21 #undef QT_SOCKLEN_T
22
23-#if defined(__GLIBC__) && (__GLIBC__ >= 2)
24-#define QT_SOCKLEN_T socklen_t
25-#else
26+#if defined(__GLIBC__) && (__GLIBC__ < 2)
27 #define QT_SOCKLEN_T int
28+#else
29+#define QT_SOCKLEN_T socklen_t
30 #endif
31
32 #if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500)
diff --git a/recipes-qt/qt5/qtbase/0008-configure-paths-for-target-qmake-properly.patch b/recipes-qt/qt5/qtbase/0008-configure-paths-for-target-qmake-properly.patch
index bac18412..6d64e6b5 100644
--- a/recipes-qt/qt5/qtbase/0008-configure-paths-for-target-qmake-properly.patch
+++ b/recipes-qt/qt5/qtbase/0008-configure-paths-for-target-qmake-properly.patch
@@ -1,4 +1,4 @@
1From 0f4ab3e27938002134e8f3f9eb12cf9c50b2ab95 Mon Sep 17 00:00:00 2001 1From cc926956758bf8170c4e49c66e1066524b43f65f Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> 2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
3Date: Fri, 13 Nov 2015 12:36:11 +0100 3Date: Fri, 13 Nov 2015 12:36:11 +0100
4Subject: [PATCH] configure paths for target qmake properly 4Subject: [PATCH] configure paths for target qmake properly
@@ -19,11 +19,11 @@ Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
19 1 file changed, 19 insertions(+), 4 deletions(-) 19 1 file changed, 19 insertions(+), 4 deletions(-)
20 20
21diff --git a/configure b/configure 21diff --git a/configure b/configure
22index f49a674..d30d0ca 100755 22index 8b33c5b..1df248f 100755
23--- a/configure 23--- a/configure
24+++ b/configure 24+++ b/configure
25@@ -3792,8 +3792,13 @@ if [ "$CFG_COMPILE_EXAMPLES" = "yes" ]; then 25@@ -1545,8 +1545,13 @@ if [ -z "$QT_REL_HOST_DATA" ]; then
26 QMAKE_CONFIG="$QMAKE_CONFIG compile_examples" 26 fi
27 fi 27 fi
28 28
29-shortxspec=`echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` 29-shortxspec=`echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
@@ -38,7 +38,7 @@ index f49a674..d30d0ca 100755
38 38
39 QT_CONFIGURE_STR_OFF=0 39 QT_CONFIGURE_STR_OFF=0
40 40
41@@ -3826,7 +3831,11 @@ QT_CONFIGURE_STRS_ALL=$QT_CONFIGURE_STRS 41@@ -1579,7 +1584,11 @@ QT_CONFIGURE_STRS_ALL=$QT_CONFIGURE_STRS
42 42
43 QT_CONFIGURE_STR_OFFSETS= 43 QT_CONFIGURE_STR_OFFSETS=
44 QT_CONFIGURE_STRS= 44 QT_CONFIGURE_STRS=
@@ -51,7 +51,7 @@ index f49a674..d30d0ca 100755
51 addConfStr "$QT_REL_HOST_BINS" 51 addConfStr "$QT_REL_HOST_BINS"
52 addConfStr "$QT_REL_HOST_LIBS" 52 addConfStr "$QT_REL_HOST_LIBS"
53 addConfStr "$QT_REL_HOST_DATA" 53 addConfStr "$QT_REL_HOST_DATA"
54@@ -3838,6 +3847,12 @@ addConfStr "$shortspec" 54@@ -1591,6 +1600,12 @@ addConfStr "$shortspec"
55 #------------------------------------------------------------------------------- 55 #-------------------------------------------------------------------------------
56 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global" 56 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
57 57
@@ -62,9 +62,9 @@ index f49a674..d30d0ca 100755
62+fi 62+fi
63+ 63+
64 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF 64 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
65 /* License Info */ 65 /* Installation date */
66 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee"; 66 static const char qt_configure_installation [12+11] = "qt_instdate=2012-12-20";
67@@ -3850,7 +3865,7 @@ static const char qt_configure_installation [12+11] = "qt_instdate=2 67@@ -1599,7 +1614,7 @@ static const char qt_configure_installation [12+11] = "qt_instdate=2
68 static const char qt_configure_prefix_path_str [512 + 12] = "qt_prfxpath=$QT_INSTALL_PREFIX"; 68 static const char qt_configure_prefix_path_str [512 + 12] = "qt_prfxpath=$QT_INSTALL_PREFIX";
69 #ifdef QT_BUILD_QMAKE 69 #ifdef QT_BUILD_QMAKE
70 static const char qt_configure_ext_prefix_path_str [512 + 12] = "qt_epfxpath=$QT_EXT_PREFIX"; 70 static const char qt_configure_ext_prefix_path_str [512 + 12] = "qt_epfxpath=$QT_EXT_PREFIX";
diff --git a/recipes-qt/qt5/qtbase/0009-Disable-all-unknown-features-instead-of-erroring-out.patch b/recipes-qt/qt5/qtbase/0009-Disable-all-unknown-features-instead-of-erroring-out.patch
new file mode 100644
index 00000000..cb9de793
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0009-Disable-all-unknown-features-instead-of-erroring-out.patch
@@ -0,0 +1,28 @@
1From 9eb81e3bdeda4f90e5f2942400aef38b51a356bd Mon Sep 17 00:00:00 2001
2From: Samuli Piippo <samuli.piippo@qt.io>
3Date: Mon, 24 Oct 2016 09:45:18 +0300
4Subject: [PATCH] Disable all unknown features instead of erroring out
5
6Task-number: QTBUG-56656
7Change-Id: Ib884fe33cac74439f9592b145937f6b75ced8447
8---
9 mkspecs/features/qt_configure.prf | 3 ++-
10 1 file changed, 2 insertions(+), 1 deletion(-)
11
12diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf
13index e8fa0c6..0ca5670 100644
14--- a/mkspecs/features/qt_configure.prf
15+++ b/mkspecs/features/qt_configure.prf
16@@ -1009,7 +1009,8 @@ defineReplace(qtConfEvaluateSingleExpression) {
17 error("Expression '$$1' is accessing field '$$var' of non-local feature $${feature}.")
18 return($$result)
19 }
20- error("Unknown feature object $${feature} in expression '$${1}'.")
21+ warning("Unknown feature object $${feature} in expression '$${1}'.")
22+ result = false
23 }
24 !qtConfCheckFeature($$feature): \
25 error("Expression '$$1' is accessing non-emitted feature $${feature}.")
26--
271.9.1
28
diff --git a/recipes-qt/qt5/qtbase/0009-Reorder-EGL-libraries-from-pkgconfig-and-defaults.patch b/recipes-qt/qt5/qtbase/0009-Reorder-EGL-libraries-from-pkgconfig-and-defaults.patch
deleted file mode 100644
index 23d0ab38..00000000
--- a/recipes-qt/qt5/qtbase/0009-Reorder-EGL-libraries-from-pkgconfig-and-defaults.patch
+++ /dev/null
@@ -1,95 +0,0 @@
1From 91b87aed0a2a96b0d6b54757ea13c75ee648a9b0 Mon Sep 17 00:00:00 2001
2From: Julien Gueytat <contact@jgueytat.fr>
3Date: Wed, 27 Apr 2016 19:24:39 +0200
4Subject: [PATCH] Reorder EGL libraries from pkgconfig and defaults:
5
6https://bugreports.qt.io/browse/QTBUG-50838
7https://bugreports.qt.io/browse/QTBUG-52739
8
9The modification is the less intrusive possible. It only swaps LIBS and QMAKE_LIBS_EGL.
10The reason behind that was that for the RaspberryPi:
11 * -lEGL -GLESv2 can link
12 * -lGLESv2 -lEGL can't
13
14Adding -lEGL -lGLESv2 and then -lEGL gives -lGLESv2 -lEGL ... the libraries swaped.
15
16Signed-off-by: Julien Gueytat <contact@jgueytat.fr>
17---
18 config.tests/qpa/egl/egl.pro | 5 ++++-
19 config.tests/qpa/eglfs-brcm/eglfs-brcm.pro | 12 +++++++-----
20 configure | 16 ++++++++++++++--
21 3 files changed, 25 insertions(+), 8 deletions(-)
22
23diff --git a/config.tests/qpa/egl/egl.pro b/config.tests/qpa/egl/egl.pro
24index b5396da..828b674 100644
25--- a/config.tests/qpa/egl/egl.pro
26+++ b/config.tests/qpa/egl/egl.pro
27@@ -5,6 +5,9 @@ for(p, QMAKE_LIBDIR_EGL) {
28 }
29
30 !isEmpty(QMAKE_INCDIR_EGL): INCLUDEPATH += $$QMAKE_INCDIR_EGL
31-!isEmpty(QMAKE_LIBS_EGL): LIBS += $$QMAKE_LIBS_EGL
32+
33+BACKUP_LIBS = $$LIBS
34+!isEmpty(QMAKE_LIBS_EGL): LIBS = $$QMAKE_LIBS_EGL
35+LIBS += $$BACKUP_LIBS
36
37 CONFIG -= qt
38diff --git a/config.tests/qpa/eglfs-brcm/eglfs-brcm.pro b/config.tests/qpa/eglfs-brcm/eglfs-brcm.pro
39index d8b1c3e..06f7241 100644
40--- a/config.tests/qpa/eglfs-brcm/eglfs-brcm.pro
41+++ b/config.tests/qpa/eglfs-brcm/eglfs-brcm.pro
42@@ -1,11 +1,13 @@
43 SOURCES = eglfs-brcm.cpp
44
45-CONFIG -= qt
46-
47-INCLUDEPATH += $$QMAKE_INCDIR_EGL
48-
49 for(p, QMAKE_LIBDIR_EGL) {
50 LIBS += -L$$p
51 }
52
53-LIBS += -lEGL -lGLESv2 -lbcm_host
54+INCLUDEPATH += $$QMAKE_INCDIR_EGL
55+
56+BACKUP_LIBS = $$LIBS
57+LIBS = -lEGL -lGLESv2 -lbcm_host
58+LIBS += $$BACKUP_LIBS
59+
60+CONFIG -= qt
61diff --git a/configure b/configure
62index d30d0ca..14f348c 100755
63--- a/configure
64+++ b/configure
65@@ -5891,7 +5891,9 @@ if [ "$CFG_EGL" != "no" ]; then
66 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
67 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
68 QMakeVar set QMAKE_CFLAGS_EGL "`echo " $QMAKE_CFLAGS_EGL " | sed -e 's, -I[^ ]* , ,g;s,^ ,,;s, $,,'`"
69- fi # detect EGL support
70+ fi
71+
72+ # detect EGL support
73 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
74 CFG_EGL=yes
75 if compileTest qpa/egl-x11 "EGL-X11" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
76@@ -5914,8 +5916,18 @@ fi
77 if [ "$CFG_EGLFS" != "no" ]; then
78 if [ "$XPLATFORM_QNX" = "no" ] && [ "$CFG_OPENGL" != "no" ]; then
79 CFG_EGLFS="$CFG_EGL"
80+
81+ if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
82+ QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
83+ QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
84+ QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
85+ QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
86+ QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
87+ QMakeVar set QMAKE_CFLAGS_EGL "`echo " $QMAKE_CFLAGS_EGL " | sed -e 's, -I[^ ]* , ,g;s,^ ,,;s, $,,'`"
88+ fi
89+
90 # Detect eglfs backends.
91- if compileTest qpa/eglfs-brcm "eglfs-brcm"; then
92+ if compileTest qpa/eglfs-brcm "eglfs-brcm" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
93 CFG_EGLFS_BRCM=yes
94 else
95 CFG_EGLFS_BRCM=no
diff --git a/recipes-qt/qt5/qtbase/0012-Add-external-hostbindir-option-for-native-sdk.patch b/recipes-qt/qt5/qtbase/0012-Add-external-hostbindir-option-for-native-sdk.patch
deleted file mode 100644
index 1ab8abef..00000000
--- a/recipes-qt/qt5/qtbase/0012-Add-external-hostbindir-option-for-native-sdk.patch
+++ /dev/null
@@ -1,131 +0,0 @@
1From cb66a3193b1b1b8b402548b615c3675c4adcf13a Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Sat, 6 Apr 2013 13:15:07 +0200
4Subject: [PATCH] Add -external-hostbindir option for native(sdk)
5
6* when cross-compiling it's sometimes useful to use existing tools from machine
7 (or in OpenEmbedded built with separate native recipe) when building for target
8
9* this way we can skip bootstraping tools we already have
10
11* qt_functions: temporary remove isEmpty check
12* now we assume that every build will provide QT_EXTERNAL_HOST_BINS value
13* isEmpty works correctly only with qmake variables (e.g. $$FOO -
14 isEmpty(FOO)), but doesn't work with system properties like $$[FOO].
15
16* cmake: Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS to determine path to host binaries
17
18Upstream-Status: Pending
19 is a lot better for upstreaming (and it was already sort of approved by
20 Oswald) but in 5.2.0 I've noticed that he added something similar for
21 android builds
22
23Change-Id: I4f6e634bf0b2cb96065ee5c38b9cd8a224c3bd37
24Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
25Signed-off-by: Simon Busch <morphis@gravedo.de>
26Signed-off-by: Jonathan Liu <net147@gmail.com>
27Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
28
29Conflicts:
30 tools/configure/configureapp.cpp
31---
32 configure | 1 +
33 qmake/property.cpp | 1 +
34 src/corelib/global/qlibraryinfo.cpp | 3 ++-
35 src/corelib/global/qlibraryinfo.h | 1 +
36 tools/configure/configureapp.cpp | 11 +++++++++++
37 5 files changed, 16 insertions(+), 1 deletion(-)
38
39diff --git a/configure b/configure
40index 14f348c..61f22e8 100755
41--- a/configure
42+++ b/configure
43@@ -3839,6 +3839,7 @@ fi
44 addConfStr "$QT_REL_HOST_BINS"
45 addConfStr "$QT_REL_HOST_LIBS"
46 addConfStr "$QT_REL_HOST_DATA"
47+addConfStr "$QT_EXTERNAL_HOST_BINS"
48 addConfStr "$shortxspec"
49 addConfStr "$shortspec"
50
51diff --git a/qmake/property.cpp b/qmake/property.cpp
52index 9ee08f4..e6ecf92 100644
53--- a/qmake/property.cpp
54+++ b/qmake/property.cpp
55@@ -63,6 +63,7 @@ static const struct {
56 { "QT_HOST_DATA", QLibraryInfo::HostDataPath, true },
57 { "QT_HOST_BINS", QLibraryInfo::HostBinariesPath, true },
58 { "QT_HOST_LIBS", QLibraryInfo::HostLibrariesPath, true },
59+ { "QT_EXTERNAL_HOST_BINS", QLibraryInfo::ExternalHostBinariesPath, true },
60 { "QMAKE_SPEC", QLibraryInfo::HostSpecPath, true },
61 { "QMAKE_XSPEC", QLibraryInfo::TargetSpecPath, true },
62 };
63diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
64index ff65ef9..3726831 100644
65--- a/src/corelib/global/qlibraryinfo.cpp
66+++ b/src/corelib/global/qlibraryinfo.cpp
67@@ -381,7 +381,7 @@ QLibraryInfo::isDebugBuild()
68 */
69
70 static const struct {
71- char key[19], value[13];
72+ char key[21], value[13];
73 } qtConfEntries[] = {
74 { "Prefix", "." },
75 { "Documentation", "doc" }, // should be ${Data}/doc
76@@ -406,6 +406,7 @@ static const struct {
77 { "HostBinaries", "bin" },
78 { "HostLibraries", "lib" },
79 { "HostData", "." },
80+ { "ExternalHostBinaries", "" },
81 { "TargetSpec", "" },
82 { "HostSpec", "" },
83 { "HostPrefix", "" },
84diff --git a/src/corelib/global/qlibraryinfo.h b/src/corelib/global/qlibraryinfo.h
85index 362d47d..a2326e2 100644
86--- a/src/corelib/global/qlibraryinfo.h
87+++ b/src/corelib/global/qlibraryinfo.h
88@@ -87,6 +87,7 @@ public:
89 HostBinariesPath,
90 HostLibrariesPath,
91 HostDataPath,
92+ ExternalHostBinariesPath,
93 TargetSpecPath,
94 HostSpecPath,
95 HostPrefixPath,
96diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
97index 0fa205b..2921e2b 100644
98--- a/tools/configure/configureapp.cpp
99+++ b/tools/configure/configureapp.cpp
100@@ -1219,6 +1219,13 @@ void Configure::parseCmdLine()
101 dictionary[ "QT_EXT_PREFIX" ] = configCmdLine.at(i);
102 }
103
104+ else if (configCmdLine.at(i) == "-external-hostbindir") {
105+ ++i;
106+ if (i == argCount)
107+ break;
108+ dictionary[ "QT_EXTERNAL_HOST_BINS" ] = configCmdLine.at(i);
109+ }
110+
111 else if (configCmdLine.at(i) == "-make-tool") {
112 ++i;
113 if (i == argCount)
114@@ -4171,6 +4178,9 @@ void Configure::generateQConfigCpp()
115
116 if (dictionary["QT_REL_HOST_DATA"].isEmpty())
117 dictionary["QT_REL_HOST_DATA"] = haveHpx ? "." : dictionary["QT_REL_INSTALL_ARCHDATA"];
118+
119+ if (dictionary["QT_EXTERNAL_HOST_BINS"].isEmpty())
120+ dictionary["QT_EXTERNAL_HOST_BINS"] = haveHpx ? "bin" : dictionary["QT_REL_INSTALL_BINS"];
121
122 confStringOff = 0;
123 addConfStr(0, dictionary["QT_REL_INSTALL_DOCS"]);
124@@ -4190,6 +4200,7 @@ void Configure::generateQConfigCpp()
125 addConfStr(1, dictionary["QT_REL_HOST_BINS"]);
126 addConfStr(1, dictionary["QT_REL_HOST_LIBS"]);
127 addConfStr(1, dictionary["QT_REL_HOST_DATA"]);
128+ addConfStr(1, dictionary["QT_EXTERNAL_HOST_BINS"]);
129 addConfStr(1, targSpec);
130 addConfStr(1, hostSpec);
131
diff --git a/recipes-qt/qt5/qtbase/0013-Fix-build-with-QT_NO_OPENGL.patch b/recipes-qt/qt5/qtbase/0013-Fix-build-with-QT_NO_OPENGL.patch
deleted file mode 100644
index 7b681dce..00000000
--- a/recipes-qt/qt5/qtbase/0013-Fix-build-with-QT_NO_OPENGL.patch
+++ /dev/null
@@ -1,33 +0,0 @@
1From 2e176e3d10535e4fdaa6ecc919538f66f4a2930d Mon Sep 17 00:00:00 2001
2From: Andy Nichols <andy.nichols@qt.io>
3Date: Mon, 11 Jul 2016 09:18:33 +0200
4Subject: QWidgetBackingStore: Fix build with QT_NO_OPENGL
5
6A define moved out of the #ifndef QT_NO_OPENGL scope.
7
8Change-Id: I41c943b97f165b5171581e01f3a4b2d3fb25747e
9Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
10
11Upstream-Status: Backport
12Signed-off-by: Johannes Pointner <johannes.pointner@br-automation.com>
13---
14 src/widgets/kernel/qwidgetbackingstore.cpp | 2 ++
15 1 file changed, 2 insertions(+)
16
17diff --git a/src/widgets/kernel/qwidgetbackingstore.cpp b/src/widgets/kernel/qwidgetbackingstore.cpp
18index 32aabce..242e625 100644
19--- a/src/widgets/kernel/qwidgetbackingstore.cpp
20+++ b/src/widgets/kernel/qwidgetbackingstore.cpp
21@@ -67,7 +67,9 @@ QT_BEGIN_NAMESPACE
22
23 extern QRegion qt_dirtyRegion(QWidget *);
24
25+#ifndef QT_NO_OPENGL
26 Q_GLOBAL_STATIC(QPlatformTextureList, qt_dummy_platformTextureList)
27+#endif
28
29 /**
30 * Flushes the contents of the \a backingStore into the screen area of \a widget.
31--
32cgit v1.0-4-g1e03
33