diff options
Diffstat (limited to 'external/meta-qt5/recipes-qt/qt5/qtbase_git.bb')
-rw-r--r-- | external/meta-qt5/recipes-qt/qt5/qtbase_git.bb | 109 |
1 files changed, 62 insertions, 47 deletions
diff --git a/external/meta-qt5/recipes-qt/qt5/qtbase_git.bb b/external/meta-qt5/recipes-qt/qt5/qtbase_git.bb index 8ab1746a..050e6d97 100644 --- a/external/meta-qt5/recipes-qt/qt5/qtbase_git.bb +++ b/external/meta-qt5/recipes-qt/qt5/qtbase_git.bb @@ -9,12 +9,12 @@ LIC_FILES_CHKSUM = " \ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ - file://LICENSE.QT-LICENSE-AGREEMENT-4.0;md5=948f8877345cd66106f11031977a4625 \ + file://LICENSE.QT-LICENSE-AGREEMENT;md5=c8b6dd132d52c6e5a545df07a4e3e283 \ " # common for qtbase-native, qtbase-nativesdk and qtbase -# Patches from https://github.com/meta-qt5/qtbase/commits/b5.11-shared -# 5.11.meta-qt5-shared.14 +# Patches from https://github.com/meta-qt5/qtbase/commits/b5.14-shared +# 5.14.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 \ @@ -28,45 +28,21 @@ SRC_URI += "\ file://0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch \ file://0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch \ file://0012-mkspecs-common-gcc-base.conf-Use-I-instead-of-isyste.patch \ - file://0013-Upgrade-double-conversion-to-v3.0.0.patch \ - file://0014-double-conversion-support-AARCH64EB-and-arm-BE.patch \ - file://0015-Disable-ltcg-for-host_build.patch \ - file://0016-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch \ - file://0017-corelib-Include-sys-types.h-for-uint32_t.patch \ - file://0018-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch \ - file://0019-Fix-compile-issue-with-gcc-9.patch \ + file://0013-Disable-ltcg-for-host_build.patch \ + file://0014-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch \ + file://0015-corelib-Include-sys-types.h-for-uint32_t.patch \ + file://0016-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch \ + file://0018-input-Make-use-of-timeval-portable-for-64bit-time_t.patch \ + file://0022-tst_qpainter-FE_-macros-are-not-defined-for-every-pl.patch \ " - # 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', 'no-opengl', d)}" PACKAGECONFIG_FB ?= "${@bb.utils.contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)}" -PACKAGECONFIG_X11 ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xcb xinput2 glib xkb xkbcommon-evdev', '', d)}" +PACKAGECONFIG_X11 ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xcb xcb-xinput glib xkb xkbcommon', '', d)}" PACKAGECONFIG_KDE ?= "${@bb.utils.contains('DISTRO_FEATURES', 'kde', 'sm cups fontconfig kms gbm libinput sql-sqlite openssl', '', d)}" PACKAGECONFIG_FONTS ?= "" PACKAGECONFIG_SYSTEM ?= "jpeg libpng zlib" @@ -75,7 +51,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 ?= "accessibility dbus udev evdev widgets tools libs freetype tests \ +PACKAGECONFIG_DEFAULT ?= "accessibility dbus udev evdev widgets tools libs freetype tests pcre \ ${@bb.utils.contains('SELECTED_OPTIMIZATION', '-Os', 'optimize-size ltcg', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'qt5-static', 'static', '', d)} \ " @@ -129,7 +105,7 @@ PACKAGECONFIG[no-opengl] = "-no-opengl" PACKAGECONFIG[tslib] = "-tslib,-no-tslib,tslib" PACKAGECONFIG[cups] = "-cups,-no-cups,cups" PACKAGECONFIG[dbus] = "-dbus,-no-dbus,dbus" -PACKAGECONFIG[xcb] = "-xcb -xcb-xlib -system-xcb,-no-xcb,libxcb xcb-util-wm xcb-util-image xcb-util-keysyms xcb-util-renderutil" +PACKAGECONFIG[xcb] = "-xcb -xcb-xlib -system-xcb,-no-xcb,libxcb xcb-util-wm xcb-util-image xcb-util-keysyms xcb-util-renderutil libxext" PACKAGECONFIG[sql-ibase] = "-sql-ibase,-no-sql-ibase" PACKAGECONFIG[sql-mysql] = "-sql-mysql -mysql_config ${STAGING_BINDIR_CROSS}/mysql_config,-no-sql-mysql,mysql5" PACKAGECONFIG[sql-psql] = "-sql-psql,-no-sql-psql,postgresql" @@ -139,12 +115,13 @@ PACKAGECONFIG[sql-tds] = "-sql-tds,-no-sql-tds" PACKAGECONFIG[sql-db2] = "-sql-db2,-no-sql-db2" PACKAGECONFIG[sql-sqlite2] = "-sql-sqlite2,-no-sql-sqlite2,sqlite" PACKAGECONFIG[sql-sqlite] = "-sql-sqlite -system-sqlite,-no-sql-sqlite,sqlite3" -PACKAGECONFIG[xinput2] = "-xinput2,-no-xinput2,libxi" +PACKAGECONFIG[xcb-xinput] = "-xcb-xinput,-no-xcb-xinput,libxcb" PACKAGECONFIG[iconv] = "-iconv,-no-iconv,virtual/libiconv" PACKAGECONFIG[xkb] = "-xkb,-no-xkb -no-xkbcommon,libxkbcommon" -PACKAGECONFIG[xkbcommon-evdev] = "-xkbcommon-evdev,-no-xkbcommon-evdev,libxkbcommon,xkeyboard-config" +PACKAGECONFIG[xkbcommon] = "-xkbcommon,-no-xkbcommon,libxkbcommon,xkeyboard-config" PACKAGECONFIG[evdev] = "-evdev,-no-evdev" PACKAGECONFIG[mtdev] = "-mtdev,-no-mtdev,mtdev" +PACKAGECONFIG[lttng] = "-trace lttng,-trace no,lttng-ust" # depends on glib PACKAGECONFIG[fontconfig] = "-fontconfig,-no-fontconfig,fontconfig" PACKAGECONFIG[gtk] = "-gtk,-no-gtk,gtk+3" @@ -161,8 +138,41 @@ PACKAGECONFIG[libinput] = "-libinput,-no-libinput,libinput" PACKAGECONFIG[journald] = "-journald,-no-journald,systemd" # needs kernel 3.17+ PACKAGECONFIG[getentropy] = "-feature-getentropy,-no-feature-getentropy," +PACKAGECONFIG[vulkan] = "-vulkan,-no-vulkan,vulkan-headers" QT_CONFIG_FLAGS_GOLD = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '-use-gold-linker', '-no-use-gold-linker', d)}" +# 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)}" + +# since the upgrade to 5.12.2 this got worse, with gold enabled configure will no longer pass the test for xlib +# because with full paths to libraries since qtbase commit 521a85395 it fails to link with +# /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.12.3+gitAUTOINC+b527725766-r0/recipe-sysroot/usr/lib/libm.so +# as reported in: +# https://github.com/meta-qt5/meta-qt5/pull/181#issuecomment-484425112 +# resulting in do_configure failure: +# http://errors.yoctoproject.org/Errors/Details/237856/ +QT_CONFIG_FLAGS_GOLD = "-no-use-gold-linker" +LDFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" + QT_CONFIG_FLAGS += " \ ${QT_CONFIG_FLAGS_GOLD} \ -shared \ @@ -173,6 +183,13 @@ QT_CONFIG_FLAGS += " \ ${PACKAGECONFIG_CONFARGS} \ " +export CC_host_toolchain-clang = "clang" +export CXX_host_toolchain-clang = "clang++" +export LD_host_toolchain-clang = "clang++" +export CC_host ?= "gcc" +export CXX_host ?= "g++" +export LD_host ?= "g++" + # for qtbase configuration we need default settings # since we cannot set empty set filename to a not existent file deltask generate_qt_config_file @@ -225,11 +242,6 @@ 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}|$$[QT_HOST_PREFIX/get]|g' \ - -e 's|${STAGING_DIR_HOST}|$$[QT_SYSROOT]|g' \ - ${D}/${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs/*.pri - # Update the mkspecs to include the default OE toolchain config for the target conf=${D}/${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs/${XPLATFORM}/qmake.conf @@ -251,11 +263,14 @@ do_install_append() { echo "isEmpty(QMAKE_LINK_C_SHLIB): QMAKE_LINK_C_SHLIB = $OE_QMAKE_LINK_NO_SYSROOT" >> $conf echo "isEmpty(QMAKE_LFLAGS): QMAKE_LFLAGS = ${OE_QMAKE_LDFLAGS}" >> $conf echo "isEmpty(QMAKE_STRIP): QMAKE_STRIP = ${TARGET_PREFIX}strip" >> $conf + echo "isEmpty(CC_host): CC_host = ${CC_host}" >> $conf + echo "isEmpty(CXX_host): CXX_host = ${CXX_host}" >> $conf + echo "isEmpty(LD_host): LD_host = ${LD_host}" >> $conf generate_target_qt_config_file ${D}${OE_QMAKE_PATH_BINS}/qt.conf - # Fix up absolute paths in scripts - sed -i -e '1s,#!/usr/bin/python,#! ${USRBINPATH}/env python,' \ + # Fix up absolute paths in scripts and use python3 instead of python + sed -i -e '1s,#!/usr/bin/python$,#! ${USRBINPATH}/env python3,' \ ${D}${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs/features/uikit/devices.py } @@ -271,7 +286,7 @@ pkg_postinst_${PN}-tools () { sed -i \ -e 's:HostSpec =.*:HostSpec = ${TARGET_MKSPEC}:g' \ -e 's:TargetSpec =.*:TargetSpec = ${TARGET_MKSPEC}:g' \ - $D${bindir}/qt.conf + $D${OE_QMAKE_PATH_BINS}/qt.conf } pkg_postinst_${PN}-mkspecs () { @@ -282,4 +297,4 @@ sed -i \ $D${OE_QMAKE_PATH_ARCHDATA}/mkspecs/qmodule.pri } -SRCREV = "08de243eaa007597c2bfbc97d3d14e2f821ac4be" +SRCREV = "3a6d8df5219653b043bd642668cee193f563ec84" |