public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] resolv: Move libanl into libc (if libpthread is in libc)
@ 2021-06-21 20:56 Florian Weimer
  2021-07-01 17:39 ` Carlos O'Donell
  0 siblings, 1 reply; 2+ messages in thread
From: Florian Weimer @ 2021-06-21 20:56 UTC (permalink / raw)
  To: libc-alpha

The symbols gai_cancel, gai_error, gai_suspend, getaddrinfo_a,
__gai_suspend_time64 were moved using scripts/move-symbol-to-libc.py.

For Hurd (which remains !PTHREAD_IN_LIBC), a few #define redirects
had to be added because several pthread functions are not available
under __.  (Linux uses __ prefixes for most hidden aliases, and has
to in some cases to avoid linknamespace issues.)

Tested on i686-linux-gnu and x86_64-linux-gnu.  Built with
build-many-glibcs.py.

I can split this up further if requested.

Thanks,
Florian
---
 Makeconfig                                         |  2 +
 include/netdb.h                                    |  4 ++
 resolv/Makefile                                    |  7 +++-
 resolv/Versions                                    | 16 ++++++++
 resolv/gai_cancel.c                                | 17 ++++++--
 resolv/gai_error.c                                 | 13 +++++-
 resolv/gai_misc.c                                  | 48 +++++++++++++---------
 resolv/gai_misc.h                                  |  1 +
 resolv/gai_notify.c                                | 15 +++++--
 resolv/gai_sigqueue.c                              |  2 +-
 resolv/gai_suspend.c                               | 47 +++++++++++++++------
 resolv/getaddrinfo_a.c                             | 21 +++++++---
 resolv/libanl-compat.c                             | 35 ++++++++++++++++
 sysdeps/nptl/gai_misc.h                            | 24 +++++------
 sysdeps/unix/sysv/linux/Versions                   |  9 +---
 sysdeps/unix/sysv/linux/aarch64/libanl.abilist     |  5 +--
 sysdeps/unix/sysv/linux/aarch64/libc.abilist       |  8 ++++
 sysdeps/unix/sysv/linux/alpha/libanl.abilist       |  5 +--
 sysdeps/unix/sysv/linux/alpha/libc.abilist         |  8 ++++
 sysdeps/unix/sysv/linux/arc/libanl.abilist         |  5 +--
 sysdeps/unix/sysv/linux/arc/libc.abilist           |  8 ++++
 sysdeps/unix/sysv/linux/arm/be/libanl.abilist      |  6 +--
 sysdeps/unix/sysv/linux/arm/be/libc.abilist        |  9 ++++
 sysdeps/unix/sysv/linux/arm/le/libanl.abilist      |  6 +--
 sysdeps/unix/sysv/linux/arm/le/libc.abilist        |  9 ++++
 sysdeps/unix/sysv/linux/csky/libanl.abilist        |  6 +--
 sysdeps/unix/sysv/linux/csky/libc.abilist          |  9 ++++
 sysdeps/unix/sysv/linux/gai_sigqueue.c             |  1 +
 sysdeps/unix/sysv/linux/hppa/libanl.abilist        |  6 +--
 sysdeps/unix/sysv/linux/hppa/libc.abilist          |  9 ++++
 sysdeps/unix/sysv/linux/i386/libanl.abilist        |  6 +--
 sysdeps/unix/sysv/linux/i386/libc.abilist          |  9 ++++
 sysdeps/unix/sysv/linux/ia64/libanl.abilist        |  5 +--
 sysdeps/unix/sysv/linux/ia64/libc.abilist          |  8 ++++
 .../unix/sysv/linux/m68k/coldfire/libanl.abilist   |  6 +--
 sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist |  9 ++++
 sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist |  6 +--
 sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist   |  9 ++++
 .../unix/sysv/linux/microblaze/be/libanl.abilist   |  6 +--
 sysdeps/unix/sysv/linux/microblaze/be/libc.abilist |  9 ++++
 .../unix/sysv/linux/microblaze/le/libanl.abilist   |  6 +--
 sysdeps/unix/sysv/linux/microblaze/le/libc.abilist |  9 ++++
 .../unix/sysv/linux/mips/mips32/fpu/libc.abilist   |  9 ++++
 sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist |  6 +--
 .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist |  9 ++++
 .../unix/sysv/linux/mips/mips64/n32/libanl.abilist |  6 +--
 .../unix/sysv/linux/mips/mips64/n32/libc.abilist   |  9 ++++
 .../unix/sysv/linux/mips/mips64/n64/libanl.abilist |  5 +--
 .../unix/sysv/linux/mips/mips64/n64/libc.abilist   |  8 ++++
 sysdeps/unix/sysv/linux/nios2/libanl.abilist       |  6 +--
 sysdeps/unix/sysv/linux/nios2/libc.abilist         |  9 ++++
 .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist  |  9 ++++
 .../sysv/linux/powerpc/powerpc32/libanl.abilist    |  6 +--
 .../linux/powerpc/powerpc32/nofpu/libc.abilist     |  9 ++++
 .../sysv/linux/powerpc/powerpc64/be/libanl.abilist |  5 +--
 .../sysv/linux/powerpc/powerpc64/be/libc.abilist   |  8 ++++
 .../sysv/linux/powerpc/powerpc64/le/libanl.abilist |  5 +--
 .../sysv/linux/powerpc/powerpc64/le/libc.abilist   |  8 ++++
 sysdeps/unix/sysv/linux/riscv/rv32/libanl.abilist  |  5 +--
 sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist    |  8 ++++
 sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist  |  5 +--
 sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist    |  8 ++++
 .../unix/sysv/linux/s390/s390-32/libanl.abilist    |  6 +--
 sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist  |  9 ++++
 .../unix/sysv/linux/s390/s390-64/libanl.abilist    |  5 +--
 sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist  |  8 ++++
 sysdeps/unix/sysv/linux/sh/be/libanl.abilist       |  6 +--
 sysdeps/unix/sysv/linux/sh/be/libc.abilist         |  9 ++++
 sysdeps/unix/sysv/linux/sh/le/libanl.abilist       |  6 +--
 sysdeps/unix/sysv/linux/sh/le/libc.abilist         |  9 ++++
 .../unix/sysv/linux/sparc/sparc32/libanl.abilist   |  6 +--
 sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist |  9 ++++
 .../unix/sysv/linux/sparc/sparc64/libanl.abilist   |  5 +--
 sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist |  8 ++++
 sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist   |  5 +--
 sysdeps/unix/sysv/linux/x86_64/64/libc.abilist     |  8 ++++
 sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist  |  5 +--
 sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist    |  8 ++++
 78 files changed, 498 insertions(+), 206 deletions(-)

diff --git a/Makeconfig b/Makeconfig
index 407df9e6a1..efc7351d71 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -1342,9 +1342,11 @@ sysd-rules-targets := $(sort $(foreach p,$(sysd-rules-patterns),\
 ifeq ($(pthread-in-libc),yes)
 libpthread-routines-var = routines
 librt-routines-var = routines
+libanl-routines-var = routines
 else
 libpthread-routines-var = libpthread-routines
 librt-routines-var = librt-routines
+libanl-routines-var = libanl-routines
 endif
 
 # A sysdeps Makeconfig fragment may set libc-reentrant to yes.
diff --git a/include/netdb.h b/include/netdb.h
index 645b85dc62..82e102ff76 100644
--- a/include/netdb.h
+++ b/include/netdb.h
@@ -199,7 +199,11 @@ libc_hidden_proto (ruserpass)
 # else
 extern int __gai_suspend_time64 (const struct gaicb *const list[], int ent,
                                  const struct __timespec64 *timeout);
+#  if PTHREAD_IN_LIBC
+libc_hidden_proto (__gai_suspend_time64)
+#  else
 libanl_hidden_proto (__gai_suspend_time64)
+#  endif
 # endif
 
 /* The following definition has been removed from the public header
diff --git a/resolv/Makefile b/resolv/Makefile
index 3fbc320ee1..1d3565d478 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -112,8 +112,11 @@ libresolv-routines := res_comp res_debug \
 		      ns_samedomain ns_date res_enable_icmp \
 		      compat-hooks compat-gethnamaddr
 
-libanl-routines := gai_cancel gai_error gai_misc gai_notify gai_suspend \
-		   getaddrinfo_a
+$(libanl-routines-var) += \
+  gai_cancel gai_error gai_misc gai_notify gai_suspend getaddrinfo_a
+
+libanl-routines += libanl-compat
+libanl-shared-only-routines += libanl-compat
 
 subdir-dirs = nss_dns
 vpath %.c nss_dns
diff --git a/resolv/Versions b/resolv/Versions
index 9a82704af7..d4f6b4b819 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -21,8 +21,20 @@ libc {
     # r*
     __res_state; __res_init; __res_nclose; __res_ninit; _res_hconf;
   }
+  GLIBC_2.2.3 {
+%if PTHREAD_IN_LIBC
+    gai_cancel; gai_error; gai_suspend; getaddrinfo_a;
+%endif
+  }
+  GLIBC_2.34 {
+%if PTHREAD_IN_LIBC
+    gai_cancel; gai_error; gai_suspend; getaddrinfo_a;
+%endif
+  }
   GLIBC_PRIVATE {
+%if !PTHREAD_IN_LIBC
     __gai_sigqueue;
+%endif
 
     __h_errno; __resp;
 
@@ -103,6 +115,10 @@ libnss_dns {
 
 libanl {
   GLIBC_2.2.3 {
+%if PTHREAD_IN_LIBC
+    __libanl_version_placeholder;
+%else
     gai_cancel; gai_error; gai_suspend; getaddrinfo_a;
+%endif
   }
 }
diff --git a/resolv/gai_cancel.c b/resolv/gai_cancel.c
index 5d398ffea8..aa6ba03e5a 100644
--- a/resolv/gai_cancel.c
+++ b/resolv/gai_cancel.c
@@ -18,18 +18,18 @@
 
 #include <netdb.h>
 #include <pthread.h>
-
+#include <shlib-compat.h>
 #include <gai_misc.h>
 
 
 int
-gai_cancel (struct gaicb *gaicbp)
+__gai_cancel (struct gaicb *gaicbp)
 {
   int result = 0;
   int status;
 
   /* Request the mutex.  */
-  pthread_mutex_lock (&__gai_requests_mutex);
+  __pthread_mutex_lock (&__gai_requests_mutex);
 
   /* Find the request among those queued but not yet running.  */
   status = __gai_remove_request (gaicbp);
@@ -41,7 +41,16 @@ gai_cancel (struct gaicb *gaicbp)
     result = EAI_ALLDONE;
 
   /* Release the mutex.  */
-  pthread_mutex_unlock (&__gai_requests_mutex);
+  __pthread_mutex_unlock (&__gai_requests_mutex);
 
   return result;
 }
+#if PTHREAD_IN_LIBC
+versioned_symbol (libc, __gai_cancel, gai_cancel, GLIBC_2_34);
+
+# if OTHER_SHLIB_COMPAT (libanl, GLIBC_2_2_3, GLIBC_2_34)
+compat_symbol (libanl, __gai_cancel, gai_cancel, GLIBC_2_2_3);
+# endif
+#else /* !PTHREAD_IN_LIBC */
+strong_alias (__gai_cancel, gai_cancel)
+#endif /* !PTHREAD_IN_LIBC */
diff --git a/resolv/gai_error.c b/resolv/gai_error.c
index 4f9ac557b7..9fe9c400ee 100644
--- a/resolv/gai_error.c
+++ b/resolv/gai_error.c
@@ -17,11 +17,20 @@
    <https://www.gnu.org/licenses/>.  */
 
 #include <netdb.h>
-
+#include <shlib-compat.h>
 #include <gai_misc.h>
 
 int
-gai_error (struct gaicb *req)
+__gai_error (struct gaicb *req)
 {
   return req->__return;
 }
+#if PTHREAD_IN_LIBC
+versioned_symbol (libc, __gai_error, gai_error, GLIBC_2_34);
+
+# if OTHER_SHLIB_COMPAT (libanl, GLIBC_2_2_3, GLIBC_2_34)
+compat_symbol (libanl, __gai_error, gai_error, GLIBC_2_2_3);
+# endif
+#else /* !PTHREAD_IN_LIBC */
+strong_alias (__gai_error, gai_error)
+#endif /* !PTHREAD_IN_LIBC */
diff --git a/resolv/gai_misc.c b/resolv/gai_misc.c
index 04be05e109..11cc574320 100644
--- a/resolv/gai_misc.c
+++ b/resolv/gai_misc.c
@@ -24,7 +24,16 @@
 
 #include <gai_misc.h>
 
-
+#if !PTHREAD_IN_LIBC
+/* The available function names differ outside of libc.  (In libc, we
+   need to use hidden aliases to avoid the PLT.)  */
+#define __pthread_attr_init pthread_attr_init
+#define __pthread_attr_setdetachstate pthread_attr_setdetachstate
+#define __pthread_cond_signal pthread_cond_signal
+#define __pthread_cond_timedwait pthread_cond_timedwait
+#define __pthread_create pthread_create
+#define __pthread_exit pthread_exit
+#endif
 
 #ifndef gai_create_helper_thread
 # define gai_create_helper_thread __gai_create_helper_thread
@@ -36,12 +45,12 @@ __gai_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
   pthread_attr_t attr;
 
   /* Make sure the thread is created detached.  */
-  pthread_attr_init (&attr);
-  pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
+  __pthread_attr_init (&attr);
+  __pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
 
-  int ret = pthread_create (threadp, &attr, tf, arg);
+  int ret = __pthread_create (threadp, &attr, tf, arg);
 
-  (void) pthread_attr_destroy (&attr);
+  (void) __pthread_attr_destroy (&attr);
   return ret;
 }
 #endif
@@ -216,13 +225,13 @@ __gai_enqueue_request (struct gaicb *gaicbp)
   struct requestlist *lastp;
 
   /* Get the mutex.  */
-  pthread_mutex_lock (&__gai_requests_mutex);
+  __pthread_mutex_lock (&__gai_requests_mutex);
 
   /* Get a new element for the waiting list.  */
   newp = get_elem ();
   if (newp == NULL)
     {
-      pthread_mutex_unlock (&__gai_requests_mutex);
+      __pthread_mutex_unlock (&__gai_requests_mutex);
       __set_errno (EAGAIN);
       return NULL;
     }
@@ -285,11 +294,11 @@ __gai_enqueue_request (struct gaicb *gaicbp)
       /* If there is a thread waiting for work, then let it know that we
 	 have just given it something to do. */
       if (idle_thread_count > 0)
-	pthread_cond_signal (&__gai_new_request_notification);
+	__pthread_cond_signal (&__gai_new_request_notification);
     }
 
   /* Release the mutex.  */
-  pthread_mutex_unlock (&__gai_requests_mutex);
+  __pthread_mutex_unlock (&__gai_requests_mutex);
 
   return newp;
 }
@@ -309,7 +318,7 @@ handle_requests (void *arg)
 	 "get work off the work queue" part of this loop, which is near the
 	 end. */
       if (runp == NULL)
-	pthread_mutex_lock (&__gai_requests_mutex);
+	__pthread_mutex_lock (&__gai_requests_mutex);
       else
 	{
 	  /* Make the request.  */
@@ -321,7 +330,7 @@ handle_requests (void *arg)
 				       req->ar_request, &req->ar_result);
 
 	  /* Get the mutex.  */
-	  pthread_mutex_lock (&__gai_requests_mutex);
+	  __pthread_mutex_lock (&__gai_requests_mutex);
 
 	  /* Send the signal to notify about finished processing of the
 	     request.  */
@@ -369,8 +378,8 @@ handle_requests (void *arg)
 	      wakeup_time.tv_nsec -= 1000000000;
 	      ++wakeup_time.tv_sec;
 	    }
-	  pthread_cond_timedwait (&__gai_new_request_notification,
-				  &__gai_requests_mutex, &wakeup_time);
+	  __pthread_cond_timedwait (&__gai_new_request_notification,
+				    &__gai_requests_mutex, &wakeup_time);
 	  --idle_thread_count;
 	  runp = requests;
 	  while (runp != NULL && runp->running != 0)
@@ -395,20 +404,21 @@ handle_requests (void *arg)
 		 up for these other work elements; otherwise, we should try
 		 to create a new thread. */
 	      if (idle_thread_count > 0)
-		pthread_cond_signal (&__gai_new_request_notification);
+		__pthread_cond_signal (&__gai_new_request_notification);
 	      else if (nthreads < optim.gai_threads)
 		{
 		  pthread_t thid;
 		  pthread_attr_t attr;
 
 		  /* Make sure the thread is created detached.  */
-		  pthread_attr_init (&attr);
-		  pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
+		  __pthread_attr_init (&attr);
+		  __pthread_attr_setdetachstate (&attr,
+						 PTHREAD_CREATE_DETACHED);
 
 		  /* Now try to start a thread. If we fail, no big deal,
 		     because we know that there is at least one thread (us)
 		     that is working on lookup operations. */
-		  if (pthread_create (&thid, &attr, handle_requests, NULL)
+		  if (__pthread_create (&thid, &attr, handle_requests, NULL)
 		      == 0)
 		    ++nthreads;
 		}
@@ -416,11 +426,11 @@ handle_requests (void *arg)
 	}
 
       /* Release the mutex.  */
-      pthread_mutex_unlock (&__gai_requests_mutex);
+      __pthread_mutex_unlock (&__gai_requests_mutex);
     }
   while (runp != NULL);
 
-  pthread_exit (NULL);
+  __pthread_exit (NULL);
 }
 
 
diff --git a/resolv/gai_misc.h b/resolv/gai_misc.h
index 11167a73a1..d3ef00bad7 100644
--- a/resolv/gai_misc.h
+++ b/resolv/gai_misc.h
@@ -96,5 +96,6 @@ extern int __gai_notify_only (struct sigevent *sigev, pid_t caller_pid)
 
 /* Send the signal.  */
 extern int __gai_sigqueue (int sig, const union sigval val, pid_t caller_pid);
+libc_hidden_proto (__gai_sigqueue)
 
 #endif /* gai_misc.h */
diff --git a/resolv/gai_notify.c b/resolv/gai_notify.c
index de104e5560..8fee627f46 100644
--- a/resolv/gai_notify.c
+++ b/resolv/gai_notify.c
@@ -21,6 +21,15 @@
 #include <stdlib.h>
 #include <gai_misc.h>
 
+#if !PTHREAD_IN_LIBC
+/* The available function names differ outside of libc.  (In libc, we
+   need to use hidden aliases to avoid the PLT.)  */
+#define __pthread_attr_init pthread_attr_init
+#define __pthread_attr_setdetachstate pthread_attr_setdetachstate
+#define __pthread_cond_signal pthread_cond_signal
+#define __pthread_cond_timedwait pthread_cond_timedwait
+#define __pthread_create pthread_create
+#endif
 
 struct notify_func
   {
@@ -56,8 +65,8 @@ __gai_notify_only (struct sigevent *sigev, pid_t caller_pid)
       pattr = (pthread_attr_t *) sigev->sigev_notify_attributes;
       if (pattr == NULL)
 	{
-	  pthread_attr_init (&attr);
-	  pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
+	  __pthread_attr_init (&attr);
+	  __pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
 	  pattr = &attr;
 	}
 
@@ -75,7 +84,7 @@ __gai_notify_only (struct sigevent *sigev, pid_t caller_pid)
 	{
 	  nf->func = sigev->sigev_notify_function;
 	  nf->value = sigev->sigev_value;
-	  if (pthread_create (&tid, pattr, notify_func_wrapper, nf) < 0)
+	  if (__pthread_create (&tid, pattr, notify_func_wrapper, nf) < 0)
 	    {
 	      free (nf);
 	      result = -1;
diff --git a/resolv/gai_sigqueue.c b/resolv/gai_sigqueue.c
index f7d0dad73d..9b383e2480 100644
--- a/resolv/gai_sigqueue.c
+++ b/resolv/gai_sigqueue.c
@@ -27,5 +27,5 @@ __gai_sigqueue (int sig, const union sigval val, pid_t caller_pid)
   __set_errno (ENOSYS);
   return -1;
 }
-
+libc_hidden_def (__gai_sigqueue)
 stub_warning (__gai_sigqueue)
diff --git a/resolv/gai_suspend.c b/resolv/gai_suspend.c
index a0c3407b00..965bb113a4 100644
--- a/resolv/gai_suspend.c
+++ b/resolv/gai_suspend.c
@@ -25,8 +25,8 @@
 #include <gai_misc.h>
 
 int
-__gai_suspend_time64 (const struct gaicb *const list[], int ent,
-                      const struct __timespec64 *timeout)
+___gai_suspend_time64 (const struct gaicb *const list[], int ent,
+		       const struct __timespec64 *timeout)
 {
   struct waitlist waitlist[ent];
   struct requestlist *requestlist[ent];
@@ -39,7 +39,7 @@ __gai_suspend_time64 (const struct gaicb *const list[], int ent,
   int result;
 
   /* Request the mutex.  */
-  pthread_mutex_lock (&__gai_requests_mutex);
+  __pthread_mutex_lock (&__gai_requests_mutex);
 
   /* There is not yet a finished request.  Signal the request that
      we are working for it.  */
@@ -91,7 +91,7 @@ __gai_suspend_time64 (const struct gaicb *const list[], int ent,
       /* Since `pthread_cond_wait'/`pthread_cond_timedwait' are cancelation
 	 points we must be careful.  We added entries to the waiting lists
 	 which we must remove.  So defer cancelation for now.  */
