From: Bruno Haible Date: Sat, 11 Oct 2008 21:39:55 +0000 (+0200) Subject: Make sleep work on older versions of mingw. X-Git-Tag: v0.1~6856 X-Git-Url: http://erislabs.org.uk/gitweb/?a=commitdiff_plain;h=f3c6a2280ea9aa73e8976c5bb3bc8dea2164b682;p=gnulib.git Make sleep work on older versions of mingw. --- diff --git a/ChangeLog b/ChangeLog index 9793c42e1..49d6258e0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 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'. * modules/shutdown: New file. * lib/sys_socket.in.h (shutdown): New declaration. diff --git a/doc/posix-functions/sleep.texi b/doc/posix-functions/sleep.texi index eaf2196f9..092f875c2 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 2c9d75cd6..474ba07ba 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