[RFC] posix: Export posix_spawn_file_actions_{addchdir, addfchdir} (BZ 34437)

Adhemerval Zanella <[email protected]> Wed, 5 Aug 2026 15:11:38 -0300
Newsgroups gmane.comp.lib.gnulib.bugs,gmane.comp.lib.glibc.alpha
Message-ID <[email protected]>
Sending as an RFC because it might be a contentious patch, and it breaks
our previous policy of not adding retroactively symbols.

--

Commit 7594b4e5a75 ("posix: Add POSIX aliases to some spawn functions")
added posix_spawn_file_actions_addchdir and
posix_spawn_file_actions_addfchdir as header redirects to the existing
_np symbols, without exporting the POSIX names from libc.so.  This
breaks configure probes that check for the symbol at link time with a
bogus prototype (such as autoconf's AC_CHECK_FUNCS, used by gnulib),
which then report the functions as missing on glibc 2.44 and replace
them.

Export both functions as real symbols, aliases of the _np variants.
The symbols are added under the GLIBC_2.44 version, even though 2.44
has already been released.  Retroactively adding symbols to a released
symbol version is against the glibc policy, but it is less disruptive
than forcing gnulib consumers to update themselves, and it keeps the
symbol version consistent with the release the interfaces were first
added.  This change is intended to be backported to the 2.44 release
branch.

The tst-spawn-chdir-posix test now links against the exported POSIX
names instead of the header redirects.

Checked on x86_64-linux-gnu.
---
 NEWS                                          |  4 +-
 posix/Versions                                |  4 ++
 posix/spawn.h                                 | 40 ++++++++-----------
 posix/spawn_faction_addchdir.c                |  8 +++-
 posix/spawn_faction_addfchdir.c               |  8 +++-
 sysdeps/mach/hurd/i386/libc.abilist           |  2 +
 sysdeps/mach/hurd/x86_64/libc.abilist         |  2 +
 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 +
 39 files changed, 104 insertions(+), 28 deletions(-)

diff --git a/NEWS b/NEWS
index 56c6b581df0..245fcfe6144 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.44 symbol version.
 
 Changes to build and runtime requirements:
 
diff --git a/posix/Versions b/posix/Versions
index 0624d24bcce..3c15dbb50cb 100644
--- a/posix/Versions
+++ b/posix/Versions
@@ -159,6 +159,10 @@ libc {
   GLIBC_2.35 {
     posix_spawn_file_actions_addtcsetpgrp_np;
   }
+  GLIBC_2.44 {
+    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 0aabf5ebef0..da0cabbf42e 100644
--- a/posix/spawn.h
+++ b/posix/spawn.h
@@ -201,36 +201,30 @@ extern int posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t *
      __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.  */
-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 02f8ce27ee0..8c25df2de00 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 a3df6df4896..fd94d7bccd5 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/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 0166703bdb3..a22daf21179 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2830,6 +2830,8 @@ GLIBC_2.44 mq_setattr F
 GLIBC_2.44 mq_timedreceive F
 GLIBC_2.44 mq_timedsend F
 GLIBC_2.44 mq_unlink F
+GLIBC_2.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 posix_spawn_file_actions_addfchdir F
 GLIBC_2.44 timer_create F
 GLIBC_2.44 timer_delete F
 GLIBC_2.44 timer_getoverrun F
diff --git a/sysdeps/mach/hurd/x86_64/libc.abilist b/sysdeps/mach/hurd/x86_64/libc.abilist
index 0262a079aa8..946ce20d8f0 100644
--- a/sysdeps/mach/hurd/x86_64/libc.abilist
+++ b/sysdeps/mach/hurd/x86_64/libc.abilist
@@ -2506,6 +2506,8 @@ GLIBC_2.44 mq_setattr F
 GLIBC_2.44 mq_timedreceive F
 GLIBC_2.44 mq_timedsend F
 GLIBC_2.44 mq_unlink F
+GLIBC_2.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 posix_spawn_file_actions_addfchdir F
 GLIBC_2.44 timer_create F
 GLIBC_2.44 timer_delete F
 GLIBC_2.44 timer_getoverrun F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 3156688addb..c305a0f4c31 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 8af5b0b5818..27a89961cde 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 35fcef2cc4c..24ec7de101f 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 a6c6b951bfa..9384554fb9f 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 e76015fe666..031aa88b99a 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 1fb7cdcad5d..fcde47e4db0 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 0710ccecf9d..e216b578c1b 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 3afe3a88eb4..a2cf289f8c4 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 7c6d7055c3d..09db1758b6e 100644
--- a/sysdeps/unix/sysv/linux/loongarch/ilp32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/loongarch/ilp32/libc.abilist
@@ -1442,10 +1442,12 @@ GLIBC_2.44 posix_madvise F
 GLIBC_2.44 posix_memalign F
 GLIBC_2.44 posix_openpt F
 GLIBC_2.44 posix_spawn F
+GLIBC_2.44 posix_spawn_file_actions_addchdir F
 GLIBC_2.44 posix_spawn_file_actions_addchdir_np F
 GLIBC_2.44 posix_spawn_file_actions_addclose F
 GLIBC_2.44 posix_spawn_file_actions_addclosefrom_np F
 GLIBC_2.44 posix_spawn_file_actions_adddup2 F
+GLIBC_2.44 posix_spawn_file_actions_addfchdir F
 GLIBC_2.44 posix_spawn_file_actions_addfchdir_np F
 GLIBC_2.44 posix_spawn_file_actions_addopen F
 GLIBC_2.44 posix_spawn_file_actions_addtcsetpgrp_np F
diff --git a/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist b/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist
index c2b3a66d3a1..6c1954bc1a5 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 d6855131e8b..69369345f75 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 4e3fe9c42f2..36274664df0 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 29f0c5f954b..1b790ba4b87 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 2ef62838f75..431f68eff54 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 031e8961acc..2e10a24e3ec 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 8dc99d81b4b..6f4596e7592 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 054c5b6391b..c48228d2124 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 13f0148bc00..cb878d5c767 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 e7ffe07dd8d..da19fa577c4 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 dea4b20f05c..0402f85e4e7 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 b45e1274636..0bbd88a8d2c 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 942cf6a0276..641b3707917 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 65d78e50760..2a340ae799a 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 dcab30d72ee..123f95deb03 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 796ef35e26e..16882af3d7e 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 8f2350ee0b6..d88ff422b89 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 7aa98c5aede..43078012ef0 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 6bd4f8f63a1..5c78e5b8442 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 b52cab2a351..209ca5858be 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 ff99cd4f219..79b9d7adcbd 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 306cd627fd8..3c42d9526d5 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 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 8b9c448742e..68a03e00291 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.44 posix_spawn_file_actions_addchdir F
+GLIBC_2.44 posix_spawn_file_actions_addfchdir F
-- 
2.53.0