backport: re PR libstdc++/54847 (--enable-libstdcxx-time=yes doesn't find the function nanosleep() on darwin)

2013-04-15  Jack Howarth  <howarth@bromo.med.uc.edu>

	Backport from mainline

	2012-10-10  Jack Howarth  <howarth@bromo.med.uc.edu>
		    Jonathan Wakely  <jwakely.gcc@gmail.com>

	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
This commit is contained in:
Jack Howarth 2013-04-16 17:03:33 +00:00 committed by Mike Stump
parent 483d103326
commit a8abfe1fd6
3 changed files with 22 additions and 0 deletions

View File

@ -1,3 +1,15 @@
2013-04-15 Jack Howarth <howarth@bromo.med.uc.edu>
Backport from mainline
2012-10-10 Jack Howarth <howarth@bromo.med.uc.edu>
Jonathan Wakely <jwakely.gcc@gmail.com>
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 <ro@CeBiTec.Uni-Bielefeld.DE>
* testsuite/30_threads/condition_variable/members/53841.cc: Add

View File

@ -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])

View File

@ -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