bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

sleep() on older mingw


From: Bruno Haible
Subject: sleep() on older mingw
Date: Sat, 11 Oct 2008 23:44:39 +0200
User-agent: KMail/1.5.4

On older mingw installations, libcoldnames.a contains a sleep() function that
is incompatible with POSIX:
  - it takes milliseconds, not seconds, as argument,
  - it returns 'void', not 'int'.

Unfortunately, the gnulib module 'sleep' did not recognize this function as
being unusable. This fixes it.


2008-10-11  Bruno Haible  <address@hidden>

        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.

*** m4/sleep.m4.orig    2008-10-11 23:38:05.000000000 +0200
--- m4/sleep.m4 2008-10-11 23:37:54.000000000 +0200
***************
*** 1,5 ****
! # sleep.m4 serial 1
! dnl Copyright (C) 2007 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.
--- 1,5 ----
! # 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,14 ****
  AC_DEFUN([gl_FUNC_SLEEP],
  [
    AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
!   AC_CHECK_FUNCS_ONCE([sleep])
!   if test $ac_cv_func_sleep = no; then
      HAVE_SLEEP=0
      AC_LIBOBJ([sleep])
      gl_PREREQ_SLEEP
--- 7,19 ----
  AC_DEFUN([gl_FUNC_SLEEP],
  [
    AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
!   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>])
!   if test $ac_cv_have_decl_sleep != yes; then
      HAVE_SLEEP=0
      AC_LIBOBJ([sleep])
      gl_PREREQ_SLEEP
*** doc/posix-functions/sleep.texi.orig 2008-10-11 23:38:05.000000000 +0200
--- doc/posix-functions/sleep.texi      2008-10-11 23:36:46.000000000 +0200
***************
*** 11,16 ****
--- 11,20 ----
  @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:





reply via email to

[Prev in Thread] Current Thread [Next in Thread]