+2025-10-31 Bruno Haible <bruno@clisp.org>
+
+ posix_spawn_file_actions_addclose: Ignore test failure on NetBSD 10.0.
+ Based on comments by Collin Funk and Grisha Levit.
+ * m4/posix_spawn.m4 (gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE): Revert
+ last change.
+ * tests/test-posix_spawn_file_actions_addclose.c (main): Treat NetBSD
+ like musl and Cygwin.
+ * doc/posix-functions/posix_spawn_file_actions_addclose.texi: Document
+ the large fd bug as "not fixed".
+
2025-10-31 Bruno Haible <bruno@clisp.org>
nstrftime, fprintftime: Return -1, not 0, in case of failure.
@item
This function does not reject a negative file descriptor on some platforms:
musl libc.
-@item
-This function does not reject an out-of-range file descriptor on some platforms:
-NetBSD.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
+@item
+This function does not reject an out-of-range file descriptor on some platforms:
+@c https://austingroupbugs.net/view.php?id=418
+musl libc, NetBSD, Cygwin.
@end itemize
# posix_spawn.m4
-# serial 26
+# serial 27
dnl Copyright (C) 2008-2025 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
else
dnl On musl libc, posix_spawn_file_actions_addclose succeeds even if the fd
dnl argument is negative.
- dnl On NetBSD 10.0, posix_spawn_file_actions_addclose succeeds even if the
- dnl fd argument is out of range.
AC_CACHE_CHECK([whether posix_spawn_file_actions_addclose works],
[gl_cv_func_posix_spawn_file_actions_addclose_works],
[AC_RUN_IFELSE(
return 1;
if (posix_spawn_file_actions_addclose (&actions, -5) == 0)
return 2;
- if (posix_spawn_file_actions_addclose (&actions, 10000000) == 0)
- return 3;
return 0;
}]])],
[gl_cv_func_posix_spawn_file_actions_addclose_works=yes],
[gl_cv_func_posix_spawn_file_actions_addclose_works=no],
- [# Guess no on musl libc and NetBSD and Solaris, yes otherwise.
+ [# Guess no on musl libc and Solaris, yes otherwise.
case "$host_os" in
*-musl* | midipix*) gl_cv_func_posix_spawn_file_actions_addclose_works="guessing no" ;;
- netbsd*) gl_cv_func_posix_spawn_file_actions_addclose_works="guessing no" ;;
solaris*) gl_cv_func_posix_spawn_file_actions_addclose_works="guessing no" ;;
# Guess no on native Windows.
mingw* | windows*) gl_cv_func_posix_spawn_file_actions_addclose_works="guessing no" ;;
errno = 0;
ASSERT (posix_spawn_file_actions_addclose (&actions, -1) == EBADF);
}
- /* This behaviour is not mandated by POSIX, but happens to pass on all
- platforms except musl libc and Cygwin. */
-#if !(defined MUSL_LIBC || defined __CYGWIN__)
+ /* This behaviour is not mandated by POSIX, following
+ <https://austingroupbugs.net/view.php?id=418>,
+ but happens to pass on all platforms except musl libc, NetBSD, Cygwin. */
+#if !(defined MUSL_LIBC || defined __NetBSD__ || defined __CYGWIN__)
{
int bad_fd = big_fd ();
errno = 0;