qt4: fix qt4-native build failure on SLED-11

This issue is that with C++ compiler process an old version of kernel
header file, coincidently that file has a variable named 'new':

* 'embedded/qkbdtty_qws.cpp' include 'linux/vt.h';
* '/usr/include/linux/vt.h' has below code on SLED-11.x:
    + unsigned int new;

On mostly hosts it has been changed to: new -> newev.

[YOCTO #2845]

(From OE-Core rev: bb4b71552da0d1f4396955f35db5819f88a7d2ae)

Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Wenzong Fan 2012-08-02 09:43:02 +08:00 committed by Richard Purdie
parent 438df0f1d0
commit 1b138d167c
2 changed files with 41 additions and 2 deletions

View File

@ -0,0 +1,37 @@
Upstream-Status: Pending
This issue is that with C++ compiler process an old version of kernel
header file, coincidently that file has a variable named 'new':
* 'embedded/qkbdtty_qws.cpp' include 'linux/vt.h';
* '/usr/include/linux/vt.h' has below code on SLED-11.x:
+ unsigned int new;
On mostly hosts it has been changed to: new -> newev.
Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
=======================================
diff --git a/src/gui/embedded/qkbdtty_qws.cpp b/src/gui/embedded/qkbdtty_qws.cpp
--- a/src/gui/embedded/qkbdtty_qws.cpp 2012-07-27 13:16:58.420198350 +0800
+++ b/src/gui/embedded/qkbdtty_qws.cpp 2012-07-27 13:24:43.924191127 +0800
@@ -54,8 +54,20 @@
#if defined Q_OS_LINUX
# include <linux/kd.h>
+
+/* Workaround kernel headers using "new" as variable name. The problem
+ is specific to SLED-11, other distros use "newev" rather than "new" */
+#ifdef __cplusplus
+#warning "workaround kernel headers using new as variable name on SLED 11"
+#define new newev
+#endif
+
# include <linux/vt.h> //TODO: move vt handling somewhere else (QLinuxFbScreen?)
+#ifdef __cplusplus
+#undef new
+#endif
+
# include "qscreen_qws.h"
# include "qwindowsystem_qws.h"
# include "qapplication.h"

View File

@ -9,14 +9,16 @@ LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=fbc093901857fcd118f065f900982c24 \
file://LICENSE.GPL3;md5=babc5b6b77441da277f5c06b2e547720 \
file://LGPL_EXCEPTION.txt;md5=411080a56ff917a5a1aa08c98acae354"
INC_PR = "r14"
INC_PR = "r15"
inherit native
SRC_URI = "http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-${PV}.tar.gz \
file://qt-config.patch \
file://g++.conf \
file://linux.conf"
file://linux.conf \
file://fix_qkbdtty_qws.patch \
"
S = "${WORKDIR}/qt-everywhere-opensource-src-${PV}"
EXTRA_OECONF = "-prefix ${prefix} \