]> Savannah Git Hosting - gnulib.git/commitdiff
futimens: Document musl libc bug.
authorBruno Haible <bruno@clisp.org>
Sat, 23 Mar 2019 20:39:37 +0000 (21:39 +0100)
committerBruno Haible <bruno@clisp.org>
Sat, 23 Mar 2019 20:40:21 +0000 (21:40 +0100)
* doc/posix-functions/futimens.texi: Mention the bug.
* m4/futimens.m4 (gl_FUNC_FUTIMENS): Require AC_CANONICAL_HOST. When
cross-compiling, guess no on glibc and musl systems.

ChangeLog
doc/posix-functions/futimens.texi
m4/futimens.m4

index b6524815fca31334b1dcc5fee56183a40fbf31f2..47f21d6b6928bda8f935edef5253597345b35fdd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2019-03-23  Bruno Haible  <bruno@clisp.org>
+
+       futimens: Document musl libc bug.
+       * doc/posix-functions/futimens.texi: Mention the bug.
+       * m4/futimens.m4 (gl_FUNC_FUTIMENS): Require AC_CANONICAL_HOST. When
+       cross-compiling, guess no on glibc and musl systems.
+
 2019-03-23  Bruno Haible  <bruno@clisp.org>
 
        Clarify that cross-compilation guesses are guesses.
index 19fb84ea6b4548468376490ad599b36fbf9d8f24..1e1c76c177177c90047a8254139d6439224ef3cb 100644 (file)
@@ -29,7 +29,7 @@ Linux kernel 2.6.32, Solaris 11.1.
 @item
 Passing @code{AT_FDCWD} as the fd argument does not properly fail with
 @code{EBADF} on some systems:
-glibc 2.11, Solaris 11.
+glibc 2.11, musl libc, Solaris 11.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index 3cfa4a198826dd2004e3ae1775dbda7174529bc1..b5f4be93b131aab3ba45e761cc1c92ed7181c6bb 100644 (file)
@@ -1,4 +1,4 @@
-# serial 7
+# serial 8
 # See if we need to provide futimens replacement.
 
 dnl Copyright (C) 2009-2019 Free Software Foundation, Inc.
@@ -11,6 +11,7 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_FUNC_FUTIMENS],
 [
   AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
   AC_CHECK_FUNCS_ONCE([futimens])
   if test $ac_cv_func_futimens = no; then
@@ -44,10 +45,21 @@ AC_DEFUN([gl_FUNC_FUTIMENS],
       ]])],
          [gl_cv_func_futimens_works=yes],
          [gl_cv_func_futimens_works=no],
-         [gl_cv_func_futimens_works="guessing yes"])
+         [case "$host_os" in
+                           # Guess no on glibc systems.
+            *-gnu* | gnu*) gl_cv_func_futimens_works="guessing no" ;;
+                           # Guess no on musl systems.
+            *-musl*)       gl_cv_func_futimens_works="guessing no" ;;
+                           # Guess yes otherwise.
+            *)             gl_cv_func_futimens_works="guessing yes" ;;
+          esac
+         ])
       rm -f conftest.file])
-    if test "$gl_cv_func_futimens_works" = no; then
-      REPLACE_FUTIMENS=1
-    fi
+    case "$gl_cv_func_futimens_works" in
+      *yes) ;;
+      *)
+        REPLACE_FUTIMENS=1
+        ;;
+    esac
   fi
 ])