[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,®isterStore + 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