aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-qt/qt5/qtbase_git.bb
diff options
context:
space:
mode:
authorMikko Gronoff <mikko.gronoff@qt.io>2017-10-18 11:06:26 +0300
committerMikko Gronoff <mikko.gronoff@qt.io>2017-10-31 13:41:46 +0200
commit2401cc3106e6f6e1d9c2a3016110cfa914a13dab (patch)
tree91ff16b8128511bfe449f54977c4fb3f3511647d /recipes-qt/qt5/qtbase_git.bb
parentf3213460a0495cac618d37bcbe59fddd58b6d65d (diff)
parente0db5666f9c04c92683514ca220b0aafd0a49df2 (diff)
Merge remote-tracking branch 'qtyocto/5.9' into 5.10
* qtyocto/5.9: qt5: update version to 5.9.3 qt5: remove use of OE_QMAKE_WAYLAND_SCANNER qtquickcontrols: remove duplicate FILES append qtdeclarative: remove upstreamed patch qt5: update qtx11extras revision for 5.9.2 qt5: update submodules qt5: update submodules Merge remote-tracking branch 'qtyocto/upstream/master' into 5.9 qt5: add missing commercial license Fix compiling for qtenginio and qtquick1 Use correct HostPrefix qt5: update submodules qtwebview: remove obsolete patch qt5: update submodules qtwebengine: add patch for long paths qtwebengine: update 0004-Force-host-toolchain-configuration.patch qtwebengine: fix build with glibc-2.26 qt: upgrade to latest revision in 5.9 branch qt: refresh remaining patches and add links to meta-qt5 repos qtwebengine: add a fix for building demobrowser without printing support Upgrade to Qt 5.9.0 qtbase, qtgraphicaleffect, qtmultimedia, qtscript, qtlocation, qtwayland: disable gold to work around binutils bug qtwebengine: disable SECURITY_STRINGFORMAT to fix the build meta-toolchain-qt5: don't rely on COREBASE/LICENSE qtbase: fix Krogoth build regression from efa8aaf qt3d: refresh patches qtwebengine: refresh patches qtbase: refresh the patches qtwebengine: update to 5.9.2 qt5: bump version number to 5.9.2 qtbase: fix Krogoth build regression from efa8aaf gstreamer1.0-plugins-bad: add qt5 packageconfig qtbase: remove qtbase-native from DEPENDS qt3d: Fix build with clang qtwebkit: Backport a patch to fix build with icu-59 quazip: update to 0.7.3 and add missing metadata qtbase: Use sched_yield instead of pthread_yield qtbase: Fix ptests with clang qt5-ptest: fix build with yocto < 2.3 (pyro) qtbase: add ptest qwt-qt5.inc: fix QA warning qt5-git.inc: set CVE_PRODUCT to qt python-pyqt5: include QtWidgets module qt5-creator: Link with libexecinfo on musl qtvirtualkeyboard: Include sys/time.h qtwebengine: Fix build on musl qt5-creator: Fix build with NO_ACCESSIBILITY maliit-framework-qt5: Always have optimize flags qtbase-native: Fix qdbuscpp2xml segfault qt5-ptest.inc: append do_populate_sysroot only for target qtwebengine: fix build with gcc7 qwt-qt5: Fix rpath issues qtquickcontrols2: fix compilation of examples/texteditor qtquick1: add ptest qtdeclarative: add ptest qtxmlpatterns: add ptest qt5: add qt5-ptest.inc qtwebengine: add PACKAGECONFIG for webrtc libconnman-qt5: update to 1.1.10 Revert "qttools: DEPENDS on icu" qttools: DEPENDS on icu qtbase: respect "ld-is-gold" DISTRO_FEATURES Change-Id: I9dfcab3c94b62b22b68e66e8b13bdf4c570aada1
Diffstat (limited to 'recipes-qt/qt5/qtbase_git.bb')
-rw-r--r--recipes-qt/qt5/qtbase_git.bb59
1 files changed, 49 insertions, 10 deletions
diff --git a/recipes-qt/qt5/qtbase_git.bb b/recipes-qt/qt5/qtbase_git.bb
index a95c17a4..6aa8c160 100644
--- a/recipes-qt/qt5/qtbase_git.bb
+++ b/recipes-qt/qt5/qtbase_git.bb
@@ -15,22 +15,49 @@ LIC_FILES_CHKSUM = " \
"
# common for qtbase-native, qtbase-nativesdk and qtbase
+# Patches from https://github.com/meta-qt5/qtbase/commits/b5.9-shared
+# 5.9.meta-qt5-shared.2
SRC_URI += "\
file://0001-Add-linux-oe-g-platform.patch \
file://0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch \
- file://0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \
- file://0005-configure-bump-path-length-from-256-to-512-character.patch \
- file://0009-Disable-all-unknown-features-instead-of-erroring-out.patch \
- file://0010-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch \
- "
+ file://0003-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \
+ file://0004-configure-bump-path-length-from-256-to-512-character.patch \
+ file://0005-Disable-all-unknown-features-instead-of-erroring-out.patch \
+ file://0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch \
+ file://0007-Delete-qlonglong-and-qulonglong.patch \
+ file://0008-Replace-pthread_yield-with-sched_yield.patch \
+ file://run-ptest \
+"
-DEPENDS += "qtbase-native"
+inherit ptest
# LGPL-3.0 is used only in src/plugins/platforms/android/extract.cpp
# for syncqt
RDEPENDS_${PN}-tools += "perl"
+# workaround for gold bug:
+# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842304
+# https://sourceware.org/bugzilla/show_bug.cgi?id=21712
+# it's triggered only in combination of gold and security_flags.inc,
+# because security_flags.inc now enable pie by default.
+# Adding -no-pie or changing -fuse-ld=gold to -fuse-ld=bfd
+# works around this issue, will use -fuse-ld=bfd as it's considered
+# binutils bug.
+# OE @ ~/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/build/tests/auto/corelib/kernel/qmetatype $ i586-oe-linux-g++ -m32 -march=i586 --sysroot=/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/recipe-sysroot -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed --sysroot=/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/recipe-sysroot -Wl,-O1 -fuse-ld=gold -Wl,--enable-new-dtags -o tst_qmetatype .obj/tst_qmetatype.o -L/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/build/lib -lQt5Test -lQt5Core -lpthread
+# .obj/tst_qmetatype.o(.qtversion+0x0): error: unexpected reloc 3 against global symbol qt_version_tag without base register in object file when generating a position-independent output file
+# collect2: error: ld returned 1 exit status
+#
+# with -no-pie:
+# OE @ ~/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/build/tests/auto/corelib/kernel/qmetatype $ i586-oe-linux-g++ -no-pie -m32 -march=i586 --sysroot=/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/recipe-sysroot -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed --sysroot=/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/recipe-sysroot -Wl,-O1 -fuse-ld=gold -Wl,--enable-new-dtags -o tst_qmetatype .obj/tst_qmetatype.o -L/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/build/lib -lQt5Test -lQt5Core -lpthread
+#
+# with -fuse-ld=gold replaced with -fuse-ld=bfd:
+# OE @ ~/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/build/tests/auto/corelib/kernel/qmetatype $ i586-oe-linux-g++ -m32 -march=i586 --sysroot=/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/recipe-sysroot -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed --sysroot=/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/recipe-sysroot -Wl,-O1 -fuse-ld=bfd -Wl,--enable-new-dtags -o tst_qmetatype .obj/tst_qmetatype.o -L/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/build/lib -lQt5Test -lQt5Core -lpthread
+#
+# http://errors.yoctoproject.org/Errors/Details/150329/
+QT_CONFIG_FLAGS_GOLD_x86 = "-no-use-gold-linker"
+LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
+
# separate some parts of PACKAGECONFIG which are often changed
PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)}"
PACKAGECONFIG_FB ?= "${@bb.utils.contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)}"
@@ -42,7 +69,7 @@ PACKAGECONFIG_DISTRO ?= ""
PACKAGECONFIG_RELEASE ?= "release"
# This is in qt5.inc, because qtwebkit-examples are using it to enable ca-certificates dependency
# PACKAGECONFIG_OPENSSL ?= "openssl"
-PACKAGECONFIG_DEFAULT ?= "dbus udev evdev widgets tools libs freetype"
+PACKAGECONFIG_DEFAULT ?= "dbus udev evdev widgets tools libs freetype tests"
PACKAGECONFIG ?= " \
${PACKAGECONFIG_RELEASE} \
@@ -118,8 +145,9 @@ PACKAGECONFIG[libproxy] = "-libproxy,-no-libproxy,libproxy"
PACKAGECONFIG[libinput] = "-libinput,-no-libinput,libinput"
PACKAGECONFIG[journald] = "-journald,-no-journald,systemd"
+QT_CONFIG_FLAGS_GOLD = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '-use-gold-linker', '-no-use-gold-linker', d)}"
QT_CONFIG_FLAGS += " \
- ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '-use-gold-linker', '-no-use-gold-linker', d)} \
+ ${QT_CONFIG_FLAGS_GOLD} \
-shared \
-silent \
-no-pch \
@@ -130,7 +158,7 @@ QT_CONFIG_FLAGS += " \
# for qtbase configuration we need default settings
# since we cannot set empty set filename to a not existent file
-export OE_QMAKE_QTCONF_PATH = "foodummy"
+deltask generate_qt_config_file
do_configure() {
# Avoid qmake error "Cannot read [...]/usr/lib/qt5/mkspecs/oe-device-extra.pri: No such file or directory" during configuration
@@ -164,12 +192,23 @@ do_configure() {
${QT_CONFIG_FLAGS}
}
+fakeroot do_install_ptest() {
+ mkdir -p ${D}${PTEST_PATH}
+ t=${D}${PTEST_PATH}
+ for var in ` find ${B}/tests/auto/ -name tst_*`; do
+ if [ not ` echo ${var##*/} | grep '\.'` ]; then
+ echo ${var##*/} >> ${t}/tst_list
+ install -m 0644 ${var} ${t}
+ fi
+ done
+}
+
do_install_append() {
# Avoid qmake error "Cannot read [...]/usr/lib/qt5/mkspecs/oe-device-extra.pri: No such file or directory"
touch ${D}/${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs/oe-device-extra.pri
# Replace host paths with qmake built-in properties
- sed -i -e 's|${STAGING_DIR_NATIVE}${prefix_native}|$$[QT_HOST_PREFIX/get]|g' \
+ sed -i -e 's|${STAGING_DIR_NATIVE}|$$[QT_HOST_PREFIX/get]|g' \
-e 's|${STAGING_DIR_HOST}|$$[QT_SYSROOT]|g' \
${D}/${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs/*.pri