public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Florian Weimer <fweimer@redhat.com>
To: libc-alpha@sourceware.org
Subject: [PATCH] resolv: Move libanl into libc (if libpthread is in libc)
Date: Mon, 21 Jun 2021 22:56:56 +0200	[thread overview]
Message-ID: <871r8vhr6v.fsf@oldenburg.str.redhat.com> (raw)

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


             reply	other threads:[~2021-06-21 20:57 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-21 20:56 Florian Weimer [this message]
2021-07-01 17:39 ` Carlos O'Donell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=871r8vhr6v.fsf@oldenburg.str.redhat.com \
    --to=fweimer@redhat.com \
    --cc=libc-alpha@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).