-      pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &oldstate);
+      __pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &oldstate);
 
 #ifdef DONT_NEED_GAI_MISC_COND
       result = 0;
@@ -121,7 +121,7 @@ __gai_suspend_time64 (const struct gaicb *const list[], int ent,
 	  }
 
       /* Now it's time to restore the cancelation state.  */
-      pthread_setcancelstate (oldstate, NULL);
+      __pthread_setcancelstate (oldstate, NULL);
 
 #ifndef DONT_NEED_GAI_MISC_COND
       /* Release the conditional variable.  */
@@ -145,17 +145,33 @@ __gai_suspend_time64 (const struct gaicb *const list[], int ent,
     }
 
   /* Release the mutex.  */
-  pthread_mutex_unlock (&__gai_requests_mutex);
+  __pthread_mutex_unlock (&__gai_requests_mutex);
 
   return result;
 }
 
-#if __TIMESIZE != 64
-libanl_hidden_def (__gai_suspend_time64)
+#if __TIMESIZE == 64
+# if PTHREAD_IN_LIBC
+versioned_symbol (libc, ___gai_suspend_time64, gai_suspend, GLIBC_2_34);
+#  if OTHER_SHLIB_COMPAT (libanl, GLIBC_2_2_3, GLIBC_2_34)
+compat_symbol (libanl, ___gai_suspend_time64, gai_suspend, GLIBC_2_2_3);
+#  endif
+# endif /* PTHREAD_IN_LIBC */
+
+#else /* __TIMESIZE != 64 */
+# if PTHREAD_IN_LIBC
+libc_hidden_ver (___gai_suspend_time64, __gai_suspend_time64)
+versioned_symbol (libc, ___gai_suspend_time64, __gai_suspend_time64,
+		  GLIBC_2_34);
+# else /* !PTHREAD_IN_LIBC */
+# if IS_IN (libanl)
+hidden_ver (___gai_suspend_time64, __gai_suspend_time64)
+# endif
+#endif /* !PTHREAD_IN_LIBC */
 
 int
-__gai_suspend (const struct gaicb *const list[], int ent,
-	       const struct timespec *timeout)
+___gai_suspend (const struct gaicb *const list[], int ent,
+		const struct timespec *timeout)
 {
   struct __timespec64 ts64;
 
@@ -164,5 +180,12 @@ __gai_suspend (const struct gaicb *const list[], int ent,
 
   return __gai_suspend_time64 (list, ent, timeout != NULL ? &ts64 : NULL);
 }
-#endif
-weak_alias (__gai_suspend, gai_suspend)
+#if PTHREAD_IN_LIBC
+versioned_symbol (libc, ___gai_suspend, gai_suspend, GLIBC_2_34);
+# if OTHER_SHLIB_COMPAT (libanl, GLIBC_2_2_3, GLIBC_2_34)
+compat_symbol (libanl, ___gai_suspend, gai_suspend, GLIBC_2_2_3);
+# endif
+# else
+weak_alias (___gai_suspend, gai_suspend)
+# endif /* !PTHREAD_IN_LIBC */
+#endif /* __TIMESIZE != 64 */
diff --git a/resolv/getaddrinfo_a.c b/resolv/getaddrinfo_a.c
index fca39a8d89..7541f2a9af 100644
--- a/resolv/getaddrinfo_a.c
+++ b/resolv/getaddrinfo_a.c
@@ -35,7 +35,7 @@ struct async_waitlist
 
 
 int
-getaddrinfo_a (int mode, struct gaicb *list[], int ent, struct sigevent *sig)
+__getaddrinfo_a (int mode, struct gaicb *list[], int ent, struct sigevent *sig)
 {
   struct sigevent defsigev;
   struct requestlist *requests[ent];
@@ -57,7 +57,7 @@ getaddrinfo_a (int mode, struct gaicb *list[], int ent, struct sigevent *sig)
     }
 
   /* Request the mutex.  */
-  pthread_mutex_lock (&__gai_requests_mutex);
+  __pthread_mutex_lock (&__gai_requests_mutex);
 
   /* Now we can enqueue all requests.  Since we already acquired the
      mutex the enqueue function need not do this.  */
@@ -85,7 +85,7 @@ getaddrinfo_a (int mode, struct gaicb *list[], int ent, struct sigevent *sig)
       /* Release the mutex.  We do this before raising a signal since the
 	 signal handler might do a `siglongjmp' and then the mutex is
 	 locked forever.  */
-      pthread_mutex_unlock (&__gai_requests_mutex);
+      __pthread_mutex_unlock (&__gai_requests_mutex);
 
       if (mode == GAI_NOWAIT)
 	__gai_notify_only (sig,
@@ -119,7 +119,7 @@ getaddrinfo_a (int mode, struct gaicb *list[], int ent, struct sigevent *sig)
       /* Since `pthread_cond_wait'/`pthread_cond_timedwait' are cancelation
 	 points we must be careful.  We added entries to the waiting lists
 	 which we must remove.  So defer cancelation for now.  */
-      pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &oldstate);
+      __pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &oldstate);
 
       while (total > 0)
 	{
@@ -132,7 +132,7 @@ getaddrinfo_a (int mode, struct gaicb *list[], int ent, struct sigevent *sig)
 	}
 
       /* Now it's time to restore the cancelation state.  */
-      pthread_setcancelstate (oldstate, NULL);
+      __pthread_setcancelstate (oldstate, NULL);
 
 #ifndef DONT_NEED_GAI_MISC_COND
       /* Release the conditional variable.  */
@@ -176,7 +176,16 @@ getaddrinfo_a (int mode, struct gaicb *list[], int ent, struct sigevent *sig)
     }
 
   /* Release the mutex.  */
-  pthread_mutex_unlock (&__gai_requests_mutex);
+  __pthread_mutex_unlock (&__gai_requests_mutex);
 
   return result;
 }
+#if PTHREAD_IN_LIBC
+versioned_symbol (libc, __getaddrinfo_a, getaddrinfo_a, GLIBC_2_34);
+
+# if OTHER_SHLIB_COMPAT (libanl, GLIBC_2_2_3, GLIBC_2_34)
+compat_symbol (libanl, __getaddrinfo_a, getaddrinfo_a, GLIBC_2_2_3);
+# endif
+#else /* !PTHREAD_IN_LIBC */
+strong_alias (__getaddrinfo_a, getaddrinfo_a)
+#endif /* !PTHREAD_IN_LIBC */
diff --git a/resolv/libanl-compat.c b/resolv/libanl-compat.c
new file mode 100644
index 0000000000..29df76f278
--- /dev/null
+++ b/resolv/libanl-compat.c
@@ -0,0 +1,35 @@
+/* Placeholder compatibility symbols for libanl.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#if PTHREAD_IN_LIBC
+# include <shlib-compat.h>
+# include <sys/cdefs.h>
+
+/* This file is used to keep specific symbol versions occupied, so
+   that ld does not generate weak symbol version definitions.  */
+
+void
+attribute_compat_text_section
+__attribute_used__
+__libanl_version_placeholder_1 (void)
+{
+}
+
+compat_symbol (libanl, __libanl_version_placeholder_1,
+               __libanl_version_placeholder, GLIBC_2_2_3);
+#endif
diff --git a/sysdeps/nptl/gai_misc.h b/sysdeps/nptl/gai_misc.h
index 82948fdf96..357f536557 100644
--- a/sysdeps/nptl/gai_misc.h
+++ b/sysdeps/nptl/gai_misc.h
@@ -40,7 +40,7 @@
 									      \
     if (oldval != 0)							      \
       {									      \
-	pthread_mutex_unlock (&__gai_requests_mutex);			      \
+	__pthread_mutex_unlock (&__gai_requests_mutex);			      \
 									      \
 	int status;							      \
 	do								      \
@@ -68,7 +68,7 @@
 	else								      \
 	  assert (status == 0 || status == EAGAIN);			      \
 									      \
-	pthread_mutex_lock (&__gai_requests_mutex);			      \
+	__pthread_mutex_lock (&__gai_requests_mutex);			      \
       }									      \
   } while (0)
 
@@ -82,7 +82,7 @@ __gai_start_notify_thread (void)
   sigset_t ss;
   sigemptyset (&ss);
   int sigerr __attribute__ ((unused));
-  sigerr = pthread_sigmask (SIG_SETMASK, &ss, NULL);
+  sigerr = __pthread_sigmask (SIG_SETMASK, &ss, NULL);
   assert_perror (sigerr);
 }
 
@@ -93,13 +93,13 @@ __gai_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
   pthread_attr_t attr;
 
   /* Make sure the thread is created detached.  */
-  pthread_attr_init (&attr);
-  pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
+  __pthread_attr_init (&attr);
+  __pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
 
   /* The helper thread needs only very little resources.  */
-  (void) pthread_attr_setstacksize (&attr,
-				    __pthread_get_minstack (&attr)
-				    + 4 * PTHREAD_STACK_MIN);
+  (void) __pthread_attr_setstacksize (&attr,
+				      __pthread_get_minstack (&attr)
+				      + 4 * PTHREAD_STACK_MIN);
 
   /* Block all signals in the helper thread.  To do this thoroughly we
      temporarily have to block all signals here.  */
@@ -107,16 +107,16 @@ __gai_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
   sigset_t oss;
   sigfillset (&ss);
   int sigerr __attribute__ ((unused));
-  sigerr = pthread_sigmask (SIG_SETMASK, &ss, &oss);
+  sigerr = __pthread_sigmask (SIG_SETMASK, &ss, &oss);
   assert_perror (sigerr);
 
-  int ret = pthread_create (threadp, &attr, tf, arg);
+  int ret = __pthread_create (threadp, &attr, tf, arg);
 
   /* Restore the signal mask.  */
-  sigerr = pthread_sigmask (SIG_SETMASK, &oss, NULL);
+  sigerr = __pthread_sigmask (SIG_SETMASK, &oss, NULL);
   assert_perror (sigerr);
 
-  (void) pthread_attr_destroy (&attr);
+  (void) __pthread_attr_destroy (&attr);
   return ret;
 }
 
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
index ea0b22d7af..ee87de0036 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -213,6 +213,7 @@ libc {
     __fts64_children_time64;
     __ftw64_time64;
     __nftw64_time64;
+    __gai_suspend_time64;
     __getitimer64;
     __getrusage64;
     __gettimeofday64;
@@ -302,11 +303,3 @@ librt {
 %endif
   }
 }
-
-libanl {
-%ifdef TIME64_NON_DEFAULT
-  GLIBC_2.34 {
-    __gai_suspend_time64;
-  }
-%endif
-}
diff --git a/sysdeps/unix/sysv/linux/aarch64/libanl.abilist b/sysdeps/unix/sysv/linux/aarch64/libanl.abilist
index 9492cd5290..0b2ef01e6a 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libanl.abilist
@@ -1,4 +1 @@
-GLIBC_2.17 gai_cancel F
-GLIBC_2.17 gai_error F
-GLIBC_2.17 gai_suspend F
-GLIBC_2.17 getaddrinfo_a F
+GLIBC_2.17 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 42e240e284..d0c0eacb74 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -920,7 +920,10 @@ GLIBC_2.17 fwprintf F
 GLIBC_2.17 fwrite F
 GLIBC_2.17 fwrite_unlocked F
 GLIBC_2.17 fwscanf F
+GLIBC_2.17 gai_cancel F
+GLIBC_2.17 gai_error F
 GLIBC_2.17 gai_strerror F
+GLIBC_2.17 gai_suspend F
 GLIBC_2.17 gcvt F
 GLIBC_2.17 get_avphys_pages F
 GLIBC_2.17 get_current_dir_name F
@@ -930,6 +933,7 @@ GLIBC_2.17 get_nprocs F
 GLIBC_2.17 get_nprocs_conf F
 GLIBC_2.17 get_phys_pages F
 GLIBC_2.17 getaddrinfo F
+GLIBC_2.17 getaddrinfo_a F
 GLIBC_2.17 getaliasbyname F
 GLIBC_2.17 getaliasbyname_r F
 GLIBC_2.17 getaliasent F
@@ -2365,6 +2369,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/alpha/libanl.abilist b/sysdeps/unix/sysv/linux/alpha/libanl.abilist
index d9a5ed015d..b748507bd9 100644
--- a/sysdeps/unix/sysv/linux/alpha/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libanl.abilist
@@ -1,4 +1 @@
-GLIBC_2.2.3 gai_cancel F
-GLIBC_2.2.3 gai_error F
-GLIBC_2.2.3 gai_suspend F
-GLIBC_2.2.3 getaddrinfo_a F
+GLIBC_2.2.3 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index fad54555dc..251e5d7b21 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2097,6 +2097,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
 GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
 GLIBC_2.2.3 __rpc_thread_svc_pollfd F
 GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
 GLIBC_2.2.3 pthread_getattr_np F
 GLIBC_2.2.3 sprofil F
 GLIBC_2.2.4 dl_iterate_phdr F
@@ -2458,6 +2462,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/arc/libanl.abilist b/sysdeps/unix/sysv/linux/arc/libanl.abilist
index ba513bd028..492861d11b 100644
--- a/sysdeps/unix/sysv/linux/arc/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libanl.abilist
@@ -1,4 +1 @@
-GLIBC_2.32 gai_cancel F
-GLIBC_2.32 gai_error F
-GLIBC_2.32 gai_suspend F
-GLIBC_2.32 getaddrinfo_a F
+GLIBC_2.32 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 907716ec39..b7ec1939e1 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -869,7 +869,10 @@ GLIBC_2.32 fwprintf F
 GLIBC_2.32 fwrite F
 GLIBC_2.32 fwrite_unlocked F
 GLIBC_2.32 fwscanf F
+GLIBC_2.32 gai_cancel F
+GLIBC_2.32 gai_error F
 GLIBC_2.32 gai_strerror F
+GLIBC_2.32 gai_suspend F
 GLIBC_2.32 gcvt F
 GLIBC_2.32 get_avphys_pages F
 GLIBC_2.32 get_current_dir_name F
@@ -877,6 +880,7 @@ GLIBC_2.32 get_nprocs F
 GLIBC_2.32 get_nprocs_conf F
 GLIBC_2.32 get_phys_pages F
 GLIBC_2.32 getaddrinfo F
+GLIBC_2.32 getaddrinfo_a F
 GLIBC_2.32 getaliasbyname F
 GLIBC_2.32 getaliasbyname_r F
 GLIBC_2.32 getaliasent F
@@ -2124,6 +2128,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libanl.abilist b/sysdeps/unix/sysv/linux/arm/be/libanl.abilist
index 37f9b49e52..8f73b93237 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libanl.abilist
@@ -1,5 +1 @@
-GLIBC_2.34 __gai_suspend_time64 F
-GLIBC_2.4 gai_cancel F
-GLIBC_2.4 gai_error F
-GLIBC_2.4 gai_suspend F
-GLIBC_2.4 getaddrinfo_a F
+GLIBC_2.4 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 50f987a429..ce6dc4b91c 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -212,6 +212,7 @@ GLIBC_2.34 __ftw64_time64 F
 GLIBC_2.34 __futimens64 F
 GLIBC_2.34 __futimes64 F
 GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __gai_suspend_time64 F
 GLIBC_2.34 __getitimer64 F
 GLIBC_2.34 __getrusage64 F
 GLIBC_2.34 __gettimeofday64 F
@@ -295,6 +296,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
@@ -1293,7 +1298,10 @@ GLIBC_2.4 fwprintf F
 GLIBC_2.4 fwrite F
 GLIBC_2.4 fwrite_unlocked F
 GLIBC_2.4 fwscanf F
+GLIBC_2.4 gai_cancel F
+GLIBC_2.4 gai_error F
 GLIBC_2.4 gai_strerror F
+GLIBC_2.4 gai_suspend F
 GLIBC_2.4 gcvt F
 GLIBC_2.4 get_avphys_pages F
 GLIBC_2.4 get_current_dir_name F
@@ -1303,6 +1311,7 @@ GLIBC_2.4 get_nprocs F
 GLIBC_2.4 get_nprocs_conf F
 GLIBC_2.4 get_phys_pages F
 GLIBC_2.4 getaddrinfo F
+GLIBC_2.4 getaddrinfo_a F
 GLIBC_2.4 getaliasbyname F
 GLIBC_2.4 getaliasbyname_r F
 GLIBC_2.4 getaliasent F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libanl.abilist b/sysdeps/unix/sysv/linux/arm/le/libanl.abilist
index 37f9b49e52..8f73b93237 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libanl.abilist
@@ -1,5 +1 @@
-GLIBC_2.34 __gai_suspend_time64 F
-GLIBC_2.4 gai_cancel F
-GLIBC_2.4 gai_error F
-GLIBC_2.4 gai_suspend F
-GLIBC_2.4 getaddrinfo_a F
+GLIBC_2.4 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index bf9038af84..afac105aec 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -209,6 +209,7 @@ GLIBC_2.34 __ftw64_time64 F
 GLIBC_2.34 __futimens64 F
 GLIBC_2.34 __futimes64 F
 GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __gai_suspend_time64 F
 GLIBC_2.34 __getitimer64 F
 GLIBC_2.34 __getrusage64 F
 GLIBC_2.34 __gettimeofday64 F
@@ -292,6 +293,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
@@ -1290,7 +1295,10 @@ GLIBC_2.4 fwprintf F
 GLIBC_2.4 fwrite F
 GLIBC_2.4 fwrite_unlocked F
 GLIBC_2.4 fwscanf F
+GLIBC_2.4 gai_cancel F
+GLIBC_2.4 gai_error F
 GLIBC_2.4 gai_strerror F
+GLIBC_2.4 gai_suspend F
 GLIBC_2.4 gcvt F
 GLIBC_2.4 get_avphys_pages F
 GLIBC_2.4 get_current_dir_name F
@@ -1300,6 +1308,7 @@ GLIBC_2.4 get_nprocs F
 GLIBC_2.4 get_nprocs_conf F
 GLIBC_2.4 get_phys_pages F
 GLIBC_2.4 getaddrinfo F
+GLIBC_2.4 getaddrinfo_a F
 GLIBC_2.4 getaliasbyname F
 GLIBC_2.4 getaliasbyname_r F
 GLIBC_2.4 getaliasent F
