Import upstream version 1.27
[debian/tar] / m4 / sleep.m4
index 4a251dae12262aa790f619618379a32720e66e16..a27baa6d5b2c0e267a2090fdeb0cf935fbba5168 100644 (file)
@@ -1,5 +1,5 @@
-# sleep.m4 serial 4
-dnl Copyright (C) 2007-2011 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 <unistd.h>])
+  AC_CHECK_DECLS([sleep], , , [[#include <unistd.h>]])
   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],
@@ -45,10 +45,18 @@ handle_alarm (int sig)
     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
 ])