[oe] nativesdk-qtbase 5.9.2 C++11 errors with gcc 6.3?
Patrick Ohly
patrick.ohly at intel.com
Wed Jan 17 11:20:53 UTC 2018
On Wed, 2018-01-17 at 12:09 +0100, Patrick Ohly wrote:
> On Tue, 2017-10-03 at 19:45 -0400, Denys Dmytriyenko wrote:
> > Martin, Khem,
> >
> > Have you tried building Qt 5.9 with gcc 6.3 from oe-core? I'm
> > seeing
> > bunch of
> > what seems to be C++11 related errors during do_configure of
> > nativesdk-qtbase.
> > Target qtbase builds fine and switching to gcc 7.2 seems to resolve
> > it as well.
> >
> > Any ideas or pointers? Thanks!
> >
> >
> > Errors are like these:
> >
> > In file included from
> > ../include/QtCore/5.9.2/QtCore/private/qnumeric_p.h:1:0,
> > from /OE/master/build/tmp-glibc/work/x86_64-
> > nativesdk-oe-linux/nativesdk-qtbase/5.9.2+gitAUTOINC+73573fce29-
> > r0/git/src/corelib/tools/qarraydata.cpp:42:
> > ../include/QtCore/5.9.2/QtCore/private/../../../../../../git/src/co
> > re
> > lib/global/qnumeric_p.h: In function 'bool
> > qnumeric_std_wrapper::__builtin_isnan(double)':
> > ../include/QtCore/5.9.2/QtCore/private/../../../../../../git/src/co
> > re
> > lib/global/qnumeric_p.h:104:45: error: '__builtin_isnan' is not a
> > member of 'std'
> > static inline bool isnan(double d) { return std::isnan(d); }
>
> I'm getting the same error when building qemu 2.8.0 for intel-corei7-
> 64
> with gcc 6.3.0.
>
> The reason seems to be that somewhere there's a
> #define isnan __builtin_isnan
> which doesn't work in C++ because std::__builtin_isnan does not
> exist.
>
> I'm still looking for the define... if someone has suggestions, I'm
> all ears.
Seems to be from /usr/include/math.h, which gets included by the
corresponding C++ header /usr/include/c++/6.3.0/cmath.
C++ explicitly states that cmath exposes functionality of math.h inside
the std namespace (https://stackoverflow.com/questions/32606023/when-us
ing-c-headers-in-c-should-we-use-functions-from-std-or-the-global-na),
so the QEMU code is correct.
To me this is starting to look like a bug in the toolchain.
--
Best Regards, Patrick Ohly
The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.
More information about the Openembedded-devel
mailing list