diff --git a/sysdeps/unix/sysv/linux/csky/libanl.abilist b/sysdeps/unix/sysv/linux/csky/libanl.abilist
index 01f2e6cbf0..4234c23c3f 100644
--- a/sysdeps/unix/sysv/linux/csky/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libanl.abilist
@@ -1,5 +1 @@
-GLIBC_2.29 gai_cancel F
-GLIBC_2.29 gai_error F
-GLIBC_2.29 gai_suspend F
-GLIBC_2.29 getaddrinfo_a F
-GLIBC_2.34 __gai_suspend_time64 F
+GLIBC_2.29 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index afb91f6f43..97bad349d9 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -908,7 +908,10 @@ GLIBC_2.29 fwprintf F
 GLIBC_2.29 fwrite F
 GLIBC_2.29 fwrite_unlocked F
 GLIBC_2.29 fwscanf F
+GLIBC_2.29 gai_cancel F
+GLIBC_2.29 gai_error F
 GLIBC_2.29 gai_strerror F
+GLIBC_2.29 gai_suspend F
 GLIBC_2.29 gcvt F
 GLIBC_2.29 get_avphys_pages F
 GLIBC_2.29 get_current_dir_name F
@@ -917,6 +920,7 @@ GLIBC_2.29 get_nprocs F
 GLIBC_2.29 get_nprocs_conf F
 GLIBC_2.29 get_phys_pages F
 GLIBC_2.29 getaddrinfo F
+GLIBC_2.29 getaddrinfo_a F
 GLIBC_2.29 getaliasbyname F
 GLIBC_2.29 getaliasbyname_r F
 GLIBC_2.29 getaliasent F
@@ -2301,6 +2305,7 @@ GLIBC_2.34 __ftw64_time64 F
 GLIBC_2.34 __futimens64 F
 GLIBC_2.34 __futimes64 F
 GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __gai_suspend_time64 F
 GLIBC_2.34 __getitimer64 F
 GLIBC_2.34 __getrusage64 F
 GLIBC_2.34 __gettimeofday64 F
@@ -2384,6 +2389,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/gai_sigqueue.c b/sysdeps/unix/sysv/linux/gai_sigqueue.c
index 2b718967b1..38b2c3dd07 100644
--- a/sysdeps/unix/sysv/linux/gai_sigqueue.c
+++ b/sysdeps/unix/sysv/linux/gai_sigqueue.c
@@ -44,3 +44,4 @@ __gai_sigqueue (int sig, const union sigval val, pid_t caller_pid)
 
   return INLINE_SYSCALL (rt_sigqueueinfo, 3, info.si_pid, sig, &info);
 }
+libc_hidden_def (__gai_sigqueue)
diff --git a/sysdeps/unix/sysv/linux/hppa/libanl.abilist b/sysdeps/unix/sysv/linux/hppa/libanl.abilist
index ff719e7605..b748507bd9 100644
--- a/sysdeps/unix/sysv/linux/hppa/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libanl.abilist
@@ -1,5 +1 @@
-GLIBC_2.2.3 gai_cancel F
-GLIBC_2.2.3 gai_error F
-GLIBC_2.2.3 gai_suspend F
-GLIBC_2.2.3 getaddrinfo_a F
-GLIBC_2.34 __gai_suspend_time64 F
+GLIBC_2.2.3 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 125f8a269a..6d4bab4474 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1942,6 +1942,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
 GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
 GLIBC_2.2.3 __rpc_thread_svc_pollfd F
 GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
 GLIBC_2.2.3 pthread_getattr_np F
 GLIBC_2.2.3 sprofil F
 GLIBC_2.2.4 dl_iterate_phdr F
@@ -2255,6 +2259,7 @@ GLIBC_2.34 __ftw64_time64 F
 GLIBC_2.34 __futimens64 F
 GLIBC_2.34 __futimes64 F
 GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __gai_suspend_time64 F
 GLIBC_2.34 __getitimer64 F
 GLIBC_2.34 __getrusage64 F
 GLIBC_2.34 __gettimeofday64 F
@@ -2338,6 +2343,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/i386/libanl.abilist b/sysdeps/unix/sysv/linux/i386/libanl.abilist
index ff719e7605..b748507bd9 100644
--- a/sysdeps/unix/sysv/linux/i386/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libanl.abilist
@@ -1,5 +1 @@
-GLIBC_2.2.3 gai_cancel F
-GLIBC_2.2.3 gai_error F
-GLIBC_2.2.3 gai_suspend F
-GLIBC_2.2.3 getaddrinfo_a F
-GLIBC_2.34 __gai_suspend_time64 F
+GLIBC_2.2.3 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 517753bdd1..af70dddee8 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2110,6 +2110,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
 GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
 GLIBC_2.2.3 __rpc_thread_svc_pollfd F
 GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
 GLIBC_2.2.3 pthread_getattr_np F
 GLIBC_2.2.3 sprofil F
 GLIBC_2.2.4 dl_iterate_phdr F
@@ -2438,6 +2442,7 @@ GLIBC_2.34 __ftw64_time64 F
 GLIBC_2.34 __futimens64 F
 GLIBC_2.34 __futimes64 F
 GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __gai_suspend_time64 F
 GLIBC_2.34 __getitimer64 F
 GLIBC_2.34 __getrusage64 F
 GLIBC_2.34 __gettimeofday64 F
@@ -2522,6 +2527,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/ia64/libanl.abilist b/sysdeps/unix/sysv/linux/ia64/libanl.abilist
index d9a5ed015d..b748507bd9 100644
--- a/sysdeps/unix/sysv/linux/ia64/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libanl.abilist
@@ -1,4 +1 @@
-GLIBC_2.2.3 gai_cancel F
-GLIBC_2.2.3 gai_error F
-GLIBC_2.2.3 gai_suspend F
-GLIBC_2.2.3 getaddrinfo_a F
+GLIBC_2.2.3 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 23d0928360..89a9f12d4c 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1964,6 +1964,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
 GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
 GLIBC_2.2.3 __rpc_thread_svc_pollfd F
 GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
 GLIBC_2.2.3 pthread_getattr_np F
 GLIBC_2.2.3 sprofil F
 GLIBC_2.2.4 dl_iterate_phdr F
@@ -2298,6 +2302,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist
index 37f9b49e52..8f73b93237 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist
@@ -1,5 +1 @@
-GLIBC_2.34 __gai_suspend_time64 F
-GLIBC_2.4 gai_cancel F
-GLIBC_2.4 gai_error F
-GLIBC_2.4 gai_suspend F
-GLIBC_2.4 getaddrinfo_a F
+GLIBC_2.4 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index dd5fb50b18..4a23fc2467 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -213,6 +213,7 @@ GLIBC_2.34 __ftw64_time64 F
 GLIBC_2.34 __futimens64 F
 GLIBC_2.34 __futimes64 F
 GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __gai_suspend_time64 F
 GLIBC_2.34 __getitimer64 F
 GLIBC_2.34 __getrusage64 F
 GLIBC_2.34 __gettimeofday64 F
@@ -296,6 +297,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
@@ -1282,7 +1287,10 @@ GLIBC_2.4 fwprintf F
 GLIBC_2.4 fwrite F
 GLIBC_2.4 fwrite_unlocked F
 GLIBC_2.4 fwscanf F
+GLIBC_2.4 gai_cancel F
+GLIBC_2.4 gai_error F
 GLIBC_2.4 gai_strerror F
+GLIBC_2.4 gai_suspend F
 GLIBC_2.4 gcvt F
 GLIBC_2.4 get_avphys_pages F
 GLIBC_2.4 get_current_dir_name F
@@ -1292,6 +1300,7 @@ GLIBC_2.4 get_nprocs F
 GLIBC_2.4 get_nprocs_conf F
 GLIBC_2.4 get_phys_pages F
 GLIBC_2.4 getaddrinfo F
+GLIBC_2.4 getaddrinfo_a F
 GLIBC_2.4 getaliasbyname F
 GLIBC_2.4 getaliasbyname_r F
 GLIBC_2.4 getaliasent F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist
index ff719e7605..b748507bd9 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist
@@ -1,5 +1 @@
-GLIBC_2.2.3 gai_cancel F
-GLIBC_2.2.3 gai_error F
-GLIBC_2.2.3 gai_suspend F
-GLIBC_2.2.3 getaddrinfo_a F
-GLIBC_2.34 __gai_suspend_time64 F
+GLIBC_2.2.3 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index cb1d553361..9c0356b21b 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2066,6 +2066,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
 GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
 GLIBC_2.2.3 __rpc_thread_svc_pollfd F
 GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
 GLIBC_2.2.3 pthread_getattr_np F
 GLIBC_2.2.3 sprofil F
 GLIBC_2.2.4 dl_iterate_phdr F
@@ -2382,6 +2386,7 @@ GLIBC_2.34 __ftw64_time64 F
 GLIBC_2.34 __futimens64 F
 GLIBC_2.34 __futimes64 F
 GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __gai_suspend_time64 F
 GLIBC_2.34 __getitimer64 F
 GLIBC_2.34 __getrusage64 F
 GLIBC_2.34 __gettimeofday64 F
@@ -2465,6 +2470,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libanl.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libanl.abilist
index c06e33a1cf..1bb3e615f6 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libanl.abilist
@@ -1,5 +1 @@
-GLIBC_2.18 gai_cancel F
-GLIBC_2.18 gai_error F
-GLIBC_2.18 gai_suspend F
-GLIBC_2.18 getaddrinfo_a F
-GLIBC_2.34 __gai_suspend_time64 F
+GLIBC_2.18 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 6a20a6fdf2..0cd000ae33 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -922,7 +922,10 @@ GLIBC_2.18 fwprintf F
 GLIBC_2.18 fwrite F
 GLIBC_2.18 fwrite_unlocked F
 GLIBC_2.18 fwscanf F
+GLIBC_2.18 gai_cancel F
+GLIBC_2.18 gai_error F
 GLIBC_2.18 gai_strerror F
+GLIBC_2.18 gai_suspend F
 GLIBC_2.18 gcvt F
 GLIBC_2.18 get_avphys_pages F
 GLIBC_2.18 get_current_dir_name F
@@ -932,6 +935,7 @@ GLIBC_2.18 get_nprocs F
 GLIBC_2.18 get_nprocs_conf F
 GLIBC_2.18 get_phys_pages F
 GLIBC_2.18 getaddrinfo F
+GLIBC_2.18 getaddrinfo_a F
 GLIBC_2.18 getaliasbyname F
 GLIBC_2.18 getaliasbyname_r F
 GLIBC_2.18 getaliasent F
@@ -2352,6 +2356,7 @@ GLIBC_2.34 __ftw64_time64 F
 GLIBC_2.34 __futimens64 F
 GLIBC_2.34 __futimes64 F
 GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __gai_suspend_time64 F
 GLIBC_2.34 __getitimer64 F
 GLIBC_2.34 __getrusage64 F
 GLIBC_2.34 __gettimeofday64 F
@@ -2435,6 +2440,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libanl.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libanl.abilist
index c06e33a1cf..1bb3e615f6 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libanl.abilist
@@ -1,5 +1 @@
-GLIBC_2.18 gai_cancel F
-GLIBC_2.18 gai_error F
-GLIBC_2.18 gai_suspend F
-GLIBC_2.18 getaddrinfo_a F
-GLIBC_2.34 __gai_suspend_time64 F
+GLIBC_2.18 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 4c21cbb64d..56201d0e2e 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -922,7 +922,10 @@ GLIBC_2.18 fwprintf F
 GLIBC_2.18 fwrite F
 GLIBC_2.18 fwrite_unlocked F
 GLIBC_2.18 fwscanf F
+GLIBC_2.18 gai_cancel F
+GLIBC_2.18 gai_error F
 GLIBC_2.18 gai_strerror F
+GLIBC_2.18 gai_suspend F
 GLIBC_2.18 gcvt F
 GLIBC_2.18 get_avphys_pages F
 GLIBC_2.18 get_current_dir_name F
@@ -932,6 +935,7 @@ GLIBC_2.18 get_nprocs F
 GLIBC_2.18 get_nprocs_conf F
 GLIBC_2.18 get_phys_pages F
 GLIBC_2.18 getaddrinfo F
+GLIBC_2.18 getaddrinfo_a F
 GLIBC_2.18 getaliasbyname F
 GLIBC_2.18 getaliasbyname_r F
 GLIBC_2.18 getaliasent F
@@ -2349,6 +2353,7 @@ GLIBC_2.34 __ftw64_time64 F
 GLIBC_2.34 __futimens64 F
 GLIBC_2.34 __futimes64 F
 GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __gai_suspend_time64 F
 GLIBC_2.34 __getitimer64 F
 GLIBC_2.34 __getrusage64 F
 GLIBC_2.34 __gettimeofday64 F
@@ -2432,6 +2437,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index f83ba2f780..d47aa9e204 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2036,6 +2036,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
 GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
 GLIBC_2.2.3 __rpc_thread_svc_pollfd F
 GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
 GLIBC_2.2.3 pthread_getattr_np F
 GLIBC_2.2.3 sprofil F
 GLIBC_2.2.4 dl_iterate_phdr F
@@ -2347,6 +2351,7 @@ GLIBC_2.34 __ftw64_time64 F
 GLIBC_2.34 __futimens64 F
 GLIBC_2.34 __futimes64 F
 GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __gai_suspend_time64 F
 GLIBC_2.34 __getitimer64 F
 GLIBC_2.34 __getrusage64 F
 GLIBC_2.34 __gettimeofday64 F
@@ -2430,6 +2435,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist
index ff719e7605..b748507bd9 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist
@@ -1,5 +1 @@
-GLIBC_2.2.3 gai_cancel F
-GLIBC_2.2.3 gai_error F
-GLIBC_2.2.3 gai_suspend F
-GLIBC_2.2.3 getaddrinfo_a F
-GLIBC_2.34 __gai_suspend_time64 F
+GLIBC_2.2.3 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 347bbddb94..8850cbee66 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2034,6 +2034,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
 GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
 GLIBC_2.2.3 __rpc_thread_svc_pollfd F
 GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
 GLIBC_2.2.3 pthread_getattr_np F
 GLIBC_2.2.3 sprofil F
 GLIBC_2.2.4 dl_iterate_phdr F
@@ -2345,6 +2349,7 @@ GLIBC_2.34 __ftw64_time64 F
 GLIBC_2.34 __futimens64 F
 GLIBC_2.34 __futimes64 F
 GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __gai_suspend_time64 F
 GLIBC_2.34 __getitimer64 F
 GLIBC_2.34 __getrusage64 F
 GLIBC_2.34 __gettimeofday64 F
@@ -2428,6 +2433,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libanl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libanl.abilist
index ff719e7605..b748507bd9 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libanl.abilist
@@ -1,5 +1 @@
-GLIBC_2.2.3 gai_cancel F
-GLIBC_2.2.3 gai_error F
-GLIBC_2.2.3 gai_suspend F
-GLIBC_2.2.3 getaddrinfo_a F
-GLIBC_2.34 __gai_suspend_time64 F
+GLIBC_2.2.3 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 26b7ab529b..005791cb58 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2032,6 +2032,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
 GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
 GLIBC_2.2.3 __rpc_thread_svc_pollfd F
 GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
 GLIBC_2.2.3 pthread_getattr_np F
 GLIBC_2.2.3 sprofil F
 GLIBC_2.2.4 dl_iterate_phdr F
@@ -2353,6 +2357,7 @@ GLIBC_2.34 __ftw64_time64 F
 GLIBC_2.34 __futimens64 F
 GLIBC_2.34 __futimes64 F
 GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __gai_suspend_time64 F
 GLIBC_2.34 __getitimer64 F
 GLIBC_2.34 __getrusage64 F
 GLIBC_2.34 __gettimeofday64 F
@@ -2436,6 +2441,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libanl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libanl.abilist
index d9a5ed015d..b748507bd9 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libanl.abilist
@@ -1,4 +1 @@
-GLIBC_2.2.3 gai_cancel F
-GLIBC_2.2.3 gai_error F
-GLIBC_2.2.3 gai_suspend F
-GLIBC_2.2.3 getaddrinfo_a F
+GLIBC_2.2.3 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index e667b0e553..53bbb1a297 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2028,6 +2028,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
 GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
 GLIBC_2.2.3 __rpc_thread_svc_pollfd F
 GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
 GLIBC_2.2.3 pthread_getattr_np F
 GLIBC_2.2.3 sprofil F
 GLIBC_2.2.4 dl_iterate_phdr F
@@ -2354,6 +2358,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/nios2/libanl.abilist b/sysdeps/unix/sysv/linux/nios2/libanl.abilist
index 6b080bd075..68f340f5bd 100644
--- a/sysdeps/unix/sysv/linux/nios2/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libanl.abilist
@@ -1,5 +1 @@
-GLIBC_2.21 gai_cancel F
-GLIBC_2.21 gai_error F
-GLIBC_2.21 gai_suspend F
-GLIBC_2.21 getaddrinfo_a F
-GLIBC_2.34 __gai_suspend_time64 F
+GLIBC_2.21 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 89a1cc7da6..c8cc5c4a2f 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -965,7 +965,10 @@ GLIBC_2.21 fwprintf F
 GLIBC_2.21 fwrite F
 GLIBC_2.21 fwrite_unlocked F
 GLIBC_2.21 fwscanf F
+GLIBC_2.21 gai_cancel F
+GLIBC_2.21 gai_error F
 GLIBC_2.21 gai_strerror F
+GLIBC_2.21 gai_suspend F
 GLIBC_2.21 gcvt F
 GLIBC_2.21 get_avphys_pages F
 GLIBC_2.21 get_current_dir_name F
@@ -975,6 +978,7 @@ GLIBC_2.21 get_nprocs F
 GLIBC_2.21 get_nprocs_conf F
 GLIBC_2.21 get_phys_pages F
 GLIBC_2.21 getaddrinfo F
+GLIBC_2.21 getaddrinfo_a F
 GLIBC_2.21 getaliasbyname F
 GLIBC_2.21 getaliasbyname_r F
 GLIBC_2.21 getaliasent F
@@ -2391,6 +2395,7 @@ GLIBC_2.34 __ftw64_time64 F
 GLIBC_2.34 __futimens64 F
 GLIBC_2.34 __futimes64 F
 GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __gai_suspend_time64 F
 GLIBC_2.34 __getitimer64 F
 GLIBC_2.34 __getrusage64 F
 GLIBC_2.34 __gettimeofday64 F
@@ -2474,6 +2479,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index f364c5219e..e5d3b2d7b1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2070,6 +2070,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
 GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
 GLIBC_2.2.3 __rpc_thread_svc_pollfd F
 GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
 GLIBC_2.2.3 pthread_getattr_np F
 GLIBC_2.2.3 sprofil F
 GLIBC_2.2.4 dl_iterate_phdr F
@@ -2409,6 +2413,7 @@ GLIBC_2.34 __ftw64_time64 F
 GLIBC_2.34 __futimens64 F
 GLIBC_2.34 __futimes64 F
 GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __gai_suspend_time64 F
 GLIBC_2.34 __getitimer64 F
 GLIBC_2.34 __getrusage64 F
 GLIBC_2.34 __gettimeofday64 F
@@ -2492,6 +2497,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist
index ff719e7605..b748507bd9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist
@@ -1,5 +1 @@
-GLIBC_2.2.3 gai_cancel F
-GLIBC_2.2.3 gai_error F
-GLIBC_2.2.3 gai_suspend F
-GLIBC_2.2.3 getaddrinfo_a F
-GLIBC_2.34 __gai_suspend_time64 F
+GLIBC_2.2.3 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index f5bcc78afe..a70b7f61da 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2074,6 +2074,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
 GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
 GLIBC_2.2.3 __rpc_thread_svc_pollfd F
 GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
 GLIBC_2.2.3 pthread_getattr_np F
 GLIBC_2.2.3 sprofil F
 GLIBC_2.2.4 dl_iterate_phdr F
@@ -2442,6 +2446,7 @@ GLIBC_2.34 __ftw64_time64 F
 GLIBC_2.34 __futimens64 F
 GLIBC_2.34 __futimes64 F
 GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __gai_suspend_time64 F
 GLIBC_2.34 __getitimer64 F
 GLIBC_2.34 __getrusage64 F
 GLIBC_2.34 __gettimeofday64 F
