bug-gnulib
[Top][All Lists]
Advanced

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

Re: touch gets stuck for named pipes


From: Bruno Haible
Subject: Re: touch gets stuck for named pipes
Date: Fri, 10 Apr 2009 01:07:35 +0200
User-agent: KMail/1.9.9

Paolo Bonzini wrote:
> I'll make it say "guessing yes" and still put "yes" in the variable.

Thanks. Here is what the adaptation in gnulib could look like. But frankly,
I'll prefer to remove the module altogether: The bug it cures occurred only
on Sequents; the last time I heard about this kind of machine was in 1996.

So, any objections to removing this module?

Bruno


2009-04-09  Bruno Haible  <address@hidden>

        * m4/utime.m4 (AC_FUNC_UTIME_NULL): Add definition from newest unstable
        autoconf.
        * doc/posix-functions/utime.texi: Give more precisions.

--- doc/posix-functions/utime.texi.orig 2009-04-10 00:54:49.000000000 +0200
+++ doc/posix-functions/utime.texi      2009-04-10 00:53:46.000000000 +0200
@@ -9,8 +9,8 @@
 Portability problems fixed by Gnulib:
 @itemize
 @item
-On some old platforms, @code{utime (file, NULL)} fails to set the file's
-timestamp to the current time.
+On some old platforms (Sequent), @code{utime (file, NULL)} fails to set the
+file's timestamp to the current time.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- m4/utime.m4.orig    2009-04-10 00:54:49.000000000 +0200
+++ m4/utime.m4 2009-04-10 00:52:25.000000000 +0200
@@ -1,4 +1,4 @@
-# serial 8
+# serial 9
 
 dnl From Jim Meyering
 dnl Replace the utime function on systems that need it.
@@ -28,3 +28,34 @@
   AC_REQUIRE([gl_CHECK_TYPE_STRUCT_UTIMBUF])
   gl_FUNC_UTIMES_NULL
 ])
+
+# Use the definition of AC_FUNC_UTIME_NULL from autoconf 2.64 or newer.
+# Remove this macro when we can assume autoconf >= 2.64.
+m4_version_prereq([2.64], [], [
+AC_DEFUN([AC_FUNC_UTIME_NULL],
+[AC_CHECK_HEADERS_ONCE([utime.h])
+AC_CACHE_CHECK([whether utime accepts a null argument], 
[ac_cv_func_utime_null],
+[rm -f conftest.data; >conftest.data
+# Sequent interprets utime(file, 0) to mean use start of epoch.  Wrong.
+AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT
+              #ifdef HAVE_UTIME_H
+              # include <utime.h>
+              #endif],
+[[struct stat s, t;
+  return ! (stat ("conftest.data", &s) == 0
+           && utime ("conftest.data", 0) == 0
+           && stat ("conftest.data", &t) == 0
+           && t.st_mtime >= s.st_mtime
+           && t.st_mtime - s.st_mtime < 120);]])],
+             ac_cv_func_utime_null=yes,
+             ac_cv_func_utime_null=no,
+             ac_cv_func_utime_null='guessing yes')])
+if test "x$ac_cv_func_utime_null" != xno; then
+  ac_cv_func_utime_null=yes
+  AC_DEFINE([HAVE_UTIME_NULL], [1],
+           [Define to 1 if `utime(file, NULL)' sets file's timestamp to the
+            present.])
+fi
+rm -f conftest.data
+])
+])




reply via email to

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