[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