@@ -2525,6 +2530,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libanl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libanl.abilist
index 975593b41f..c4b42f236e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libanl.abilist
@@ -1,4 +1 @@
-GLIBC_2.3 gai_cancel F
-GLIBC_2.3 gai_error F
-GLIBC_2.3 gai_suspend F
-GLIBC_2.3 getaddrinfo_a F
+GLIBC_2.3 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 6032716053..eb5db9960f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -933,7 +933,10 @@ GLIBC_2.3 fwprintf F
 GLIBC_2.3 fwrite F
 GLIBC_2.3 fwrite_unlocked F
 GLIBC_2.3 fwscanf F
+GLIBC_2.3 gai_cancel F
+GLIBC_2.3 gai_error F
 GLIBC_2.3 gai_strerror F
+GLIBC_2.3 gai_suspend F
 GLIBC_2.3 gcvt F
 GLIBC_2.3 get_avphys_pages F
 GLIBC_2.3 get_current_dir_name F
@@ -943,6 +946,7 @@ GLIBC_2.3 get_nprocs F
 GLIBC_2.3 get_nprocs_conf F
 GLIBC_2.3 get_phys_pages F
 GLIBC_2.3 getaddrinfo F
+GLIBC_2.3 getaddrinfo_a F
 GLIBC_2.3 getaliasbyname F
 GLIBC_2.3 getaliasbyname_r F
 GLIBC_2.3 getaliasent F
@@ -2262,6 +2266,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libanl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libanl.abilist
index 9492cd5290..0b2ef01e6a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libanl.abilist
@@ -1,4 +1 @@
-GLIBC_2.17 gai_cancel F
-GLIBC_2.17 gai_error F
-GLIBC_2.17 gai_suspend F
-GLIBC_2.17 getaddrinfo_a F
+GLIBC_2.17 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 8c5494e1dc..e8ef5b44cb 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1008,7 +1008,10 @@ GLIBC_2.17 fwprintf F
 GLIBC_2.17 fwrite F
 GLIBC_2.17 fwrite_unlocked F
 GLIBC_2.17 fwscanf F
+GLIBC_2.17 gai_cancel F
+GLIBC_2.17 gai_error F
 GLIBC_2.17 gai_strerror F
+GLIBC_2.17 gai_suspend F
 GLIBC_2.17 gcvt F
 GLIBC_2.17 get_avphys_pages F
 GLIBC_2.17 get_current_dir_name F
@@ -1018,6 +1021,7 @@ GLIBC_2.17 get_nprocs F
 GLIBC_2.17 get_nprocs_conf F
 GLIBC_2.17 get_phys_pages F
 GLIBC_2.17 getaddrinfo F
+GLIBC_2.17 getaddrinfo_a F
 GLIBC_2.17 getaliasbyname F
 GLIBC_2.17 getaliasbyname_r F
 GLIBC_2.17 getaliasent F
@@ -2561,6 +2565,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libanl.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libanl.abilist
index 33f23fd896..0326efe0dd 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libanl.abilist
@@ -1,4 +1 @@
-GLIBC_2.33 gai_cancel F
-GLIBC_2.33 gai_error F
-GLIBC_2.33 gai_suspend F
-GLIBC_2.33 getaddrinfo_a F
+GLIBC_2.33 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index d7db279c1e..8287525b5b 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -866,7 +866,10 @@ GLIBC_2.33 fwprintf F
 GLIBC_2.33 fwrite F
 GLIBC_2.33 fwrite_unlocked F
 GLIBC_2.33 fwscanf F
+GLIBC_2.33 gai_cancel F
+GLIBC_2.33 gai_error F
 GLIBC_2.33 gai_strerror F
+GLIBC_2.33 gai_suspend F
 GLIBC_2.33 gcvt F
 GLIBC_2.33 get_avphys_pages F
 GLIBC_2.33 get_current_dir_name F
@@ -874,6 +877,7 @@ GLIBC_2.33 get_nprocs F
 GLIBC_2.33 get_nprocs_conf F
 GLIBC_2.33 get_phys_pages F
 GLIBC_2.33 getaddrinfo F
+GLIBC_2.33 getaddrinfo_a F
 GLIBC_2.33 getaliasbyname F
 GLIBC_2.33 getaliasbyname_r F
 GLIBC_2.33 getaliasent F
@@ -2126,6 +2130,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist
index 711fc87c2a..646daff106 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist
@@ -1,4 +1 @@
-GLIBC_2.27 gai_cancel F
-GLIBC_2.27 gai_error F
-GLIBC_2.27 gai_suspend F
-GLIBC_2.27 getaddrinfo_a F
+GLIBC_2.27 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index ef03dc0f9e..e18f4336eb 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -905,7 +905,10 @@ GLIBC_2.27 fwprintf F
 GLIBC_2.27 fwrite F
 GLIBC_2.27 fwrite_unlocked F
 GLIBC_2.27 fwscanf F
+GLIBC_2.27 gai_cancel F
+GLIBC_2.27 gai_error F
 GLIBC_2.27 gai_strerror F
+GLIBC_2.27 gai_suspend F
 GLIBC_2.27 gcvt F
 GLIBC_2.27 get_avphys_pages F
 GLIBC_2.27 get_current_dir_name F
@@ -914,6 +917,7 @@ GLIBC_2.27 get_nprocs F
 GLIBC_2.27 get_nprocs_conf F
 GLIBC_2.27 get_phys_pages F
 GLIBC_2.27 getaddrinfo F
+GLIBC_2.27 getaddrinfo_a F
 GLIBC_2.27 getaliasbyname F
 GLIBC_2.27 getaliasbyname_r F
 GLIBC_2.27 getaliasent F
@@ -2326,6 +2330,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libanl.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libanl.abilist
index ff719e7605..b748507bd9 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libanl.abilist
@@ -1,5 +1 @@
-GLIBC_2.2.3 gai_cancel F
-GLIBC_2.2.3 gai_error F
-GLIBC_2.2.3 gai_suspend F
-GLIBC_2.2.3 getaddrinfo_a F
-GLIBC_2.34 __gai_suspend_time64 F
+GLIBC_2.2.3 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 9118cb68ec..cdd744a619 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2069,6 +2069,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
 GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
 GLIBC_2.2.3 __rpc_thread_svc_pollfd F
 GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
 GLIBC_2.2.3 pthread_getattr_np F
 GLIBC_2.2.3 sprofil F
 GLIBC_2.2.4 dl_iterate_phdr F
@@ -2407,6 +2411,7 @@ GLIBC_2.34 __ftw64_time64 F
 GLIBC_2.34 __futimens64 F
 GLIBC_2.34 __futimes64 F
 GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __gai_suspend_time64 F
 GLIBC_2.34 __getitimer64 F
 GLIBC_2.34 __getrusage64 F
 GLIBC_2.34 __gettimeofday64 F
@@ -2490,6 +2495,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libanl.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libanl.abilist
index d9a5ed015d..b748507bd9 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libanl.abilist
@@ -1,4 +1 @@
-GLIBC_2.2.3 gai_cancel F
-GLIBC_2.2.3 gai_error F
-GLIBC_2.2.3 gai_suspend F
-GLIBC_2.2.3 getaddrinfo_a F
+GLIBC_2.2.3 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 66c01bd7e7..b62a19bfa7 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1959,6 +1959,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
 GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
 GLIBC_2.2.3 __rpc_thread_svc_pollfd F
 GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
 GLIBC_2.2.3 pthread_getattr_np F
 GLIBC_2.2.3 sprofil F
 GLIBC_2.2.4 dl_iterate_phdr F
@@ -2299,6 +2303,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libanl.abilist b/sysdeps/unix/sysv/linux/sh/be/libanl.abilist
index ff719e7605..b748507bd9 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libanl.abilist
@@ -1,5 +1 @@
-GLIBC_2.2.3 gai_cancel F
-GLIBC_2.2.3 gai_error F
-GLIBC_2.2.3 gai_suspend F
-GLIBC_2.2.3 getaddrinfo_a F
-GLIBC_2.34 __gai_suspend_time64 F
+GLIBC_2.2.3 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index c40eb412c2..87392ced6e 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1946,6 +1946,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
 GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
 GLIBC_2.2.3 __rpc_thread_svc_pollfd F
 GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
 GLIBC_2.2.3 pthread_getattr_np F
 GLIBC_2.2.3 sprofil F
 GLIBC_2.2.4 dl_iterate_phdr F
@@ -2262,6 +2266,7 @@ GLIBC_2.34 __ftw64_time64 F
 GLIBC_2.34 __futimens64 F
 GLIBC_2.34 __futimes64 F
 GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __gai_suspend_time64 F
 GLIBC_2.34 __getitimer64 F
 GLIBC_2.34 __getrusage64 F
 GLIBC_2.34 __gettimeofday64 F
@@ -2345,6 +2350,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libanl.abilist b/sysdeps/unix/sysv/linux/sh/le/libanl.abilist
index ff719e7605..b748507bd9 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libanl.abilist
@@ -1,5 +1 @@
-GLIBC_2.2.3 gai_cancel F
-GLIBC_2.2.3 gai_error F
-GLIBC_2.2.3 gai_suspend F
-GLIBC_2.2.3 getaddrinfo_a F
-GLIBC_2.34 __gai_suspend_time64 F
+GLIBC_2.2.3 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 1412d33835..973a95d9bc 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1946,6 +1946,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
 GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
 GLIBC_2.2.3 __rpc_thread_svc_pollfd F
 GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
 GLIBC_2.2.3 pthread_getattr_np F
 GLIBC_2.2.3 sprofil F
 GLIBC_2.2.4 dl_iterate_phdr F
@@ -2259,6 +2263,7 @@ GLIBC_2.34 __ftw64_time64 F
 GLIBC_2.34 __futimens64 F
 GLIBC_2.34 __futimes64 F
 GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __gai_suspend_time64 F
 GLIBC_2.34 __getitimer64 F
 GLIBC_2.34 __getrusage64 F
 GLIBC_2.34 __gettimeofday64 F
@@ -2342,6 +2347,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist
index ff719e7605..b748507bd9 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist
@@ -1,5 +1 @@
-GLIBC_2.2.3 gai_cancel F
-GLIBC_2.2.3 gai_error F
-GLIBC_2.2.3 gai_suspend F
-GLIBC_2.2.3 getaddrinfo_a F
-GLIBC_2.34 __gai_suspend_time64 F
+GLIBC_2.2.3 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 7b55d34753..ed782ac093 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2063,6 +2063,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
 GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
 GLIBC_2.2.3 __rpc_thread_svc_pollfd F
 GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
 GLIBC_2.2.3 pthread_getattr_np F
 GLIBC_2.2.3 sprofil F
 GLIBC_2.2.4 dl_iterate_phdr F
@@ -2400,6 +2404,7 @@ GLIBC_2.34 __ftw64_time64 F
 GLIBC_2.34 __futimens64 F
 GLIBC_2.34 __futimes64 F
 GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __gai_suspend_time64 F
 GLIBC_2.34 __getitimer64 F
 GLIBC_2.34 __getrusage64 F
 GLIBC_2.34 __gettimeofday64 F
@@ -2483,6 +2488,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist
index d9a5ed015d..b748507bd9 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist
@@ -1,4 +1 @@
-GLIBC_2.2.3 gai_cancel F
-GLIBC_2.2.3 gai_error F
-GLIBC_2.2.3 gai_suspend F
-GLIBC_2.2.3 getaddrinfo_a F
+GLIBC_2.2.3 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index cfd5f38864..2d6fa7487c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1990,6 +1990,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
 GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
 GLIBC_2.2.3 __rpc_thread_svc_pollfd F
 GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
 GLIBC_2.2.3 pthread_getattr_np F
 GLIBC_2.2.3 sprofil F
 GLIBC_2.2.4 dl_iterate_phdr F
@@ -2319,6 +2323,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist
index 8d025f86b9..62a072e961 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist
@@ -1,4 +1 @@
-GLIBC_2.2.5 gai_cancel F
-GLIBC_2.2.5 gai_error F
-GLIBC_2.2.5 gai_suspend F
-GLIBC_2.2.5 getaddrinfo_a F
+GLIBC_2.2.5 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 17be05f14f..18f6a65498 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -852,7 +852,10 @@ GLIBC_2.2.5 fwprintf F
 GLIBC_2.2.5 fwrite F
 GLIBC_2.2.5 fwrite_unlocked F
 GLIBC_2.2.5 fwscanf F
+GLIBC_2.2.5 gai_cancel F
+GLIBC_2.2.5 gai_error F
 GLIBC_2.2.5 gai_strerror F
+GLIBC_2.2.5 gai_suspend F
 GLIBC_2.2.5 gcvt F
 GLIBC_2.2.5 get_avphys_pages F
 GLIBC_2.2.5 get_current_dir_name F
@@ -862,6 +865,7 @@ GLIBC_2.2.5 get_nprocs F
 GLIBC_2.2.5 get_nprocs_conf F
 GLIBC_2.2.5 get_phys_pages F
 GLIBC_2.2.5 getaddrinfo F
+GLIBC_2.2.5 getaddrinfo_a F
 GLIBC_2.2.5 getaliasbyname F
 GLIBC_2.2.5 getaliasbyname_r F
 GLIBC_2.2.5 getaliasent F
@@ -2277,6 +2281,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist
index 067013555a..097f7def8c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist
@@ -1,4 +1 @@
-GLIBC_2.16 gai_cancel F
-GLIBC_2.16 gai_error F
-GLIBC_2.16 gai_suspend F
-GLIBC_2.16 getaddrinfo_a F
+GLIBC_2.16 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index a9db18906b..8e1db86dc4 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -924,7 +924,10 @@ GLIBC_2.16 fwprintf F
 GLIBC_2.16 fwrite F
 GLIBC_2.16 fwrite_unlocked F
 GLIBC_2.16 fwscanf F
+GLIBC_2.16 gai_cancel F
+GLIBC_2.16 gai_error F
 GLIBC_2.16 gai_strerror F
+GLIBC_2.16 gai_suspend F
 GLIBC_2.16 gcvt F
 GLIBC_2.16 get_avphys_pages F
 GLIBC_2.16 get_current_dir_name F
@@ -934,6 +937,7 @@ GLIBC_2.16 get_nprocs F
 GLIBC_2.16 get_nprocs_conf F
 GLIBC_2.16 get_phys_pages F
 GLIBC_2.16 getaddrinfo F
+GLIBC_2.16 getaddrinfo_a F
 GLIBC_2.16 getaliasbyname F
 GLIBC_2.16 getaliasbyname_r F
 GLIBC_2.16 getaliasent F
@@ -2380,6 +2384,10 @@ GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 execveat F
+GLIBC_2.34 gai_cancel F
+GLIBC_2.34 gai_error F
+GLIBC_2.34 gai_suspend F
+GLIBC_2.34 getaddrinfo_a F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] resolv: Move libanl into libc (if libpthread is in libc)
  2021-06-21 20:56 [PATCH] resolv: Move libanl into libc (if libpthread is in libc) Florian Weimer
