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

Saul Wold sgw at linux.intel.com
Tue May 1 18:53:49 UTC 2012


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

Thanks
	Sau!




More information about the Openembedded-core mailing list