On Mon, Aug 24, 2015 at 1:13 PM, Martin Jansa <[email protected]> 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 <[email protected]> wrote: > >> This patch is a backport from upstream qt5 fixes building with clang >> from meta-clang >> >> Signed-off-by: Khem Raj <[email protected]> >> --- >> 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 <[email protected]> >> +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 <[email protected]> >> +--- >> + 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 >> [email protected] >> http://lists.openembedded.org/mailman/listinfo/openembedded-devel >> > -- > _______________________________________________ > Openembedded-devel mailing list > [email protected] > http://lists.openembedded.org/mailman/listinfo/openembedded-devel -- _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-devel