@ 2021-07-01 17:39 ` Carlos O'Donell
  0 siblings, 0 replies; 2+ messages in thread
From: Carlos O'Donell @ 2021-07-01 17:39 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 6/21/21 4:56 PM, Florian Weimer via Libc-alpha wrote:
> The symbols gai_cancel, gai_error, gai_suspend, getaddrinfo_a,
> __gai_suspend_time64 were moved using scripts/move-symbol-to-libc.py.
> 
> For Hurd (which remains !PTHREAD_IN_LIBC), a few #define redirects
> had to be added because several pthread functions are not available
> under __.  (Linux uses __ prefixes for most hidden aliases, and has
> to in some cases to avoid linknamespace issues.)
> 
> Tested on i686-linux-gnu and x86_64-linux-gnu.  Built with
> build-many-glibcs.py.
> 
> I can split this up further if requested.

No need to split up further, this review was fairly straight forward
given that libanl is not that complicated.		

I reviewed .gnu.version_d for the built objects, and reviewed the ABI
and it looks good to me (contains the right version notes, and symbols
move to libc.so.6 correctly and with the right versions).

Tested with no regressions on x86_64 and i686.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>

> Thanks,
> Florian
> ---
>  Makeconfig                                         |  2 +
>  include/netdb.h                                    |  4 ++
>  resolv/Makefile                                    |  7 +++-
>  resolv/Versions                                    | 16 ++++++++
>  resolv/gai_cancel.c                                | 17 ++++++--
>  resolv/gai_error.c                                 | 13 +++++-
>  resolv/gai_misc.c                                  | 48 +++++++++++++---------
>  resolv/gai_misc.h                                  |  1 +
>  resolv/gai_notify.c                                | 15 +++++--
>  resolv/gai_sigqueue.c                              |  2 +-
>  resolv/gai_suspend.c                               | 47 +++++++++++++++------
>  resolv/getaddrinfo_a.c                             | 21 +++++++---
>  resolv/libanl-compat.c                             | 35 ++++++++++++++++
>  sysdeps/nptl/gai_misc.h                            | 24 +++++------
>  sysdeps/unix/sysv/linux/Versions                   |  9 +---
>  sysdeps/unix/sysv/linux/aarch64/libanl.abilist     |  5 +--
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist       |  8 ++++
>  sysdeps/unix/sysv/linux/alpha/libanl.abilist       |  5 +--
>  sysdeps/unix/sysv/linux/alpha/libc.abilist         |  8 ++++
>  sysdeps/unix/sysv/linux/arc/libanl.abilist         |  5 +--
>  sysdeps/unix/sysv/linux/arc/libc.abilist           |  8 ++++
>  sysdeps/unix/sysv/linux/arm/be/libanl.abilist      |  6 +--
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist        |  9 ++++
>  sysdeps/unix/sysv/linux/arm/le/libanl.abilist      |  6 +--
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist        |  9 ++++
>  sysdeps/unix/sysv/linux/csky/libanl.abilist        |  6 +--
>  sysdeps/unix/sysv/linux/csky/libc.abilist          |  9 ++++
>  sysdeps/unix/sysv/linux/gai_sigqueue.c             |  1 +
>  sysdeps/unix/sysv/linux/hppa/libanl.abilist        |  6 +--
>  sysdeps/unix/sysv/linux/hppa/libc.abilist          |  9 ++++
>  sysdeps/unix/sysv/linux/i386/libanl.abilist        |  6 +--
>  sysdeps/unix/sysv/linux/i386/libc.abilist          |  9 ++++
>  sysdeps/unix/sysv/linux/ia64/libanl.abilist        |  5 +--
>  sysdeps/unix/sysv/linux/ia64/libc.abilist          |  8 ++++
>  .../unix/sysv/linux/m68k/coldfire/libanl.abilist   |  6 +--
>  sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist |  9 ++++
>  sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist |  6 +--
>  sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist   |  9 ++++
>  .../unix/sysv/linux/microblaze/be/libanl.abilist   |  6 +--
>  sysdeps/unix/sysv/linux/microblaze/be/libc.abilist |  9 ++++
>  .../unix/sysv/linux/microblaze/le/libanl.abilist   |  6 +--
>  sysdeps/unix/sysv/linux/microblaze/le/libc.abilist |  9 ++++
>  .../unix/sysv/linux/mips/mips32/fpu/libc.abilist   |  9 ++++
>  sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist |  6 +--
>  .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist |  9 ++++
>  .../unix/sysv/linux/mips/mips64/n32/libanl.abilist |  6 +--
>  .../unix/sysv/linux/mips/mips64/n32/libc.abilist   |  9 ++++
>  .../unix/sysv/linux/mips/mips64/n64/libanl.abilist |  5 +--
>  .../unix/sysv/linux/mips/mips64/n64/libc.abilist   |  8 ++++
>  sysdeps/unix/sysv/linux/nios2/libanl.abilist       |  6 +--
>  sysdeps/unix/sysv/linux/nios2/libc.abilist         |  9 ++++
>  .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist  |  9 ++++
>  .../sysv/linux/powerpc/powerpc32/libanl.abilist    |  6 +--
>  .../linux/powerpc/powerpc32/nofpu/libc.abilist     |  9 ++++
>  .../sysv/linux/powerpc/powerpc64/be/libanl.abilist |  5 +--
>  .../sysv/linux/powerpc/powerpc64/be/libc.abilist   |  8 ++++
>  .../sysv/linux/powerpc/powerpc64/le/libanl.abilist |  5 +--
>  .../sysv/linux/powerpc/powerpc64/le/libc.abilist   |  8 ++++
>  sysdeps/unix/sysv/linux/riscv/rv32/libanl.abilist  |  5 +--
>  sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist    |  8 ++++
>  sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist  |  5 +--
>  sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist    |  8 ++++
>  .../unix/sysv/linux/s390/s390-32/libanl.abilist    |  6 +--
>  sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist  |  9 ++++
>  .../unix/sysv/linux/s390/s390-64/libanl.abilist    |  5 +--
>  sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist  |  8 ++++
>  sysdeps/unix/sysv/linux/sh/be/libanl.abilist       |  6 +--
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist         |  9 ++++
>  sysdeps/unix/sysv/linux/sh/le/libanl.abilist       |  6 +--
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist         |  9 ++++
>  .../unix/sysv/linux/sparc/sparc32/libanl.abilist   |  6 +--
>  sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist |  9 ++++
>  .../unix/sysv/linux/sparc/sparc64/libanl.abilist   |  5 +--
>  sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist |  8 ++++
>  sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist   |  5 +--
>  sysdeps/unix/sysv/linux/x86_64/64/libc.abilist     |  8 ++++
>  sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist  |  5 +--
>  sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist    |  8 ++++
>  78 files changed, 498 insertions(+), 206 deletions(-)
> 
> diff --git a/Makeconfig b/Makeconfig
> index 407df9e6a1..efc7351d71 100644
> --- a/Makeconfig
> +++ b/Makeconfig
> @@ -1342,9 +1342,11 @@ sysd-rules-targets := $(sort $(foreach p,$(sysd-rules-patterns),\
>  ifeq ($(pthread-in-libc),yes)
>  libpthread-routines-var = routines
>  librt-routines-var = routines
> +libanl-routines-var = routines

OK.

>  else
>  libpthread-routines-var = libpthread-routines
>  librt-routines-var = librt-routines
> +libanl-routines-var = libanl-routines

OK.

>  endif
>  
>  # A sysdeps Makeconfig fragment may set libc-reentrant to yes.
> diff --git a/include/netdb.h b/include/netdb.h
> index 645b85dc62..82e102ff76 100644
> --- a/include/netdb.h
> +++ b/include/netdb.h
> @@ -199,7 +199,11 @@ libc_hidden_proto (ruserpass)
>  # else
>  extern int __gai_suspend_time64 (const struct gaicb *const list[], int ent,
>                                   const struct __timespec64 *timeout);
> +#  if PTHREAD_IN_LIBC
> +libc_hidden_proto (__gai_suspend_time64)
> +#  else
>  libanl_hidden_proto (__gai_suspend_time64)
> +#  endif

OK. Correct hidden proto.

>  # endif
>  
>  /* The following definition has been removed from the public header
> diff --git a/resolv/Makefile b/resolv/Makefile
> index 3fbc320ee1..1d3565d478 100644
> --- a/resolv/Makefile
> +++ b/resolv/Makefile
> @@ -112,8 +112,11 @@ libresolv-routines := res_comp res_debug \
>  		      ns_samedomain ns_date res_enable_icmp \
>  		      compat-hooks compat-gethnamaddr
>  
> -libanl-routines := gai_cancel gai_error gai_misc gai_notify gai_suspend \
> -		   getaddrinfo_a
> +$(libanl-routines-var) += \
> +  gai_cancel gai_error gai_misc gai_notify gai_suspend getaddrinfo_a

OK. Use indirection to put them into libanl or libc.

> +
> +libanl-routines += libanl-compat
> +libanl-shared-only-routines += libanl-compat

OK. Except for these which are always in libanl.

>  
>  subdir-dirs = nss_dns
>  vpath %.c nss_dns
> diff --git a/resolv/Versions b/resolv/Versions
> index 9a82704af7..d4f6b4b819 100644
> --- a/resolv/Versions
> +++ b/resolv/Versions
> @@ -21,8 +21,20 @@ libc {
>      # r*
>      __res_state; __res_init; __res_nclose; __res_ninit; _res_hconf;
>    }
> +  GLIBC_2.2.3 {
> +%if PTHREAD_IN_LIBC
> +    gai_cancel; gai_error; gai_suspend; getaddrinfo_a;
> +%endif
> +  }
> +  GLIBC_2.34 {
> +%if PTHREAD_IN_LIBC
> +    gai_cancel; gai_error; gai_suspend; getaddrinfo_a;
> +%endif
> +  }
>    GLIBC_PRIVATE {
> +%if !PTHREAD_IN_LIBC
>      __gai_sigqueue;
> +%endif
>  
>      __h_errno; __resp;
>  
> @@ -103,6 +115,10 @@ libnss_dns {
>  
>  libanl {
>    GLIBC_2.2.3 {
> +%if PTHREAD_IN_LIBC
> +    __libanl_version_placeholder;

OK. Need a GLIBC_2.2.3 version node.

> +%else
>      gai_cancel; gai_error; gai_suspend; getaddrinfo_a;
> +%endif
>    }
>  }
> diff --git a/resolv/gai_cancel.c b/resolv/gai_cancel.c
> index 5d398ffea8..aa6ba03e5a 100644
> --- a/resolv/gai_cancel.c
> +++ b/resolv/gai_cancel.c
> @@ -18,18 +18,18 @@
>  
>  #include <netdb.h>
>  #include <pthread.h>
> -
> +#include <shlib-compat.h>
>  #include <gai_misc.h>
>  
>  
>  int
> -gai_cancel (struct gaicb *gaicbp)
> +__gai_cancel (struct gaicb *gaicbp)
>  {
>    int result = 0;
>    int status;
>  
>    /* Request the mutex.  */
> -  pthread_mutex_lock (&__gai_requests_mutex);
> +  __pthread_mutex_lock (&__gai_requests_mutex);
>  
>    /* Find the request among those queued but not yet running.  */
>    status = __gai_remove_request (gaicbp);
> @@ -41,7 +41,16 @@ gai_cancel (struct gaicb *gaicbp)
>      result = EAI_ALLDONE;
>  
>    /* Release the mutex.  */
> -  pthread_mutex_unlock (&__gai_requests_mutex);
> +  __pthread_mutex_unlock (&__gai_requests_mutex);

OK. Use internal __ alias.

>  
>    return result;
>  }
> +#if PTHREAD_IN_LIBC
> +versioned_symbol (libc, __gai_cancel, gai_cancel, GLIBC_2_34);

OK. Add GLIBC_2_34 symbol. 1/4.

> +
> +# if OTHER_SHLIB_COMPAT (libanl, GLIBC_2_2_3, GLIBC_2_34)
> +compat_symbol (libanl, __gai_cancel, gai_cancel, GLIBC_2_2_3);
> +# endif
> +#else /* !PTHREAD_IN_LIBC */
> +strong_alias (__gai_cancel, gai_cancel)
> +#endif /* !PTHREAD_IN_LIBC */
> diff --git a/resolv/gai_error.c b/resolv/gai_error.c
> index 4f9ac557b7..9fe9c400ee 100644
> --- a/resolv/gai_error.c
> +++ b/resolv/gai_error.c
> @@ -17,11 +17,20 @@
>     <https://www.gnu.org/licenses/>.  */
>  
>  #include <netdb.h>
> -
> +#include <shlib-compat.h>
>  #include <gai_misc.h>
>  
>  int
> -gai_error (struct gaicb *req)
> +__gai_error (struct gaicb *req)
>  {
>    return req->__return;
>  }
> +#if PTHREAD_IN_LIBC
> +versioned_symbol (libc, __gai_error, gai_error, GLIBC_2_34);

OK. Add GLIBC_2_34 symbol. 2/4.

> +
> +# if OTHER_SHLIB_COMPAT (libanl, GLIBC_2_2_3, GLIBC_2_34)
> +compat_symbol (libanl, __gai_error, gai_error, GLIBC_2_2_3);
> +# endif
> +#else /* !PTHREAD_IN_LIBC */
> +strong_alias (__gai_error, gai_error)
> +#endif /* !PTHREAD_IN_LIBC */
> diff --git a/resolv/gai_misc.c b/resolv/gai_misc.c
> index 04be05e109..11cc574320 100644
> --- a/resolv/gai_misc.c
> +++ b/resolv/gai_misc.c
> @@ -24,7 +24,16 @@
>  
>  #include <gai_misc.h>
>  
> -
> +#if !PTHREAD_IN_LIBC
> +/* The available function names differ outside of libc.  (In libc, we
> +   need to use hidden aliases to avoid the PLT.)  */
> +#define __pthread_attr_init pthread_attr_init
> +#define __pthread_attr_setdetachstate pthread_attr_setdetachstate
> +#define __pthread_cond_signal pthread_cond_signal
> +#define __pthread_cond_timedwait pthread_cond_timedwait
> +#define __pthread_create pthread_create
> +#define __pthread_exit pthread_exit

OK.

> +#endif
>  
>  #ifndef gai_create_helper_thread
>  # define gai_create_helper_thread __gai_create_helper_thread
> @@ -36,12 +45,12 @@ __gai_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
>    pthread_attr_t attr;
>  
>    /* Make sure the thread is created detached.  */
> -  pthread_attr_init (&attr);
> -  pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
> +  __pthread_attr_init (&attr);
> +  __pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
>  
> -  int ret = pthread_create (threadp, &attr, tf, arg);
> +  int ret = __pthread_create (threadp, &attr, tf, arg);
>  
> -  (void) pthread_attr_destroy (&attr);
> +  (void) __pthread_attr_destroy (&attr);
>    return ret;
>  }
>  #endif
> @@ -216,13 +225,13 @@ __gai_enqueue_request (struct gaicb *gaicbp)
>    struct requestlist *lastp;
>  
>    /* Get the mutex.  */
> -  pthread_mutex_lock (&__gai_requests_mutex);
> +  __pthread_mutex_lock (&__gai_requests_mutex);
>  
>    /* Get a new element for the waiting list.  */
>    newp = get_elem ();
>    if (newp == NULL)
>      {
> -      pthread_mutex_unlock (&__gai_requests_mutex);
> +      __pthread_mutex_unlock (&__gai_requests_mutex);
>        __set_errno (EAGAIN);
>        return NULL;
>      }
> @@ -285,11 +294,11 @@ __gai_enqueue_request (struct gaicb *gaicbp)
>        /* If there is a thread waiting for work, then let it know that we
>  	 have just given it something to do. */
>        if (idle_thread_count > 0)
> -	pthread_cond_signal (&__gai_new_request_notification);
> +	__pthread_cond_signal (&__gai_new_request_notification);
>      }
>  
>    /* Release the mutex.  */
> -  pthread_mutex_unlock (&__gai_requests_mutex);
> +  __pthread_mutex_unlock (&__gai_requests_mutex);
>  
>    return newp;
>  }
> @@ -309,7 +318,7 @@ handle_requests (void *arg)
>  	 "get work off the work queue" part of this loop, which is near the
>  	 end. */
>        if (runp == NULL)
> -	pthread_mutex_lock (&__gai_requests_mutex);
> +	__pthread_mutex_lock (&__gai_requests_mutex);
>        else
>  	{
>  	  /* Make the request.  */
> @@ -321,7 +330,7 @@ handle_requests (void *arg)
>  				       req->ar_request, &req->ar_result);
>  
>  	  /* Get the mutex.  */
> -	  pthread_mutex_lock (&__gai_requests_mutex);
> +	  __pthread_mutex_lock (&__gai_requests_mutex);
>  
>  	  /* Send the signal to notify about finished processing of the
>  	     request.  */
> @@ -369,8 +378,8 @@ handle_requests (void *arg)
>  	      wakeup_time.tv_nsec -= 1000000000;
>  	      ++wakeup_time.tv_sec;
>  	    }
> -	  pthread_cond_timedwait (&__gai_new_request_notification,
> -				  &__gai_requests_mutex, &wakeup_time);
> +	  __pthread_cond_timedwait (&__gai_new_request_notification,
> +				    &__gai_requests_mutex, &wakeup_time);
>  	  --idle_thread_count;
>  	  runp = requests;
>  	  while (runp != NULL && runp->running != 0)
> @@ -395,20 +404,21 @@ handle_requests (void *arg)
>  		 up for these other work elements; otherwise, we should try
>  		 to create a new thread. */
>  	      if (idle_thread_count > 0)
> -		pthread_cond_signal (&__gai_new_request_notification);
> +		__pthread_cond_signal (&__gai_new_request_notification);
>  	      else if (nthreads < optim.gai_threads)
>  		{
>  		  pthread_t thid;
>  		  pthread_attr_t attr;
>  
>  		  /* Make sure the thread is created detached.  */
> -		  pthread_attr_init (&attr);
> -		  pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
> +		  __pthread_attr_init (&attr);
> +		  __pthread_attr_setdetachstate (&attr,
> +						 PTHREAD_CREATE_DETACHED);
>  
>  		  /* Now try to start a thread. If we fail, no big deal,
>  		     because we know that there is at least one thread (us)
>  		     that is working on lookup operations. */
> -		  if (pthread_create (&thid, &attr, handle_requests, NULL)
> +		  if (__pthread_create (&thid, &attr, handle_requests, NULL)
>  		      == 0)
>  		    ++nthreads;
>  		}
> @@ -416,11 +426,11 @@ handle_requests (void *arg)
>  	}
>  
>        /* Release the mutex.  */
> -      pthread_mutex_unlock (&__gai_requests_mutex);
> +      __pthread_mutex_unlock (&__gai_requests_mutex);
>      }
>    while (runp != NULL);
>  
> -  pthread_exit (NULL);
> +  __pthread_exit (NULL);
>  }
>  
>  
> diff --git a/resolv/gai_misc.h b/resolv/gai_misc.h
> index 11167a73a1..d3ef00bad7 100644
> --- a/resolv/gai_misc.h
> +++ b/resolv/gai_misc.h
> @@ -96,5 +96,6 @@ extern int __gai_notify_only (struct sigevent *sigev, pid_t caller_pid)
>  
>  /* Send the signal.  */
>  extern int __gai_sigqueue (int sig, const union sigval val, pid_t caller_pid);
> +libc_hidden_proto (__gai_sigqueue)

OK.

>  
>  #endif /* gai_misc.h */
> diff --git a/resolv/gai_notify.c b/resolv/gai_notify.c
> index de104e5560..8fee627f46 100644
> --- a/resolv/gai_notify.c
> +++ b/resolv/gai_notify.c
> @@ -21,6 +21,15 @@
>  #include <stdlib.h>
>  #include <gai_misc.h>
>  
> +#if !PTHREAD_IN_LIBC
> +/* The available function names differ outside of libc.  (In libc, we
> +   need to use hidden aliases to avoid the PLT.)  */
> +#define __pthread_attr_init pthread_attr_init
> +#define __pthread_attr_setdetachstate pthread_attr_setdetachstate
> +#define __pthread_cond_signal pthread_cond_signal
> +#define __pthread_cond_timedwait pthread_cond_timedwait
> +#define __pthread_create pthread_create
> +#endif
>  
>  struct notify_func
>    {
> @@ -56,8 +65,8 @@ __gai_notify_only (struct sigevent *sigev, pid_t caller_pid)
>        pattr = (pthread_attr_t *) sigev->sigev_notify_attributes;
>        if (pattr == NULL)
>  	{
> -	  pthread_attr_init (&attr);
> -	  pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
> +	  __pthread_attr_init (&attr);
> +	  __pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
>  	  pattr = &attr;
>  	}
>  
> @@ -75,7 +84,7 @@ __gai_notify_only (struct sigevent *sigev, pid_t caller_pid)
>  	{
>  	  nf->func = sigev->sigev_notify_function;
>  	  nf->value = sigev->sigev_value;
> -	  if (pthread_create (&tid, pattr, notify_func_wrapper, nf) < 0)
> +	  if (__pthread_create (&tid, pattr, notify_func_wrapper, nf) < 0)
>  	    {
>  	      free (nf);
>  	      result = -1;
> diff --git a/resolv/gai_sigqueue.c b/resolv/gai_sigqueue.c
> index f7d0dad73d..9b383e2480 100644
> --- a/resolv/gai_sigqueue.c
> +++ b/resolv/gai_sigqueue.c
> @@ -27,5 +27,5 @@ __gai_sigqueue (int sig, const union sigval val, pid_t caller_pid)
>    __set_errno (ENOSYS);
>    return -1;
>  }
> -
> +libc_hidden_def (__gai_sigqueue)
>  stub_warning (__gai_sigqueue)
> diff --git a/resolv/gai_suspend.c b/resolv/gai_suspend.c
> index a0c3407b00..965bb113a4 100644
> --- a/resolv/gai_suspend.c
> +++ b/resolv/gai_suspend.c
> @@ -25,8 +25,8 @@
>  #include <gai_misc.h>
>  
>  int
> -__gai_suspend_time64 (const struct gaicb *const list[], int ent,
> -                      const struct __timespec64 *timeout)
> +___gai_suspend_time64 (const struct gaicb *const list[], int ent,
> +		       const struct __timespec64 *timeout)
>  {
>    struct waitlist waitlist[ent];
>    struct requestlist *requestlist[ent];
> @@ -39,7 +39,7 @@ __gai_suspend_time64 (const struct gaicb *const list[], int ent,
>    int result;
>  
>    /* Request the mutex.  */
> -  pthread_mutex_lock (&__gai_requests_mutex);
> +  __pthread_mutex_lock (&__gai_requests_mutex);
>  
>    /* There is not yet a finished request.  Signal the request that
>       we are working for it.  */
> @@ -91,7 +91,7 @@ __gai_suspend_time64 (const struct gaicb *const list[], int ent,
>        /* Since `pthread_cond_wait'/`pthread_cond_timedwait' are cancelation
>  	 points we must be careful.  We added entries to the waiting lists
>  	 which we must remove.  So defer cancelation for now.  */
> -      pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &oldstate);
> +      __pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &oldstate);
>  
>  #ifdef DONT_NEED_GAI_MISC_COND
>        result = 0;
> @@ -121,7 +121,7 @@ __gai_suspend_time64 (const struct gaicb *const list[], int ent,
>  	  }
>  
>        /* Now it's time to restore the cancelation state.  */
> -      pthread_setcancelstate (oldstate, NULL);
> +      __pthread_setcancelstate (oldstate, NULL);
>  
>  #ifndef DONT_NEED_GAI_MISC_COND
>        /* Release the conditional variable.  */
> @@ -145,17 +145,33 @@ __gai_suspend_time64 (const struct gaicb *const list[], int ent,
>      }
>  
>    /* Release the mutex.  */
> -  pthread_mutex_unlock (&__gai_requests_mutex);
> +  __pthread_mutex_unlock (&__gai_requests_mutex);
>  
>    return result;
>  }
>  
> -#if __TIMESIZE != 64
> -libanl_hidden_def (__gai_suspend_time64)
> +#if __TIMESIZE == 64
> +# if PTHREAD_IN_LIBC
> +versioned_symbol (libc, ___gai_suspend_time64, gai_suspend, GLIBC_2_34);

OK. Add GLIBC_2_34 symbol. 3/4.

