From: Bruno Haible <bruno@clisp.org>
To: bug-gnulib@gnu.org, Rich Felker <dalias@libc.org>
Subject: posix_spawn_file_actions_add* functions on musl libc
Date: Sat, 23 Mar 2019 21:46:28 +0100 [thread overview]
Message-ID: <17480807.kbxdrRNLtY@omega> (raw)
The gnulib configure test in m4/posix_spawn.m4, when run on Alpine Linux 3.7,
determines that the posix_spawn_file_actions_add* functions do not fail as
expected for an out-of-range file descriptor.
Let me document this in gnulib and update the cross-compilation guess
accordingly.
Rich, FYI: These are the test programs:
#include <spawn.h>
int main ()
{
posix_spawn_file_actions_t actions;
if (posix_spawn_file_actions_init (&actions) != 0)
return 1;
if (posix_spawn_file_actions_addclose (&actions, 10000000) == 0)
return 2;
return 0;
}
#include <spawn.h>
int main ()
{
posix_spawn_file_actions_t actions;
if (posix_spawn_file_actions_init (&actions) != 0)
return 1;
if (posix_spawn_file_actions_adddup2 (&actions, 10000000, 2) == 0)
return 2;
return 0;
}
#include <spawn.h>
#include <fcntl.h>
int main ()
{
posix_spawn_file_actions_t actions;
if (posix_spawn_file_actions_init (&actions) != 0)
return 1;
if (posix_spawn_file_actions_addopen (&actions, 10000000, "foo", 0, O_RDONLY)
== 0)
return 2;
return 0;
}
2019-03-23 Bruno Haible <bruno@clisp.org>
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.
diff --git a/doc/posix-functions/posix_spawn_file_actions_addclose.texi b/doc/posix-functions/posix_spawn_file_actions_addclose.texi
index 199daa1..80418db 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 e515715..985d6bc 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 a7809cf..eea56e3 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 1e2533c..d50dcc9 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" ;;
next reply other threads:[~2019-03-23 21:05 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-23 20:46 Bruno Haible [this message]
2019-03-24 14:16 ` posix_spawn_file_actions_add* functions on musl libc Rich Felker
2019-03-24 18:23 ` Bruno Haible
2019-03-24 21:38 ` [musl] " Rich Felker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://lists.gnu.org/mailman/listinfo/bug-gnulib
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=17480807.kbxdrRNLtY@omega \
--to=bruno@clisp.org \
--cc=bug-gnulib@gnu.org \
--cc=dalias@libc.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).