From 66c3c07e0a5738b10daf39a3bffe1ad7169c8c9c Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 23 Mar 2019 21:45:54 +0100 Subject: [PATCH] posix_spawn_file_actions_*: Document musl libc bugs. * doc/posix-functions/posix_spawn_file_actions_addclose.texi: Mention the bug. * doc/posix-functions/posix_spawn_file_actions_adddup2.texi: Likewise. * doc/posix-functions/posix_spawn_file_actions_addopen.texi: Likewise. * m4/posix_spawn.m4 (gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE): When cross-compiling to a musl system, guess no. (gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2): Likewise. (gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN): Likewise. --- ChangeLog | 12 ++++++++++ .../posix_spawn_file_actions_addclose.texi | 2 +- .../posix_spawn_file_actions_adddup2.texi | 2 +- .../posix_spawn_file_actions_addopen.texi | 2 +- m4/posix_spawn.m4 | 23 +++++++++++-------- 5 files changed, 28 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index 47f21d6b69..5a9243bde0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2019-03-23 Bruno Haible + + posix_spawn_file_actions_*: Document musl libc bugs. + * doc/posix-functions/posix_spawn_file_actions_addclose.texi: Mention + the bug. + * doc/posix-functions/posix_spawn_file_actions_adddup2.texi: Likewise. + * doc/posix-functions/posix_spawn_file_actions_addopen.texi: Likewise. + * m4/posix_spawn.m4 (gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE): When + cross-compiling to a musl system, guess no. + (gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2): Likewise. + (gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN): Likewise. + 2019-03-23 Bruno Haible futimens: Document musl libc bug. diff --git a/doc/posix-functions/posix_spawn_file_actions_addclose.texi b/doc/posix-functions/posix_spawn_file_actions_addclose.texi index 199daa1f33..80418db23e 100644 --- a/doc/posix-functions/posix_spawn_file_actions_addclose.texi +++ b/doc/posix-functions/posix_spawn_file_actions_addclose.texi @@ -13,7 +13,7 @@ This function is missing on some platforms: Mac OS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 14, Interix 3.5, BeOS, Android 8.1. @item This function does not reject a too large file descriptor on some platforms: -Solaris 11.4. +musl libc, Solaris 11.4. @end itemize Portability problems not fixed by Gnulib: diff --git a/doc/posix-functions/posix_spawn_file_actions_adddup2.texi b/doc/posix-functions/posix_spawn_file_actions_adddup2.texi index e515715c4d..985d6bc26c 100644 --- a/doc/posix-functions/posix_spawn_file_actions_adddup2.texi +++ b/doc/posix-functions/posix_spawn_file_actions_adddup2.texi @@ -13,7 +13,7 @@ This function is missing on some platforms: Mac OS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 14, Interix 3.5, BeOS, Android 8.1. @item This function does not reject a too large file descriptor on some platforms: -Solaris 11.4. +musl libc, Solaris 11.4. @end itemize Portability problems not fixed by Gnulib: diff --git a/doc/posix-functions/posix_spawn_file_actions_addopen.texi b/doc/posix-functions/posix_spawn_file_actions_addopen.texi index a7809cfd2f..eea56e3405 100644 --- a/doc/posix-functions/posix_spawn_file_actions_addopen.texi +++ b/doc/posix-functions/posix_spawn_file_actions_addopen.texi @@ -13,7 +13,7 @@ This function is missing on some platforms: Mac OS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 14, Interix 3.5, BeOS, Android 8.1. @item This function does not reject a too large file descriptor on some platforms: -Solaris 11.4. +musl libc, Solaris 11.4. @end itemize Portability problems not fixed by Gnulib: diff --git a/m4/posix_spawn.m4 b/m4/posix_spawn.m4 index 1e2533c1f1..d50dcc9e2a 100644 --- a/m4/posix_spawn.m4 +++ b/m4/posix_spawn.m4 @@ -1,4 +1,4 @@ -# posix_spawn.m4 serial 15 +# posix_spawn.m4 serial 16 dnl Copyright (C) 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -422,8 +422,8 @@ AC_DEFUN([gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE], if test $REPLACE_POSIX_SPAWN = 1; then REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE=1 else - dnl On Solaris 11.0, posix_spawn_file_actions_addclose succeeds even - dnl if the fd argument is out of range. + dnl On musl libc and Solaris 11.0, posix_spawn_file_actions_addclose + dnl succeeds even if the 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( @@ -440,8 +440,9 @@ int main () }]])], [gl_cv_func_posix_spawn_file_actions_addclose_works=yes], [gl_cv_func_posix_spawn_file_actions_addclose_works=no], - [# Guess no on Solaris, yes otherwise. + [# Guess no on musl libc and Solaris, yes otherwise. case "$host_os" in + *-musl*) 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*) gl_cv_func_posix_spawn_file_actions_addclose_works="guessing no" ;; @@ -465,8 +466,8 @@ AC_DEFUN([gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2], if test $REPLACE_POSIX_SPAWN = 1; then REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2=1 else - dnl On Solaris 11.0, posix_spawn_file_actions_adddup2 succeeds even - dnl if the fd argument is out of range. + dnl On musl libc and Solaris 11.0, posix_spawn_file_actions_adddup2 + dnl succeeds even if the fd argument is out of range. AC_CACHE_CHECK([whether posix_spawn_file_actions_adddup2 works], [gl_cv_func_posix_spawn_file_actions_adddup2_works], [AC_RUN_IFELSE( @@ -483,8 +484,9 @@ int main () }]])], [gl_cv_func_posix_spawn_file_actions_adddup2_works=yes], [gl_cv_func_posix_spawn_file_actions_adddup2_works=no], - [# Guess no on Solaris, yes otherwise. + [# Guess no on musl libc and Solaris, yes otherwise. case "$host_os" in + *-musl*) gl_cv_func_posix_spawn_file_actions_adddup2_works="guessing no";; solaris*) gl_cv_func_posix_spawn_file_actions_adddup2_works="guessing no";; # Guess no on native Windows. mingw*) gl_cv_func_posix_spawn_file_actions_adddup2_works="guessing no" ;; @@ -508,8 +510,8 @@ AC_DEFUN([gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN], if test $REPLACE_POSIX_SPAWN = 1; then REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN=1 else - dnl On Solaris 11.0, posix_spawn_file_actions_addopen succeeds even - dnl if the fd argument is out of range. + dnl On musl libc and Solaris 11.0, posix_spawn_file_actions_addopen + dnl succeeds even if the fd argument is out of range. AC_CACHE_CHECK([whether posix_spawn_file_actions_addopen works], [gl_cv_func_posix_spawn_file_actions_addopen_works], [AC_RUN_IFELSE( @@ -528,8 +530,9 @@ int main () }]])], [gl_cv_func_posix_spawn_file_actions_addopen_works=yes], [gl_cv_func_posix_spawn_file_actions_addopen_works=no], - [# Guess no on Solaris, yes otherwise. + [# Guess no on musl libc and Solaris, yes otherwise. case "$host_os" in + *-musl*) gl_cv_func_posix_spawn_file_actions_addopen_works="guessing no";; solaris*) gl_cv_func_posix_spawn_file_actions_addopen_works="guessing no";; # Guess no on native Windows. mingw*) gl_cv_func_posix_spawn_file_actions_addopen_works="guessing no" ;; -- 2.39.5