[oe] [meta-qt5][PATCH V2 1/4] qtbase: Fix build with clang
Khem Raj
raj.khem at gmail.com
Mon Aug 24 20:25:14 UTC 2015
On Mon, Aug 24, 2015 at 1:13 PM, Martin Jansa <martin.jansa at gmail.com> wrote:
> Is it needed for nativesdk-qtbase as well?
one can still use clang-native to compile native packages, as of now I
do not enable clang for native packages by default but its possible
and for consistency, it will be better to have them in both native and
target recipes
>
> On Mon, Aug 24, 2015 at 7:43 PM, Khem Raj <raj.khem at gmail.com> wrote:
>
>> This patch is a backport from upstream qt5 fixes building with clang
>> from meta-clang
>>
>> Signed-off-by: Khem Raj <raj.khem at gmail.com>
>> ---
>> recipes-qt/qt5/qtbase-native_git.bb | 1 +
>> .../qt5/qtbase/0015-Fix-build-with-clang-3.7.patch | 71
>> ++++++++++++++++++++++
>> recipes-qt/qt5/qtbase_git.bb | 1 +
>> 3 files changed, 73 insertions(+)
>> create mode 100644
>> recipes-qt/qt5/qtbase/0015-Fix-build-with-clang-3.7.patch
>>
>> diff --git a/recipes-qt/qt5/qtbase-native_git.bb b/recipes-qt/qt5/
>> qtbase-native_git.bb
>> index ebd7280..1d09a19 100644
>> --- a/recipes-qt/qt5/qtbase-native_git.bb
>> +++ b/recipes-qt/qt5/qtbase-native_git.bb
>> @@ -24,6 +24,7 @@ SRC_URI += "\
>>
>> file://0005-qeglplatformintegration-Undefine-CursorShape-from-X..patch \
>>
>> file://0006-configure-bump-path-length-from-256-to-512-character.patch \
>> file://0008-QOpenGLPaintDevice-sub-area-support.patch \
>> + file://0015-Fix-build-with-clang-3.7.patch \
>> "
>>
>> # common for qtbase-native and nativesdk-qtbase
>> diff --git a/recipes-qt/qt5/qtbase/0015-Fix-build-with-clang-3.7.patch
>> b/recipes-qt/qt5/qtbase/0015-Fix-build-with-clang-3.7.patch
>> new file mode 100644
>> index 0000000..181d63c
>> --- /dev/null
>> +++ b/recipes-qt/qt5/qtbase/0015-Fix-build-with-clang-3.7.patch
>> @@ -0,0 +1,71 @@
>> +This is backport of https://codereview.qt-project.org/#/c/121545/
>> +
>> +From 6a6acc496728ce96198d27f9ddd44c2367758d42 Mon Sep 17 00:00:00 2001
>> +From: Khem Raj <raj.khem at gmail.com>
>> +Date: Sun, 23 Aug 2015 15:19:41 -0700
>> +Subject: [PATCH] Fix build with clang 3.7
>> +
>> +Nullable is a language extension in clang 3.7 (indicating whether or
>> +not a pointer can be null).
>> +http://clang.llvm.org/docs/AttributeReference.html#nullable
>> +Using it as a class name breaks building with this compiler
>> +
>> +/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/work/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/qtbase/5.4.2+gitAUTOINC+2cb17c1fb9-r0/git/src/tools/qlalr/lalr.cpp:241:1:
>> error: declaration of anonymous
>> + struct must be a definition
>> +struct _Nullable: public std::unary_function<Name, bool>
>> +^
>> +/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/work/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/qtbase/5.4.2+gitAUTOINC+2cb17c1fb9-r0/git/src/tools/qlalr/lalr.cpp:241:56:
>> error: expected unqualified-id
>> +struct _Nullable: public std::unary_function<Name, bool>
>> + ^
>> +/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/work/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/qtbase/5.4.2+gitAUTOINC+2cb17c1fb9-r0/git/src/tools/qlalr/lalr.cpp:303:98:
>> error: expected expression
>> + NameList::iterator nn = std::find_if (rule->rhs.begin (),
>> rule->rhs.end (), std::not1 (_Nullable (this)));
>> +
>> ^
>> +/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/work/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/qtbase/5.4.2+gitAUTOINC+2cb17c1fb9-r0/git/src/tools/qlalr/lalr.cpp:638:107:
>> error: expected expression
>> + NameList::iterator first_not_nullable = std::find_if
>> (dot, rule->rhs.end (), std::not1 (_Nullable (this)));
>> +
>> ^
>> +4 errors generated.
>> +
>> +Signed-off-by: Khem Raj <raj.khem at gmail.com>
>> +---
>> + src/tools/qlalr/lalr.cpp | 8 ++++----
>> + 1 file changed, 4 insertions(+), 4 deletions(-)
>> +
>> +diff --git a/src/tools/qlalr/lalr.cpp b/src/tools/qlalr/lalr.cpp
>> +index be1df7d..55ef056 100644
>> +--- a/src/tools/qlalr/lalr.cpp
>> ++++ b/src/tools/qlalr/lalr.cpp
>> +@@ -238,11 +238,11 @@ void Grammar::buildExtendedGrammar ()
>> + non_terminals.insert (accept_symbol);
>> + }
>> +
>> +-struct _Nullable: public std::unary_function<Name, bool>
>> ++struct Nullable: public std::unary_function<Name, bool>
>> + {
>> + Automaton *_M_automaton;
>> +
>> +- _Nullable (Automaton *aut):
>> ++ Nullable (Automaton *aut):
>> + _M_automaton (aut) {}
>> +
>> + bool operator () (Name name) const
>> +@@ -300,7 +300,7 @@ void Automaton::buildNullables ()
>> +
>> + for (RulePointer rule = _M_grammar->rules.begin (); rule !=
>> _M_grammar->rules.end (); ++rule)
>> + {
>> +- NameList::iterator nn = std::find_if (rule->rhs.begin (),
>> rule->rhs.end (), std::not1 (_Nullable (this)));
>> ++ NameList::iterator nn = std::find_if (rule->rhs.begin (),
>> rule->rhs.end (), std::not1 (Nullable (this)));
>> +
>> + if (nn == rule->rhs.end ())
>> + changed |= nullables.insert (rule->lhs).second;
>> +@@ -635,7 +635,7 @@ void Automaton::buildIncludesDigraph ()
>> + if (! _M_grammar->isNonTerminal (*A))
>> + continue;
>> +
>> +- NameList::iterator first_not_nullable = std::find_if
>> (dot, rule->rhs.end (), std::not1 (_Nullable (this)));
>> ++ NameList::iterator first_not_nullable = std::find_if
>> (dot, rule->rhs.end (), std::not1 (Nullable (this)));
>> + if (first_not_nullable != rule->rhs.end ())
>> + continue;
>> +
>> +--
>> +2.1.4
>> +
>> diff --git a/recipes-qt/qt5/qtbase_git.bb b/recipes-qt/qt5/qtbase_git.bb
>> index f472c98..5603fb2 100644
>> --- a/recipes-qt/qt5/qtbase_git.bb
>> +++ b/recipes-qt/qt5/qtbase_git.bb
>> @@ -18,6 +18,7 @@ SRC_URI += "\
>>
>> file://0005-qeglplatformintegration-Undefine-CursorShape-from-X..patch \
>>
>> file://0006-configure-bump-path-length-from-256-to-512-character.patch \
>> file://0008-QOpenGLPaintDevice-sub-area-support.patch \
>> + file://0015-Fix-build-with-clang-3.7.patch \
>> "
>>
>> # specific for target qtbase
>> --
>> 2.1.4
>>
>> --
>> _______________________________________________
>> Openembedded-devel mailing list
>> Openembedded-devel at lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
>>
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
More information about the Openembedded-devel
mailing list