diff options
author | Martin Jansa <Martin.Jansa@gmail.com> | 2018-08-09 12:37:03 +0000 |
---|---|---|
committer | Martin 'JaMa' Jansa <Martin.Jansa@gmail.com> | 2018-08-14 13:49:18 +0200 |
commit | 539e4f09f749f024d6e157a49559e5ad7f51470a (patch) | |
tree | c26a323be297bccc50cc21314973ebbfd3661c3e /recipes-qt/qt5 | |
parent | c2e4ec603be96cf2ede2557e459c39d25db25937 (diff) |
qtbase: fix build with glibc-2.28
Fixes:
qtbase/5.11.1+gitAUTOINC+74305ba470-r0/git/src/corelib/io/qfilesystemengine_unix.cpp:94:
qtbase/5.11.1+gitAUTOINC+74305ba470-r0/recipe-sysroot/usr/include/linux/stat.h:56:8:
error: redefinition of 'struct statx_timestamp'
struct statx_timestamp {
^~~~~~~~~~~~~~~
qtbase/5.11.1+gitAUTOINC+74305ba470-r0/recipe-sysroot/usr/include/bits/statx.h:25:8:
note: previous definition of 'struct statx_timestamp'
struct statx_timestamp
^~~~~~~~~~~~~~~
You might encounter another error:
qtbase/5.11.1+gitAUTOINC+74305ba470-r0/git/src/corelib/io/qfilesystemengine_unix.cpp:109:12:
error: 'int renameat2(int, const char*, int, const char*, unsigned int)'
was declared 'extern' and later 'static' [-fpermissive]
static int renameat2(int oldfd, const char *oldpath, int newfd, const char *newpath, unsigned flags)
^~~~~~~~~
qtbase/5.11.1+gitAUTOINC+74305ba470-r0/recipe-sysroot/usr/include/stdio.h:164:12:
note: previous declaration of 'int renameat2(int, const char*, int, const char*, unsigned int)'
extern int renameat2 (int __oldfd, const char *__old, int __newfd,
^~~~~~~~~
In that case enable renameat2 in your PACKAGECONFIG.
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'recipes-qt/qt5')
-rw-r--r-- | recipes-qt/qt5/nativesdk-qtbase_git.bb | 7 | ||||
-rw-r--r-- | recipes-qt/qt5/qtbase-native_git.bb | 9 | ||||
-rw-r--r-- | recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch | 27 | ||||
-rw-r--r-- | recipes-qt/qt5/qtbase/0014-Fix-qmake-build-with-glibc-2.28.patch | 69 | ||||
-rw-r--r-- | recipes-qt/qt5/qtbase/0015-Always-build-uic-and-qvkgen.patch (renamed from recipes-qt/qt5/qtbase/0014-Always-build-uic-and-qvkgen.patch) | 2 | ||||
-rw-r--r-- | recipes-qt/qt5/qtbase/0016-Bootstrap-without-linkat-feature.patch (renamed from recipes-qt/qt5/qtbase/0015-Bootstrap-without-linkat-feature.patch) | 4 | ||||
-rw-r--r-- | recipes-qt/qt5/qtbase_git.bb | 3 |
7 files changed, 84 insertions, 37 deletions
diff --git a/recipes-qt/qt5/nativesdk-qtbase_git.bb b/recipes-qt/qt5/nativesdk-qtbase_git.bb index 8c3adae1..5ad6a650 100644 --- a/recipes-qt/qt5/nativesdk-qtbase_git.bb +++ b/recipes-qt/qt5/nativesdk-qtbase_git.bb @@ -24,7 +24,7 @@ FILESEXTRAPATHS =. "${FILE_DIRNAME}/qtbase:" # 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.6 +# 5.11.meta-qt5-shared.7 SRC_URI += "\ file://0001-Add-linux-oe-g-platform.patch \ file://0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch \ @@ -39,13 +39,14 @@ SRC_URI += "\ 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-Fix-qmake-build-with-glibc-2.28.patch \ " # common for qtbase-native and nativesdk-qtbase # Patches from https://github.com/meta-qt5/qtbase/commits/b5.11-native -# 5.11.meta-qt5-native.6 +# 5.11.meta-qt5-native.7 SRC_URI += " \ - file://0014-Always-build-uic-and-qvkgen.patch \ + file://0015-Always-build-uic-and-qvkgen.patch \ " # CMake's toolchain configuration of nativesdk-qtbase diff --git a/recipes-qt/qt5/qtbase-native_git.bb b/recipes-qt/qt5/qtbase-native_git.bb index 819f4473..bffebdd1 100644 --- a/recipes-qt/qt5/qtbase-native_git.bb +++ b/recipes-qt/qt5/qtbase-native_git.bb @@ -19,7 +19,7 @@ require qt5-git.inc # 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.6 +# 5.11.meta-qt5-shared.7 SRC_URI += "\ file://0001-Add-linux-oe-g-platform.patch \ file://0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch \ @@ -34,18 +34,19 @@ SRC_URI += "\ 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-Fix-qmake-build-with-glibc-2.28.patch \ " # common for qtbase-native and nativesdk-qtbase # Patches from https://github.com/meta-qt5/qtbase/commits/b5.10-native -# 5.11.meta-qt5-native.6 +# 5.11.meta-qt5-native.7 SRC_URI += " \ - file://0014-Always-build-uic-and-qvkgen.patch \ + file://0015-Always-build-uic-and-qvkgen.patch \ " # only for qtbase-native SRC_URI += " \ - file://0015-Bootstrap-without-linkat-feature.patch \ + file://0016-Bootstrap-without-linkat-feature.patch \ " CLEANBROKEN = "1" diff --git a/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch b/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch index f4dfe0b7..8f7afb6d 100644 --- a/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch +++ b/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch @@ -22,11 +22,10 @@ Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> --- configure | 2 +- mkspecs/features/configure.prf | 4 +-- - mkspecs/features/qt.prf | 6 ++-- mkspecs/features/qt_functions.prf | 2 +- mkspecs/linux-oe-g++/qmake.conf | 42 ++++++++++++++++++++++++++++ mkspecs/linux-oe-g++/qplatformdefs.h | 1 + - 6 files changed, 50 insertions(+), 7 deletions(-) + 5 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 mkspecs/linux-oe-g++/qmake.conf create mode 100644 mkspecs/linux-oe-g++/qplatformdefs.h @@ -64,30 +63,6 @@ index 934a18a924..0f5b1b6333 100644 log("yes$$escape_expand(\\n)") msg = "test $$1 succeeded" write_file($$QMAKE_CONFIG_LOG, msg, append) -diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf -index b57afcf72d..afa1c39b3e 100644 ---- a/mkspecs/features/qt.prf -+++ b/mkspecs/features/qt.prf -@@ -147,7 +147,7 @@ import_plugins:qtConfig(static) { - !isEmpty(plug_type) { - plug_path = $$eval(QT_PLUGIN.$${plug}.PATH) - isEmpty(plug_path): \ -- plug_path = $$[QT_INSTALL_PLUGINS/get] -+ plug_path = $$[QT_INSTALL_PLUGINS] - LIBS += -L$$plug_path/$$plug_type - } - LIBS += -l$${plug}$$qtPlatformTargetSuffix() -@@ -298,8 +298,8 @@ for(ever) { - # static builds: link qml import plugins into the target. - contains(all_qt_module_deps, qml): \ - qtConfig(static):import_plugins:!host_build:!no_import_scan { -- exists($$[QT_INSTALL_QML/get]): \ -- QMLPATHS *= $$[QT_INSTALL_QML/get] -+ exists($$[QT_INSTALL_QML]): \ -+ QMLPATHS *= $$[QT_INSTALL_QML] - - # run qmlimportscanner - qtPrepareTool(QMLIMPORTSCANNER, qmlimportscanner, , system) diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index 1903e509c8..c093dd4592 100644 --- a/mkspecs/features/qt_functions.prf diff --git a/recipes-qt/qt5/qtbase/0014-Fix-qmake-build-with-glibc-2.28.patch b/recipes-qt/qt5/qtbase/0014-Fix-qmake-build-with-glibc-2.28.patch new file mode 100644 index 00000000..0cfd5428 --- /dev/null +++ b/recipes-qt/qt5/qtbase/0014-Fix-qmake-build-with-glibc-2.28.patch @@ -0,0 +1,69 @@ +From 721d05fbe9e70518ed2288c089ff5d4036ea7ac7 Mon Sep 17 00:00:00 2001 +From: Thiago Macieira <thiago.macieira@intel.com> +Date: Tue, 7 Aug 2018 09:38:42 -0700 +Subject: [PATCH] Fix qmake build with glibc 2.28 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +We haven't yet run the configure checks to see if statx and renameat2 +are present in glibc, so this fails when we redefine the structures and +functions. + +linux/stat.h:56:8: error: redefinition of 'struct statx_timestamp' +bits/statx.h:25:8: note: previous definition of 'struct statx_timestamp' +qfilesystemengine_unix.cpp:110:12: error: 'int renameat2(int, const char*, int, const char*, unsigned int)' was declared 'extern' and later 'static' [-fpermissive] + +Change-Id: Ia741b559c24d46c78fb2fffd1548a792d22e3368 +Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> +Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io> +--- + src/corelib/global/qconfig-bootstrapped.h | 12 ++++++++++-- + src/corelib/io/qfilesystemengine_unix.cpp | 2 +- + 2 files changed, 11 insertions(+), 3 deletions(-) + +diff --git a/src/corelib/global/qconfig-bootstrapped.h b/src/corelib/global/qconfig-bootstrapped.h +index 3469ebe5e6..c5585ea32a 100644 +--- a/src/corelib/global/qconfig-bootstrapped.h ++++ b/src/corelib/global/qconfig-bootstrapped.h +@@ -98,10 +98,18 @@ + #define QT_NO_QOBJECT + #define QT_FEATURE_process -1 + #define QT_FEATURE_regularexpression -1 +-#define QT_FEATURE_renameat2 -1 ++#ifdef __GLIBC_PREREQ ++# define QT_FEATURE_renameat2 (__GLIBC_PREREQ(2, 28) ? 1 : -1) ++#else ++# define QT_FEATURE_renameat2 -1 ++#endif + #define QT_FEATURE_sharedmemory -1 + #define QT_FEATURE_slog2 -1 +-#define QT_FEATURE_statx -1 ++#ifdef __GLIBC_PREREQ ++# define QT_FEATURE_statx (__GLIBC_PREREQ(2, 28) ? 1 : -1) ++#else ++# define QT_FEATURE_statx -1 ++#endif + #define QT_FEATURE_syslog -1 + #define QT_NO_SYSTEMLOCALE + #define QT_FEATURE_systemsemaphore -1 +diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp +index be6ce48d0c..3e4f33a3ba 100644 +--- a/src/corelib/io/qfilesystemengine_unix.cpp ++++ b/src/corelib/io/qfilesystemengine_unix.cpp +@@ -91,7 +91,6 @@ extern "C" NSString *NSTemporaryDirectory(); + # include <sys/syscall.h> + # include <sys/sendfile.h> + # include <linux/fs.h> +-# include <linux/stat.h> + + // in case linux/fs.h is too old and doesn't define it: + #ifndef FICLONE +@@ -112,6 +111,7 @@ static int renameat2(int oldfd, const char *oldpath, int newfd, const char *newp + # endif + + # if !QT_CONFIG(statx) && defined(SYS_statx) ++# include <linux/stat.h> + static int statx(int dirfd, const char *pathname, int flag, unsigned mask, struct statx *statxbuf) + { return syscall(SYS_statx, dirfd, pathname, flag, mask, statxbuf); } + # elif !QT_CONFIG(statx) && !defined(SYS_statx) diff --git a/recipes-qt/qt5/qtbase/0014-Always-build-uic-and-qvkgen.patch b/recipes-qt/qt5/qtbase/0015-Always-build-uic-and-qvkgen.patch index 060e8fbf..0a32e881 100644 --- a/recipes-qt/qt5/qtbase/0014-Always-build-uic-and-qvkgen.patch +++ b/recipes-qt/qt5/qtbase/0015-Always-build-uic-and-qvkgen.patch @@ -1,4 +1,4 @@ -From 7b0de75cc3d85b44f96f1c6869c65399351a1398 Mon Sep 17 00:00:00 2001 +From 7ad41f69af974ec924eb27c86fb15d5da9384d6c Mon Sep 17 00:00:00 2001 From: Martin Jansa <Martin.Jansa@gmail.com> Date: Sat, 16 Nov 2013 00:32:30 +0100 Subject: [PATCH] Always build uic and qvkgen diff --git a/recipes-qt/qt5/qtbase/0015-Bootstrap-without-linkat-feature.patch b/recipes-qt/qt5/qtbase/0016-Bootstrap-without-linkat-feature.patch index 8863ddd8..4f5fdc95 100644 --- a/recipes-qt/qt5/qtbase/0015-Bootstrap-without-linkat-feature.patch +++ b/recipes-qt/qt5/qtbase/0016-Bootstrap-without-linkat-feature.patch @@ -1,4 +1,4 @@ -From 6ff049f08cbe80b00b34859acdc5ccf7b9c9ae18 Mon Sep 17 00:00:00 2001 +From 05bbd2dce8c7f4a40d86841671763b9d8b51c886 Mon Sep 17 00:00:00 2001 From: Samuli Piippo <samuli.piippo@qt.io> Date: Fri, 24 Nov 2017 15:16:31 +0200 Subject: [PATCH] Bootstrap without linkat feature @@ -13,7 +13,7 @@ Upstream-Status: Inappropriate [OE specific] 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/global/qconfig-bootstrapped.h b/src/corelib/global/qconfig-bootstrapped.h -index 3469ebe5e6..cb889f27c2 100644 +index c5585ea32a..de895e7bf4 100644 --- a/src/corelib/global/qconfig-bootstrapped.h +++ b/src/corelib/global/qconfig-bootstrapped.h @@ -90,7 +90,7 @@ diff --git a/recipes-qt/qt5/qtbase_git.bb b/recipes-qt/qt5/qtbase_git.bb index 627b2f23..4c85a216 100644 --- a/recipes-qt/qt5/qtbase_git.bb +++ b/recipes-qt/qt5/qtbase_git.bb @@ -15,7 +15,7 @@ LIC_FILES_CHKSUM = " \ # 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.6 +# 5.11.meta-qt5-shared.7 SRC_URI += "\ file://0001-Add-linux-oe-g-platform.patch \ file://0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch \ @@ -30,6 +30,7 @@ SRC_URI += "\ 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-Fix-qmake-build-with-glibc-2.28.patch \ " # for syncqt |