> +#  if OTHER_SHLIB_COMPAT (libanl, GLIBC_2_2_3, GLIBC_2_34)
> +compat_symbol (libanl, ___gai_suspend_time64, gai_suspend, GLIBC_2_2_3);
> +#  endif
> +# endif /* PTHREAD_IN_LIBC */
> +
> +#else /* __TIMESIZE != 64 */
> +# if PTHREAD_IN_LIBC
> +libc_hidden_ver (___gai_suspend_time64, __gai_suspend_time64)
> +versioned_symbol (libc, ___gai_suspend_time64, __gai_suspend_time64,
> +		  GLIBC_2_34);
> +# else /* !PTHREAD_IN_LIBC */
> +# if IS_IN (libanl)
> +hidden_ver (___gai_suspend_time64, __gai_suspend_time64)
> +# endif
> +#endif /* !PTHREAD_IN_LIBC */
>  
>  int
> -__gai_suspend (const struct gaicb *const list[], int ent,
> -	       const struct timespec *timeout)
> +___gai_suspend (const struct gaicb *const list[], int ent,
> +		const struct timespec *timeout)
>  {
>    struct __timespec64 ts64;
>  
> @@ -164,5 +180,12 @@ __gai_suspend (const struct gaicb *const list[], int ent,
>  
>    return __gai_suspend_time64 (list, ent, timeout != NULL ? &ts64 : NULL);
>  }
> -#endif
> -weak_alias (__gai_suspend, gai_suspend)
> +#if PTHREAD_IN_LIBC
> +versioned_symbol (libc, ___gai_suspend, gai_suspend, GLIBC_2_34);

OK. The non-64-bit-time_t version.

> +# if OTHER_SHLIB_COMPAT (libanl, GLIBC_2_2_3, GLIBC_2_34)
> +compat_symbol (libanl, ___gai_suspend, gai_suspend, GLIBC_2_2_3);
> +# endif
> +# else
> +weak_alias (___gai_suspend, gai_suspend)
> +# endif /* !PTHREAD_IN_LIBC */
> +#endif /* __TIMESIZE != 64 */
> diff --git a/resolv/getaddrinfo_a.c b/resolv/getaddrinfo_a.c
> index fca39a8d89..7541f2a9af 100644
> --- a/resolv/getaddrinfo_a.c
> +++ b/resolv/getaddrinfo_a.c
> @@ -35,7 +35,7 @@ struct async_waitlist
>  
>  
>  int
> -getaddrinfo_a (int mode, struct gaicb *list[], int ent, struct sigevent *sig)
> +__getaddrinfo_a (int mode, struct gaicb *list[], int ent, struct sigevent *sig)
>  {
>    struct sigevent defsigev;
>    struct requestlist *requests[ent];
> @@ -57,7 +57,7 @@ getaddrinfo_a (int mode, struct gaicb *list[], int ent, struct sigevent *sig)
>      }
>  
>    /* Request the mutex.  */
> -  pthread_mutex_lock (&__gai_requests_mutex);
> +  __pthread_mutex_lock (&__gai_requests_mutex);
>  
>    /* Now we can enqueue all requests.  Since we already acquired the
>       mutex the enqueue function need not do this.  */
> @@ -85,7 +85,7 @@ getaddrinfo_a (int mode, struct gaicb *list[], int ent, struct sigevent *sig)
>        /* Release the mutex.  We do this before raising a signal since the
>  	 signal handler might do a `siglongjmp' and then the mutex is
>  	 locked forever.  */
> -      pthread_mutex_unlock (&__gai_requests_mutex);
> +      __pthread_mutex_unlock (&__gai_requests_mutex);
>  
>        if (mode == GAI_NOWAIT)
>  	__gai_notify_only (sig,
> @@ -119,7 +119,7 @@ getaddrinfo_a (int mode, struct gaicb *list[], int ent, struct sigevent *sig)
>        /* Since `pthread_cond_wait'/`pthread_cond_timedwait' are cancelation
>  	 points we must be careful.  We added entries to the waiting lists
>  	 which we must remove.  So defer cancelation for now.  */
> -      pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &oldstate);
> +      __pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &oldstate);
>  
>        while (total > 0)
>  	{
> @@ -132,7 +132,7 @@ getaddrinfo_a (int mode, struct gaicb *list[], int ent, struct sigevent *sig)
>  	}
>  
>        /* Now it's time to restore the cancelation state.  */
> -      pthread_setcancelstate (oldstate, NULL);
> +      __pthread_setcancelstate (oldstate, NULL);
>  
>  #ifndef DONT_NEED_GAI_MISC_COND
>        /* Release the conditional variable.  */
> @@ -176,7 +176,16 @@ getaddrinfo_a (int mode, struct gaicb *list[], int ent, struct sigevent *sig)
>      }
>  
>    /* Release the mutex.  */
> -  pthread_mutex_unlock (&__gai_requests_mutex);
> +  __pthread_mutex_unlock (&__gai_requests_mutex);
>  
>    return result;
>  }
> +#if PTHREAD_IN_LIBC
> +versioned_symbol (libc, __getaddrinfo_a, getaddrinfo_a, GLIBC_2_34);

OK. Add GLIBC_2_34 symbol. 4/4. ABI is complete.

> +
> +# if OTHER_SHLIB_COMPAT (libanl, GLIBC_2_2_3, GLIBC_2_34)
> +compat_symbol (libanl, __getaddrinfo_a, getaddrinfo_a, GLIBC_2_2_3);
> +# endif
> +#else /* !PTHREAD_IN_LIBC */
> +strong_alias (__getaddrinfo_a, getaddrinfo_a)
> +#endif /* !PTHREAD_IN_LIBC */
> diff --git a/resolv/libanl-compat.c b/resolv/libanl-compat.c
> new file mode 100644
> index 0000000000..29df76f278
> --- /dev/null
> +++ b/resolv/libanl-compat.c
> @@ -0,0 +1,35 @@
> +/* Placeholder compatibility symbols for libanl.
> +   Copyright (C) 2021 Free Software Foundation, Inc.
> +   This file is part of the GNU C Library.
> +
> +   The GNU C Library is free software; you can redistribute it and/or
> +   modify it under the terms of the GNU Lesser General Public
> +   License as published by the Free Software Foundation; either
> +   version 2.1 of the License, or (at your option) any later version.
> +
> +   The GNU C Library is distributed in the hope that it will be useful,
> +   but WITHOUT ANY WARRANTY; without even the implied warranty of
> +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> +   Lesser General Public License for more details.
> +
> +   You should have received a copy of the GNU Lesser General Public
> +   License along with the GNU C Library; if not, see
> +   <https://www.gnu.org/licenses/>.  */
> +
> +#if PTHREAD_IN_LIBC
> +# include <shlib-compat.h>
> +# include <sys/cdefs.h>
> +
> +/* This file is used to keep specific symbol versions occupied, so
> +   that ld does not generate weak symbol version definitions.  */
> +
> +void
> +attribute_compat_text_section
> +__attribute_used__
> +__libanl_version_placeholder_1 (void)
> +{
> +}
> +
> +compat_symbol (libanl, __libanl_version_placeholder_1,
> +               __libanl_version_placeholder, GLIBC_2_2_3);

OK. Keeps version node.

> +#endif
> diff --git a/sysdeps/nptl/gai_misc.h b/sysdeps/nptl/gai_misc.h
> index 82948fdf96..357f536557 100644
> --- a/sysdeps/nptl/gai_misc.h
> +++ b/sysdeps/nptl/gai_misc.h
> @@ -40,7 +40,7 @@
>  									      \
>      if (oldval != 0)							      \
>        {									      \
> -	pthread_mutex_unlock (&__gai_requests_mutex);			      \
> +	__pthread_mutex_unlock (&__gai_requests_mutex);			      \
>  									      \
>  	int status;							      \
>  	do								      \
> @@ -68,7 +68,7 @@
>  	else								      \
>  	  assert (status == 0 || status == EAGAIN);			      \
>  									      \
> -	pthread_mutex_lock (&__gai_requests_mutex);			      \
> +	__pthread_mutex_lock (&__gai_requests_mutex);			      \
>        }									      \
>    } while (0)
>  
> @@ -82,7 +82,7 @@ __gai_start_notify_thread (void)
>    sigset_t ss;
>    sigemptyset (&ss);
>    int sigerr __attribute__ ((unused));
> -  sigerr = pthread_sigmask (SIG_SETMASK, &ss, NULL);
> +  sigerr = __pthread_sigmask (SIG_SETMASK, &ss, NULL);
>    assert_perror (sigerr);
>  }
>  
> @@ -93,13 +93,13 @@ __gai_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
>    pthread_attr_t attr;
>  
>    /* Make sure the thread is created detached.  */
> -  pthread_attr_init (&attr);
> -  pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
> +  __pthread_attr_init (&attr);
> +  __pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
>  
>    /* The helper thread needs only very little resources.  */
> -  (void) pthread_attr_setstacksize (&attr,
> -				    __pthread_get_minstack (&attr)
> -				    + 4 * PTHREAD_STACK_MIN);
> +  (void) __pthread_attr_setstacksize (&attr,
> +				      __pthread_get_minstack (&attr)
> +				      + 4 * PTHREAD_STACK_MIN);
>  
>    /* Block all signals in the helper thread.  To do this thoroughly we
>       temporarily have to block all signals here.  */
> @@ -107,16 +107,16 @@ __gai_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
>    sigset_t oss;
>    sigfillset (&ss);
>    int sigerr __attribute__ ((unused));
> -  sigerr = pthread_sigmask (SIG_SETMASK, &ss, &oss);
> +  sigerr = __pthread_sigmask (SIG_SETMASK, &ss, &oss);
>    assert_perror (sigerr);
>  
> -  int ret = pthread_create (threadp, &attr, tf, arg);
> +  int ret = __pthread_create (threadp, &attr, tf, arg);
>  
>    /* Restore the signal mask.  */
> -  sigerr = pthread_sigmask (SIG_SETMASK, &oss, NULL);
> +  sigerr = __pthread_sigmask (SIG_SETMASK, &oss, NULL);
>    assert_perror (sigerr);
>  
> -  (void) pthread_attr_destroy (&attr);
> +  (void) __pthread_attr_destroy (&attr);
>    return ret;
>  }
>  
> diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
> index ea0b22d7af..ee87de0036 100644
> --- a/sysdeps/unix/sysv/linux/Versions
> +++ b/sysdeps/unix/sysv/linux/Versions
> @@ -213,6 +213,7 @@ libc {
>      __fts64_children_time64;
>      __ftw64_time64;
>      __nftw64_time64;
> +    __gai_suspend_time64;
>      __getitimer64;
>      __getrusage64;
>      __gettimeofday64;
> @@ -302,11 +303,3 @@ librt {
>  %endif
>    }
>  }
> -
> -libanl {
> -%ifdef TIME64_NON_DEFAULT
> -  GLIBC_2.34 {
> -    __gai_suspend_time64;
> -  }
> -%endif
> -}

OK. ABI moves into libc.

> diff --git a/sysdeps/unix/sysv/linux/aarch64/libanl.abilist b/sysdeps/unix/sysv/linux/aarch64/libanl.abilist
> index 9492cd5290..0b2ef01e6a 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libanl.abilist
> @@ -1,4 +1 @@
> -GLIBC_2.17 gai_cancel F
> -GLIBC_2.17 gai_error F
> -GLIBC_2.17 gai_suspend F
> -GLIBC_2.17 getaddrinfo_a F
> +GLIBC_2.17 __libanl_version_placeholder F

OK. ABI is moved to libc.

> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 42e240e284..d0c0eacb74 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -920,7 +920,10 @@ GLIBC_2.17 fwprintf F
>  GLIBC_2.17 fwrite F
>  GLIBC_2.17 fwrite_unlocked F
>  GLIBC_2.17 fwscanf F
> +GLIBC_2.17 gai_cancel F
> +GLIBC_2.17 gai_error F
>  GLIBC_2.17 gai_strerror F
> +GLIBC_2.17 gai_suspend F
>  GLIBC_2.17 gcvt F
>  GLIBC_2.17 get_avphys_pages F
>  GLIBC_2.17 get_current_dir_name F
> @@ -930,6 +933,7 @@ GLIBC_2.17 get_nprocs F
>  GLIBC_2.17 get_nprocs_conf F
>  GLIBC_2.17 get_phys_pages F
>  GLIBC_2.17 getaddrinfo F
> +GLIBC_2.17 getaddrinfo_a F
>  GLIBC_2.17 getaliasbyname F
>  GLIBC_2.17 getaliasbyname_r F
>  GLIBC_2.17 getaliasent F
> @@ -2365,6 +2369,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libanl.abilist b/sysdeps/unix/sysv/linux/alpha/libanl.abilist
> index d9a5ed015d..b748507bd9 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libanl.abilist
> @@ -1,4 +1 @@
> -GLIBC_2.2.3 gai_cancel F
> -GLIBC_2.2.3 gai_error F
> -GLIBC_2.2.3 gai_suspend F
> -GLIBC_2.2.3 getaddrinfo_a F
> +GLIBC_2.2.3 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index fad54555dc..251e5d7b21 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2097,6 +2097,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
>  GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
>  GLIBC_2.2.3 __rpc_thread_svc_pollfd F
>  GLIBC_2.2.3 fnmatch F
> +GLIBC_2.2.3 gai_cancel F
> +GLIBC_2.2.3 gai_error F
> +GLIBC_2.2.3 gai_suspend F
> +GLIBC_2.2.3 getaddrinfo_a F
>  GLIBC_2.2.3 pthread_getattr_np F
>  GLIBC_2.2.3 sprofil F
>  GLIBC_2.2.4 dl_iterate_phdr F
> @@ -2458,6 +2462,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/arc/libanl.abilist b/sysdeps/unix/sysv/linux/arc/libanl.abilist
> index ba513bd028..492861d11b 100644
> --- a/sysdeps/unix/sysv/linux/arc/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libanl.abilist
> @@ -1,4 +1 @@
> -GLIBC_2.32 gai_cancel F
> -GLIBC_2.32 gai_error F
> -GLIBC_2.32 gai_suspend F
> -GLIBC_2.32 getaddrinfo_a F
> +GLIBC_2.32 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 907716ec39..b7ec1939e1 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -869,7 +869,10 @@ GLIBC_2.32 fwprintf F
>  GLIBC_2.32 fwrite F
>  GLIBC_2.32 fwrite_unlocked F
>  GLIBC_2.32 fwscanf F
> +GLIBC_2.32 gai_cancel F
> +GLIBC_2.32 gai_error F
>  GLIBC_2.32 gai_strerror F
> +GLIBC_2.32 gai_suspend F
>  GLIBC_2.32 gcvt F
>  GLIBC_2.32 get_avphys_pages F
>  GLIBC_2.32 get_current_dir_name F
> @@ -877,6 +880,7 @@ GLIBC_2.32 get_nprocs F
>  GLIBC_2.32 get_nprocs_conf F
>  GLIBC_2.32 get_phys_pages F
>  GLIBC_2.32 getaddrinfo F
> +GLIBC_2.32 getaddrinfo_a F
>  GLIBC_2.32 getaliasbyname F
>  GLIBC_2.32 getaliasbyname_r F
>  GLIBC_2.32 getaliasent F
> @@ -2124,6 +2128,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libanl.abilist b/sysdeps/unix/sysv/linux/arm/be/libanl.abilist
> index 37f9b49e52..8f73b93237 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libanl.abilist
> @@ -1,5 +1 @@
> -GLIBC_2.34 __gai_suspend_time64 F
> -GLIBC_2.4 gai_cancel F
> -GLIBC_2.4 gai_error F
> -GLIBC_2.4 gai_suspend F
> -GLIBC_2.4 getaddrinfo_a F
> +GLIBC_2.4 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 50f987a429..ce6dc4b91c 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -212,6 +212,7 @@ GLIBC_2.34 __ftw64_time64 F
>  GLIBC_2.34 __futimens64 F
>  GLIBC_2.34 __futimes64 F
>  GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __gai_suspend_time64 F
>  GLIBC_2.34 __getitimer64 F
>  GLIBC_2.34 __getrusage64 F
>  GLIBC_2.34 __gettimeofday64 F
> @@ -295,6 +296,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> @@ -1293,7 +1298,10 @@ GLIBC_2.4 fwprintf F
>  GLIBC_2.4 fwrite F
>  GLIBC_2.4 fwrite_unlocked F
>  GLIBC_2.4 fwscanf F
> +GLIBC_2.4 gai_cancel F
> +GLIBC_2.4 gai_error F
>  GLIBC_2.4 gai_strerror F
> +GLIBC_2.4 gai_suspend F
>  GLIBC_2.4 gcvt F
>  GLIBC_2.4 get_avphys_pages F
>  GLIBC_2.4 get_current_dir_name F
> @@ -1303,6 +1311,7 @@ GLIBC_2.4 get_nprocs F
>  GLIBC_2.4 get_nprocs_conf F
>  GLIBC_2.4 get_phys_pages F
>  GLIBC_2.4 getaddrinfo F
> +GLIBC_2.4 getaddrinfo_a F
>  GLIBC_2.4 getaliasbyname F
>  GLIBC_2.4 getaliasbyname_r F
>  GLIBC_2.4 getaliasent F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libanl.abilist b/sysdeps/unix/sysv/linux/arm/le/libanl.abilist
> index 37f9b49e52..8f73b93237 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libanl.abilist
> @@ -1,5 +1 @@
> -GLIBC_2.34 __gai_suspend_time64 F
> -GLIBC_2.4 gai_cancel F
> -GLIBC_2.4 gai_error F
> -GLIBC_2.4 gai_suspend F
> -GLIBC_2.4 getaddrinfo_a F
> +GLIBC_2.4 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index bf9038af84..afac105aec 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -209,6 +209,7 @@ GLIBC_2.34 __ftw64_time64 F
>  GLIBC_2.34 __futimens64 F
>  GLIBC_2.34 __futimes64 F
>  GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __gai_suspend_time64 F
>  GLIBC_2.34 __getitimer64 F
>  GLIBC_2.34 __getrusage64 F
>  GLIBC_2.34 __gettimeofday64 F
> @@ -292,6 +293,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> @@ -1290,7 +1295,10 @@ GLIBC_2.4 fwprintf F
>  GLIBC_2.4 fwrite F
>  GLIBC_2.4 fwrite_unlocked F
>  GLIBC_2.4 fwscanf F
> +GLIBC_2.4 gai_cancel F
> +GLIBC_2.4 gai_error F
>  GLIBC_2.4 gai_strerror F
> +GLIBC_2.4 gai_suspend F
>  GLIBC_2.4 gcvt F
>  GLIBC_2.4 get_avphys_pages F
>  GLIBC_2.4 get_current_dir_name F
> @@ -1300,6 +1308,7 @@ GLIBC_2.4 get_nprocs F
>  GLIBC_2.4 get_nprocs_conf F
>  GLIBC_2.4 get_phys_pages F
>  GLIBC_2.4 getaddrinfo F
> +GLIBC_2.4 getaddrinfo_a F
>  GLIBC_2.4 getaliasbyname F
>  GLIBC_2.4 getaliasbyname_r F
>  GLIBC_2.4 getaliasent F
> diff --git a/sysdeps/unix/sysv/linux/csky/libanl.abilist b/sysdeps/unix/sysv/linux/csky/libanl.abilist
> index 01f2e6cbf0..4234c23c3f 100644
> --- a/sysdeps/unix/sysv/linux/csky/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libanl.abilist
> @@ -1,5 +1 @@
> -GLIBC_2.29 gai_cancel F
> -GLIBC_2.29 gai_error F
> -GLIBC_2.29 gai_suspend F
> -GLIBC_2.29 getaddrinfo_a F
> -GLIBC_2.34 __gai_suspend_time64 F
> +GLIBC_2.29 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index afb91f6f43..97bad349d9 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -908,7 +908,10 @@ GLIBC_2.29 fwprintf F
>  GLIBC_2.29 fwrite F
>  GLIBC_2.29 fwrite_unlocked F
>  GLIBC_2.29 fwscanf F
> +GLIBC_2.29 gai_cancel F
> +GLIBC_2.29 gai_error F
>  GLIBC_2.29 gai_strerror F
> +GLIBC_2.29 gai_suspend F
>  GLIBC_2.29 gcvt F
>  GLIBC_2.29 get_avphys_pages F
>  GLIBC_2.29 get_current_dir_name F
> @@ -917,6 +920,7 @@ GLIBC_2.29 get_nprocs F
>  GLIBC_2.29 get_nprocs_conf F
>  GLIBC_2.29 get_phys_pages F
>  GLIBC_2.29 getaddrinfo F
> +GLIBC_2.29 getaddrinfo_a F
>  GLIBC_2.29 getaliasbyname F
>  GLIBC_2.29 getaliasbyname_r F
>  GLIBC_2.29 getaliasent F
> @@ -2301,6 +2305,7 @@ GLIBC_2.34 __ftw64_time64 F
>  GLIBC_2.34 __futimens64 F
>  GLIBC_2.34 __futimes64 F
>  GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __gai_suspend_time64 F
>  GLIBC_2.34 __getitimer64 F
>  GLIBC_2.34 __getrusage64 F
>  GLIBC_2.34 __gettimeofday64 F
> @@ -2384,6 +2389,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/gai_sigqueue.c b/sysdeps/unix/sysv/linux/gai_sigqueue.c
> index 2b718967b1..38b2c3dd07 100644
> --- a/sysdeps/unix/sysv/linux/gai_sigqueue.c
> +++ b/sysdeps/unix/sysv/linux/gai_sigqueue.c
> @@ -44,3 +44,4 @@ __gai_sigqueue (int sig, const union sigval val, pid_t caller_pid)
>  
>    return INLINE_SYSCALL (rt_sigqueueinfo, 3, info.si_pid, sig, &info);
>  }
> +libc_hidden_def (__gai_sigqueue)

