[PATCH v3 03/10] math: Remove the error handling wrapper from lgammaf/lgammaf_r

Adhemerval Zanella adhemerval.zanella@linaro.org
Mon Sep 22 20:18:08 GMT 2025


It improves latency throughput for about 2%.
---
 math/Versions                                 |   1 +
 math/lgamma-compat.h                          |  15 +-
 math/w_lgammaf_compat2.c                      |   2 +-
 math/w_lgammaf_main.c                         |   7 +-
 sysdeps/ieee754/flt-32/e_lgammaf_r.c          |  12 +-
 sysdeps/ieee754/flt-32/w_lgammaf.c            |  17 +
 sysdeps/mach/hurd/i386/libc.abilist           |   2 +-
 sysdeps/mach/hurd/i386/libm.abilist           |   2 +
 sysdeps/mach/hurd/libhurduser.abilist         | 756 ++++++++++++++++++
 sysdeps/mach/hurd/x86_64/libc.abilist         |   2 +-
 sysdeps/mach/libmachuser.abilist              | 346 ++++++++
 sysdeps/unix/sysv/linux/aarch64/libm.abilist  |   2 +
 sysdeps/unix/sysv/linux/alpha/libm.abilist    |   2 +
 sysdeps/unix/sysv/linux/arm/be/libm.abilist   |   2 +
 sysdeps/unix/sysv/linux/arm/le/libm.abilist   |   2 +
 sysdeps/unix/sysv/linux/hppa/libm.abilist     |   2 +
 sysdeps/unix/sysv/linux/i386/libm.abilist     |   2 +
 .../sysv/linux/m68k/coldfire/libm.abilist     |   2 +
 .../unix/sysv/linux/m68k/m680x0/libm.abilist  |   2 +
 .../sysv/linux/microblaze/be/libm.abilist     |   2 +
 .../sysv/linux/microblaze/le/libm.abilist     |   2 +
 .../unix/sysv/linux/mips/mips32/libm.abilist  |   2 +
 .../unix/sysv/linux/mips/mips64/libm.abilist  |   2 +
 .../linux/powerpc/powerpc32/fpu/libm.abilist  |   2 +
 .../powerpc/powerpc32/nofpu/libm.abilist      |   2 +
 .../linux/powerpc/powerpc64/be/libm.abilist   |   2 +
 .../linux/powerpc/powerpc64/le/libm.abilist   |   2 +
 .../unix/sysv/linux/s390/s390-32/libm.abilist |   2 +
 .../unix/sysv/linux/s390/s390-64/libm.abilist |   2 +
 sysdeps/unix/sysv/linux/sh/be/libm.abilist    |   2 +
 sysdeps/unix/sysv/linux/sh/le/libm.abilist    |   2 +
 .../sysv/linux/sparc/sparc32/libm.abilist     |   2 +
 .../sysv/linux/sparc/sparc64/libm.abilist     |   2 +
 .../unix/sysv/linux/x86_64/64/libm.abilist    |   2 +
 .../unix/sysv/linux/x86_64/x32/libm.abilist   |   2 +
 35 files changed, 1196 insertions(+), 14 deletions(-)
 create mode 100644 sysdeps/ieee754/flt-32/w_lgammaf.c

diff --git a/math/Versions b/math/Versions
index c772cb61c6..4aa9321882 100644
--- a/math/Versions
+++ b/math/Versions
@@ -689,5 +689,6 @@ libm {
   GLIBC_2.43 {
     # No SVID compatible error handling.
     log10f;
+    lgammaf; lgammaf_r;
   }
 }
diff --git a/math/lgamma-compat.h b/math/lgamma-compat.h
index bf4acef559..795e97d5a0 100644
--- a/math/lgamma-compat.h
+++ b/math/lgamma-compat.h
@@ -34,10 +34,17 @@
    old glibc.
 
    Users of this file define USE_AS_COMPAT to 0 when building the main
-   version of lgamma, 1 when building the compatibility version.  */
+   version of lgamma, 1 when building the compatibility version that
+   handles signgam visibility, and 2 when building the compatibility
+   that handles SVID support).  */
 
+#if USE_AS_COMPAT <= 1
 #define LGAMMA_OLD_VER GLIBC_2_0
 #define LGAMMA_NEW_VER GLIBC_2_23
+#elif USE_AS_COMPAT == 2
+#define LGAMMA_OLD_VER    GLIBC_2_23
+#define LGAMMA_NEW_VER    GLIBC_2_43
+#endif
 #define HAVE_LGAMMA_COMPAT SHLIB_COMPAT (libm, LGAMMA_OLD_VER, LGAMMA_NEW_VER)
 
 /* Whether to build this version at all.  */
@@ -45,8 +52,10 @@
   (LIBM_SVID_COMPAT && (HAVE_LGAMMA_COMPAT || !USE_AS_COMPAT))
 
 /* The name to use for this version.  */
-#if USE_AS_COMPAT
+#if USE_AS_COMPAT == 1
 # define LGFUNC(FUNC) FUNC ## _compat
+#elif USE_AS_COMPAT == 2
+# define LGFUNC(FUNC) FUNC ## _compat2
 #else
 # define LGFUNC(FUNC) FUNC
 #endif
@@ -54,7 +63,7 @@
 /* If there is a compatibility version, gamma (not an ISO C function,
    so never a problem for it to set signgam) points directly to it
    rather than having separate versions.  */
-#define GAMMA_ALIAS (USE_AS_COMPAT ? HAVE_LGAMMA_COMPAT : !HAVE_LGAMMA_COMPAT)
+#define GAMMA_ALIAS (USE_AS_COMPAT == 1 ? HAVE_LGAMMA_COMPAT : !HAVE_LGAMMA_COMPAT)
 
 /* How to call the underlying lgamma_r function.  */
 #define CALL_LGAMMA(TYPE, FUNC, ARG)			\
diff --git a/math/w_lgammaf_compat2.c b/math/w_lgammaf_compat2.c
index 5fc402260c..3a942dbe04 100644
--- a/math/w_lgammaf_compat2.c
+++ b/math/w_lgammaf_compat2.c
@@ -1,2 +1,2 @@
-#define USE_AS_COMPAT 0
+#define USE_AS_COMPAT 2
 #include <w_lgammaf_main.c>
