[PATCH 2/2] posix: Add POSIX posix_spawn_file_actions_add{,f}chdir
Adhemerval Zanella <[email protected]>
| Newsgroups | gmane.comp.lib.glibc.alpha |
|---|---|
| Message-ID | <[email protected]> |
Use proper symbols instead of alias to the *_np counterpart.
Checked on x86_64-linux-gnu.
---
NEWS | 4 +++-
conform/data/spawn.h-data | 4 ++++
posix/Makefile | 1 +
posix/Versions | 4 ++++
posix/spawn.h | 22 +++++++++++++++----
posix/spawn_faction_addchdir.c | 8 +++++--
posix/spawn_faction_addfchdir.c | 8 +++++--
posix/tst-spawn-chdir-posix.c | 2 ++
posix/tst-spawn-chdir.c | 8 +++++++
sysdeps/mach/hurd/i386/libc.abilist | 4 +++-
sysdeps/mach/hurd/x86_64/libc.abilist | 4 +++-
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arc/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/csky/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/i386/libc.abilist | 2 ++
.../sysv/linux/loongarch/ilp32/libc.abilist | 2 ++
.../sysv/linux/loongarch/lp64/libc.abilist | 2 ++
.../sysv/linux/m68k/coldfire/libc.abilist | 2 ++
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 ++
.../sysv/linux/microblaze/be/libc.abilist | 2 ++
.../sysv/linux/microblaze/le/libc.abilist | 2 ++
.../sysv/linux/mips/mips32/fpu/libc.abilist | 2 ++
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 ++
.../sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
.../sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/or1k/libc.abilist | 2 ++
.../linux/powerpc/powerpc32/fpu/libc.abilist | 2 ++
.../powerpc/powerpc32/nofpu/libc.abilist | 2 ++
.../linux/powerpc/powerpc64/be/libc.abilist | 2 ++
.../linux/powerpc/powerpc64/le/libc.abilist | 2 ++
.../unix/sysv/linux/riscv/rv32/libc.abilist | 2 ++
.../unix/sysv/linux/riscv/rv64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/s390/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 ++
.../sysv/linux/sparc/sparc32/libc.abilist | 2 ++
.../sysv/linux/sparc/sparc64/libc.abilist | 2 ++
.../unix/sysv/linux/x86_64/64/libc.abilist | 2 ++
.../unix/sysv/linux/x86_64/x32/libc.abilist | 2 ++
43 files changed, 122 insertions(+), 11 deletions(-)
create mode 100644 posix/tst-spawn-chdir-posix.c
diff --git a/NEWS b/NEWS
index 56c6b581df..91cb2816a5 100644
--- a/NEWS
+++ b/NEWS
@@ -13,7 +13,9 @@ Major new features:
Deprecated and removed features, and other changes affecting compatibility:
- [Add deprecations, removals and changes affecting compatibility here]
+* The posix_spawn_file_actions_addchdir and posix_spawn_file_actions_addfchdir
+ functions, added in glibc 2.44 as header redirects to the _np variants, are
+ now exported from libc.so under the GLIBC_2.45 symbol version.
Changes to build and runtime requirements:
diff --git a/conform/data/spawn.h-data b/conform/data/spawn.h-data
index 43aa9cb8ae..1f332324c2 100644
--- a/conform/data/spawn.h-data
+++ b/conform/data/spawn.h-data
@@ -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)
diff --git a/posix/Makefile b/posix/Makefile
index b2fc897455..ae26443ac9 100644
--- a/posix/Makefile
+++ b/posix/Makefile
@@ -317,6 +317,7 @@ tests := \
tst-rxspencer-no-utf8 \
tst-sched_getaffinity \
tst-spawn-chdir \
+ tst-spawn-chdir-posix \
tst-spawn4 \
tst-spawn5 \
tst-spawn6 \
diff --git a/posix/Versions b/posix/Versions
index 0624d24bcc..e70ff69b27 100644
--- a/posix/Versions
+++ b/posix/Versions
@@ -159,6 +159,10 @@ libc {
GLIBC_2.35 {
posix_spawn_file_actions_addtcsetpgrp_np;
}
+ GLIBC_2.45 {
+ posix_spawn_file_actions_addchdir;
+ posix_spawn_file_actions_addfchdir;
+ }
GLIBC_PRIVATE {
__libc_fork; __libc_pread; __libc_pwrite;
__nanosleep_nocancel; __pause_nocancel;
diff --git a/posix/spawn.h b/posix/spawn.h
index 5e68752a66..da0cabbf42 100644
--- a/posix/spawn.h
+++ b/posix/spawn.h
@@ -200,17 +200,31 @@ extern int posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t *
int __fd, int __newfd)
__THROW __nonnull ((1));
-#ifdef __USE_MISC
+#ifdef __USE_XOPEN2K24XSI
/* Add an action changing the directory to PATH during spawn. This
affects the subsequent file actions. */
-extern int posix_spawn_file_actions_addchdir_np (posix_spawn_file_actions_t *
- __restrict __actions,
- const char *__restrict __path)
+extern int posix_spawn_file_actions_addchdir (posix_spawn_file_actions_t *
+ __restrict __actions,
+ const char *__restrict __path)
__THROW __nonnull ((1, 2));
/* 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. */
+extern int posix_spawn_file_actions_addfchdir (posix_spawn_file_actions_t *,
+ int __fd)
+ __THROW __nonnull ((1));
+
+#endif /* __USE_XOPEN2K24XSI */
+
+#ifdef __USE_MISC
+/* Same as posix_spawn_file_actions_addchdir. */
+extern int posix_spawn_file_actions_addchdir_np (posix_spawn_file_actions_t *
+ __restrict __actions,
+ const char *__restrict __path)
+ __THROW __nonnull ((1, 2));
+
+/* Same as posix_spawn_file_actions_addfchdir. */
extern int posix_spawn_file_actions_addfchdir_np (posix_spawn_file_actions_t *,
int __fd)
__THROW __nonnull ((1));
diff --git a/posix/spawn_faction_addchdir.c b/posix/spawn_faction_addchdir.c
index 02f8ce27ee..8c25df2de0 100644
--- a/posix/spawn_faction_addchdir.c
+++ b/posix/spawn_faction_addchdir.c
@@ -23,8 +23,8 @@
#include "spawn_int.h"
int
-posix_spawn_file_actions_addchdir_np (posix_spawn_file_actions_t *file_actions,
- const char *path)
+__posix_spawn_file_actions_addchdir_np (posix_spawn_file_actions_t *file_actions,
+ const char *path)
{
struct __spawn_action *rec;
@@ -51,3 +51,7 @@ posix_spawn_file_actions_addchdir_np (posix_spawn_file_actions_t *file_actions,
return 0;
}
+weak_alias (__posix_spawn_file_actions_addchdir_np,
+ posix_spawn_file_actions_addchdir_np)
+weak_alias (__posix_spawn_file_actions_addchdir_np,
+ posix_spawn_file_actions_addchdir)
diff --git a/posix/spawn_faction_addfchdir.c b/posix/spawn_faction_addfchdir.c
index a3df6df489..fd94d7bccd 100644
--- a/posix/spawn_faction_addfchdir.c
+++ b/posix/spawn_faction_addfchdir.c
@@ -23,8 +23,8 @@
#include "spawn_int.h"
int
-posix_spawn_file_actions_addfchdir_np (posix_spawn_file_actions_t *actions,
- int fd)
+__posix_spawn_file_actions_addfchdir_np (posix_spawn_file_actions_t *actions,
+ int fd)
{
struct __spawn_action *rec;
@@ -44,3 +44,7 @@ posix_spawn_file_actions_addfchdir_np (posix_spawn_file_actions_t *actions,
return 0;
}
+weak_alias (__posix_spawn_file_actions_addfchdir_np,
+ posix_spawn_file_actions_addfchdir_np)
+weak_alias (__posix_spawn_file_actions_addfchdir_np,
+ posix_spawn_file_actions_addfchdir)
diff --git a/posix/tst-spawn-chdir-posix.c b/posix/tst-spawn-chdir-posix.c
new file mode 100644
index 0000000000..8bdbfa32aa
--- /dev/null
+++ b/posix/tst-spawn-chdir-posix.c
@@ -0,0 +1,2 @@
+#define USE_POSIX
+#include "tst-spawn-chdir.c"
diff --git a/posix/tst-spawn-chdir.c b/posix/tst-spawn-chdir.c
index a3478d61f6..389af15b97 100644
--- a/posix/tst-spawn-chdir.c
+++ b/posix/tst-spawn-chdir.c
@@ -78,12 +78,20 @@ 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);
+#ifdef USE_POSIX
+ TEST_COMPARE (posix_spawn_file_actions_addfchdir (actions, tmpfd), 0);
+#else
TEST_COMPARE (posix_spawn_file_actions_addfchdir_np
(actions, tmpfd), 0);
+#endif
TEST_COMPARE (posix_spawn_file_actions_addclose (actions, tmpfd), 0);
}
else
+#ifdef USE_POSIX
+ TEST_COMPARE (posix_spawn_file_actions_addchdir (actions, path), 0);
+#else
TEST_COMPARE (posix_spawn_file_actions_addchdir_np (actions, path), 0);
+#endif
}
static int
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 0166703bdb..9a001227d6 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -727,7 +727,7 @@ GLIBC_2.2.6 _libc_intl_domainname D 0x5
GLIBC_2.2.6 _longjmp F
GLIBC_2.2.6 _mcleanup F
GLIBC_2.2.6 _mcount F
-GLIBC_2.2.6 _nl_default_dirname D 0xe
+GLIBC_2.2.6 _nl_default_dirname D 0x12
GLIBC_2.2.6 _nl_domain_bindings D 0x4
GLIBC_2.2.6 _nl_msg_cat_cntr D 0x4
GLIBC_2.2.6 _null_auth D 0xc
@@ -2835,6 +2835,8 @@ GLIBC_2.44 timer_delete F
GLIBC_2.44 timer_getoverrun F
GLIBC_2.44 timer_gettime F
GLIBC_2.44 timer_settime F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/mach/hurd/x86_64/libc.abilist b/sysdeps/mach/hurd/x86_64/libc.abilist
index 0262a079aa..7c80f7441a 100644
--- a/sysdeps/mach/hurd/x86_64/libc.abilist
+++ b/sysdeps/mach/hurd/x86_64/libc.abilist
@@ -611,7 +611,7 @@ GLIBC_2.38 _libc_intl_domainname D 0x5
GLIBC_2.38 _longjmp F
GLIBC_2.38 _mcleanup F
GLIBC_2.38 _mcount F
-GLIBC_2.38 _nl_default_dirname D 0xe
+GLIBC_2.38 _nl_default_dirname D 0x12
GLIBC_2.38 _nl_domain_bindings D 0x8
GLIBC_2.38 _nl_msg_cat_cntr D 0x4
GLIBC_2.38 _obstack_allocated_p F
@@ -2511,6 +2511,8 @@ GLIBC_2.44 timer_delete F
GLIBC_2.44 timer_getoverrun F
GLIBC_2.44 timer_gettime F
GLIBC_2.44 timer_settime F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
HURD_CTHREADS_0.3 __mutex_init F
HURD_CTHREADS_0.3 __mutex_lock F
HURD_CTHREADS_0.3 __mutex_trylock F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 3156688add..ad0cbaa2ac 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -2775,3 +2775,5 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 8af5b0b581..0e75090900 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -3122,6 +3122,8 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 35fcef2cc4..2b40d1adec 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -2536,3 +2536,5 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index a6c6b951bf..ae7f8787f5 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -2828,6 +2828,8 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index e76015fe66..42a0e9816b 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -2825,6 +2825,8 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 1fb7cdcad5..17566797fc 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -2812,3 +2812,5 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 0710ccecf9..5ae4bc610b 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2849,6 +2849,8 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 3afe3a88eb..5ed513a623 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -3032,6 +3032,8 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/loongarch/ilp32/libc.abilist b/sysdeps/unix/sysv/linux/loongarch/ilp32/libc.abilist
index 7c6d7055c3..4dc42fb90e 100644
--- a/sysdeps/unix/sysv/linux/loongarch/ilp32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/loongarch/ilp32/libc.abilist
@@ -2287,3 +2287,5 @@ GLIBC_2.44 wprintf F
GLIBC_2.44 write F
GLIBC_2.44 writev F
GLIBC_2.44 wscanf F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
diff --git a/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist b/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist
index c2b3a66d3a..1cf70f6cdf 100644
--- a/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist
@@ -2296,3 +2296,5 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index d6855131e8..4e4d4dbdfd 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -2808,6 +2808,8 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 4e3fe9c42f..58e80df210 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2975,6 +2975,8 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 29f0c5f954..ee7bd65818 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -2861,3 +2861,5 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 2ef62838f7..269c8e6315 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -2858,3 +2858,5 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 031e8961ac..fc9609351e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2938,6 +2938,8 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 8dc99d81b4..9ab36b5e2d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2936,6 +2936,8 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 054c5b6391..9ead3c2c89 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2944,6 +2944,8 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 13f0148bc0..18a00bc9a6 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2846,6 +2846,8 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/or1k/libc.abilist b/sysdeps/unix/sysv/linux/or1k/libc.abilist
index e7ffe07dd8..7c220c414c 100644
--- a/sysdeps/unix/sysv/linux/or1k/libc.abilist
+++ b/sysdeps/unix/sysv/linux/or1k/libc.abilist
@@ -2286,3 +2286,5 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index dea4b20f05..44fcc172a4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -3165,6 +3165,8 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index b45e127463..33b91a001c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -3210,6 +3210,8 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 942cf6a027..638ea184d3 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2919,6 +2919,8 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 65d78e5076..66b2d73497 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -2995,3 +2995,5 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index dcab30d72e..5d832d1304 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -2539,3 +2539,5 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 796ef35e26..ea97ab4f6a 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -2739,3 +2739,5 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
diff --git a/sysdeps/unix/sysv/linux/s390/libc.abilist b/sysdeps/unix/sysv/linux/s390/libc.abilist
index 8f2350ee0b..703c402f99 100644
--- a/sysdeps/unix/sysv/linux/s390/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/libc.abilist
@@ -2956,6 +2956,8 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 7aa98c5aed..47079e00ca 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2855,6 +2855,8 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 6bd4f8f63a..21677414a5 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2852,6 +2852,8 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index b52cab2a35..52515956fc 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -3186,6 +3186,8 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index ff99cd4f21..2f2dc8a456 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2822,6 +2822,8 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 306cd627fd..286fe42a5b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2771,6 +2771,8 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 8b9c448742..b6f3ea7d2d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -2790,3 +2790,5 @@ GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
+GLIBC_2.45 posix_spawn_file_actions_addchdir F
+GLIBC_2.45 posix_spawn_file_actions_addfchdir F
--
2.53.0