OK.

> diff --git a/sysdeps/unix/sysv/linux/hppa/libanl.abilist b/sysdeps/unix/sysv/linux/hppa/libanl.abilist
> index ff719e7605..b748507bd9 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libanl.abilist
> @@ -1,5 +1 @@
> -GLIBC_2.2.3 gai_cancel F
> -GLIBC_2.2.3 gai_error F
> -GLIBC_2.2.3 gai_suspend F
> -GLIBC_2.2.3 getaddrinfo_a F
> -GLIBC_2.34 __gai_suspend_time64 F
> +GLIBC_2.2.3 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 125f8a269a..6d4bab4474 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -1942,6 +1942,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
>  GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
>  GLIBC_2.2.3 __rpc_thread_svc_pollfd F
>  GLIBC_2.2.3 fnmatch F
> +GLIBC_2.2.3 gai_cancel F
> +GLIBC_2.2.3 gai_error F
> +GLIBC_2.2.3 gai_suspend F
> +GLIBC_2.2.3 getaddrinfo_a F
>  GLIBC_2.2.3 pthread_getattr_np F
>  GLIBC_2.2.3 sprofil F
>  GLIBC_2.2.4 dl_iterate_phdr F
> @@ -2255,6 +2259,7 @@ GLIBC_2.34 __ftw64_time64 F
>  GLIBC_2.34 __futimens64 F
>  GLIBC_2.34 __futimes64 F
>  GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __gai_suspend_time64 F
>  GLIBC_2.34 __getitimer64 F
>  GLIBC_2.34 __getrusage64 F
>  GLIBC_2.34 __gettimeofday64 F
> @@ -2338,6 +2343,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/i386/libanl.abilist b/sysdeps/unix/sysv/linux/i386/libanl.abilist
> index ff719e7605..b748507bd9 100644
> --- a/sysdeps/unix/sysv/linux/i386/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libanl.abilist
> @@ -1,5 +1 @@
> -GLIBC_2.2.3 gai_cancel F
> -GLIBC_2.2.3 gai_error F
> -GLIBC_2.2.3 gai_suspend F
> -GLIBC_2.2.3 getaddrinfo_a F
> -GLIBC_2.34 __gai_suspend_time64 F
> +GLIBC_2.2.3 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 517753bdd1..af70dddee8 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2110,6 +2110,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
>  GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
>  GLIBC_2.2.3 __rpc_thread_svc_pollfd F
>  GLIBC_2.2.3 fnmatch F
> +GLIBC_2.2.3 gai_cancel F
> +GLIBC_2.2.3 gai_error F
> +GLIBC_2.2.3 gai_suspend F
> +GLIBC_2.2.3 getaddrinfo_a F
>  GLIBC_2.2.3 pthread_getattr_np F
>  GLIBC_2.2.3 sprofil F
>  GLIBC_2.2.4 dl_iterate_phdr F
> @@ -2438,6 +2442,7 @@ GLIBC_2.34 __ftw64_time64 F
>  GLIBC_2.34 __futimens64 F
>  GLIBC_2.34 __futimes64 F
>  GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __gai_suspend_time64 F
>  GLIBC_2.34 __getitimer64 F
>  GLIBC_2.34 __getrusage64 F
>  GLIBC_2.34 __gettimeofday64 F
> @@ -2522,6 +2527,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libanl.abilist b/sysdeps/unix/sysv/linux/ia64/libanl.abilist
> index d9a5ed015d..b748507bd9 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libanl.abilist
> @@ -1,4 +1 @@
> -GLIBC_2.2.3 gai_cancel F
> -GLIBC_2.2.3 gai_error F
> -GLIBC_2.2.3 gai_suspend F
> -GLIBC_2.2.3 getaddrinfo_a F
> +GLIBC_2.2.3 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 23d0928360..89a9f12d4c 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -1964,6 +1964,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
>  GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
>  GLIBC_2.2.3 __rpc_thread_svc_pollfd F
>  GLIBC_2.2.3 fnmatch F
> +GLIBC_2.2.3 gai_cancel F
> +GLIBC_2.2.3 gai_error F
> +GLIBC_2.2.3 gai_suspend F
> +GLIBC_2.2.3 getaddrinfo_a F
>  GLIBC_2.2.3 pthread_getattr_np F
>  GLIBC_2.2.3 sprofil F
>  GLIBC_2.2.4 dl_iterate_phdr F
> @@ -2298,6 +2302,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist
> index 37f9b49e52..8f73b93237 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist
> @@ -1,5 +1 @@
> -GLIBC_2.34 __gai_suspend_time64 F
> -GLIBC_2.4 gai_cancel F
> -GLIBC_2.4 gai_error F
> -GLIBC_2.4 gai_suspend F
> -GLIBC_2.4 getaddrinfo_a F
> +GLIBC_2.4 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index dd5fb50b18..4a23fc2467 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -213,6 +213,7 @@ GLIBC_2.34 __ftw64_time64 F
>  GLIBC_2.34 __futimens64 F
>  GLIBC_2.34 __futimes64 F
>  GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __gai_suspend_time64 F
>  GLIBC_2.34 __getitimer64 F
>  GLIBC_2.34 __getrusage64 F
>  GLIBC_2.34 __gettimeofday64 F
> @@ -296,6 +297,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> @@ -1282,7 +1287,10 @@ GLIBC_2.4 fwprintf F
>  GLIBC_2.4 fwrite F
>  GLIBC_2.4 fwrite_unlocked F
>  GLIBC_2.4 fwscanf F
> +GLIBC_2.4 gai_cancel F
> +GLIBC_2.4 gai_error F
>  GLIBC_2.4 gai_strerror F
> +GLIBC_2.4 gai_suspend F
>  GLIBC_2.4 gcvt F
>  GLIBC_2.4 get_avphys_pages F
>  GLIBC_2.4 get_current_dir_name F
> @@ -1292,6 +1300,7 @@ GLIBC_2.4 get_nprocs F
>  GLIBC_2.4 get_nprocs_conf F
>  GLIBC_2.4 get_phys_pages F
>  GLIBC_2.4 getaddrinfo F
> +GLIBC_2.4 getaddrinfo_a F
>  GLIBC_2.4 getaliasbyname F
>  GLIBC_2.4 getaliasbyname_r F
>  GLIBC_2.4 getaliasent F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist
> index ff719e7605..b748507bd9 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist
> @@ -1,5 +1 @@
> -GLIBC_2.2.3 gai_cancel F
> -GLIBC_2.2.3 gai_error F
> -GLIBC_2.2.3 gai_suspend F
> -GLIBC_2.2.3 getaddrinfo_a F
> -GLIBC_2.34 __gai_suspend_time64 F
> +GLIBC_2.2.3 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index cb1d553361..9c0356b21b 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2066,6 +2066,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
>  GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
>  GLIBC_2.2.3 __rpc_thread_svc_pollfd F
>  GLIBC_2.2.3 fnmatch F
> +GLIBC_2.2.3 gai_cancel F
> +GLIBC_2.2.3 gai_error F
> +GLIBC_2.2.3 gai_suspend F
> +GLIBC_2.2.3 getaddrinfo_a F
>  GLIBC_2.2.3 pthread_getattr_np F
>  GLIBC_2.2.3 sprofil F
>  GLIBC_2.2.4 dl_iterate_phdr F
> @@ -2382,6 +2386,7 @@ GLIBC_2.34 __ftw64_time64 F
>  GLIBC_2.34 __futimens64 F
>  GLIBC_2.34 __futimes64 F
>  GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __gai_suspend_time64 F
>  GLIBC_2.34 __getitimer64 F
>  GLIBC_2.34 __getrusage64 F
>  GLIBC_2.34 __gettimeofday64 F
> @@ -2465,6 +2470,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libanl.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libanl.abilist
> index c06e33a1cf..1bb3e615f6 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libanl.abilist
> @@ -1,5 +1 @@
> -GLIBC_2.18 gai_cancel F
> -GLIBC_2.18 gai_error F
> -GLIBC_2.18 gai_suspend F
> -GLIBC_2.18 getaddrinfo_a F
> -GLIBC_2.34 __gai_suspend_time64 F
> +GLIBC_2.18 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 6a20a6fdf2..0cd000ae33 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -922,7 +922,10 @@ GLIBC_2.18 fwprintf F
>  GLIBC_2.18 fwrite F
>  GLIBC_2.18 fwrite_unlocked F
>  GLIBC_2.18 fwscanf F
> +GLIBC_2.18 gai_cancel F
> +GLIBC_2.18 gai_error F
>  GLIBC_2.18 gai_strerror F
> +GLIBC_2.18 gai_suspend F
>  GLIBC_2.18 gcvt F
>  GLIBC_2.18 get_avphys_pages F
>  GLIBC_2.18 get_current_dir_name F
> @@ -932,6 +935,7 @@ GLIBC_2.18 get_nprocs F
>  GLIBC_2.18 get_nprocs_conf F
>  GLIBC_2.18 get_phys_pages F
>  GLIBC_2.18 getaddrinfo F
> +GLIBC_2.18 getaddrinfo_a F
>  GLIBC_2.18 getaliasbyname F
>  GLIBC_2.18 getaliasbyname_r F
>  GLIBC_2.18 getaliasent F
> @@ -2352,6 +2356,7 @@ GLIBC_2.34 __ftw64_time64 F
>  GLIBC_2.34 __futimens64 F
>  GLIBC_2.34 __futimes64 F
>  GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __gai_suspend_time64 F
>  GLIBC_2.34 __getitimer64 F
>  GLIBC_2.34 __getrusage64 F
>  GLIBC_2.34 __gettimeofday64 F
> @@ -2435,6 +2440,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libanl.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libanl.abilist
> index c06e33a1cf..1bb3e615f6 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libanl.abilist
> @@ -1,5 +1 @@
> -GLIBC_2.18 gai_cancel F
> -GLIBC_2.18 gai_error F
> -GLIBC_2.18 gai_suspend F
> -GLIBC_2.18 getaddrinfo_a F
> -GLIBC_2.34 __gai_suspend_time64 F
> +GLIBC_2.18 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 4c21cbb64d..56201d0e2e 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -922,7 +922,10 @@ GLIBC_2.18 fwprintf F
>  GLIBC_2.18 fwrite F
>  GLIBC_2.18 fwrite_unlocked F
>  GLIBC_2.18 fwscanf F
> +GLIBC_2.18 gai_cancel F
> +GLIBC_2.18 gai_error F
>  GLIBC_2.18 gai_strerror F
> +GLIBC_2.18 gai_suspend F
>  GLIBC_2.18 gcvt F
>  GLIBC_2.18 get_avphys_pages F
>  GLIBC_2.18 get_current_dir_name F
> @@ -932,6 +935,7 @@ GLIBC_2.18 get_nprocs F
>  GLIBC_2.18 get_nprocs_conf F
>  GLIBC_2.18 get_phys_pages F
>  GLIBC_2.18 getaddrinfo F
> +GLIBC_2.18 getaddrinfo_a F
>  GLIBC_2.18 getaliasbyname F
>  GLIBC_2.18 getaliasbyname_r F
>  GLIBC_2.18 getaliasent F
> @@ -2349,6 +2353,7 @@ GLIBC_2.34 __ftw64_time64 F
>  GLIBC_2.34 __futimens64 F
>  GLIBC_2.34 __futimes64 F
>  GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __gai_suspend_time64 F
>  GLIBC_2.34 __getitimer64 F
>  GLIBC_2.34 __getrusage64 F
>  GLIBC_2.34 __gettimeofday64 F
> @@ -2432,6 +2437,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index f83ba2f780..d47aa9e204 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2036,6 +2036,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
>  GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
>  GLIBC_2.2.3 __rpc_thread_svc_pollfd F
>  GLIBC_2.2.3 fnmatch F
> +GLIBC_2.2.3 gai_cancel F
> +GLIBC_2.2.3 gai_error F
> +GLIBC_2.2.3 gai_suspend F
> +GLIBC_2.2.3 getaddrinfo_a F
>  GLIBC_2.2.3 pthread_getattr_np F
>  GLIBC_2.2.3 sprofil F
>  GLIBC_2.2.4 dl_iterate_phdr F
> @@ -2347,6 +2351,7 @@ GLIBC_2.34 __ftw64_time64 F
>  GLIBC_2.34 __futimens64 F
>  GLIBC_2.34 __futimes64 F
>  GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __gai_suspend_time64 F
>  GLIBC_2.34 __getitimer64 F
>  GLIBC_2.34 __getrusage64 F
>  GLIBC_2.34 __gettimeofday64 F
> @@ -2430,6 +2435,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist
> index ff719e7605..b748507bd9 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist
> @@ -1,5 +1 @@
> -GLIBC_2.2.3 gai_cancel F
> -GLIBC_2.2.3 gai_error F
> -GLIBC_2.2.3 gai_suspend F
> -GLIBC_2.2.3 getaddrinfo_a F
> -GLIBC_2.34 __gai_suspend_time64 F
> +GLIBC_2.2.3 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 347bbddb94..8850cbee66 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2034,6 +2034,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
>  GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
>  GLIBC_2.2.3 __rpc_thread_svc_pollfd F
>  GLIBC_2.2.3 fnmatch F
> +GLIBC_2.2.3 gai_cancel F
> +GLIBC_2.2.3 gai_error F
> +GLIBC_2.2.3 gai_suspend F
> +GLIBC_2.2.3 getaddrinfo_a F
>  GLIBC_2.2.3 pthread_getattr_np F
>  GLIBC_2.2.3 sprofil F
>  GLIBC_2.2.4 dl_iterate_phdr F
> @@ -2345,6 +2349,7 @@ GLIBC_2.34 __ftw64_time64 F
>  GLIBC_2.34 __futimens64 F
>  GLIBC_2.34 __futimes64 F
>  GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __gai_suspend_time64 F
>  GLIBC_2.34 __getitimer64 F
>  GLIBC_2.34 __getrusage64 F
>  GLIBC_2.34 __gettimeofday64 F
> @@ -2428,6 +2433,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libanl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libanl.abilist
> index ff719e7605..b748507bd9 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libanl.abilist
> @@ -1,5 +1 @@
> -GLIBC_2.2.3 gai_cancel F
> -GLIBC_2.2.3 gai_error F
> -GLIBC_2.2.3 gai_suspend F
> -GLIBC_2.2.3 getaddrinfo_a F
> -GLIBC_2.34 __gai_suspend_time64 F
> +GLIBC_2.2.3 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 26b7ab529b..005791cb58 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2032,6 +2032,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
>  GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
>  GLIBC_2.2.3 __rpc_thread_svc_pollfd F
>  GLIBC_2.2.3 fnmatch F
> +GLIBC_2.2.3 gai_cancel F
> +GLIBC_2.2.3 gai_error F
> +GLIBC_2.2.3 gai_suspend F
> +GLIBC_2.2.3 getaddrinfo_a F
>  GLIBC_2.2.3 pthread_getattr_np F
>  GLIBC_2.2.3 sprofil F
>  GLIBC_2.2.4 dl_iterate_phdr F
> @@ -2353,6 +2357,7 @@ GLIBC_2.34 __ftw64_time64 F
>  GLIBC_2.34 __futimens64 F
>  GLIBC_2.34 __futimes64 F
>  GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __gai_suspend_time64 F
>  GLIBC_2.34 __getitimer64 F
>  GLIBC_2.34 __getrusage64 F
>  GLIBC_2.34 __gettimeofday64 F
> @@ -2436,6 +2441,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libanl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libanl.abilist
> index d9a5ed015d..b748507bd9 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libanl.abilist
> @@ -1,4 +1 @@
> -GLIBC_2.2.3 gai_cancel F
> -GLIBC_2.2.3 gai_error F
> -GLIBC_2.2.3 gai_suspend F
> -GLIBC_2.2.3 getaddrinfo_a F
> +GLIBC_2.2.3 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index e667b0e553..53bbb1a297 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2028,6 +2028,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
>  GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
>  GLIBC_2.2.3 __rpc_thread_svc_pollfd F
>  GLIBC_2.2.3 fnmatch F
> +GLIBC_2.2.3 gai_cancel F
> +GLIBC_2.2.3 gai_error F
> +GLIBC_2.2.3 gai_suspend F
> +GLIBC_2.2.3 getaddrinfo_a F
>  GLIBC_2.2.3 pthread_getattr_np F
>  GLIBC_2.2.3 sprofil F
>  GLIBC_2.2.4 dl_iterate_phdr F
> @@ -2354,6 +2358,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libanl.abilist b/sysdeps/unix/sysv/linux/nios2/libanl.abilist
> index 6b080bd075..68f340f5bd 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libanl.abilist
> @@ -1,5 +1 @@
> -GLIBC_2.21 gai_cancel F
> -GLIBC_2.21 gai_error F
> -GLIBC_2.21 gai_suspend F
> -GLIBC_2.21 getaddrinfo_a F
> -GLIBC_2.34 __gai_suspend_time64 F
> +GLIBC_2.21 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 89a1cc7da6..c8cc5c4a2f 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -965,7 +965,10 @@ GLIBC_2.21 fwprintf F
>  GLIBC_2.21 fwrite F
>  GLIBC_2.21 fwrite_unlocked F
>  GLIBC_2.21 fwscanf F
> +GLIBC_2.21 gai_cancel F
> +GLIBC_2.21 gai_error F
>  GLIBC_2.21 gai_strerror F
> +GLIBC_2.21 gai_suspend F
>  GLIBC_2.21 gcvt F
>  GLIBC_2.21 get_avphys_pages F
>  GLIBC_2.21 get_current_dir_name F
> @@ -975,6 +978,7 @@ GLIBC_2.21 get_nprocs F
>  GLIBC_2.21 get_nprocs_conf F
>  GLIBC_2.21 get_phys_pages F
>  GLIBC_2.21 getaddrinfo F
> +GLIBC_2.21 getaddrinfo_a F
>  GLIBC_2.21 getaliasbyname F
>  GLIBC_2.21 getaliasbyname_r F
>  GLIBC_2.21 getaliasent F
> @@ -2391,6 +2395,7 @@ GLIBC_2.34 __ftw64_time64 F
>  GLIBC_2.34 __futimens64 F
>  GLIBC_2.34 __futimes64 F
>  GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __gai_suspend_time64 F
>  GLIBC_2.34 __getitimer64 F
>  GLIBC_2.34 __getrusage64 F
>  GLIBC_2.34 __gettimeofday64 F
> @@ -2474,6 +2479,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index f364c5219e..e5d3b2d7b1 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2070,6 +2070,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
>  GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
>  GLIBC_2.2.3 __rpc_thread_svc_pollfd F
>  GLIBC_2.2.3 fnmatch F
> +GLIBC_2.2.3 gai_cancel F
> +GLIBC_2.2.3 gai_error F
> +GLIBC_2.2.3 gai_suspend F
> +GLIBC_2.2.3 getaddrinfo_a F
>  GLIBC_2.2.3 pthread_getattr_np F
>  GLIBC_2.2.3 sprofil F
>  GLIBC_2.2.4 dl_iterate_phdr F
> @@ -2409,6 +2413,7 @@ GLIBC_2.34 __ftw64_time64 F
>  GLIBC_2.34 __futimens64 F
>  GLIBC_2.34 __futimes64 F
>  GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __gai_suspend_time64 F
>  GLIBC_2.34 __getitimer64 F
>  GLIBC_2.34 __getrusage64 F
>  GLIBC_2.34 __gettimeofday64 F
> @@ -2492,6 +2497,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist
> index ff719e7605..b748507bd9 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist
> @@ -1,5 +1 @@
> -GLIBC_2.2.3 gai_cancel F
> -GLIBC_2.2.3 gai_error F
> -GLIBC_2.2.3 gai_suspend F
> -GLIBC_2.2.3 getaddrinfo_a F
> -GLIBC_2.34 __gai_suspend_time64 F
> +GLIBC_2.2.3 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index f5bcc78afe..a70b7f61da 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2074,6 +2074,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
>  GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
>  GLIBC_2.2.3 __rpc_thread_svc_pollfd F
>  GLIBC_2.2.3 fnmatch F
> +GLIBC_2.2.3 gai_cancel F
> +GLIBC_2.2.3 gai_error F
> +GLIBC_2.2.3 gai_suspend F
> +GLIBC_2.2.3 getaddrinfo_a F
>  GLIBC_2.2.3 pthread_getattr_np F
>  GLIBC_2.2.3 sprofil F
>  GLIBC_2.2.4 dl_iterate_phdr F
> @@ -2442,6 +2446,7 @@ GLIBC_2.34 __ftw64_time64 F
>  GLIBC_2.34 __futimens64 F
>  GLIBC_2.34 __futimes64 F
>  GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __gai_suspend_time64 F
>  GLIBC_2.34 __getitimer64 F
>  GLIBC_2.34 __getrusage64 F
>  GLIBC_2.34 __gettimeofday64 F
> @@ -2525,6 +2530,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libanl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libanl.abilist
> index 975593b41f..c4b42f236e 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libanl.abilist
> @@ -1,4 +1 @@
> -GLIBC_2.3 gai_cancel F
> -GLIBC_2.3 gai_error F
> -GLIBC_2.3 gai_suspend F
> -GLIBC_2.3 getaddrinfo_a F
> +GLIBC_2.3 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 6032716053..eb5db9960f 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -933,7 +933,10 @@ GLIBC_2.3 fwprintf F
>  GLIBC_2.3 fwrite F
>  GLIBC_2.3 fwrite_unlocked F
>  GLIBC_2.3 fwscanf F
> +GLIBC_2.3 gai_cancel F
> +GLIBC_2.3 gai_error F
>  GLIBC_2.3 gai_strerror F
> +GLIBC_2.3 gai_suspend F
>  GLIBC_2.3 gcvt F
>  GLIBC_2.3 get_avphys_pages F
>  GLIBC_2.3 get_current_dir_name F
> @@ -943,6 +946,7 @@ GLIBC_2.3 get_nprocs F
>  GLIBC_2.3 get_nprocs_conf F
>  GLIBC_2.3 get_phys_pages F
>  GLIBC_2.3 getaddrinfo F
> +GLIBC_2.3 getaddrinfo_a F
>  GLIBC_2.3 getaliasbyname F
>  GLIBC_2.3 getaliasbyname_r F
>  GLIBC_2.3 getaliasent F
> @@ -2262,6 +2266,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libanl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libanl.abilist
> index 9492cd5290..0b2ef01e6a 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libanl.abilist
> @@ -1,4 +1 @@
> -GLIBC_2.17 gai_cancel F
> -GLIBC_2.17 gai_error F
> -GLIBC_2.17 gai_suspend F
> -GLIBC_2.17 getaddrinfo_a F
> +GLIBC_2.17 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 8c5494e1dc..e8ef5b44cb 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1008,7 +1008,10 @@ GLIBC_2.17 fwprintf F
>  GLIBC_2.17 fwrite F
>  GLIBC_2.17 fwrite_unlocked F
>  GLIBC_2.17 fwscanf F
> +GLIBC_2.17 gai_cancel F
> +GLIBC_2.17 gai_error F
>  GLIBC_2.17 gai_strerror F
> +GLIBC_2.17 gai_suspend F
>  GLIBC_2.17 gcvt F
>  GLIBC_2.17 get_avphys_pages F
>  GLIBC_2.17 get_current_dir_name F
> @@ -1018,6 +1021,7 @@ GLIBC_2.17 get_nprocs F
>  GLIBC_2.17 get_nprocs_conf F
>  GLIBC_2.17 get_phys_pages F
>  GLIBC_2.17 getaddrinfo F
> +GLIBC_2.17 getaddrinfo_a F
>  GLIBC_2.17 getaliasbyname F
>  GLIBC_2.17 getaliasbyname_r F
>  GLIBC_2.17 getaliasent F
> @@ -2561,6 +2565,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libanl.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libanl.abilist
> index 33f23fd896..0326efe0dd 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libanl.abilist
> @@ -1,4 +1 @@
> -GLIBC_2.33 gai_cancel F
> -GLIBC_2.33 gai_error F
> -GLIBC_2.33 gai_suspend F
> -GLIBC_2.33 getaddrinfo_a F
> +GLIBC_2.33 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index d7db279c1e..8287525b5b 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -866,7 +866,10 @@ GLIBC_2.33 fwprintf F
>  GLIBC_2.33 fwrite F
>  GLIBC_2.33 fwrite_unlocked F
>  GLIBC_2.33 fwscanf F
> +GLIBC_2.33 gai_cancel F
> +GLIBC_2.33 gai_error F
>  GLIBC_2.33 gai_strerror F
> +GLIBC_2.33 gai_suspend F
>  GLIBC_2.33 gcvt F
>  GLIBC_2.33 get_avphys_pages F
>  GLIBC_2.33 get_current_dir_name F
> @@ -874,6 +877,7 @@ GLIBC_2.33 get_nprocs F
>  GLIBC_2.33 get_nprocs_conf F
>  GLIBC_2.33 get_phys_pages F
>  GLIBC_2.33 getaddrinfo F
> +GLIBC_2.33 getaddrinfo_a F
>  GLIBC_2.33 getaliasbyname F
>  GLIBC_2.33 getaliasbyname_r F
>  GLIBC_2.33 getaliasent F
> @@ -2126,6 +2130,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist
> index 711fc87c2a..646daff106 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist
> @@ -1,4 +1 @@
> -GLIBC_2.27 gai_cancel F
> -GLIBC_2.27 gai_error F
> -GLIBC_2.27 gai_suspend F
> -GLIBC_2.27 getaddrinfo_a F
> +GLIBC_2.27 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index ef03dc0f9e..e18f4336eb 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -905,7 +905,10 @@ GLIBC_2.27 fwprintf F
>  GLIBC_2.27 fwrite F
>  GLIBC_2.27 fwrite_unlocked F
>  GLIBC_2.27 fwscanf F
> +GLIBC_2.27 gai_cancel F
> +GLIBC_2.27 gai_error F
>  GLIBC_2.27 gai_strerror F
> +GLIBC_2.27 gai_suspend F
>  GLIBC_2.27 gcvt F
>  GLIBC_2.27 get_avphys_pages F
>  GLIBC_2.27 get_current_dir_name F
> @@ -914,6 +917,7 @@ GLIBC_2.27 get_nprocs F
>  GLIBC_2.27 get_nprocs_conf F
>  GLIBC_2.27 get_phys_pages F
>  GLIBC_2.27 getaddrinfo F
> +GLIBC_2.27 getaddrinfo_a F
>  GLIBC_2.27 getaliasbyname F
>  GLIBC_2.27 getaliasbyname_r F
>  GLIBC_2.27 getaliasent F
> @@ -2326,6 +2330,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libanl.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libanl.abilist
> index ff719e7605..b748507bd9 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libanl.abilist
> @@ -1,5 +1 @@
> -GLIBC_2.2.3 gai_cancel F
> -GLIBC_2.2.3 gai_error F
> -GLIBC_2.2.3 gai_suspend F
> -GLIBC_2.2.3 getaddrinfo_a F
> -GLIBC_2.34 __gai_suspend_time64 F
> +GLIBC_2.2.3 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 9118cb68ec..cdd744a619 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2069,6 +2069,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
>  GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
>  GLIBC_2.2.3 __rpc_thread_svc_pollfd F
>  GLIBC_2.2.3 fnmatch F
> +GLIBC_2.2.3 gai_cancel F
> +GLIBC_2.2.3 gai_error F
> +GLIBC_2.2.3 gai_suspend F
> +GLIBC_2.2.3 getaddrinfo_a F
>  GLIBC_2.2.3 pthread_getattr_np F
>  GLIBC_2.2.3 sprofil F
>  GLIBC_2.2.4 dl_iterate_phdr F
> @@ -2407,6 +2411,7 @@ GLIBC_2.34 __ftw64_time64 F
>  GLIBC_2.34 __futimens64 F
>  GLIBC_2.34 __futimes64 F
>  GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __gai_suspend_time64 F
>  GLIBC_2.34 __getitimer64 F
>  GLIBC_2.34 __getrusage64 F
>  GLIBC_2.34 __gettimeofday64 F
> @@ -2490,6 +2495,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libanl.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libanl.abilist
> index d9a5ed015d..b748507bd9 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libanl.abilist
> @@ -1,4 +1 @@
> -GLIBC_2.2.3 gai_cancel F
> -GLIBC_2.2.3 gai_error F
> -GLIBC_2.2.3 gai_suspend F
> -GLIBC_2.2.3 getaddrinfo_a F
> +GLIBC_2.2.3 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 66c01bd7e7..b62a19bfa7 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -1959,6 +1959,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
>  GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
>  GLIBC_2.2.3 __rpc_thread_svc_pollfd F
>  GLIBC_2.2.3 fnmatch F
> +GLIBC_2.2.3 gai_cancel F
> +GLIBC_2.2.3 gai_error F
> +GLIBC_2.2.3 gai_suspend F
> +GLIBC_2.2.3 getaddrinfo_a F
>  GLIBC_2.2.3 pthread_getattr_np F
>  GLIBC_2.2.3 sprofil F
>  GLIBC_2.2.4 dl_iterate_phdr F
> @@ -2299,6 +2303,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libanl.abilist b/sysdeps/unix/sysv/linux/sh/be/libanl.abilist
> index ff719e7605..b748507bd9 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libanl.abilist
> @@ -1,5 +1 @@
> -GLIBC_2.2.3 gai_cancel F
> -GLIBC_2.2.3 gai_error F
> -GLIBC_2.2.3 gai_suspend F
> -GLIBC_2.2.3 getaddrinfo_a F
> -GLIBC_2.34 __gai_suspend_time64 F
> +GLIBC_2.2.3 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index c40eb412c2..87392ced6e 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -1946,6 +1946,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
>  GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
>  GLIBC_2.2.3 __rpc_thread_svc_pollfd F
>  GLIBC_2.2.3 fnmatch F
> +GLIBC_2.2.3 gai_cancel F
> +GLIBC_2.2.3 gai_error F
> +GLIBC_2.2.3 gai_suspend F
> +GLIBC_2.2.3 getaddrinfo_a F
>  GLIBC_2.2.3 pthread_getattr_np F
>  GLIBC_2.2.3 sprofil F
>  GLIBC_2.2.4 dl_iterate_phdr F
> @@ -2262,6 +2266,7 @@ GLIBC_2.34 __ftw64_time64 F
>  GLIBC_2.34 __futimens64 F
>  GLIBC_2.34 __futimes64 F
>  GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __gai_suspend_time64 F
>  GLIBC_2.34 __getitimer64 F
>  GLIBC_2.34 __getrusage64 F
>  GLIBC_2.34 __gettimeofday64 F
> @@ -2345,6 +2350,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libanl.abilist b/sysdeps/unix/sysv/linux/sh/le/libanl.abilist
> index ff719e7605..b748507bd9 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libanl.abilist
> @@ -1,5 +1 @@
> -GLIBC_2.2.3 gai_cancel F
> -GLIBC_2.2.3 gai_error F
> -GLIBC_2.2.3 gai_suspend F
> -GLIBC_2.2.3 getaddrinfo_a F
> -GLIBC_2.34 __gai_suspend_time64 F
> +GLIBC_2.2.3 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 1412d33835..973a95d9bc 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -1946,6 +1946,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
>  GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
>  GLIBC_2.2.3 __rpc_thread_svc_pollfd F
>  GLIBC_2.2.3 fnmatch F
> +GLIBC_2.2.3 gai_cancel F
> +GLIBC_2.2.3 gai_error F
> +GLIBC_2.2.3 gai_suspend F
> +GLIBC_2.2.3 getaddrinfo_a F
>  GLIBC_2.2.3 pthread_getattr_np F
>  GLIBC_2.2.3 sprofil F
>  GLIBC_2.2.4 dl_iterate_phdr F
> @@ -2259,6 +2263,7 @@ GLIBC_2.34 __ftw64_time64 F
>  GLIBC_2.34 __futimens64 F
>  GLIBC_2.34 __futimes64 F
>  GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __gai_suspend_time64 F
>  GLIBC_2.34 __getitimer64 F
>  GLIBC_2.34 __getrusage64 F
>  GLIBC_2.34 __gettimeofday64 F
> @@ -2342,6 +2347,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist
> index ff719e7605..b748507bd9 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist
> @@ -1,5 +1 @@
> -GLIBC_2.2.3 gai_cancel F
> -GLIBC_2.2.3 gai_error F
> -GLIBC_2.2.3 gai_suspend F
> -GLIBC_2.2.3 getaddrinfo_a F
> -GLIBC_2.34 __gai_suspend_time64 F
> +GLIBC_2.2.3 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 7b55d34753..ed782ac093 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2063,6 +2063,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
>  GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
>  GLIBC_2.2.3 __rpc_thread_svc_pollfd F
>  GLIBC_2.2.3 fnmatch F
> +GLIBC_2.2.3 gai_cancel F
> +GLIBC_2.2.3 gai_error F
> +GLIBC_2.2.3 gai_suspend F
> +GLIBC_2.2.3 getaddrinfo_a F
>  GLIBC_2.2.3 pthread_getattr_np F
>  GLIBC_2.2.3 sprofil F
>  GLIBC_2.2.4 dl_iterate_phdr F
> @@ -2400,6 +2404,7 @@ GLIBC_2.34 __ftw64_time64 F
>  GLIBC_2.34 __futimens64 F
>  GLIBC_2.34 __futimes64 F
>  GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __gai_suspend_time64 F
>  GLIBC_2.34 __getitimer64 F
>  GLIBC_2.34 __getrusage64 F
>  GLIBC_2.34 __gettimeofday64 F
> @@ -2483,6 +2488,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist
> index d9a5ed015d..b748507bd9 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist
> @@ -1,4 +1 @@
> -GLIBC_2.2.3 gai_cancel F
> -GLIBC_2.2.3 gai_error F
> -GLIBC_2.2.3 gai_suspend F
> -GLIBC_2.2.3 getaddrinfo_a F
> +GLIBC_2.2.3 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index cfd5f38864..2d6fa7487c 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -1990,6 +1990,10 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
>  GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
>  GLIBC_2.2.3 __rpc_thread_svc_pollfd F
>  GLIBC_2.2.3 fnmatch F
> +GLIBC_2.2.3 gai_cancel F
> +GLIBC_2.2.3 gai_error F
> +GLIBC_2.2.3 gai_suspend F
> +GLIBC_2.2.3 getaddrinfo_a F
>  GLIBC_2.2.3 pthread_getattr_np F
>  GLIBC_2.2.3 sprofil F
>  GLIBC_2.2.4 dl_iterate_phdr F
> @@ -2319,6 +2323,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist
> index 8d025f86b9..62a072e961 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist
> @@ -1,4 +1 @@
> -GLIBC_2.2.5 gai_cancel F
> -GLIBC_2.2.5 gai_error F
> -GLIBC_2.2.5 gai_suspend F
> -GLIBC_2.2.5 getaddrinfo_a F
> +GLIBC_2.2.5 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 17be05f14f..18f6a65498 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -852,7 +852,10 @@ GLIBC_2.2.5 fwprintf F
>  GLIBC_2.2.5 fwrite F
>  GLIBC_2.2.5 fwrite_unlocked F
>  GLIBC_2.2.5 fwscanf F
> +GLIBC_2.2.5 gai_cancel F
> +GLIBC_2.2.5 gai_error F
>  GLIBC_2.2.5 gai_strerror F
> +GLIBC_2.2.5 gai_suspend F
>  GLIBC_2.2.5 gcvt F
>  GLIBC_2.2.5 get_avphys_pages F
>  GLIBC_2.2.5 get_current_dir_name F
> @@ -862,6 +865,7 @@ GLIBC_2.2.5 get_nprocs F
>  GLIBC_2.2.5 get_nprocs_conf F
>  GLIBC_2.2.5 get_phys_pages F
>  GLIBC_2.2.5 getaddrinfo F
> +GLIBC_2.2.5 getaddrinfo_a F
>  GLIBC_2.2.5 getaliasbyname F
>  GLIBC_2.2.5 getaliasbyname_r F
>  GLIBC_2.2.5 getaliasent F
> @@ -2277,6 +2281,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist
> index 067013555a..097f7def8c 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist
> @@ -1,4 +1 @@
> -GLIBC_2.16 gai_cancel F
> -GLIBC_2.16 gai_error F
> -GLIBC_2.16 gai_suspend F
> -GLIBC_2.16 getaddrinfo_a F
> +GLIBC_2.16 __libanl_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index a9db18906b..8e1db86dc4 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -924,7 +924,10 @@ GLIBC_2.16 fwprintf F
>  GLIBC_2.16 fwrite F
>  GLIBC_2.16 fwrite_unlocked F
>  GLIBC_2.16 fwscanf F
> +GLIBC_2.16 gai_cancel F
> +GLIBC_2.16 gai_error F
>  GLIBC_2.16 gai_strerror F
> +GLIBC_2.16 gai_suspend F
>  GLIBC_2.16 gcvt F
>  GLIBC_2.16 get_avphys_pages F
>  GLIBC_2.16 get_current_dir_name F
> @@ -934,6 +937,7 @@ GLIBC_2.16 get_nprocs F
>  GLIBC_2.16 get_nprocs_conf F
>  GLIBC_2.16 get_phys_pages F
>  GLIBC_2.16 getaddrinfo F
> +GLIBC_2.16 getaddrinfo_a F
>  GLIBC_2.16 getaliasbyname F
>  GLIBC_2.16 getaliasbyname_r F
>  GLIBC_2.16 getaliasent F
> @@ -2380,6 +2384,10 @@ GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 execveat F
> +GLIBC_2.34 gai_cancel F
> +GLIBC_2.34 gai_error F
> +GLIBC_2.34 gai_suspend F
> +GLIBC_2.34 getaddrinfo_a F
>  GLIBC_2.34 mtx_destroy F
>  GLIBC_2.34 mtx_init F
>  GLIBC_2.34 mtx_lock F
> 

OK.

-- 
Cheers,
Carlos.


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-07-01 17:39 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-21 20:56 [PATCH] resolv: Move libanl into libc (if libpthread is in libc) Florian Weimer
2021-07-01 17:39 ` Carlos O'Donell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).