diff --git a/math/w_lgammaf_main.c b/math/w_lgammaf_main.c
index 22b7f8fc53..8d475d3a6c 100644
--- a/math/w_lgammaf_main.c
+++ b/math/w_lgammaf_main.c
@@ -33,12 +33,7 @@ LGFUNC (__lgammaf) (float x)
 
 	return y;
 }
-# if USE_AS_COMPAT
-compat_symbol (libm, __lgammaf_compat, lgammaf, LGAMMA_OLD_VER);
-# else
-versioned_symbol (libm, __lgammaf, lgammaf, LGAMMA_NEW_VER);
-libm_alias_float_other (__lgamma, lgamma)
-# endif
+compat_symbol (libm, LGFUNC (__lgammaf), lgammaf, LGAMMA_OLD_VER);
 # if GAMMA_ALIAS
 strong_alias (LGFUNC (__lgammaf), __gammaf)
 weak_alias (__gammaf, gammaf)
diff --git a/sysdeps/ieee754/flt-32/e_lgammaf_r.c b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
index 75ec25fb9e..8b4f3029e9 100644
--- a/sysdeps/ieee754/flt-32/e_lgammaf_r.c
+++ b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
@@ -36,6 +36,8 @@ SOFTWARE.
 #include <math.h>
 #include <libm-alias-finite.h>
 #include <limits.h>
+#include <libm-alias-float.h>
+#include <math-svid-compat.h>
 #include <math-narrow-eval.h>
 #include "math_config.h"
 
@@ -108,7 +110,7 @@ as_ln (double x)
 }
 
 float
-__ieee754_lgammaf_r (float x, int *signgamp)
+__lgamma_rf (float x, int *signgamp)
 {
   static const struct
   {
@@ -363,4 +365,10 @@ __ieee754_lgammaf_r (float x, int *signgamp)
     }
   return r;
 }
