Re: g++/armel: std::future and std::exception_ptr are missing
On Sun, 2013-12-01 at 18:24 +0200, Eugene V. Lyubimkin wrote:
> 2013-11-16 15:05, Eugene V. Lyubimkin:
> > For some reason, on armel architecture exclusively , g++ has problems
> > compiling seemingly any program which uses std::future .
> std::future is actually defined in libstdc++'s headers only if:
> "#if defined(_GLIBCXX_HAS_GTHREADS) &&
> defined(_GLIBCXX_USE_C99_STDINT_TR1) && (ATOMIC_INT_LOCK_FREE > 1)"
> On armel porterbox, ATOMIC_INT_LOCK_FREE == 1, which according to the
> libstdc++ documentation means that, unlike every other Debian
> architecture, operations on atomic ints are not guaranteed to be
> lock-free there.
> I don't know is this a shortcoming in libstdc++
> configuration/implementation or armel doesn't provide atomic
> incrementing/decrementing facilities.
General atomic operations aren't available until version 6 of the ARM
architecture, armel also supports version 5 which only has an atomic
swap instruction; so I would guess libstdc++ is configured correctly.
armhf targets ARM architecture version 7.