[2/2] posix: Add POSIX posix_spawn_file_actions_add{,f}chdir
Checks
| Context |
Check |
Description |
| redhat-pt-bot/TryBot-apply_patch |
success
|
Patch applied to master at the time it was sent
|
| linaro-tcwg-bot/tcwg_glibc_build--master-aarch64 |
success
|
Build passed
|
| linaro-tcwg-bot/tcwg_glibc_check--master-aarch64 |
success
|
Test passed
|
| linaro-tcwg-bot/tcwg_glibc_build--master-arm |
success
|
Build passed
|
| redhat-pt-bot/TryBot-32bit |
success
|
Build for i686
|
| linaro-tcwg-bot/tcwg_glibc_check--master-arm |
success
|
Test passed
|
Commit Message
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
Comments
> 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
^ that looks like a leftover from some other change?
> @@ -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
^ same?
On 01/09/26 16:25, Andreas K. Huettel wrote:
>> 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
>
> ^ that looks like a leftover from some other change?
>
>> @@ -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
>
> ^ same?
Yeah, I run a make update-abi on Hurd build without taking care this is
wrong on these platforms.
Adhemerval Zanella Netto <adhemerval.zanella@linaro.org> writes:
> On 01/09/26 16:25, Andreas K. Huettel wrote:
>>> 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
>>
>> ^ that looks like a leftover from some other change?
>>
>>> @@ -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
>>
>> ^ same?
> Yeah, I run a make update-abi on Hurd build without taking care this is
> wrong on these platforms.
It's OK with that fixed.
Am Montag, 31. August 2026, 18:09:37 Mitteleuropäische Sommerzeit schrieb Adhemerval Zanella:
> Use proper symbols instead of alias to the *_np counterpart.
>
> Checked on x86_64-linux-gnu.
One more minor nitpick about XSI (but that was in there before), see below.
Otherwise fine.
> ---
> 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:
>
OK
> 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)
OK
New in POSIX2024 / spec issue 8
> 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 \
OK
> 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;
OK
add new proper symbol versions
> 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
Are you sure this is actually an XSI extension? I think it's in the base standard.
(this was also in there before?)
> /* 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));
>
OK
> /* 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 */
OK
> +
> +#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));
OK, same as before
> 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;
>
OK
> @@ -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)
OK
> 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;
>
OK
> @@ -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)
OK
> 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"
OK
> 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
OK
> 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
Already mentioned
> @@ -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
OK
> 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
Already mentioned
> @@ -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
>
OK
On 18/09/26 05:15, Sam James wrote:
> Adhemerval Zanella Netto <adhemerval.zanella@linaro.org> writes:
>
>> On 01/09/26 16:25, Andreas K. Huettel wrote:
>>>> 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
>>>
>>> ^ that looks like a leftover from some other change?
>>>
>>>> @@ -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
>>>
>>> ^ same?
>> Yeah, I run a make update-abi on Hurd build without taking care this is
>> wrong on these platforms.
>
> It's OK with that fixed.
Ack, I will fix them. And I will fix the update-abi issue on Hurd as well,
it is really annoying having to manual adjust it after the command.
On 19/09/26 16:31, Andreas K. Huettel wrote:
> Am Montag, 31. August 2026, 18:09:37 Mitteleuropäische Sommerzeit schrieb Adhemerval Zanella:
>> Use proper symbols instead of alias to the *_np counterpart.
>>
>> Checked on x86_64-linux-gnu.
>
>
> One more minor nitpick about XSI (but that was in there before), see below.
> Otherwise fine.
>
>> 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
>
> Are you sure this is actually an XSI extension? I think it's in the base standard.
> (this was also in there before?)
You are correct, the POSIX.1-2024 page for posix_spawn_file_actions_addchdir
marks both functions with only the [SPN] (Spawn) option. these should be
__USE_XOPEN2K24, I will fix them.
@@ -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:
@@ -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)
@@ -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 \
@@ -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;
@@ -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));
@@ -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)
@@ -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)
new file mode 100644
@@ -0,0 +1,2 @@
+#define USE_POSIX
+#include "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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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