-libm_alias_finite (__ieee754_lgammaf_r, __lgammaf_r)
+strong_alias (__lgamma_rf, __ieee754_lgammaf_r)
+libm_alias_finite (__lgamma_rf, __lgammaf_r)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __lgamma_rf, lgammaf_r, GLIBC_2_43);
+#else
+libm_alias_float (__lgamma_r, lgamma_r)
+#endif
diff --git a/sysdeps/ieee754/flt-32/w_lgammaf.c b/sysdeps/ieee754/flt-32/w_lgammaf.c
new file mode 100644
index 0000000000..5fc9b46866
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/w_lgammaf.c
@@ -0,0 +1,17 @@
+#include <math-svid-compat.h>
+#include <math.h>
+#include <libm-alias-float.h>
+
+float
+__lgammaf (float x)
+{
+  return __lgammaf_r (x, &__signgam);
+}
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __lgammaf, lgammaf, GLIBC_2_43);
+libm_alias_float_other (__lgamma, lgamma)
+#else
+libm_alias_float (__lgamma, lgamma)
+strong_alias (__lgammaf, __gammaf)
+weak_alias (__gammaf, gammaf)
+#endif
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index b3fe424501..704f4a8f7b 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -717,7 +717,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
diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist
index bcf422a954..898dcc0bec 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1317,4 +1317,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/mach/hurd/libhurduser.abilist b/sysdeps/mach/hurd/libhurduser.abilist
index e69de29bb2..03b47f55c7 100644
--- a/sysdeps/mach/hurd/libhurduser.abilist
+++ b/sysdeps/mach/hurd/libhurduser.abilist
@@ -0,0 +1,756 @@
+Base _S_msg_server F
+Base _S_msg_server_routines D 0xc8
+Base __auth_getids F
+Base __auth_makeauth F
+Base __auth_server_authenticate F
+Base __auth_user_authenticate F
+Base __crash_dump_task F
+Base __dir_link F
+Base __dir_lookup F
+Base __dir_mkdir F
+Base __dir_mkfile F
+Base __dir_notice_changes F
+Base __dir_readdir F
+Base __dir_rename F
+Base __dir_rmdir F
+Base __dir_unlink F
+Base __exec_exec F
+Base __exec_exec_paths F
+Base __exec_init F
+Base __exec_setexecdata F
+Base __exec_startup_get_info F
+Base __file_chauthor F
+Base __file_check_access F
+Base __file_chflags F
+Base __file_chmod F
+Base __file_chown F
+Base __file_exec F
+Base __file_exec_paths F
+Base __file_get_fs_options F
+Base __file_get_storage_info F
+Base __file_get_translator F
+Base __file_get_translator_cntl F
+Base __file_getcontrol F
+Base __file_getfh F
+Base __file_getlinknode F
+Base __file_lock F
+Base __file_lock_stat F
+Base __file_notice_changes F
+Base __file_record_lock F
+Base __file_reparent F
+Base __file_set_size F
+Base __file_set_translator F
+Base __file_statfs F
+Base __file_sync F
+Base __file_syncfs F
+Base __file_utimens F
+Base __file_utimes F
+Base __fsys_forward F
+Base __fsys_get_children F
+Base __fsys_get_options F
+Base __fsys_get_source F
+Base __fsys_getfile F
+Base __fsys_getpriv F
+Base __fsys_getroot F
+Base __fsys_goaway F
+Base __fsys_init F
+Base __fsys_set_options F
+Base __fsys_startup F
+Base __fsys_syncfs F
+Base __gsync_wait_intr F
+Base __ifsock_getsockaddr F
+Base __interrupt_operation F
+Base __io_async F
+Base __io_async_reply F
+Base __io_async_request F
+Base __io_clear_some_openmodes F
+Base __io_clear_some_openmodes_reply F
+Base __io_clear_some_openmodes_request F
+Base __io_duplicate F
+Base __io_duplicate_reply F
+Base __io_duplicate_request F
+Base __io_eofnotify F
+Base __io_eofnotify_reply F
+Base __io_eofnotify_request F
+Base __io_get_conch F
+Base __io_get_conch_reply F
+Base __io_get_conch_request F
+Base __io_get_icky_async_id F
+Base __io_get_icky_async_id_reply F
+Base __io_get_icky_async_id_request F
+Base __io_get_openmodes F
+Base __io_get_openmodes_reply F
+Base __io_get_openmodes_request F
+Base __io_get_owner F
+Base __io_get_owner_reply F
+Base __io_get_owner_request F
+Base __io_identity F
+Base __io_identity_reply F
+Base __io_identity_request F
+Base __io_map F
+Base __io_map_cntl F
+Base __io_map_cntl_reply F
+Base __io_map_cntl_request F
+Base __io_map_reply F
+Base __io_map_request F
+Base __io_mod_owner F
+Base __io_mod_owner_reply F
+Base __io_mod_owner_request F
+Base __io_pathconf F
+Base __io_pathconf_reply F
+Base __io_pathconf_request F
+Base __io_postnotify F
+Base __io_postnotify_reply F
+Base __io_postnotify_request F
+Base __io_prenotify F
+Base __io_prenotify_reply F
+Base __io_prenotify_request F
+Base __io_read F
+Base __io_read_reply F
+Base __io_read_request F
+Base __io_readable F
+Base __io_readable_reply F
+Base __io_readable_request F
+Base __io_readnotify F
+Base __io_readnotify_reply F
+Base __io_readnotify_request F
+Base __io_readsleep F
+Base __io_readsleep_reply F
+Base __io_readsleep_request F
+Base __io_reauthenticate F
+Base __io_release_conch F
+Base __io_release_conch_reply F
+Base __io_release_conch_request F
+Base __io_restrict_auth F
+Base __io_restrict_auth_reply F
+Base __io_restrict_auth_request F
+Base __io_revoke F
+Base __io_revoke_reply F
+Base __io_revoke_request F
+Base __io_seek F
+Base __io_seek_reply F
+Base __io_seek_request F
+Base __io_select F
+Base __io_select_reply F
+Base __io_select_request F
+Base __io_select_timeout F
+Base __io_select_timeout_reply F
+Base __io_select_timeout_request F
+Base __io_server_version F
+Base __io_server_version_reply F
+Base __io_server_version_request F
+Base __io_set_all_openmodes F
+Base __io_set_all_openmodes_reply F
+Base __io_set_all_openmodes_request F
+Base __io_set_some_openmodes F
+Base __io_set_some_openmodes_reply F
+Base __io_set_some_openmodes_request F
+Base __io_sigio F
+Base __io_sigio_reply F
+Base __io_sigio_request F
+Base __io_stat F
+Base __io_stat_reply F
+Base __io_stat_request F
+Base __io_write F
+Base __io_write_reply F
+Base __io_write_request F
+Base __login_get_idle_time F
+Base __login_get_input_devices F
+Base __login_get_location F
+Base __login_get_login_collection F
+Base __login_message_user F
+Base __msg_add_auth F
+Base __msg_del_auth F
+Base __msg_describe_ports F
+Base __msg_get_dtable F
+Base __msg_get_env_variable F
+Base __msg_get_environment F
+Base __msg_get_fd F
+Base __msg_get_init_int F
+Base __msg_get_init_ints F
+Base __msg_get_init_port F
+Base __msg_get_init_ports F
+Base __msg_proc_newids F
+Base __msg_report_wait F
+Base __msg_set_dtable F
+Base __msg_set_env_variable F
+Base __msg_set_environment F
+Base __msg_set_fd F
+Base __msg_set_init_int F
+Base __msg_set_init_ints F
+Base __msg_set_init_port F
+Base __msg_set_init_ports F
+Base __msg_sig_post F
+Base __msg_sig_post_reply F
+Base __msg_sig_post_request F
+Base __msg_sig_post_untraced F
+Base __msg_sig_post_untraced_reply F
+Base __msg_sig_post_untraced_request F
+Base __password_check_group F
+Base __password_check_user F
+Base __pci_conf_read F
+Base __pci_conf_write F
+Base __pci_get_dev_regions F
+Base __pci_get_dev_rom F
+Base __pci_get_ndevs F
+Base __pfinet_getroutes F
+Base __pfinet_siocgifconf F
+Base __proc_child F
+Base __proc_child_request F
+Base __proc_dostop F
+Base __proc_dostop_request F
+Base __proc_execdata_notify F
+Base __proc_execdata_notify_request F
+Base __proc_get_arg_locations F
+Base __proc_get_arg_locations_request F
+Base __proc_get_code F
+Base __proc_get_code_request F
+Base __proc_get_entry F
+Base __proc_get_exe F
+Base __proc_get_tty F
+Base __proc_get_tty_request F
+Base __proc_getallpids F
+Base __proc_getallpids_request F
+Base __proc_getchildren_rusage F
+Base __proc_getexecdata F
+Base __proc_getexecdata_request F
+Base __proc_getlogin F
+Base __proc_getlogin_request F
+Base __proc_getloginid F
+Base __proc_getloginid_request F
+Base __proc_getloginpids F
+Base __proc_getloginpids_request F
+Base __proc_getmsgport F
+Base __proc_getmsgport_request F
+Base __proc_getnports F
+Base __proc_getnports_request F
+Base __proc_getpgrp F
+Base __proc_getpgrp_request F
+Base __proc_getpgrppids F
+Base __proc_getpgrppids_request F
+Base __proc_getpids F
+Base __proc_getpids_request F
+Base __proc_getprivports F
+Base __proc_getprivports_request F
+Base __proc_getprocargs F
+Base __proc_getprocargs_request F
+Base __proc_getprocenv F
+Base __proc_getprocenv_request F
+Base __proc_getprocinfo F
+Base __proc_getprocinfo_request F
+Base __proc_getsessionpgids F
+Base __proc_getsessionpgids_request F
+Base __proc_getsessionpids F
+Base __proc_getsessionpids_request F
+Base __proc_getsid F
+Base __proc_getsid_request F
+Base __proc_getsidport F
+Base __proc_getsidport_request F
+Base __proc_handle_exceptions F
+Base __proc_handle_exceptions_request F
+Base __proc_is_important F
+Base __proc_is_important_request F
+Base __proc_make_login_coll F
+Base __proc_make_login_coll_request F
+Base __proc_make_task_namespace F
+Base __proc_make_task_namespace_request F
+Base __proc_mark_cont F
+Base __proc_mark_cont_request F
+Base __proc_mark_exec F
+Base __proc_mark_exec_request F
+Base __proc_mark_exit F
+Base __proc_mark_exit_request F
+Base __proc_mark_important F
+Base __proc_mark_important_request F
+Base __proc_mark_stop F
+Base __proc_mark_stop_request F
+Base __proc_mark_traced F
+Base __proc_mark_traced_request F
+Base __proc_mod_stopchild F
+Base __proc_mod_stopchild_request F
+Base __proc_pid2proc F
+Base __proc_pid2proc_request F
+Base __proc_pid2task F
+Base __proc_pid2task_request F
+Base __proc_proc2task F
+Base __proc_proc2task_request F
+Base __proc_reassign F
+Base __proc_reassign_request F
+Base __proc_reauthenticate F
+Base __proc_reauthenticate_complete F
+Base __proc_reauthenticate_reassign F
+Base __proc_reauthenticate_request F
+Base __proc_register_version F
+Base __proc_register_version_request F
+Base __proc_set_arg_locations F
+Base __proc_set_arg_locations_request F
+Base __proc_set_code F
+Base __proc_set_code_request F
+Base __proc_set_entry F
+Base __proc_set_exe F
+Base __proc_set_init_task F
+Base __proc_set_init_task_request F
+Base __proc_setexecdata F
+Base __proc_setexecdata_request F
+Base __proc_setlogin F
+Base __proc_setlogin_request F
+Base __proc_setmsgport F
+Base __proc_setmsgport_request F
+Base __proc_setowner F
+Base __proc_setowner_request F
+Base __proc_setpgrp F
+Base __proc_setpgrp_request F
+Base __proc_setsid F
+Base __proc_setsid_request F
+Base __proc_task2pid F
+Base __proc_task2pid_request F
+Base __proc_task2proc F
+Base __proc_task2proc_request F
+Base __proc_uname F
+Base __proc_uname_request F
+Base __proc_wait F
+Base __proc_wait_request F
+Base __proc_waitid F
+Base __socket_accept F
+Base __socket_bind F
+Base __socket_connect F
+Base __socket_connect2 F
+Base __socket_create F
+Base __socket_create_address F
+Base __socket_fabricate_address F
+Base __socket_getopt F
+Base __socket_listen F
+Base __socket_name F
+Base __socket_peername F
+Base __socket_recv F
+Base __socket_send F
+Base __socket_setopt F
+Base __socket_shutdown F
+Base __socket_whatis_address F
+Base __startup_authinit F
+Base __startup_essential_task F
+Base __startup_procinit F
+Base __startup_reboot F
+Base __startup_request_notification F
+Base __term_get_bottom_type F
+Base __term_get_nodename F
+Base __term_get_peername F
+Base __term_getctty F
+Base __term_on_hurddev F
+Base __term_on_machdev F
+Base __term_on_pty F
+Base __term_open_ctty F
+Base __term_set_filenode F
+Base __term_set_nodename F
+Base __termctty_open_terminal F
+Base __tioctl_tioccbrk F
+Base __tioctl_tioccdtr F
+Base __tioctl_tiocdrain F
+Base __tioctl_tiocexcl F
+Base __tioctl_tiocext F
+Base __tioctl_tiocflush F
+Base __tioctl_tiocgeta F
+Base __tioctl_tiocgetd F
+Base __tioctl_tiocgpgrp F
+Base __tioctl_tiocgwinsz F
+Base __tioctl_tiocmbic F
+Base __tioctl_tiocmbis F
+Base __tioctl_tiocmget F
+Base __tioctl_tiocmodg F
+Base __tioctl_tiocmods F
+Base __tioctl_tiocmset F
+Base __tioctl_tiocnxcl F
+Base __tioctl_tiocoutq F
+Base __tioctl_tiocpkt F
+Base __tioctl_tiocremote F
+Base __tioctl_tiocsbrk F
+Base __tioctl_tiocsdtr F
+Base __tioctl_tiocseta F
+Base __tioctl_tiocsetaf F
+Base __tioctl_tiocsetaw F
+Base __tioctl_tiocsetd F
+Base __tioctl_tiocsig F
+Base __tioctl_tiocspgrp F
+Base __tioctl_tiocstart F
+Base __tioctl_tiocsti F
+Base __tioctl_tiocstop F
+Base __tioctl_tiocswinsz F
+Base __tioctl_tiocucntl F
+Base _hurdsig_fault_exc_server F
+Base _hurdsig_fault_exc_server_routines D 0x8
+Base auth_getids F
+Base auth_makeauth F
+Base auth_server_authenticate F
+Base auth_user_authenticate F
+Base crash_dump_task F
+Base dir_link F
+Base dir_lookup F
+Base dir_mkdir F
+Base dir_mkfile F
+Base dir_notice_changes F
+Base dir_readdir F
+Base dir_rename F
+Base dir_rmdir F
+Base dir_unlink F
+Base exec_exec F
+Base exec_exec_paths F
+Base exec_init F
+Base exec_setexecdata F
+Base exec_startup_get_info F
+Base file_chauthor F
+Base file_check_access F
+Base file_chflags F
+Base file_chmod F
+Base file_chown F
+Base file_exec F
+Base file_exec_paths F
+Base file_get_fs_options F
+Base file_get_storage_info F
+Base file_get_translator F
+Base file_get_translator_cntl F
+Base file_getcontrol F
+Base file_getfh F
+Base file_getlinknode F
+Base file_lock F
+Base file_lock_stat F
+Base file_notice_changes F
+Base file_record_lock F
+Base file_reparent F
+Base file_set_size F
+Base file_set_translator F
+Base file_statfs F
+Base file_sync F
+Base file_syncfs F
+Base file_utimens F
+Base file_utimes F
+Base fsys_forward F
+Base fsys_get_children F
+Base fsys_get_options F
+Base fsys_get_source F
+Base fsys_getfile F
+Base fsys_getpriv F
+Base fsys_getroot F
+Base fsys_goaway F
+Base fsys_init F
+Base fsys_set_options F
+Base fsys_startup F
+Base fsys_syncfs F
+Base gsync_wait_intr F
+Base ifsock_getsockaddr F
+Base interrupt_operation F
+Base io_async F
+Base io_async_reply F
+Base io_async_request F
+Base io_clear_some_openmodes F
+Base io_clear_some_openmodes_reply F
+Base io_clear_some_openmodes_request F
+Base io_duplicate F
+Base io_duplicate_reply F
+Base io_duplicate_request F
+Base io_eofnotify F
+Base io_eofnotify_reply F
+Base io_eofnotify_request F
+Base io_get_conch F
+Base io_get_conch_reply F
+Base io_get_conch_request F
+Base io_get_icky_async_id F
+Base io_get_icky_async_id_reply F
+Base io_get_icky_async_id_request F
+Base io_get_openmodes F
+Base io_get_openmodes_reply F
+Base io_get_openmodes_request F
+Base io_get_owner F
+Base io_get_owner_reply F
+Base io_get_owner_request F
+Base io_identity F
+Base io_identity_reply F
+Base io_identity_request F
+Base io_map F
+Base io_map_cntl F
+Base io_map_cntl_reply F
+Base io_map_cntl_request F
+Base io_map_reply F
+Base io_map_request F
+Base io_mod_owner F
+Base io_mod_owner_reply F
+Base io_mod_owner_request F
+Base io_pathconf F
+Base io_pathconf_reply F
+Base io_pathconf_request F
+Base io_postnotify F
+Base io_postnotify_reply F
+Base io_postnotify_request F
+Base io_prenotify F
+Base io_prenotify_reply F
+Base io_prenotify_request F
+Base io_read F
+Base io_read_reply F
+Base io_read_request F
+Base io_readable F
+Base io_readable_reply F
+Base io_readable_request F
+Base io_readnotify F
+Base io_readnotify_reply F
+Base io_readnotify_request F
+Base io_readsleep F
+Base io_readsleep_reply F
+Base io_readsleep_request F
+Base io_reauthenticate F
+Base io_release_conch F
+Base io_release_conch_reply F
+Base io_release_conch_request F
+Base io_restrict_auth F
+Base io_restrict_auth_reply F
+Base io_restrict_auth_request F
+Base io_revoke F
+Base io_revoke_reply F
+Base io_revoke_request F
+Base io_seek F
+Base io_seek_reply F
+Base io_seek_request F
+Base io_select F
+Base io_select_reply F
+Base io_select_request F
+Base io_select_timeout F
+Base io_select_timeout_reply F
+Base io_select_timeout_request F
+Base io_server_version F
+Base io_server_version_reply F
+Base io_server_version_request F
+Base io_set_all_openmodes F
+Base io_set_all_openmodes_reply F
+Base io_set_all_openmodes_request F
+Base io_set_some_openmodes F
+Base io_set_some_openmodes_reply F
+Base io_set_some_openmodes_request F
+Base io_sigio F
+Base io_sigio_reply F
+Base io_sigio_request F
+Base io_stat F
+Base io_stat_reply F
+Base io_stat_request F
+Base io_write F
+Base io_write_reply F
+Base io_write_request F
+Base login_get_idle_time F
+Base login_get_input_devices F
+Base login_get_location F
+Base login_get_login_collection F
+Base login_message_user F
+Base msg_add_auth F
+Base msg_del_auth F
+Base msg_describe_ports F
+Base msg_get_dtable F
+Base msg_get_env_variable F
+Base msg_get_environment F
+Base msg_get_fd F
+Base msg_get_init_int F
+Base msg_get_init_ints F
+Base msg_get_init_port F
+Base msg_get_init_ports F
+Base msg_proc_newids F
+Base msg_report_wait F
+Base msg_set_dtable F
+Base msg_set_env_variable F
+Base msg_set_environment F
+Base msg_set_fd F
+Base msg_set_init_int F
+Base msg_set_init_ints F
+Base msg_set_init_port F
+Base msg_set_init_ports F
+Base msg_sig_post F
+Base msg_sig_post_reply F
+Base msg_sig_post_request F
+Base msg_sig_post_untraced F
+Base msg_sig_post_untraced_reply F
+Base msg_sig_post_untraced_request F
+Base password_check_group F
+Base password_check_user F
+Base pci_conf_read F
+Base pci_conf_write F
+Base pci_get_dev_regions F
+Base pci_get_dev_rom F
+Base pci_get_ndevs F
+Base pfinet_getroutes F
+Base pfinet_siocgifconf F
+Base proc_child F
+Base proc_child_request F
+Base proc_dostop F
+Base proc_dostop_request F
+Base proc_execdata_notify F
+Base proc_execdata_notify_request F
+Base proc_get_arg_locations F
+Base proc_get_arg_locations_request F
+Base proc_get_code F
+Base proc_get_code_request F
+Base proc_get_entry F
+Base proc_get_exe F
+Base proc_get_tty F
+Base proc_get_tty_request F
+Base proc_getallpids F
+Base proc_getallpids_request F
+Base proc_getchildren_rusage F
+Base proc_getexecdata F
+Base proc_getexecdata_request F
+Base proc_getlogin F
+Base proc_getlogin_request F
+Base proc_getloginid F
+Base proc_getloginid_request F
+Base proc_getloginpids F
+Base proc_getloginpids_request F
+Base proc_getmsgport F
+Base proc_getmsgport_request F
+Base proc_getnports F
+Base proc_getnports_request F
+Base proc_getpgrp F
+Base proc_getpgrp_request F
+Base proc_getpgrppids F
+Base proc_getpgrppids_request F
+Base proc_getpids F
+Base proc_getpids_request F
+Base proc_getprivports F
+Base proc_getprivports_request F
+Base proc_getprocargs F
+Base proc_getprocargs_request F
+Base proc_getprocenv F
+Base proc_getprocenv_request F
+Base proc_getprocinfo F
+Base proc_getprocinfo_request F
+Base proc_getsessionpgids F
+Base proc_getsessionpgids_request F
+Base proc_getsessionpids F
+Base proc_getsessionpids_request F
+Base proc_getsid F
+Base proc_getsid_request F
+Base proc_getsidport F
+Base proc_getsidport_request F
+Base proc_handle_exceptions F
+Base proc_handle_exceptions_request F
+Base proc_is_important F
+Base proc_is_important_request F
+Base proc_make_login_coll F
+Base proc_make_login_coll_request F
+Base proc_make_task_namespace F
+Base proc_make_task_namespace_request F
+Base proc_mark_cont F
+Base proc_mark_cont_request F
+Base proc_mark_exec F
+Base proc_mark_exec_request F
+Base proc_mark_exit F
+Base proc_mark_exit_request F
+Base proc_mark_important F
+Base proc_mark_important_request F
+Base proc_mark_stop F
+Base proc_mark_stop_request F
+Base proc_mark_traced F
+Base proc_mark_traced_request F
+Base proc_mod_stopchild F
+Base proc_mod_stopchild_request F
+Base proc_pid2proc F
+Base proc_pid2proc_request F
+Base proc_pid2task F
+Base proc_pid2task_request F
+Base proc_proc2task F
+Base proc_proc2task_request F
+Base proc_reassign F
+Base proc_reassign_request F
+Base proc_reauthenticate F
+Base proc_reauthenticate_complete F
+Base proc_reauthenticate_reassign F
+Base proc_reauthenticate_request F
+Base proc_register_version F
+Base proc_register_version_request F
+Base proc_set_arg_locations F
+Base proc_set_arg_locations_request F
+Base proc_set_code F
+Base proc_set_code_request F
+Base proc_set_entry F
+Base proc_set_exe F
+Base proc_set_init_task F
+Base proc_set_init_task_request F
+Base proc_setexecdata F
+Base proc_setexecdata_request F
+Base proc_setlogin F
+Base proc_setlogin_request F
+Base proc_setmsgport F
+Base proc_setmsgport_request F
+Base proc_setowner F
+Base proc_setowner_request F
+Base proc_setpgrp F
+Base proc_setpgrp_request F
+Base proc_setsid F
+Base proc_setsid_request F
+Base proc_task2pid F
+Base proc_task2pid_request F
+Base proc_task2proc F
+Base proc_task2proc_request F
+Base proc_uname F
+Base proc_uname_request F
+Base proc_wait F
+Base proc_wait_request F
+Base proc_waitid F
+Base socket_accept F
+Base socket_bind F
+Base socket_connect F
+Base socket_connect2 F
+Base socket_create F
+Base socket_create_address F
+Base socket_fabricate_address F
+Base socket_getopt F
+Base socket_listen F
+Base socket_name F
+Base socket_peername F
+Base socket_recv F
+Base socket_send F
+Base socket_setopt F
+Base socket_shutdown F
+Base socket_whatis_address F
+Base startup_authinit F
+Base startup_essential_task F
+Base startup_procinit F
+Base startup_reboot F
+Base startup_request_notification F
+Base term_get_bottom_type F
+Base term_get_nodename F
+Base term_get_peername F
+Base term_getctty F
+Base term_on_hurddev F
+Base term_on_machdev F
+Base term_on_pty F
+Base term_open_ctty F
+Base term_set_filenode F
+Base term_set_nodename F
+Base termctty_open_terminal F
+Base tioctl_tioccbrk F
+Base tioctl_tioccdtr F
+Base tioctl_tiocdrain F
+Base tioctl_tiocexcl F
+Base tioctl_tiocext F
+Base tioctl_tiocflush F
+Base tioctl_tiocgeta F
+Base tioctl_tiocgetd F
+Base tioctl_tiocgpgrp F
+Base tioctl_tiocgwinsz F
+Base tioctl_tiocmbic F
+Base tioctl_tiocmbis F
+Base tioctl_tiocmget F
+Base tioctl_tiocmodg F
+Base tioctl_tiocmods F
+Base tioctl_tiocmset F
+Base tioctl_tiocnxcl F
+Base tioctl_tiocoutq F
+Base tioctl_tiocpkt F
+Base tioctl_tiocremote F
+Base tioctl_tiocsbrk F
+Base tioctl_tiocsdtr F
+Base tioctl_tiocseta F
+Base tioctl_tiocsetaf F
+Base tioctl_tiocsetaw F
+Base tioctl_tiocsetd F
+Base tioctl_tiocsig F
+Base tioctl_tiocspgrp F
+Base tioctl_tiocstart F
+Base tioctl_tiocsti F
+Base tioctl_tiocstop F
+Base tioctl_tiocswinsz F
+Base tioctl_tiocucntl F
diff --git a/sysdeps/mach/hurd/x86_64/libc.abilist b/sysdeps/mach/hurd/x86_64/libc.abilist
index 56da3c562b..b7eaa5926c 100644
--- a/sysdeps/mach/hurd/x86_64/libc.abilist
+++ b/sysdeps/mach/hurd/x86_64/libc.abilist
@@ -610,7 +610,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
diff --git a/sysdeps/mach/libmachuser.abilist b/sysdeps/mach/libmachuser.abilist
index e69de29bb2..be9657d4ce 100644
--- a/sysdeps/mach/libmachuser.abilist
+++ b/sysdeps/mach/libmachuser.abilist
@@ -0,0 +1,346 @@
+Base _S_exc_server F
+Base _S_exc_server_routines D 0x8
+Base __default_pager_info F
+Base __default_pager_object_create F
+Base __default_pager_object_pages F
+Base __default_pager_objects F
+Base __default_pager_paging_file F
+Base __default_pager_register_fileserver F
+Base __device_close F
+Base __device_get_status F
+Base __device_intr_ack F
+Base __device_intr_register F
+Base __device_map F
+Base __device_open F
+Base __device_open_new F
+Base __device_open_new_request F
+Base __device_open_request F
+Base __device_read F
+Base __device_read_inband F
+Base __device_read_request F
+Base __device_read_request_inband F
+Base __device_set_filter F
+Base __device_set_status F
+Base __device_write F
+Base __device_write_inband F
+Base __device_write_request F
+Base __device_write_request_inband F
+Base __exception_raise F
+Base __gsync_requeue F
+Base __gsync_wait F
+Base __gsync_wake F
+Base __host_adjust_time F
+Base __host_adjust_time64 F
+Base __host_get_kernel_version F
+Base __host_get_time F
+Base __host_get_time64 F
+Base __host_info F
+Base __host_processor_set_priv F
+Base __host_processor_sets F
+Base __host_processors F
+Base __host_reboot F
+Base __host_set_time F
+Base __host_set_time64 F
+Base __i386_get_gdt F
+Base __i386_get_ldt F
+Base __i386_get_xstate_size F
+Base __i386_io_perm_create F
+Base __i386_io_perm_modify F
+Base __i386_set_gdt F
+Base __i386_set_ldt F
+Base __mach_notify_new_task F
+Base __mach_port_allocate_name_rpc F
+Base __mach_port_allocate_rpc F
+Base __mach_port_clear_protected_payload F
+Base __mach_port_deallocate_rpc F
+Base __mach_port_destroy F
+Base __mach_port_extract_right F
+Base __mach_port_get_receive_status F
+Base __mach_port_get_refs F
+Base __mach_port_get_set_status F
+Base __mach_port_insert_right_rpc F
+Base __mach_port_mod_refs F
+Base __mach_port_move_member F
+Base __mach_port_names F
+Base __mach_port_rename F
+Base __mach_port_request_notification F
+Base __mach_port_set_mscount F
+Base __mach_port_set_protected_payload F
+Base __mach_port_set_qlimit F
+Base __mach_port_set_seqno F
+Base __mach_port_type F
+Base __mach_ports_lookup F
+Base __mach_ports_register F
+Base __memory_object_change_attributes F
+Base __memory_object_change_completed F
+Base __memory_object_copy F
+Base __memory_object_create F
+Base __memory_object_create_proxy F
+Base __memory_object_data_error F
+Base __memory_object_data_initialize F
+Base __memory_object_data_request F
+Base __memory_object_data_return F
+Base __memory_object_data_supply F
+Base __memory_object_data_unavailable F
+Base __memory_object_data_unlock F
+Base __memory_object_destroy F
+Base __memory_object_get_attributes F
+Base __memory_object_init F
+Base __memory_object_lock_completed F
+Base __memory_object_lock_request F
+Base __memory_object_ready F
+Base __memory_object_supply_completed F
+Base __memory_object_terminate F
+Base __processor_assign F
+Base __processor_control F
+Base __processor_exit F
+Base __processor_get_assignment F
+Base __processor_info F
+Base __processor_set_create F
+Base __processor_set_default F
+Base __processor_set_destroy F
+Base __processor_set_info F
+Base __processor_set_max_priority F
+Base __processor_set_policy_disable F
+Base __processor_set_policy_enable F
+Base __processor_set_tasks F
+Base __processor_set_threads F
+Base __processor_start F
+Base __register_new_task_notification F
+Base __task_assign F
+Base __task_assign_default F
+Base __task_create_rpc F
+Base __task_disable_pc_sampling F
+Base __task_enable_pc_sampling F
+Base __task_get_assignment F
+Base __task_get_emulation_vector F
+Base __task_get_sampled_pcs F
+Base __task_get_special_port F
+Base __task_info F
+Base __task_priority F
+Base __task_ras_control F
+Base __task_resume F
+Base __task_set_emulation F
+Base __task_set_emulation_vector F
+Base __task_set_essential F
+Base __task_set_name F
+Base __task_set_special_port_rpc F
+Base __task_suspend_rpc F
+Base __task_terminate_rpc F
+Base __task_threads F
+Base __thread_abort F
+Base __thread_assign F
+Base __thread_assign_default F
+Base __thread_create F
+Base __thread_depress_abort_rpc F
+Base __thread_disable_pc_sampling F
+Base __thread_enable_pc_sampling F
+Base __thread_get_assignment F
+Base __thread_get_name F
+Base __thread_get_sampled_pcs F
+Base __thread_get_special_port F
+Base __thread_get_state F
+Base __thread_info F
+Base __thread_max_priority F
+Base __thread_policy F
+Base __thread_priority F
+Base __thread_resume F
+Base __thread_set_name F
+Base __thread_set_special_port F
+Base __thread_set_state F
+Base __thread_suspend F
+Base __thread_terminate F
+Base __thread_terminate_release F
+Base __thread_wire F
+Base __vm_allocate_contiguous F
+Base __vm_allocate_rpc F
+Base __vm_cache_statistics F
+Base __vm_copy F
+Base __vm_deallocate_rpc F
+Base __vm_inherit F
+Base __vm_machine_attribute F
+Base __vm_map_rpc F
+Base __vm_msync F
+Base __vm_object_sync F
+Base __vm_pages_phys F
+Base __vm_protect F
+Base __vm_read F
+Base __vm_region F
+Base __vm_region_create_proxy F
+Base __vm_set_default_memory_manager F
+Base __vm_statistics F
+Base __vm_wire F
+Base __vm_wire_all F
+Base __vm_write F
+Base default_pager_info F
+Base default_pager_object_create F
+Base default_pager_object_pages F
+Base default_pager_objects F
+Base default_pager_paging_file F
+Base default_pager_register_fileserver F
+Base device_close F
+Base device_get_status F
+Base device_intr_ack F
+Base device_intr_register F
+Base device_map F
+Base device_open F
+Base device_open_new F
+Base device_open_new_request F
+Base device_open_request F
+Base device_read F
+Base device_read_inband F
+Base device_read_request F
+Base device_read_request_inband F
+Base device_set_filter F
+Base device_set_status F
+Base device_write F
+Base device_write_inband F
+Base device_write_request F
+Base device_write_request_inband F
+Base exception_raise F
+Base gsync_requeue F
+Base gsync_wait F
+Base gsync_wake F
+Base host_adjust_time F
+Base host_adjust_time64 F
+Base host_get_kernel_version F
+Base host_get_time F
+Base host_get_time64 F
+Base host_info F
+Base host_processor_set_priv F
+Base host_processor_sets F
+Base host_processors F
+Base host_reboot F
+Base host_set_time F
+Base host_set_time64 F
+Base i386_get_gdt F
+Base i386_get_ldt F
+Base i386_get_xstate_size F
+Base i386_io_perm_create F
+Base i386_io_perm_modify F
+Base i386_set_gdt F
+Base i386_set_ldt F
+Base mach_notify_new_task F
+Base mach_port_allocate_name_rpc F
+Base mach_port_allocate_rpc F
+Base mach_port_clear_protected_payload F
+Base mach_port_deallocate_rpc F
+Base mach_port_destroy F
+Base mach_port_extract_right F
+Base mach_port_get_receive_status F
+Base mach_port_get_refs F
+Base mach_port_get_set_status F
+Base mach_port_insert_right_rpc F
+Base mach_port_mod_refs F
+Base mach_port_move_member F
+Base mach_port_names F
+Base mach_port_rename F
+Base mach_port_request_notification F
+Base mach_port_set_mscount F
+Base mach_port_set_protected_payload F
+Base mach_port_set_qlimit F
+Base mach_port_set_seqno F
+Base mach_port_type F
+Base mach_ports_lookup F
+Base mach_ports_register F
+Base memory_object_change_attributes F
+Base memory_object_change_completed F
+Base memory_object_copy F
+Base memory_object_create F
+Base memory_object_create_proxy F
+Base memory_object_data_error F
+Base memory_object_data_initialize F
+Base memory_object_data_request F
+Base memory_object_data_return F
+Base memory_object_data_supply F
+Base memory_object_data_unavailable F
+Base memory_object_data_unlock F
+Base memory_object_destroy F
+Base memory_object_get_attributes F
+Base memory_object_init F
+Base memory_object_lock_completed F
+Base memory_object_lock_request F
+Base memory_object_ready F
+Base memory_object_supply_completed F
+Base memory_object_terminate F
+Base processor_assign F
+Base processor_control F
+Base processor_exit F
+Base processor_get_assignment F
+Base processor_info F
+Base processor_set_create F
+Base processor_set_default F
+Base processor_set_destroy F
+Base processor_set_info F
+Base processor_set_max_priority F
+Base processor_set_policy_disable F
+Base processor_set_policy_enable F
+Base processor_set_tasks F
+Base processor_set_threads F
+Base processor_start F
+Base register_new_task_notification F
+Base task_assign F
+Base task_assign_default F
+Base task_create_rpc F
+Base task_disable_pc_sampling F
+Base task_enable_pc_sampling F
+Base task_get_assignment F
+Base task_get_emulation_vector F
+Base task_get_sampled_pcs F
+Base task_get_special_port F
+Base task_info F
+Base task_priority F
+Base task_ras_control F
+Base task_resume F
+Base task_set_emulation F
+Base task_set_emulation_vector F
+Base task_set_essential F
+Base task_set_name F
+Base task_set_special_port_rpc F
+Base task_suspend_rpc F
+Base task_terminate_rpc F
+Base task_threads F
+Base thread_abort F
+Base thread_assign F
+Base thread_assign_default F
+Base thread_create F
+Base thread_depress_abort_rpc F
+Base thread_disable_pc_sampling F
+Base thread_enable_pc_sampling F
+Base thread_get_assignment F
+Base thread_get_name F
+Base thread_get_sampled_pcs F
+Base thread_get_special_port F
+Base thread_get_state F
+Base thread_info F
+Base thread_max_priority F
+Base thread_policy F
+Base thread_priority F
+Base thread_resume F
+Base thread_set_name F
+Base thread_set_special_port F
+Base thread_set_state F
+Base thread_suspend F
+Base thread_terminate F
+Base thread_terminate_release F
+Base thread_wire F
+Base vm_allocate_contiguous F
+Base vm_allocate_rpc F
+Base vm_cache_statistics F
+Base vm_copy F
+Base vm_deallocate_rpc F
+Base vm_inherit F
+Base vm_machine_attribute F
+Base vm_map_rpc F
+Base vm_msync F
+Base vm_object_sync F
+Base vm_pages_phys F
+Base vm_protect F
+Base vm_read F
+Base vm_region F
+Base vm_region_create_proxy F
+Base vm_set_default_memory_manager F
+Base vm_statistics F
+Base vm_wire F
+Base vm_wire_all F
+Base vm_write F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index d7610c9e56..2765df9f48 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1285,4 +1285,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index d6bdc43848..435edd7fb5 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1444,4 +1444,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
index 0f0bee2b6a..b859f1ad37 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -950,4 +950,6 @@ GLIBC_2.42 rsqrtf32 F
 GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
