[yocto] [meta-qt4][krogoth][PATCH] qt4-native: fix gcc-6 build; inhibit debug stripping

Tim Orling timothy.t.orling at linux.intel.com
Sat Jul 23 14:44:29 PDT 2016


[YOCTO #9897] (Fedora-24 host is gcc-6)

Fix native build only, "krogoth" does not have gcc-6 for target.

Add patches from master:
(Khem Raj) commit 9ec17d2113a8bf9e829ce94c0927036cea100625
(Richard Purdie) commit 8b346c465a5efb280f8d0d23f8660f68bf9af59f

Also, apply patch to inhibit debug stripping to avoid QA warning.

Signed-off-by: Tim Orling <timothy.t.orling at linux.intel.com>
---
 ...6-qt-everywhere-opensource-src-4.8.7-gcc6.patch | 24 ++++++++++++++++++++++
 recipes-qt4/qt4/qt4-4.8.7/gcc-6.patch              | 19 +++++++++++++++++
 recipes-qt4/qt4/qt4-native.inc                     |  6 ++++++
 3 files changed, 49 insertions(+)
 create mode 100644 recipes-qt4/qt4/qt4-4.8.7/0036-qt-everywhere-opensource-src-4.8.7-gcc6.patch
 create mode 100644 recipes-qt4/qt4/qt4-4.8.7/gcc-6.patch

diff --git a/recipes-qt4/qt4/qt4-4.8.7/0036-qt-everywhere-opensource-src-4.8.7-gcc6.patch b/recipes-qt4/qt4/qt4-4.8.7/0036-qt-everywhere-opensource-src-4.8.7-gcc6.patch
new file mode 100644
index 0000000..6e0f18d
--- /dev/null
+++ b/recipes-qt4/qt4/qt4-4.8.7/0036-qt-everywhere-opensource-src-4.8.7-gcc6.patch
@@ -0,0 +1,24 @@
+Avoid implicit conversions, which are now flagged by gcc6
+
+| api/qcoloroutput_p.h:74:60: error: shift expression '(1048575 << 20)' overflows [-fpermissive]
+| api/qcoloroutput_p.h:74:63: error: enumerator value for 'BackgroundMask' is not an integer constant
+|              BackgroundMask  = ((1 << BackgroundShift) - 1) << BackgroundShift
+
+
+Upstream-Status: Inappropriate [Frozen upstream]
+Signed-off-by: Khem Raj <raj.khem at gmail.com>
+
+diff -up qt-everywhere-opensource-src-4.8.7/src/xmlpatterns/api/qcoloroutput_p.h.than qt-everywhere-opensource-src-4.8.7/src/xmlpatterns/api/qcoloroutput_p.h
+--- qt-everywhere-opensource-src-4.8.7/src/xmlpatterns/api/qcoloroutput_p.h.than	2016-02-03 11:43:04.567757448 +0100
++++ qt-everywhere-opensource-src-4.8.7/src/xmlpatterns/api/qcoloroutput_p.h	2016-02-04 13:12:26.394350271 +0100
+@@ -70,8 +70,8 @@ namespace QPatternist
+             ForegroundShift = 10,
+             BackgroundShift = 20,
+             SpecialShift    = 20,
+-            ForegroundMask  = ((1 << ForegroundShift) - 1) << ForegroundShift,
+-            BackgroundMask  = ((1 << BackgroundShift) - 1) << BackgroundShift
++            ForegroundMask  = 0x1f << ForegroundShift,
++            BackgroundMask  = 0x7 << BackgroundShift
+         };
+ 
+     public:
diff --git a/recipes-qt4/qt4/qt4-4.8.7/gcc-6.patch b/recipes-qt4/qt4/qt4-4.8.7/gcc-6.patch
new file mode 100644
index 0000000..b0ce9cd
--- /dev/null
+++ b/recipes-qt4/qt4/qt4-4.8.7/gcc-6.patch
@@ -0,0 +1,19 @@
+Allow gcc v6 to build webkit. Without this, webkit isn't built
+when gcc v6 is used (silently but then python-pyqt fails to build).
+
+Upstream-Status: Inappropriate [no development on qt4 now]
+RP 2016/5/26
+
+Index: qt-everywhere-opensource-src-4.8.7/configure
+===================================================================
+--- qt-everywhere-opensource-src-4.8.7.orig/configure
++++ qt-everywhere-opensource-src-4.8.7/configure
+@@ -7756,7 +7756,7 @@ case "$XPLATFORM" in
+     *-g++*)
+ 	# Check gcc's version
+ 	case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
+-	    5*|4*|3.4*)
++	    6*|5*|4*|3.4*)
+ 		;;
+             3.3*)
+                 canBuildWebKit="no"
diff --git a/recipes-qt4/qt4/qt4-native.inc b/recipes-qt4/qt4/qt4-native.inc
index 58acac8..8310fcf 100644
--- a/recipes-qt4/qt4/qt4-native.inc
+++ b/recipes-qt4/qt4/qt4-native.inc
@@ -15,7 +15,10 @@ SRC_URI = "http://download.qt-project.org/official_releases/qt/4.8/${PV}/qt-ever
            file://0001-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \
            file://0002-qkbdtty_qws-fix-build-with-old-kernel-headers.patch \
            file://0003-webkit2-set-OUTPUT_DIR-value-if-empty.patch \
+	   file://0015-configure-add-nostrip-for-debug-packages.patch \
            file://0021-configure-make-qt4-native-work-with-long-building-pa.patch \
+	   file://0036-qt-everywhere-opensource-src-4.8.7-gcc6.patch \
+	   file://gcc-6.patch \
            file://g++.conf \
            file://linux.conf \
 	"
@@ -25,6 +28,9 @@ UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)/"
 
 S = "${WORKDIR}/qt-everywhere-opensource-src-${PV}"
 
+# workaround for class std::auto_ptr is deprecated with gcc-6
+CXXFLAGS += "-std=gnu++98 -Wno-deprecated"
+
 EXTRA_OECONF = "-prefix ${prefix} \
                 -bindir ${bindir} \
                 -libdir ${libdir} \
-- 
2.7.4




More information about the yocto mailing list