X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=m4%2Fsleep.m4;h=a27baa6d5b2c0e267a2090fdeb0cf935fbba5168;hb=daa269958ad8d50ef8154ccb65e58acaf7a6dd99;hp=a5ec655201ebbddd8353e70df6564576dbc4f197;hpb=22f1eb8bc17e5be72dd23d42d6aaa60196ac22e6;p=debian%2Ftar diff --git a/m4/sleep.m4 b/m4/sleep.m4 index a5ec6552..a27baa6d 100644 --- a/m4/sleep.m4 +++ b/m4/sleep.m4 @@ -1,5 +1,5 @@ -# sleep.m4 serial 3 -dnl Copyright (C) 2007-2010 Free Software Foundation, Inc. +# sleep.m4 serial 7 +dnl Copyright (C) 2007-2013 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 ])