index 0f0bee2b6a..b859f1ad37 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -950,4 +950,6 @@ GLIBC_2.42 rsqrtf32 F
 GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index 7a4a015ddb..b8e0f55ecb 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -950,4 +950,6 @@ GLIBC_2.42 rsqrtf32 F
 GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index 88990899c3..97e31f6e17 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1324,4 +1324,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index 0f0bee2b6a..b859f1ad37 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -950,4 +950,6 @@ GLIBC_2.42 rsqrtf32 F
 GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
index 9dba60bafb..6a6653b702 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
@@ -986,3 +986,5 @@ GLIBC_2.42 rsqrtf32 F
 GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index dc849ffbbf..9cf6d45965 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -950,4 +950,6 @@ GLIBC_2.42 rsqrtf32 F
 GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
index dc849ffbbf..9cf6d45965 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -950,4 +950,6 @@ GLIBC_2.42 rsqrtf32 F
 GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index 60f91bc304..204bcb4399 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -950,4 +950,6 @@ GLIBC_2.42 rsqrtf32 F
 GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index 0506c9897e..e3d797b0ee 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1285,4 +1285,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index 0b85c489fa..a028b2f70d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1097,4 +1097,6 @@ GLIBC_2.42 rsqrtf32 F
 GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index 7664d14a62..c33bb04458 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1096,4 +1096,6 @@ GLIBC_2.42 rsqrtf32 F
 GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index c2c6518062..6a2bc3866a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1090,4 +1090,6 @@ GLIBC_2.42 rsqrtf32 F
 GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
index b1c1258220..53648e146d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1474,4 +1474,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index b1fd8e1e1c..f85ccc65d3 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1388,4 +1388,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index 7de9d94ebb..35151f933e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1388,4 +1388,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
index e6bf785864..22b8fe7b1b 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -950,4 +950,6 @@ GLIBC_2.42 rsqrtf32 F
 GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
index e6bf785864..22b8fe7b1b 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -950,4 +950,6 @@ GLIBC_2.42 rsqrtf32 F
 GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index fb351cc3e0..91a7b3aa91 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1395,4 +1395,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index 994a490880..f5166d9e79 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1285,4 +1285,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index 49b0db95fd..455d710d3e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1318,4 +1318,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index 705c92e094..601bd0f5c5 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1318,4 +1318,6 @@ GLIBC_2.42 rsqrtf32x F
 GLIBC_2.42 rsqrtf64 F
 GLIBC_2.42 rsqrtf64x F
 GLIBC_2.42 rsqrtl F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
-- 
2.43.0



More information about the Libc-alpha mailing list