X-Git-Url: https://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fsleep.m4;h=49197faf1a893faf3670af9ad5615b9095d3769a;hb=81e2fe40473d40b254dea9484525c343d896a439;hp=c59b383bf38ac8fc1a48589e0e606e40d20cd81a;hpb=6baa46639c17d7fba1d6aa1a3dd8ed536b7b2dc9;p=gnulib.git diff --git a/m4/sleep.m4 b/m4/sleep.m4 index c59b383bf..49197faf1 100644 --- a/m4/sleep.m4 +++ b/m4/sleep.m4 @@ -1,5 +1,5 @@ -# sleep.m4 serial 3 -dnl Copyright (C) 2007-2009 Free Software Foundation, Inc. +# sleep.m4 serial 7 +dnl Copyright (C) 2007-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -7,16 +7,16 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_SLEEP], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl We expect to see the declaration of sleep() in a header file. dnl Older versions of mingw have a sleep() function that is an alias to dnl _sleep() in MSVCRT. It has a different signature than POSIX sleep(): dnl it takes the number of milliseconds as argument and returns void. dnl mingw does not declare this function. - AC_CHECK_DECLS([sleep], , , [#include ]) + AC_CHECK_DECLS([sleep], , , [[#include ]]) AC_CHECK_FUNCS_ONCE([sleep]) if test $ac_cv_have_decl_sleep != yes; then HAVE_SLEEP=0 - AC_LIBOBJ([sleep]) else dnl Cygwin 1.5.x has a bug where sleep can't exceed 49.7 days. AC_CACHE_CHECK([for working sleep], [gl_cv_func_sleep_works], @@ -38,12 +38,25 @@ handle_alarm (int sig) signal (SIGALRM, handle_alarm); alarm (1); remaining = sleep (pentecost); - return !(pentecost - 10 < remaining && remaining <= pentecost);]])], + if (remaining > pentecost) + return 3; + if (remaining <= pentecost - 10) + return 4; + return 0; + ]])], [gl_cv_func_sleep_works=yes], [gl_cv_func_sleep_works=no], - [gl_cv_func_sleep_works="guessing no"])]) - if test "$gl_cv_func_sleep_works" != yes; then - REPLACE_SLEEP=1 - AC_LIBOBJ([sleep]) - fi + [case "$host_os" in + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_sleep_works="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_sleep_works="guessing no" ;; + esac + ])]) + case "$gl_cv_func_sleep_works" in + *yes) ;; + *) + REPLACE_SLEEP=1 + ;; + esac fi ])