summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2009-04-10 19:36:32 +0200
committerBruno Haible <bruno@clisp.org>2009-04-10 19:40:02 +0200
commitc43f1383457acf0c3b1675a38a57b5b12472cf9e (patch)
tree30557e0f0b3cb027765959dcd8d55f76b5571a70 /m4
parentcc96df30d2b27745dca763ae41940f8a1319be4c (diff)
downloadgnulib-c43f1383457acf0c3b1675a38a57b5b12472cf9e.tar.gz
Fix cross-compile guess for utime test.
Diffstat (limited to 'm4')
-rw-r--r--m4/utime.m433
1 files changed, 32 insertions, 1 deletions
diff --git a/m4/utime.m4 b/m4/utime.m4
index 26b5ea90a7..f090e7b048 100644
--- a/m4/utime.m4
+++ b/m4/utime.m4
@@ -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_DEFUN([gl_PREREQ_UTIME],
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
+])
+])