On 01/17/2015 03:58 PM, Jonathan Wakely wrote:
My fault, this additional chunk is needed alongside the patch I sent
earlier:
--- a/libstdc++-v3/include/bits/atomic_futex.h
+++ b/libstdc++-v3/include/bits/atomic_futex.h
@@ -35,7 +35,7 @@
#include <bits/c++config.h>
#include <atomic>
#include <chrono>
-#if !defined(_GLIBCXX_HAVE_LINUX_FUTEX)
+#if ! (defined(_GLIBCXX_HAVE_LINUX_FUTEX) && ATOMIC_INT_LOCK_FREE > 1)
#include <mutex>
#include <condition_variable>
#endif
What I sent earlier causes your target to use std::mutex and
std::condition_variable, but without the bit above the headers aren't
included.
Still no joy:
/scratch/sandra/arm-fsf2/src/gcc-mainline/libstdc++-v3/src/c++11/futex.cc:45:3:
error: '__atomic_futex_unsigned_base' has not been declared
__atomic_futex_unsigned_base::_M_futex_wait_until(unsigned *__addr,
^
/scratch/sandra/arm-fsf2/src/gcc-mainline/libstdc++-v3/src/c++11/futex.cc:88:3:
error: '__atomic_futex_unsigned_base' has not been declared
__atomic_futex_unsigned_base::_M_futex_notify_all(unsigned* __addr)
^
Maybe the patch(es) causing all these problems should be reverted
until the breakage is tracked down and fixed and regression-tested on
a variety of targets? It's not really blocking me at the moment, but
it seems unfortunate that trunk is so unstable as we're entering Stage
4.....
Torvald, if the extra change above doesn't fix it (although it should
do) then maybe it should be reverted until it can be tested more
widely.
-Sandra