From: Bruno Haible Date: Sat, 23 Mar 2019 20:39:37 +0000 (+0100) Subject: futimens: Document musl libc bug. X-Git-Tag: v1.0~5002 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=407a19c087da37cf00af778fe403626312230943;p=gnulib.git 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. --- diff --git a/ChangeLog b/ChangeLog index b6524815fc..47f21d6b69 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2019-03-23 Bruno Haible + + 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 Clarify that cross-compilation guesses are guesses. diff --git a/doc/posix-functions/futimens.texi b/doc/posix-functions/futimens.texi index 19fb84ea6b..1e1c76c177 100644 --- a/doc/posix-functions/futimens.texi +++ b/doc/posix-functions/futimens.texi @@ -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: diff --git a/m4/futimens.m4 b/m4/futimens.m4 index 3cfa4a1988..b5f4be93b1 100644 --- a/m4/futimens.m4 +++ b/m4/futimens.m4 @@ -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 ])