[Buildroot] [autobuild.buildroot.net] Build results for 2017-06-05

Jörg Krause joerg.krause at embedded.rocks
Tue Jun 6 19:16:31 UTC 2017


On Tue, 2017-06-06 at 08:31 +0200, Thomas Petazzoni wrote:
> Hello,

Build statistics for 2017-06-05
================================

     powerpc |                libupnpp-0.15.2 | NOK | http://autobuild.buildroot.net/results/0bf84f61a72a65a75c5fd0a787680f483cfead26 |     
     powerpc |                libupnpp-0.15.2 | NOK | http://autobuild.buildroot.net/results/2569d7b5049d0bd1da8316d8ac5997d4e68c08ae |     
     powerpc |                libupnpp-0.15.2 | NOK | http://autobuild.buildroot.net/results/ff512f5532011a513b5551428152e600b04a007d |     

"""
error: 'yield' is not a member of 'std::this_thread'
"""

Before version 0.15.2 libupnpp used sched_yield() which was replaced by
std::this_thread::yield(). Looking at the thread header file for the
PowerPC toolchain shows that yield() is only enabled if
`_GLIBCXX_USE_SCHED_YIELD` is defined. This macro is only defined if
GCC was built with `--enable-libstdcxx-time`. For GCC 4.7 and below
this option defaults to no, which means sched_yield() is not enabled
though it is available.

"""
#ifdef _GLIBCXX_USE_SCHED_YIELD
    /// yield
    inline void
    yield() noexcept
    { __gthread_yield(); }
#endif
"""

"""
static inline int
__gthread_yield (void)
{
  return __gthrw_(sched_yield) ();
}
"""

This issue was discussed on stackoverflow [1]. The issue is resolved in
GCC 4.9 which automatically enables sched_yield() on platforms that are
known to support them.

Therefore, I would suggest to add a dependency on GCC 4.9 for this
package.

[1] https://stackoverflow.com/a/12961816

Best regards,
Jörg Krause



More information about the buildroot mailing list