From: Jack Howarth Date: Tue, 16 Apr 2013 17:03:33 +0000 (+0000) Subject: backport: re PR libstdc++/54847 (--enable-libstdcxx-time=yes doesn't find the functio... X-Git-Tag: releases/gcc-4.7.4~717 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a8abfe1fd618182fbcc1436b98ddfe2b734bf922;p=thirdparty%2Fgcc.git backport: re PR libstdc++/54847 (--enable-libstdcxx-time=yes doesn't find the function nanosleep() on darwin) 2013-04-15 Jack Howarth Backport from mainline 2012-10-10 Jack Howarth Jonathan Wakely PR libstdc++/54847 * config/os/bsd/darwin/os_defines.h: Define _GLIBCXX_USE_NANOSLEEP and _GLIBCXX_USE_SCHED_YIELD. * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Add comment. From-SVN: r198003 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index f1d01bd0282b..ca0360049e55 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,15 @@ +2013-04-15 Jack Howarth + + Backport from mainline + + 2012-10-10 Jack Howarth + Jonathan Wakely + + PR libstdc++/54847 + * config/os/bsd/darwin/os_defines.h: Define _GLIBCXX_USE_NANOSLEEP + and _GLIBCXX_USE_SCHED_YIELD. + * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Add comment. + 2013-04-15 Rainer Orth * testsuite/30_threads/condition_variable/members/53841.cc: Add diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index 319e32784ff6..87d3b8a06c28 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -1132,6 +1132,11 @@ dnl --enable-libstdcxx-time=no dnl --disable-libstdcxx-time dnl disables the checks completely dnl +dnl N.B. Darwin provides nanosleep but doesn't support the whole POSIX +dnl Timers option, so doesn't define _POSIX_TIMERS. Because the test +dnl below fails Darwin unconditionally defines _GLIBCXX_USE_NANOSLEEP in +dnl os_defines.h and also defines _GLIBCXX_USE_SCHED_YIELD. +dnl AC_DEFUN([GLIBCXX_ENABLE_LIBSTDCXX_TIME], [ AC_MSG_CHECKING([for clock_gettime, nanosleep and sched_yield]) diff --git a/libstdc++-v3/config/os/bsd/darwin/os_defines.h b/libstdc++-v3/config/os/bsd/darwin/os_defines.h index 421478d82d46..be4aa149e216 100644 --- a/libstdc++-v3/config/os/bsd/darwin/os_defines.h +++ b/libstdc++-v3/config/os/bsd/darwin/os_defines.h @@ -42,4 +42,9 @@ // Static initializer macro is buggy in darwin, see libstdc++/51906 #define _GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC +// Configure checks for nanosleep fail on Darwin, but nanosleep and +// sched_yield are always available, so use them. +#define _GLIBCXX_USE_NANOSLEEP 1 +#define _GLIBCXX_USE_SCHED_YIELD 1 + #endif