On 06/07/15 13:55 +0100, Mike Crowe wrote:
diff --git a/libgcc/gthr-posix.h b/libgcc/gthr-posix.h
index fb59816..0e01866 100644
--- a/libgcc/gthr-posix.h
+++ b/libgcc/gthr-posix.h
@@ -33,6 +33,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If
not, see
#define __GTHREADS_CXX0X 1
#include <pthread.h>
+#include <time.h>
#if ((defined(_LIBOBJC) || defined(_LIBOBJC_WEAK)) \
|| !defined(_GTHREAD_USE_MUTEX_TIMEDLOCK))
@@ -44,6 +45,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If
not, see
# endif
#endif
+
+#if defined(_GLIBCXX_USE_PTHREAD_COND_TIMEDWAITONCLOCK_NP)
+# define _GTHREAD_USE_COND_TIMEDWAITONCLOCK 1
+#endif
This isn't correct, because it's possible to include <gthr.h> before
including any C++ Standard Library header, so the _GLIBCXX_ macro
defined in libstdc++'s c++config.h will not have been defined.
It might make sense to just do this internally in libstdc++ and not
involve gthr-posix.h at all, this is what we do for pthread_rwlock_t
usage in <shared_mutex> so you might want to follow that model.
How portable is pthread_cond_timedwaitonclock_np? Is it unique to
glibc or do any other posix systems provide it?