From f3c6a2280ea9aa73e8976c5bb3bc8dea2164b682 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 11 Oct 2008 23:39:55 +0200 Subject: [PATCH] Make sleep work on older versions of mingw. --- ChangeLog | 8 ++++++++ doc/posix-functions/sleep.texi | 4 ++++ m4/sleep.m4 | 13 +++++++++---- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9793c42e1e..49d6258e05 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-10-11 Bruno Haible + + Make sleep work on older versions of mingw. + * m4/sleep.m4 (gl_FUNC_SLEEP): Test whether 'sleep' is declared, not + only whether it exists. + * doc/posix-functions/sleep.texi: Mention the problem with older + versions of mingw. + 2008-10-11 Bruno Haible New module 'shutdown'. diff --git a/doc/posix-functions/sleep.texi b/doc/posix-functions/sleep.texi index eaf2196f95..092f875c21 100644 --- a/doc/posix-functions/sleep.texi +++ b/doc/posix-functions/sleep.texi @@ -11,6 +11,10 @@ Portability problems fixed by Gnulib: @item This function is missing on some platforms: mingw (2005 or newer). +@item +This function takes milliseconds as argument and returns @code{void} on some +platforms: +mingw (2005 and older). @end itemize Portability problems not fixed by Gnulib: diff --git a/m4/sleep.m4 b/m4/sleep.m4 index 2c9d75cd6f..474ba07ba9 100644 --- a/m4/sleep.m4 +++ b/m4/sleep.m4 @@ -1,5 +1,5 @@ -# sleep.m4 serial 1 -dnl Copyright (C) 2007 Free Software Foundation, Inc. +# sleep.m4 serial 2 +dnl Copyright (C) 2007-2008 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,8 +7,13 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_SLEEP], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) - AC_CHECK_FUNCS_ONCE([sleep]) - if test $ac_cv_func_sleep = no; then + 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 ]) + if test $ac_cv_have_decl_sleep != yes; then HAVE_SLEEP=0 AC_LIBOBJ([sleep]) gl_PREREQ_SLEEP -- 2.30.2