[OE-core] [PATCH] Qt 4.8 GCC 4.7 fixes

Saul Wold sgw at linux.intel.com
Tue May 1 18:55:08 UTC 2012


On 05/01/2012 11:53 AM, Saul Wold wrote:
> On 04/27/2012 03:59 AM, Ken Werner wrote:
>> 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<ken.werner at linaro.org>
>> ---
>> 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 deletions(-)
>> 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
>>
>> diff --git a/meta/recipes-qt/qt4/qt-4.8.1.inc
>> b/meta/recipes-qt/qt4/qt-4.8.1.inc
>> index cd78401..b42ca01 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 0000000..d49d7bc
>> --- /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 0000000..8252817
>> --- /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,&registerStore + 1)
>> + {
>> diff --git a/meta/recipes-qt/qt4/qt4-embedded.inc
>> b/meta/recipes-qt/qt4/qt4-embedded.inc
>> index 8c15352..291e62a 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"
>>
>
> Merged into OE-Core, but still needs updated patch headers please
>
Never mind, I missed RP's fix for the patch headers.

Sau!

> Thanks
> Sau!
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>




More information about the Openembedded-core mailing list