From 40f1b73c92731f4e18751d3a499f269c65c21a96 Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Fri, 27 Apr 2018 13:37:25 +0000 Subject: qt5: downgrade to 5.6 * webosose isn't compatible with newer Qt export COMP=qml-webos-framework; for i in `seq -w 1 999`; do echo $i; bitbake -v -v -DDDD -f -c compile ${COMP} 2>${COMP}-logerr.$i >${COMP}-log.$i; bitbake -v -v -DDDD -f -c package_qa ${COMP} 2>${COMP}-logerr.qa.$i >${COMP}-log.qa.$i || { cp -ra tmp-glibc/work/qemux86-oe-linux/${COMP}/ ${COMP}-workdir-$i; bitbake -c cleansstate ${COMP} ; } done in local.conf I have only this to reproduce the failures: PRSERV_HOST = "localhost:0" BB_NUMBER_THREADS = "8" PARALLEL_MAKE = "-j 32" DISTRO_FEATURES_append = " wayland opengl" ERROR_QA_append = " host-user-contaminated" Signed-off-by: Martin Jansa --- .../qt5/qtbase/0001-Add-linux-oe-g-platform.patch | 338 +++++++++++++++++---- ...make-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch | 86 ------ ...o-allow-to-set-qt.conf-from-the-outside-u.patch | 36 +++ .../0003-Add-external-hostbindir-option.patch | 226 ++++++++++++++ ...o-allow-to-set-qt.conf-from-the-outside-u.patch | 36 --- ...ump-path-length-from-256-to-512-character.patch | 34 --- ...le-Fix-pkgconfig-and-libtool-replacements.patch | 106 +++++++ ...-unknown-features-instead-of-erroring-out.patch | 25 -- ...ump-path-length-from-256-to-512-character.patch | 33 ++ ...-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch | 63 ---- .../0006-QOpenGLPaintDevice-sub-area-support.patch | 154 ++++++++++ .../0007-Delete-qlonglong-and-qulonglong.patch | 25 -- ...Invert-conditional-for-defining-QT_SOCKLE.patch | 32 ++ ...08-Replace-pthread_yield-with-sched_yield.patch | 60 ---- ...configure-paths-for-target-qmake-properly.patch | 75 +++++ ...-Add-OE-specific-specs-for-clang-compiler.patch | 69 ----- ...-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch | 63 ++++ .../qt5/qtbase/0010-Always-build-uic.patch | 28 ++ ...-Invert-conditional-for-defining-QT_SOCKL.patch | 32 -- ...external-hostbindir-option-for-native-sdk.patch | 131 ++++++++ ..._qlocale-Enable-QT_USE_FENV-only-on-glibc.patch | 25 -- ...mon-gcc-base.conf-Use-I-instead-of-isyste.patch | 33 -- .../qtbase/0013-Always-build-uic-and-qvkgen.patch | 28 -- .../0014-Bootstrap-without-linkat-feature.patch | 27 -- 24 files changed, 1168 insertions(+), 597 deletions(-) delete mode 100644 meta/recipes-qt/qt5/qtbase/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch create mode 100644 meta/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch create mode 100644 meta/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch delete mode 100644 meta/recipes-qt/qt5/qtbase/0003-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch delete mode 100644 meta/recipes-qt/qt5/qtbase/0004-configure-bump-path-length-from-256-to-512-character.patch create mode 100644 meta/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch delete mode 100644 meta/recipes-qt/qt5/qtbase/0005-Disable-all-unknown-features-instead-of-erroring-out.patch create mode 100644 meta/recipes-qt/qt5/qtbase/0005-configure-bump-path-length-from-256-to-512-character.patch delete mode 100644 meta/recipes-qt/qt5/qtbase/0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch create mode 100644 meta/recipes-qt/qt5/qtbase/0006-QOpenGLPaintDevice-sub-area-support.patch delete mode 100644 meta/recipes-qt/qt5/qtbase/0007-Delete-qlonglong-and-qulonglong.patch create mode 100644 meta/recipes-qt/qt5/qtbase/0007-linux-oe-g-Invert-conditional-for-defining-QT_SOCKLE.patch delete mode 100644 meta/recipes-qt/qt5/qtbase/0008-Replace-pthread_yield-with-sched_yield.patch create mode 100644 meta/recipes-qt/qt5/qtbase/0008-configure-paths-for-target-qmake-properly.patch delete mode 100644 meta/recipes-qt/qt5/qtbase/0009-Add-OE-specific-specs-for-clang-compiler.patch create mode 100644 meta/recipes-qt/qt5/qtbase/0009-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch create mode 100644 meta/recipes-qt/qt5/qtbase/0010-Always-build-uic.patch delete mode 100644 meta/recipes-qt/qt5/qtbase/0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch create mode 100644 meta/recipes-qt/qt5/qtbase/0011-Add-external-hostbindir-option-for-native-sdk.patch delete mode 100644 meta/recipes-qt/qt5/qtbase/0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch delete mode 100644 meta/recipes-qt/qt5/qtbase/0012-mkspecs-common-gcc-base.conf-Use-I-instead-of-isyste.patch delete mode 100644 meta/recipes-qt/qt5/qtbase/0013-Always-build-uic-and-qvkgen.patch delete mode 100644 meta/recipes-qt/qt5/qtbase/0014-Bootstrap-without-linkat-feature.patch (limited to 'meta/recipes-qt/qt5/qtbase') diff --git a/meta/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch b/meta/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch index 07fc2f77b7..37ed1e6522 100644 --- a/meta/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch +++ b/meta/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch @@ -1,4 +1,4 @@ -From 1ed7a2e9a883fe1240d89b7b70fb0f296bb2b54f Mon Sep 17 00:00:00 2001 +From 5d1bf6c3e826af7282b858c192c62aad77095fc0 Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Mon, 15 Apr 2013 04:29:32 +0200 Subject: [PATCH] Add linux-oe-g++ platform @@ -7,78 +7,209 @@ Subject: [PATCH] Add linux-oe-g++ platform shell environment, because it's easier for qt recipes to export *FLAGS or CC specific for given recipe -* configure: extend setBootstrapVariable to convert $$(...) operator - to $(...) operator to work in qmake's Makefiles +* configure: add getQEvalMakeConf and getXQEvalMakeConf + Allow expansion of $(...) references from qmake.conf to generate + qmake environment from shell environment as exported by qmake5_base + +* configure: don't export SYSTEM_VARIABLES to .qmake.vars + linux-oe-g++ should handle this correctly and exporting LD as QMAKE_LINK is + causing issues as we need g++ to be used as linker * configure.prf: Allow to add extra arguments to make sometimes we would like to add -e or define some variable and respect it from both Makefiles used in configure tests and also Makefiles to build the application +* OE_QMAKE_CXX in order to allow compiler version check to succeed + which allows WebKit to be enabled. + +* Other variables in order to let config.tests to use our -platform + settings + +* Add setBootstrapEvalVariable to bootstrap qmake with our environment + too, this allows us to use -platform linux-oe-g++ also for native + recipe + +* disable gdb_dwarf_index + * qmake is trying to call native gdb and we don't depend on gdb-native + (or even provide gdb-native) + * fixes errors like this: + /bin/sh: gdb: command not found + /bin/sh: line 0: test: -gt: unary operator expected + which are not fatal, but still misleading in do_configure output + +* add -target suffix to qmake built in qtbase configure, this way we can + use qmake from qtbase-native, but then include qmake built for target + in qtbase-tools package (smilarly for nativesdk-qtbase). + Upstream-Status: Inappropriate [embedded specific] too OE specific, probably cannot be upstreamed Change-Id: I0591ed5da0d61d7cf1509d420e6b293582f1863c Signed-off-by: Martin Jansa --- - configure | 2 +- - mkspecs/features/configure.prf | 4 ++-- - mkspecs/features/qt_functions.prf | 2 +- - mkspecs/linux-oe-g++/qmake.conf | 42 ++++++++++++++++++++++++++++++++++++ - mkspecs/linux-oe-g++/qplatformdefs.h | 1 + - 5 files changed, 47 insertions(+), 4 deletions(-) + configure | 71 ++++++++++++++++--------- + mkspecs/features/configure.prf | 4 +- + mkspecs/linux-oe-g++/qmake.conf | 42 +++++++++++++++ + mkspecs/linux-oe-g++/qplatformdefs.h | 100 +++++++++++++++++++++++++++++++++++ + 4 files changed, 189 insertions(+), 28 deletions(-) create mode 100644 mkspecs/linux-oe-g++/qmake.conf create mode 100644 mkspecs/linux-oe-g++/qplatformdefs.h diff --git a/configure b/configure -index 08b49a8..5876721 100755 +index 6ebeab3..9e552c6 100755 --- a/configure +++ b/configure -@@ -712,7 +712,7 @@ fi - # is where the resulting variable is written to - setBootstrapVariable() +@@ -343,6 +343,16 @@ getQMakeConf() + getSingleQMakeVariable "$1" "$specvals" + } + ++# OE qmake.conf is reading some variables from shell env ++# read them from qmake.conf, replace qmake () syntax with shell and eval ++getQEvalMakeConf() ++{ ++ VAL=`getQMakeConf "$1" | sed -n 's/$[(]\([0-9a-zA-Z_]*\)[)]/$\1/pg'` ++ EVAL=`eval "echo ${VAL}"` ++# echo "Running getQEvalMakeConf: var='$1', val='`getQMakeConf \"$1\"`, val-sed='$VAL', eval='$EVAL'" >&2 ++ eval "echo ${VAL}" ++} ++ + getXQMakeConf() { -- getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile" -+ getQMakeConf "$1" | sed 's:\$\$(:\$(:' | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile" + if [ -z "$xspecvals" ]; then +@@ -367,6 +377,16 @@ testXConfig() + esac } ++# OE qmake.conf is reading some variables from shell env ++# read them from qmake.conf, replace qmake () syntax with shell and eval ++getXQEvalMakeConf() ++{ ++ VAL=`getXQMakeConf "$1" | sed -n 's/$[(]\([0-9a-zA-Z_]*\)[)]/$\1/pg'` ++ EVAL=`eval "echo ${VAL}"` ++# echo "Running getXQEvalMakeConf: var='$1', val='`getXQMakeConf \"$1\"`, val-sed='$VAL', eval='$EVAL'" >&2 ++ eval "echo ${VAL}" ++} ++ + compilerSupportsFlag() + { + cat >conftest.cpp <&2 + fi'` + eval "$cmd" + done +@@ -3443,7 +3453,7 @@ if [ "$XPLATFORM_MAC" = "yes" ]; then + [ "$CFG_QGTKSTYLE" = "auto" ] && CFG_QGTKSTYLE=no + fi + +-QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX` ++QMAKE_CONF_COMPILER=`getXQEvalMakeConf QMAKE_CXX` + + TEST_COMPILER=$QMAKE_CONF_COMPILER + +@@ -3504,7 +3514,7 @@ if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then + exit 1 + fi + fi +-TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS` ++TEST_COMPILER_CXXFLAGS=`getXQEvalMakeConf QMAKE_CXXFLAGS` + + GCC_MACHINE_DUMP= + case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac +@@ -4005,6 +4015,14 @@ setBootstrapVariable() + getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile" + } + ++# OE qmake.conf is reading some variables from shell env ++# read them from qmake.conf, replace qmake () syntax with shell and eval ++setBootstrapEvalVariable() ++{ ++ getQEvalMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile" ++} ++ ++ # build qmake + if true; then ###[ '!' -f "$outpath/bin/qmake" ]; + echo "Creating qmake..." +@@ -4043,14 +4061,14 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ]; + fi + + [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM= +- setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM" +- setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM" +- setBootstrapVariable QMAKE_CFLAGS +- setBootstrapVariable QMAKE_CFLAGS_SPLIT_SECTIONS +- setBootstrapVariable QMAKE_CXXFLAGS +- setBootstrapVariable QMAKE_CXXFLAGS_SPLIT_SECTIONS +- setBootstrapVariable QMAKE_LFLAGS +- setBootstrapVariable QMAKE_LFLAGS_GCSECTIONS ++ setBootstrapEvalVariable QMAKE_CC CC "$CC_TRANSFORM" ++ setBootstrapEvalVariable QMAKE_CXX CXX "$CC_TRANSFORM" ++ setBootstrapEvalVariable QMAKE_CFLAGS ++ setBootstrapEvalVariable QMAKE_CFLAGS_SPLIT_SECTIONS ++ setBootstrapEvalVariable QMAKE_CXXFLAGS ++ setBootstrapEvalVariable QMAKE_CXXFLAGS_SPLIT_SECTIONS ++ setBootstrapEvalVariable QMAKE_LFLAGS ++ setBootstrapEvalVariable QMAKE_LFLAGS_GCSECTIONS + + if [ "$CFG_DEBUG" = "no" ] || [ "$CFG_RELEASE_TOOLS" = "yes" ]; then + setBootstrapVariable QMAKE_CFLAGS_RELEASE +@@ -4093,6 +4111,7 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ]; + \"\$(SOURCE_PATH)/src/corelib/io/qfsfileengine_unix.cpp\" \ + \"\$(SOURCE_PATH)/src/corelib/tools/qlocale_unix.cpp\"" + EXEEXT= ++ [ "$QT_CROSS_COMPILE" = "yes" ] && EXEEXT=-target + fi + if [ "$BUILD_ON_MAC" = "yes" ]; then + echo "COCOA_LFLAGS =-framework Foundation -framework CoreServices" >>"$mkfile" diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf -index 934a18a..0f5b1b6 100644 +index a3ec227..eef6006 100644 --- a/mkspecs/features/configure.prf +++ b/mkspecs/features/configure.prf -@@ -46,14 +46,14 @@ defineTest(qtCompileTest) { +@@ -71,12 +71,12 @@ defineTest(qtCompileTest) { } # Clean up after previous run - exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE distclean") + exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE $$(QMAKE_MAKE_ARGS) distclean") - mkpath($$test_out_dir)|error() + mkpath($$test_out_dir)|error("Aborting.") - !isEmpty (QMAKE_QTCONF): qtconfarg = -qtconf $$QMAKE_QTCONF - - qtRunLoggedCommand("$$test_cmd_base $$system_quote($$system_path($$QMAKE_QMAKE)) $$qtconfarg -spec $$QMAKESPEC $$qmake_configs $$shell_quote($$test_dir)") { + qtRunLoggedCommand("$$test_cmd_base $$system_quote($$system_path($$QMAKE_QMAKE)) -spec $$QMAKESPEC $$qmake_configs $$shell_quote($$test_dir)") { - qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE") { + qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE $$(QMAKE_MAKE_ARGS)") { log("yes$$escape_expand(\\n)") msg = "test $$1 succeeded" write_file($$QMAKE_CONFIG_LOG, msg, append) -diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf -index 1903e50..c093dd4 100644 ---- a/mkspecs/features/qt_functions.prf -+++ b/mkspecs/features/qt_functions.prf -@@ -69,7 +69,7 @@ defineTest(qtHaveModule) { - defineTest(qtPrepareTool) { - cmd = $$eval(QT_TOOL.$${2}.binary) - isEmpty(cmd) { -- cmd = $$[QT_HOST_BINS]/$$2 -+ cmd = $$[QT_HOST_BINS/get]/$$2 - exists($${cmd}.pl) { - $${1}_EXE = $${cmd}.pl - cmd = perl -w $$system_path($${cmd}.pl) diff --git a/mkspecs/linux-oe-g++/qmake.conf b/mkspecs/linux-oe-g++/qmake.conf new file mode 100644 -index 0000000..30d31ed +index 0000000..311ba04 --- /dev/null +++ b/mkspecs/linux-oe-g++/qmake.conf @@ -0,0 +1,42 @@ @@ -86,48 +217,147 @@ index 0000000..30d31ed +# qmake configuration for linux-g++ with modifications for building with OpenEmbedded +# + -+MAKEFILE_GENERATOR = UNIX ++MAKEFILE_GENERATOR = UNIX +CONFIG += incremental +QMAKE_INCREMENTAL_STYLE = sublib + +include(../common/linux.conf) + +# QMAKE_ (moc, uic, rcc) are gone, overwrite only ar and strip -+QMAKE_AR = $$(OE_QMAKE_AR) cqs -+QMAKE_STRIP = $$(OE_QMAKE_STRIP) ++QMAKE_AR = $(OE_QMAKE_AR) cqs ++QMAKE_STRIP = $(OE_QMAKE_STRIP) ++QMAKE_WAYLAND_SCANNER = $(OE_QMAKE_WAYLAND_SCANNER) + +include(../common/gcc-base-unix.conf) + +# *FLAGS from gcc-base.conf -+QMAKE_CFLAGS += $$(OE_QMAKE_CFLAGS) -+QMAKE_CXXFLAGS += $$(OE_QMAKE_CXXFLAGS) -+QMAKE_LFLAGS += $$(OE_QMAKE_LDFLAGS) ++QMAKE_CFLAGS += $(OE_QMAKE_CFLAGS) ++QMAKE_CXXFLAGS += $(OE_QMAKE_CXXFLAGS) ++QMAKE_LFLAGS += $(OE_QMAKE_LDFLAGS) + +include(../common/g++-unix.conf) + +# tc settings from g++-base.conf -+QMAKE_COMPILER = $$(OE_QMAKE_COMPILER) gcc -+QMAKE_CC = $$(OE_QMAKE_CC) -+QMAKE_CXX = $$(OE_QMAKE_CXX) ++QMAKE_COMPILER = $(OE_QMAKE_COMPILER) gcc ++QMAKE_CC = $(OE_QMAKE_CC) ++QMAKE_CXX = $(OE_QMAKE_CXX) + -+QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$(OE_QMAKE_CFLAGS) ++QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $(OE_QMAKE_CFLAGS) + -+QMAKE_LINK = $$(OE_QMAKE_LINK) -+QMAKE_LINK_SHLIB = $$(OE_QMAKE_LINK) -+QMAKE_LINK_C = $$(OE_QMAKE_LINK) -+QMAKE_LINK_C_SHLIB = $$(OE_QMAKE_LINK) ++QMAKE_LINK = $(OE_QMAKE_LINK) ++QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK) ++QMAKE_LINK_C = $(OE_QMAKE_LINK) ++QMAKE_LINK_C_SHLIB = $(OE_QMAKE_LINK) + +# for the SDK -+isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $$(OE_QMAKE_QT_CONFIG) ++isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $(OE_QMAKE_QT_CONFIG) + +include(../oe-device-extra.pri) + -+load(device_config) +load(qt_config) diff --git a/mkspecs/linux-oe-g++/qplatformdefs.h b/mkspecs/linux-oe-g++/qplatformdefs.h new file mode 100644 -index 0000000..5d22fb4 +index 0000000..dd12003 --- /dev/null +++ b/mkspecs/linux-oe-g++/qplatformdefs.h -@@ -0,0 +1 @@ -+#include "../linux-g++/qplatformdefs.h" +@@ -0,0 +1,100 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the qmake spec of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL$ ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++** GNU General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU ++** General Public License version 3.0 as published by the Free Software ++** Foundation and appearing in the file LICENSE.GPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU General Public License version 3.0 requirements will be ++** met: http://www.gnu.org/copyleft/gpl.html. ++** ++** ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ ++#ifndef QPLATFORMDEFS_H ++#define QPLATFORMDEFS_H ++ ++// Get Qt defines/settings ++ ++#include "qglobal.h" ++ ++// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs ++ ++// 1) need to reset default environment if _BSD_SOURCE is defined ++// 2) need to specify POSIX thread interfaces explicitly in glibc 2.0 ++// 3) it seems older glibc need this to include the X/Open stuff ++#ifndef _GNU_SOURCE ++# define _GNU_SOURCE ++#endif ++ ++#include ++ ++ ++// We are hot - unistd.h should have turned on the specific APIs we requested ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#ifndef QT_NO_IPV6IFNAME ++#include ++#endif ++ ++#define QT_USE_XOPEN_LFS_EXTENSIONS ++#include "../common/posix/qplatformdefs.h" ++ ++#undef QT_SOCKLEN_T ++ ++#if defined(__GLIBC__) && (__GLIBC__ >= 2) ++#define QT_SOCKLEN_T socklen_t ++#else ++#define QT_SOCKLEN_T int ++#endif ++ ++#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) ++#define QT_SNPRINTF ::snprintf ++#define QT_VSNPRINTF ::vsnprintf ++#endif ++ ++#endif // QPLATFORMDEFS_H diff --git a/meta/recipes-qt/qt5/qtbase/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch b/meta/recipes-qt/qt5/qtbase/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch deleted file mode 100644 index fa59883490..0000000000 --- a/meta/recipes-qt/qt5/qtbase/0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch +++ /dev/null @@ -1,86 +0,0 @@ -From c7dd4e5de1fac8c35df79a86418b6cd552024bd0 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Sat, 6 Apr 2013 13:15:07 +0200 -Subject: [PATCH] cmake: Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS - -... to determine path to host binaries - -Upstream-Status: Inappropriate [OE specific] - -Signed-off-by: Martin Jansa -Signed-off-by: Simon Busch -Signed-off-by: Jonathan Liu - -Change-Id: Iacaa1c5531cd6dcc094891610c351673db55d7b2 ---- - src/corelib/Qt5CoreConfigExtras.cmake.in | 6 +++--- - src/dbus/Qt5DBusConfigExtras.cmake.in | 4 ++-- - src/widgets/Qt5WidgetsConfigExtras.cmake.in | 2 +- - 3 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in -index 545b9a3..c991a9b 100644 ---- a/src/corelib/Qt5CoreConfigExtras.cmake.in -+++ b/src/corelib/Qt5CoreConfigExtras.cmake.in -@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qmake) - !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) - set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\") - !!ELSE -- set(imported_location \"$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\") -+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake$$CMAKE_BIN_SUFFIX\") - !!ENDIF - _qt5_Core_check_file_exists(${imported_location}) - -@@ -20,7 +20,7 @@ if (NOT TARGET Qt5::moc) - !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) - set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\") - !!ELSE -- set(imported_location \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\") -+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc$$CMAKE_BIN_SUFFIX\") - !!ENDIF - _qt5_Core_check_file_exists(${imported_location}) - -@@ -37,7 +37,7 @@ if (NOT TARGET Qt5::rcc) - !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) - set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\") - !!ELSE -- set(imported_location \"$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\") -+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/rcc$$CMAKE_BIN_SUFFIX\") - !!ENDIF - _qt5_Core_check_file_exists(${imported_location}) - -diff --git a/src/dbus/Qt5DBusConfigExtras.cmake.in b/src/dbus/Qt5DBusConfigExtras.cmake.in -index 1d94715..301af8f 100644 ---- a/src/dbus/Qt5DBusConfigExtras.cmake.in -+++ b/src/dbus/Qt5DBusConfigExtras.cmake.in -@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qdbuscpp2xml) - !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) - set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\") - !!ELSE -- set(imported_location \"$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\") -+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbuscpp2xml$$CMAKE_BIN_SUFFIX\") - !!ENDIF - _qt5_DBus_check_file_exists(${imported_location}) - -@@ -20,7 +20,7 @@ if (NOT TARGET Qt5::qdbusxml2cpp) - !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) - set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\") - !!ELSE -- set(imported_location \"$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\") -+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbusxml2cpp$$CMAKE_BIN_SUFFIX\") - !!ENDIF - _qt5_DBus_check_file_exists(${imported_location}) - -diff --git a/src/widgets/Qt5WidgetsConfigExtras.cmake.in b/src/widgets/Qt5WidgetsConfigExtras.cmake.in -index 99d87e2..5621dc0 100644 ---- a/src/widgets/Qt5WidgetsConfigExtras.cmake.in -+++ b/src/widgets/Qt5WidgetsConfigExtras.cmake.in -@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::uic) - !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) - set(imported_location \"${_qt5Widgets_install_prefix}/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\") - !!ELSE -- set(imported_location \"$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\") -+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic$$CMAKE_BIN_SUFFIX\") - !!ENDIF - _qt5_Widgets_check_file_exists(${imported_location}) - diff --git a/meta/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch b/meta/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch new file mode 100644 index 0000000000..db8005572b --- /dev/null +++ b/meta/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch @@ -0,0 +1,36 @@ +From a5e43264353bafc2ea4ad6813dbab6b271aee388 Mon Sep 17 00:00:00 2001 +From: Holger Freyther +Date: Wed, 26 Sep 2012 17:22:30 +0200 +Subject: [PATCH] qlibraryinfo: allow to set qt.conf from the outside using the + environment + +Allow to set a qt.conf from the outside using the environment. This allows +to inject new prefixes and other paths into qmake. This is needed when using +the same qmake binary to build qt/x11 and qt/embedded + +Upstream-Status: Inappropriate [embedded specific] + again very OE specific to read everything from environment (reusing the same + qmake from sstate and replacing all configured paths in it with qt.conf from + environment). + +Signed-off-by: Martin Jansa +--- + src/corelib/global/qlibraryinfo.cpp | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp +index 14be4c3..1bddb53 100644 +--- a/src/corelib/global/qlibraryinfo.cpp ++++ b/src/corelib/global/qlibraryinfo.cpp +@@ -157,7 +157,10 @@ void QLibrarySettings::load() + + QSettings *QLibraryInfoPrivate::findConfiguration() + { +- QString qtconfig = QStringLiteral(":/qt/etc/qt.conf"); ++ QByteArray config = getenv("QT_CONF_PATH"); ++ QString qtconfig = QFile::decodeName(config); ++ if(!QFile::exists(qtconfig)) ++ qtconfig = QStringLiteral(":/qt/etc/qt.conf"); + if (QFile::exists(qtconfig)) + return new QSettings(qtconfig, QSettings::IniFormat); + #ifdef QT_BUILD_QMAKE diff --git a/meta/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch b/meta/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch new file mode 100644 index 0000000000..aead543a12 --- /dev/null +++ b/meta/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch @@ -0,0 +1,226 @@ +From 1e9313a736c9d381c70e723d8075c206bfaf47f5 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Sat, 6 Apr 2013 13:15:07 +0200 +Subject: [PATCH] Add -external-hostbindir option + +* when cross-compiling it's sometimes useful to use existing tools from machine + (or in OpenEmbedded built with separate native recipe) when building for target + +* this way we can skip bootstraping tools we already have + +* qt_functions: temporary remove isEmpty check +* now we assume that every build will provide QT_EXTERNAL_HOST_BINS value +* isEmpty works correctly only with qmake variables (e.g. $$FOO - + isEmpty(FOO)), but doesn't work with system properties like $$[FOO]. + +* cmake: Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS to determine path to host binaries + +Upstream-Status: Pending + is a lot better for upstreaming (and it was already sort of approved by + Oswald) but in 5.2.0 I've noticed that he added something similar for + android builds + +Signed-off-by: Martin Jansa +Signed-off-by: Simon Busch +Signed-off-by: Jonathan Liu + +Conflicts: + configure +--- + configure | 14 ++++++++++++++ + mkspecs/features/qt_functions.prf | 6 +++++- + mkspecs/features/qt_tool.prf | 5 +++-- + qtbase.pro | 13 ++++++++++--- + src/corelib/Qt5CoreConfigExtras.cmake.in | 6 +++--- + src/dbus/Qt5DBusConfigExtras.cmake.in | 4 ++-- + src/widgets/Qt5WidgetsConfigExtras.cmake.in | 2 +- + 7 files changed, 38 insertions(+), 12 deletions(-) + +diff --git a/configure b/configure +index 9e552c6..ae724d6 100755 +--- a/configure ++++ b/configure +@@ -826,6 +826,7 @@ QT_HOST_BINS= + QT_HOST_LIBS= + QT_HOST_DATA= + QT_EXT_PREFIX= ++QT_EXTERNAL_HOST_BINS= + + #flags for SQL drivers + QT_CFLAGS_PSQL= +@@ -945,6 +946,7 @@ while [ "$#" -gt 0 ]; do + -testsdir| \ + -hostdatadir| \ + -hostbindir| \ ++ -external-hostbindir| \ + -hostlibdir| \ + -extprefix| \ + -sysroot| \ +@@ -1175,6 +1177,9 @@ while [ "$#" -gt 0 ]; do + extprefix) + QT_EXT_PREFIX="$VAL" + ;; ++ external-hostbindir) ++ QT_EXTERNAL_HOST_BINS="$VAL" ++ ;; + pkg-config) + if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then + CFG_PKGCONFIG="$VAL" +@@ -2444,6 +2449,10 @@ Installation options: + -hostdatadir . Data used by qmake will be installed to + (default HOSTPREFIX) + ++ -external-hostbindir Use external host executables instead of building them ++ (not used by defaut) ++ ++ + Configure options: + + The defaults (*) are usually acceptable. A plus (+) denotes a default value +@@ -3195,6 +3204,11 @@ fi + # command line and environment validation + #------------------------------------------------------------------------------- + ++# default is empty, don't call makeabs if it is empty ++if [ ! -z "$QT_EXTERNAL_HOST_BINS" ]; then ++ QT_EXTERNAL_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_EXTERNAL_HOST_BINS"` ++fi ++ + # update QT_CONFIG to show our current predefined configuration + CFG_QCONFIG_PATH=$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h + case "$CFG_QCONFIG" in +diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf +index 4a1d265..a2bdd29 100644 +--- a/mkspecs/features/qt_functions.prf ++++ b/mkspecs/features/qt_functions.prf +@@ -70,7 +70,11 @@ defineTest(qtHaveModule) { + defineTest(qtPrepareTool) { + cmd = $$eval(QT_TOOL.$${2}.binary) + isEmpty(cmd) { +- cmd = $$[QT_HOST_BINS]/$$2 ++ QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS] ++ isEmpty(QT_EXTERNAL_HOST_BINS): \ ++ cmd = $$[QT_HOST_BINS]/$$2 ++ else: \ ++ cmd = $$[QT_EXTERNAL_HOST_BINS]/$$2 + exists($${cmd}.pl) { + cmd = perl -w $$system_path($${cmd}.pl) + } else: contains(QMAKE_HOST.os, Windows) { +diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf +index 839c3d6..45934a0 100644 +--- a/mkspecs/features/qt_tool.prf ++++ b/mkspecs/features/qt_tool.prf +@@ -14,10 +14,11 @@ load(qt_app) + CONFIG += console + DEFINES *= QT_USE_QSTRINGBUILDER + ++QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS] ++ + # If we are doing a prefix build, create a "module" pri which enables + # qtPrepareTool() to work with the non-installed build. +-# Non-bootstrapped tools always need this because of the environment setup. +-!build_pass:if(!host_build|!force_bootstrap|force_independent) { ++!build_pass:if(!host_build|!force_bootstrap|force_independent):isEmpty(QT_EXTERNAL_HOST_BINS) { + isEmpty(MODULE):MODULE = $$TARGET + + !host_build|!force_bootstrap: MODULE_DEPENDS = $$replace(QT, -private$, _private) +diff --git a/qtbase.pro b/qtbase.pro +index 78f9b3a..f4b7fc4 100644 +--- a/qtbase.pro ++++ b/qtbase.pro +@@ -37,12 +37,16 @@ CONFIG -= qt + + ### installations #### + ++QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS] ++ + #qmake + qmake.path = $$[QT_HOST_BINS] ++qmake.files = $$OUT_PWD/bin/qmake ++!isEmpty(QT_EXTERNAL_HOST_BINS) { ++ qmake.files = $$[QT_EXTERNAL_HOST_BINS]/qmake ++} + equals(QMAKE_HOST.os, Windows) { +- qmake.files = $$OUT_PWD/bin/qmake.exe +-} else { +- qmake.files = $$OUT_PWD/bin/qmake ++ qmake.files = $${qmake.files}.exe + } + INSTALLS += qmake + +@@ -59,6 +63,9 @@ INSTALLS += fixqt4headers + #syncqt + syncqt.path = $$[QT_HOST_BINS] + syncqt.files = $$PWD/bin/syncqt.pl ++!isEmpty(QT_EXTERNAL_HOST_BINS) { ++ syncqt.files = $$[QT_EXTERNAL_HOST_BINS]/syncqt.pl ++} + INSTALLS += syncqt + + # If we are doing a prefix build, create a "module" pri which enables +diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in +index 91a4eb6..25df27c 100644 +--- a/src/corelib/Qt5CoreConfigExtras.cmake.in ++++ b/src/corelib/Qt5CoreConfigExtras.cmake.in +@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qmake) + !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) + set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\") + !!ELSE +- set(imported_location \"$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\") ++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake$$CMAKE_BIN_SUFFIX\") + !!ENDIF + _qt5_Core_check_file_exists(${imported_location}) + +@@ -20,7 +20,7 @@ if (NOT TARGET Qt5::moc) + !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) + set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\") + !!ELSE +- set(imported_location \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\") ++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc$$CMAKE_BIN_SUFFIX\") + !!ENDIF + _qt5_Core_check_file_exists(${imported_location}) + +@@ -37,7 +37,7 @@ if (NOT TARGET Qt5::rcc) + !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) + set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\") + !!ELSE +- set(imported_location \"$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\") ++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/rcc$$CMAKE_BIN_SUFFIX\") + !!ENDIF + _qt5_Core_check_file_exists(${imported_location}) + +diff --git a/src/dbus/Qt5DBusConfigExtras.cmake.in b/src/dbus/Qt5DBusConfigExtras.cmake.in +index 1d94715..301af8f 100644 +--- a/src/dbus/Qt5DBusConfigExtras.cmake.in ++++ b/src/dbus/Qt5DBusConfigExtras.cmake.in +@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qdbuscpp2xml) + !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) + set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\") + !!ELSE +- set(imported_location \"$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\") ++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbuscpp2xml$$CMAKE_BIN_SUFFIX\") + !!ENDIF + _qt5_DBus_check_file_exists(${imported_location}) + +@@ -20,7 +20,7 @@ if (NOT TARGET Qt5::qdbusxml2cpp) + !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) + set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\") + !!ELSE +- set(imported_location \"$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\") ++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbusxml2cpp$$CMAKE_BIN_SUFFIX\") + !!ENDIF + _qt5_DBus_check_file_exists(${imported_location}) + +diff --git a/src/widgets/Qt5WidgetsConfigExtras.cmake.in b/src/widgets/Qt5WidgetsConfigExtras.cmake.in +index 99d87e2..5621dc0 100644 +--- a/src/widgets/Qt5WidgetsConfigExtras.cmake.in ++++ b/src/widgets/Qt5WidgetsConfigExtras.cmake.in +@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::uic) + !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE) + set(imported_location \"${_qt5Widgets_install_prefix}/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\") + !!ELSE +- set(imported_location \"$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\") ++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic$$CMAKE_BIN_SUFFIX\") + !!ENDIF + _qt5_Widgets_check_file_exists(${imported_location}) + diff --git a/meta/recipes-qt/qt5/qtbase/0003-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch b/meta/recipes-qt/qt5/qtbase/0003-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch deleted file mode 100644 index cc0a330517..0000000000 --- a/meta/recipes-qt/qt5/qtbase/0003-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch +++ /dev/null @@ -1,36 +0,0 @@ -From f1d359e60e76867cee1df636c5c834fe829f5316 Mon Sep 17 00:00:00 2001 -From: Holger Freyther -Date: Wed, 26 Sep 2012 17:22:30 +0200 -Subject: [PATCH] qlibraryinfo: allow to set qt.conf from the outside using the - environment - -Allow to set a qt.conf from the outside using the environment. This allows -to inject new prefixes and other paths into qmake. This is needed when using -the same qmake binary to build qt/x11 and qt/embedded - -Upstream-Status: Inappropriate [embedded specific] - again very OE specific to read everything from environment (reusing the same - qmake from sstate and replacing all configured paths in it with qt.conf from - environment). - -Signed-off-by: Martin Jansa ---- - src/corelib/global/qlibraryinfo.cpp | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp -index b4ba0b5..11d4c00 100644 ---- a/src/corelib/global/qlibraryinfo.cpp -+++ b/src/corelib/global/qlibraryinfo.cpp -@@ -172,7 +172,10 @@ void QLibrarySettings::load() - QSettings *QLibraryInfoPrivate::findConfiguration() - { - #ifdef QT_BUILD_QMAKE -- QString qtconfig = qmake_libraryInfoFile(); -+ QByteArray config = getenv("OE_QMAKE_QTCONF_PATH"); -+ QString qtconfig = QFile::decodeName(config); -+ if(!QFile::exists(qtconfig)) -+ qtconfig = qmake_libraryInfoFile(); - if (QFile::exists(qtconfig)) - return new QSettings(qtconfig, QSettings::IniFormat); - #else diff --git a/meta/recipes-qt/qt5/qtbase/0004-configure-bump-path-length-from-256-to-512-character.patch b/meta/recipes-qt/qt5/qtbase/0004-configure-bump-path-length-from-256-to-512-character.patch deleted file mode 100644 index 5a3dfea2f5..0000000000 --- a/meta/recipes-qt/qt5/qtbase/0004-configure-bump-path-length-from-256-to-512-character.patch +++ /dev/null @@ -1,34 +0,0 @@ -From cb813ec552f965208ecfc9750a0fbf10841322fb Mon Sep 17 00:00:00 2001 -From: Denys Dmytriyenko -Date: Tue, 25 Aug 2015 10:05:15 -0400 -Subject: [PATCH] configure: bump path length from 256 to 512 characters - -Increase the path length that gets hardcoded into generated config.cpp file -from 256 to 512 characters, as nativesdk path can be quite long. - -Also update length of EXT_PREFIX and HOST_PREFIX now. - -Change-Id: If98dd57160efe9c98c36148cdf872f50b3d38118 -Signed-off-by: Denys Dmytriyenko ---- - configure.pri | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/configure.pri b/configure.pri -index ea48255..0699701 100644 ---- a/configure.pri -+++ b/configure.pri -@@ -796,10 +796,10 @@ defineTest(qtConfOutput_preparePaths) { - "static const char qt_configure_installation [12+11] = \"qt_instdate=2012-12-20\";" \ - "" \ - "/* Installation Info */" \ -- "static const char qt_configure_prefix_path_str [12+256] = \"qt_prfxpath=$$config.input.prefix\";" \ -+ "static const char qt_configure_prefix_path_str [12+512] = \"qt_prfxpath=$$config.input.prefix\";" \ - "$${LITERAL_HASH}ifdef QT_BUILD_QMAKE" \ -- "static const char qt_configure_ext_prefix_path_str [12+256] = \"qt_epfxpath=$$config.input.extprefix\";" \ -- "static const char qt_configure_host_prefix_path_str [12+256] = \"qt_hpfxpath=$$config.input.hostprefix\";" \ -+ "static const char qt_configure_ext_prefix_path_str [12+512] = \"qt_epfxpath=$$config.input.extprefix\";" \ -+ "static const char qt_configure_host_prefix_path_str [12+512] = \"qt_hpfxpath=$$config.input.hostprefix\";" \ - "$${LITERAL_HASH}endif" \ - "" \ - "static const short qt_configure_str_offsets[] = {" \ diff --git a/meta/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch b/meta/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch new file mode 100644 index 0000000000..e29f85f9aa --- /dev/null +++ b/meta/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch @@ -0,0 +1,106 @@ +From da99a6be6f55cce1363962ffa897b868a6009cd3 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Sat, 27 Apr 2013 23:15:37 +0200 +Subject: [PATCH] qt_module: Fix pkgconfig and libtool replacements +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +* in situation like this: + QT_SYSROOT:/OE/oe-core/tmp-eglibc/sysroots/qemuarm + QT_INSTALL_LIBS:/OE/oe-core/tmp-eglibc/sysroots/qemuarm/usr/lib + QT_INSTALL_LIBS/raw:/usr/lib + QT_INSTALL_LIBS/get:/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/build/lib + + I don't want the replacement like this: + sed + -e "s,/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/build/include,/usr/include/qt5,g" + -e "s,/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/build/lib,/usr/lib,g" + "../../lib/pkgconfig/Qt5Core.pc" + >"/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/image/OE/oe-core/tmp-eglibc/sysroots/qemuarm/usr/lib/pkgconfig/Qt5Core.pc" + because that way I'll end with -L/usr/lib in .pc file which is + cross-compile unfriendly, keeping ${libdir}/${includedir} works better + in my case + +* qt_module: Fix paths in .prl files +* qmake does not prefix them with QT_SYSROOT when using them + so e.g. when building qtdeclarative we get -L/usr/lib to LINKAGE + variable, which is unsafe for cross-compilation +* writting QT_SYSROOT in .prl files is dangerous for sstate when + builds are in different directories, so we need + SSTATE_SCAN_FILES += "*.pri *.prl" + to make them relocateble + +* fix paths in packageconfig files + This reverts parts of: + + enable path replacement in installed prl files on all platforms + + Task-number: QTBUG-33794 + Change-Id: Id0d38715673b8a1c0c034e9c15783eb255c4315b + Reviewed-by: Joerg Bornemann + +* to debug this, rebuild qtbase and read build/src/corelib/Makefile +* this is example of broken install_target rule (added line feeds): + -$(SED) -e s,/OE/5.3.1-r0/build/lib,/usr/lib,g + -e 's,/OE/5.3.1-r0/build/include,$$\{includedir},g' + -e 's,/OE/5.3.1-r0/build/lib,$$\{libdir},g' + "../../lib/pkgconfig/Qt5Core.pc" + >"$(INSTALL_ROOT)/usr/lib/pkgconfig/Qt5Core.pc" + change .prf files, create copy of WORKDIR, re-excecute only + do_configure task and compare generated Makefile, repeat until + replace in generated Makefile works ok, then refresh patch and + try complete rebuild for qtbase +* if everything is ok, then try: + image $ grep -R "\-L/usr" . + image $ grep -R "\-I/usr" . + and it should return only few cases of + qmake.conf:QMAKE_LFLAGS_THREAD = -L/usr/lib/threads + for aix* platformas + +Change-Id: Ie1c94b15f2a4e736b65b4d0924d99eb2a7d92a6c +Signed-off-by: Martin Jansa +Signed-off-by: Andreas Müller +Signed-off-by: Jonathan Liu +--- + mkspecs/features/qt.prf | 13 +++++++++++++ + mkspecs/features/qt_common.prf | 2 +- + 2 files changed, 14 insertions(+), 1 deletion(-) + +diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf +index ddf99da..9596b87 100644 +--- a/mkspecs/features/qt.prf ++++ b/mkspecs/features/qt.prf +@@ -318,6 +318,19 @@ contains(TEMPLATE, .*app) { + QTPLUGIN = $$manualplugs $$autoplugs + } + ++contains(TEMPLATE, .*lib) { ++ pkgconfig_prefix_replace.match = "prefix=$$[QT_SYSROOT]" ++ pkgconfig_prefix_replace.replace = "prefix=" ++ pkgconfig_prefix_replace.CONFIG = path ++ QMAKE_PKGCONFIG_INSTALL_REPLACE += pkgconfig_prefix_replace ++ ++ # drop -L/usr/lib in .prl files ++ prl_replace.match = "-L\$${libdir}" ++ prl_replace.replace = "" ++ prl_replace.CONFIG = path ++ QMAKE_PRL_INSTALL_REPLACE += prl_replace ++} ++ + QT_PLUGIN_VERIFY = DEPLOYMENT_PLUGIN + contains(QT_CONFIG, static) { + QT_PLUGIN_VERIFY += QTPLUGIN +diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf +index 08b3f3e..8a667f3 100644 +--- a/mkspecs/features/qt_common.prf ++++ b/mkspecs/features/qt_common.prf +@@ -38,7 +38,7 @@ contains(TEMPLATE, .*lib) { + lib_replace.replace = + } else { + lib_replace.match = $$rplbase/lib +- lib_replace.replace = $$qqt_libdir ++ lib_replace.replace = "\$$\\{libdir}" + } + lib_replace.CONFIG = path + QMAKE_PRL_INSTALL_REPLACE += lib_replace diff --git a/meta/recipes-qt/qt5/qtbase/0005-Disable-all-unknown-features-instead-of-erroring-out.patch b/meta/recipes-qt/qt5/qtbase/0005-Disable-all-unknown-features-instead-of-erroring-out.patch deleted file mode 100644 index 2e261b813e..0000000000 --- a/meta/recipes-qt/qt5/qtbase/0005-Disable-all-unknown-features-instead-of-erroring-out.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 6cd8e808e0eb8fa26976da66dd3dfdd58c1d026a Mon Sep 17 00:00:00 2001 -From: Samuli Piippo -Date: Mon, 24 Oct 2016 09:45:18 +0300 -Subject: [PATCH] Disable all unknown features instead of erroring out - -Task-number: QTBUG-56656 -Change-Id: Ib884fe33cac74439f9592b145937f6b75ced8447 ---- - mkspecs/features/qt_configure.prf | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf -index d5dcda2..501151d 100644 ---- a/mkspecs/features/qt_configure.prf -+++ b/mkspecs/features/qt_configure.prf -@@ -1251,7 +1251,8 @@ defineReplace(qtConfEvaluateSingleExpression) { - error("Expression '$$1' is accessing field '$$var' of non-local feature $${feature}.") - return($$result) - } -- error("Unknown feature object $${feature} in expression '$${1}'.") -+ warning("Unknown feature object $${feature} in expression '$${1}'.") -+ result = false - } - !qtConfCheckFeature($$feature): \ - error("Expression '$$1' is accessing non-emitted feature $${feature}.") diff --git a/meta/recipes-qt/qt5/qtbase/0005-configure-bump-path-length-from-256-to-512-character.patch b/meta/recipes-qt/qt5/qtbase/0005-configure-bump-path-length-from-256-to-512-character.patch new file mode 100644 index 0000000000..7ac394a723 --- /dev/null +++ b/meta/recipes-qt/qt5/qtbase/0005-configure-bump-path-length-from-256-to-512-character.patch @@ -0,0 +1,33 @@ +From 8eaae5ee0e77b3783afd0f10a89004fd981f29b3 Mon Sep 17 00:00:00 2001 +From: Denys Dmytriyenko +Date: Tue, 25 Aug 2015 10:05:15 -0400 +Subject: [PATCH] configure: bump path length from 256 to 512 characters + +Increase the path length that gets hardcoded into generated config.cpp file +from 256 to 512 characters, as nativesdk path can be quite long. + +Also update length of EXT_PREFIX and HOST_PREFIX now. + +Signed-off-by: Denys Dmytriyenko +--- + configure | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/configure b/configure +index ae724d6..df089f2 100755 +--- a/configure ++++ b/configure +@@ -3959,10 +3959,10 @@ static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$ + static const char qt_configure_installation [12+11] = "qt_instdate=2012-12-20"; + + /* Installation Info */ +-static const char qt_configure_prefix_path_str [256 + 12] = "qt_prfxpath=$QT_INSTALL_PREFIX"; ++static const char qt_configure_prefix_path_str [512 + 12] = "qt_prfxpath=$QT_INSTALL_PREFIX"; + #ifdef QT_BUILD_QMAKE +-static const char qt_configure_ext_prefix_path_str [256 + 12] = "qt_epfxpath=$QT_EXT_PREFIX"; +-static const char qt_configure_host_prefix_path_str [256 + 12] = "qt_hpfxpath=$QT_HOST_PREFIX"; ++static const char qt_configure_ext_prefix_path_str [512 + 12] = "qt_epfxpath=$QT_EXT_PREFIX"; ++static const char qt_configure_host_prefix_path_str [512 + 12] = "qt_hpfxpath=$QT_HOST_PREFIX"; + #endif + + static const short qt_configure_str_offsets[] = { diff --git a/meta/recipes-qt/qt5/qtbase/0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch b/meta/recipes-qt/qt5/qtbase/0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch deleted file mode 100644 index cf1a716f6e..0000000000 --- a/meta/recipes-qt/qt5/qtbase/0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch +++ /dev/null @@ -1,63 +0,0 @@ -From e3fe48be51aa67227ac1b34c01e4c913d82866c2 Mon Sep 17 00:00:00 2001 -From: Pascal Bach -Date: Wed, 11 May 2016 15:20:41 +0200 -Subject: [PATCH] Pretend Qt5 wasn't found if OE_QMAKE_PATH_EXTERNAL_HOST_BINS - isn't set - -This prevents errors like: - -| The imported target "Qt5::Core" references the file -| -| "/qmake" -| -| but this file does not exist. Possible reasons include: - -Which happen if CMake is used without setting OE_QMAKE_PATH_EXTERNAL_HOST_BINS. -To achieve this a check for OE_QMAKE_PATH_EXTERNAL_HOST_BINS is added to each Qt5*Config.cmake -file. And in the case where the variable is not set we just return which is basically -equal to telling CMake that Qt5 wasn't found. - -Upstream-Status: Pending - The patch only makes sense in connection with other patches included here. - Specifically this are: - - 0003-Add-external-hostbindir-option.patch - - 0010-Add-external-hostbindir-option-for-native-sdk.patch - -Signed-off-by: Pascal Bach ---- - mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in | 5 +++++ - src/corelib/Qt5Config.cmake.in | 5 +++++ - 2 files changed, 10 insertions(+) - -diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in -index 55c74aa..f9ec328 100644 ---- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in -+++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in -@@ -9,6 +9,11 @@ if (CMAKE_VERSION VERSION_LESS 3.0.0) - endif() - !!ENDIF - -+if(NOT DEFINED OE_QMAKE_PATH_EXTERNAL_HOST_BINS) -+ message(WARNING "Skipping because OE_QMAKE_PATH_EXTERNAL_HOST_BINS is not defined") -+ return() -+endif() -+ - !!IF !isEmpty(CMAKE_USR_MOVE_WORKAROUND) - !!IF !isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) - set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\") -diff --git a/src/corelib/Qt5Config.cmake.in b/src/corelib/Qt5Config.cmake.in -index 75b5348..ed31888 100644 ---- a/src/corelib/Qt5Config.cmake.in -+++ b/src/corelib/Qt5Config.cmake.in -@@ -3,6 +3,11 @@ if (CMAKE_VERSION VERSION_LESS 2.8.9) - message(FATAL_ERROR \"Qt5 requires at least CMake version 2.8.9\") - endif() - -+if(NOT DEFINED OE_QMAKE_PATH_EXTERNAL_HOST_BINS) -+ message(WARNING "Skipping because OE_QMAKE_PATH_EXTERNAL_HOST_BINS is not defined") -+ return() -+endif() -+ - if (NOT Qt5_FIND_COMPONENTS) - set(Qt5_NOT_FOUND_MESSAGE \"The Qt5 package requires at least one component\") - set(Qt5_FOUND False) diff --git a/meta/recipes-qt/qt5/qtbase/0006-QOpenGLPaintDevice-sub-area-support.patch b/meta/recipes-qt/qt5/qtbase/0006-QOpenGLPaintDevice-sub-area-support.patch new file mode 100644 index 0000000000..3e6f459c90 --- /dev/null +++ b/meta/recipes-qt/qt5/qtbase/0006-QOpenGLPaintDevice-sub-area-support.patch @@ -0,0 +1,154 @@ +From b4be62e9ac936b110375492dcdc7aeccfe46bd29 Mon Sep 17 00:00:00 2001 +From: Jani Hautakangas +Date: Thu, 16 May 2013 09:52:07 +0300 +Subject: [PATCH] QOpenGLPaintDevice sub-area support + +Allows creating QOpenGLPaintDevice targetting sub-area +of binded framebuffer. + +Upstream-Status: Pending + +Change-Id: Ida2f079aa1ac0b87d36b54129e226399dbcdda80 + +Signed-off-by: Martin Jansa +--- + src/gui/opengl/qopenglpaintdevice.cpp | 11 +++++++++++ + src/gui/opengl/qopenglpaintdevice.h | 2 ++ + src/gui/opengl/qopenglpaintdevice_p.h | 1 + + src/gui/opengl/qopenglpaintengine.cpp | 9 +++++++-- + src/gui/opengl/qopenglpaintengine_p.h | 1 + + src/gui/opengl/qopengltextureglyphcache.cpp | 2 +- + 6 files changed, 23 insertions(+), 3 deletions(-) + +diff --git a/src/gui/opengl/qopenglpaintdevice.cpp b/src/gui/opengl/qopenglpaintdevice.cpp +index 17a3277..85425da 100644 +--- a/src/gui/opengl/qopenglpaintdevice.cpp ++++ b/src/gui/opengl/qopenglpaintdevice.cpp +@@ -135,6 +135,12 @@ QOpenGLPaintDevice::QOpenGLPaintDevice(int width, int height) + { + } + ++QOpenGLPaintDevice::QOpenGLPaintDevice(int x, int y, int width, int height) ++ : d_ptr(new QOpenGLPaintDevicePrivate(QSize(width, height))) ++{ ++ d_ptr->offset = QPoint(x,y); ++} ++ + /*! + \internal + */ +@@ -216,6 +222,11 @@ QOpenGLContext *QOpenGLPaintDevice::context() const + return d_ptr->ctx; + } + ++QPoint QOpenGLPaintDevice::offset() const ++{ ++ return d_ptr->offset; ++} ++ + /*! + Returns the pixel size of the paint device. + +diff --git a/src/gui/opengl/qopenglpaintdevice.h b/src/gui/opengl/qopenglpaintdevice.h +index 804e485..88b481a 100644 +--- a/src/gui/opengl/qopenglpaintdevice.h ++++ b/src/gui/opengl/qopenglpaintdevice.h +@@ -53,12 +53,14 @@ public: + QOpenGLPaintDevice(); + explicit QOpenGLPaintDevice(const QSize &size); + QOpenGLPaintDevice(int width, int height); ++ QOpenGLPaintDevice(int x, int y, int width, int height); + virtual ~QOpenGLPaintDevice(); + + int devType() const { return QInternal::OpenGL; } + QPaintEngine *paintEngine() const; + + QOpenGLContext *context() const; ++ QPoint offset() const; + QSize size() const; + void setSize(const QSize &size); + void setDevicePixelRatio(qreal devicePixelRatio); +diff --git a/src/gui/opengl/qopenglpaintdevice_p.h b/src/gui/opengl/qopenglpaintdevice_p.h +index 54ea092..f660143 100644 +--- a/src/gui/opengl/qopenglpaintdevice_p.h ++++ b/src/gui/opengl/qopenglpaintdevice_p.h +@@ -65,6 +65,7 @@ public: + + public: + QSize size; ++ QPoint offset; + QOpenGLContext *ctx; + + qreal dpmx; +diff --git a/src/gui/opengl/qopenglpaintengine.cpp b/src/gui/opengl/qopenglpaintengine.cpp +index 0b92bf4..f41e059 100644 +--- a/src/gui/opengl/qopenglpaintengine.cpp ++++ b/src/gui/opengl/qopenglpaintengine.cpp +@@ -2078,7 +2078,10 @@ bool QOpenGL2PaintEngineEx::begin(QPaintDevice *pdev) + for (int i = 0; i < QT_GL_VERTEX_ARRAY_TRACKED_COUNT; ++i) + d->vertexAttributeArraysEnabledState[i] = false; + ++ const QPoint offset = d->device->offset(); + const QSize sz = d->device->size(); ++ d->x = offset.x(); ++ d->y = offset.y(); + d->width = sz.width(); + d->height = sz.height(); + d->mode = BrushDrawingMode; +@@ -2165,7 +2168,7 @@ void QOpenGL2PaintEngineEx::ensureActive() + d->device->ensureActiveTarget(); + + d->transferMode(BrushDrawingMode); +- d->funcs.glViewport(0, 0, d->width, d->height); ++ d->funcs.glViewport(d->x, d->y, d->width, d->height); + d->needsSync = false; + d->shaderManager->setDirty(); + d->syncGlState(); +@@ -2207,6 +2210,7 @@ void QOpenGL2PaintEngineExPrivate::updateClipScissorTest() + if (bounds == QRect(0, 0, width, height)) { + funcs.glDisable(GL_SCISSOR_TEST); + } else { ++ bounds = QRect(bounds.x(), bounds.y(), bounds.width(), bounds.height()); + funcs.glEnable(GL_SCISSOR_TEST); + setScissor(bounds); + } +@@ -2215,12 +2219,13 @@ void QOpenGL2PaintEngineExPrivate::updateClipScissorTest() + + void QOpenGL2PaintEngineExPrivate::setScissor(const QRect &rect) + { +- const int left = rect.left(); ++ const int left = rect.left() + x; + const int width = rect.width(); + int bottom = height - (rect.top() + rect.height()); + if (device->paintFlipped()) { + bottom = rect.top(); + } ++ bottom += y; + const int height = rect.height(); + + funcs.glScissor(left, bottom, width, height); +diff --git a/src/gui/opengl/qopenglpaintengine_p.h b/src/gui/opengl/qopenglpaintengine_p.h +index f1ec669..6d302b8 100644 +--- a/src/gui/opengl/qopenglpaintengine_p.h ++++ b/src/gui/opengl/qopenglpaintengine_p.h +@@ -264,6 +264,7 @@ public: + QOpenGL2PaintEngineEx* q; + QOpenGLEngineShaderManager* shaderManager; + QOpenGLPaintDevice* device; ++ int x, y; + int width, height; + QOpenGLContext *ctx; + EngineMode mode; +diff --git a/src/gui/opengl/qopengltextureglyphcache.cpp b/src/gui/opengl/qopengltextureglyphcache.cpp +index c179143..fad68d5 100644 +--- a/src/gui/opengl/qopengltextureglyphcache.cpp ++++ b/src/gui/opengl/qopengltextureglyphcache.cpp +@@ -310,7 +310,7 @@ void QOpenGLTextureGlyphCache::resizeTextureData(int width, int height) + funcs->glBindFramebuffer(GL_FRAMEBUFFER, (GLuint)oldFbo); + + if (pex != 0) { +- funcs->glViewport(0, 0, pex->width, pex->height); ++ funcs->glViewport(pex->x, pex->y, pex->width, pex->height); + pex->updateClipScissorTest(); + } else { + if (m_vao.isCreated()) { diff --git a/meta/recipes-qt/qt5/qtbase/0007-Delete-qlonglong-and-qulonglong.patch b/meta/recipes-qt/qt5/qtbase/0007-Delete-qlonglong-and-qulonglong.patch deleted file mode 100644 index fd9a9e5a56..0000000000 --- a/meta/recipes-qt/qt5/qtbase/0007-Delete-qlonglong-and-qulonglong.patch +++ /dev/null @@ -1,25 +0,0 @@ -From efaae3535a1ac006ec1b3003258b83d905265fd3 Mon Sep 17 00:00:00 2001 -From: Huang Qiyu -Date: Wed, 7 Jun 2017 21:00:49 +0900 -Subject: [PATCH] Delete qlonglong and qulonglong - -Signed-off-by: Huang Qiyu ---- - tests/auto/corelib/thread/qatomicinteger/qatomicinteger.pro | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/tests/auto/corelib/thread/qatomicinteger/qatomicinteger.pro b/tests/auto/corelib/thread/qatomicinteger/qatomicinteger.pro -index 09458bd..59a120e 100644 ---- a/tests/auto/corelib/thread/qatomicinteger/qatomicinteger.pro -+++ b/tests/auto/corelib/thread/qatomicinteger/qatomicinteger.pro -@@ -5,10 +5,8 @@ SUBDIRS=\ - char32_t \ - int \ - long \ -- qlonglong \ - qptrdiff \ - quintptr \ -- qulonglong \ - schar \ - short \ - uchar \ diff --git a/meta/recipes-qt/qt5/qtbase/0007-linux-oe-g-Invert-conditional-for-defining-QT_SOCKLE.patch b/meta/recipes-qt/qt5/qtbase/0007-linux-oe-g-Invert-conditional-for-defining-QT_SOCKLE.patch new file mode 100644 index 0000000000..36a4b18147 --- /dev/null +++ b/meta/recipes-qt/qt5/qtbase/0007-linux-oe-g-Invert-conditional-for-defining-QT_SOCKLE.patch @@ -0,0 +1,32 @@ +From 6649a3df359d3d55b1caaa6601692a1dcc2ef92c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 8 Jun 2015 13:59:25 -0700 +Subject: [PATCH] linux-oe-g++: Invert conditional for defining QT_SOCKLEN_T + +This helps to make sure that QT_SOCKLEN_T is defined to be 'int' +only when its glibc < 2 and not also for the libraries which may define +it as per standards but are not glibc, e.g. musl + +Signed-off-by: Khem Raj +--- + mkspecs/linux-oe-g++/qplatformdefs.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/mkspecs/linux-oe-g++/qplatformdefs.h b/mkspecs/linux-oe-g++/qplatformdefs.h +index dd12003..8623651 100644 +--- a/mkspecs/linux-oe-g++/qplatformdefs.h ++++ b/mkspecs/linux-oe-g++/qplatformdefs.h +@@ -86,10 +86,10 @@ + + #undef QT_SOCKLEN_T + +-#if defined(__GLIBC__) && (__GLIBC__ >= 2) +-#define QT_SOCKLEN_T socklen_t +-#else ++#if defined(__GLIBC__) && (__GLIBC__ < 2) + #define QT_SOCKLEN_T int ++#else ++#define QT_SOCKLEN_T socklen_t + #endif + + #if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) diff --git a/meta/recipes-qt/qt5/qtbase/0008-Replace-pthread_yield-with-sched_yield.patch b/meta/recipes-qt/qt5/qtbase/0008-Replace-pthread_yield-with-sched_yield.patch deleted file mode 100644 index 81269d2e87..0000000000 --- a/meta/recipes-qt/qt5/qtbase/0008-Replace-pthread_yield-with-sched_yield.patch +++ /dev/null @@ -1,60 +0,0 @@ -From d79fecb4e8d2040efdc295d06c5e24bdf3cf6b60 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 27 Jul 2017 08:02:51 -0700 -Subject: [PATCH] Replace pthread_yield with sched_yield - -On Linux pthead_yield is same as sched_yield implementation wise -and sched_yield is available on all libc -implementations on Linux - -Signed-off-by: Khem Raj ---- - tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp | 4 ++-- - tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp | 5 +++-- - 2 files changed, 5 insertions(+), 4 deletions(-) - -diff --git a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp -index 076610a..cb8431f 100644 ---- a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp -+++ b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp -@@ -34,7 +34,7 @@ - #include "tst_qvariant_common.h" - - #ifdef Q_OS_LINUX --# include -+# include - #endif - - #include -@@ -199,7 +199,7 @@ protected: - const char *nm = name.constData(); - int tp = qRegisterMetaType(nm); - #if defined(Q_OS_LINUX) && !defined(Q_OS_ANDROID) -- pthread_yield(); -+ sched_yield(); - #endif - QMetaType info(tp); - if (!info.isValid()) { -diff --git a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp -index e45eda2..e64f329 100644 ---- a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp -+++ b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp -@@ -78,6 +78,7 @@ - #include - #include - #include -+#include - #endif - - #include "private/qhostinfo_p.h" -@@ -2136,8 +2137,8 @@ public slots: - - #if defined(Q_OS_MAC) - pthread_yield_np(); --#elif defined Q_OS_LINUX && !defined Q_OS_ANDROID -- pthread_yield(); -+#elif defined Q_OS_LINUX -+ sched_yield(); - #endif - if (!sock->waitForConnected()) { - networkTimeout = true; diff --git a/meta/recipes-qt/qt5/qtbase/0008-configure-paths-for-target-qmake-properly.patch b/meta/recipes-qt/qt5/qtbase/0008-configure-paths-for-target-qmake-properly.patch new file mode 100644 index 0000000000..3375c8c3d1 --- /dev/null +++ b/meta/recipes-qt/qt5/qtbase/0008-configure-paths-for-target-qmake-properly.patch @@ -0,0 +1,75 @@ +From 5e8f8f44227fea48b84fd79e1fc4122d66776bf3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 13 Nov 2015 12:36:11 +0100 +Subject: [PATCH] configure paths for target qmake properly +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +to use this patch in all qtbase/qtbase-native(sdk) changes ore made +conditionally based on QT_CROSS_COMPILE + +Upstream-Status: Inappropriate [OE specific] + +Change-Id: I2b2f00c496216e98fbe14801f9e840ef5333c4b6 +Signed-off-by: Andreas Müller +Signed-off-by: Martin Jansa +--- + configure | 23 +++++++++++++++++++---- + 1 file changed, 19 insertions(+), 4 deletions(-) + +diff --git a/configure b/configure +index df089f2..224f9f5 100755 +--- a/configure ++++ b/configure +@@ -3904,8 +3904,13 @@ if [ "$CFG_COMPILE_EXAMPLES" = "yes" ]; then + QMAKE_CONFIG="$QMAKE_CONFIG compile_examples" + fi + +-shortxspec=`echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` +-shortspec=`echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` ++if [ "$QT_CROSS_COMPILE" = "yes" ] ; then ++ shortxspec=linux-g++ ++ shortspec=linux-g++ ++else ++ shortxspec=`echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` ++ shortspec=`echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` ++fi + + QT_CONFIGURE_STR_OFF=0 + +@@ -3938,7 +3943,11 @@ QT_CONFIGURE_STRS_ALL=$QT_CONFIGURE_STRS + + QT_CONFIGURE_STR_OFFSETS= + QT_CONFIGURE_STRS= +-addConfStr "$CFG_SYSROOT" ++if [ "$QT_CROSS_COMPILE" = "yes" ] ; then ++ addConfStr "" ++else ++ addConfStr "$CFG_SYSROOT" ++fi + addConfStr "$QT_REL_HOST_BINS" + addConfStr "$QT_REL_HOST_LIBS" + addConfStr "$QT_REL_HOST_DATA" +@@ -3950,6 +3959,12 @@ addConfStr "$shortspec" + #------------------------------------------------------------------------------- + [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global" + ++if [ "$QT_CROSS_COMPILE" = "yes" ] ; then ++ QT_TARGET_PREFIX=$QT_EXT_PREFIX ++else ++ QT_TARGET_PREFIX=$QT_HOST_PREFIX ++fi ++ + cat > "$outpath/src/corelib/global/qconfig.cpp.new" < -Date: Sun, 3 Sep 2017 09:11:44 -0700 -Subject: [PATCH] Add OE specific specs for clang compiler - -Signed-off-by: Khem Raj ---- - mkspecs/linux-oe-clang/qmake.conf | 43 ++++++++++++++++++++++++++++++++++ - mkspecs/linux-oe-clang/qplatformdefs.h | 1 + - 2 files changed, 44 insertions(+) - create mode 100644 mkspecs/linux-oe-clang/qmake.conf - create mode 100644 mkspecs/linux-oe-clang/qplatformdefs.h - -diff --git a/mkspecs/linux-oe-clang/qmake.conf b/mkspecs/linux-oe-clang/qmake.conf -new file mode 100644 -index 0000000..ffc9f05 ---- /dev/null -+++ b/mkspecs/linux-oe-clang/qmake.conf -@@ -0,0 +1,43 @@ -+# -+# qmake configuration for linux-g++ with modifications for building with OpenEmbedded -+# -+ -+MAKEFILE_GENERATOR = UNIX -+CONFIG += incremental -+QMAKE_INCREMENTAL_STYLE = sublib -+ -+include(../common/linux.conf) -+ -+# QMAKE_ (moc, uic, rcc) are gone, overwrite only ar and strip -+QMAKE_AR = $$(OE_QMAKE_AR) cqs -+QMAKE_STRIP = $$(OE_QMAKE_STRIP) -+QMAKE_WAYLAND_SCANNER = $$(OE_QMAKE_WAYLAND_SCANNER) -+ -+include(../common/gcc-base-unix.conf) -+ -+# *FLAGS from gcc-base.conf -+QMAKE_CFLAGS += $$(OE_QMAKE_CFLAGS) -+QMAKE_CXXFLAGS += $$(OE_QMAKE_CXXFLAGS) -+QMAKE_LFLAGS += $$(OE_QMAKE_LDFLAGS) -+ -+include(../common/clang.conf) -+ -+# tc settings from g++-base.conf -+QMAKE_COMPILER = $$(OE_QMAKE_COMPILER) clang -+QMAKE_CC = $$(OE_QMAKE_CC) -+QMAKE_CXX = $$(OE_QMAKE_CXX) -+ -+QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$(OE_QMAKE_CFLAGS) -+ -+QMAKE_LINK = $$(OE_QMAKE_LINK) -+QMAKE_LINK_SHLIB = $$(OE_QMAKE_LINK) -+QMAKE_LINK_C = $$(OE_QMAKE_LINK) -+QMAKE_LINK_C_SHLIB = $$(OE_QMAKE_LINK) -+ -+# for the SDK -+isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $$(OE_QMAKE_QT_CONFIG) -+ -+include(../oe-device-extra.pri) -+ -+load(device_config) -+load(qt_config) -diff --git a/mkspecs/linux-oe-clang/qplatformdefs.h b/mkspecs/linux-oe-clang/qplatformdefs.h -new file mode 100644 -index 0000000..880c927 ---- /dev/null -+++ b/mkspecs/linux-oe-clang/qplatformdefs.h -@@ -0,0 +1 @@ -+#include "../linux-clang/qplatformdefs.h" diff --git a/meta/recipes-qt/qt5/qtbase/0009-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch b/meta/recipes-qt/qt5/qtbase/0009-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch new file mode 100644 index 0000000000..c04d0b8e9a --- /dev/null +++ b/meta/recipes-qt/qt5/qtbase/0009-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch @@ -0,0 +1,63 @@ +From 34864cac45a112f27c2587ebfff7f10184607fad Mon Sep 17 00:00:00 2001 +From: Pascal Bach +Date: Wed, 11 May 2016 15:20:41 +0200 +Subject: [PATCH] Pretend Qt5 wasn't found if OE_QMAKE_PATH_EXTERNAL_HOST_BINS + isn't set + +This prevents errors like: + +| The imported target "Qt5::Core" references the file +| +| "/qmake" +| +| but this file does not exist. Possible reasons include: + +Which happen if CMake is used without setting OE_QMAKE_PATH_EXTERNAL_HOST_BINS. +To achieve this a check for OE_QMAKE_PATH_EXTERNAL_HOST_BINS is added to each Qt5*Config.cmake +file. And in the case where the variable is not set we just return which is basically +equal to telling CMake that Qt5 wasn't found. + +Upstream-Status: Pending + The patch only makes sense in connection with other patches included here. + Specifically this are: + - 0003-Add-external-hostbindir-option.patch + - 0010-Add-external-hostbindir-option-for-native-sdk.patch + +Signed-off-by: Pascal Bach +--- + mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in | 5 +++++ + src/corelib/Qt5Config.cmake.in | 5 +++++ + 2 files changed, 10 insertions(+) + +diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +index d2358ca..feb73c0 100644 +--- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in ++++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +@@ -9,6 +9,11 @@ if (CMAKE_VERSION VERSION_LESS 3.0.0) + endif() + !!ENDIF + ++if(NOT DEFINED OE_QMAKE_PATH_EXTERNAL_HOST_BINS) ++ message(WARNING "Skipping because OE_QMAKE_PATH_EXTERNAL_HOST_BINS is not defined") ++ return() ++endif() ++ + !!IF !isEmpty(CMAKE_USR_MOVE_WORKAROUND) + !!IF !isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) + set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\") +diff --git a/src/corelib/Qt5Config.cmake.in b/src/corelib/Qt5Config.cmake.in +index a872d0e..233d663 100644 +--- a/src/corelib/Qt5Config.cmake.in ++++ b/src/corelib/Qt5Config.cmake.in +@@ -3,6 +3,11 @@ if (CMAKE_VERSION VERSION_LESS 2.8.9) + message(FATAL_ERROR \"Qt5 requires at least CMake version 2.8.9\") + endif() + ++if(NOT DEFINED OE_QMAKE_PATH_EXTERNAL_HOST_BINS) ++ message(WARNING "Skipping because OE_QMAKE_PATH_EXTERNAL_HOST_BINS is not defined") ++ return() ++endif() ++ + if (NOT Qt5_FIND_COMPONENTS) + set(Qt5_NOT_FOUND_MESSAGE \"The Qt5 package requires at least one component\") + set(Qt5_FOUND False) diff --git a/meta/recipes-qt/qt5/qtbase/0010-Always-build-uic.patch b/meta/recipes-qt/qt5/qtbase/0010-Always-build-uic.patch new file mode 100644 index 0000000000..721f47d114 --- /dev/null +++ b/meta/recipes-qt/qt5/qtbase/0010-Always-build-uic.patch @@ -0,0 +1,28 @@ +From d3e797e0fa9bb9425bc50ac280685b541ed830c7 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Sat, 16 Nov 2013 00:32:30 +0100 +Subject: [PATCH] Always build uic + +Even if we are not building gui or widgets. This tool is needed later +as a native tool when compiling the target. + +Change-Id: I257668ac28c22b192e7ec7736e6c23fa3be6bab6 +Signed-off-by: Mikko Levonmaa +Signed-off-by: Martin Jansa +--- + src/src.pro | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/src.pro b/src/src.pro +index dd15559..b29a33c 100644 +--- a/src/src.pro ++++ b/src/src.pro +@@ -189,7 +189,7 @@ contains(QT_CONFIG, concurrent):SUBDIRS += src_concurrent + } + } + } +-SUBDIRS += src_plugins ++SUBDIRS += src_plugins src_tools_uic + + nacl: SUBDIRS -= src_network src_testlib + diff --git a/meta/recipes-qt/qt5/qtbase/0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch b/meta/recipes-qt/qt5/qtbase/0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch deleted file mode 100644 index 5fed2ff891..0000000000 --- a/meta/recipes-qt/qt5/qtbase/0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 7c7545fc64e78b2a4a411aa392df6f424ee27c5a Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sun, 3 Sep 2017 09:44:48 -0700 -Subject: [PATCH] linux-clang: Invert conditional for defining QT_SOCKLEN_T - -This helps to make sure that QT_SOCKLEN_T is defined to be 'int' -only when its glibc < 2 and not for other libcswhich may define -it as per standards but are not glibc, e.g. musl - -Signed-off-by: Khem Raj ---- - mkspecs/linux-clang/qplatformdefs.h | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/mkspecs/linux-clang/qplatformdefs.h b/mkspecs/linux-clang/qplatformdefs.h -index d29225f..a0cdb57 100644 ---- a/mkspecs/linux-clang/qplatformdefs.h -+++ b/mkspecs/linux-clang/qplatformdefs.h -@@ -84,10 +84,10 @@ - - #undef QT_SOCKLEN_T - --#if defined(__GLIBC__) && (__GLIBC__ >= 2) --#define QT_SOCKLEN_T socklen_t --#else -+#if defined(__GLIBC__) && (__GLIBC__ < 2) - #define QT_SOCKLEN_T int -+#else -+#define QT_SOCKLEN_T socklen_t - #endif - - #if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) diff --git a/meta/recipes-qt/qt5/qtbase/0011-Add-external-hostbindir-option-for-native-sdk.patch b/meta/recipes-qt/qt5/qtbase/0011-Add-external-hostbindir-option-for-native-sdk.patch new file mode 100644 index 0000000000..5d2b979bc4 --- /dev/null +++ b/meta/recipes-qt/qt5/qtbase/0011-Add-external-hostbindir-option-for-native-sdk.patch @@ -0,0 +1,131 @@ +From 1bea31d8abd34ab33daec6df91ffc0bc63b75f9e Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Sat, 6 Apr 2013 13:15:07 +0200 +Subject: [PATCH] Add -external-hostbindir option for native(sdk) + +* when cross-compiling it's sometimes useful to use existing tools from machine + (or in OpenEmbedded built with separate native recipe) when building for target + +* this way we can skip bootstraping tools we already have + +* qt_functions: temporary remove isEmpty check +* now we assume that every build will provide QT_EXTERNAL_HOST_BINS value +* isEmpty works correctly only with qmake variables (e.g. $$FOO - + isEmpty(FOO)), but doesn't work with system properties like $$[FOO]. + +* cmake: Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS to determine path to host binaries + +Upstream-Status: Pending + is a lot better for upstreaming (and it was already sort of approved by + Oswald) but in 5.2.0 I've noticed that he added something similar for + android builds + +Change-Id: I4f6e634bf0b2cb96065ee5c38b9cd8a224c3bd37 +Signed-off-by: Martin Jansa +Signed-off-by: Simon Busch +Signed-off-by: Jonathan Liu +Signed-off-by: Martin Jansa + +Conflicts: + tools/configure/configureapp.cpp +--- + configure | 1 + + qmake/property.cpp | 1 + + src/corelib/global/qlibraryinfo.cpp | 3 ++- + src/corelib/global/qlibraryinfo.h | 1 + + tools/configure/configureapp.cpp | 11 +++++++++++ + 5 files changed, 16 insertions(+), 1 deletion(-) + +diff --git a/configure b/configure +index 224f9f5..271c4f4 100755 +--- a/configure ++++ b/configure +@@ -3951,6 +3951,7 @@ fi + addConfStr "$QT_REL_HOST_BINS" + addConfStr "$QT_REL_HOST_LIBS" + addConfStr "$QT_REL_HOST_DATA" ++addConfStr "$QT_EXTERNAL_HOST_BINS" + addConfStr "$shortxspec" + addConfStr "$shortspec" + +diff --git a/qmake/property.cpp b/qmake/property.cpp +index b9139d5..6725ab7 100644 +--- a/qmake/property.cpp ++++ b/qmake/property.cpp +@@ -69,6 +69,7 @@ static const struct { + { "QT_HOST_DATA", QLibraryInfo::HostDataPath, true, false }, + { "QT_HOST_BINS", QLibraryInfo::HostBinariesPath, true, false }, + { "QT_HOST_LIBS", QLibraryInfo::HostLibrariesPath, true, false }, ++ { "QT_EXTERNAL_HOST_BINS", QLibraryInfo::ExternalHostBinariesPath, true, false }, + { "QMAKE_SPEC", QLibraryInfo::HostSpecPath, true, true }, + { "QMAKE_XSPEC", QLibraryInfo::TargetSpecPath, true, true }, + }; +diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp +index 1bddb53..cd0a666 100644 +--- a/src/corelib/global/qlibraryinfo.cpp ++++ b/src/corelib/global/qlibraryinfo.cpp +@@ -375,7 +375,7 @@ QLibraryInfo::isDebugBuild() + */ + + static const struct { +- char key[19], value[13]; ++ char key[21], value[13]; + } qtConfEntries[] = { + { "Prefix", "." }, + { "Documentation", "doc" }, // should be ${Data}/doc +@@ -400,6 +400,7 @@ static const struct { + { "HostBinaries", "bin" }, + { "HostLibraries", "lib" }, + { "HostData", "." }, ++ { "ExternalHostBinaries", "" }, + { "TargetSpec", "" }, + { "HostSpec", "" }, + { "HostPrefix", "" }, +diff --git a/src/corelib/global/qlibraryinfo.h b/src/corelib/global/qlibraryinfo.h +index 1ad7637..5a8b127 100644 +--- a/src/corelib/global/qlibraryinfo.h ++++ b/src/corelib/global/qlibraryinfo.h +@@ -81,6 +81,7 @@ public: + HostBinariesPath, + HostLibrariesPath, + HostDataPath, ++ ExternalHostBinariesPath, + TargetSpecPath, + HostSpecPath, + HostPrefixPath, +diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp +index 2b7a1d6..77ba91e 100644 +--- a/tools/configure/configureapp.cpp ++++ b/tools/configure/configureapp.cpp +@@ -1267,6 +1267,13 @@ void Configure::parseCmdLine() + dictionary[ "QT_EXT_PREFIX" ] = configCmdLine.at(i); + } + ++ else if (configCmdLine.at(i) == "-external-hostbindir") { ++ ++i; ++ if (i == argCount) ++ break; ++ dictionary[ "QT_EXTERNAL_HOST_BINS" ] = configCmdLine.at(i); ++ } ++ + else if (configCmdLine.at(i) == "-make-tool") { + ++i; + if (i == argCount) +@@ -4269,6 +4276,9 @@ void Configure::generateQConfigCpp() + + if (dictionary["QT_REL_HOST_DATA"].isEmpty()) + dictionary["QT_REL_HOST_DATA"] = haveHpx ? "." : dictionary["QT_REL_INSTALL_ARCHDATA"]; ++ ++ if (dictionary["QT_EXTERNAL_HOST_BINS"].isEmpty()) ++ dictionary["QT_EXTERNAL_HOST_BINS"] = haveHpx ? "bin" : dictionary["QT_REL_INSTALL_BINS"]; + + confStringOff = 0; + addConfStr(0, dictionary["QT_REL_INSTALL_DOCS"]); +@@ -4288,6 +4298,7 @@ void Configure::generateQConfigCpp() + addConfStr(1, dictionary["QT_REL_HOST_BINS"]); + addConfStr(1, dictionary["QT_REL_HOST_LIBS"]); + addConfStr(1, dictionary["QT_REL_HOST_DATA"]); ++ addConfStr(1, dictionary["QT_EXTERNAL_HOST_BINS"]); + addConfStr(1, targSpec); + addConfStr(1, hostSpec); + diff --git a/meta/recipes-qt/qt5/qtbase/0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch b/meta/recipes-qt/qt5/qtbase/0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch deleted file mode 100644 index a0aaa520ee..0000000000 --- a/meta/recipes-qt/qt5/qtbase/0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch +++ /dev/null @@ -1,25 +0,0 @@ -From ba70f3ca46d921c20bebb5cb9d4b41e64bd02d8b Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sun, 3 Sep 2017 10:11:50 -0700 -Subject: [PATCH] tst_qlocale: Enable QT_USE_FENV only on glibc - -musl does not have feenableexcept function - -Signed-off-by: Khem Raj ---- - tests/auto/corelib/tools/qlocale/tst_qlocale.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp b/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp -index d424e60..3eae828 100644 ---- a/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp -+++ b/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp -@@ -46,7 +46,7 @@ - #include - #include - --#if defined(Q_OS_LINUX) && !defined(__UCLIBC__) -+#if defined(Q_OS_LINUX) && defined(__GLIBC__) - # define QT_USE_FENV - #endif - diff --git a/meta/recipes-qt/qt5/qtbase/0012-mkspecs-common-gcc-base.conf-Use-I-instead-of-isyste.patch b/meta/recipes-qt/qt5/qtbase/0012-mkspecs-common-gcc-base.conf-Use-I-instead-of-isyste.patch deleted file mode 100644 index fe1fcf57ae..0000000000 --- a/meta/recipes-qt/qt5/qtbase/0012-mkspecs-common-gcc-base.conf-Use-I-instead-of-isyste.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 81fc64f7f3a8b0554fd8d1b96b113bc04b5f0b5c Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 14 Feb 2018 17:08:43 -0800 -Subject: [PATCH] mkspecs/common/gcc-base.conf: Use -I instead of -isystem - --isystem fails to build when code uses include_next on certain files e.g. - -qtbase/5.10.0+gitAUTOINC+50117d738a-r0/recipe-sysroot/usr/include/c++/7.3.0/cstdlib:75:15: fatal error: stdlib.h: No such file or directory - #include_next - ^~~~~~~~~~ -compilation terminated. -make[2]: *** [Makefile:11592: .obj/qgenericpluginfactory.o] Error 1 - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - mkspecs/common/gcc-base.conf | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf -index 234f71d..ee3da02 100644 ---- a/mkspecs/common/gcc-base.conf -+++ b/mkspecs/common/gcc-base.conf -@@ -46,7 +46,7 @@ QMAKE_CFLAGS_DEBUG += -g - QMAKE_CFLAGS_SHLIB += $$QMAKE_CFLAGS_PIC - QMAKE_CFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_PIC - QMAKE_CFLAGS_APP += $$QMAKE_CFLAGS_PIC --QMAKE_CFLAGS_ISYSTEM = -isystem -+QMAKE_CFLAGS_ISYSTEM = -I - QMAKE_CFLAGS_YACC += -Wno-unused -Wno-parentheses - QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden - QMAKE_CFLAGS_EXCEPTIONS_OFF += -fno-exceptions diff --git a/meta/recipes-qt/qt5/qtbase/0013-Always-build-uic-and-qvkgen.patch b/meta/recipes-qt/qt5/qtbase/0013-Always-build-uic-and-qvkgen.patch deleted file mode 100644 index 3d40515f1a..0000000000 --- a/meta/recipes-qt/qt5/qtbase/0013-Always-build-uic-and-qvkgen.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 2ea3a1612452f1dc9c2febb4ae610194f67e39d6 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Sat, 16 Nov 2013 00:32:30 +0100 -Subject: [PATCH] Always build uic and qvkgen - -Even if we are not building gui or widgets. This tool is needed later -as a native tool when compiling the target. - -Change-Id: I257668ac28c22b192e7ec7736e6c23fa3be6bab6 -Signed-off-by: Mikko Levonmaa -Signed-off-by: Martin Jansa ---- - src/src.pro | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/src.pro b/src/src.pro -index a73729a..c7668b5 100644 ---- a/src/src.pro -+++ b/src/src.pro -@@ -213,7 +213,7 @@ qtConfig(gui) { - } - } - } --SUBDIRS += src_plugins -+SUBDIRS += src_plugins src_tools_uic src_tools_qvkgen - - nacl: SUBDIRS -= src_network src_testlib - diff --git a/meta/recipes-qt/qt5/qtbase/0014-Bootstrap-without-linkat-feature.patch b/meta/recipes-qt/qt5/qtbase/0014-Bootstrap-without-linkat-feature.patch deleted file mode 100644 index c733c1566d..0000000000 --- a/meta/recipes-qt/qt5/qtbase/0014-Bootstrap-without-linkat-feature.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 77365eda4dd1c4c26803b3f0d1f411b7416ad531 Mon Sep 17 00:00:00 2001 -From: Samuli Piippo -Date: Fri, 24 Nov 2017 15:16:31 +0200 -Subject: [PATCH] Bootstrap without linkat feature - -qmake does not work together with pseudo when unnamed temporary files -are used with linkat. - -Upstream-Status: Inappropriate [OE specific] -[YOCTO #11996] ---- - src/corelib/global/qconfig-bootstrapped.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/corelib/global/qconfig-bootstrapped.h b/src/corelib/global/qconfig-bootstrapped.h -index dabb715..5b4ff86 100644 ---- a/src/corelib/global/qconfig-bootstrapped.h -+++ b/src/corelib/global/qconfig-bootstrapped.h -@@ -88,7 +88,7 @@ - #define QT_FEATURE_futimes -1 - #define QT_FEATURE_library -1 - #ifdef __linux__ --# define QT_FEATURE_linkat 1 -+# define QT_FEATURE_linkat -1 - #else - # define QT_FEATURE_linkat -1 - #endif -- cgit 1.2.3-korg