diff options
author | Mikko Gronoff <mikko.gronoff@qt.io> | 2017-10-18 11:06:26 +0300 |
---|---|---|
committer | Mikko Gronoff <mikko.gronoff@qt.io> | 2017-10-31 13:41:46 +0200 |
commit | 2401cc3106e6f6e1d9c2a3016110cfa914a13dab (patch) | |
tree | 91ff16b8128511bfe449f54977c4fb3f3511647d /recipes-qt/qt5/qtbase_git.bb | |
parent | f3213460a0495cac618d37bcbe59fddd58b6d65d (diff) | |
parent | e0db5666f9c04c92683514ca220b0aafd0a49df2 (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.bb | 59 |
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 |