From c98d60923b84bcd285644cecaed1fa0455747a2f Mon Sep 17 00:00:00 2001 From: Ken Werner Date: Fri, 27 Apr 2012 12:59:17 +0200 Subject: Qt 4.8 GCC 4.7 fixes This change introduces two new patches to Qt 4.8. One prevents the build system from using the -fuse-ld=gold GCC flag as this isn't upstream and therefore not supported by many toolchains out there. The second patch fixes a compile time error when using toolchains based on GCC 4.7. Signed-off-by: Ken Werner Signed-off-by: Richard Purdie --- meta/recipes-qt/qt4/qt-4.8.1.inc | 2 ++ .../qt4/qt-4.8.1/disable-fuse-gold-flag.patch | 26 ++++++++++++++++++ meta/recipes-qt/qt4/qt-4.8.1/gcc47-fix.patch | 31 ++++++++++++++++++++++ meta/recipes-qt/qt4/qt4-embedded.inc | 2 +- 4 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-qt/qt4/qt-4.8.1/disable-fuse-gold-flag.patch create mode 100644 meta/recipes-qt/qt4/qt-4.8.1/gcc47-fix.patch (limited to 'meta/recipes-qt') diff --git a/meta/recipes-qt/qt4/qt-4.8.1.inc b/meta/recipes-qt/qt4/qt-4.8.1.inc index cd78401989..b42ca0106e 100644 --- a/meta/recipes-qt/qt4/qt-4.8.1.inc +++ b/meta/recipes-qt/qt4/qt-4.8.1.inc @@ -20,6 +20,8 @@ SRC_URI = "http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-${PV}. file://pulseaudio-config.patch \ file://g++.conf \ file://linux.conf \ + file://gcc47-fix.patch \ + file://disable-fuse-gold-flag.patch \ " SRC_URI[md5sum] = "7960ba8e18ca31f0c6e4895a312f92ff" diff --git a/meta/recipes-qt/qt4/qt-4.8.1/disable-fuse-gold-flag.patch b/meta/recipes-qt/qt4/qt-4.8.1/disable-fuse-gold-flag.patch new file mode 100644 index 0000000000..d49d7bcff2 --- /dev/null +++ b/meta/recipes-qt/qt4/qt-4.8.1/disable-fuse-gold-flag.patch @@ -0,0 +1,26 @@ +Disable the -fuse-ld=gold flag. This option is a Debian/Ubuntu specific +extension to the g++ and causes upstream GCC to throw an error. + +Index: qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/common.pri +=================================================================== +--- qt-everywhere-opensource-src-4.8.0.orig/src/3rdparty/webkit/Source/common.pri ++++ qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/common.pri +@@ -3,12 +3,12 @@ + contains(JAVASCRIPTCORE_JIT,yes): DEFINES+=ENABLE_JIT=1 + contains(JAVASCRIPTCORE_JIT,no): DEFINES+=ENABLE_JIT=0 + +-linux-g++ { +-isEmpty($$(SBOX_DPKG_INST_ARCH)):exists(/usr/bin/ld.gold) { +- message(Using gold linker) +- QMAKE_LFLAGS+=-fuse-ld=gold +-} +-} ++#linux-g++ { ++#isEmpty($$(SBOX_DPKG_INST_ARCH)):exists(/usr/bin/ld.gold) { ++# message(Using gold linker) ++# QMAKE_LFLAGS+=-fuse-ld=gold ++#} ++#} + + # We use this flag on production branches + # See https://bugs.webkit.org/show_bug.cgi?id=60824 diff --git a/meta/recipes-qt/qt4/qt-4.8.1/gcc47-fix.patch b/meta/recipes-qt/qt4/qt-4.8.1/gcc47-fix.patch new file mode 100644 index 0000000000..8252817af1 --- /dev/null +++ b/meta/recipes-qt/qt4/qt-4.8.1/gcc47-fix.patch @@ -0,0 +1,31 @@ +Fix compile error when using toolchains based on GCC 4.7. + +Index: qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalObject.h +=================================================================== +--- qt-everywhere-opensource-src-4.8.0.orig/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalObject.h ++++ qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalObject.h +@@ -57,9 +57,7 @@ namespace JSC { + + class JSGlobalObject : public JSVariableObject { + protected: +- using JSVariableObject::JSVariableObjectData; +- +- struct JSGlobalObjectData : public JSVariableObjectData { ++ struct JSGlobalObjectData : public JSVariableObject::JSVariableObjectData { + // We use an explicit destructor function pointer instead of a + // virtual destructor because we want to avoid adding a vtable + // pointer to this struct. Adding a vtable pointer would force the +Index: qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSStaticScopeObject.h +=================================================================== +--- qt-everywhere-opensource-src-4.8.0.orig/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSStaticScopeObject.h ++++ qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSStaticScopeObject.h +@@ -32,8 +32,7 @@ namespace JSC{ + + class JSStaticScopeObject : public JSVariableObject { + protected: +- using JSVariableObject::JSVariableObjectData; +- struct JSStaticScopeObjectData : public JSVariableObjectData { ++ struct JSStaticScopeObjectData : public JSVariableObjectData::JSVariableObjectData { + JSStaticScopeObjectData() + : JSVariableObjectData(&symbolTable, ®isterStore + 1) + { diff --git a/meta/recipes-qt/qt4/qt4-embedded.inc b/meta/recipes-qt/qt4/qt4-embedded.inc index 8c15352ff9..291e62ad3f 100644 --- a/meta/recipes-qt/qt4/qt4-embedded.inc +++ b/meta/recipes-qt/qt4/qt4-embedded.inc @@ -2,7 +2,7 @@ DESCRIPTION = "Qt is a versatile cross-platform application framework -- this is SECTION = "libs" HOMEPAGE = "http://qt.nokia.com" DEPENDS += "directfb tslib" -INC_PR = "r43" +INC_PR = "r44" QT_BASE_LIB ?= "libqt-embedded" -- cgit 1.2.3-korg