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:
Lucas Chollet
2026-04-07 13:21:13 -03:00
committed by Adhemerval Zanella
parent a7fc50a540
commit 7594b4e5a7
5 changed files with 43 additions and 3 deletions
+4
View File
@@ -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)
+1
View File
@@ -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 \
+20
View File
@@ -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. */
+2
View File
@@ -0,0 +1,2 @@
#define USE_POSIX_ALIASES
#include "tst-spawn-chdir.c"
+16 -3
View File
@@ -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