mirror of
git://sourceware.org/git/glibc.git
synced 2026-09-08 23:58:31 +08:00
posix: Add POSIX aliases to some spawn functions
Both `posix_spawn_file_actions_add{,f}chdir` functions are now fully
defined by POSIX-2024, this patch adds both functions as aliases of the
already existing `posix_spawn_file_actions_add{,f}chdir_np` GNU
extensions.
This makes glibc more compliant in regards to POSIX-2024.
Signed-off-by: Lucas Chollet <lucas.chollet@free.fr>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
This commit is contained in:
committed by
Adhemerval Zanella
parent
a7fc50a540
commit
7594b4e5a7
@@ -29,6 +29,10 @@ function int posix_spawnattr_setpgroup (posix_spawnattr_t*, pid_t)
|
||||
function int posix_spawnattr_setschedparam (posix_spawnattr_t*, const struct sched_param*)
|
||||
function int posix_spawnattr_setschedpolicy (posix_spawnattr_t*, int)
|
||||
function int posix_spawnattr_setsigmask (posix_spawnattr_t*, const sigset_t*)
|
||||
#if defined XOPEN2K24 || defined POSIX2024
|
||||
function int posix_spawn_file_actions_addchdir (posix_spawn_file_actions_t*, const char *)
|
||||
function int posix_spawn_file_actions_addfchdir (posix_spawn_file_actions_t*, int)
|
||||
#endif
|
||||
function int posix_spawn_file_actions_addclose (posix_spawn_file_actions_t*, int)
|
||||
function int posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t*, int, int)
|
||||
function int posix_spawn_file_actions_addopen (posix_spawn_file_actions_t*, int, const char *, int, mode_t)
|
||||
|
||||
@@ -315,6 +315,7 @@ tests := \
|
||||
tst-rxspencer-no-utf8 \
|
||||
tst-sched_getaffinity \
|
||||
tst-spawn-chdir \
|
||||
tst-spawn-chdir-posix \
|
||||
tst-spawn4 \
|
||||
tst-spawn5 \
|
||||
tst-spawn6 \
|
||||
|
||||
@@ -200,6 +200,26 @@ extern int posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t *
|
||||
int __fd, int __newfd)
|
||||
__THROW __nonnull ((1));
|
||||
|
||||
#ifdef __USE_XOPEN2K24XSI
|
||||
|
||||
/* Add an action changing the directory to PATH during spawn. This
|
||||
affects the subsequent file actions.
|
||||
Alias of posix_spawn_file_actions_addchdir_np. */
|
||||
extern int __REDIRECT_NTH (posix_spawn_file_actions_addchdir,
|
||||
(posix_spawn_file_actions_t * __restrict __actions,
|
||||
const char *__restrict __path),
|
||||
posix_spawn_file_actions_addchdir_np);
|
||||
|
||||
/* Add an action changing the directory to FD during spawn. This
|
||||
affects the subsequent file actions. FD is not duplicated and must
|
||||
be open when the file action is executed.
|
||||
Alias of posix_spawn_file_actions_addfchdir_np. */
|
||||
extern int __REDIRECT_NTH (posix_spawn_file_actions_addfchdir,
|
||||
(posix_spawn_file_actions_t *, int __fd),
|
||||
posix_spawn_file_actions_addfchdir_np);
|
||||
|
||||
#endif /* __USE_XOPEN2K24XSI */
|
||||
|
||||
#ifdef __USE_MISC
|
||||
/* Add an action changing the directory to PATH during spawn. This
|
||||
affects the subsequent file actions. */
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
#define USE_POSIX_ALIASES
|
||||
#include "tst-spawn-chdir.c"
|
||||
+16
-3
@@ -78,12 +78,25 @@ add_chdir (posix_spawn_file_actions_t *actions, const char *path,
|
||||
{
|
||||
TEST_COMPARE (posix_spawn_file_actions_addopen
|
||||
(actions, tmpfd, path, O_DIRECTORY | O_RDONLY, 0), 0);
|
||||
TEST_COMPARE (posix_spawn_file_actions_addfchdir_np
|
||||
(actions, tmpfd), 0);
|
||||
|
||||
#ifdef USE_POSIX_ALIASES
|
||||
int ret = posix_spawn_file_actions_addfchdir (actions, tmpfd);
|
||||
#else
|
||||
int ret = posix_spawn_file_actions_addfchdir_np (actions, tmpfd);
|
||||
#endif
|
||||
TEST_COMPARE (ret, 0);
|
||||
|
||||
TEST_COMPARE (posix_spawn_file_actions_addclose (actions, tmpfd), 0);
|
||||
}
|
||||
else
|
||||
TEST_COMPARE (posix_spawn_file_actions_addchdir_np (actions, path), 0);
|
||||
{
|
||||
#ifdef USE_POSIX_ALIASES
|
||||
int ret = posix_spawn_file_actions_addchdir (actions, path);
|
||||
#else
|
||||
int ret = posix_spawn_file_actions_addchdir_np (actions, path);
|
||||
#endif
|
||||
TEST_COMPARE (ret, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
|
||||
Reference in New Issue
Block a user