public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 00/30] Move nss_dns into libc
@ 2021-07-02 18:47 Florian Weimer
  2021-07-02 18:47 ` [PATCH 01/30] socket: Add hidden prototype for setsockopt Florian Weimer
                   ` (29 more replies)
  0 siblings, 30 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:47 UTC (permalink / raw)
  To: libc-alpha

Together with the nss_files move, this will allow us to increase the
resilience of statically linked applications and eventually allow us to
provide an equivalent to --enable-static-nss builds (broken since glibc
2.33).

Not all of libresolv is moved yet, only parts that are critical to the
stub resolver (plus some extras).  A lot of functionality needs to be
deprecated and removed from the API because it is outdated or just
broken.  I do not think it makes sense to add new symbol versions for
those, so I'd like to deprecate them now, keep them in libresolv, and
move them to libc as compat symbols maybe in glibc 2.36.

The last patch conflicts with the nss_files move, and it would make
sense to abstract things a little bit further once both are merged.

Thanks,
Florian

Florian Weimer (30):
  socket: Add hidden prototype for setsockopt
  resolv: Deprecate legacy interfaces in <resolv.h>
  resolv: Sort Makefile routines and Versions lexicographically
  nss_dns: Do not use deprecated packet parsing functions
  resolv: Move ns_name_ntop to its own file and into libc
  resolv: Move ns_name_unpack to its own file and into libc
  resolv: Move ns_name_skip to its own file and into libc
  resolv: Move ns_name_uncompress into its own file and into libc
  resolv: Move ns_name_pton into its own file and into libc
  resolv: Move ns_name_pack into its own file and into libc
  resolv: Move ns_name_compress into its own file and into libc
  resolv: Move dn_expand to its own file and into libc
  resolv: Move _getlong, _getshort, __putlong, __putshort to res-putget
  resolv: Move dn_comp to its own file and into libc
  resolv: Move dn_skipname to its own file and into libc
  resolv: Rename res_comp.c to res-name-checking.c and move into libc
  resolv: Remove unnecessary res_isourserver_p call from send_dg
  resolv: Move __res_get_nsaddr to its own file and into libc
  resolv: Move res_isourserver to its own file and reformat to GNU style
  resolv: Move ns_makecanon into its own file, and into libc
  resolv: Move ns_samename into its own file, and into libc
  resolv: Move res_nameinquery to its own file and into libc
  resolv: Move res_queriesmatch to its own file and into libc
  resolv: Move __res_context_hostalias into its own file and into libc
  resolv: Move res_hostalias into its own file, along with hostalias
  resolv: Move res_send, res_nsend into libc
  resolv: Move res_mkquery, res_nmkquery into libc
  resolv: Move res_query functions into libc
  resolv: Move nss_dns into libc
  nss: Directly load nss_dns, without going through dlsym/dlopen

 NEWS                                          |   4 +
 include/arpa/nameser.h                        |  28 +-
 include/nss_dns.h                             |  39 ++
 include/resolv.h                              |  22 +-
 include/sys/socket.h                          |   3 +-
 nss/nss_module.c                              |  31 +-
 nss/nss_module.h                              |  10 +-
 resolv/Makefile                               |  85 ++-
 resolv/Versions                               | 256 ++++++--
 resolv/arpa/nameser.h                         |  33 +-
 resolv/compat-gethnamaddr.c                   |  13 +-
 resolv/dn_comp.c                              | 103 +++
 resolv/dn_expand.c                            | 112 ++++
 resolv/dn_skipname.c                          | 103 +++
 resolv/ns_makecanon.c                         |  50 ++
 resolv/ns_name.c                              | 614 ------------------
 resolv/ns_name_compress.c                     |  50 ++
 resolv/ns_name_ntop.c                         | 145 +++++
 resolv/ns_name_pack.c                         | 202 ++++++
 resolv/ns_name_pton.c                         | 157 +++++
 resolv/ns_name_skip.c                         |  62 ++
 resolv/ns_name_uncompress.c                   |  45 ++
 resolv/ns_name_unpack.c                       | 115 ++++
 resolv/ns_parse.c                             |   4 +-
 resolv/ns_print.c                             |   8 +-
 resolv/ns_samedomain.c                        |  62 +-
 resolv/ns_samename.c                          |  38 ++
 resolv/nss_dns/dns-canon.c                    |  25 +-
 resolv/nss_dns/dns-host.c                     |  78 +--
 resolv/nss_dns/dns-network.c                  |  15 +-
 resolv/nss_dns_functions.c                    |  46 ++
 resolv/{res_comp.c => res-name-checking.c}    | 116 +---
 resolv/res-putget.c                           | 112 ++++
 resolv/res_context_hostalias.c                | 132 ++++
 resolv/res_debug.c                            |   4 +-
 resolv/res_enable_icmp.c                      |   4 +-
 resolv/res_get_nsaddr.c                       |  39 ++
 resolv/res_hostalias.c                        |  51 ++
 resolv/res_isourserver.c                      | 134 ++++
 resolv/res_mkquery.c                          |  48 +-
 resolv/res_nameinquery.c                      | 115 ++++
 resolv/res_queriesmatch.c                     | 129 ++++
 resolv/res_query.c                            | 158 ++---
 resolv/res_send.c                             | 238 ++-----
 resolv/resolv-deprecated.c                    |  56 ++
 resolv/resolv-internal.h                      |  21 +-
 resolv/resolv.h                               | 101 +--
 sysdeps/mach/hurd/i386/libc.abilist           |  48 ++
 sysdeps/mach/hurd/i386/libresolv.abilist      |  24 -
 sysdeps/mach/hurd/setsockopt.c                |   2 +-
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  48 ++
 .../unix/sysv/linux/aarch64/libresolv.abilist |  24 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |  53 ++
 .../unix/sysv/linux/alpha/libresolv.abilist   |  29 -
 sysdeps/unix/sysv/linux/arc/libc.abilist      |  48 ++
 sysdeps/unix/sysv/linux/arc/libresolv.abilist |  24 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  48 ++
 .../unix/sysv/linux/arm/be/libresolv.abilist  |  24 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  48 ++
 .../unix/sysv/linux/arm/le/libresolv.abilist  |  24 -
 sysdeps/unix/sysv/linux/csky/libc.abilist     |  48 ++
 .../unix/sysv/linux/csky/libresolv.abilist    |  24 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |  53 ++
 .../unix/sysv/linux/hppa/libresolv.abilist    |  29 -
 sysdeps/unix/sysv/linux/i386/libc.abilist     |  53 ++
 .../unix/sysv/linux/i386/libresolv.abilist    |  29 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |  53 ++
 .../unix/sysv/linux/ia64/libresolv.abilist    |  29 -
 .../sysv/linux/m68k/coldfire/libc.abilist     |  48 ++
 .../linux/m68k/coldfire/libresolv.abilist     |  24 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  53 ++
 .../sysv/linux/m68k/m680x0/libresolv.abilist  |  29 -
 .../sysv/linux/microblaze/be/libc.abilist     |  48 ++
 .../linux/microblaze/be/libresolv.abilist     |  24 -
 .../sysv/linux/microblaze/le/libc.abilist     |  48 ++
 .../linux/microblaze/le/libresolv.abilist     |  24 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |  53 ++
 .../sysv/linux/mips/mips32/libresolv.abilist  |  29 -
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |  53 ++
 .../sysv/linux/mips/mips64/n32/libc.abilist   |  53 ++
 .../linux/mips/mips64/n32/libresolv.abilist   |  29 -
 .../sysv/linux/mips/mips64/n64/libc.abilist   |  53 ++
 .../linux/mips/mips64/n64/libresolv.abilist   |  29 -
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |  48 ++
 .../unix/sysv/linux/nios2/libresolv.abilist   |  24 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |  53 ++
 .../linux/powerpc/powerpc32/libresolv.abilist |  29 -
 .../powerpc/powerpc32/nofpu/libc.abilist      |  53 ++
 .../linux/powerpc/powerpc64/be/libc.abilist   |  48 ++
 .../powerpc/powerpc64/be/libresolv.abilist    |  24 -
 .../linux/powerpc/powerpc64/le/libc.abilist   |  48 ++
 .../powerpc/powerpc64/le/libresolv.abilist    |  24 -
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |  48 ++
 .../sysv/linux/riscv/rv32/libresolv.abilist   |  24 -
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |  48 ++
 .../sysv/linux/riscv/rv64/libresolv.abilist   |  24 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist |  53 ++
 .../sysv/linux/s390/s390-32/libresolv.abilist |  29 -
 .../unix/sysv/linux/s390/s390-64/libc.abilist |  48 ++
 .../sysv/linux/s390/s390-64/libresolv.abilist |  24 -
 sysdeps/unix/sysv/linux/setsockopt.c          |   5 +-
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  53 ++
 .../unix/sysv/linux/sh/be/libresolv.abilist   |  29 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  53 ++
 .../unix/sysv/linux/sh/le/libresolv.abilist   |  29 -
 .../sysv/linux/sparc/sparc32/libc.abilist     |  53 ++
 .../linux/sparc/sparc32/libresolv.abilist     |  29 -
 .../sysv/linux/sparc/sparc64/libc.abilist     |  53 ++
 .../linux/sparc/sparc64/libresolv.abilist     |  29 -
 .../unix/sysv/linux/x86_64/64/libc.abilist    |  48 ++
 .../sysv/linux/x86_64/64/libresolv.abilist    |  24 -
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |  48 ++
 .../sysv/linux/x86_64/x32/libresolv.abilist   |  24 -
 113 files changed, 4359 insertions(+), 2142 deletions(-)
 create mode 100644 include/nss_dns.h
 create mode 100644 resolv/dn_comp.c
 create mode 100644 resolv/dn_expand.c
 create mode 100644 resolv/dn_skipname.c
 create mode 100644 resolv/ns_makecanon.c
 create mode 100644 resolv/ns_name_compress.c
 create mode 100644 resolv/ns_name_ntop.c
 create mode 100644 resolv/ns_name_pack.c
 create mode 100644 resolv/ns_name_pton.c
 create mode 100644 resolv/ns_name_skip.c
 create mode 100644 resolv/ns_name_uncompress.c
 create mode 100644 resolv/ns_name_unpack.c
 create mode 100644 resolv/ns_samename.c
 create mode 100644 resolv/nss_dns_functions.c
 rename resolv/{res_comp.c => res-name-checking.c} (73%)
 create mode 100644 resolv/res-putget.c
 create mode 100644 resolv/res_context_hostalias.c
 create mode 100644 resolv/res_get_nsaddr.c
 create mode 100644 resolv/res_hostalias.c
 create mode 100644 resolv/res_isourserver.c
 create mode 100644 resolv/res_nameinquery.c
 create mode 100644 resolv/res_queriesmatch.c
 create mode 100644 resolv/resolv-deprecated.c

-- 
2.31.1


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

* [PATCH 01/30] socket: Add hidden prototype for setsockopt
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
@ 2021-07-02 18:47 ` Florian Weimer
  2021-07-02 18:47 ` [PATCH 02/30] resolv: Deprecate legacy interfaces in <resolv.h> Florian Weimer
                   ` (28 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:47 UTC (permalink / raw)
  To: libc-alpha

---
 include/sys/socket.h                 | 3 ++-
 sysdeps/mach/hurd/setsockopt.c       | 2 +-
 sysdeps/unix/sysv/linux/setsockopt.c | 5 +++--
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/include/sys/socket.h b/include/sys/socket.h
index 38a1f76b3b..a1d749f9fa 100644
--- a/include/sys/socket.h
+++ b/include/sys/socket.h
@@ -118,7 +118,8 @@ libc_hidden_proto (__recvmmsg64)
    Returns 0 on success, -1 for errors.  */
 extern int __setsockopt (int __fd, int __level, int __optname,
 			 const void *__optval,
-			 socklen_t __optlen) attribute_hidden;
+			 socklen_t __optlen);
+libc_hidden_proto (__setsockopt)
 
 /* Put the current value for socket FD's option OPTNAME at protocol level LEVEL
    into OPTVAL (which is *OPTLEN bytes long), and set *OPTLEN to the value's
diff --git a/sysdeps/mach/hurd/setsockopt.c b/sysdeps/mach/hurd/setsockopt.c
index 283af7114c..165c085599 100644
--- a/sysdeps/mach/hurd/setsockopt.c
+++ b/sysdeps/mach/hurd/setsockopt.c
@@ -38,5 +38,5 @@ __setsockopt (int fd,
     return __hurd_dfail (fd, err);
   return 0;
 }
-
+libc_hidden_def (__setsockopt)
 weak_alias (__setsockopt, setsockopt)
diff --git a/sysdeps/unix/sysv/linux/setsockopt.c b/sysdeps/unix/sysv/linux/setsockopt.c
index a4780a9d33..6818c121cd 100644
--- a/sysdeps/unix/sysv/linux/setsockopt.c
+++ b/sysdeps/unix/sysv/linux/setsockopt.c
@@ -88,7 +88,7 @@ setsockopt32 (int fd, int level, int optname, const void *optval,
 #endif
 
 int
-setsockopt (int fd, int level, int optname, const void *optval, socklen_t len)
+__setsockopt (int fd, int level, int optname, const void *optval, socklen_t len)
 {
   int r = setsockopt_syscall (fd, level, optname, optval, len);
 
@@ -99,4 +99,5 @@ setsockopt (int fd, int level, int optname, const void *optval, socklen_t len)
 
   return r;
 }
-weak_alias (setsockopt, __setsockopt)
+libc_hidden_def (__setsockopt)
+weak_alias (__setsockopt, setsockopt)
-- 
2.31.1



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

* [PATCH 02/30] resolv: Deprecate legacy interfaces in <resolv.h>
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
  2021-07-02 18:47 ` [PATCH 01/30] socket: Add hidden prototype for setsockopt Florian Weimer
@ 2021-07-02 18:47 ` Florian Weimer
  2021-07-02 18:47 ` [PATCH 03/30] resolv: Sort Makefile routines and Versions lexicographically Florian Weimer
                   ` (27 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:47 UTC (permalink / raw)
  To: libc-alpha

Debugging interfaces: p_*, fp_*, and sym_* could conceivably be
used to produce debug out, but these functions have not been
updated to parse more resource records, so they are not very useful
today.  Likewise for ns_sprintrr and ns_sprintrrf.  ns_format_ttl and
ns_parse_ttl are related to these.

Internal implementation details: res_isourserver is probably only
useful in the implementation of a stub resolver, and so is
res_nameinquery.

Unclear semantics and bad performance: ns_samedomain, ns_subdomain,
ns_makecanon, ns_samename do textual converions & copies instead of
checking equivalence of the wire format.

res_hostalias has been superseded by getaddrinfo with AI_CANONNAME.
hostalias is not thread-safe.

Some functions have int as size arguments instead of size_t, so they
do not follow current coding practices.  However, dn_expand and
b64_ntop are somewhat widely used (to name just two examples), so
deprecating them seems problematic.
---
 NEWS                  |  4 +++
 resolv/arpa/nameser.h | 33 ++++++++++++-----
 resolv/resolv.h       | 84 +++++++++++++++++++++++++++----------------
 3 files changed, 82 insertions(+), 39 deletions(-)

diff --git a/NEWS b/NEWS
index 60933bd975..7f59b1ba96 100644
--- a/NEWS
+++ b/NEWS
@@ -77,6 +77,10 @@ Deprecated and removed features, and other changes affecting compatibility:
 * The function pthread_yield has been deprecated; programs should use
   the equivalent standard function sched_yield instead.
 
+* Various rarely-used functions declared in <resolv.h> and
+  <arpa/nameser.h> have been deprecated.  Applications are encouraged to
+  use dedicated DNS processing libraries if applicable.
+
 * The pthread cancellation handler is now installed with SA_RESTART and
   pthread_cancel will always send the internal SIGCANCEL on a cancellation
   request.  It should not be visible to application since the cancellation
diff --git a/resolv/arpa/nameser.h b/resolv/arpa/nameser.h
index a99d5ec508..017d7b194a 100644
--- a/resolv/arpa/nameser.h
+++ b/resolv/arpa/nameser.h
@@ -52,6 +52,12 @@
 #include <sys/types.h>
 #include <stdint.h>
 
+#ifdef _LIBC
+# define __NAMESER_DEPRECATED
+#else
+# define __NAMESER_DEPRECATED __attribute_deprecated__
+#endif
+
 /*
  * Define constants based on RFC 883, RFC 1034, RFC 1035
  */
@@ -401,14 +407,18 @@ int		ns_skiprr (const unsigned char *, const unsigned char *,
 int		ns_parserr (ns_msg *, ns_sect, int, ns_rr *) __THROW;
 int		ns_sprintrr (const ns_msg *, const ns_rr *,
 			     const char *, const char *, char *, size_t)
-     __THROW;
+  __THROW __NAMESER_DEPRECATED;
 int		ns_sprintrrf (const unsigned char *, size_t, const char *,
 			      ns_class, ns_type, unsigned long,
 			      const unsigned char *, size_t, const char *,
-			      const char *, char *, size_t) __THROW;
-int		ns_format_ttl (unsigned long, char *, size_t) __THROW;
-int		ns_parse_ttl (const char *, unsigned long *) __THROW;
-uint32_t	ns_datetosecs (const char *, int *) __THROW;
+			      const char *, char *, size_t)
+  __THROW __NAMESER_DEPRECATED;
+int		ns_format_ttl (unsigned long, char *, size_t)
+  __THROW __NAMESER_DEPRECATED;
+int		ns_parse_ttl (const char *, unsigned long *)
+  __THROW __NAMESER_DEPRECATED;
+uint32_t	ns_datetosecs (const char *, int *)
+  __THROW __NAMESER_DEPRECATED;
 int		ns_name_ntol (const unsigned char *, unsigned char *, size_t)
      __THROW;
 int		ns_name_ntop (const unsigned char *, char *, size_t) __THROW;
@@ -431,10 +441,15 @@ int		ns_name_skip (const unsigned char **, const unsigned char *)
 void		ns_name_rollback (const unsigned char *,
 				  const unsigned char **,
 				  const unsigned char **) __THROW;
-int		ns_samedomain (const char *, const char *) __THROW;
-int		ns_subdomain (const char *, const char *) __THROW;
-int		ns_makecanon (const char *, char *, size_t) __THROW;
-int		ns_samename (const char *, const char *) __THROW;
+
+int		ns_samedomain (const char *, const char *) __THROW
+  __NAMESER_DEPRECATED;
+int		ns_subdomain (const char *, const char *) __THROW
+  __NAMESER_DEPRECATED;
+int		ns_makecanon (const char *, char *, size_t) __THROW
+  __NAMESER_DEPRECATED;
+int		ns_samename (const char *, const char *) __THROW
+  __NAMESER_DEPRECATED;
 __END_DECLS
 
 #include <arpa/nameser_compat.h>
diff --git a/resolv/resolv.h b/resolv/resolv.h
index a039a9e636..d55942a6b6 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -174,14 +174,27 @@ __END_DECLS
 #define res_search		__res_search
 #define res_send		__res_send
 
+#ifdef _LIBC
+# define __RESOLV_DEPRECATED
+# define __RESOLV_DEPRECATED_MSG(msg)
+#else
+# define __RESOLV_DEPRECATED __attribute_deprecated__
+# define __RESOLV_DEPRECATED_MSG(msg) __attribute_deprecated_msg__ (msg)
+#endif
+
 __BEGIN_DECLS
-void		fp_nquery (const unsigned char *, int, FILE *) __THROW;
-void		fp_query (const unsigned char *, FILE *) __THROW;
-const char *	hostalias (const char *) __THROW;
-void		p_query (const unsigned char *) __THROW;
+void		fp_nquery (const unsigned char *, int, FILE *) __THROW
+  __RESOLV_DEPRECATED;
+void		fp_query (const unsigned char *, FILE *) __THROW
+  __RESOLV_DEPRECATED;
+const char *	hostalias (const char *) __THROW
+  __RESOLV_DEPRECATED_MSG ("use getaddrinfo instead");
+void		p_query (const unsigned char *) __THROW
+  __RESOLV_DEPRECATED;
 void		res_close (void) __THROW;
 int		res_init (void) __THROW;
-int		res_isourserver (const struct sockaddr_in *) __THROW;
+int		res_isourserver (const struct sockaddr_in *) __THROW
+  __RESOLV_DEPRECATED;
 int		res_mkquery (int, const char *, int, int,
 			     const unsigned char *, int, const unsigned char *,
 			     unsigned char *, int) __THROW;
@@ -238,50 +251,61 @@ int		res_hnok (const char *) __THROW;
 int		res_ownok (const char *) __THROW;
 int		res_mailok (const char *) __THROW;
 int		res_dnok (const char *) __THROW;
-int		sym_ston (const struct res_sym *, const char *, int *) __THROW;
-const char *	sym_ntos (const struct res_sym *, int, int *) __THROW;
-const char *	sym_ntop (const struct res_sym *, int, int *) __THROW;
+int		sym_ston (const struct res_sym *, const char *, int *) __THROW
+  __RESOLV_DEPRECATED;
+const char *	sym_ntos (const struct res_sym *, int, int *) __THROW
+  __RESOLV_DEPRECATED;
+const char *	sym_ntop (const struct res_sym *, int, int *) __THROW
+  __RESOLV_DEPRECATED;
 int		b64_ntop (const unsigned char *, size_t, char *, size_t)
-     __THROW;
+  __THROW;
 int		b64_pton (char const *, unsigned char *, size_t) __THROW;
-int		loc_aton (const char *__ascii, unsigned char *__binary) __THROW;
-const char *	loc_ntoa (const unsigned char *__binary, char *__ascii) __THROW;
+int		loc_aton (const char *__ascii, unsigned char *__binary) __THROW
+  __RESOLV_DEPRECATED;
+const char *	loc_ntoa (const unsigned char *__binary, char *__ascii) __THROW
+  __RESOLV_DEPRECATED;
 int		dn_skipname (const unsigned char *, const unsigned char *)
-     __THROW;
-void		putlong (uint32_t, unsigned char *) __THROW;
-void		putshort (uint16_t, unsigned char *) __THROW;
-const char *	p_class (int) __THROW;
-const char *	p_time (uint32_t) __THROW;
-const char *	p_type (int) __THROW;
-const char *	p_rcode (int) __THROW;
-const unsigned char * p_cdnname (const unsigned char *,
-				 const unsigned char *, int, FILE *) __THROW;
+  __THROW;
+void		putlong (uint32_t, unsigned char *) __THROW
+  __RESOLV_DEPRECATED_MSG ("use NS_PUT16 instead");
+void		putshort (uint16_t, unsigned char *) __THROW
+  __RESOLV_DEPRECATED_MSG ("use NS_PUT32 instead");
+const char *	p_class (int) __THROW __RESOLV_DEPRECATED;
+const char *	p_time (uint32_t) __THROW __RESOLV_DEPRECATED;
+const char *	p_type (int) __THROW __RESOLV_DEPRECATED;
+const char *	p_rcode (int) __THROW __RESOLV_DEPRECATED;
+const unsigned char * p_cdnname (const unsigned char *, const unsigned char *,
+				 int, FILE *) __THROW __RESOLV_DEPRECATED;
 const unsigned char * p_cdname (const unsigned char *, const unsigned char *,
-				FILE *) __THROW;
+				FILE *) __THROW __RESOLV_DEPRECATED;
 const unsigned char * p_fqnname (const unsigned char *__cp,
 				 const unsigned char *__msg,
-				 int, char *, int) __THROW;
-const unsigned char * p_fqname (const unsigned char *,
-				const unsigned char *, FILE *) __THROW;
-const char *	p_option (unsigned long __option) __THROW;
+				 int, char *, int) __THROW __RESOLV_DEPRECATED;
+const unsigned char * p_fqname (const unsigned char *, const unsigned char *,
+				FILE *) __THROW __RESOLV_DEPRECATED;
+const char *	p_option (unsigned long __option) __THROW __RESOLV_DEPRECATED;
 int		dn_count_labels (const char *) __THROW;
 int		dn_comp (const char *, unsigned char *, int, unsigned char **,
 			 unsigned char **) __THROW;
 int		dn_expand (const unsigned char *, const unsigned char *,
 			   const unsigned char *, char *, int) __THROW;
-unsigned int	res_randomid (void) __THROW;
+unsigned int	res_randomid (void) __THROW
+  __RESOLV_DEPRECATED_MSG ("use getentropy instead");
 int		res_nameinquery (const char *, int, int,
 				 const unsigned char *,
-				 const unsigned char *) __THROW;
+				 const unsigned char *) __THROW
+  __RESOLV_DEPRECATED;
 int		res_queriesmatch (const unsigned char *,
 				  const unsigned char *,
 				  const unsigned char *,
-				  const unsigned char *) __THROW;
+				  const unsigned char *) __THROW
+  __RESOLV_DEPRECATED;
 /* Things involving a resolver context. */
 int		res_ninit (res_state) __THROW;
-void		fp_resstat (const res_state, FILE *) __THROW;
+void		fp_resstat (const res_state, FILE *) __THROW
+  __RESOLV_DEPRECATED;
 const char *	res_hostalias (const res_state, const char *, char *, size_t)
-     __THROW;
+     __THROW __RESOLV_DEPRECATED_MSG ("use getaddrinfo instead");
 int		res_nquery (res_state, const char *, int, int,
 			    unsigned char *, int) __THROW;
 int		res_nsearch (res_state, const char *, int, int,
-- 
2.31.1



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

* [PATCH 03/30] resolv: Sort Makefile routines and Versions lexicographically
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
  2021-07-02 18:47 ` [PATCH 01/30] socket: Add hidden prototype for setsockopt Florian Weimer
  2021-07-02 18:47 ` [PATCH 02/30] resolv: Deprecate legacy interfaces in <resolv.h> Florian Weimer
@ 2021-07-02 18:47 ` Florian Weimer
  2021-07-02 18:47 ` [PATCH 04/30] nss_dns: Do not use deprecated packet parsing functions Florian Weimer
                   ` (26 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:47 UTC (permalink / raw)
  To: libc-alpha

---
 resolv/Makefile |  61 ++++++++++++---
 resolv/Versions | 194 ++++++++++++++++++++++++++++++++----------------
 2 files changed, 182 insertions(+), 73 deletions(-)

diff --git a/resolv/Makefile b/resolv/Makefile
index 1d3565d478..f14b149b31 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -27,9 +27,21 @@ headers	:= resolv.h bits/types/res_state.h \
 	   arpa/nameser.h arpa/nameser_compat.h \
 	   sys/bitypes.h
 
-routines := herror inet_addr inet_ntop inet_pton nsap_addr res_init \
-	    res_hconf res_libc res-state res_randomid res-close \
-	    resolv_context resolv_conf
+routines := \
+  herror \
+  inet_addr \
+  inet_ntop \
+  inet_pton \
+  nsap_addr \
+  res-close \
+  res-state \
+  res_hconf \
+  res_init \
+  res_libc \
+  res_randomid \
+  resolv_conf \
+  resolv_context \
+  # routines
 
 tests = tst-aton tst-leaks tst-inet_ntop
 tests-container = tst-leaks2
@@ -105,15 +117,37 @@ xtests += tst-resolv-qtypes
 xtests += tst-resolv-rotate
 endif
 extra-libs-others = $(extra-libs)
-libresolv-routines := res_comp res_debug \
-		      res_data res_mkquery res_query res_send		\
-		      inet_net_ntop inet_net_pton inet_neta base64	\
-		      ns_parse ns_name ns_netint ns_ttl ns_print	\
-		      ns_samedomain ns_date res_enable_icmp \
-		      compat-hooks compat-gethnamaddr
+libresolv-routines := \
+  base64 \
+  compat-gethnamaddr \
+  compat-hooks \
+  inet_net_ntop \
+  inet_net_pton \
+  inet_neta \
+  ns_date \
+  ns_name \
+  ns_netint \
+  ns_parse \
+  ns_print \
+  ns_samedomain \
+  ns_ttl \
+  res_comp \
+  res_data \
+  res_debug \
+  res_enable_icmp \
+  res_mkquery \
+  res_query \
+  res_send \
+  # libresolv-routines
 
 $(libanl-routines-var) += \
-  gai_cancel gai_error gai_misc gai_notify gai_suspend getaddrinfo_a
+  gai_cancel \
+  gai_error \
+  gai_misc \
+  gai_notify \
+  gai_suspend \
+  getaddrinfo_a \
+  # $(libanl-routines-var)
 
 libanl-routines += libanl-compat
 libanl-shared-only-routines += libanl-compat
@@ -121,7 +155,12 @@ libanl-shared-only-routines += libanl-compat
 subdir-dirs = nss_dns
 vpath %.c nss_dns
 
-libnss_dns-routines	:= dns-host dns-network dns-canon
+libnss_dns-routines := \
+  dns-canon \
+  dns-host \
+  dns-network \
+  # libnss_dns-routines
+
 libnss_dns-inhibit-o	= $(filter-out .os,$(object-suffixes))
 ifeq ($(build-static-nss),yes)
 routines                += $(libnss_dns-routines) $(libresolv-routines)
diff --git a/resolv/Versions b/resolv/Versions
index d4f6b4b819..3b5328301a 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -1,115 +1,182 @@
 libc {
   GLIBC_2.0 {
-    _res;
-
-    # helper functions
     __h_errno_location;
-
-    # functions used in other libraries
     __res_randomid;
-
-    # variables in normal name space
-    h_errlist; h_nerr;
-
-    # h*
-    herror; hstrerror;
-
-    # r*
+    _res;
+    h_errlist;
+    h_nerr;
+    herror;
+    hstrerror;
     res_init;
   }
   GLIBC_2.2 {
-    # r*
-    __res_state; __res_init; __res_nclose; __res_ninit; _res_hconf;
+    __res_init;
+    __res_nclose;
+    __res_ninit;
+    __res_state;
+    _res_hconf;
   }
   GLIBC_2.2.3 {
 %if PTHREAD_IN_LIBC
-    gai_cancel; gai_error; gai_suspend; getaddrinfo_a;
+    gai_cancel;
+    gai_error;
+    gai_suspend;
+    getaddrinfo_a;
 %endif
   }
   GLIBC_2.34 {
 %if PTHREAD_IN_LIBC
-    gai_cancel; gai_error; gai_suspend; getaddrinfo_a;
+    gai_cancel;
+    gai_error;
+    gai_suspend;
+    getaddrinfo_a;
 %endif
   }
   GLIBC_PRIVATE {
 %if !PTHREAD_IN_LIBC
     __gai_sigqueue;
 %endif
-
-    __h_errno; __resp;
-
-    __res_iclose;
+    __h_errno;
     __inet_aton_exact;
     __inet_pton_length;
+    __res_iclose;
     __resolv_context_get;
-    __resolv_context_get_preinit;
     __resolv_context_get_override;
+    __resolv_context_get_preinit;
     __resolv_context_put;
+    __resp;
   }
 }
 
 libresolv {
   GLIBC_2.0 {
-    _gethtbyaddr; _gethtbyname; _gethtbyname2; _gethtent; _getlong;
-    _getshort; _res_opcodes; _res_resultcodes; _sethtent; dn_expand;
-    inet_net_ntop; inet_net_pton; inet_neta; res_gethostbyaddr;
-    res_gethostbyname; res_gethostbyname2; res_mkquery; res_query;
-    res_querydomain; res_search; res_send_setqhook; res_send_setrhook;
-    # Variables
-    __p_class_syms; __p_type_syms;
-    # Private routines shared between libc/net, named, nslookup and others.
-    __b64_ntop; __b64_pton;
-    __dn_comp;  __dn_count_labels; __dn_skipname;
-    __fp_nquery; __fp_query; __fp_resstat; __hostalias;
-    __loc_aton; __loc_ntoa;
-    __p_cdname; __p_cdnname; __p_class; __p_fqname; __p_fqnname; __p_option;
-    __p_query; __p_rr; __p_secstodate; __p_time; __p_type;
-    __putlong; __putshort;
-    __res_close; __res_dnok; __res_hnok; __res_isourserver; __res_mailok;
-    __res_nameinquery; __res_ownok; __res_queriesmatch;
+    __b64_ntop;
+    __b64_pton;
+    __dn_comp;
+    __dn_count_labels;
+    __dn_skipname;
+    __fp_nquery;
+    __fp_query;
+    __fp_resstat;
+    __hostalias;
+    __loc_aton;
+    __loc_ntoa;
+    __p_cdname;
+    __p_cdnname;
+    __p_class;
+    __p_class_syms;
+    __p_fqname;
+    __p_fqnname;
+    __p_option;
+    __p_query;
+    __p_rr;
+    __p_secstodate;
+    __p_time;
+    __p_type;
+    __p_type_syms;
+    __putlong;
+    __putshort;
+    __res_close;
+    __res_dnok;
+    __res_hnok;
+    __res_isourserver;
+    __res_mailok;
+    __res_nameinquery;
+    __res_ownok;
+    __res_queriesmatch;
     __res_send;
-    __sym_ntop; __sym_ntos; __sym_ston;
+    __sym_ntop;
+    __sym_ntos;
+    __sym_ston;
+    _gethtbyaddr;
+    _gethtbyname2;
+    _gethtbyname;
+    _gethtent;
+    _getlong;
+    _getshort;
+    _res_opcodes;
+    _res_resultcodes;
+    _sethtent;
+    dn_expand;
+    inet_net_ntop;
+    inet_net_pton;
+    inet_neta;
+    res_gethostbyaddr;
+    res_gethostbyname2;
+    res_gethostbyname;
+    res_mkquery;
+    res_query;
+    res_querydomain;
+    res_search;
+    res_send_setqhook;
+    res_send_setrhook;
   }
   GLIBC_2.2 {
     __dn_expand;
-    __res_hostalias; __res_mkquery; __res_nmkquery; __res_nquery;
-    __res_nquerydomain; __res_nsearch; __res_nsend; __res_query;
-    __res_querydomain; __res_search;
+    __res_hostalias;
+    __res_mkquery;
+    __res_nmkquery;
+    __res_nquery;
+    __res_nquerydomain;
+    __res_nsearch;
+    __res_nsend;
+    __res_query;
+    __res_querydomain;
+    __res_search;
   }
   GLIBC_2.3.2 {
     __p_rcode;
   }
   GLIBC_2.9 {
-    ns_msg_getflag;
-    ns_get16; ns_get32; ns_put16; ns_put32;
-    ns_initparse; ns_skiprr; ns_parserr;
-    ns_sprintrr; ns_sprintrrf;
-    ns_format_ttl; ns_parse_ttl;
     ns_datetosecs;
-    ns_name_ntol; ns_name_ntop; ns_name_pton;
-    ns_name_unpack; ns_name_pack;
-    ns_name_uncompress; ns_name_compress;
-    ns_name_skip; ns_name_rollback;
-    ns_samedomain; ns_subdomain; ns_makecanon; ns_samename;
+    ns_format_ttl;
+    ns_get16;
+    ns_get32;
+    ns_initparse;
+    ns_makecanon;
+    ns_msg_getflag;
+    ns_name_compress;
+    ns_name_ntol;
+    ns_name_ntop;
+    ns_name_pack;
+    ns_name_pton;
+    ns_name_rollback;
+    ns_name_skip;
+    ns_name_uncompress;
+    ns_name_unpack;
+    ns_parse_ttl;
+    ns_parserr;
+    ns_put16;
+    ns_put32;
+    ns_samedomain;
+    ns_samename;
+    ns_skiprr;
+    ns_sprintrr;
+    ns_sprintrrf;
+    ns_subdomain;
   }
   GLIBC_PRIVATE {
-    # Needed in libnss_dns.
-    __ns_name_unpack; __ns_name_ntop;
-    __ns_get16; __ns_get32;
+    __ns_get16;
+    __ns_get32;
+    __ns_name_ntop;
+    __ns_name_unpack;
+    __res_context_hostalias;
     __res_context_query;
     __res_context_search;
-    __res_context_hostalias;
   }
 }
 
 libnss_dns {
   GLIBC_PRIVATE {
-    _nss_dns_gethostbyaddr_r; _nss_dns_gethostbyname2_r;
-    _nss_dns_gethostbyname3_r;
-    _nss_dns_gethostbyname_r; _nss_dns_getnetbyaddr_r;
-    _nss_dns_getnetbyname_r; _nss_dns_getcanonname_r;
+    _nss_dns_getcanonname_r;
     _nss_dns_gethostbyaddr2_r;
+    _nss_dns_gethostbyaddr_r;
+    _nss_dns_gethostbyname2_r;
+    _nss_dns_gethostbyname3_r;
     _nss_dns_gethostbyname4_r;
+    _nss_dns_gethostbyname_r;
+    _nss_dns_getnetbyaddr_r;
+    _nss_dns_getnetbyname_r;
   }
 }
 
@@ -118,7 +185,10 @@ libanl {
 %if PTHREAD_IN_LIBC
     __libanl_version_placeholder;
 %else
-    gai_cancel; gai_error; gai_suspend; getaddrinfo_a;
+    gai_cancel;
+    gai_error;
+    gai_suspend;
+    getaddrinfo_a;
 %endif
   }
 }
-- 
2.31.1



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

* [PATCH 04/30] nss_dns: Do not use deprecated packet parsing functions
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (2 preceding siblings ...)
  2021-07-02 18:47 ` [PATCH 03/30] resolv: Sort Makefile routines and Versions lexicographically Florian Weimer
@ 2021-07-02 18:47 ` Florian Weimer
  2021-07-02 18:47 ` [PATCH 05/30] resolv: Move ns_name_ntop to its own file and into libc Florian Weimer
                   ` (25 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:47 UTC (permalink / raw)
  To: libc-alpha

---
 resolv/nss_dns/dns-canon.c | 13 ++++++++-----
 resolv/nss_dns/dns-host.c  | 28 ++++++++++++----------------
 2 files changed, 20 insertions(+), 21 deletions(-)

diff --git a/resolv/nss_dns/dns-canon.c b/resolv/nss_dns/dns-canon.c
index cb321a0650..1cdc9a86c9 100644
--- a/resolv/nss_dns/dns-canon.c
+++ b/resolv/nss_dns/dns-canon.c
@@ -150,15 +150,18 @@ _nss_dns_getcanonname_r (const char *name, char *buffer, size_t buflen,
 	      if (type != ns_t_cname)
 		goto unavail;
 
-	      if (__ns_get16 (ptr) != ns_c_in)
+	      uint16_t rrclass;
+	      NS_GET16 (rrclass, ptr);
+	      if (rrclass != ns_c_in)
 		goto unavail;
 
-	      /* Also skip over class and TTL.  */
-	      ptr += sizeof (uint16_t) + sizeof (uint32_t);
+	      /* Skip over TTL.  */
+	      ptr += sizeof (uint32_t);
 
 	      /* Skip over RDATA length and RDATA itself.  */
-	      uint16_t rdatalen = __ns_get16 (ptr);
-	      ptr += sizeof (uint16_t);
+	      uint16_t rdatalen;
+	      NS_GET16 (rdatalen, ptr);
+
 	      /* Not enough room for RDATA.  */
 	      if (endptr - ptr < rdatalen)
 		goto unavail;
diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c
index 47e851db55..d6a69a602a 100644
--- a/resolv/nss_dns/dns-host.c
+++ b/resolv/nss_dns/dns-host.c
@@ -782,14 +782,11 @@ getanswer_r (struct resolv_context *ctx,
 	  continue;
 	}
 
-      type = __ns_get16 (cp);
-      cp += INT16SZ;			/* type */
-      class = __ns_get16 (cp);
-      cp += INT16SZ;			/* class */
-      int32_t ttl = __ns_get32 (cp);
-      cp += INT32SZ;			/* TTL */
-      n = __ns_get16 (cp);
-      cp += INT16SZ;			/* len */
+      NS_GET16 (type, cp);
+      NS_GET16 (class, cp);
+      int32_t ttl;
+      NS_GET32 (ttl, cp);
+      NS_GET16 (n, cp);		/* RDATA length.  */
 
       if (end_of_message - cp < n)
 	{
@@ -1116,14 +1113,13 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname,
 	  continue;
 	}
 
-      int type = __ns_get16 (cp);
-      cp += INT16SZ;			/* type */
-      int class = __ns_get16 (cp);
-      cp += INT16SZ;			/* class */
-      int32_t ttl = __ns_get32 (cp);
-      cp += INT32SZ;			/* TTL */
-      n = __ns_get16 (cp);
-      cp += INT16SZ;			/* len */
+      uint16_t type;
+      NS_GET16 (type, cp);
+      uint16_t class;
+      NS_GET16 (class, cp);
+      int32_t ttl;
+      NS_GET32 (ttl, cp);
+      NS_GET16 (n, cp);		/* RDATA length.  */
 
       if (end_of_message - cp < n)
 	{
-- 
2.31.1



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

* [PATCH 05/30] resolv: Move ns_name_ntop to its own file and into libc
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (3 preceding siblings ...)
  2021-07-02 18:47 ` [PATCH 04/30] nss_dns: Do not use deprecated packet parsing functions Florian Weimer
@ 2021-07-02 18:47 ` Florian Weimer
  2021-07-02 18:48 ` [PATCH 06/30] resolv: Move ns_name_unpack " Florian Weimer
                   ` (24 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:47 UTC (permalink / raw)
  To: libc-alpha

Reformat to GNU style.  Avoid out-of-bounds pointer arithmetic
(e.g., use eom - dn < 2 instead of dn + 1 >= eom).  Inline the
labellen function and fold the compression pointer check into
the length check (l >= 64).  Assume ASCII encoding.

The symbol was moved using scripts/move-symbol-to-libc.py.
---
 include/arpa/nameser.h                        |   4 +-
 resolv/Makefile                               |   1 +
 resolv/Versions                               |   7 +-
 resolv/ns_name.c                              | 128 +---------------
 resolv/ns_name_ntop.c                         | 145 ++++++++++++++++++
 sysdeps/mach/hurd/i386/libc.abilist           |   2 +
 sysdeps/mach/hurd/i386/libresolv.abilist      |   1 -
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |   2 +
 .../unix/sysv/linux/aarch64/libresolv.abilist |   1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |   2 +
 .../unix/sysv/linux/alpha/libresolv.abilist   |   1 -
 sysdeps/unix/sysv/linux/arc/libc.abilist      |   2 +
 sysdeps/unix/sysv/linux/arc/libresolv.abilist |   1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |   2 +
 .../unix/sysv/linux/arm/be/libresolv.abilist  |   1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |   2 +
 .../unix/sysv/linux/arm/le/libresolv.abilist  |   1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist     |   2 +
 .../unix/sysv/linux/csky/libresolv.abilist    |   1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |   2 +
 .../unix/sysv/linux/hppa/libresolv.abilist    |   1 -
 sysdeps/unix/sysv/linux/i386/libc.abilist     |   2 +
 .../unix/sysv/linux/i386/libresolv.abilist    |   1 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |   2 +
 .../unix/sysv/linux/ia64/libresolv.abilist    |   1 -
 .../sysv/linux/m68k/coldfire/libc.abilist     |   2 +
 .../linux/m68k/coldfire/libresolv.abilist     |   1 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |   2 +
 .../sysv/linux/m68k/m680x0/libresolv.abilist  |   1 -
 .../sysv/linux/microblaze/be/libc.abilist     |   2 +
 .../linux/microblaze/be/libresolv.abilist     |   1 -
 .../sysv/linux/microblaze/le/libc.abilist     |   2 +
 .../linux/microblaze/le/libresolv.abilist     |   1 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |   2 +
 .../sysv/linux/mips/mips32/libresolv.abilist  |   1 -
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |   2 +
 .../sysv/linux/mips/mips64/n32/libc.abilist   |   2 +
 .../linux/mips/mips64/n32/libresolv.abilist   |   1 -
 .../sysv/linux/mips/mips64/n64/libc.abilist   |   2 +
 .../linux/mips/mips64/n64/libresolv.abilist   |   1 -
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |   2 +
 .../unix/sysv/linux/nios2/libresolv.abilist   |   1 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |   2 +
 .../linux/powerpc/powerpc32/libresolv.abilist |   1 -
 .../powerpc/powerpc32/nofpu/libc.abilist      |   2 +
 .../linux/powerpc/powerpc64/be/libc.abilist   |   2 +
 .../powerpc/powerpc64/be/libresolv.abilist    |   1 -
 .../linux/powerpc/powerpc64/le/libc.abilist   |   2 +
 .../powerpc/powerpc64/le/libresolv.abilist    |   1 -
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |   2 +
 .../sysv/linux/riscv/rv32/libresolv.abilist   |   1 -
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |   2 +
 .../sysv/linux/riscv/rv64/libresolv.abilist   |   1 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist |   2 +
 .../sysv/linux/s390/s390-32/libresolv.abilist |   1 -
 .../unix/sysv/linux/s390/s390-64/libc.abilist |   2 +
 .../sysv/linux/s390/s390-64/libresolv.abilist |   1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |   2 +
 .../unix/sysv/linux/sh/be/libresolv.abilist   |   1 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |   2 +
 .../unix/sysv/linux/sh/le/libresolv.abilist   |   1 -
 .../sysv/linux/sparc/sparc32/libc.abilist     |   2 +
 .../linux/sparc/sparc32/libresolv.abilist     |   1 -
 .../sysv/linux/sparc/sparc64/libc.abilist     |   2 +
 .../linux/sparc/sparc64/libresolv.abilist     |   1 -
 .../unix/sysv/linux/x86_64/64/libc.abilist    |   2 +
 .../sysv/linux/x86_64/64/libresolv.abilist    |   1 -
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |   2 +
 .../sysv/linux/x86_64/x32/libresolv.abilist   |   1 -
 69 files changed, 221 insertions(+), 161 deletions(-)
 create mode 100644 resolv/ns_name_ntop.c

diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
index 7a8290e1f2..f1a696514a 100644
--- a/include/arpa/nameser.h
+++ b/include/arpa/nameser.h
@@ -65,7 +65,6 @@ libresolv_hidden_proto (ns_put32)
 libresolv_hidden_proto (ns_initparse)
 libresolv_hidden_proto (ns_skiprr)
 libresolv_hidden_proto (ns_parserr)
-libresolv_hidden_proto (ns_name_ntop)
 libresolv_hidden_proto (ns_name_pton)
 libresolv_hidden_proto (ns_name_pack)
 libresolv_hidden_proto (ns_name_skip)
@@ -79,5 +78,8 @@ libresolv_hidden_proto (ns_samename)
 libresolv_hidden_proto (ns_makecanon)
 libresolv_hidden_proto (ns_format_ttl)
 
+extern __typeof (ns_name_ntop) __ns_name_ntop;
+libc_hidden_proto (__ns_name_ntop)
+
 # endif /* !_ISOMAC */
 #endif
diff --git a/resolv/Makefile b/resolv/Makefile
index f14b149b31..bb16175654 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -32,6 +32,7 @@ routines := \
   inet_addr \
   inet_ntop \
   inet_pton \
+  ns_name_ntop \
   nsap_addr \
   res-close \
   res-state \
diff --git a/resolv/Versions b/resolv/Versions
index 3b5328301a..4bf1a13d48 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -24,6 +24,9 @@ libc {
     getaddrinfo_a;
 %endif
   }
+  GLIBC_2.9 {
+    ns_name_ntop;
+  }
   GLIBC_2.34 {
 %if PTHREAD_IN_LIBC
     gai_cancel;
@@ -31,6 +34,7 @@ libc {
     gai_suspend;
     getaddrinfo_a;
 %endif
+    ns_name_ntop;
   }
   GLIBC_PRIVATE {
 %if !PTHREAD_IN_LIBC
@@ -40,6 +44,7 @@ libc {
     __inet_aton_exact;
     __inet_pton_length;
     __res_iclose;
+    __ns_name_ntop;
     __resolv_context_get;
     __resolv_context_get_override;
     __resolv_context_get_preinit;
@@ -137,7 +142,6 @@ libresolv {
     ns_msg_getflag;
     ns_name_compress;
     ns_name_ntol;
-    ns_name_ntop;
     ns_name_pack;
     ns_name_pton;
     ns_name_rollback;
@@ -158,7 +162,6 @@ libresolv {
   GLIBC_PRIVATE {
     __ns_get16;
     __ns_get32;
-    __ns_name_ntop;
     __ns_name_unpack;
     __res_context_hostalias;
     __res_context_query;
diff --git a/resolv/ns_name.c b/resolv/ns_name.c
index 73213fee2d..4990003746 100644
--- a/resolv/ns_name.c
+++ b/resolv/ns_name.c
@@ -35,8 +35,6 @@ static const char	digits[] = "0123456789";
 
 /* Forward. */
 
-static int		special(int);
-static int		printable(int);
 static int		dn_find(const u_char *, const u_char *,
 				const u_char * const *,
 				const u_char * const *);
@@ -44,93 +42,6 @@ static int		labellen(const u_char *);
 
 /* Public. */
 
-/*%
- *	Convert an encoded domain name to printable ascii as per RFC1035.
-
- * return:
- *\li	Number of bytes written to buffer, or -1 (with errno set)
- *
- * notes:
- *\li	The root is returned as "."
- *\li	All other domains are returned in non absolute form
- */
-int
-ns_name_ntop(const u_char *src, char *dst, size_t dstsiz)
-{
-	const u_char *cp;
-	char *dn, *eom;
-	u_char c;
-	u_int n;
-	int l;
-
-	cp = src;
-	dn = dst;
-	eom = dst + dstsiz;
-
-	while ((n = *cp++) != 0) {
-		if ((n & NS_CMPRSFLGS) == NS_CMPRSFLGS) {
-			/* Some kind of compression pointer. */
-			__set_errno (EMSGSIZE);
-			return (-1);
-		}
-		if (dn != dst) {
-			if (dn >= eom) {
-				__set_errno (EMSGSIZE);
-				return (-1);
-			}
-			*dn++ = '.';
-		}
-		if ((l = labellen(cp - 1)) < 0) {
-			__set_errno (EMSGSIZE);
-			return(-1);
-		}
-		if (dn + l >= eom) {
-			__set_errno (EMSGSIZE);
-			return (-1);
-		}
-		for ((void)NULL; l > 0; l--) {
-			c = *cp++;
-			if (special(c)) {
-				if (dn + 1 >= eom) {
-					__set_errno (EMSGSIZE);
-					return (-1);
-				}
-				*dn++ = '\\';
-				*dn++ = (char)c;
-			} else if (!printable(c)) {
-				if (dn + 3 >= eom) {
-					__set_errno (EMSGSIZE);
-					return (-1);
-				}
-				*dn++ = '\\';
-				*dn++ = digits[c / 100];
-				*dn++ = digits[(c % 100) / 10];
-				*dn++ = digits[c % 10];
-			} else {
-				if (dn >= eom) {
-					__set_errno (EMSGSIZE);
-					return (-1);
-				}
-				*dn++ = (char)c;
-			}
-		}
-	}
-	if (dn == dst) {
-		if (dn >= eom) {
-			__set_errno (EMSGSIZE);
-			return (-1);
-		}
-		*dn++ = '.';
-	}
-	if (dn >= eom) {
-		__set_errno (EMSGSIZE);
-		return (-1);
-	}
-	*dn++ = '\0';
-	return (dn - dst);
-}
-libresolv_hidden_def (ns_name_ntop)
-strong_alias (ns_name_ntop, __ns_name_ntop)
 
 /*%
  *	Convert an ascii string into an encoded domain name as per RFC1035.
@@ -517,7 +428,7 @@ ns_name_uncompress(const u_char *msg, const u_char *eom, const u_char *src,
 
 	if ((n = ns_name_unpack(msg, eom, src, tmp, sizeof tmp)) == -1)
 		return (-1);
-	if (ns_name_ntop(tmp, dst, dstsiz) == -1)
+	if (__ns_name_ntop (tmp, dst, dstsiz) == -1)
 		return (-1);
 	return (n);
 }
@@ -606,43 +517,6 @@ libresolv_hidden_def (ns_name_skip)
 
 /* Private. */
 
-/*%
- *	Thinking in noninternationalized USASCII (per the DNS spec),
- *	is this character special ("in need of quoting") ?
- *
- * return:
- *\li	boolean.
- */
-static int
-special(int ch) {
-	switch (ch) {
-	case 0x22: /*%< '"' */
-	case 0x2E: /*%< '.' */
-	case 0x3B: /*%< ';' */
-	case 0x5C: /*%< '\\' */
-	case 0x28: /*%< '(' */
-	case 0x29: /*%< ')' */
-	/* Special modifiers in zone files. */
-	case 0x40: /*%< '@' */
-	case 0x24: /*%< '$' */
-		return (1);
-	default:
-		return (0);
-	}
-}
-
-/*%
- *	Thinking in noninternationalized USASCII (per the DNS spec),
- *	is this character visible and not a space when printed ?
- *
- * return:
- *\li	boolean.
- */
-static int
-printable(int ch) {
-	return (ch > 0x20 && ch < 0x7f);
-}
-
 /*%
  *	Thinking in noninternationalized USASCII (per the DNS spec),
  *	convert this character to lower case if it's upper case.
diff --git a/resolv/ns_name_ntop.c b/resolv/ns_name_ntop.c
new file mode 100644
index 0000000000..4dab3a3ce0
--- /dev/null
+++ b/resolv/ns_name_ntop.c
@@ -0,0 +1,145 @@
+/* Convert DNS domain names from network format to textual presentation format.
+ * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1996,1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <errno.h>
+#include <shlib-compat.h>
+#include <stdbool.h>
+
+/* Thinking in noninternationalized US-ASCII (per the DNS spec), is
+   this character special ("in need of quoting")?  */
+static inline bool
+special (int ch)
+{
+  switch (ch)
+    {
+    case '"':
+    case '.':
+    case ';':
+    case '\\':
+    case '(':
+    case ')':
+      /* Special modifiers in zone files.  */
+    case '@':
+    case '$':
+      return true;
+    default:
+      return false;
+    }
+}
+
+/* Thinking in noninternationalized US-ASCII (per the DNS spec), is
+   this character visible and not a space when printed?  */
+static inline bool
+printable (int ch)
+{
+  return ch > 0x20 && ch < 0x7f;
+}
+
+/* Converts an uncompressed, encoded domain name to printable ASCII as
+   per RFC1035.  Returns the number of bytes written to buffer, or -1
+   (with errno set).  The root is returned as "."  All other domains
+   are returned in non absolute form.  */
+int
+___ns_name_ntop (const unsigned char *src, char *dst, size_t dstsiz)
+{
+  const unsigned char *cp;
+  char *dn, *eom;
+  unsigned char c;
+  int l;
+
+  cp = src;
+  dn = dst;
+  eom = dst + dstsiz;
+
+  while ((l = *cp++) != 0)
+    {
+      if (l >= 64)
+        {
+          /* Some kind of compression pointer.  */
+          __set_errno (EMSGSIZE);
+          return -1;
+        }
+      if (dn != dst)
+        {
+          if (dn >= eom)
+            {
+              __set_errno (EMSGSIZE);
+              return -1;
+            }
+          *dn++ = '.';
+        }
+      for (; l > 0; l--)
+        {
+          c = *cp++;
+          if (special (c))
+            {
+              if (eom - dn < 2)
+                {
+                  __set_errno (EMSGSIZE);
+                  return -1;
+                }
+              *dn++ = '\\';
+              *dn++ = c;
+            }
+          else if (!printable (c))
+            {
+              if (eom - dn < 4)
+                {
+                  __set_errno (EMSGSIZE);
+                  return -1;
+                }
+              *dn++ = '\\';
+              *dn++ = '0' + (c / 100);
+              *dn++ = '0' + ((c % 100) / 10);
+              *dn++ = '0' + (c % 10);
+            }
+          else
+            {
+              if (eom - dn < 2)
+                {
+                  __set_errno (EMSGSIZE);
+                  return -1;
+                }
+              *dn++ = c;
+            }
+        }
+    }
+  if (dn == dst)
+    {
+      if (dn >= eom)
+        {
+          __set_errno (EMSGSIZE);
+          return -1;
+        }
+      *dn++ = '.';
+    }
+  if (dn >= eom)
+    {
+      __set_errno (EMSGSIZE);
+      return -1;
+    }
+  *dn++ = '\0';
+  return dn - dst;
+}
+versioned_symbol (libc, ___ns_name_ntop, ns_name_ntop, GLIBC_2_34);
+versioned_symbol (libc, ___ns_name_ntop, __ns_name_ntop, GLIBC_PRIVATE);
+libc_hidden_ver (___ns_name_ntop, __ns_name_ntop)
+
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_9, GLIBC_2_34)
+compat_symbol (libresolv, ___ns_name_ntop, ns_name_ntop, GLIBC_2_9);
+#endif
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index fcfe64f26b..a2cb340469 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2240,6 +2240,7 @@ GLIBC_2.34 login F
 GLIBC_2.34 login_tty F
 GLIBC_2.34 logout F
 GLIBC_2.34 logwtmp F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 shm_open F
 GLIBC_2.34 shm_unlink F
@@ -2360,6 +2361,7 @@ GLIBC_2.8 __vasprintf_chk F
 GLIBC_2.8 __vdprintf_chk F
 GLIBC_2.8 qsort_r F
 GLIBC_2.9 dup3 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
 HURD_CTHREADS_0.3 __cthread_getspecific F
 HURD_CTHREADS_0.3 __cthread_keycreate F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index e662651c8e..63a07a6073 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 6730cbdd6b..93d92cdaca 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1404,6 +1404,7 @@ GLIBC_2.17 nl_langinfo F
 GLIBC_2.17 nl_langinfo_l F
 GLIBC_2.17 nrand48 F
 GLIBC_2.17 nrand48_r F
+GLIBC_2.17 ns_name_ntop F
 GLIBC_2.17 ntohl F
 GLIBC_2.17 ntohs F
 GLIBC_2.17 ntp_adjtime F
@@ -2452,6 +2453,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
index f7fdd26bd1..0a93c2cc44 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
@@ -67,7 +67,6 @@ GLIBC_2.17 ns_makecanon F
 GLIBC_2.17 ns_msg_getflag F
 GLIBC_2.17 ns_name_compress F
 GLIBC_2.17 ns_name_ntol F
-GLIBC_2.17 ns_name_ntop F
 GLIBC_2.17 ns_name_pack F
 GLIBC_2.17 ns_name_pton F
 GLIBC_2.17 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 63de4fadc3..f5d0f5de75 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2551,6 +2551,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2984,4 +2985,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
index 06f995151c..2eee410d23 100644
--- a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 2f13701fd7..de804efa24 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1338,6 +1338,7 @@ GLIBC_2.32 nl_langinfo F
 GLIBC_2.32 nl_langinfo_l F
 GLIBC_2.32 nrand48 F
 GLIBC_2.32 nrand48_r F
+GLIBC_2.32 ns_name_ntop F
 GLIBC_2.32 ntohl F
 GLIBC_2.32 ntohs F
 GLIBC_2.32 ntp_adjtime F
@@ -2211,6 +2212,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
index c5edf99ea9..232146e7db 100644
--- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
@@ -60,7 +60,6 @@ GLIBC_2.32 ns_makecanon F
 GLIBC_2.32 ns_msg_getflag F
 GLIBC_2.32 ns_name_compress F
 GLIBC_2.32 ns_name_ntol F
-GLIBC_2.32 ns_name_ntop F
 GLIBC_2.32 ns_name_pack F
 GLIBC_2.32 ns_name_pton F
 GLIBC_2.32 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 9b824f1605..f5283ee8fa 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -345,6 +345,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2680,4 +2681,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
index 2dd5094f76..1f2d60151f 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 443a81b8f7..bb59edef2d 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -342,6 +342,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2677,4 +2678,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
index 2dd5094f76..1f2d60151f 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 243de3cf93..c942110a45 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1395,6 +1395,7 @@ GLIBC_2.29 nl_langinfo F
 GLIBC_2.29 nl_langinfo_l F
 GLIBC_2.29 nrand48 F
 GLIBC_2.29 nrand48_r F
+GLIBC_2.29 ns_name_ntop F
 GLIBC_2.29 ntohl F
 GLIBC_2.29 ntohs F
 GLIBC_2.29 ntp_adjtime F
@@ -2477,6 +2478,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
index 2830a7efd1..eca5d43340 100644
--- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
@@ -60,7 +60,6 @@ GLIBC_2.29 ns_makecanon F
 GLIBC_2.29 ns_msg_getflag F
 GLIBC_2.29 ns_name_compress F
 GLIBC_2.29 ns_name_ntol F
-GLIBC_2.29 ns_name_ntop F
 GLIBC_2.29 ns_name_pack F
 GLIBC_2.29 ns_name_pton F
 GLIBC_2.29 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 24ae58bb6f..0aac86e1a7 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2430,6 +2430,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2694,4 +2695,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
index 157a33ce35..14c65c7a46 100644
--- a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 09bebcd5a1..9f3b9c3eac 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2614,6 +2614,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2878,4 +2879,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/i386/libresolv.abilist b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
index 157a33ce35..14c65c7a46 100644
--- a/sysdeps/unix/sysv/linux/i386/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 0bafe09253..66b25aea99 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2389,6 +2389,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2653,4 +2654,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
index 06f995151c..2eee410d23 100644
--- a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index c1fcde4c24..2ed0f16c0f 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -346,6 +346,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2659,4 +2660,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
index 2dd5094f76..1f2d60151f 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 407651cfd7..2c526fbeb9 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2557,6 +2557,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2821,4 +2822,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
index 157a33ce35..14c65c7a46 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 7da722a734..642de4f20a 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1406,6 +1406,7 @@ GLIBC_2.18 nl_langinfo F
 GLIBC_2.18 nl_langinfo_l F
 GLIBC_2.18 nrand48 F
 GLIBC_2.18 nrand48_r F
+GLIBC_2.18 ns_name_ntop F
 GLIBC_2.18 ntohl F
 GLIBC_2.18 ntohs F
 GLIBC_2.18 ntp_adjtime F
@@ -2528,6 +2529,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
index b04f0397c8..815672536e 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
@@ -67,7 +67,6 @@ GLIBC_2.18 ns_makecanon F
 GLIBC_2.18 ns_msg_getflag F
 GLIBC_2.18 ns_name_compress F
 GLIBC_2.18 ns_name_ntol F
-GLIBC_2.18 ns_name_ntop F
 GLIBC_2.18 ns_name_pack F
 GLIBC_2.18 ns_name_pton F
 GLIBC_2.18 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index c374607b81..f965ba4b7a 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1406,6 +1406,7 @@ GLIBC_2.18 nl_langinfo F
 GLIBC_2.18 nl_langinfo_l F
 GLIBC_2.18 nrand48 F
 GLIBC_2.18 nrand48_r F
+GLIBC_2.18 ns_name_ntop F
 GLIBC_2.18 ntohl F
 GLIBC_2.18 ntohs F
 GLIBC_2.18 ntp_adjtime F
@@ -2525,6 +2526,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
index b04f0397c8..815672536e 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
@@ -67,7 +67,6 @@ GLIBC_2.18 ns_makecanon F
 GLIBC_2.18 ns_msg_getflag F
 GLIBC_2.18 ns_name_compress F
 GLIBC_2.18 ns_name_ntol F
-GLIBC_2.18 ns_name_ntop F
 GLIBC_2.18 ns_name_pack F
 GLIBC_2.18 ns_name_pton F
 GLIBC_2.18 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index b1f426e053..6cbb49a0a6 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2522,6 +2522,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2782,4 +2783,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
index 157a33ce35..14c65c7a46 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 066ceb2258..9e31a75043 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2520,6 +2520,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2780,4 +2781,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 51c563ebbe..ec08230722 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2528,6 +2528,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2788,4 +2789,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
index 157a33ce35..14c65c7a46 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 28db715d8a..5b49800de2 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2440,6 +2440,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2700,4 +2701,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
index 06f995151c..2eee410d23 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index ab9f2bd42c..b3b56b48d0 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1449,6 +1449,7 @@ GLIBC_2.21 nl_langinfo F
 GLIBC_2.21 nl_langinfo_l F
 GLIBC_2.21 nrand48 F
 GLIBC_2.21 nrand48_r F
+GLIBC_2.21 ns_name_ntop F
 GLIBC_2.21 ntohl F
 GLIBC_2.21 ntohs F
 GLIBC_2.21 ntp_adjtime F
@@ -2567,6 +2568,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
index 2a2bec433f..b1b08bb486 100644
--- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
@@ -67,7 +67,6 @@ GLIBC_2.21 ns_makecanon F
 GLIBC_2.21 ns_msg_getflag F
 GLIBC_2.21 ns_name_compress F
 GLIBC_2.21 ns_name_ntol F
-GLIBC_2.21 ns_name_ntop F
 GLIBC_2.21 ns_name_pack F
 GLIBC_2.21 ns_name_pton F
 GLIBC_2.21 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 83f8513e17..4ba6e125d4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2584,6 +2584,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -3019,4 +3020,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
index 157a33ce35..14c65c7a46 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 0fad357bf6..7df9632595 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2617,6 +2617,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -3064,4 +3065,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 424ec8d953..ed2254e1bc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2353,6 +2353,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2788,4 +2789,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
index 15f30deb34..c998d17d81 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 9909fd0e9a..5fc091daee 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1492,6 +1492,7 @@ GLIBC_2.17 nl_langinfo F
 GLIBC_2.17 nl_langinfo_l F
 GLIBC_2.17 nrand48 F
 GLIBC_2.17 nrand48_r F
+GLIBC_2.17 ns_name_ntop F
 GLIBC_2.17 ntohl F
 GLIBC_2.17 ntohs F
 GLIBC_2.17 ntp_adjtime F
@@ -2648,6 +2649,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
index f7fdd26bd1..0a93c2cc44 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
@@ -67,7 +67,6 @@ GLIBC_2.17 ns_makecanon F
 GLIBC_2.17 ns_msg_getflag F
 GLIBC_2.17 ns_name_compress F
 GLIBC_2.17 ns_name_ntol F
-GLIBC_2.17 ns_name_ntop F
 GLIBC_2.17 ns_name_pack F
 GLIBC_2.17 ns_name_pton F
 GLIBC_2.17 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 7085989b16..0d0acca43e 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1340,6 +1340,7 @@ GLIBC_2.33 nl_langinfo F
 GLIBC_2.33 nl_langinfo_l F
 GLIBC_2.33 nrand48 F
 GLIBC_2.33 nrand48_r F
+GLIBC_2.33 ns_name_ntop F
 GLIBC_2.33 ntohl F
 GLIBC_2.33 ntohs F
 GLIBC_2.33 ntp_adjtime F
@@ -2213,6 +2214,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
index 43947f7e27..a3af26db78 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
@@ -60,7 +60,6 @@ GLIBC_2.33 ns_makecanon F
 GLIBC_2.33 ns_msg_getflag F
 GLIBC_2.33 ns_name_compress F
 GLIBC_2.33 ns_name_ntol F
-GLIBC_2.33 ns_name_ntop F
 GLIBC_2.33 ns_name_pack F
 GLIBC_2.33 ns_name_pton F
 GLIBC_2.33 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index a855997957..8b543e9297 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1387,6 +1387,7 @@ GLIBC_2.27 nl_langinfo F
 GLIBC_2.27 nl_langinfo_l F
 GLIBC_2.27 nrand48 F
 GLIBC_2.27 nrand48_r F
+GLIBC_2.27 ns_name_ntop F
 GLIBC_2.27 ntohl F
 GLIBC_2.27 ntohs F
 GLIBC_2.27 ntp_adjtime F
@@ -2413,6 +2414,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
index eb9c1cb747..0d4bd6855b 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
@@ -60,7 +60,6 @@ GLIBC_2.27 ns_makecanon F
 GLIBC_2.27 ns_msg_getflag F
 GLIBC_2.27 ns_name_compress F
 GLIBC_2.27 ns_name_ntol F
-GLIBC_2.27 ns_name_ntop F
 GLIBC_2.27 ns_name_pack F
 GLIBC_2.27 ns_name_pton F
 GLIBC_2.27 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 12aeb82520..a488eb5848 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2582,6 +2582,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -3027,6 +3028,7 @@ GLIBC_2.9 getutxid F
 GLIBC_2.9 getutxline F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 login F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
 GLIBC_2.9 pututline F
 GLIBC_2.9 pututxline F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
index 157a33ce35..14c65c7a46 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index e2d746ad5f..e43003703e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2390,6 +2390,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2823,4 +2824,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
index dcc4de5f55..548e92b846 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 1ce4b54bf2..788bd7f0e7 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2437,6 +2437,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2701,4 +2702,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
index 157a33ce35..14c65c7a46 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 7d01add713..bd709fd9be 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2434,6 +2434,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2698,4 +2699,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
index 157a33ce35..14c65c7a46 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index b5ef3247d7..32a270aad2 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2577,6 +2577,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -3036,4 +3037,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
index 157a33ce35..14c65c7a46 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 14ae7c8417..1b39ca35f6 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2412,6 +2412,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2676,4 +2677,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
index 06f995151c..2eee410d23 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 57c4f28d17..d9c9ed1aa0 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2368,6 +2368,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2632,4 +2633,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
index 61d6b2b853..954af66409 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 47211abe4e..784f3c948d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1411,6 +1411,7 @@ GLIBC_2.16 nl_langinfo F
 GLIBC_2.16 nl_langinfo_l F
 GLIBC_2.16 nrand48 F
 GLIBC_2.16 nrand48_r F
+GLIBC_2.16 ns_name_ntop F
 GLIBC_2.16 ntohl F
 GLIBC_2.16 ntohs F
 GLIBC_2.16 ntp_adjtime F
@@ -2467,6 +2468,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
index 2457bc9d49..79b4bbdd98 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
@@ -67,7 +67,6 @@ GLIBC_2.16 ns_makecanon F
 GLIBC_2.16 ns_msg_getflag F
 GLIBC_2.16 ns_name_compress F
 GLIBC_2.16 ns_name_ntol F
-GLIBC_2.16 ns_name_ntop F
 GLIBC_2.16 ns_name_pack F
 GLIBC_2.16 ns_name_pton F
 GLIBC_2.16 ns_name_rollback F
-- 
2.31.1



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

* [PATCH 06/30] resolv: Move ns_name_unpack to its own file and into libc
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (4 preceding siblings ...)
  2021-07-02 18:47 ` [PATCH 05/30] resolv: Move ns_name_ntop to its own file and into libc Florian Weimer
@ 2021-07-02 18:48 ` Florian Weimer
  2021-07-02 18:48 ` [PATCH 07/30] resolv: Move ns_name_skip " Florian Weimer
                   ` (23 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:48 UTC (permalink / raw)
  To: libc-alpha

Reformat to GNU style. Avoid out-of-bounds buffer arithmetic.
Eliminate the labellen function.

The symbol was moved using scripts/move-symbol-to-libc.py.
---
 include/arpa/nameser.h                        |   3 +-
 resolv/Makefile                               |   1 +
 resolv/Versions                               |   5 +-
 resolv/ns_name.c                              |  81 ------------
 resolv/ns_name_unpack.c                       | 115 ++++++++++++++++++
 sysdeps/mach/hurd/i386/libc.abilist           |   2 +
 sysdeps/mach/hurd/i386/libresolv.abilist      |   1 -
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |   2 +
 .../unix/sysv/linux/aarch64/libresolv.abilist |   1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |   2 +
 .../unix/sysv/linux/alpha/libresolv.abilist   |   1 -
 sysdeps/unix/sysv/linux/arc/libc.abilist      |   2 +
 sysdeps/unix/sysv/linux/arc/libresolv.abilist |   1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |   2 +
 .../unix/sysv/linux/arm/be/libresolv.abilist  |   1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |   2 +
 .../unix/sysv/linux/arm/le/libresolv.abilist  |   1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist     |   2 +
 .../unix/sysv/linux/csky/libresolv.abilist    |   1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |   2 +
 .../unix/sysv/linux/hppa/libresolv.abilist    |   1 -
 sysdeps/unix/sysv/linux/i386/libc.abilist     |   2 +
 .../unix/sysv/linux/i386/libresolv.abilist    |   1 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |   2 +
 .../unix/sysv/linux/ia64/libresolv.abilist    |   1 -
 .../sysv/linux/m68k/coldfire/libc.abilist     |   2 +
 .../linux/m68k/coldfire/libresolv.abilist     |   1 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |   2 +
 .../sysv/linux/m68k/m680x0/libresolv.abilist  |   1 -
 .../sysv/linux/microblaze/be/libc.abilist     |   2 +
 .../linux/microblaze/be/libresolv.abilist     |   1 -
 .../sysv/linux/microblaze/le/libc.abilist     |   2 +
 .../linux/microblaze/le/libresolv.abilist     |   1 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |   2 +
 .../sysv/linux/mips/mips32/libresolv.abilist  |   1 -
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |   2 +
 .../sysv/linux/mips/mips64/n32/libc.abilist   |   2 +
 .../linux/mips/mips64/n32/libresolv.abilist   |   1 -
 .../sysv/linux/mips/mips64/n64/libc.abilist   |   2 +
 .../linux/mips/mips64/n64/libresolv.abilist   |   1 -
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |   2 +
 .../unix/sysv/linux/nios2/libresolv.abilist   |   1 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |   2 +
 .../linux/powerpc/powerpc32/libresolv.abilist |   1 -
 .../powerpc/powerpc32/nofpu/libc.abilist      |   2 +
 .../linux/powerpc/powerpc64/be/libc.abilist   |   2 +
 .../powerpc/powerpc64/be/libresolv.abilist    |   1 -
 .../linux/powerpc/powerpc64/le/libc.abilist   |   2 +
 .../powerpc/powerpc64/le/libresolv.abilist    |   1 -
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |   2 +
 .../sysv/linux/riscv/rv32/libresolv.abilist   |   1 -
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |   2 +
 .../sysv/linux/riscv/rv64/libresolv.abilist   |   1 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist |   2 +
 .../sysv/linux/s390/s390-32/libresolv.abilist |   1 -
 .../unix/sysv/linux/s390/s390-64/libc.abilist |   2 +
 .../sysv/linux/s390/s390-64/libresolv.abilist |   1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |   2 +
 .../unix/sysv/linux/sh/be/libresolv.abilist   |   1 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |   2 +
 .../unix/sysv/linux/sh/le/libresolv.abilist   |   1 -
 .../sysv/linux/sparc/sparc32/libc.abilist     |   2 +
 .../linux/sparc/sparc32/libresolv.abilist     |   1 -
 .../sysv/linux/sparc/sparc64/libc.abilist     |   2 +
 .../linux/sparc/sparc64/libresolv.abilist     |   1 -
 .../unix/sysv/linux/x86_64/64/libc.abilist    |   2 +
 .../sysv/linux/x86_64/64/libresolv.abilist    |   1 -
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |   2 +
 .../sysv/linux/x86_64/x32/libresolv.abilist   |   1 -
 69 files changed, 187 insertions(+), 115 deletions(-)
 create mode 100644 resolv/ns_name_unpack.c

diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
index f1a696514a..2396a43030 100644
--- a/include/arpa/nameser.h
+++ b/include/arpa/nameser.h
@@ -68,7 +68,6 @@ libresolv_hidden_proto (ns_parserr)
 libresolv_hidden_proto (ns_name_pton)
 libresolv_hidden_proto (ns_name_pack)
 libresolv_hidden_proto (ns_name_skip)
-libresolv_hidden_proto (ns_name_unpack)
 libresolv_hidden_proto (ns_name_compress)
 libresolv_hidden_proto (ns_name_uncompress)
 libresolv_hidden_proto (ns_sprintrr)
@@ -80,6 +79,8 @@ libresolv_hidden_proto (ns_format_ttl)
 
 extern __typeof (ns_name_ntop) __ns_name_ntop;
 libc_hidden_proto (__ns_name_ntop)
+extern __typeof (ns_name_unpack) __ns_name_unpack;
+libc_hidden_proto (__ns_name_unpack)
 
 # endif /* !_ISOMAC */
 #endif
diff --git a/resolv/Makefile b/resolv/Makefile
index bb16175654..469a9a55ae 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -33,6 +33,7 @@ routines := \
   inet_ntop \
   inet_pton \
   ns_name_ntop \
+  ns_name_unpack \
   nsap_addr \
   res-close \
   res-state \
diff --git a/resolv/Versions b/resolv/Versions
index 4bf1a13d48..9b5c4d9733 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -26,6 +26,7 @@ libc {
   }
   GLIBC_2.9 {
     ns_name_ntop;
+    ns_name_unpack;
   }
   GLIBC_2.34 {
 %if PTHREAD_IN_LIBC
@@ -35,6 +36,7 @@ libc {
     getaddrinfo_a;
 %endif
     ns_name_ntop;
+    ns_name_unpack;
   }
   GLIBC_PRIVATE {
 %if !PTHREAD_IN_LIBC
@@ -45,6 +47,7 @@ libc {
     __inet_pton_length;
     __res_iclose;
     __ns_name_ntop;
+    __ns_name_unpack;
     __resolv_context_get;
     __resolv_context_get_override;
     __resolv_context_get_preinit;
@@ -147,7 +150,6 @@ libresolv {
     ns_name_rollback;
     ns_name_skip;
     ns_name_uncompress;
-    ns_name_unpack;
     ns_parse_ttl;
     ns_parserr;
     ns_put16;
@@ -162,7 +164,6 @@ libresolv {
   GLIBC_PRIVATE {
     __ns_get16;
     __ns_get32;
-    __ns_name_unpack;
     __res_context_hostalias;
     __res_context_query;
     __res_context_search;
diff --git a/resolv/ns_name.c b/resolv/ns_name.c
index 4990003746..a0d541f110 100644
--- a/resolv/ns_name.c
+++ b/resolv/ns_name.c
@@ -217,87 +217,6 @@ ns_name_ntol(const u_char *src, u_char *dst, size_t dstsiz)
 	return (dn - dst);
 }
 
-/*%
- *	Unpack a domain name from a message, source may be compressed.
- *
- * return:
- *\li	-1 if it fails, or consumed octets if it succeeds.
- */
-int
-ns_name_unpack(const u_char *msg, const u_char *eom, const u_char *src,
-	       u_char *dst, size_t dstsiz)
-{
-	const u_char *srcp, *dstlim;
-	u_char *dstp;
-	int n, len, checked, l;
-
-	len = -1;
-	checked = 0;
-	dstp = dst;
-	srcp = src;
-	dstlim = dst + dstsiz;
-	if (srcp < msg || srcp >= eom) {
-		__set_errno (EMSGSIZE);
-		return (-1);
-	}
-	/* Fetch next label in domain name. */
-	while ((n = *srcp++) != 0) {
-		/* Check for indirection. */
-		switch (n & NS_CMPRSFLGS) {
-		case 0:
-			/* Limit checks. */
-			if ((l = labellen(srcp - 1)) < 0) {
-				__set_errno (EMSGSIZE);
-				return(-1);
-			}
-			if (dstp + l + 1 >= dstlim || srcp + l >= eom) {
-				__set_errno (EMSGSIZE);
-				return (-1);
-			}
-			checked += l + 1;
-			*dstp++ = n;
-			memcpy(dstp, srcp, l);
-			dstp += l;
-			srcp += l;
-			break;
-
-		case NS_CMPRSFLGS:
-			if (srcp >= eom) {
-				__set_errno (EMSGSIZE);
-				return (-1);
-			}
-			if (len < 0)
-				len = srcp - src + 1;
-			srcp = msg + (((n & 0x3f) << 8) | (*srcp & 0xff));
-			if (srcp < msg || srcp >= eom) {  /*%< Out of range. */
-				__set_errno (EMSGSIZE);
-				return (-1);
-			}
-			checked += 2;
-			/*
-			 * Check for loops in the compressed name;
-			 * if we've looked at the whole message,
-			 * there must be a loop.
-			 */
-			if (checked >= eom - msg) {
-				__set_errno (EMSGSIZE);
-				return (-1);
-			}
-			break;
-
-		default:
-			__set_errno (EMSGSIZE);
-			return (-1);			/*%< flag error */
-		}
-	}
-	*dstp = '\0';
-	if (len < 0)
-		len = srcp - src;
-	return (len);
-}
-libresolv_hidden_def (ns_name_unpack)
-strong_alias (ns_name_unpack, __ns_name_unpack)
-
 /*%
  *	Pack domain name 'domain' into 'comp_dn'.
  *
diff --git a/resolv/ns_name_unpack.c b/resolv/ns_name_unpack.c
new file mode 100644
index 0000000000..1c1dd3ee8a
--- /dev/null
+++ b/resolv/ns_name_unpack.c
@@ -0,0 +1,115 @@
+/* De-compressing DNS domain names into binary-encoded uncompressed name.
+ * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1996,1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <errno.h>
+#include <shlib-compat.h>
+#include <stddef.h>
+#include <string.h>
+
+/* Unpack a domain name from a message, source may be compressed.
+   Returns -1 if it fails, or consumed octets if it succeeds.  */
+int
+___ns_name_unpack (const unsigned char *msg, const unsigned char *eom,
+                   const unsigned char *src, unsigned char *dst, size_t dstsiz)
+{
+  const unsigned char *srcp, *dstlim;
+  unsigned char *dstp;
+  int n, len, checked;
+
+  len = -1;
+  checked = 0;
+  dstp = dst;
+  srcp = src;
+  dstlim = dst + dstsiz;
+  if (srcp < msg || srcp >= eom)
+    {
+      __set_errno (EMSGSIZE);
+      return -1;
+    }
+  /* Fetch next label in domain name.  */
+  while ((n = *srcp++) != 0)
+    {
+      /* Check for indirection.  */
+      switch (n & NS_CMPRSFLGS)
+        {
+        case 0:
+          /* Limit checks.  */
+          if (n >= 64)
+            {
+              __set_errno (EMSGSIZE);
+              return -1;
+            }
+          /* NB: n + 1 and >= to cover the *dstp = '\0' assignment
+             below.  */
+          if (n + 1 >= dstlim - dstp || n >= eom - srcp)
+            {
+              __set_errno (EMSGSIZE);
+              return -1;
+            }
+          checked += n + 1;
+          *dstp++ = n;
+          memcpy (dstp, srcp, n);
+          dstp += n;
+          srcp += n;
+          break;
+
+        case NS_CMPRSFLGS:
+          if (srcp >= eom)
+            {
+              __set_errno (EMSGSIZE);
+              return -1;
+            }
+          if (len < 0)
+            len = srcp - src + 1;
+          {
+            int target = ((n & 0x3f) << 8) | *srcp;
+            if (target >= eom - msg)
+              {
+              /* Out of range.  */
+                __set_errno (EMSGSIZE);
+                return -1;
+            }
+            srcp = msg + target;
+          }
+          checked += 2;
+          /* Check for loops in the compressed name; if we've looked
+             at the whole message, there must be a loop.  */
+          if (checked >= eom - msg)
+            {
+              __set_errno (EMSGSIZE);
+              return -1;
+            }
+          break;
+
+        default:
+          __set_errno (EMSGSIZE);
+          return -1;
+        }
+    }
+  *dstp = '\0';
+  if (len < 0)
+    len = srcp - src;
+  return len;
+}
+versioned_symbol (libc, ___ns_name_unpack, ns_name_unpack, GLIBC_2_34);
+versioned_symbol (libc, ___ns_name_unpack, __ns_name_unpack, GLIBC_PRIVATE);
+libc_hidden_ver (___ns_name_unpack, __ns_name_unpack)
+
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_9, GLIBC_2_34)
+compat_symbol (libresolv, ___ns_name_unpack, ns_name_unpack, GLIBC_2_9);
+#endif
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index a2cb340469..6576db7c4d 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2241,6 +2241,7 @@ GLIBC_2.34 login_tty F
 GLIBC_2.34 logout F
 GLIBC_2.34 logwtmp F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 shm_open F
 GLIBC_2.34 shm_unlink F
@@ -2362,6 +2363,7 @@ GLIBC_2.8 __vdprintf_chk F
 GLIBC_2.8 qsort_r F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
 HURD_CTHREADS_0.3 __cthread_getspecific F
 HURD_CTHREADS_0.3 __cthread_keycreate F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index 63a07a6073..ac0ee33f74 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 93d92cdaca..c2d693f2f0 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1405,6 +1405,7 @@ GLIBC_2.17 nl_langinfo_l F
 GLIBC_2.17 nrand48 F
 GLIBC_2.17 nrand48_r F
 GLIBC_2.17 ns_name_ntop F
+GLIBC_2.17 ns_name_unpack F
 GLIBC_2.17 ntohl F
 GLIBC_2.17 ntohs F
 GLIBC_2.17 ntp_adjtime F
@@ -2454,6 +2455,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
index 0a93c2cc44..088a380288 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.17 ns_name_pton F
 GLIBC_2.17 ns_name_rollback F
 GLIBC_2.17 ns_name_skip F
 GLIBC_2.17 ns_name_uncompress F
-GLIBC_2.17 ns_name_unpack F
 GLIBC_2.17 ns_parse_ttl F
 GLIBC_2.17 ns_parserr F
 GLIBC_2.17 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index f5d0f5de75..a2ff93883b 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2552,6 +2552,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2986,4 +2987,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
index 2eee410d23..96bfcda497 100644
--- a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index de804efa24..27c6976a46 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1339,6 +1339,7 @@ GLIBC_2.32 nl_langinfo_l F
 GLIBC_2.32 nrand48 F
 GLIBC_2.32 nrand48_r F
 GLIBC_2.32 ns_name_ntop F
+GLIBC_2.32 ns_name_unpack F
 GLIBC_2.32 ntohl F
 GLIBC_2.32 ntohs F
 GLIBC_2.32 ntp_adjtime F
@@ -2213,6 +2214,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
index 232146e7db..a2a3b33098 100644
--- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
@@ -65,7 +65,6 @@ GLIBC_2.32 ns_name_pton F
 GLIBC_2.32 ns_name_rollback F
 GLIBC_2.32 ns_name_skip F
 GLIBC_2.32 ns_name_uncompress F
-GLIBC_2.32 ns_name_unpack F
 GLIBC_2.32 ns_parse_ttl F
 GLIBC_2.32 ns_parserr F
 GLIBC_2.32 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index f5283ee8fa..60fa3cf095 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -346,6 +346,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2682,4 +2683,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
index 1f2d60151f..b65f928a24 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index bb59edef2d..ca34bb6485 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -343,6 +343,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2679,4 +2680,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
index 1f2d60151f..b65f928a24 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index c942110a45..3d72b025f7 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1396,6 +1396,7 @@ GLIBC_2.29 nl_langinfo_l F
 GLIBC_2.29 nrand48 F
 GLIBC_2.29 nrand48_r F
 GLIBC_2.29 ns_name_ntop F
+GLIBC_2.29 ns_name_unpack F
 GLIBC_2.29 ntohl F
 GLIBC_2.29 ntohs F
 GLIBC_2.29 ntp_adjtime F
@@ -2479,6 +2480,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
index eca5d43340..706af86332 100644
--- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
@@ -65,7 +65,6 @@ GLIBC_2.29 ns_name_pton F
 GLIBC_2.29 ns_name_rollback F
 GLIBC_2.29 ns_name_skip F
 GLIBC_2.29 ns_name_uncompress F
-GLIBC_2.29 ns_name_unpack F
 GLIBC_2.29 ns_parse_ttl F
 GLIBC_2.29 ns_parserr F
 GLIBC_2.29 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 0aac86e1a7..591f412f6e 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2431,6 +2431,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2696,4 +2697,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
index 14c65c7a46..65c4147299 100644
--- a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 9f3b9c3eac..1420001c57 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2615,6 +2615,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2880,4 +2881,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/i386/libresolv.abilist b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
index 14c65c7a46..65c4147299 100644
--- a/sysdeps/unix/sysv/linux/i386/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 66b25aea99..b82cc6f8cc 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2390,6 +2390,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2655,4 +2656,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
index 2eee410d23..96bfcda497 100644
--- a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 2ed0f16c0f..807148d95b 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -347,6 +347,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2661,4 +2662,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
index 1f2d60151f..b65f928a24 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 2c526fbeb9..e4d6c93f39 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2558,6 +2558,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2823,4 +2824,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
index 14c65c7a46..65c4147299 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 642de4f20a..611936ad63 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1407,6 +1407,7 @@ GLIBC_2.18 nl_langinfo_l F
 GLIBC_2.18 nrand48 F
 GLIBC_2.18 nrand48_r F
 GLIBC_2.18 ns_name_ntop F
+GLIBC_2.18 ns_name_unpack F
 GLIBC_2.18 ntohl F
 GLIBC_2.18 ntohs F
 GLIBC_2.18 ntp_adjtime F
@@ -2530,6 +2531,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
index 815672536e..b37f89df02 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.18 ns_name_pton F
 GLIBC_2.18 ns_name_rollback F
 GLIBC_2.18 ns_name_skip F
 GLIBC_2.18 ns_name_uncompress F
-GLIBC_2.18 ns_name_unpack F
 GLIBC_2.18 ns_parse_ttl F
 GLIBC_2.18 ns_parserr F
 GLIBC_2.18 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index f965ba4b7a..fb7cfa746c 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1407,6 +1407,7 @@ GLIBC_2.18 nl_langinfo_l F
 GLIBC_2.18 nrand48 F
 GLIBC_2.18 nrand48_r F
 GLIBC_2.18 ns_name_ntop F
+GLIBC_2.18 ns_name_unpack F
 GLIBC_2.18 ntohl F
 GLIBC_2.18 ntohs F
 GLIBC_2.18 ntp_adjtime F
@@ -2527,6 +2528,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
index 815672536e..b37f89df02 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.18 ns_name_pton F
 GLIBC_2.18 ns_name_rollback F
 GLIBC_2.18 ns_name_skip F
 GLIBC_2.18 ns_name_uncompress F
-GLIBC_2.18 ns_name_unpack F
 GLIBC_2.18 ns_parse_ttl F
 GLIBC_2.18 ns_parserr F
 GLIBC_2.18 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 6cbb49a0a6..a3a67222d8 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2523,6 +2523,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2784,4 +2785,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
index 14c65c7a46..65c4147299 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 9e31a75043..e4ac77fbf6 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2521,6 +2521,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2782,4 +2783,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index ec08230722..ba7732f9af 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2529,6 +2529,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2790,4 +2791,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
index 14c65c7a46..65c4147299 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 5b49800de2..a9a18bb073 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2441,6 +2441,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2702,4 +2703,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
index 2eee410d23..96bfcda497 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index b3b56b48d0..c8e458a964 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1450,6 +1450,7 @@ GLIBC_2.21 nl_langinfo_l F
 GLIBC_2.21 nrand48 F
 GLIBC_2.21 nrand48_r F
 GLIBC_2.21 ns_name_ntop F
+GLIBC_2.21 ns_name_unpack F
 GLIBC_2.21 ntohl F
 GLIBC_2.21 ntohs F
 GLIBC_2.21 ntp_adjtime F
@@ -2569,6 +2570,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
index b1b08bb486..5440f128a1 100644
--- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.21 ns_name_pton F
 GLIBC_2.21 ns_name_rollback F
 GLIBC_2.21 ns_name_skip F
 GLIBC_2.21 ns_name_uncompress F
-GLIBC_2.21 ns_name_unpack F
 GLIBC_2.21 ns_parse_ttl F
 GLIBC_2.21 ns_parserr F
 GLIBC_2.21 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 4ba6e125d4..3596bfae1c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2585,6 +2585,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -3021,4 +3022,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
index 14c65c7a46..65c4147299 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 7df9632595..d5c8fd3e90 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2618,6 +2618,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -3066,4 +3067,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index ed2254e1bc..7cc0a01b6f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2354,6 +2354,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2790,4 +2791,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
index c998d17d81..f9615e3258 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 5fc091daee..9a34d6e81e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1493,6 +1493,7 @@ GLIBC_2.17 nl_langinfo_l F
 GLIBC_2.17 nrand48 F
 GLIBC_2.17 nrand48_r F
 GLIBC_2.17 ns_name_ntop F
+GLIBC_2.17 ns_name_unpack F
 GLIBC_2.17 ntohl F
 GLIBC_2.17 ntohs F
 GLIBC_2.17 ntp_adjtime F
@@ -2650,6 +2651,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
index 0a93c2cc44..088a380288 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.17 ns_name_pton F
 GLIBC_2.17 ns_name_rollback F
 GLIBC_2.17 ns_name_skip F
 GLIBC_2.17 ns_name_uncompress F
-GLIBC_2.17 ns_name_unpack F
 GLIBC_2.17 ns_parse_ttl F
 GLIBC_2.17 ns_parserr F
 GLIBC_2.17 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 0d0acca43e..7e61e573b1 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1341,6 +1341,7 @@ GLIBC_2.33 nl_langinfo_l F
 GLIBC_2.33 nrand48 F
 GLIBC_2.33 nrand48_r F
 GLIBC_2.33 ns_name_ntop F
+GLIBC_2.33 ns_name_unpack F
 GLIBC_2.33 ntohl F
 GLIBC_2.33 ntohs F
 GLIBC_2.33 ntp_adjtime F
@@ -2215,6 +2216,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
index a3af26db78..e7595e5a28 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
@@ -65,7 +65,6 @@ GLIBC_2.33 ns_name_pton F
 GLIBC_2.33 ns_name_rollback F
 GLIBC_2.33 ns_name_skip F
 GLIBC_2.33 ns_name_uncompress F
-GLIBC_2.33 ns_name_unpack F
 GLIBC_2.33 ns_parse_ttl F
 GLIBC_2.33 ns_parserr F
 GLIBC_2.33 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 8b543e9297..c72f03fd16 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1388,6 +1388,7 @@ GLIBC_2.27 nl_langinfo_l F
 GLIBC_2.27 nrand48 F
 GLIBC_2.27 nrand48_r F
 GLIBC_2.27 ns_name_ntop F
+GLIBC_2.27 ns_name_unpack F
 GLIBC_2.27 ntohl F
 GLIBC_2.27 ntohs F
 GLIBC_2.27 ntp_adjtime F
@@ -2415,6 +2416,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
index 0d4bd6855b..ad3fd40f6d 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
@@ -65,7 +65,6 @@ GLIBC_2.27 ns_name_pton F
 GLIBC_2.27 ns_name_rollback F
 GLIBC_2.27 ns_name_skip F
 GLIBC_2.27 ns_name_uncompress F
-GLIBC_2.27 ns_name_unpack F
 GLIBC_2.27 ns_parse_ttl F
 GLIBC_2.27 ns_parserr F
 GLIBC_2.27 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index a488eb5848..9fddfda95a 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2583,6 +2583,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -3029,6 +3030,7 @@ GLIBC_2.9 getutxline F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 login F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
 GLIBC_2.9 pututline F
 GLIBC_2.9 pututxline F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
index 14c65c7a46..65c4147299 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index e43003703e..790d53f4aa 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2391,6 +2391,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2825,4 +2826,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
index 548e92b846..5f3cac884a 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 788bd7f0e7..f7511aa5ba 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2438,6 +2438,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2703,4 +2704,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
index 14c65c7a46..65c4147299 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index bd709fd9be..4df12a41d9 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2435,6 +2435,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2700,4 +2701,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
index 14c65c7a46..65c4147299 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 32a270aad2..38d479f49b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2578,6 +2578,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -3038,4 +3039,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
index 14c65c7a46..65c4147299 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 1b39ca35f6..7c2a2ff334 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2413,6 +2413,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2678,4 +2679,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
index 2eee410d23..96bfcda497 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index d9c9ed1aa0..7c42523607 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2369,6 +2369,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2634,4 +2635,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
index 954af66409..34277a3732 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 784f3c948d..f48be0c05b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1412,6 +1412,7 @@ GLIBC_2.16 nl_langinfo_l F
 GLIBC_2.16 nrand48 F
 GLIBC_2.16 nrand48_r F
 GLIBC_2.16 ns_name_ntop F
+GLIBC_2.16 ns_name_unpack F
 GLIBC_2.16 ntohl F
 GLIBC_2.16 ntohs F
 GLIBC_2.16 ntp_adjtime F
@@ -2469,6 +2470,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
index 79b4bbdd98..16eca4411d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.16 ns_name_pton F
 GLIBC_2.16 ns_name_rollback F
 GLIBC_2.16 ns_name_skip F
 GLIBC_2.16 ns_name_uncompress F
-GLIBC_2.16 ns_name_unpack F
 GLIBC_2.16 ns_parse_ttl F
 GLIBC_2.16 ns_parserr F
 GLIBC_2.16 ns_put16 F
-- 
2.31.1



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

* [PATCH 07/30] resolv: Move ns_name_skip to its own file and into libc
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (5 preceding siblings ...)
  2021-07-02 18:48 ` [PATCH 06/30] resolv: Move ns_name_unpack " Florian Weimer
@ 2021-07-02 18:48 ` Florian Weimer
  2021-07-02 18:48 ` [PATCH 08/30] resolv: Move ns_name_uncompress into " Florian Weimer
                   ` (22 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:48 UTC (permalink / raw)
  To: libc-alpha

And reformat to GNU style.

The symbol was moved using scripts/move-symbol-to-libc.py.
---
 include/arpa/nameser.h                        |  3 +-
 resolv/Makefile                               |  1 +
 resolv/Versions                               |  5 +-
 resolv/ns_name.c                              | 37 -----------
 resolv/ns_name_skip.c                         | 62 +++++++++++++++++++
 sysdeps/mach/hurd/i386/libc.abilist           |  2 +
 sysdeps/mach/hurd/i386/libresolv.abilist      |  1 -
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  2 +
 .../unix/sysv/linux/aarch64/libresolv.abilist |  1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |  2 +
 .../unix/sysv/linux/alpha/libresolv.abilist   |  1 -
 sysdeps/unix/sysv/linux/arc/libc.abilist      |  2 +
 sysdeps/unix/sysv/linux/arc/libresolv.abilist |  1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  2 +
 .../unix/sysv/linux/arm/be/libresolv.abilist  |  1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  2 +
 .../unix/sysv/linux/arm/le/libresolv.abilist  |  1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist     |  2 +
 .../unix/sysv/linux/csky/libresolv.abilist    |  1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |  2 +
 .../unix/sysv/linux/hppa/libresolv.abilist    |  1 -
 sysdeps/unix/sysv/linux/i386/libc.abilist     |  2 +
 .../unix/sysv/linux/i386/libresolv.abilist    |  1 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |  2 +
 .../unix/sysv/linux/ia64/libresolv.abilist    |  1 -
 .../sysv/linux/m68k/coldfire/libc.abilist     |  2 +
 .../linux/m68k/coldfire/libresolv.abilist     |  1 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  2 +
 .../sysv/linux/m68k/m680x0/libresolv.abilist  |  1 -
 .../sysv/linux/microblaze/be/libc.abilist     |  2 +
 .../linux/microblaze/be/libresolv.abilist     |  1 -
 .../sysv/linux/microblaze/le/libc.abilist     |  2 +
 .../linux/microblaze/le/libresolv.abilist     |  1 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |  2 +
 .../sysv/linux/mips/mips32/libresolv.abilist  |  1 -
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |  2 +
 .../sysv/linux/mips/mips64/n32/libc.abilist   |  2 +
 .../linux/mips/mips64/n32/libresolv.abilist   |  1 -
 .../sysv/linux/mips/mips64/n64/libc.abilist   |  2 +
 .../linux/mips/mips64/n64/libresolv.abilist   |  1 -
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |  2 +
 .../unix/sysv/linux/nios2/libresolv.abilist   |  1 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |  2 +
 .../linux/powerpc/powerpc32/libresolv.abilist |  1 -
 .../powerpc/powerpc32/nofpu/libc.abilist      |  2 +
 .../linux/powerpc/powerpc64/be/libc.abilist   |  2 +
 .../powerpc/powerpc64/be/libresolv.abilist    |  1 -
 .../linux/powerpc/powerpc64/le/libc.abilist   |  2 +
 .../powerpc/powerpc64/le/libresolv.abilist    |  1 -
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |  2 +
 .../sysv/linux/riscv/rv32/libresolv.abilist   |  1 -
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |  2 +
 .../sysv/linux/riscv/rv64/libresolv.abilist   |  1 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist |  2 +
 .../sysv/linux/s390/s390-32/libresolv.abilist |  1 -
 .../unix/sysv/linux/s390/s390-64/libc.abilist |  2 +
 .../sysv/linux/s390/s390-64/libresolv.abilist |  1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  2 +
 .../unix/sysv/linux/sh/be/libresolv.abilist   |  1 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  2 +
 .../unix/sysv/linux/sh/le/libresolv.abilist   |  1 -
 .../sysv/linux/sparc/sparc32/libc.abilist     |  2 +
 .../linux/sparc/sparc32/libresolv.abilist     |  1 -
 .../sysv/linux/sparc/sparc64/libc.abilist     |  2 +
 .../linux/sparc/sparc64/libresolv.abilist     |  1 -
 .../unix/sysv/linux/x86_64/64/libc.abilist    |  2 +
 .../sysv/linux/x86_64/64/libresolv.abilist    |  1 -
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |  2 +
 .../sysv/linux/x86_64/x32/libresolv.abilist   |  1 -
 69 files changed, 135 insertions(+), 70 deletions(-)
 create mode 100644 resolv/ns_name_skip.c

diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
index 2396a43030..c4ec0aaf7a 100644
--- a/include/arpa/nameser.h
+++ b/include/arpa/nameser.h
@@ -67,7 +67,6 @@ libresolv_hidden_proto (ns_skiprr)
 libresolv_hidden_proto (ns_parserr)
 libresolv_hidden_proto (ns_name_pton)
 libresolv_hidden_proto (ns_name_pack)
-libresolv_hidden_proto (ns_name_skip)
 libresolv_hidden_proto (ns_name_compress)
 libresolv_hidden_proto (ns_name_uncompress)
 libresolv_hidden_proto (ns_sprintrr)
@@ -79,6 +78,8 @@ libresolv_hidden_proto (ns_format_ttl)
 
 extern __typeof (ns_name_ntop) __ns_name_ntop;
 libc_hidden_proto (__ns_name_ntop)
+extern __typeof (ns_name_skip) __ns_name_skip;
+libc_hidden_proto (__ns_name_skip)
 extern __typeof (ns_name_unpack) __ns_name_unpack;
 libc_hidden_proto (__ns_name_unpack)
 
diff --git a/resolv/Makefile b/resolv/Makefile
index 469a9a55ae..91ce46a3b9 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -33,6 +33,7 @@ routines := \
   inet_ntop \
   inet_pton \
   ns_name_ntop \
+  ns_name_skip \
   ns_name_unpack \
   nsap_addr \
   res-close \
diff --git a/resolv/Versions b/resolv/Versions
index 9b5c4d9733..b075881b24 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -26,6 +26,7 @@ libc {
   }
   GLIBC_2.9 {
     ns_name_ntop;
+    ns_name_skip;
     ns_name_unpack;
   }
   GLIBC_2.34 {
@@ -36,6 +37,7 @@ libc {
     getaddrinfo_a;
 %endif
     ns_name_ntop;
+    ns_name_skip;
     ns_name_unpack;
   }
   GLIBC_PRIVATE {
@@ -45,9 +47,10 @@ libc {
     __h_errno;
     __inet_aton_exact;
     __inet_pton_length;
-    __res_iclose;
     __ns_name_ntop;
+    __ns_name_skip;
     __ns_name_unpack;
+    __res_iclose;
     __resolv_context_get;
     __resolv_context_get_override;
     __resolv_context_get_preinit;
diff --git a/resolv/ns_name.c b/resolv/ns_name.c
index a0d541f110..58d6a60ce4 100644
--- a/resolv/ns_name.c
+++ b/resolv/ns_name.c
@@ -397,43 +397,6 @@ ns_name_rollback(const u_char *src, const u_char **dnptrs,
 	}
 }
 
-/*%
- *	Advance *ptrptr to skip over the compressed name it points at.
- *
- * return:
- *\li	0 on success, -1 (with errno set) on failure.
- */
-int
-ns_name_skip(const u_char **ptrptr, const u_char *eom)
-{
-	const u_char *cp;
-	u_int n;
-
-	cp = *ptrptr;
-	while (cp < eom && (n = *cp++) != 0) {
-		/* Check for indirection. */
-		switch (n & NS_CMPRSFLGS) {
-		case 0:			/*%< normal case, n == len */
-			cp += n;
-			continue;
-		case NS_CMPRSFLGS:	/*%< indirection */
-			cp++;
-			break;
-		default:		/*%< illegal type */
-			__set_errno (EMSGSIZE);
-			return (-1);
-		}
-		break;
-	}
-	if (cp > eom) {
-		__set_errno (EMSGSIZE);
-		return (-1);
-	}
-	*ptrptr = cp;
-	return (0);
-}
-libresolv_hidden_def (ns_name_skip)
-
 /* Private. */
 
 /*%
diff --git a/resolv/ns_name_skip.c b/resolv/ns_name_skip.c
new file mode 100644
index 0000000000..66dd2b6334
--- /dev/null
+++ b/resolv/ns_name_skip.c
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1996,1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <errno.h>
+#include <shlib-compat.h>
+
+/* Advances *PTRPTR to skip over the compressed name it points at.
+   Returns 0 on success, -1 (with errno set) on failure.  */
+int
+___ns_name_skip (const unsigned char **ptrptr, const unsigned char *eom)
+{
+  const unsigned char *cp;
+  unsigned int n;
+
+  cp = *ptrptr;
+  while ((n = *cp++) != 0)
+    {
+      /* Check for indirection.  */
+      switch (n & NS_CMPRSFLGS)
+        {
+        case 0:                 /* Normal case, n == len.  */
+          cp += n;
+          continue;
+        case NS_CMPRSFLGS:      /* Indirection.  */
+          cp++;
+          break;
+        default:                /* Illegal type.  */
+          __set_errno (EMSGSIZE);
+          return -1;
+        }
+      break;
+    }
+  if (cp > eom)
+    {
+      __set_errno (EMSGSIZE);
+      return -1;
+    }
+  *ptrptr = cp;
+  return 0;
+}
+versioned_symbol (libc, ___ns_name_skip, ns_name_skip, GLIBC_2_34);
+versioned_symbol (libc, ___ns_name_skip, __ns_name_skip, GLIBC_PRIVATE);
+libc_hidden_ver (___ns_name_skip, __ns_name_skip)
+
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_9, GLIBC_2_34)
+compat_symbol (libresolv, ___ns_name_skip, ns_name_skip, GLIBC_2_9);
+#endif
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 6576db7c4d..2d8ef7235e 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2241,6 +2241,7 @@ GLIBC_2.34 login_tty F
 GLIBC_2.34 logout F
 GLIBC_2.34 logwtmp F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 shm_open F
@@ -2363,6 +2364,7 @@ GLIBC_2.8 __vdprintf_chk F
 GLIBC_2.8 qsort_r F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
 HURD_CTHREADS_0.3 __cthread_getspecific F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index ac0ee33f74..adb8afdfdb 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index c2d693f2f0..ba3aab1742 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1405,6 +1405,7 @@ GLIBC_2.17 nl_langinfo_l F
 GLIBC_2.17 nrand48 F
 GLIBC_2.17 nrand48_r F
 GLIBC_2.17 ns_name_ntop F
+GLIBC_2.17 ns_name_skip F
 GLIBC_2.17 ns_name_unpack F
 GLIBC_2.17 ntohl F
 GLIBC_2.17 ntohs F
@@ -2455,6 +2456,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
index 088a380288..0c18a1077e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.17 ns_name_ntol F
 GLIBC_2.17 ns_name_pack F
 GLIBC_2.17 ns_name_pton F
 GLIBC_2.17 ns_name_rollback F
-GLIBC_2.17 ns_name_skip F
 GLIBC_2.17 ns_name_uncompress F
 GLIBC_2.17 ns_parse_ttl F
 GLIBC_2.17 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index a2ff93883b..8f2fd3c5e4 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2552,6 +2552,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2987,5 +2988,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
index 96bfcda497..e37222f6fd 100644
--- a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 27c6976a46..c4ffab96fa 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1339,6 +1339,7 @@ GLIBC_2.32 nl_langinfo_l F
 GLIBC_2.32 nrand48 F
 GLIBC_2.32 nrand48_r F
 GLIBC_2.32 ns_name_ntop F
+GLIBC_2.32 ns_name_skip F
 GLIBC_2.32 ns_name_unpack F
 GLIBC_2.32 ntohl F
 GLIBC_2.32 ntohs F
@@ -2214,6 +2215,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
index a2a3b33098..ebaa6c47e5 100644
--- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
@@ -63,7 +63,6 @@ GLIBC_2.32 ns_name_ntol F
 GLIBC_2.32 ns_name_pack F
 GLIBC_2.32 ns_name_pton F
 GLIBC_2.32 ns_name_rollback F
-GLIBC_2.32 ns_name_skip F
 GLIBC_2.32 ns_name_uncompress F
 GLIBC_2.32 ns_parse_ttl F
 GLIBC_2.32 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 60fa3cf095..4abd12bca2 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -346,6 +346,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2683,5 +2684,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
index b65f928a24..95f13ba713 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index ca34bb6485..1b0c7a3250 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -343,6 +343,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2680,5 +2681,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
index b65f928a24..95f13ba713 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 3d72b025f7..6addd514bf 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1396,6 +1396,7 @@ GLIBC_2.29 nl_langinfo_l F
 GLIBC_2.29 nrand48 F
 GLIBC_2.29 nrand48_r F
 GLIBC_2.29 ns_name_ntop F
+GLIBC_2.29 ns_name_skip F
 GLIBC_2.29 ns_name_unpack F
 GLIBC_2.29 ntohl F
 GLIBC_2.29 ntohs F
@@ -2480,6 +2481,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
index 706af86332..d12b2546a3 100644
--- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
@@ -63,7 +63,6 @@ GLIBC_2.29 ns_name_ntol F
 GLIBC_2.29 ns_name_pack F
 GLIBC_2.29 ns_name_pton F
 GLIBC_2.29 ns_name_rollback F
-GLIBC_2.29 ns_name_skip F
 GLIBC_2.29 ns_name_uncompress F
 GLIBC_2.29 ns_parse_ttl F
 GLIBC_2.29 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 591f412f6e..84a04631ea 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2431,6 +2431,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2697,5 +2698,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
index 65c4147299..28c1c23789 100644
--- a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 1420001c57..90cf2d3138 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2615,6 +2615,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2881,5 +2882,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/i386/libresolv.abilist b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
index 65c4147299..28c1c23789 100644
--- a/sysdeps/unix/sysv/linux/i386/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index b82cc6f8cc..f3f85b0d10 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2390,6 +2390,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2656,5 +2657,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
index 96bfcda497..e37222f6fd 100644
--- a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 807148d95b..f6f32eec89 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -347,6 +347,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2662,5 +2663,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
index b65f928a24..95f13ba713 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index e4d6c93f39..972cfeb648 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2558,6 +2558,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2824,5 +2825,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
index 65c4147299..28c1c23789 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 611936ad63..60a6928320 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1407,6 +1407,7 @@ GLIBC_2.18 nl_langinfo_l F
 GLIBC_2.18 nrand48 F
 GLIBC_2.18 nrand48_r F
 GLIBC_2.18 ns_name_ntop F
+GLIBC_2.18 ns_name_skip F
 GLIBC_2.18 ns_name_unpack F
 GLIBC_2.18 ntohl F
 GLIBC_2.18 ntohs F
@@ -2531,6 +2532,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
index b37f89df02..36c1e1477d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.18 ns_name_ntol F
 GLIBC_2.18 ns_name_pack F
 GLIBC_2.18 ns_name_pton F
 GLIBC_2.18 ns_name_rollback F
-GLIBC_2.18 ns_name_skip F
 GLIBC_2.18 ns_name_uncompress F
 GLIBC_2.18 ns_parse_ttl F
 GLIBC_2.18 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index fb7cfa746c..66365f9e92 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1407,6 +1407,7 @@ GLIBC_2.18 nl_langinfo_l F
 GLIBC_2.18 nrand48 F
 GLIBC_2.18 nrand48_r F
 GLIBC_2.18 ns_name_ntop F
+GLIBC_2.18 ns_name_skip F
 GLIBC_2.18 ns_name_unpack F
 GLIBC_2.18 ntohl F
 GLIBC_2.18 ntohs F
@@ -2528,6 +2529,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
index b37f89df02..36c1e1477d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.18 ns_name_ntol F
 GLIBC_2.18 ns_name_pack F
 GLIBC_2.18 ns_name_pton F
 GLIBC_2.18 ns_name_rollback F
-GLIBC_2.18 ns_name_skip F
 GLIBC_2.18 ns_name_uncompress F
 GLIBC_2.18 ns_parse_ttl F
 GLIBC_2.18 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index a3a67222d8..f5840e5a8f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2523,6 +2523,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2785,5 +2786,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
index 65c4147299..28c1c23789 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index e4ac77fbf6..da44311ef7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2521,6 +2521,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2783,5 +2784,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index ba7732f9af..4359063108 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2529,6 +2529,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2791,5 +2792,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
index 65c4147299..28c1c23789 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index a9a18bb073..bfb58ba430 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2441,6 +2441,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2703,5 +2704,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
index 96bfcda497..e37222f6fd 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index c8e458a964..8cd1d14f50 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1450,6 +1450,7 @@ GLIBC_2.21 nl_langinfo_l F
 GLIBC_2.21 nrand48 F
 GLIBC_2.21 nrand48_r F
 GLIBC_2.21 ns_name_ntop F
+GLIBC_2.21 ns_name_skip F
 GLIBC_2.21 ns_name_unpack F
 GLIBC_2.21 ntohl F
 GLIBC_2.21 ntohs F
@@ -2570,6 +2571,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
index 5440f128a1..6a3ee63c15 100644
--- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.21 ns_name_ntol F
 GLIBC_2.21 ns_name_pack F
 GLIBC_2.21 ns_name_pton F
 GLIBC_2.21 ns_name_rollback F
-GLIBC_2.21 ns_name_skip F
 GLIBC_2.21 ns_name_uncompress F
 GLIBC_2.21 ns_parse_ttl F
 GLIBC_2.21 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 3596bfae1c..494ed87932 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2585,6 +2585,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -3022,5 +3023,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
index 65c4147299..28c1c23789 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index d5c8fd3e90..5e1104f83b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2618,6 +2618,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -3067,5 +3068,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 7cc0a01b6f..25646dfcd9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2354,6 +2354,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2791,5 +2792,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
index f9615e3258..264da9339e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 9a34d6e81e..13c914b7eb 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1493,6 +1493,7 @@ GLIBC_2.17 nl_langinfo_l F
 GLIBC_2.17 nrand48 F
 GLIBC_2.17 nrand48_r F
 GLIBC_2.17 ns_name_ntop F
+GLIBC_2.17 ns_name_skip F
 GLIBC_2.17 ns_name_unpack F
 GLIBC_2.17 ntohl F
 GLIBC_2.17 ntohs F
@@ -2651,6 +2652,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
index 088a380288..0c18a1077e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.17 ns_name_ntol F
 GLIBC_2.17 ns_name_pack F
 GLIBC_2.17 ns_name_pton F
 GLIBC_2.17 ns_name_rollback F
-GLIBC_2.17 ns_name_skip F
 GLIBC_2.17 ns_name_uncompress F
 GLIBC_2.17 ns_parse_ttl F
 GLIBC_2.17 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 7e61e573b1..192915b5d6 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1341,6 +1341,7 @@ GLIBC_2.33 nl_langinfo_l F
 GLIBC_2.33 nrand48 F
 GLIBC_2.33 nrand48_r F
 GLIBC_2.33 ns_name_ntop F
+GLIBC_2.33 ns_name_skip F
 GLIBC_2.33 ns_name_unpack F
 GLIBC_2.33 ntohl F
 GLIBC_2.33 ntohs F
@@ -2216,6 +2217,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
index e7595e5a28..ac64eed3e8 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
@@ -63,7 +63,6 @@ GLIBC_2.33 ns_name_ntol F
 GLIBC_2.33 ns_name_pack F
 GLIBC_2.33 ns_name_pton F
 GLIBC_2.33 ns_name_rollback F
-GLIBC_2.33 ns_name_skip F
 GLIBC_2.33 ns_name_uncompress F
 GLIBC_2.33 ns_parse_ttl F
 GLIBC_2.33 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index c72f03fd16..b4f240850e 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1388,6 +1388,7 @@ GLIBC_2.27 nl_langinfo_l F
 GLIBC_2.27 nrand48 F
 GLIBC_2.27 nrand48_r F
 GLIBC_2.27 ns_name_ntop F
+GLIBC_2.27 ns_name_skip F
 GLIBC_2.27 ns_name_unpack F
 GLIBC_2.27 ntohl F
 GLIBC_2.27 ntohs F
@@ -2416,6 +2417,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
index ad3fd40f6d..1b0a9f7284 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
@@ -63,7 +63,6 @@ GLIBC_2.27 ns_name_ntol F
 GLIBC_2.27 ns_name_pack F
 GLIBC_2.27 ns_name_pton F
 GLIBC_2.27 ns_name_rollback F
-GLIBC_2.27 ns_name_skip F
 GLIBC_2.27 ns_name_uncompress F
 GLIBC_2.27 ns_parse_ttl F
 GLIBC_2.27 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 9fddfda95a..40162ab9ab 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2583,6 +2583,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -3030,6 +3031,7 @@ GLIBC_2.9 getutxline F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 login F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
 GLIBC_2.9 pututline F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
index 65c4147299..28c1c23789 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 790d53f4aa..2b6a4abf37 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2391,6 +2391,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2826,5 +2827,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
index 5f3cac884a..966c1c948d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index f7511aa5ba..a9b9024109 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2438,6 +2438,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2704,5 +2705,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
index 65c4147299..28c1c23789 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 4df12a41d9..dfdc1f2bb4 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2435,6 +2435,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2701,5 +2702,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
index 65c4147299..28c1c23789 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 38d479f49b..3a1e00eac3 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2578,6 +2578,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -3039,5 +3040,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
index 65c4147299..28c1c23789 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 7c2a2ff334..8f9735f128 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2413,6 +2413,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2679,5 +2680,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
index 96bfcda497..e37222f6fd 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 7c42523607..7b4e20be82 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2369,6 +2369,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2635,5 +2636,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
index 34277a3732..0505e06cc4 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index f48be0c05b..9a663683ae 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1412,6 +1412,7 @@ GLIBC_2.16 nl_langinfo_l F
 GLIBC_2.16 nrand48 F
 GLIBC_2.16 nrand48_r F
 GLIBC_2.16 ns_name_ntop F
+GLIBC_2.16 ns_name_skip F
 GLIBC_2.16 ns_name_unpack F
 GLIBC_2.16 ntohl F
 GLIBC_2.16 ntohs F
@@ -2470,6 +2471,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
index 16eca4411d..db2942840e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.16 ns_name_ntol F
 GLIBC_2.16 ns_name_pack F
 GLIBC_2.16 ns_name_pton F
 GLIBC_2.16 ns_name_rollback F
-GLIBC_2.16 ns_name_skip F
 GLIBC_2.16 ns_name_uncompress F
 GLIBC_2.16 ns_parse_ttl F
 GLIBC_2.16 ns_parserr F
-- 
2.31.1



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

* [PATCH 08/30] resolv: Move ns_name_uncompress into its own file and into libc
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (6 preceding siblings ...)
  2021-07-02 18:48 ` [PATCH 07/30] resolv: Move ns_name_skip " Florian Weimer
@ 2021-07-02 18:48 ` Florian Weimer
  2021-07-02 18:48 ` [PATCH 09/30] resolv: Move ns_name_pton " Florian Weimer
                   ` (21 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:48 UTC (permalink / raw)
  To: libc-alpha

And reformat to GNU style.  Check for negative error returns
(instead of -1).

The symbol was moved using scripts/move-symbol-to-libc.py.
---
 include/arpa/nameser.h                        |  3 +-
 resolv/Makefile                               |  1 +
 resolv/Versions                               |  4 +-
 resolv/ns_name.c                              | 24 ----------
 resolv/ns_name_uncompress.c                   | 45 +++++++++++++++++++
 sysdeps/mach/hurd/i386/libc.abilist           |  2 +
 sysdeps/mach/hurd/i386/libresolv.abilist      |  1 -
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  2 +
 .../unix/sysv/linux/aarch64/libresolv.abilist |  1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |  2 +
 .../unix/sysv/linux/alpha/libresolv.abilist   |  1 -
 sysdeps/unix/sysv/linux/arc/libc.abilist      |  2 +
 sysdeps/unix/sysv/linux/arc/libresolv.abilist |  1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  2 +
 .../unix/sysv/linux/arm/be/libresolv.abilist  |  1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  2 +
 .../unix/sysv/linux/arm/le/libresolv.abilist  |  1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist     |  2 +
 .../unix/sysv/linux/csky/libresolv.abilist    |  1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |  2 +
 .../unix/sysv/linux/hppa/libresolv.abilist    |  1 -
 sysdeps/unix/sysv/linux/i386/libc.abilist     |  2 +
 .../unix/sysv/linux/i386/libresolv.abilist    |  1 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |  2 +
 .../unix/sysv/linux/ia64/libresolv.abilist    |  1 -
 .../sysv/linux/m68k/coldfire/libc.abilist     |  2 +
 .../linux/m68k/coldfire/libresolv.abilist     |  1 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  2 +
 .../sysv/linux/m68k/m680x0/libresolv.abilist  |  1 -
 .../sysv/linux/microblaze/be/libc.abilist     |  2 +
 .../linux/microblaze/be/libresolv.abilist     |  1 -
 .../sysv/linux/microblaze/le/libc.abilist     |  2 +
 .../linux/microblaze/le/libresolv.abilist     |  1 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |  2 +
 .../sysv/linux/mips/mips32/libresolv.abilist  |  1 -
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |  2 +
 .../sysv/linux/mips/mips64/n32/libc.abilist   |  2 +
 .../linux/mips/mips64/n32/libresolv.abilist   |  1 -
 .../sysv/linux/mips/mips64/n64/libc.abilist   |  2 +
 .../linux/mips/mips64/n64/libresolv.abilist   |  1 -
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |  2 +
 .../unix/sysv/linux/nios2/libresolv.abilist   |  1 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |  2 +
 .../linux/powerpc/powerpc32/libresolv.abilist |  1 -
 .../powerpc/powerpc32/nofpu/libc.abilist      |  2 +
 .../linux/powerpc/powerpc64/be/libc.abilist   |  2 +
 .../powerpc/powerpc64/be/libresolv.abilist    |  1 -
 .../linux/powerpc/powerpc64/le/libc.abilist   |  2 +
 .../powerpc/powerpc64/le/libresolv.abilist    |  1 -
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |  2 +
 .../sysv/linux/riscv/rv32/libresolv.abilist   |  1 -
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |  2 +
 .../sysv/linux/riscv/rv64/libresolv.abilist   |  1 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist |  2 +
 .../sysv/linux/s390/s390-32/libresolv.abilist |  1 -
 .../unix/sysv/linux/s390/s390-64/libc.abilist |  2 +
 .../sysv/linux/s390/s390-64/libresolv.abilist |  1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  2 +
 .../unix/sysv/linux/sh/be/libresolv.abilist   |  1 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  2 +
 .../unix/sysv/linux/sh/le/libresolv.abilist   |  1 -
 .../sysv/linux/sparc/sparc32/libc.abilist     |  2 +
 .../linux/sparc/sparc32/libresolv.abilist     |  1 -
 .../sysv/linux/sparc/sparc64/libc.abilist     |  2 +
 .../linux/sparc/sparc64/libresolv.abilist     |  1 -
 .../unix/sysv/linux/x86_64/64/libc.abilist    |  2 +
 .../sysv/linux/x86_64/64/libresolv.abilist    |  1 -
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |  2 +
 .../sysv/linux/x86_64/x32/libresolv.abilist   |  1 -
 69 files changed, 117 insertions(+), 57 deletions(-)
 create mode 100644 resolv/ns_name_uncompress.c

diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
index c4ec0aaf7a..dcceff823d 100644
--- a/include/arpa/nameser.h
+++ b/include/arpa/nameser.h
@@ -68,7 +68,6 @@ libresolv_hidden_proto (ns_parserr)
 libresolv_hidden_proto (ns_name_pton)
 libresolv_hidden_proto (ns_name_pack)
 libresolv_hidden_proto (ns_name_compress)
-libresolv_hidden_proto (ns_name_uncompress)
 libresolv_hidden_proto (ns_sprintrr)
 libresolv_hidden_proto (ns_sprintrrf)
 libresolv_hidden_proto (ns_samedomain)
@@ -80,6 +79,8 @@ extern __typeof (ns_name_ntop) __ns_name_ntop;
 libc_hidden_proto (__ns_name_ntop)
 extern __typeof (ns_name_skip) __ns_name_skip;
 libc_hidden_proto (__ns_name_skip)
+extern __typeof (ns_name_uncompress) __ns_name_uncompress;
+libc_hidden_proto (__ns_name_uncompress)
 extern __typeof (ns_name_unpack) __ns_name_unpack;
 libc_hidden_proto (__ns_name_unpack)
 
diff --git a/resolv/Makefile b/resolv/Makefile
index 91ce46a3b9..3145ddebb7 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -34,6 +34,7 @@ routines := \
   inet_pton \
   ns_name_ntop \
   ns_name_skip \
+  ns_name_uncompress \
   ns_name_unpack \
   nsap_addr \
   res-close \
diff --git a/resolv/Versions b/resolv/Versions
index b075881b24..9e8762f984 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -27,6 +27,7 @@ libc {
   GLIBC_2.9 {
     ns_name_ntop;
     ns_name_skip;
+    ns_name_uncompress;
     ns_name_unpack;
   }
   GLIBC_2.34 {
@@ -38,6 +39,7 @@ libc {
 %endif
     ns_name_ntop;
     ns_name_skip;
+    ns_name_uncompress;
     ns_name_unpack;
   }
   GLIBC_PRIVATE {
@@ -49,6 +51,7 @@ libc {
     __inet_pton_length;
     __ns_name_ntop;
     __ns_name_skip;
+    __ns_name_uncompress;
     __ns_name_unpack;
     __res_iclose;
     __resolv_context_get;
@@ -152,7 +155,6 @@ libresolv {
     ns_name_pton;
     ns_name_rollback;
     ns_name_skip;
-    ns_name_uncompress;
     ns_parse_ttl;
     ns_parserr;
     ns_put16;
diff --git a/resolv/ns_name.c b/resolv/ns_name.c
index 58d6a60ce4..35e25cbd83 100644
--- a/resolv/ns_name.c
+++ b/resolv/ns_name.c
@@ -329,30 +329,6 @@ cleanup:
 }
 libresolv_hidden_def (ns_name_pack)
 
-/*%
- *	Expand compressed domain name to presentation format.
- *
- * return:
- *\li	Number of bytes read out of `src', or -1 (with errno set).
- *
- * note:
- *\li	Root domain returns as "." not "".
- */
-int
-ns_name_uncompress(const u_char *msg, const u_char *eom, const u_char *src,
-		   char *dst, size_t dstsiz)
-{
-	u_char tmp[NS_MAXCDNAME];
-	int n;
-
-	if ((n = ns_name_unpack(msg, eom, src, tmp, sizeof tmp)) == -1)
-		return (-1);
-	if (__ns_name_ntop (tmp, dst, dstsiz) == -1)
-		return (-1);
-	return (n);
-}
-libresolv_hidden_def (ns_name_uncompress)
-
 /*%
  *	Compress a domain name into wire format, using compression pointers.
  *
diff --git a/resolv/ns_name_uncompress.c b/resolv/ns_name_uncompress.c
new file mode 100644
index 0000000000..95ecbe315b
--- /dev/null
+++ b/resolv/ns_name_uncompress.c
@@ -0,0 +1,45 @@
+/* Expand compressed domain name to presentation format.
+ * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1996,1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <shlib-compat.h>
+
+/* Expand compressed domain name to presentation format.  Returns the
+   number of bytes read out of `src', or -1 (with errno set).  The
+   root domain is returned as ".", not "".  */
+int
+___ns_name_uncompress (const unsigned char *msg, const unsigned char *eom,
+                       const unsigned char *src, char *dst, size_t dstsiz)
+{
+  unsigned char tmp[NS_MAXCDNAME];
+  int n = __ns_name_unpack (msg, eom, src, tmp, sizeof tmp);
+  if (n < 0)
+    return -1;
+  if (__ns_name_ntop (tmp, dst, dstsiz) < 0)
+    return -1;
+  return n;
+}
+versioned_symbol (libc, ___ns_name_uncompress, ns_name_uncompress,
+                  GLIBC_2_34);
+versioned_symbol (libc, ___ns_name_uncompress, __ns_name_uncompress,
+                  GLIBC_PRIVATE);
+libc_hidden_ver (___ns_name_uncompress, __ns_name_uncompress)
+
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_9, GLIBC_2_34)
+compat_symbol (libresolv, ___ns_name_uncompress, ns_name_uncompress,
+               GLIBC_2_9);
+#endif
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 2d8ef7235e..970b28eac6 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2242,6 +2242,7 @@ GLIBC_2.34 logout F
 GLIBC_2.34 logwtmp F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 shm_open F
@@ -2365,6 +2366,7 @@ GLIBC_2.8 qsort_r F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
 HURD_CTHREADS_0.3 __cthread_getspecific F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index adb8afdfdb..ca2c547a81 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index ba3aab1742..728102f238 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1406,6 +1406,7 @@ GLIBC_2.17 nrand48 F
 GLIBC_2.17 nrand48_r F
 GLIBC_2.17 ns_name_ntop F
 GLIBC_2.17 ns_name_skip F
+GLIBC_2.17 ns_name_uncompress F
 GLIBC_2.17 ns_name_unpack F
 GLIBC_2.17 ntohl F
 GLIBC_2.17 ntohs F
@@ -2457,6 +2458,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
index 0c18a1077e..f72b307b99 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.17 ns_name_ntol F
 GLIBC_2.17 ns_name_pack F
 GLIBC_2.17 ns_name_pton F
 GLIBC_2.17 ns_name_rollback F
-GLIBC_2.17 ns_name_uncompress F
 GLIBC_2.17 ns_parse_ttl F
 GLIBC_2.17 ns_parserr F
 GLIBC_2.17 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 8f2fd3c5e4..1d4c047fd9 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2553,6 +2553,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2989,5 +2990,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
index e37222f6fd..250a73e764 100644
--- a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index c4ffab96fa..370a54ae3d 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1340,6 +1340,7 @@ GLIBC_2.32 nrand48 F
 GLIBC_2.32 nrand48_r F
 GLIBC_2.32 ns_name_ntop F
 GLIBC_2.32 ns_name_skip F
+GLIBC_2.32 ns_name_uncompress F
 GLIBC_2.32 ns_name_unpack F
 GLIBC_2.32 ntohl F
 GLIBC_2.32 ntohs F
@@ -2216,6 +2217,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
index ebaa6c47e5..ed1aa0e9ed 100644
--- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
@@ -63,7 +63,6 @@ GLIBC_2.32 ns_name_ntol F
 GLIBC_2.32 ns_name_pack F
 GLIBC_2.32 ns_name_pton F
 GLIBC_2.32 ns_name_rollback F
-GLIBC_2.32 ns_name_uncompress F
 GLIBC_2.32 ns_parse_ttl F
 GLIBC_2.32 ns_parserr F
 GLIBC_2.32 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 4abd12bca2..f395ff71c8 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -347,6 +347,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2685,5 +2686,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
index 95f13ba713..ec74162ea6 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 1b0c7a3250..0075e25d27 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -344,6 +344,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2682,5 +2683,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
index 95f13ba713..ec74162ea6 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 6addd514bf..13bf741f1a 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1397,6 +1397,7 @@ GLIBC_2.29 nrand48 F
 GLIBC_2.29 nrand48_r F
 GLIBC_2.29 ns_name_ntop F
 GLIBC_2.29 ns_name_skip F
+GLIBC_2.29 ns_name_uncompress F
 GLIBC_2.29 ns_name_unpack F
 GLIBC_2.29 ntohl F
 GLIBC_2.29 ntohs F
@@ -2482,6 +2483,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
index d12b2546a3..b2a83ee8cc 100644
--- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
@@ -63,7 +63,6 @@ GLIBC_2.29 ns_name_ntol F
 GLIBC_2.29 ns_name_pack F
 GLIBC_2.29 ns_name_pton F
 GLIBC_2.29 ns_name_rollback F
-GLIBC_2.29 ns_name_uncompress F
 GLIBC_2.29 ns_parse_ttl F
 GLIBC_2.29 ns_parserr F
 GLIBC_2.29 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 84a04631ea..6158229c49 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2432,6 +2432,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2699,5 +2700,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
index 28c1c23789..3df1ec5e98 100644
--- a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 90cf2d3138..48c3dc695a 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2616,6 +2616,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2883,5 +2884,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/i386/libresolv.abilist b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
index 28c1c23789..3df1ec5e98 100644
--- a/sysdeps/unix/sysv/linux/i386/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index f3f85b0d10..7fd14347bf 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2391,6 +2391,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2658,5 +2659,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
index e37222f6fd..250a73e764 100644
--- a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index f6f32eec89..e08a972a66 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -348,6 +348,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2664,5 +2665,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
index 95f13ba713..ec74162ea6 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 972cfeb648..b7d542bbc3 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2559,6 +2559,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2826,5 +2827,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
index 28c1c23789..3df1ec5e98 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 60a6928320..9a8141144c 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1408,6 +1408,7 @@ GLIBC_2.18 nrand48 F
 GLIBC_2.18 nrand48_r F
 GLIBC_2.18 ns_name_ntop F
 GLIBC_2.18 ns_name_skip F
+GLIBC_2.18 ns_name_uncompress F
 GLIBC_2.18 ns_name_unpack F
 GLIBC_2.18 ntohl F
 GLIBC_2.18 ntohs F
@@ -2533,6 +2534,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
index 36c1e1477d..cc9fea5f46 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.18 ns_name_ntol F
 GLIBC_2.18 ns_name_pack F
 GLIBC_2.18 ns_name_pton F
 GLIBC_2.18 ns_name_rollback F
-GLIBC_2.18 ns_name_uncompress F
 GLIBC_2.18 ns_parse_ttl F
 GLIBC_2.18 ns_parserr F
 GLIBC_2.18 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 66365f9e92..ee673e6142 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1408,6 +1408,7 @@ GLIBC_2.18 nrand48 F
 GLIBC_2.18 nrand48_r F
 GLIBC_2.18 ns_name_ntop F
 GLIBC_2.18 ns_name_skip F
+GLIBC_2.18 ns_name_uncompress F
 GLIBC_2.18 ns_name_unpack F
 GLIBC_2.18 ntohl F
 GLIBC_2.18 ntohs F
@@ -2530,6 +2531,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
index 36c1e1477d..cc9fea5f46 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.18 ns_name_ntol F
 GLIBC_2.18 ns_name_pack F
 GLIBC_2.18 ns_name_pton F
 GLIBC_2.18 ns_name_rollback F
-GLIBC_2.18 ns_name_uncompress F
 GLIBC_2.18 ns_parse_ttl F
 GLIBC_2.18 ns_parserr F
 GLIBC_2.18 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index f5840e5a8f..830a736b82 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2524,6 +2524,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2787,5 +2788,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
index 28c1c23789..3df1ec5e98 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index da44311ef7..3e12309e12 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2522,6 +2522,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2785,5 +2786,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 4359063108..3788e727bb 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2530,6 +2530,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2793,5 +2794,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
index 28c1c23789..3df1ec5e98 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index bfb58ba430..61b97de489 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2442,6 +2442,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2705,5 +2706,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
index e37222f6fd..250a73e764 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 8cd1d14f50..825c1db018 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1451,6 +1451,7 @@ GLIBC_2.21 nrand48 F
 GLIBC_2.21 nrand48_r F
 GLIBC_2.21 ns_name_ntop F
 GLIBC_2.21 ns_name_skip F
+GLIBC_2.21 ns_name_uncompress F
 GLIBC_2.21 ns_name_unpack F
 GLIBC_2.21 ntohl F
 GLIBC_2.21 ntohs F
@@ -2572,6 +2573,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
index 6a3ee63c15..111b8ac423 100644
--- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.21 ns_name_ntol F
 GLIBC_2.21 ns_name_pack F
 GLIBC_2.21 ns_name_pton F
 GLIBC_2.21 ns_name_rollback F
-GLIBC_2.21 ns_name_uncompress F
 GLIBC_2.21 ns_parse_ttl F
 GLIBC_2.21 ns_parserr F
 GLIBC_2.21 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 494ed87932..d2b7d6899f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2586,6 +2586,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -3024,5 +3025,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
index 28c1c23789..3df1ec5e98 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 5e1104f83b..1c45ece2c2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2619,6 +2619,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -3069,5 +3070,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 25646dfcd9..72b86be191 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2355,6 +2355,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2793,5 +2794,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
index 264da9339e..2981f2a954 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 13c914b7eb..3881b75209 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1494,6 +1494,7 @@ GLIBC_2.17 nrand48 F
 GLIBC_2.17 nrand48_r F
 GLIBC_2.17 ns_name_ntop F
 GLIBC_2.17 ns_name_skip F
+GLIBC_2.17 ns_name_uncompress F
 GLIBC_2.17 ns_name_unpack F
 GLIBC_2.17 ntohl F
 GLIBC_2.17 ntohs F
@@ -2653,6 +2654,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
index 0c18a1077e..f72b307b99 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.17 ns_name_ntol F
 GLIBC_2.17 ns_name_pack F
 GLIBC_2.17 ns_name_pton F
 GLIBC_2.17 ns_name_rollback F
-GLIBC_2.17 ns_name_uncompress F
 GLIBC_2.17 ns_parse_ttl F
 GLIBC_2.17 ns_parserr F
 GLIBC_2.17 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 192915b5d6..9e0f3196b1 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1342,6 +1342,7 @@ GLIBC_2.33 nrand48 F
 GLIBC_2.33 nrand48_r F
 GLIBC_2.33 ns_name_ntop F
 GLIBC_2.33 ns_name_skip F
+GLIBC_2.33 ns_name_uncompress F
 GLIBC_2.33 ns_name_unpack F
 GLIBC_2.33 ntohl F
 GLIBC_2.33 ntohs F
@@ -2218,6 +2219,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
index ac64eed3e8..335ce8f16d 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
@@ -63,7 +63,6 @@ GLIBC_2.33 ns_name_ntol F
 GLIBC_2.33 ns_name_pack F
 GLIBC_2.33 ns_name_pton F
 GLIBC_2.33 ns_name_rollback F
-GLIBC_2.33 ns_name_uncompress F
 GLIBC_2.33 ns_parse_ttl F
 GLIBC_2.33 ns_parserr F
 GLIBC_2.33 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index b4f240850e..ad86b15039 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1389,6 +1389,7 @@ GLIBC_2.27 nrand48 F
 GLIBC_2.27 nrand48_r F
 GLIBC_2.27 ns_name_ntop F
 GLIBC_2.27 ns_name_skip F
+GLIBC_2.27 ns_name_uncompress F
 GLIBC_2.27 ns_name_unpack F
 GLIBC_2.27 ntohl F
 GLIBC_2.27 ntohs F
@@ -2418,6 +2419,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
index 1b0a9f7284..3410dc454d 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
@@ -63,7 +63,6 @@ GLIBC_2.27 ns_name_ntol F
 GLIBC_2.27 ns_name_pack F
 GLIBC_2.27 ns_name_pton F
 GLIBC_2.27 ns_name_rollback F
-GLIBC_2.27 ns_name_uncompress F
 GLIBC_2.27 ns_parse_ttl F
 GLIBC_2.27 ns_parserr F
 GLIBC_2.27 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 40162ab9ab..885c411cae 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2584,6 +2584,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -3032,6 +3033,7 @@ GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 login F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
 GLIBC_2.9 pututline F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
index 28c1c23789..3df1ec5e98 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 2b6a4abf37..6cfc9a1768 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2392,6 +2392,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2828,5 +2829,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
index 966c1c948d..1a5b09ba65 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index a9b9024109..2ba4b1a49c 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2439,6 +2439,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2706,5 +2707,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
index 28c1c23789..3df1ec5e98 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index dfdc1f2bb4..b261279bcc 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2436,6 +2436,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2703,5 +2704,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
index 28c1c23789..3df1ec5e98 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 3a1e00eac3..7233a0e309 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2579,6 +2579,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -3041,5 +3042,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
index 28c1c23789..3df1ec5e98 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 8f9735f128..69ab664d01 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2414,6 +2414,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2681,5 +2682,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
index e37222f6fd..250a73e764 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
@@ -80,7 +80,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 7b4e20be82..6960a00b1d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2370,6 +2370,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2637,5 +2638,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
index 0505e06cc4..9920dff1a8 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 9a663683ae..ea0024a523 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1413,6 +1413,7 @@ GLIBC_2.16 nrand48 F
 GLIBC_2.16 nrand48_r F
 GLIBC_2.16 ns_name_ntop F
 GLIBC_2.16 ns_name_skip F
+GLIBC_2.16 ns_name_uncompress F
 GLIBC_2.16 ns_name_unpack F
 GLIBC_2.16 ntohl F
 GLIBC_2.16 ntohs F
@@ -2472,6 +2473,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
index db2942840e..b441069e4b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.16 ns_name_ntol F
 GLIBC_2.16 ns_name_pack F
 GLIBC_2.16 ns_name_pton F
 GLIBC_2.16 ns_name_rollback F
-GLIBC_2.16 ns_name_uncompress F
 GLIBC_2.16 ns_parse_ttl F
 GLIBC_2.16 ns_parserr F
 GLIBC_2.16 ns_put16 F
-- 
2.31.1



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

* [PATCH 09/30] resolv: Move ns_name_pton into its own file and into libc
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (7 preceding siblings ...)
  2021-07-02 18:48 ` [PATCH 08/30] resolv: Move ns_name_uncompress into " Florian Weimer
@ 2021-07-02 18:48 ` Florian Weimer
  2021-07-02 18:48 ` [PATCH 10/30] resolv: Move ns_name_pack " Florian Weimer
                   ` (20 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:48 UTC (permalink / raw)
  To: libc-alpha

And reformat to GNU style, and eliminate the digits variable.

The symbol was moved using scripts/move-symbol-to-libc.py.
---
 include/arpa/nameser.h                        |   3 +-
 resolv/Makefile                               |   1 +
 resolv/Versions                               |   3 +
 resolv/ns_name.c                              | 125 --------------
 resolv/ns_name_pton.c                         | 157 ++++++++++++++++++
 sysdeps/mach/hurd/i386/libc.abilist           |   2 +
 sysdeps/mach/hurd/i386/libresolv.abilist      |   1 -
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |   2 +
 .../unix/sysv/linux/aarch64/libresolv.abilist |   1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |   2 +
 .../unix/sysv/linux/alpha/libresolv.abilist   |   1 -
 sysdeps/unix/sysv/linux/arc/libc.abilist      |   2 +
 sysdeps/unix/sysv/linux/arc/libresolv.abilist |   1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |   2 +
 .../unix/sysv/linux/arm/be/libresolv.abilist  |   1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |   2 +
 .../unix/sysv/linux/arm/le/libresolv.abilist  |   1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist     |   2 +
 .../unix/sysv/linux/csky/libresolv.abilist    |   1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |   2 +
 .../unix/sysv/linux/hppa/libresolv.abilist    |   1 -
 sysdeps/unix/sysv/linux/i386/libc.abilist     |   2 +
 .../unix/sysv/linux/i386/libresolv.abilist    |   1 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |   2 +
 .../unix/sysv/linux/ia64/libresolv.abilist    |   1 -
 .../sysv/linux/m68k/coldfire/libc.abilist     |   2 +
 .../linux/m68k/coldfire/libresolv.abilist     |   1 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |   2 +
 .../sysv/linux/m68k/m680x0/libresolv.abilist  |   1 -
 .../sysv/linux/microblaze/be/libc.abilist     |   2 +
 .../linux/microblaze/be/libresolv.abilist     |   1 -
 .../sysv/linux/microblaze/le/libc.abilist     |   2 +
 .../linux/microblaze/le/libresolv.abilist     |   1 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |   2 +
 .../sysv/linux/mips/mips32/libresolv.abilist  |   1 -
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |   2 +
 .../sysv/linux/mips/mips64/n32/libc.abilist   |   2 +
 .../linux/mips/mips64/n32/libresolv.abilist   |   1 -
 .../sysv/linux/mips/mips64/n64/libc.abilist   |   2 +
 .../linux/mips/mips64/n64/libresolv.abilist   |   1 -
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |   2 +
 .../unix/sysv/linux/nios2/libresolv.abilist   |   1 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |   2 +
 .../linux/powerpc/powerpc32/libresolv.abilist |   1 -
 .../powerpc/powerpc32/nofpu/libc.abilist      |   2 +
 .../linux/powerpc/powerpc64/be/libc.abilist   |   2 +
 .../powerpc/powerpc64/be/libresolv.abilist    |   1 -
 .../linux/powerpc/powerpc64/le/libc.abilist   |   2 +
 .../powerpc/powerpc64/le/libresolv.abilist    |   1 -
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |   2 +
 .../sysv/linux/riscv/rv32/libresolv.abilist   |   1 -
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |   2 +
 .../sysv/linux/riscv/rv64/libresolv.abilist   |   1 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist |   2 +
 .../sysv/linux/s390/s390-32/libresolv.abilist |   1 -
 .../unix/sysv/linux/s390/s390-64/libc.abilist |   2 +
 .../sysv/linux/s390/s390-64/libresolv.abilist |   1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |   2 +
 .../unix/sysv/linux/sh/be/libresolv.abilist   |   1 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |   2 +
 .../unix/sysv/linux/sh/le/libresolv.abilist   |   1 -
 .../sysv/linux/sparc/sparc32/libc.abilist     |   2 +
 .../linux/sparc/sparc32/libresolv.abilist     |   1 -
 .../sysv/linux/sparc/sparc64/libc.abilist     |   2 +
 .../linux/sparc/sparc64/libresolv.abilist     |   1 -
 .../unix/sysv/linux/x86_64/64/libc.abilist    |   2 +
 .../sysv/linux/x86_64/64/libresolv.abilist    |   1 -
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |   2 +
 .../sysv/linux/x86_64/x32/libresolv.abilist   |   1 -
 69 files changed, 229 insertions(+), 157 deletions(-)
 create mode 100644 resolv/ns_name_pton.c

diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
index dcceff823d..c27008b5ff 100644
--- a/include/arpa/nameser.h
+++ b/include/arpa/nameser.h
@@ -65,7 +65,6 @@ libresolv_hidden_proto (ns_put32)
 libresolv_hidden_proto (ns_initparse)
 libresolv_hidden_proto (ns_skiprr)
 libresolv_hidden_proto (ns_parserr)
-libresolv_hidden_proto (ns_name_pton)
 libresolv_hidden_proto (ns_name_pack)
 libresolv_hidden_proto (ns_name_compress)
 libresolv_hidden_proto (ns_sprintrr)
@@ -77,6 +76,8 @@ libresolv_hidden_proto (ns_format_ttl)
 
 extern __typeof (ns_name_ntop) __ns_name_ntop;
 libc_hidden_proto (__ns_name_ntop)
+extern __typeof (ns_name_pton) __ns_name_pton;
+libc_hidden_proto (__ns_name_pton)
 extern __typeof (ns_name_skip) __ns_name_skip;
 libc_hidden_proto (__ns_name_skip)
 extern __typeof (ns_name_uncompress) __ns_name_uncompress;
diff --git a/resolv/Makefile b/resolv/Makefile
index 3145ddebb7..7839e1fb3c 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -33,6 +33,7 @@ routines := \
   inet_ntop \
   inet_pton \
   ns_name_ntop \
+  ns_name_pton \
   ns_name_skip \
   ns_name_uncompress \
   ns_name_unpack \
diff --git a/resolv/Versions b/resolv/Versions
index 9e8762f984..770a2b8d6b 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -26,6 +26,7 @@ libc {
   }
   GLIBC_2.9 {
     ns_name_ntop;
+    ns_name_pton;
     ns_name_skip;
     ns_name_uncompress;
     ns_name_unpack;
@@ -38,6 +39,7 @@ libc {
     getaddrinfo_a;
 %endif
     ns_name_ntop;
+    ns_name_pton;
     ns_name_skip;
     ns_name_uncompress;
     ns_name_unpack;
@@ -50,6 +52,7 @@ libc {
     __inet_aton_exact;
     __inet_pton_length;
     __ns_name_ntop;
+    __ns_name_pton;
     __ns_name_skip;
     __ns_name_uncompress;
     __ns_name_unpack;
diff --git a/resolv/ns_name.c b/resolv/ns_name.c
index 35e25cbd83..9f7ca4a506 100644
--- a/resolv/ns_name.c
+++ b/resolv/ns_name.c
@@ -29,10 +29,6 @@
 
 # define SPRINTF(x) ((size_t)sprintf x)
 
-/* Data. */
-
-static const char	digits[] = "0123456789";
-
 /* Forward. */
 
 static int		dn_find(const u_char *, const u_char *,
@@ -42,127 +38,6 @@ static int		labellen(const u_char *);
 
 /* Public. */
 
-
-/*%
- *	Convert an ascii string into an encoded domain name as per RFC1035.
- *
- * return:
- *
- *\li	-1 if it fails
- *\li	1 if string was fully qualified
- *\li	0 is string was not fully qualified
- *
- * notes:
- *\li	Enforces label and domain length limits.
- */
-
-int
-ns_name_pton(const char *src, u_char *dst, size_t dstsiz)
-{
-	u_char *label, *bp, *eom;
-	int c, n, escaped;
-	char *cp;
-
-	escaped = 0;
-	bp = dst;
-	eom = dst + dstsiz;
-	label = bp++;
-
-	while ((c = *src++) != 0) {
-		if (escaped) {
-			if ((cp = strchr(digits, c)) != NULL) {
-				n = (cp - digits) * 100;
-				if ((c = *src++) == 0 ||
-				    (cp = strchr(digits, c)) == NULL) {
-					__set_errno (EMSGSIZE);
-					return (-1);
-				}
-				n += (cp - digits) * 10;
-				if ((c = *src++) == 0 ||
-				    (cp = strchr(digits, c)) == NULL) {
-					__set_errno (EMSGSIZE);
-					return (-1);
-				}
-				n += (cp - digits);
-				if (n > 255) {
-					__set_errno (EMSGSIZE);
-					return (-1);
-				}
-				c = n;
-			}
-			escaped = 0;
-		} else if (c == '\\') {
-			escaped = 1;
-			continue;
-		} else if (c == '.') {
-			c = (bp - label - 1);
-			if ((c & NS_CMPRSFLGS) != 0) {	/*%< Label too big. */
-				__set_errno (EMSGSIZE);
-				return (-1);
-			}
-			if (label >= eom) {
-				__set_errno (EMSGSIZE);
-				return (-1);
-			}
-			*label = c;
-			/* Fully qualified ? */
-			if (*src == '\0') {
-				if (c != 0) {
-					if (bp >= eom) {
-						__set_errno (EMSGSIZE);
-						return (-1);
-					}
-					*bp++ = '\0';
-				}
-				if ((bp - dst) > MAXCDNAME) {
-					__set_errno (EMSGSIZE);
-					return (-1);
-				}
-				return (1);
-			}
-			if (c == 0 || *src == '.') {
-				__set_errno (EMSGSIZE);
-				return (-1);
-			}
-			label = bp++;
-			continue;
-		}
-		if (bp >= eom) {
-			__set_errno (EMSGSIZE);
-			return (-1);
-		}
-		*bp++ = (u_char)c;
-	}
-	if (escaped) {
-		/* Trailing backslash.  */
-		__set_errno (EMSGSIZE);
-		return -1;
-	}
-	c = (bp - label - 1);
-	if ((c & NS_CMPRSFLGS) != 0) {		/*%< Label too big. */
-		__set_errno (EMSGSIZE);
-		return (-1);
-	}
-	if (label >= eom) {
-		__set_errno (EMSGSIZE);
-		return (-1);
-	}
-	*label = c;
-	if (c != 0) {
-		if (bp >= eom) {
-			__set_errno (EMSGSIZE);
-			return (-1);
-		}
-		*bp++ = 0;
-	}
-	if ((bp - dst) > MAXCDNAME) {	/*%< src too big */
-		__set_errno (EMSGSIZE);
-		return (-1);
-	}
-	return (0);
-}
-libresolv_hidden_def (ns_name_pton)
-
 /*%
  *	Convert a network strings labels into all lowercase.
  *
diff --git a/resolv/ns_name_pton.c b/resolv/ns_name_pton.c
new file mode 100644
index 0000000000..16f8ec8303
--- /dev/null
+++ b/resolv/ns_name_pton.c
@@ -0,0 +1,157 @@
+/* Convert a DNS domain name from presentation to wire format.
+ * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1996,1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <errno.h>
+#include <shlib-compat.h>
+
+/* Converts an ASCII string into an encoded domain name as per
+   RFC1035.  Returns -1 if it fails, 1 if string was fully qualified,
+   0 is string was not fully qualified.  Enforces label and domain
+   length limits.  */
+int
+___ns_name_pton (const char *src, unsigned char *dst, size_t dstsiz)
+{
+  unsigned char *label, *bp, *eom;
+  int c, n, escaped;
+
+  escaped = 0;
+  bp = dst;
+  eom = dst + dstsiz;
+  label = bp++;
+
+  while ((c = *src++) != 0)
+    {
+      if (escaped)
+        {
+          if ('0' <= c && c <= '9')
+            {
+              n = (c - '0') * 100;
+              if ((c = *src++) == 0 || c < '0' || c > '9')
+                {
+                  __set_errno (EMSGSIZE);
+                  return -1;
+                }
+              n += (c - '0') * 10;
+              if ((c = *src++) == 0 || c < '0' || c > '9')
+                {
+                  __set_errno (EMSGSIZE);
+                  return -1;
+                }
+              n += c - '0';
+              if (n > 255)
+                {
+                  __set_errno (EMSGSIZE);
+                  return -1;
+                }
+              c = n;
+            }
+          escaped = 0;
+        }
+      else if (c == '\\')
+        {
+          escaped = 1;
+          continue;
+        }
+      else if (c == '.')
+        {
+          c = (bp - label - 1);
+          if ((c & NS_CMPRSFLGS) != 0) /* Label too big.  */
+            {
+              __set_errno (EMSGSIZE);
+              return -1;
+            }
+          if (label >= eom)
+            {
+              __set_errno (EMSGSIZE);
+              return -1;
+            }
+          *label = c;
+          /* Fully qualified ? */
+          if (*src == '\0')
+            {
+              if (c != 0)
+                {
+                  if (bp >= eom)
+                    {
+                      __set_errno (EMSGSIZE);
+                      return -1;
+                    }
+                  *bp++ = '\0';
+                }
+              if ((bp - dst) > MAXCDNAME)
+                {
+                  __set_errno (EMSGSIZE);
+                  return -1;
+                }
+              return 1;
+            }
+          if (c == 0 || *src == '.')
+            {
+              __set_errno (EMSGSIZE);
+              return -1;
+            }
+          label = bp++;
+          continue;
+        }
+      if (bp >= eom)
+        {
+          __set_errno (EMSGSIZE);
+          return -1;
+        }
+      *bp++ = (unsigned char) c;
+    }
+  if (escaped)                  /* Trailing backslash.  */
+    {
+      __set_errno (EMSGSIZE);
+      return -1;
+    }
+  c = (bp - label - 1);
+  if ((c & NS_CMPRSFLGS) != 0)  /* Label too big.  */
+    {
+      __set_errno (EMSGSIZE);
+      return -1;
+    }
+  if (label >= eom)
+    {
+      __set_errno (EMSGSIZE);
+      return -1;
+    }
+  *label = c;
+  if (c != 0)
+    {
+      if (bp >= eom)
+        {
+          __set_errno (EMSGSIZE);
+          return -1;
+        }
+      *bp++ = 0;
+    }
+  if ((bp - dst) > MAXCDNAME)   /* src too big.  */
+    {
+      __set_errno (EMSGSIZE);
+      return -1;
+    }
+  return 0;
+}
+versioned_symbol (libc, ___ns_name_pton, ns_name_pton, GLIBC_2_34);
+versioned_symbol (libc, ___ns_name_pton, __ns_name_pton, GLIBC_PRIVATE);
+libc_hidden_ver (___ns_name_pton, __ns_name_pton)
+
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_9, GLIBC_2_34)
+compat_symbol (libresolv, ___ns_name_pton, ns_name_pton, GLIBC_2_9);
+#endif
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 970b28eac6..83b4e2a983 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2241,6 +2241,7 @@ GLIBC_2.34 login_tty F
 GLIBC_2.34 logout F
 GLIBC_2.34 logwtmp F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2365,6 +2366,7 @@ GLIBC_2.8 __vdprintf_chk F
 GLIBC_2.8 qsort_r F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index ca2c547a81..1e75aaa6d7 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -73,7 +73,6 @@ GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
-GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 728102f238..4563b50a28 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1405,6 +1405,7 @@ GLIBC_2.17 nl_langinfo_l F
 GLIBC_2.17 nrand48 F
 GLIBC_2.17 nrand48_r F
 GLIBC_2.17 ns_name_ntop F
+GLIBC_2.17 ns_name_pton F
 GLIBC_2.17 ns_name_skip F
 GLIBC_2.17 ns_name_uncompress F
 GLIBC_2.17 ns_name_unpack F
@@ -2457,6 +2458,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
index f72b307b99..9594f13195 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
@@ -68,7 +68,6 @@ GLIBC_2.17 ns_msg_getflag F
 GLIBC_2.17 ns_name_compress F
 GLIBC_2.17 ns_name_ntol F
 GLIBC_2.17 ns_name_pack F
-GLIBC_2.17 ns_name_pton F
 GLIBC_2.17 ns_name_rollback F
 GLIBC_2.17 ns_parse_ttl F
 GLIBC_2.17 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 1d4c047fd9..68f6856f69 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2552,6 +2552,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2989,6 +2990,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
index 250a73e764..b70366bcb8 100644
--- a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
@@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
-GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 370a54ae3d..67c3dbdce3 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1339,6 +1339,7 @@ GLIBC_2.32 nl_langinfo_l F
 GLIBC_2.32 nrand48 F
 GLIBC_2.32 nrand48_r F
 GLIBC_2.32 ns_name_ntop F
+GLIBC_2.32 ns_name_pton F
 GLIBC_2.32 ns_name_skip F
 GLIBC_2.32 ns_name_uncompress F
 GLIBC_2.32 ns_name_unpack F
@@ -2216,6 +2217,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
index ed1aa0e9ed..8a29165fa5 100644
--- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
@@ -61,7 +61,6 @@ GLIBC_2.32 ns_msg_getflag F
 GLIBC_2.32 ns_name_compress F
 GLIBC_2.32 ns_name_ntol F
 GLIBC_2.32 ns_name_pack F
-GLIBC_2.32 ns_name_pton F
 GLIBC_2.32 ns_name_rollback F
 GLIBC_2.32 ns_parse_ttl F
 GLIBC_2.32 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index f395ff71c8..73754fba4f 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -346,6 +346,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2685,6 +2686,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
index ec74162ea6..473a4e7a31 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
@@ -73,7 +73,6 @@ GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
-GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 0075e25d27..f63ebc7cb3 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -343,6 +343,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2682,6 +2683,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
index ec74162ea6..473a4e7a31 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
@@ -73,7 +73,6 @@ GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
-GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 13bf741f1a..2c0bf60114 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1396,6 +1396,7 @@ GLIBC_2.29 nl_langinfo_l F
 GLIBC_2.29 nrand48 F
 GLIBC_2.29 nrand48_r F
 GLIBC_2.29 ns_name_ntop F
+GLIBC_2.29 ns_name_pton F
 GLIBC_2.29 ns_name_skip F
 GLIBC_2.29 ns_name_uncompress F
 GLIBC_2.29 ns_name_unpack F
@@ -2482,6 +2483,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
index b2a83ee8cc..a88aaf06f0 100644
--- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
@@ -61,7 +61,6 @@ GLIBC_2.29 ns_msg_getflag F
 GLIBC_2.29 ns_name_compress F
 GLIBC_2.29 ns_name_ntol F
 GLIBC_2.29 ns_name_pack F
-GLIBC_2.29 ns_name_pton F
 GLIBC_2.29 ns_name_rollback F
 GLIBC_2.29 ns_parse_ttl F
 GLIBC_2.29 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 6158229c49..8448356587 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2431,6 +2431,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2699,6 +2700,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
index 3df1ec5e98..2bf26b6a56 100644
--- a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
@@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
-GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 48c3dc695a..f22ab6c53d 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2615,6 +2615,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2883,6 +2884,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/i386/libresolv.abilist b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
index 3df1ec5e98..2bf26b6a56 100644
--- a/sysdeps/unix/sysv/linux/i386/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
@@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
-GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 7fd14347bf..377207be95 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2390,6 +2390,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2658,6 +2659,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
index 250a73e764..b70366bcb8 100644
--- a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
@@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
-GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index e08a972a66..4d6d664316 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -347,6 +347,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2664,6 +2665,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
index ec74162ea6..473a4e7a31 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
@@ -73,7 +73,6 @@ GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
-GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index b7d542bbc3..da9ce56b69 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2558,6 +2558,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2826,6 +2827,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
index 3df1ec5e98..2bf26b6a56 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
@@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
-GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 9a8141144c..97adac5893 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1407,6 +1407,7 @@ GLIBC_2.18 nl_langinfo_l F
 GLIBC_2.18 nrand48 F
 GLIBC_2.18 nrand48_r F
 GLIBC_2.18 ns_name_ntop F
+GLIBC_2.18 ns_name_pton F
 GLIBC_2.18 ns_name_skip F
 GLIBC_2.18 ns_name_uncompress F
 GLIBC_2.18 ns_name_unpack F
@@ -2533,6 +2534,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
index cc9fea5f46..600e164088 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
@@ -68,7 +68,6 @@ GLIBC_2.18 ns_msg_getflag F
 GLIBC_2.18 ns_name_compress F
 GLIBC_2.18 ns_name_ntol F
 GLIBC_2.18 ns_name_pack F
-GLIBC_2.18 ns_name_pton F
 GLIBC_2.18 ns_name_rollback F
 GLIBC_2.18 ns_parse_ttl F
 GLIBC_2.18 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index ee673e6142..68ab96f994 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1407,6 +1407,7 @@ GLIBC_2.18 nl_langinfo_l F
 GLIBC_2.18 nrand48 F
 GLIBC_2.18 nrand48_r F
 GLIBC_2.18 ns_name_ntop F
+GLIBC_2.18 ns_name_pton F
 GLIBC_2.18 ns_name_skip F
 GLIBC_2.18 ns_name_uncompress F
 GLIBC_2.18 ns_name_unpack F
@@ -2530,6 +2531,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
index cc9fea5f46..600e164088 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
@@ -68,7 +68,6 @@ GLIBC_2.18 ns_msg_getflag F
 GLIBC_2.18 ns_name_compress F
 GLIBC_2.18 ns_name_ntol F
 GLIBC_2.18 ns_name_pack F
-GLIBC_2.18 ns_name_pton F
 GLIBC_2.18 ns_name_rollback F
 GLIBC_2.18 ns_parse_ttl F
 GLIBC_2.18 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 830a736b82..113e54f1de 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2523,6 +2523,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2787,6 +2788,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
index 3df1ec5e98..2bf26b6a56 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
@@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
-GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 3e12309e12..9592cf6437 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2521,6 +2521,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2785,6 +2786,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 3788e727bb..aabf111daa 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2529,6 +2529,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2793,6 +2794,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
index 3df1ec5e98..2bf26b6a56 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
@@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
-GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 61b97de489..e1fcbb0a09 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2441,6 +2441,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2705,6 +2706,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
index 250a73e764..b70366bcb8 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
@@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
-GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 825c1db018..66c24aef19 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1450,6 +1450,7 @@ GLIBC_2.21 nl_langinfo_l F
 GLIBC_2.21 nrand48 F
 GLIBC_2.21 nrand48_r F
 GLIBC_2.21 ns_name_ntop F
+GLIBC_2.21 ns_name_pton F
 GLIBC_2.21 ns_name_skip F
 GLIBC_2.21 ns_name_uncompress F
 GLIBC_2.21 ns_name_unpack F
@@ -2572,6 +2573,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
index 111b8ac423..704da254df 100644
--- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
@@ -68,7 +68,6 @@ GLIBC_2.21 ns_msg_getflag F
 GLIBC_2.21 ns_name_compress F
 GLIBC_2.21 ns_name_ntol F
 GLIBC_2.21 ns_name_pack F
-GLIBC_2.21 ns_name_pton F
 GLIBC_2.21 ns_name_rollback F
 GLIBC_2.21 ns_parse_ttl F
 GLIBC_2.21 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index d2b7d6899f..aab404a525 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2585,6 +2585,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -3024,6 +3025,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
index 3df1ec5e98..2bf26b6a56 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
@@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
-GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 1c45ece2c2..4ae25d7c6e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2618,6 +2618,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -3069,6 +3070,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 72b86be191..2a07bcc76e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2354,6 +2354,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2793,6 +2794,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
index 2981f2a954..2c34859a4a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
@@ -73,7 +73,6 @@ GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
-GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 3881b75209..a7d05fb856 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1493,6 +1493,7 @@ GLIBC_2.17 nl_langinfo_l F
 GLIBC_2.17 nrand48 F
 GLIBC_2.17 nrand48_r F
 GLIBC_2.17 ns_name_ntop F
+GLIBC_2.17 ns_name_pton F
 GLIBC_2.17 ns_name_skip F
 GLIBC_2.17 ns_name_uncompress F
 GLIBC_2.17 ns_name_unpack F
@@ -2653,6 +2654,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
index f72b307b99..9594f13195 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
@@ -68,7 +68,6 @@ GLIBC_2.17 ns_msg_getflag F
 GLIBC_2.17 ns_name_compress F
 GLIBC_2.17 ns_name_ntol F
 GLIBC_2.17 ns_name_pack F
-GLIBC_2.17 ns_name_pton F
 GLIBC_2.17 ns_name_rollback F
 GLIBC_2.17 ns_parse_ttl F
 GLIBC_2.17 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 9e0f3196b1..c70f9f1e3e 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1341,6 +1341,7 @@ GLIBC_2.33 nl_langinfo_l F
 GLIBC_2.33 nrand48 F
 GLIBC_2.33 nrand48_r F
 GLIBC_2.33 ns_name_ntop F
+GLIBC_2.33 ns_name_pton F
 GLIBC_2.33 ns_name_skip F
 GLIBC_2.33 ns_name_uncompress F
 GLIBC_2.33 ns_name_unpack F
@@ -2218,6 +2219,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
index 335ce8f16d..3f04c43022 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
@@ -61,7 +61,6 @@ GLIBC_2.33 ns_msg_getflag F
 GLIBC_2.33 ns_name_compress F
 GLIBC_2.33 ns_name_ntol F
 GLIBC_2.33 ns_name_pack F
-GLIBC_2.33 ns_name_pton F
 GLIBC_2.33 ns_name_rollback F
 GLIBC_2.33 ns_parse_ttl F
 GLIBC_2.33 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index ad86b15039..e7d3506a71 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1388,6 +1388,7 @@ GLIBC_2.27 nl_langinfo_l F
 GLIBC_2.27 nrand48 F
 GLIBC_2.27 nrand48_r F
 GLIBC_2.27 ns_name_ntop F
+GLIBC_2.27 ns_name_pton F
 GLIBC_2.27 ns_name_skip F
 GLIBC_2.27 ns_name_uncompress F
 GLIBC_2.27 ns_name_unpack F
@@ -2418,6 +2419,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
index 3410dc454d..b546012c1b 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
@@ -61,7 +61,6 @@ GLIBC_2.27 ns_msg_getflag F
 GLIBC_2.27 ns_name_compress F
 GLIBC_2.27 ns_name_ntol F
 GLIBC_2.27 ns_name_pack F
-GLIBC_2.27 ns_name_pton F
 GLIBC_2.27 ns_name_rollback F
 GLIBC_2.27 ns_parse_ttl F
 GLIBC_2.27 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 885c411cae..08f927f183 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2583,6 +2583,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -3032,6 +3033,7 @@ GLIBC_2.9 getutxline F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 login F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
index 3df1ec5e98..2bf26b6a56 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
@@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
-GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 6cfc9a1768..81eb55e2f2 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2391,6 +2391,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2828,6 +2829,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
index 1a5b09ba65..ef165535ce 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
@@ -73,7 +73,6 @@ GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
-GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 2ba4b1a49c..ccf139a82f 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2438,6 +2438,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2706,6 +2707,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
index 3df1ec5e98..2bf26b6a56 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
@@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
-GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index b261279bcc..15531cdaf7 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2435,6 +2435,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2703,6 +2704,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
index 3df1ec5e98..2bf26b6a56 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
@@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
-GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 7233a0e309..aa1361ad8f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2578,6 +2578,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -3041,6 +3042,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
index 3df1ec5e98..2bf26b6a56 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
@@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
-GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 69ab664d01..d31472ecbc 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2413,6 +2413,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2681,6 +2682,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
index 250a73e764..b70366bcb8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
@@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
-GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 6960a00b1d..1fa1a56c61 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2369,6 +2369,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2637,6 +2638,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
index 9920dff1a8..2fced73187 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
@@ -73,7 +73,6 @@ GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
-GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index ea0024a523..659b3c0af2 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1412,6 +1412,7 @@ GLIBC_2.16 nl_langinfo_l F
 GLIBC_2.16 nrand48 F
 GLIBC_2.16 nrand48_r F
 GLIBC_2.16 ns_name_ntop F
+GLIBC_2.16 ns_name_pton F
 GLIBC_2.16 ns_name_skip F
 GLIBC_2.16 ns_name_uncompress F
 GLIBC_2.16 ns_name_unpack F
@@ -2472,6 +2473,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
index b441069e4b..2f70944024 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
@@ -68,7 +68,6 @@ GLIBC_2.16 ns_msg_getflag F
 GLIBC_2.16 ns_name_compress F
 GLIBC_2.16 ns_name_ntol F
 GLIBC_2.16 ns_name_pack F
-GLIBC_2.16 ns_name_pton F
 GLIBC_2.16 ns_name_rollback F
 GLIBC_2.16 ns_parse_ttl F
 GLIBC_2.16 ns_parserr F
-- 
2.31.1



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

* [PATCH 10/30] resolv: Move ns_name_pack into its own file and into libc
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (8 preceding siblings ...)
  2021-07-02 18:48 ` [PATCH 09/30] resolv: Move ns_name_pton " Florian Weimer
@ 2021-07-02 18:48 ` Florian Weimer
  2021-07-02 18:48 ` [PATCH 11/30] resolv: Move ns_name_compress " Florian Weimer
                   ` (19 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:48 UTC (permalink / raw)
  To: libc-alpha

And reformat to GNU style, and eliminate the labellen function.

The symbol was moved using scripts/move-symbol-to-libc.py.
---
 include/arpa/nameser.h                        |   3 +-
 resolv/Makefile                               |   1 +
 resolv/Versions                               |   4 +-
 resolv/ns_name.c                              | 194 -----------------
 resolv/ns_name_pack.c                         | 202 ++++++++++++++++++
 sysdeps/mach/hurd/i386/libc.abilist           |   2 +
 sysdeps/mach/hurd/i386/libresolv.abilist      |   1 -
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |   2 +
 .../unix/sysv/linux/aarch64/libresolv.abilist |   1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |   2 +
 .../unix/sysv/linux/alpha/libresolv.abilist   |   1 -
 sysdeps/unix/sysv/linux/arc/libc.abilist      |   2 +
 sysdeps/unix/sysv/linux/arc/libresolv.abilist |   1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |   2 +
 .../unix/sysv/linux/arm/be/libresolv.abilist  |   1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |   2 +
 .../unix/sysv/linux/arm/le/libresolv.abilist  |   1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist     |   2 +
 .../unix/sysv/linux/csky/libresolv.abilist    |   1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |   2 +
 .../unix/sysv/linux/hppa/libresolv.abilist    |   1 -
 sysdeps/unix/sysv/linux/i386/libc.abilist     |   2 +
 .../unix/sysv/linux/i386/libresolv.abilist    |   1 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |   2 +
 .../unix/sysv/linux/ia64/libresolv.abilist    |   1 -
 .../sysv/linux/m68k/coldfire/libc.abilist     |   2 +
 .../linux/m68k/coldfire/libresolv.abilist     |   1 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |   2 +
 .../sysv/linux/m68k/m680x0/libresolv.abilist  |   1 -
 .../sysv/linux/microblaze/be/libc.abilist     |   2 +
 .../linux/microblaze/be/libresolv.abilist     |   1 -
 .../sysv/linux/microblaze/le/libc.abilist     |   2 +
 .../linux/microblaze/le/libresolv.abilist     |   1 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |   2 +
 .../sysv/linux/mips/mips32/libresolv.abilist  |   1 -
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |   2 +
 .../sysv/linux/mips/mips64/n32/libc.abilist   |   2 +
 .../linux/mips/mips64/n32/libresolv.abilist   |   1 -
 .../sysv/linux/mips/mips64/n64/libc.abilist   |   2 +
 .../linux/mips/mips64/n64/libresolv.abilist   |   1 -
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |   2 +
 .../unix/sysv/linux/nios2/libresolv.abilist   |   1 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |   2 +
 .../linux/powerpc/powerpc32/libresolv.abilist |   1 -
 .../powerpc/powerpc32/nofpu/libc.abilist      |   2 +
 .../linux/powerpc/powerpc64/be/libc.abilist   |   2 +
 .../powerpc/powerpc64/be/libresolv.abilist    |   1 -
 .../linux/powerpc/powerpc64/le/libc.abilist   |   2 +
 .../powerpc/powerpc64/le/libresolv.abilist    |   1 -
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |   2 +
 .../sysv/linux/riscv/rv32/libresolv.abilist   |   1 -
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |   2 +
 .../sysv/linux/riscv/rv64/libresolv.abilist   |   1 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist |   2 +
 .../sysv/linux/s390/s390-32/libresolv.abilist |   1 -
 .../unix/sysv/linux/s390/s390-64/libc.abilist |   2 +
 .../sysv/linux/s390/s390-64/libresolv.abilist |   1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |   2 +
 .../unix/sysv/linux/sh/be/libresolv.abilist   |   1 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |   2 +
 .../unix/sysv/linux/sh/le/libresolv.abilist   |   1 -
 .../sysv/linux/sparc/sparc32/libc.abilist     |   2 +
 .../linux/sparc/sparc32/libresolv.abilist     |   1 -
 .../sysv/linux/sparc/sparc64/libc.abilist     |   2 +
 .../linux/sparc/sparc64/libresolv.abilist     |   1 -
 .../unix/sysv/linux/x86_64/64/libc.abilist    |   2 +
 .../sysv/linux/x86_64/64/libresolv.abilist    |   1 -
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |   2 +
 .../sysv/linux/x86_64/x32/libresolv.abilist   |   1 -
 69 files changed, 274 insertions(+), 227 deletions(-)
 create mode 100644 resolv/ns_name_pack.c

diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
index c27008b5ff..02d7b0b553 100644
--- a/include/arpa/nameser.h
+++ b/include/arpa/nameser.h
@@ -65,7 +65,6 @@ libresolv_hidden_proto (ns_put32)
 libresolv_hidden_proto (ns_initparse)
 libresolv_hidden_proto (ns_skiprr)
 libresolv_hidden_proto (ns_parserr)
-libresolv_hidden_proto (ns_name_pack)
 libresolv_hidden_proto (ns_name_compress)
 libresolv_hidden_proto (ns_sprintrr)
 libresolv_hidden_proto (ns_sprintrrf)
@@ -76,6 +75,8 @@ libresolv_hidden_proto (ns_format_ttl)
 
 extern __typeof (ns_name_ntop) __ns_name_ntop;
 libc_hidden_proto (__ns_name_ntop)
+extern __typeof (ns_name_pack) __ns_name_pack;
+libc_hidden_proto (__ns_name_pack)
 extern __typeof (ns_name_pton) __ns_name_pton;
 libc_hidden_proto (__ns_name_pton)
 extern __typeof (ns_name_skip) __ns_name_skip;
diff --git a/resolv/Makefile b/resolv/Makefile
index 7839e1fb3c..8bb2585dca 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -33,6 +33,7 @@ routines := \
   inet_ntop \
   inet_pton \
   ns_name_ntop \
+  ns_name_pack \
   ns_name_pton \
   ns_name_skip \
   ns_name_uncompress \
diff --git a/resolv/Versions b/resolv/Versions
index 770a2b8d6b..8ea42da48d 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -26,6 +26,7 @@ libc {
   }
   GLIBC_2.9 {
     ns_name_ntop;
+    ns_name_pack;
     ns_name_pton;
     ns_name_skip;
     ns_name_uncompress;
@@ -39,6 +40,7 @@ libc {
     getaddrinfo_a;
 %endif
     ns_name_ntop;
+    ns_name_pack;
     ns_name_pton;
     ns_name_skip;
     ns_name_uncompress;
@@ -52,6 +54,7 @@ libc {
     __inet_aton_exact;
     __inet_pton_length;
     __ns_name_ntop;
+    __ns_name_pack;
     __ns_name_pton;
     __ns_name_skip;
     __ns_name_uncompress;
@@ -154,7 +157,6 @@ libresolv {
     ns_msg_getflag;
     ns_name_compress;
     ns_name_ntol;
-    ns_name_pack;
     ns_name_pton;
     ns_name_rollback;
     ns_name_skip;
diff --git a/resolv/ns_name.c b/resolv/ns_name.c
index 9f7ca4a506..f1a84ad8a6 100644
--- a/resolv/ns_name.c
+++ b/resolv/ns_name.c
@@ -31,9 +31,6 @@
 
 /* Forward. */
 
-static int		dn_find(const u_char *, const u_char *,
-				const u_char * const *,
-				const u_char * const *);
 static int		labellen(const u_char *);
 
 /* Public. */
@@ -92,118 +89,6 @@ ns_name_ntol(const u_char *src, u_char *dst, size_t dstsiz)
 	return (dn - dst);
 }
 
-/*%
- *	Pack domain name 'domain' into 'comp_dn'.
- *
- * return:
- *\li	Size of the compressed name, or -1.
- *
- * notes:
- *\li	'dnptrs' is an array of pointers to previous compressed names.
- *\li	dnptrs[0] is a pointer to the beginning of the message. The array
- *	ends with NULL.
- *\li	'lastdnptr' is a pointer to the end of the array pointed to
- *	by 'dnptrs'.
- *
- * Side effects:
- *\li	The list of pointers in dnptrs is updated for labels inserted into
- *	the message as we compress the name.  If 'dnptr' is NULL, we don't
- *	try to compress names. If 'lastdnptr' is NULL, we don't update the
- *	list.
- */
-int
-ns_name_pack(const u_char *src, u_char *dst, int dstsiz,
-	     const u_char **dnptrs, const u_char **lastdnptr)
-{
-	u_char *dstp;
-	const u_char **cpp, **lpp, *eob, *msg;
-	const u_char *srcp;
-	int n, l, first = 1;
-
-	srcp = src;
-	dstp = dst;
-	eob = dstp + dstsiz;
-	lpp = cpp = NULL;
-	if (dnptrs != NULL) {
-		if ((msg = *dnptrs++) != NULL) {
-			for (cpp = dnptrs; *cpp != NULL; cpp++)
-				(void)NULL;
-			lpp = cpp;	/*%< end of list to search */
-		}
-	} else
-		msg = NULL;
-
-	/* make sure the domain we are about to add is legal */
-	l = 0;
-	do {
-		int l0;
-
-		n = *srcp;
-		if ((n & NS_CMPRSFLGS) == NS_CMPRSFLGS) {
-			__set_errno (EMSGSIZE);
-			return (-1);
-		}
-		if ((l0 = labellen(srcp)) < 0) {
-			__set_errno (EINVAL);
-			return(-1);
-		}
-		l += l0 + 1;
-		if (l > MAXCDNAME) {
-			__set_errno (EMSGSIZE);
-			return (-1);
-		}
-		srcp += l0 + 1;
-	} while (n != 0);
-
-	/* from here on we need to reset compression pointer array on error */
-	srcp = src;
-	do {
-		/* Look to see if we can use pointers. */
-		n = *srcp;
-		if (n != 0 && msg != NULL) {
-			l = dn_find(srcp, msg, (const u_char * const *)dnptrs,
-				    (const u_char * const *)lpp);
-			if (l >= 0) {
-				if (dstp + 1 >= eob) {
-					goto cleanup;
-				}
-				*dstp++ = (l >> 8) | NS_CMPRSFLGS;
-				*dstp++ = l % 256;
-				return (dstp - dst);
-			}
-			/* Not found, save it. */
-			if (lastdnptr != NULL && cpp < lastdnptr - 1 &&
-			    (dstp - msg) < 0x4000 && first) {
-				*cpp++ = dstp;
-				*cpp = NULL;
-				first = 0;
-			}
-		}
-		/* copy label to buffer */
-		if ((n & NS_CMPRSFLGS) == NS_CMPRSFLGS) {
-			/* Should not happen. */
-			goto cleanup;
-		}
-		n = labellen(srcp);
-		if (n + 1 > eob - dstp) {
-			goto cleanup;
-		}
-		memcpy(dstp, srcp, n + 1);
-		srcp += n + 1;
-		dstp += n + 1;
-	} while (n != 0);
-
-	if (dstp > eob) {
-cleanup:
-		if (msg != NULL)
-			*lpp = NULL;
-		__set_errno (EMSGSIZE);
-		return (-1);
-	}
-	return (dstp - dst);
-}
-libresolv_hidden_def (ns_name_pack)
-
 /*%
  *	Compress a domain name into wire format, using compression pointers.
  *
@@ -250,85 +135,6 @@ ns_name_rollback(const u_char *src, const u_char **dnptrs,
 
 /* Private. */
 
-/*%
- *	Thinking in noninternationalized USASCII (per the DNS spec),
- *	convert this character to lower case if it's upper case.
- */
-static int
-mklower(int ch) {
-	if (ch >= 0x41 && ch <= 0x5A)
-		return (ch + 0x20);
-	return (ch);
-}
-
-/*%
- *	Search for the counted-label name in an array of compressed names.
- *
- * return:
- *\li	offset from msg if found, or -1.
- *
- * notes:
- *\li	dnptrs is the pointer to the first name on the list,
- *\li	not the pointer to the start of the message.
- */
-static int
-dn_find(const u_char *domain, const u_char *msg,
-	const u_char * const *dnptrs,
-	const u_char * const *lastdnptr)
-{
-	const u_char *dn, *cp, *sp;
-	const u_char * const *cpp;
-	u_int n;
-
-	for (cpp = dnptrs; cpp < lastdnptr; cpp++) {
-		sp = *cpp;
-		/*
-		 * terminate search on:
-		 * root label
-		 * compression pointer
-		 * unusable offset
-		 */
-		while (*sp != 0 && (*sp & NS_CMPRSFLGS) == 0 &&
-		       (sp - msg) < 0x4000) {
-			dn = domain;
-			cp = sp;
-			while ((n = *cp++) != 0) {
-				/*
-				 * check for indirection
-				 */
-				switch (n & NS_CMPRSFLGS) {
-				case 0:		/*%< normal case, n == len */
-					n = labellen(cp - 1); /*%< XXX */
-					if (n != *dn++)
-						goto next;
-
-					for ((void)NULL; n > 0; n--)
-						if (mklower(*dn++) !=
-						    mklower(*cp++))
-							goto next;
-					/* Is next root for both ? */
-					if (*dn == '\0' && *cp == '\0')
-						return (sp - msg);
-					if (*dn)
-						continue;
-					goto next;
-				case NS_CMPRSFLGS:	/*%< indirection */
-					cp = msg + (((n & 0x3f) << 8) | *cp);
-					break;
-
-				default:	/*%< illegal type */
-					__set_errno (EMSGSIZE);
-					return (-1);
-				}
-			}
-  next: ;
-			sp += *sp + 1;
-		}
-	}
-	__set_errno (ENOENT);
-	return (-1);
-}
-
 /* Return the length of the encoded label starting at LP, or -1 for
    compression references and extended label types.  */
 static int
diff --git a/resolv/ns_name_pack.c b/resolv/ns_name_pack.c
new file mode 100644
index 0000000000..3200b788b3
--- /dev/null
+++ b/resolv/ns_name_pack.c
@@ -0,0 +1,202 @@
+/* Compression of DNS domain names.
+ * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1996,1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <errno.h>
+#include <string.h>
+#include <shlib-compat.h>
+
+/* Thinking in noninternationalized USASCII (per the DNS spec),
+   convert this character to lower case if it's upper case.  */
+static int
+mklower (int ch)
+{
+  if (ch >= 'A' && ch <= 'Z')
+    return ch - 'A' + 'a';
+  return ch;
+}
+
+/* Search for the counted-label name in an array of compressed names.
+   Returns the offset from MSG if found, or -1.
+
+   DNPTRS is the pointer to the first name on the list, not the
+   pointer to the start of the message.  */
+static int
+dn_find (const unsigned char *domain, const unsigned char *msg,
+         const unsigned char **dnptrs,
+         const unsigned char **lastdnptr)
+{
+  const unsigned char *dn, *cp, *sp;
+  const unsigned char **cpp;
+  unsigned int n;
+
+  for (cpp = dnptrs; cpp < lastdnptr; cpp++)
+    {
+    sp = *cpp;
+    /* Terminate search on: root label, compression pointer, unusable
+       offset.  */
+    while (*sp != 0 && (*sp & NS_CMPRSFLGS) == 0 && (sp - msg) < 0x4000)
+      {
+        dn = domain;
+        cp = sp;
+        while ((n = *cp++) != 0)
+          {
+            /* Check for indirection.  */
+            switch (n & NS_CMPRSFLGS)
+              {
+              case 0:                 /* Normal case, n == len.  */
+                if (n != *dn++)
+                  goto next;
+
+                for (; n > 0; n--)
+                  if (mklower (*dn++) != mklower (*cp++))
+                    goto next;
+                /* Is next root for both?  */
+                if (*dn == '\0' && *cp == '\0')
+                  return sp - msg;
+                if (*dn)
+                  continue;
+                goto next;
+              case NS_CMPRSFLGS: /* Indirection.  */
+                cp = msg + (((n & 0x3f) << 8) | *cp);
+                break;
+
+              default:          /* Illegal type.  */
+                __set_errno (EMSGSIZE);
+                return -1;
+              }
+          }
+      next: ;
+        sp += *sp + 1;
+      }
+    }
+  __set_errno (ENOENT);
+  return -1;
+}
+
+/* Packs domain name SRC into DST.  Returns size of the compressed
+   name, or -1.
+
+   DNPTRS is an array of pointers to previous compressed names.
+   DNPTRS[0] is a pointer to the beginning of the message. The array
+   ends with NULL.  LASTDNPTR is a pointer to the end of the array
+   pointed to by 'dnptrs'.
+
+   The list of pointers in DNPTRS is updated for labels inserted into
+   the message as we compress the name.  If DNPTRS is NULL, we don't
+   try to compress names. If LASTDNPTR is NULL, we don't update the
+   list.  */
+int
+___ns_name_pack (const unsigned char *src, unsigned char *dst, int dstsiz,
+                 const unsigned char **dnptrs, const unsigned char **lastdnptr)
+{
+  unsigned char *dstp;
+  const unsigned char **cpp, **lpp, *eob, *msg;
+  const unsigned char *srcp;
+  int n, l, first = 1;
+
+  srcp = src;
+  dstp = dst;
+  eob = dstp + dstsiz;
+  lpp = cpp = NULL;
+  if (dnptrs != NULL)
+    {
+      if ((msg = *dnptrs++) != NULL)
+        {
+          for (cpp = dnptrs; *cpp != NULL; cpp++)
+            ;
+          lpp = cpp;            /* End of list to search.  */
+        }
+    }
+  else
+    msg = NULL;
+
+  /* Make sure the domain we are about to add is legal.  */
+  l = 0;
+  do
+    {
+      n = *srcp;
+      if (n >= 64)
+        {
+          __set_errno (EMSGSIZE);
+          return -1;
+        }
+      l += n + 1;
+      if (l > MAXCDNAME)
+        {
+          __set_errno (EMSGSIZE);
+          return -1;
+        }
+      srcp += n + 1;
+    }
+  while (n != 0);
+
+  /* from here on we need to reset compression pointer array on error */
+  srcp = src;
+  do
+    {
+      /* Look to see if we can use pointers.  */
+      n = *srcp;
+      if (n != 0 && msg != NULL)
+        {
+          l = dn_find (srcp, msg, dnptrs, lpp);
+          if (l >= 0)
+            {
+              if (eob - dstp <= 1)
+                goto cleanup;
+              *dstp++ = (l >> 8) | NS_CMPRSFLGS;
+              *dstp++ = l % 256;
+              return dstp - dst;
+            }
+          /* Not found, save it.  */
+          if (lastdnptr != NULL && cpp < lastdnptr - 1
+              && (dstp - msg) < 0x4000 && first)
+            {
+              *cpp++ = dstp;
+              *cpp = NULL;
+              first = 0;
+            }
+        }
+      /* Copy label to buffer.  */
+      if (n >= 64)
+        /* Should not happen.  */
+        goto cleanup;
+      if (n + 1 > eob - dstp)
+        goto cleanup;
+      memcpy (dstp, srcp, n + 1);
+      srcp += n + 1;
+      dstp += n + 1;
+    }
+  while (n != 0);
+
+  if (dstp > eob)
+    {
+    cleanup:
+      if (msg != NULL)
+        *lpp = NULL;
+      __set_errno (EMSGSIZE);
+      return -1;
+    }
+  return dstp - dst;
+}
+versioned_symbol (libc, ___ns_name_pack, ns_name_pack, GLIBC_2_34);
+versioned_symbol (libc, ___ns_name_pack, __ns_name_pack, GLIBC_PRIVATE);
+libc_hidden_ver (___ns_name_pack, __ns_name_pack)
+
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_9, GLIBC_2_34)
+compat_symbol (libresolv, ___ns_name_pack, ns_name_pack, GLIBC_2_9);
+#endif
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 83b4e2a983..b73d7d11a2 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2241,6 +2241,7 @@ GLIBC_2.34 login_tty F
 GLIBC_2.34 logout F
 GLIBC_2.34 logwtmp F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2366,6 +2367,7 @@ GLIBC_2.8 __vdprintf_chk F
 GLIBC_2.8 qsort_r F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index 1e75aaa6d7..533283afaa 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 4563b50a28..8e36a7954e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1405,6 +1405,7 @@ GLIBC_2.17 nl_langinfo_l F
 GLIBC_2.17 nrand48 F
 GLIBC_2.17 nrand48_r F
 GLIBC_2.17 ns_name_ntop F
+GLIBC_2.17 ns_name_pack F
 GLIBC_2.17 ns_name_pton F
 GLIBC_2.17 ns_name_skip F
 GLIBC_2.17 ns_name_uncompress F
@@ -2458,6 +2459,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
index 9594f13195..ca67cff34e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
@@ -67,7 +67,6 @@ GLIBC_2.17 ns_makecanon F
 GLIBC_2.17 ns_msg_getflag F
 GLIBC_2.17 ns_name_compress F
 GLIBC_2.17 ns_name_ntol F
-GLIBC_2.17 ns_name_pack F
 GLIBC_2.17 ns_name_rollback F
 GLIBC_2.17 ns_parse_ttl F
 GLIBC_2.17 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 68f6856f69..2a653edd5d 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2552,6 +2552,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2990,6 +2991,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
index b70366bcb8..7d0f5b6bd7 100644
--- a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 67c3dbdce3..b094694b2a 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1339,6 +1339,7 @@ GLIBC_2.32 nl_langinfo_l F
 GLIBC_2.32 nrand48 F
 GLIBC_2.32 nrand48_r F
 GLIBC_2.32 ns_name_ntop F
+GLIBC_2.32 ns_name_pack F
 GLIBC_2.32 ns_name_pton F
 GLIBC_2.32 ns_name_skip F
 GLIBC_2.32 ns_name_uncompress F
@@ -2217,6 +2218,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
index 8a29165fa5..f869f0003b 100644
--- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
@@ -60,7 +60,6 @@ GLIBC_2.32 ns_makecanon F
 GLIBC_2.32 ns_msg_getflag F
 GLIBC_2.32 ns_name_compress F
 GLIBC_2.32 ns_name_ntol F
-GLIBC_2.32 ns_name_pack F
 GLIBC_2.32 ns_name_rollback F
 GLIBC_2.32 ns_parse_ttl F
 GLIBC_2.32 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 73754fba4f..658c07ec46 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -346,6 +346,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2686,6 +2687,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
index 473a4e7a31..e79c2c56e7 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index f63ebc7cb3..780cedc568 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -343,6 +343,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2683,6 +2684,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
index 473a4e7a31..e79c2c56e7 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 2c0bf60114..be80416da2 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1396,6 +1396,7 @@ GLIBC_2.29 nl_langinfo_l F
 GLIBC_2.29 nrand48 F
 GLIBC_2.29 nrand48_r F
 GLIBC_2.29 ns_name_ntop F
+GLIBC_2.29 ns_name_pack F
 GLIBC_2.29 ns_name_pton F
 GLIBC_2.29 ns_name_skip F
 GLIBC_2.29 ns_name_uncompress F
@@ -2483,6 +2484,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
index a88aaf06f0..181d1898b3 100644
--- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
@@ -60,7 +60,6 @@ GLIBC_2.29 ns_makecanon F
 GLIBC_2.29 ns_msg_getflag F
 GLIBC_2.29 ns_name_compress F
 GLIBC_2.29 ns_name_ntol F
-GLIBC_2.29 ns_name_pack F
 GLIBC_2.29 ns_name_rollback F
 GLIBC_2.29 ns_parse_ttl F
 GLIBC_2.29 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 8448356587..3d3295237c 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2431,6 +2431,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2700,6 +2701,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
index 2bf26b6a56..7ab9ae8b79 100644
--- a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index f22ab6c53d..b6fd089aa5 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2615,6 +2615,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2884,6 +2885,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/i386/libresolv.abilist b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
index 2bf26b6a56..7ab9ae8b79 100644
--- a/sysdeps/unix/sysv/linux/i386/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 377207be95..831ec67ea2 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2390,6 +2390,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2659,6 +2660,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
index b70366bcb8..7d0f5b6bd7 100644
--- a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 4d6d664316..b70cc0f127 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -347,6 +347,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2665,6 +2666,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
index 473a4e7a31..e79c2c56e7 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index da9ce56b69..1d608f4f49 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2558,6 +2558,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2827,6 +2828,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
index 2bf26b6a56..7ab9ae8b79 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 97adac5893..a5345d4184 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1407,6 +1407,7 @@ GLIBC_2.18 nl_langinfo_l F
 GLIBC_2.18 nrand48 F
 GLIBC_2.18 nrand48_r F
 GLIBC_2.18 ns_name_ntop F
+GLIBC_2.18 ns_name_pack F
 GLIBC_2.18 ns_name_pton F
 GLIBC_2.18 ns_name_skip F
 GLIBC_2.18 ns_name_uncompress F
@@ -2534,6 +2535,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
index 600e164088..b03a3a68d6 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
@@ -67,7 +67,6 @@ GLIBC_2.18 ns_makecanon F
 GLIBC_2.18 ns_msg_getflag F
 GLIBC_2.18 ns_name_compress F
 GLIBC_2.18 ns_name_ntol F
-GLIBC_2.18 ns_name_pack F
 GLIBC_2.18 ns_name_rollback F
 GLIBC_2.18 ns_parse_ttl F
 GLIBC_2.18 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 68ab96f994..7785d19d35 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1407,6 +1407,7 @@ GLIBC_2.18 nl_langinfo_l F
 GLIBC_2.18 nrand48 F
 GLIBC_2.18 nrand48_r F
 GLIBC_2.18 ns_name_ntop F
+GLIBC_2.18 ns_name_pack F
 GLIBC_2.18 ns_name_pton F
 GLIBC_2.18 ns_name_skip F
 GLIBC_2.18 ns_name_uncompress F
@@ -2531,6 +2532,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
index 600e164088..b03a3a68d6 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
@@ -67,7 +67,6 @@ GLIBC_2.18 ns_makecanon F
 GLIBC_2.18 ns_msg_getflag F
 GLIBC_2.18 ns_name_compress F
 GLIBC_2.18 ns_name_ntol F
-GLIBC_2.18 ns_name_pack F
 GLIBC_2.18 ns_name_rollback F
 GLIBC_2.18 ns_parse_ttl F
 GLIBC_2.18 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 113e54f1de..4615bb493c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2523,6 +2523,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2788,6 +2789,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
index 2bf26b6a56..7ab9ae8b79 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 9592cf6437..1a88560049 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2521,6 +2521,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2786,6 +2787,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index aabf111daa..d148ca17c4 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2529,6 +2529,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2794,6 +2795,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
index 2bf26b6a56..7ab9ae8b79 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index e1fcbb0a09..7879059f1c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2441,6 +2441,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2706,6 +2707,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
index b70366bcb8..7d0f5b6bd7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 66c24aef19..63c7bbf72c 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1450,6 +1450,7 @@ GLIBC_2.21 nl_langinfo_l F
 GLIBC_2.21 nrand48 F
 GLIBC_2.21 nrand48_r F
 GLIBC_2.21 ns_name_ntop F
+GLIBC_2.21 ns_name_pack F
 GLIBC_2.21 ns_name_pton F
 GLIBC_2.21 ns_name_skip F
 GLIBC_2.21 ns_name_uncompress F
@@ -2573,6 +2574,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
index 704da254df..4a47e2e86e 100644
--- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
@@ -67,7 +67,6 @@ GLIBC_2.21 ns_makecanon F
 GLIBC_2.21 ns_msg_getflag F
 GLIBC_2.21 ns_name_compress F
 GLIBC_2.21 ns_name_ntol F
-GLIBC_2.21 ns_name_pack F
 GLIBC_2.21 ns_name_rollback F
 GLIBC_2.21 ns_parse_ttl F
 GLIBC_2.21 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index aab404a525..ff3bff0864 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2585,6 +2585,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -3025,6 +3026,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
index 2bf26b6a56..7ab9ae8b79 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 4ae25d7c6e..4fdd094714 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2618,6 +2618,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -3070,6 +3071,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 2a07bcc76e..77495ea675 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2354,6 +2354,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2794,6 +2795,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
index 2c34859a4a..05b0034a8b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index a7d05fb856..95cbd1d11c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1493,6 +1493,7 @@ GLIBC_2.17 nl_langinfo_l F
 GLIBC_2.17 nrand48 F
 GLIBC_2.17 nrand48_r F
 GLIBC_2.17 ns_name_ntop F
+GLIBC_2.17 ns_name_pack F
 GLIBC_2.17 ns_name_pton F
 GLIBC_2.17 ns_name_skip F
 GLIBC_2.17 ns_name_uncompress F
@@ -2654,6 +2655,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
index 9594f13195..ca67cff34e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
@@ -67,7 +67,6 @@ GLIBC_2.17 ns_makecanon F
 GLIBC_2.17 ns_msg_getflag F
 GLIBC_2.17 ns_name_compress F
 GLIBC_2.17 ns_name_ntol F
-GLIBC_2.17 ns_name_pack F
 GLIBC_2.17 ns_name_rollback F
 GLIBC_2.17 ns_parse_ttl F
 GLIBC_2.17 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index c70f9f1e3e..43f244823f 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1341,6 +1341,7 @@ GLIBC_2.33 nl_langinfo_l F
 GLIBC_2.33 nrand48 F
 GLIBC_2.33 nrand48_r F
 GLIBC_2.33 ns_name_ntop F
+GLIBC_2.33 ns_name_pack F
 GLIBC_2.33 ns_name_pton F
 GLIBC_2.33 ns_name_skip F
 GLIBC_2.33 ns_name_uncompress F
@@ -2219,6 +2220,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
index 3f04c43022..1a6fe9ecb7 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
@@ -60,7 +60,6 @@ GLIBC_2.33 ns_makecanon F
 GLIBC_2.33 ns_msg_getflag F
 GLIBC_2.33 ns_name_compress F
 GLIBC_2.33 ns_name_ntol F
-GLIBC_2.33 ns_name_pack F
 GLIBC_2.33 ns_name_rollback F
 GLIBC_2.33 ns_parse_ttl F
 GLIBC_2.33 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index e7d3506a71..84a0a4cabf 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1388,6 +1388,7 @@ GLIBC_2.27 nl_langinfo_l F
 GLIBC_2.27 nrand48 F
 GLIBC_2.27 nrand48_r F
 GLIBC_2.27 ns_name_ntop F
+GLIBC_2.27 ns_name_pack F
 GLIBC_2.27 ns_name_pton F
 GLIBC_2.27 ns_name_skip F
 GLIBC_2.27 ns_name_uncompress F
@@ -2419,6 +2420,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
index b546012c1b..941f79ecfb 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
@@ -60,7 +60,6 @@ GLIBC_2.27 ns_makecanon F
 GLIBC_2.27 ns_msg_getflag F
 GLIBC_2.27 ns_name_compress F
 GLIBC_2.27 ns_name_ntol F
-GLIBC_2.27 ns_name_pack F
 GLIBC_2.27 ns_name_rollback F
 GLIBC_2.27 ns_parse_ttl F
 GLIBC_2.27 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 08f927f183..aa5ef9a615 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2583,6 +2583,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -3033,6 +3034,7 @@ GLIBC_2.9 getutxline F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 login F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
index 2bf26b6a56..7ab9ae8b79 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 81eb55e2f2..7f353d67e8 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2391,6 +2391,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2829,6 +2830,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
index ef165535ce..1d35501b2d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index ccf139a82f..589a569c56 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2438,6 +2438,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2707,6 +2708,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
index 2bf26b6a56..7ab9ae8b79 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 15531cdaf7..402ce11100 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2435,6 +2435,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2704,6 +2705,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
index 2bf26b6a56..7ab9ae8b79 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index aa1361ad8f..defdadbdcb 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2578,6 +2578,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -3042,6 +3043,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
index 2bf26b6a56..7ab9ae8b79 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index d31472ecbc..8e1c29b294 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2413,6 +2413,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2682,6 +2683,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
index b70366bcb8..7d0f5b6bd7 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 1fa1a56c61..bffe5d5255 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2369,6 +2369,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2638,6 +2639,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
index 2fced73187..3fd54a8e2d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 659b3c0af2..aec7e8a052 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1412,6 +1412,7 @@ GLIBC_2.16 nl_langinfo_l F
 GLIBC_2.16 nrand48 F
 GLIBC_2.16 nrand48_r F
 GLIBC_2.16 ns_name_ntop F
+GLIBC_2.16 ns_name_pack F
 GLIBC_2.16 ns_name_pton F
 GLIBC_2.16 ns_name_skip F
 GLIBC_2.16 ns_name_uncompress F
@@ -2473,6 +2474,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
index 2f70944024..50247ce7a0 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
@@ -67,7 +67,6 @@ GLIBC_2.16 ns_makecanon F
 GLIBC_2.16 ns_msg_getflag F
 GLIBC_2.16 ns_name_compress F
 GLIBC_2.16 ns_name_ntol F
-GLIBC_2.16 ns_name_pack F
 GLIBC_2.16 ns_name_rollback F
 GLIBC_2.16 ns_parse_ttl F
 GLIBC_2.16 ns_parserr F
-- 
2.31.1



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

* [PATCH 11/30] resolv: Move ns_name_compress into its own file and into libc
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (9 preceding siblings ...)
  2021-07-02 18:48 ` [PATCH 10/30] resolv: Move ns_name_pack " Florian Weimer
@ 2021-07-02 18:48 ` Florian Weimer
  2021-07-02 18:48 ` [PATCH 12/30] resolv: Move dn_expand to " Florian Weimer
                   ` (18 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:48 UTC (permalink / raw)
  To: libc-alpha

And reformat to GNU style.

The symbol was moved using scripts/move-symbol-to-libc.py.
---
 include/arpa/nameser.h                        |  3 +-
 resolv/Makefile                               |  1 +
 resolv/Versions                               |  4 +-
 resolv/ns_name.c                              | 27 ----------
 resolv/ns_name_compress.c                     | 50 +++++++++++++++++++
 sysdeps/mach/hurd/i386/libc.abilist           |  2 +
 sysdeps/mach/hurd/i386/libresolv.abilist      |  1 -
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  2 +
 .../unix/sysv/linux/aarch64/libresolv.abilist |  1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |  2 +
 .../unix/sysv/linux/alpha/libresolv.abilist   |  1 -
 sysdeps/unix/sysv/linux/arc/libc.abilist      |  2 +
 sysdeps/unix/sysv/linux/arc/libresolv.abilist |  1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  2 +
 .../unix/sysv/linux/arm/be/libresolv.abilist  |  1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  2 +
 .../unix/sysv/linux/arm/le/libresolv.abilist  |  1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist     |  2 +
 .../unix/sysv/linux/csky/libresolv.abilist    |  1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |  2 +
 .../unix/sysv/linux/hppa/libresolv.abilist    |  1 -
 sysdeps/unix/sysv/linux/i386/libc.abilist     |  2 +
 .../unix/sysv/linux/i386/libresolv.abilist    |  1 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |  2 +
 .../unix/sysv/linux/ia64/libresolv.abilist    |  1 -
 .../sysv/linux/m68k/coldfire/libc.abilist     |  2 +
 .../linux/m68k/coldfire/libresolv.abilist     |  1 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  2 +
 .../sysv/linux/m68k/m680x0/libresolv.abilist  |  1 -
 .../sysv/linux/microblaze/be/libc.abilist     |  2 +
 .../linux/microblaze/be/libresolv.abilist     |  1 -
 .../sysv/linux/microblaze/le/libc.abilist     |  2 +
 .../linux/microblaze/le/libresolv.abilist     |  1 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |  2 +
 .../sysv/linux/mips/mips32/libresolv.abilist  |  1 -
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |  2 +
 .../sysv/linux/mips/mips64/n32/libc.abilist   |  2 +
 .../linux/mips/mips64/n32/libresolv.abilist   |  1 -
 .../sysv/linux/mips/mips64/n64/libc.abilist   |  2 +
 .../linux/mips/mips64/n64/libresolv.abilist   |  1 -
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |  2 +
 .../unix/sysv/linux/nios2/libresolv.abilist   |  1 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |  2 +
 .../linux/powerpc/powerpc32/libresolv.abilist |  1 -
 .../powerpc/powerpc32/nofpu/libc.abilist      |  2 +
 .../linux/powerpc/powerpc64/be/libc.abilist   |  2 +
 .../powerpc/powerpc64/be/libresolv.abilist    |  1 -
 .../linux/powerpc/powerpc64/le/libc.abilist   |  2 +
 .../powerpc/powerpc64/le/libresolv.abilist    |  1 -
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |  2 +
 .../sysv/linux/riscv/rv32/libresolv.abilist   |  1 -
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |  2 +
 .../sysv/linux/riscv/rv64/libresolv.abilist   |  1 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist |  2 +
 .../sysv/linux/s390/s390-32/libresolv.abilist |  1 -
 .../unix/sysv/linux/s390/s390-64/libc.abilist |  2 +
 .../sysv/linux/s390/s390-64/libresolv.abilist |  1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  2 +
 .../unix/sysv/linux/sh/be/libresolv.abilist   |  1 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  2 +
 .../unix/sysv/linux/sh/le/libresolv.abilist   |  1 -
 .../sysv/linux/sparc/sparc32/libc.abilist     |  2 +
 .../linux/sparc/sparc32/libresolv.abilist     |  1 -
 .../sysv/linux/sparc/sparc64/libc.abilist     |  2 +
 .../linux/sparc/sparc64/libresolv.abilist     |  1 -
 .../unix/sysv/linux/x86_64/64/libc.abilist    |  2 +
 .../sysv/linux/x86_64/64/libresolv.abilist    |  1 -
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |  2 +
 .../sysv/linux/x86_64/x32/libresolv.abilist   |  1 -
 69 files changed, 122 insertions(+), 60 deletions(-)
 create mode 100644 resolv/ns_name_compress.c

diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
index 02d7b0b553..eff25178c8 100644
--- a/include/arpa/nameser.h
+++ b/include/arpa/nameser.h
@@ -65,7 +65,6 @@ libresolv_hidden_proto (ns_put32)
 libresolv_hidden_proto (ns_initparse)
 libresolv_hidden_proto (ns_skiprr)
 libresolv_hidden_proto (ns_parserr)
-libresolv_hidden_proto (ns_name_compress)
 libresolv_hidden_proto (ns_sprintrr)
 libresolv_hidden_proto (ns_sprintrrf)
 libresolv_hidden_proto (ns_samedomain)
@@ -73,6 +72,8 @@ libresolv_hidden_proto (ns_samename)
 libresolv_hidden_proto (ns_makecanon)
 libresolv_hidden_proto (ns_format_ttl)
 
+extern __typeof (ns_name_compress) __ns_name_compress;
+libc_hidden_proto (__ns_name_compress)
 extern __typeof (ns_name_ntop) __ns_name_ntop;
 libc_hidden_proto (__ns_name_ntop)
 extern __typeof (ns_name_pack) __ns_name_pack;
diff --git a/resolv/Makefile b/resolv/Makefile
index 8bb2585dca..64600ab845 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -32,6 +32,7 @@ routines := \
   inet_addr \
   inet_ntop \
   inet_pton \
+  ns_name_compress \
   ns_name_ntop \
   ns_name_pack \
   ns_name_pton \
diff --git a/resolv/Versions b/resolv/Versions
index 8ea42da48d..a676be2e42 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -25,6 +25,7 @@ libc {
 %endif
   }
   GLIBC_2.9 {
+    ns_name_compress;
     ns_name_ntop;
     ns_name_pack;
     ns_name_pton;
@@ -39,6 +40,7 @@ libc {
     gai_suspend;
     getaddrinfo_a;
 %endif
+    ns_name_compress;
     ns_name_ntop;
     ns_name_pack;
     ns_name_pton;
@@ -53,6 +55,7 @@ libc {
     __h_errno;
     __inet_aton_exact;
     __inet_pton_length;
+    __ns_name_compress;
     __ns_name_ntop;
     __ns_name_pack;
     __ns_name_pton;
@@ -155,7 +158,6 @@ libresolv {
     ns_initparse;
     ns_makecanon;
     ns_msg_getflag;
-    ns_name_compress;
     ns_name_ntol;
     ns_name_pton;
     ns_name_rollback;
diff --git a/resolv/ns_name.c b/resolv/ns_name.c
index f1a84ad8a6..f19c11c03f 100644
--- a/resolv/ns_name.c
+++ b/resolv/ns_name.c
@@ -89,33 +89,6 @@ ns_name_ntol(const u_char *src, u_char *dst, size_t dstsiz)
 	return (dn - dst);
 }
 
-/*%
- *	Compress a domain name into wire format, using compression pointers.
- *
- * return:
- *\li	Number of bytes consumed in `dst' or -1 (with errno set).
- *
- * notes:
- *\li	'dnptrs' is an array of pointers to previous compressed names.
- *\li	dnptrs[0] is a pointer to the beginning of the message.
- *\li	The list ends with NULL.  'lastdnptr' is a pointer to the end of the
- *	array pointed to by 'dnptrs'. Side effect is to update the list of
- *	pointers for labels inserted into the message as we compress the name.
- *\li	If 'dnptr' is NULL, we don't try to compress names. If 'lastdnptr'
- *	is NULL, we don't update the list.
- */
-int
-ns_name_compress(const char *src, u_char *dst, size_t dstsiz,
-		 const u_char **dnptrs, const u_char **lastdnptr)
-{
-	u_char tmp[NS_MAXCDNAME];
-
-	if (ns_name_pton(src, tmp, sizeof tmp) == -1)
-		return (-1);
-	return (ns_name_pack(tmp, dst, dstsiz, dnptrs, lastdnptr));
-}
-libresolv_hidden_def (ns_name_compress)
-
 /*%
  * Reset dnptrs so that there are no active references to pointers at or
  * after src.
diff --git a/resolv/ns_name_compress.c b/resolv/ns_name_compress.c
new file mode 100644
index 0000000000..ade3676cdb
--- /dev/null
+++ b/resolv/ns_name_compress.c
@@ -0,0 +1,50 @@
+/* Compress a DNS domain name in presentation format.
+ * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1996,1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <shlib-compat.h>
+
+/* Compresses a domain name into wire format, using compression pointers.
+   Returns the number of bytes consumed in DST or -1 (with errno set).
+
+   DNPTRS is an array of pointers to previous compressed names.
+   DNPTRS[0] is a pointer to the beginning of the message.
+
+   The list ends with NULL.  LASTDNPTR is a pointer to the end of the
+   array pointed to by DNPTRS.  Side effect is to update the list of
+   pointers for labels inserted into the message as we compress the
+   name.  If DNPTRS is NULL, we don't try to compress names.  If
+   LASTDNPTR * is NULL, we don't update the list.  */
+int
+___ns_name_compress (const char *src, unsigned char *dst, size_t dstsiz,
+                     const unsigned char **dnptrs,
+                     const unsigned char **lastdnptr)
+{
+  unsigned char tmp[NS_MAXCDNAME];
+
+  if (__ns_name_pton (src, tmp, sizeof tmp) < 0)
+    return -1;
+  return __ns_name_pack (tmp, dst, dstsiz, dnptrs, lastdnptr);
+}
+versioned_symbol (libc, ___ns_name_compress, ns_name_compress, GLIBC_2_34);
+versioned_symbol (libc, ___ns_name_compress, __ns_name_compress,
+                  GLIBC_PRIVATE);
+libc_hidden_ver (___ns_name_compress, __ns_name_compress)
+
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_9, GLIBC_2_34)
+compat_symbol (libresolv, ___ns_name_compress, ns_name_compress, GLIBC_2_9);
+#endif
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index b73d7d11a2..170c6aeaee 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2240,6 +2240,7 @@ GLIBC_2.34 login F
 GLIBC_2.34 login_tty F
 GLIBC_2.34 logout F
 GLIBC_2.34 logwtmp F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2366,6 +2367,7 @@ GLIBC_2.8 __vasprintf_chk F
 GLIBC_2.8 __vdprintf_chk F
 GLIBC_2.8 qsort_r F
 GLIBC_2.9 dup3 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index 533283afaa..6e77bc28c6 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.9 ns_get32 F
 GLIBC_2.9 ns_initparse F
 GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
-GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 8e36a7954e..2b1e8b5f1c 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1404,6 +1404,7 @@ GLIBC_2.17 nl_langinfo F
 GLIBC_2.17 nl_langinfo_l F
 GLIBC_2.17 nrand48 F
 GLIBC_2.17 nrand48_r F
+GLIBC_2.17 ns_name_compress F
 GLIBC_2.17 ns_name_ntop F
 GLIBC_2.17 ns_name_pack F
 GLIBC_2.17 ns_name_pton F
@@ -2458,6 +2459,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
index ca67cff34e..6e740fad8f 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
@@ -65,7 +65,6 @@ GLIBC_2.17 ns_get32 F
 GLIBC_2.17 ns_initparse F
 GLIBC_2.17 ns_makecanon F
 GLIBC_2.17 ns_msg_getflag F
-GLIBC_2.17 ns_name_compress F
 GLIBC_2.17 ns_name_ntol F
 GLIBC_2.17 ns_name_rollback F
 GLIBC_2.17 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 2a653edd5d..06c40bc719 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2551,6 +2551,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2990,6 +2991,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
index 7d0f5b6bd7..019d8ba186 100644
--- a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_get32 F
 GLIBC_2.9 ns_initparse F
 GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
-GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index b094694b2a..fbe5b91847 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1338,6 +1338,7 @@ GLIBC_2.32 nl_langinfo F
 GLIBC_2.32 nl_langinfo_l F
 GLIBC_2.32 nrand48 F
 GLIBC_2.32 nrand48_r F
+GLIBC_2.32 ns_name_compress F
 GLIBC_2.32 ns_name_ntop F
 GLIBC_2.32 ns_name_pack F
 GLIBC_2.32 ns_name_pton F
@@ -2217,6 +2218,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
index f869f0003b..d8cdd51cd0 100644
--- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
@@ -58,7 +58,6 @@ GLIBC_2.32 ns_get32 F
 GLIBC_2.32 ns_initparse F
 GLIBC_2.32 ns_makecanon F
 GLIBC_2.32 ns_msg_getflag F
-GLIBC_2.32 ns_name_compress F
 GLIBC_2.32 ns_name_ntol F
 GLIBC_2.32 ns_name_rollback F
 GLIBC_2.32 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 658c07ec46..1d109b35a6 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -345,6 +345,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2686,6 +2687,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
index e79c2c56e7..f10275fe58 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.9 ns_get32 F
 GLIBC_2.9 ns_initparse F
 GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
-GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 780cedc568..2118b7e150 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -342,6 +342,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2683,6 +2684,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
index e79c2c56e7..f10275fe58 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.9 ns_get32 F
 GLIBC_2.9 ns_initparse F
 GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
-GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index be80416da2..ce2b458c64 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1395,6 +1395,7 @@ GLIBC_2.29 nl_langinfo F
 GLIBC_2.29 nl_langinfo_l F
 GLIBC_2.29 nrand48 F
 GLIBC_2.29 nrand48_r F
+GLIBC_2.29 ns_name_compress F
 GLIBC_2.29 ns_name_ntop F
 GLIBC_2.29 ns_name_pack F
 GLIBC_2.29 ns_name_pton F
@@ -2483,6 +2484,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
index 181d1898b3..803d69e3c9 100644
--- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
@@ -58,7 +58,6 @@ GLIBC_2.29 ns_get32 F
 GLIBC_2.29 ns_initparse F
 GLIBC_2.29 ns_makecanon F
 GLIBC_2.29 ns_msg_getflag F
-GLIBC_2.29 ns_name_compress F
 GLIBC_2.29 ns_name_ntol F
 GLIBC_2.29 ns_name_rollback F
 GLIBC_2.29 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 3d3295237c..3277fc81c0 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2430,6 +2430,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2700,6 +2701,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
index 7ab9ae8b79..04952c33e8 100644
--- a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_get32 F
 GLIBC_2.9 ns_initparse F
 GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
-GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index b6fd089aa5..69aefe078b 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2614,6 +2614,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2884,6 +2885,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/i386/libresolv.abilist b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
index 7ab9ae8b79..04952c33e8 100644
--- a/sysdeps/unix/sysv/linux/i386/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_get32 F
 GLIBC_2.9 ns_initparse F
 GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
-GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 831ec67ea2..6c146cdc00 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2389,6 +2389,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2659,6 +2660,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
index 7d0f5b6bd7..019d8ba186 100644
--- a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_get32 F
 GLIBC_2.9 ns_initparse F
 GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
-GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index b70cc0f127..ad71d64163 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -346,6 +346,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2665,6 +2666,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
index e79c2c56e7..f10275fe58 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.9 ns_get32 F
 GLIBC_2.9 ns_initparse F
 GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
-GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 1d608f4f49..918e901040 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2557,6 +2557,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2827,6 +2828,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
index 7ab9ae8b79..04952c33e8 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_get32 F
 GLIBC_2.9 ns_initparse F
 GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
-GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index a5345d4184..6a0c6e98d6 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1406,6 +1406,7 @@ GLIBC_2.18 nl_langinfo F
 GLIBC_2.18 nl_langinfo_l F
 GLIBC_2.18 nrand48 F
 GLIBC_2.18 nrand48_r F
+GLIBC_2.18 ns_name_compress F
 GLIBC_2.18 ns_name_ntop F
 GLIBC_2.18 ns_name_pack F
 GLIBC_2.18 ns_name_pton F
@@ -2534,6 +2535,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
index b03a3a68d6..7368c86433 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
@@ -65,7 +65,6 @@ GLIBC_2.18 ns_get32 F
 GLIBC_2.18 ns_initparse F
 GLIBC_2.18 ns_makecanon F
 GLIBC_2.18 ns_msg_getflag F
-GLIBC_2.18 ns_name_compress F
 GLIBC_2.18 ns_name_ntol F
 GLIBC_2.18 ns_name_rollback F
 GLIBC_2.18 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 7785d19d35..e63e6682b0 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1406,6 +1406,7 @@ GLIBC_2.18 nl_langinfo F
 GLIBC_2.18 nl_langinfo_l F
 GLIBC_2.18 nrand48 F
 GLIBC_2.18 nrand48_r F
+GLIBC_2.18 ns_name_compress F
 GLIBC_2.18 ns_name_ntop F
 GLIBC_2.18 ns_name_pack F
 GLIBC_2.18 ns_name_pton F
@@ -2531,6 +2532,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
index b03a3a68d6..7368c86433 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
@@ -65,7 +65,6 @@ GLIBC_2.18 ns_get32 F
 GLIBC_2.18 ns_initparse F
 GLIBC_2.18 ns_makecanon F
 GLIBC_2.18 ns_msg_getflag F
-GLIBC_2.18 ns_name_compress F
 GLIBC_2.18 ns_name_ntol F
 GLIBC_2.18 ns_name_rollback F
 GLIBC_2.18 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 4615bb493c..2701300d81 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2522,6 +2522,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2788,6 +2789,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
index 7ab9ae8b79..04952c33e8 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_get32 F
 GLIBC_2.9 ns_initparse F
 GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
-GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 1a88560049..ac84a5c178 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2520,6 +2520,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2786,6 +2787,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index d148ca17c4..87f8cc88b7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2528,6 +2528,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2794,6 +2795,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
index 7ab9ae8b79..04952c33e8 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_get32 F
 GLIBC_2.9 ns_initparse F
 GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
-GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 7879059f1c..0ea87ac821 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2440,6 +2440,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2706,6 +2707,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
index 7d0f5b6bd7..019d8ba186 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_get32 F
 GLIBC_2.9 ns_initparse F
 GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
-GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 63c7bbf72c..073e5997b8 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1449,6 +1449,7 @@ GLIBC_2.21 nl_langinfo F
 GLIBC_2.21 nl_langinfo_l F
 GLIBC_2.21 nrand48 F
 GLIBC_2.21 nrand48_r F
+GLIBC_2.21 ns_name_compress F
 GLIBC_2.21 ns_name_ntop F
 GLIBC_2.21 ns_name_pack F
 GLIBC_2.21 ns_name_pton F
@@ -2573,6 +2574,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
index 4a47e2e86e..07c3f33fc6 100644
--- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
@@ -65,7 +65,6 @@ GLIBC_2.21 ns_get32 F
 GLIBC_2.21 ns_initparse F
 GLIBC_2.21 ns_makecanon F
 GLIBC_2.21 ns_msg_getflag F
-GLIBC_2.21 ns_name_compress F
 GLIBC_2.21 ns_name_ntol F
 GLIBC_2.21 ns_name_rollback F
 GLIBC_2.21 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index ff3bff0864..104c1e8fa9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2584,6 +2584,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -3025,6 +3026,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
index 7ab9ae8b79..04952c33e8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_get32 F
 GLIBC_2.9 ns_initparse F
 GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
-GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 4fdd094714..918a890b22 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2617,6 +2617,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -3070,6 +3071,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 77495ea675..6a8eabf910 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2353,6 +2353,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2794,6 +2795,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
index 05b0034a8b..b6e579f3c0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.9 ns_get32 F
 GLIBC_2.9 ns_initparse F
 GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
-GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 95cbd1d11c..9990625981 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1492,6 +1492,7 @@ GLIBC_2.17 nl_langinfo F
 GLIBC_2.17 nl_langinfo_l F
 GLIBC_2.17 nrand48 F
 GLIBC_2.17 nrand48_r F
+GLIBC_2.17 ns_name_compress F
 GLIBC_2.17 ns_name_ntop F
 GLIBC_2.17 ns_name_pack F
 GLIBC_2.17 ns_name_pton F
@@ -2654,6 +2655,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
index ca67cff34e..6e740fad8f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
@@ -65,7 +65,6 @@ GLIBC_2.17 ns_get32 F
 GLIBC_2.17 ns_initparse F
 GLIBC_2.17 ns_makecanon F
 GLIBC_2.17 ns_msg_getflag F
-GLIBC_2.17 ns_name_compress F
 GLIBC_2.17 ns_name_ntol F
 GLIBC_2.17 ns_name_rollback F
 GLIBC_2.17 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 43f244823f..53b2d33900 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1340,6 +1340,7 @@ GLIBC_2.33 nl_langinfo F
 GLIBC_2.33 nl_langinfo_l F
 GLIBC_2.33 nrand48 F
 GLIBC_2.33 nrand48_r F
+GLIBC_2.33 ns_name_compress F
 GLIBC_2.33 ns_name_ntop F
 GLIBC_2.33 ns_name_pack F
 GLIBC_2.33 ns_name_pton F
@@ -2219,6 +2220,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
index 1a6fe9ecb7..d17a2d7a96 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
@@ -58,7 +58,6 @@ GLIBC_2.33 ns_get32 F
 GLIBC_2.33 ns_initparse F
 GLIBC_2.33 ns_makecanon F
 GLIBC_2.33 ns_msg_getflag F
-GLIBC_2.33 ns_name_compress F
 GLIBC_2.33 ns_name_ntol F
 GLIBC_2.33 ns_name_rollback F
 GLIBC_2.33 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 84a0a4cabf..4d1081c11a 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1387,6 +1387,7 @@ GLIBC_2.27 nl_langinfo F
 GLIBC_2.27 nl_langinfo_l F
 GLIBC_2.27 nrand48 F
 GLIBC_2.27 nrand48_r F
+GLIBC_2.27 ns_name_compress F
 GLIBC_2.27 ns_name_ntop F
 GLIBC_2.27 ns_name_pack F
 GLIBC_2.27 ns_name_pton F
@@ -2419,6 +2420,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
index 941f79ecfb..86bd38d3da 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
@@ -58,7 +58,6 @@ GLIBC_2.27 ns_get32 F
 GLIBC_2.27 ns_initparse F
 GLIBC_2.27 ns_makecanon F
 GLIBC_2.27 ns_msg_getflag F
-GLIBC_2.27 ns_name_compress F
 GLIBC_2.27 ns_name_ntol F
 GLIBC_2.27 ns_name_rollback F
 GLIBC_2.27 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index aa5ef9a615..db57e89c16 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2582,6 +2582,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -3033,6 +3034,7 @@ GLIBC_2.9 getutxid F
 GLIBC_2.9 getutxline F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 login F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
index 7ab9ae8b79..04952c33e8 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_get32 F
 GLIBC_2.9 ns_initparse F
 GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
-GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 7f353d67e8..b8714e003f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2390,6 +2390,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2829,6 +2830,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
index 1d35501b2d..555833e09e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.9 ns_get32 F
 GLIBC_2.9 ns_initparse F
 GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
-GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 589a569c56..5ad49b3fe2 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2437,6 +2437,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2707,6 +2708,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
index 7ab9ae8b79..04952c33e8 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_get32 F
 GLIBC_2.9 ns_initparse F
 GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
-GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 402ce11100..93432e0a17 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2434,6 +2434,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2704,6 +2705,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
index 7ab9ae8b79..04952c33e8 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_get32 F
 GLIBC_2.9 ns_initparse F
 GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
-GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index defdadbdcb..db1089b05c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2577,6 +2577,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -3042,6 +3043,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
index 7ab9ae8b79..04952c33e8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_get32 F
 GLIBC_2.9 ns_initparse F
 GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
-GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 8e1c29b294..f34029397e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2412,6 +2412,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2682,6 +2683,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
index 7d0f5b6bd7..019d8ba186 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_get32 F
 GLIBC_2.9 ns_initparse F
 GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
-GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index bffe5d5255..876c9a0a08 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2368,6 +2368,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2638,6 +2639,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
index 3fd54a8e2d..39e2252c76 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.9 ns_get32 F
 GLIBC_2.9 ns_initparse F
 GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
-GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index aec7e8a052..063673cf6d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1411,6 +1411,7 @@ GLIBC_2.16 nl_langinfo F
 GLIBC_2.16 nl_langinfo_l F
 GLIBC_2.16 nrand48 F
 GLIBC_2.16 nrand48_r F
+GLIBC_2.16 ns_name_compress F
 GLIBC_2.16 ns_name_ntop F
 GLIBC_2.16 ns_name_pack F
 GLIBC_2.16 ns_name_pton F
@@ -2473,6 +2474,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
index 50247ce7a0..96af745190 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
@@ -65,7 +65,6 @@ GLIBC_2.16 ns_get32 F
 GLIBC_2.16 ns_initparse F
 GLIBC_2.16 ns_makecanon F
 GLIBC_2.16 ns_msg_getflag F
-GLIBC_2.16 ns_name_compress F
 GLIBC_2.16 ns_name_ntol F
 GLIBC_2.16 ns_name_rollback F
 GLIBC_2.16 ns_parse_ttl F
-- 
2.31.1



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

* [PATCH 12/30] resolv: Move dn_expand to its own file and into libc
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (10 preceding siblings ...)
  2021-07-02 18:48 ` [PATCH 11/30] resolv: Move ns_name_compress " Florian Weimer
@ 2021-07-02 18:48 ` Florian Weimer
  2021-07-02 18:48 ` [PATCH 13/30] resolv: Move _getlong, _getshort, __putlong, __putshort to res-putget Florian Weimer
                   ` (17 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:48 UTC (permalink / raw)
  To: libc-alpha

And reformat to GNU style.

This switches back to the dn_expand name for the ABI symbol and turns
__dn_expand into a compatibility symbol.  With the improved namespace
management in current glibc, it is no longer necessary to use a
private namespace symbol.  To avoid old code binding to a
GLIBC_PRIVATE symbol by accident, use __libc_dn_expand for the
internal symbol name.

The symbols dn_expand, __dnexpand were moved using
scripts/move-symbol-to-libc.py, followed by an adjustment to make
dn_expand the only GLIBC_2.34 symbol.
---
 include/resolv.h                              |   4 +-
 resolv/Makefile                               |   1 +
 resolv/Versions                               |   6 +-
 resolv/compat-gethnamaddr.c                   |  13 +-
 resolv/dn_expand.c                            | 112 ++++++++++++++++++
 resolv/ns_parse.c                             |   4 +-
 resolv/ns_print.c                             |   2 +-
 resolv/nss_dns/dns-canon.c                    |   4 +-
 resolv/res_comp.c                             |  27 -----
 resolv/res_debug.c                            |   4 +-
 resolv/res_send.c                             |   4 +-
 resolv/resolv.h                               |   1 -
 sysdeps/mach/hurd/i386/libc.abilist           |   2 +
 sysdeps/mach/hurd/i386/libresolv.abilist      |   1 -
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |   2 +
 .../unix/sysv/linux/aarch64/libresolv.abilist |   1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |   3 +
 .../unix/sysv/linux/alpha/libresolv.abilist   |   2 -
 sysdeps/unix/sysv/linux/arc/libc.abilist      |   2 +
 sysdeps/unix/sysv/linux/arc/libresolv.abilist |   1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |   2 +
 .../unix/sysv/linux/arm/be/libresolv.abilist  |   1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |   2 +
 .../unix/sysv/linux/arm/le/libresolv.abilist  |   1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist     |   2 +
 .../unix/sysv/linux/csky/libresolv.abilist    |   1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |   3 +
 .../unix/sysv/linux/hppa/libresolv.abilist    |   2 -
 sysdeps/unix/sysv/linux/i386/libc.abilist     |   3 +
 .../unix/sysv/linux/i386/libresolv.abilist    |   2 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |   3 +
 .../unix/sysv/linux/ia64/libresolv.abilist    |   2 -
 .../sysv/linux/m68k/coldfire/libc.abilist     |   2 +
 .../linux/m68k/coldfire/libresolv.abilist     |   1 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |   3 +
 .../sysv/linux/m68k/m680x0/libresolv.abilist  |   2 -
 .../sysv/linux/microblaze/be/libc.abilist     |   2 +
 .../linux/microblaze/be/libresolv.abilist     |   1 -
 .../sysv/linux/microblaze/le/libc.abilist     |   2 +
 .../linux/microblaze/le/libresolv.abilist     |   1 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |   3 +
 .../sysv/linux/mips/mips32/libresolv.abilist  |   2 -
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |   3 +
 .../sysv/linux/mips/mips64/n32/libc.abilist   |   3 +
 .../linux/mips/mips64/n32/libresolv.abilist   |   2 -
 .../sysv/linux/mips/mips64/n64/libc.abilist   |   3 +
 .../linux/mips/mips64/n64/libresolv.abilist   |   2 -
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |   2 +
 .../unix/sysv/linux/nios2/libresolv.abilist   |   1 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |   3 +
 .../linux/powerpc/powerpc32/libresolv.abilist |   2 -
 .../powerpc/powerpc32/nofpu/libc.abilist      |   3 +
 .../linux/powerpc/powerpc64/be/libc.abilist   |   2 +
 .../powerpc/powerpc64/be/libresolv.abilist    |   1 -
 .../linux/powerpc/powerpc64/le/libc.abilist   |   2 +
 .../powerpc/powerpc64/le/libresolv.abilist    |   1 -
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |   2 +
 .../sysv/linux/riscv/rv32/libresolv.abilist   |   1 -
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |   2 +
 .../sysv/linux/riscv/rv64/libresolv.abilist   |   1 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist |   3 +
 .../sysv/linux/s390/s390-32/libresolv.abilist |   2 -
 .../unix/sysv/linux/s390/s390-64/libc.abilist |   2 +
 .../sysv/linux/s390/s390-64/libresolv.abilist |   1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |   3 +
 .../unix/sysv/linux/sh/be/libresolv.abilist   |   2 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |   3 +
 .../unix/sysv/linux/sh/le/libresolv.abilist   |   2 -
 .../sysv/linux/sparc/sparc32/libc.abilist     |   3 +
 .../linux/sparc/sparc32/libresolv.abilist     |   2 -
 .../sysv/linux/sparc/sparc64/libc.abilist     |   3 +
 .../linux/sparc/sparc64/libresolv.abilist     |   2 -
 .../unix/sysv/linux/x86_64/64/libc.abilist    |   2 +
 .../sysv/linux/x86_64/64/libresolv.abilist    |   1 -
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |   2 +
 .../sysv/linux/x86_64/x32/libresolv.abilist   |   1 -
 76 files changed, 219 insertions(+), 90 deletions(-)
 create mode 100644 resolv/dn_expand.c

diff --git a/include/resolv.h b/include/resolv.h
index daf4a74777..44fc0c346f 100644
--- a/include/resolv.h
+++ b/include/resolv.h
@@ -44,7 +44,6 @@ libresolv_hidden_proto (_sethtent)
 libresolv_hidden_proto (_gethtent)
 libresolv_hidden_proto (_gethtbyaddr)
 libresolv_hidden_proto (_gethtbyname2)
-libresolv_hidden_proto (__dn_expand)
 libresolv_hidden_proto (__dn_comp)
 libresolv_hidden_proto (__dn_skipname)
 libresolv_hidden_proto (__res_hnok)
@@ -66,5 +65,8 @@ libresolv_hidden_proto (__res_queriesmatch)
 libresolv_hidden_proto (__b64_ntop)
 libresolv_hidden_proto (__dn_count_labels)
 
+extern __typeof (dn_expand) __libc_dn_expand;
+libc_hidden_proto (__libc_dn_expand)
+
 # endif /* _RESOLV_H_ && !_ISOMAC */
 #endif
diff --git a/resolv/Makefile b/resolv/Makefile
index 64600ab845..3e7de81fb5 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -28,6 +28,7 @@ headers	:= resolv.h bits/types/res_state.h \
 	   sys/bitypes.h
 
 routines := \
+  dn_expand \
   herror \
   inet_addr \
   inet_ntop \
diff --git a/resolv/Versions b/resolv/Versions
index a676be2e42..4a9203042f 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -3,6 +3,7 @@ libc {
     __h_errno_location;
     __res_randomid;
     _res;
+    dn_expand;
     h_errlist;
     h_nerr;
     herror;
@@ -10,6 +11,7 @@ libc {
     res_init;
   }
   GLIBC_2.2 {
+    __dn_expand;
     __res_init;
     __res_nclose;
     __res_ninit;
@@ -40,6 +42,7 @@ libc {
     gai_suspend;
     getaddrinfo_a;
 %endif
+    dn_expand;
     ns_name_compress;
     ns_name_ntop;
     ns_name_pack;
@@ -55,6 +58,7 @@ libc {
     __h_errno;
     __inet_aton_exact;
     __inet_pton_length;
+    __libc_dn_expand;
     __ns_name_compress;
     __ns_name_ntop;
     __ns_name_pack;
@@ -120,7 +124,6 @@ libresolv {
     _res_opcodes;
     _res_resultcodes;
     _sethtent;
-    dn_expand;
     inet_net_ntop;
     inet_net_pton;
     inet_neta;
@@ -135,7 +138,6 @@ libresolv {
     res_send_setrhook;
   }
   GLIBC_2.2 {
-    __dn_expand;
     __res_hostalias;
     __res_mkquery;
     __res_nmkquery;
diff --git a/resolv/compat-gethnamaddr.c b/resolv/compat-gethnamaddr.c
index 0e24dcbbcc..1c630fcb3d 100644
--- a/resolv/compat-gethnamaddr.c
+++ b/resolv/compat-gethnamaddr.c
@@ -179,7 +179,7 @@ getanswer (const querybuf *answer, int anslen, const char *qname, int qtype)
 		__set_h_errno (NO_RECOVERY);
 		return (NULL);
 	}
-	n = dn_expand(answer->buf, eom, cp, bp, buflen);
+	n = __libc_dn_expand (answer->buf, eom, cp, bp, buflen);
 	if ((n < 0) || !(*name_ok)(bp)) {
 		__set_h_errno (NO_RECOVERY);
 		return (NULL);
@@ -210,7 +210,7 @@ getanswer (const querybuf *answer, int anslen, const char *qname, int qtype)
 	haveanswer = 0;
 	had_error = 0;
 	while (ancount-- > 0 && cp < eom && !had_error) {
-		n = dn_expand(answer->buf, eom, cp, bp, buflen);
+		n = __libc_dn_expand (answer->buf, eom, cp, bp, buflen);
 		if ((n < 0) || !(*name_ok)(bp)) {
 			had_error++;
 			continue;
@@ -233,7 +233,8 @@ getanswer (const querybuf *answer, int anslen, const char *qname, int qtype)
 		if ((qtype == T_A || qtype == T_AAAA) && type == T_CNAME) {
 			if (ap >= &host_aliases[MAXALIASES-1])
 				continue;
-			n = dn_expand(answer->buf, eom, cp, tbuf, sizeof tbuf);
+			n = __libc_dn_expand (answer->buf, eom, cp,
+					      tbuf, sizeof tbuf);
 			if ((n < 0) || !(*name_ok)(tbuf)) {
 				had_error++;
 				continue;
@@ -265,7 +266,8 @@ getanswer (const querybuf *answer, int anslen, const char *qname, int qtype)
 			continue;
 		}
 		if (qtype == T_PTR && type == T_CNAME) {
-			n = dn_expand(answer->buf, eom, cp, tbuf, sizeof tbuf);
+			n = __libc_dn_expand (answer->buf, eom, cp,
+					      tbuf, sizeof tbuf);
 			if (n < 0 || !res_dnok(tbuf)) {
 				had_error++;
 				continue;
@@ -302,7 +304,8 @@ getanswer (const querybuf *answer, int anslen, const char *qname, int qtype)
 				cp += n;
 				continue;	/* XXX - had_error++ ? */
 			}
-			n = dn_expand(answer->buf, eom, cp, bp, buflen);
+			n = __libc_dn_expand (answer->buf, eom, cp,
+					      bp, buflen);
 			if ((n < 0) || !res_hnok(bp)) {
 				had_error++;
 				break;
diff --git a/resolv/dn_expand.c b/resolv/dn_expand.c
new file mode 100644
index 0000000000..0235b34eb4
--- /dev/null
+++ b/resolv/dn_expand.c
@@ -0,0 +1,112 @@
+/* Expanding a compressed DNS domain name to its presentation form.
+   Copyright (C) 1995-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/>.  */
+
+/*
+ * Copyright (c) 1985, 1993
+ *    The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Portions Copyright (c) 1993 by Digital Equipment Corporation.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies, and that
+ * the name of Digital Equipment Corporation not be used in advertising or
+ * publicity pertaining to distribution of the document or software without
+ * specific, written prior permission.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
+ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+/*
+ * Portions Copyright (c) 1996-1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <resolv.h>
+#include <shlib-compat.h>
+
+/* Expand compressed domain name COMP_DN to full domain name.  MSG is
+   a pointer to the beginning of the message, EOMORIG points to the
+   first location after the message, EXP_DN is a pointer to a buffer
+   of size LENGTH for the result.  Returns size of compressed name or
+   -1 if there was an error.  */
+int
+___dn_expand (const unsigned char *msg, const unsigned char *eom,
+              const unsigned char *src, char *dst, int dstsiz)
+{
+  int n = __ns_name_uncompress (msg, eom, src, dst, (size_t) dstsiz);
+  if (n > 0 && dst[0] == '.')
+    dst[0] = '\0';
+  return n;
+}
+versioned_symbol (libc, ___dn_expand, dn_expand, GLIBC_2_34);
+versioned_symbol (libc, ___dn_expand, __libc_dn_expand, GLIBC_PRIVATE);
+libc_hidden_ver (___dn_expand, __libc_dn_expand);
+
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_2)
+compat_symbol (libresolv, ___dn_expand, dn_expand, GLIBC_2_0);
+#endif
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___dn_expand, __dn_expand, GLIBC_2_2);
+#endif
diff --git a/resolv/ns_parse.c b/resolv/ns_parse.c
index 863b20a9f7..8ae72e7e1f 100644
--- a/resolv/ns_parse.c
+++ b/resolv/ns_parse.c
@@ -154,8 +154,8 @@ ns_parserr(ns_msg *handle, ns_sect section, int rrnum, ns_rr *rr) {
 	}
 
 	/* Do the parse. */
-	b = dn_expand(handle->_msg, handle->_eom,
-		      handle->_msg_ptr, rr->name, NS_MAXDNAME);
+	b = __libc_dn_expand (handle->_msg, handle->_eom,
+			      handle->_msg_ptr, rr->name, NS_MAXDNAME);
 	if (b < 0)
 		return (-1);
 	handle->_msg_ptr += b;
diff --git a/resolv/ns_print.c b/resolv/ns_print.c
index d61f5044b1..9a9602d74c 100644
--- a/resolv/ns_print.c
+++ b/resolv/ns_print.c
@@ -693,7 +693,7 @@ addname(const u_char *msg, size_t msglen,
 	char *save_buf = *buf;
 	int n;
 
-	n = dn_expand(msg, msg + msglen, *pp, *buf, *buflen);
+	n = __libc_dn_expand (msg, msg + msglen, *pp, *buf, *buflen);
 	if (n < 0)
 		goto enospc;	/*%< Guess. */
 	newlen = prune_origin(*buf, origin);
diff --git a/resolv/nss_dns/dns-canon.c b/resolv/nss_dns/dns-canon.c
index 1cdc9a86c9..b7340d7b9e 100644
--- a/resolv/nss_dns/dns-canon.c
+++ b/resolv/nss_dns/dns-canon.c
@@ -125,8 +125,8 @@ _nss_dns_getcanonname_r (const char *name, char *buffer, size_t buflen,
 	      if (type == qtypes[i])
 		{
 		  /* We found the record.  */
-		  s = __dn_expand (ansp.buf->buf, endptr, namestart,
-				   buffer, buflen);
+		  s = __libc_dn_expand (ansp.buf->buf, endptr, namestart,
+					buffer, buflen);
 		  if (s < 0)
 		    {
 		      if (errno != EMSGSIZE)
diff --git a/resolv/res_comp.c b/resolv/res_comp.c
index c53788643a..42e73a1f00 100644
--- a/resolv/res_comp.c
+++ b/resolv/res_comp.c
@@ -92,25 +92,6 @@
 #include <string.h>
 #include <unistd.h>
 
-/*
- * Expand compressed domain name 'comp_dn' to full domain name.
- * 'msg' is a pointer to the beginning of the message,
- * 'eomorig' points to the first location after the message,
- * 'exp_dn' is a pointer to a buffer of size 'length' for the result.
- * Return size of compressed name or -1 if there was an error.
- */
-int
-dn_expand(const u_char *msg, const u_char *eom, const u_char *src,
-	  char *dst, int dstsiz)
-{
-	int n = ns_name_uncompress(msg, eom, src, dst, (size_t)dstsiz);
-
-	if (n > 0 && dst[0] == '.')
-		dst[0] = '\0';
-	return (n);
-}
-libresolv_hidden_def (dn_expand)
-
 /*
  * Pack domain name 'exp_dn' in presentation form into 'comp_dn'.
  * Return the size of the compressed name or -1.
@@ -268,11 +249,3 @@ void __putshort(uint16_t src, u_char *dst) { ns_put16(src, dst); }
 libresolv_hidden_def (__putshort)
 uint32_t _getlong(const u_char *src) { return (ns_get32(src)); }
 uint16_t _getshort(const u_char *src) { return (ns_get16(src)); }
-\f
-
-#include <shlib-compat.h>
-
-#if SHLIB_COMPAT(libresolv, GLIBC_2_0, GLIBC_2_2)
-# undef dn_expand
-weak_alias (__dn_expand, dn_expand);
-#endif
diff --git a/resolv/res_debug.c b/resolv/res_debug.c
index 844269cffa..030df0aa90 100644
--- a/resolv/res_debug.c
+++ b/resolv/res_debug.c
@@ -335,7 +335,7 @@ p_cdnname(const u_char *cp, const u_char *msg, int len, FILE *file) {
 	char name[MAXDNAME];
 	int n;
 
-	if ((n = dn_expand(msg, msg + len, cp, name, sizeof name)) < 0)
+	if ((n = __libc_dn_expand (msg, msg + len, cp, name, sizeof name)) < 0)
 		return (NULL);
 	if (name[0] == '\0')
 		putc('.', file);
@@ -359,7 +359,7 @@ p_fqnname (const u_char *cp, const u_char *msg, int msglen, char *name,
 {
 	int n, newlen;
 
-	if ((n = dn_expand(msg, cp + msglen, cp, name, namelen)) < 0)
+	if ((n = __libc_dn_expand (msg, cp + msglen, cp, name, namelen)) < 0)
 		return (NULL);
 	newlen = strlen(name);
 	if (newlen == 0 || name[newlen - 1] != '.') {
diff --git a/resolv/res_send.c b/resolv/res_send.c
index 9a3bc5804a..77d6835e1a 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -268,7 +268,7 @@ res_nameinquery(const char *name, int type, int class,
 		char tname[MAXDNAME+1];
 		int n, ttype, tclass;
 
-		n = dn_expand(buf, eom, cp, tname, sizeof tname);
+		n = __libc_dn_expand (buf, eom, cp, tname, sizeof tname);
 		if (n < 0)
 			return (-1);
 		cp += n;
@@ -381,7 +381,7 @@ res_queriesmatch(const u_char *buf1, const u_char *eom1,
 		char tname[MAXDNAME+1];
 		int n, ttype, tclass;
 
-		n = dn_expand(buf1, eom1, cp, tname, sizeof tname);
+		n = __libc_dn_expand (buf1, eom1, cp, tname, sizeof tname);
 		if (n < 0)
 			return (-1);
 		cp += n;
diff --git a/resolv/resolv.h b/resolv/resolv.h
index d55942a6b6..5216c1f48c 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -212,7 +212,6 @@ __END_DECLS
 #define b64_pton		__b64_pton
 #define dn_comp			__dn_comp
 #define dn_count_labels		__dn_count_labels
-#define dn_expand		__dn_expand
 #define dn_skipname		__dn_skipname
 #define fp_resstat		__fp_resstat
 #define loc_aton		__loc_aton
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 170c6aeaee..f7e2541856 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -244,6 +244,7 @@ GLIBC_2.2.6 __dcgettext F
 GLIBC_2.2.6 __default_morecore F
 GLIBC_2.2.6 __dgettext F
 GLIBC_2.2.6 __divdi3 F
+GLIBC_2.2.6 __dn_expand F
 GLIBC_2.2.6 __dup2 F
 GLIBC_2.2.6 __duplocale F
 GLIBC_2.2.6 __environ D 0x4
@@ -2234,6 +2235,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 login F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index 6e77bc28c6..85460b7747 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -2,7 +2,6 @@ GLIBC_2.2.6 __b64_ntop F
 GLIBC_2.2.6 __b64_pton F
 GLIBC_2.2.6 __dn_comp F
 GLIBC_2.2.6 __dn_count_labels F
-GLIBC_2.2.6 __dn_expand F
 GLIBC_2.2.6 __dn_skipname F
 GLIBC_2.2.6 __fp_nquery F
 GLIBC_2.2.6 __fp_query F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 2b1e8b5f1c..d21c3250db 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -166,6 +166,7 @@ GLIBC_2.17 __daylight D 0x4
 GLIBC_2.17 __dcgettext F
 GLIBC_2.17 __default_morecore F
 GLIBC_2.17 __dgettext F
+GLIBC_2.17 __dn_expand F
 GLIBC_2.17 __dprintf_chk F
 GLIBC_2.17 __dup2 F
 GLIBC_2.17 __duplocale F
@@ -2431,6 +2432,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
index 6e740fad8f..4edce71c8e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
@@ -2,7 +2,6 @@ GLIBC_2.17 __b64_ntop F
 GLIBC_2.17 __b64_pton F
 GLIBC_2.17 __dn_comp F
 GLIBC_2.17 __dn_count_labels F
-GLIBC_2.17 __dn_expand F
 GLIBC_2.17 __dn_skipname F
 GLIBC_2.17 __fp_nquery F
 GLIBC_2.17 __fp_query F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 06c40bc719..7389dcc9f5 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -414,6 +414,7 @@ GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.0 dn_expand F
 GLIBC_2.0 dprintf F
 GLIBC_2.0 drand48 F
 GLIBC_2.0 drand48_r F
@@ -1945,6 +1946,7 @@ GLIBC_2.2 __ctype32_tolower D 0x8
 GLIBC_2.2 __ctype32_toupper D 0x8
 GLIBC_2.2 __cyg_profile_func_enter F
 GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __endmntent F
 GLIBC_2.2 __fbufsize F
 GLIBC_2.2 __flbf F
@@ -2523,6 +2525,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
index 019d8ba186..a788ff35b1 100644
--- a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
@@ -43,7 +43,6 @@ GLIBC_2.0 _getlong F
 GLIBC_2.0 _getshort F
 GLIBC_2.0 _res_opcodes D 0x80
 GLIBC_2.0 _sethtent F
-GLIBC_2.0 dn_expand F
 GLIBC_2.0 inet_net_ntop F
 GLIBC_2.0 inet_net_pton F
 GLIBC_2.0 inet_neta F
@@ -56,7 +55,6 @@ GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
-GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __res_hostalias F
 GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nmkquery F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index fbe5b91847..5cf0ed48d2 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -166,6 +166,7 @@ GLIBC_2.32 __daylight D 0x4
 GLIBC_2.32 __dcgettext F
 GLIBC_2.32 __default_morecore F
 GLIBC_2.32 __dgettext F
+GLIBC_2.32 __dn_expand F
 GLIBC_2.32 __dprintf_chk F
 GLIBC_2.32 __dup2 F
 GLIBC_2.32 __duplocale F
@@ -2190,6 +2191,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
index d8cdd51cd0..5c8e451dc7 100644
--- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
@@ -2,7 +2,6 @@ GLIBC_2.32 __b64_ntop F
 GLIBC_2.32 __b64_pton F
 GLIBC_2.32 __dn_comp F
 GLIBC_2.32 __dn_count_labels F
-GLIBC_2.32 __dn_expand F
 GLIBC_2.32 __dn_skipname F
 GLIBC_2.32 __fp_nquery F
 GLIBC_2.32 __fp_query F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 1d109b35a6..13b15723b9 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -317,6 +317,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
@@ -647,6 +648,7 @@ GLIBC_2.4 __daylight D 0x4
 GLIBC_2.4 __dcgettext F
 GLIBC_2.4 __default_morecore F
 GLIBC_2.4 __dgettext F
+GLIBC_2.4 __dn_expand F
 GLIBC_2.4 __dup2 F
 GLIBC_2.4 __duplocale F
 GLIBC_2.4 __endmntent F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
index f10275fe58..1049155010 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
@@ -2,7 +2,6 @@ GLIBC_2.4 __b64_ntop F
 GLIBC_2.4 __b64_pton F
 GLIBC_2.4 __dn_comp F
 GLIBC_2.4 __dn_count_labels F
-GLIBC_2.4 __dn_expand F
 GLIBC_2.4 __dn_skipname F
 GLIBC_2.4 __fp_nquery F
 GLIBC_2.4 __fp_query F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 2118b7e150..59d4b44227 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -314,6 +314,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
@@ -644,6 +645,7 @@ GLIBC_2.4 __daylight D 0x4
 GLIBC_2.4 __dcgettext F
 GLIBC_2.4 __default_morecore F
 GLIBC_2.4 __dgettext F
+GLIBC_2.4 __dn_expand F
 GLIBC_2.4 __dup2 F
 GLIBC_2.4 __duplocale F
 GLIBC_2.4 __endmntent F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
index f10275fe58..1049155010 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
@@ -2,7 +2,6 @@ GLIBC_2.4 __b64_ntop F
 GLIBC_2.4 __b64_pton F
 GLIBC_2.4 __dn_comp F
 GLIBC_2.4 __dn_count_labels F
-GLIBC_2.4 __dn_expand F
 GLIBC_2.4 __dn_skipname F
 GLIBC_2.4 __fp_nquery F
 GLIBC_2.4 __fp_query F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index ce2b458c64..34193704a4 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -166,6 +166,7 @@ GLIBC_2.29 __daylight D 0x4
 GLIBC_2.29 __dcgettext F
 GLIBC_2.29 __default_morecore F
 GLIBC_2.29 __dgettext F
+GLIBC_2.29 __dn_expand F
 GLIBC_2.29 __dprintf_chk F
 GLIBC_2.29 __dup2 F
 GLIBC_2.29 __duplocale F
@@ -2456,6 +2457,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
index 803d69e3c9..07cc06fe36 100644
--- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
@@ -2,7 +2,6 @@ GLIBC_2.29 __b64_ntop F
 GLIBC_2.29 __b64_pton F
 GLIBC_2.29 __dn_comp F
 GLIBC_2.29 __dn_count_labels F
-GLIBC_2.29 __dn_expand F
 GLIBC_2.29 __dn_skipname F
 GLIBC_2.29 __fp_nquery F
 GLIBC_2.29 __fp_query F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 3277fc81c0..be92a6384b 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -3,6 +3,7 @@ GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.0 dn_expand F
 GLIBC_2.0 forkpty F
 GLIBC_2.0 login F
 GLIBC_2.0 login_tty F
@@ -280,6 +281,7 @@ GLIBC_2.2 __daylight D 0x4
 GLIBC_2.2 __dcgettext F
 GLIBC_2.2 __default_morecore F
 GLIBC_2.2 __dgettext F
+GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __dup2 F
 GLIBC_2.2 __duplocale F
 GLIBC_2.2 __endmntent F
@@ -2402,6 +2404,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
index 04952c33e8..1bcda7408c 100644
--- a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
@@ -43,7 +43,6 @@ GLIBC_2.0 _getlong F
 GLIBC_2.0 _getshort F
 GLIBC_2.0 _res_opcodes D 0x40
 GLIBC_2.0 _sethtent F
-GLIBC_2.0 dn_expand F
 GLIBC_2.0 inet_net_ntop F
 GLIBC_2.0 inet_net_pton F
 GLIBC_2.0 inet_neta F
@@ -56,7 +55,6 @@ GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
-GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __res_hostalias F
 GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nmkquery F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 69aefe078b..552d09a3e8 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -400,6 +400,7 @@ GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.0 dn_expand F
 GLIBC_2.0 dprintf F
 GLIBC_2.0 drand48 F
 GLIBC_2.0 drand48_r F
@@ -1947,6 +1948,7 @@ GLIBC_2.2 __ctype32_tolower D 0x4
 GLIBC_2.2 __ctype32_toupper D 0x4
 GLIBC_2.2 __cyg_profile_func_enter F
 GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __endmntent F
 GLIBC_2.2 __fbufsize F
 GLIBC_2.2 __flbf F
@@ -2586,6 +2588,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/i386/libresolv.abilist b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
index 04952c33e8..1bcda7408c 100644
--- a/sysdeps/unix/sysv/linux/i386/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
@@ -43,7 +43,6 @@ GLIBC_2.0 _getlong F
 GLIBC_2.0 _getshort F
 GLIBC_2.0 _res_opcodes D 0x40
 GLIBC_2.0 _sethtent F
-GLIBC_2.0 dn_expand F
 GLIBC_2.0 inet_net_ntop F
 GLIBC_2.0 inet_net_pton F
 GLIBC_2.0 inet_neta F
@@ -56,7 +55,6 @@ GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
-GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __res_hostalias F
 GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nmkquery F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 6c146cdc00..6184d1e940 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -3,6 +3,7 @@ GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.0 dn_expand F
 GLIBC_2.0 forkpty F
 GLIBC_2.0 login F
 GLIBC_2.0 login_tty F
@@ -279,6 +280,7 @@ GLIBC_2.2 __divdf3 F
 GLIBC_2.2 __divdi3 F
 GLIBC_2.2 __divsf3 F
 GLIBC_2.2 __divtf3 F
+GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __dup2 F
 GLIBC_2.2 __duplocale F
 GLIBC_2.2 __endmntent F
@@ -2361,6 +2363,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
index 019d8ba186..a788ff35b1 100644
--- a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
@@ -43,7 +43,6 @@ GLIBC_2.0 _getlong F
 GLIBC_2.0 _getshort F
 GLIBC_2.0 _res_opcodes D 0x80
 GLIBC_2.0 _sethtent F
-GLIBC_2.0 dn_expand F
 GLIBC_2.0 inet_net_ntop F
 GLIBC_2.0 inet_net_pton F
 GLIBC_2.0 inet_neta F
@@ -56,7 +55,6 @@ GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
-GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __res_hostalias F
 GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nmkquery F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index ad71d64163..2953285d75 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -318,6 +318,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
@@ -633,6 +634,7 @@ GLIBC_2.4 __dcgettext F
 GLIBC_2.4 __default_morecore F
 GLIBC_2.4 __dgettext F
 GLIBC_2.4 __divdi3 F
+GLIBC_2.4 __dn_expand F
 GLIBC_2.4 __dup2 F
 GLIBC_2.4 __duplocale F
 GLIBC_2.4 __endmntent F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
index f10275fe58..1049155010 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
@@ -2,7 +2,6 @@ GLIBC_2.4 __b64_ntop F
 GLIBC_2.4 __b64_pton F
 GLIBC_2.4 __dn_comp F
 GLIBC_2.4 __dn_count_labels F
-GLIBC_2.4 __dn_expand F
 GLIBC_2.4 __dn_skipname F
 GLIBC_2.4 __fp_nquery F
 GLIBC_2.4 __fp_query F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 918e901040..175c3db4ac 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -401,6 +401,7 @@ GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.0 dn_expand F
 GLIBC_2.0 dprintf F
 GLIBC_2.0 drand48 F
 GLIBC_2.0 drand48_r F
@@ -1903,6 +1904,7 @@ GLIBC_2.2 __ctype32_tolower D 0x4
 GLIBC_2.2 __ctype32_toupper D 0x4
 GLIBC_2.2 __cyg_profile_func_enter F
 GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __endmntent F
 GLIBC_2.2 __fbufsize F
 GLIBC_2.2 __flbf F
@@ -2529,6 +2531,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
index 04952c33e8..1bcda7408c 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
@@ -43,7 +43,6 @@ GLIBC_2.0 _getlong F
 GLIBC_2.0 _getshort F
 GLIBC_2.0 _res_opcodes D 0x40
 GLIBC_2.0 _sethtent F
-GLIBC_2.0 dn_expand F
 GLIBC_2.0 inet_net_ntop F
 GLIBC_2.0 inet_net_pton F
 GLIBC_2.0 inet_neta F
@@ -56,7 +55,6 @@ GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
-GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __res_hostalias F
 GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nmkquery F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 6a0c6e98d6..a8cc0c5559 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -167,6 +167,7 @@ GLIBC_2.18 __daylight D 0x4
 GLIBC_2.18 __dcgettext F
 GLIBC_2.18 __default_morecore F
 GLIBC_2.18 __dgettext F
+GLIBC_2.18 __dn_expand F
 GLIBC_2.18 __dprintf_chk F
 GLIBC_2.18 __dup2 F
 GLIBC_2.18 __duplocale F
@@ -2507,6 +2508,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
index 7368c86433..38aa97d106 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
@@ -2,7 +2,6 @@ GLIBC_2.18 __b64_ntop F
 GLIBC_2.18 __b64_pton F
 GLIBC_2.18 __dn_comp F
 GLIBC_2.18 __dn_count_labels F
-GLIBC_2.18 __dn_expand F
 GLIBC_2.18 __dn_skipname F
 GLIBC_2.18 __fp_nquery F
 GLIBC_2.18 __fp_query F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index e63e6682b0..7473efb402 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -167,6 +167,7 @@ GLIBC_2.18 __daylight D 0x4
 GLIBC_2.18 __dcgettext F
 GLIBC_2.18 __default_morecore F
 GLIBC_2.18 __dgettext F
+GLIBC_2.18 __dn_expand F
 GLIBC_2.18 __dprintf_chk F
 GLIBC_2.18 __dup2 F
 GLIBC_2.18 __duplocale F
@@ -2504,6 +2505,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
index 7368c86433..38aa97d106 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
@@ -2,7 +2,6 @@ GLIBC_2.18 __b64_ntop F
 GLIBC_2.18 __b64_pton F
 GLIBC_2.18 __dn_comp F
 GLIBC_2.18 __dn_count_labels F
-GLIBC_2.18 __dn_expand F
 GLIBC_2.18 __dn_skipname F
 GLIBC_2.18 __fp_nquery F
 GLIBC_2.18 __fp_query F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 2701300d81..ae48952d9e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -399,6 +399,7 @@ GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.0 dn_expand F
 GLIBC_2.0 dprintf F
 GLIBC_2.0 drand48 F
 GLIBC_2.0 drand48_r F
@@ -1516,6 +1517,7 @@ GLIBC_2.2 __cxa_atexit F
 GLIBC_2.2 __cxa_finalize F
 GLIBC_2.2 __cyg_profile_func_enter F
 GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __duplocale F
 GLIBC_2.2 __endmntent F
 GLIBC_2.2 __fbufsize F
@@ -2494,6 +2496,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
index 04952c33e8..1bcda7408c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
@@ -43,7 +43,6 @@ GLIBC_2.0 _getlong F
 GLIBC_2.0 _getshort F
 GLIBC_2.0 _res_opcodes D 0x40
 GLIBC_2.0 _sethtent F
-GLIBC_2.0 dn_expand F
 GLIBC_2.0 inet_net_ntop F
 GLIBC_2.0 inet_net_pton F
 GLIBC_2.0 inet_neta F
@@ -56,7 +55,6 @@ GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
-GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __res_hostalias F
 GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nmkquery F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index ac84a5c178..db09d569db 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -399,6 +399,7 @@ GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.0 dn_expand F
 GLIBC_2.0 dprintf F
 GLIBC_2.0 drand48 F
 GLIBC_2.0 drand48_r F
@@ -1514,6 +1515,7 @@ GLIBC_2.2 __cxa_atexit F
 GLIBC_2.2 __cxa_finalize F
 GLIBC_2.2 __cyg_profile_func_enter F
 GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __duplocale F
 GLIBC_2.2 __endmntent F
 GLIBC_2.2 __fbufsize F
@@ -2492,6 +2494,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 87f8cc88b7..7d2765f77f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -399,6 +399,7 @@ GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.0 dn_expand F
 GLIBC_2.0 dprintf F
 GLIBC_2.0 drand48 F
 GLIBC_2.0 drand48_r F
@@ -1514,6 +1515,7 @@ GLIBC_2.2 __cxa_atexit F
 GLIBC_2.2 __cxa_finalize F
 GLIBC_2.2 __cyg_profile_func_enter F
 GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __duplocale F
 GLIBC_2.2 __endmntent F
 GLIBC_2.2 __fbufsize F
@@ -2500,6 +2502,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
index 04952c33e8..1bcda7408c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
@@ -43,7 +43,6 @@ GLIBC_2.0 _getlong F
 GLIBC_2.0 _getshort F
 GLIBC_2.0 _res_opcodes D 0x40
 GLIBC_2.0 _sethtent F
-GLIBC_2.0 dn_expand F
 GLIBC_2.0 inet_net_ntop F
 GLIBC_2.0 inet_net_pton F
 GLIBC_2.0 inet_neta F
@@ -56,7 +55,6 @@ GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
-GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __res_hostalias F
 GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nmkquery F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 0ea87ac821..984a681332 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -397,6 +397,7 @@ GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.0 dn_expand F
 GLIBC_2.0 dprintf F
 GLIBC_2.0 drand48 F
 GLIBC_2.0 drand48_r F
@@ -1510,6 +1511,7 @@ GLIBC_2.2 __cxa_atexit F
 GLIBC_2.2 __cxa_finalize F
 GLIBC_2.2 __cyg_profile_func_enter F
 GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __duplocale F
 GLIBC_2.2 __endmntent F
 GLIBC_2.2 __fbufsize F
@@ -2412,6 +2414,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
index 019d8ba186..a788ff35b1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
@@ -43,7 +43,6 @@ GLIBC_2.0 _getlong F
 GLIBC_2.0 _getshort F
 GLIBC_2.0 _res_opcodes D 0x80
 GLIBC_2.0 _sethtent F
-GLIBC_2.0 dn_expand F
 GLIBC_2.0 inet_net_ntop F
 GLIBC_2.0 inet_net_pton F
 GLIBC_2.0 inet_neta F
@@ -56,7 +55,6 @@ GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
-GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __res_hostalias F
 GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nmkquery F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 073e5997b8..4c7757b05c 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -171,6 +171,7 @@ GLIBC_2.21 __default_morecore F
 GLIBC_2.21 __dgettext F
 GLIBC_2.21 __divdf3 F
 GLIBC_2.21 __divsf3 F
+GLIBC_2.21 __dn_expand F
 GLIBC_2.21 __dprintf_chk F
 GLIBC_2.21 __dup2 F
 GLIBC_2.21 __duplocale F
@@ -2546,6 +2547,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
index 07c3f33fc6..9a65f29b20 100644
--- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
@@ -2,7 +2,6 @@ GLIBC_2.21 __b64_ntop F
 GLIBC_2.21 __b64_pton F
 GLIBC_2.21 __dn_comp F
 GLIBC_2.21 __dn_count_labels F
-GLIBC_2.21 __dn_expand F
 GLIBC_2.21 __dn_skipname F
 GLIBC_2.21 __fp_nquery F
 GLIBC_2.21 __fp_query F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 104c1e8fa9..3f62383465 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -410,6 +410,7 @@ GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.0 dn_expand F
 GLIBC_2.0 dprintf F
 GLIBC_2.0 drand48 F
 GLIBC_2.0 drand48_r F
@@ -1909,6 +1910,7 @@ GLIBC_2.2 __ctype32_tolower D 0x4
 GLIBC_2.2 __ctype32_toupper D 0x4
 GLIBC_2.2 __cyg_profile_func_enter F
 GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __endmntent F
 GLIBC_2.2 __fbufsize F
 GLIBC_2.2 __flbf F
@@ -2556,6 +2558,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
index 04952c33e8..1bcda7408c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
@@ -43,7 +43,6 @@ GLIBC_2.0 _getlong F
 GLIBC_2.0 _getshort F
 GLIBC_2.0 _res_opcodes D 0x40
 GLIBC_2.0 _sethtent F
-GLIBC_2.0 dn_expand F
 GLIBC_2.0 inet_net_ntop F
 GLIBC_2.0 inet_net_pton F
 GLIBC_2.0 inet_neta F
@@ -56,7 +55,6 @@ GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
-GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __res_hostalias F
 GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nmkquery F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 918a890b22..fc04cfefd0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -410,6 +410,7 @@ GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.0 dn_expand F
 GLIBC_2.0 dprintf F
 GLIBC_2.0 drand48 F
 GLIBC_2.0 drand48_r F
@@ -1913,6 +1914,7 @@ GLIBC_2.2 __ctype32_tolower D 0x4
 GLIBC_2.2 __ctype32_toupper D 0x4
 GLIBC_2.2 __cyg_profile_func_enter F
 GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __endmntent F
 GLIBC_2.2 __fbufsize F
 GLIBC_2.2 __flbf F
@@ -2589,6 +2591,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 6a8eabf910..afd6266d11 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -318,6 +318,7 @@ GLIBC_2.3 __daylight D 0x4
 GLIBC_2.3 __dcgettext F
 GLIBC_2.3 __default_morecore F
 GLIBC_2.3 __dgettext F
+GLIBC_2.3 __dn_expand F
 GLIBC_2.3 __dup2 F
 GLIBC_2.3 __duplocale F
 GLIBC_2.3 __endmntent F
@@ -2325,6 +2326,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
index b6e579f3c0..213741bba9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
@@ -2,7 +2,6 @@ GLIBC_2.3 __b64_ntop F
 GLIBC_2.3 __b64_pton F
 GLIBC_2.3 __dn_comp F
 GLIBC_2.3 __dn_count_labels F
-GLIBC_2.3 __dn_expand F
 GLIBC_2.3 __dn_skipname F
 GLIBC_2.3 __fp_nquery F
 GLIBC_2.3 __fp_query F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 9990625981..87790e6ad0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -165,6 +165,7 @@ GLIBC_2.17 __daylight D 0x4
 GLIBC_2.17 __dcgettext F
 GLIBC_2.17 __default_morecore F
 GLIBC_2.17 __dgettext F
+GLIBC_2.17 __dn_expand F
 GLIBC_2.17 __dprintf_chk F
 GLIBC_2.17 __dup2 F
 GLIBC_2.17 __duplocale F
@@ -2627,6 +2628,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
index 6e740fad8f..4edce71c8e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
@@ -2,7 +2,6 @@ GLIBC_2.17 __b64_ntop F
 GLIBC_2.17 __b64_pton F
 GLIBC_2.17 __dn_comp F
 GLIBC_2.17 __dn_count_labels F
-GLIBC_2.17 __dn_expand F
 GLIBC_2.17 __dn_skipname F
 GLIBC_2.17 __fp_nquery F
 GLIBC_2.17 __fp_query F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 53b2d33900..37d3db3786 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -166,6 +166,7 @@ GLIBC_2.33 __daylight D 0x4
 GLIBC_2.33 __dcgettext F
 GLIBC_2.33 __default_morecore F
 GLIBC_2.33 __dgettext F
+GLIBC_2.33 __dn_expand F
 GLIBC_2.33 __dprintf_chk F
 GLIBC_2.33 __dup2 F
 GLIBC_2.33 __duplocale F
@@ -2192,6 +2193,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
index d17a2d7a96..349ca1ddbb 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
@@ -2,7 +2,6 @@ GLIBC_2.33 __b64_ntop F
 GLIBC_2.33 __b64_pton F
 GLIBC_2.33 __dn_comp F
 GLIBC_2.33 __dn_count_labels F
-GLIBC_2.33 __dn_expand F
 GLIBC_2.33 __dn_skipname F
 GLIBC_2.33 __fp_nquery F
 GLIBC_2.33 __fp_query F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 4d1081c11a..5e04f1975c 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -167,6 +167,7 @@ GLIBC_2.27 __daylight D 0x4
 GLIBC_2.27 __dcgettext F
 GLIBC_2.27 __default_morecore F
 GLIBC_2.27 __dgettext F
+GLIBC_2.27 __dn_expand F
 GLIBC_2.27 __dprintf_chk F
 GLIBC_2.27 __dup2 F
 GLIBC_2.27 __duplocale F
@@ -2392,6 +2393,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
index 86bd38d3da..470e635d24 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
@@ -2,7 +2,6 @@ GLIBC_2.27 __b64_ntop F
 GLIBC_2.27 __b64_pton F
 GLIBC_2.27 __dn_comp F
 GLIBC_2.27 __dn_count_labels F
-GLIBC_2.27 __dn_expand F
 GLIBC_2.27 __dn_skipname F
 GLIBC_2.27 __fp_nquery F
 GLIBC_2.27 __fp_query F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index db57e89c16..ec5856bf3d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -400,6 +400,7 @@ GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.0 dn_expand F
 GLIBC_2.0 dprintf F
 GLIBC_2.0 drand48 F
 GLIBC_2.0 drand48_r F
@@ -1907,6 +1908,7 @@ GLIBC_2.2 __ctype32_tolower D 0x4
 GLIBC_2.2 __ctype32_toupper D 0x4
 GLIBC_2.2 __cyg_profile_func_enter F
 GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __endmntent F
 GLIBC_2.2 __fbufsize F
 GLIBC_2.2 __flbf F
@@ -2554,6 +2556,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
index 04952c33e8..1bcda7408c 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
@@ -43,7 +43,6 @@ GLIBC_2.0 _getlong F
 GLIBC_2.0 _getshort F
 GLIBC_2.0 _res_opcodes D 0x40
 GLIBC_2.0 _sethtent F
-GLIBC_2.0 dn_expand F
 GLIBC_2.0 inet_net_ntop F
 GLIBC_2.0 inet_net_pton F
 GLIBC_2.0 inet_neta F
@@ -56,7 +55,6 @@ GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
-GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __res_hostalias F
 GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nmkquery F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index b8714e003f..443c2c6aeb 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -260,6 +260,7 @@ GLIBC_2.2 __default_morecore F
 GLIBC_2.2 __deregister_frame F
 GLIBC_2.2 __deregister_frame_info F
 GLIBC_2.2 __dgettext F
+GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __dup2 F
 GLIBC_2.2 __duplocale F
 GLIBC_2.2 __endmntent F
@@ -2362,6 +2363,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
index 555833e09e..dd96d28ed9 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
@@ -2,7 +2,6 @@ GLIBC_2.2 __b64_ntop F
 GLIBC_2.2 __b64_pton F
 GLIBC_2.2 __dn_comp F
 GLIBC_2.2 __dn_count_labels F
-GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __dn_skipname F
 GLIBC_2.2 __fp_nquery F
 GLIBC_2.2 __fp_query F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 5ad49b3fe2..ca52bf6381 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -7,6 +7,7 @@ GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.0 dn_expand F
 GLIBC_2.0 forkpty F
 GLIBC_2.0 login F
 GLIBC_2.0 login_tty F
@@ -280,6 +281,7 @@ GLIBC_2.2 __dcgettext F
 GLIBC_2.2 __default_morecore F
 GLIBC_2.2 __deregister_frame_info F
 GLIBC_2.2 __dgettext F
+GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __dup2 F
 GLIBC_2.2 __duplocale F
 GLIBC_2.2 __endmntent F
@@ -2409,6 +2411,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
index 04952c33e8..1bcda7408c 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
@@ -43,7 +43,6 @@ GLIBC_2.0 _getlong F
 GLIBC_2.0 _getshort F
 GLIBC_2.0 _res_opcodes D 0x40
 GLIBC_2.0 _sethtent F
-GLIBC_2.0 dn_expand F
 GLIBC_2.0 inet_net_ntop F
 GLIBC_2.0 inet_net_pton F
 GLIBC_2.0 inet_neta F
@@ -56,7 +55,6 @@ GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
-GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __res_hostalias F
 GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nmkquery F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 93432e0a17..7c964cc903 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -7,6 +7,7 @@ GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.0 dn_expand F
 GLIBC_2.0 forkpty F
 GLIBC_2.0 login F
 GLIBC_2.0 login_tty F
@@ -280,6 +281,7 @@ GLIBC_2.2 __dcgettext F
 GLIBC_2.2 __default_morecore F
 GLIBC_2.2 __deregister_frame_info F
 GLIBC_2.2 __dgettext F
+GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __dup2 F
 GLIBC_2.2 __duplocale F
 GLIBC_2.2 __endmntent F
@@ -2406,6 +2408,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
index 04952c33e8..1bcda7408c 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
@@ -43,7 +43,6 @@ GLIBC_2.0 _getlong F
 GLIBC_2.0 _getshort F
 GLIBC_2.0 _res_opcodes D 0x40
 GLIBC_2.0 _sethtent F
-GLIBC_2.0 dn_expand F
 GLIBC_2.0 inet_net_ntop F
 GLIBC_2.0 inet_net_pton F
 GLIBC_2.0 inet_neta F
@@ -56,7 +55,6 @@ GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
-GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __res_hostalias F
 GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nmkquery F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index db1089b05c..5a70a989f1 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -402,6 +402,7 @@ GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.0 dn_expand F
 GLIBC_2.0 dprintf F
 GLIBC_2.0 drand48 F
 GLIBC_2.0 drand48_r F
@@ -1905,6 +1906,7 @@ GLIBC_2.2 __ctype32_tolower D 0x4
 GLIBC_2.2 __ctype32_toupper D 0x4
 GLIBC_2.2 __cyg_profile_func_enter F
 GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __endmntent F
 GLIBC_2.2 __fbufsize F
 GLIBC_2.2 __flbf F
@@ -2549,6 +2551,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
index 04952c33e8..1bcda7408c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
@@ -43,7 +43,6 @@ GLIBC_2.0 _getlong F
 GLIBC_2.0 _getshort F
 GLIBC_2.0 _res_opcodes D 0x40
 GLIBC_2.0 _sethtent F
-GLIBC_2.0 dn_expand F
 GLIBC_2.0 inet_net_ntop F
 GLIBC_2.0 inet_net_pton F
 GLIBC_2.0 inet_neta F
@@ -56,7 +55,6 @@ GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
-GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __res_hostalias F
 GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nmkquery F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index f34029397e..4255d90086 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -7,6 +7,7 @@ GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
 GLIBC_2.0 dlopen F
 GLIBC_2.0 dlsym F
+GLIBC_2.0 dn_expand F
 GLIBC_2.0 forkpty F
 GLIBC_2.0 login F
 GLIBC_2.0 login_tty F
@@ -317,6 +318,7 @@ GLIBC_2.2 __default_morecore F
 GLIBC_2.2 __deregister_frame F
 GLIBC_2.2 __deregister_frame_info F
 GLIBC_2.2 __dgettext F
+GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __dup2 F
 GLIBC_2.2 __duplocale F
 GLIBC_2.2 __endmntent F
@@ -2384,6 +2386,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
index 019d8ba186..a788ff35b1 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
@@ -43,7 +43,6 @@ GLIBC_2.0 _getlong F
 GLIBC_2.0 _getshort F
 GLIBC_2.0 _res_opcodes D 0x80
 GLIBC_2.0 _sethtent F
-GLIBC_2.0 dn_expand F
 GLIBC_2.0 inet_net_ntop F
 GLIBC_2.0 inet_net_pton F
 GLIBC_2.0 inet_neta F
@@ -56,7 +55,6 @@ GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
-GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __res_hostalias F
 GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nmkquery F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 876c9a0a08..6448d1d2c4 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -248,6 +248,7 @@ GLIBC_2.2.5 __daylight D 0x4
 GLIBC_2.2.5 __dcgettext F
 GLIBC_2.2.5 __default_morecore F
 GLIBC_2.2.5 __dgettext F
+GLIBC_2.2.5 __dn_expand F
 GLIBC_2.2.5 __dup2 F
 GLIBC_2.2.5 __duplocale F
 GLIBC_2.2.5 __endmntent F
@@ -2340,6 +2341,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
index 39e2252c76..b82c0c212e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
@@ -2,7 +2,6 @@ GLIBC_2.2.5 __b64_ntop F
 GLIBC_2.2.5 __b64_pton F
 GLIBC_2.2.5 __dn_comp F
 GLIBC_2.2.5 __dn_count_labels F
-GLIBC_2.2.5 __dn_expand F
 GLIBC_2.2.5 __dn_skipname F
 GLIBC_2.2.5 __fp_nquery F
 GLIBC_2.2.5 __fp_query F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 063673cf6d..6f60f98e66 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -166,6 +166,7 @@ GLIBC_2.16 __daylight D 0x4
 GLIBC_2.16 __dcgettext F
 GLIBC_2.16 __default_morecore F
 GLIBC_2.16 __dgettext F
+GLIBC_2.16 __dn_expand F
 GLIBC_2.16 __dprintf_chk F
 GLIBC_2.16 __dup2 F
 GLIBC_2.16 __duplocale F
@@ -2446,6 +2447,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
index 96af745190..20574620f8 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
@@ -2,7 +2,6 @@ GLIBC_2.16 __b64_ntop F
 GLIBC_2.16 __b64_pton F
 GLIBC_2.16 __dn_comp F
 GLIBC_2.16 __dn_count_labels F
-GLIBC_2.16 __dn_expand F
 GLIBC_2.16 __dn_skipname F
 GLIBC_2.16 __fp_nquery F
 GLIBC_2.16 __fp_query F
-- 
2.31.1



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

* [PATCH 13/30] resolv: Move _getlong, _getshort, __putlong, __putshort to res-putget
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (11 preceding siblings ...)
  2021-07-02 18:48 ` [PATCH 12/30] resolv: Move dn_expand to " Florian Weimer
@ 2021-07-02 18:48 ` Florian Weimer
  2021-07-02 18:48 ` [PATCH 14/30] resolv: Move dn_comp to its own file and into libc Florian Weimer
                   ` (16 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:48 UTC (permalink / raw)
  To: libc-alpha

And reformat to GNU style.
---
 resolv/Makefile     |   1 +
 resolv/res-putget.c | 112 ++++++++++++++++++++++++++++++++++++++++++++
 resolv/res_comp.c   |  15 ------
 3 files changed, 113 insertions(+), 15 deletions(-)
 create mode 100644 resolv/res-putget.c

diff --git a/resolv/Makefile b/resolv/Makefile
index 3e7de81fb5..07cac54d3a 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -139,6 +139,7 @@ libresolv-routines := \
   ns_print \
   ns_samedomain \
   ns_ttl \
+  res-putget \
   res_comp \
   res_data \
   res_debug \
diff --git a/resolv/res-putget.c b/resolv/res-putget.c
new file mode 100644
index 0000000000..8d6e2aedd5
--- /dev/null
+++ b/resolv/res-putget.c
@@ -0,0 +1,112 @@
+/* Legacy 16-bit, 32-bit marshal/unmarshal functions.
+   Copyright (C) 1995-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/>.  */
+
+/*
+ * Copyright (c) 1985, 1993
+ *    The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Portions Copyright (c) 1993 by Digital Equipment Corporation.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies, and that
+ * the name of Digital Equipment Corporation not be used in advertising or
+ * publicity pertaining to distribution of the document or software without
+ * specific, written prior permission.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
+ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+/*
+ * Portions Copyright (c) 1996-1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <resolv.h>
+
+void
+__putlong (uint32_t src, unsigned char *dst)
+{
+  ns_put32 (src, dst);
+}
+libresolv_hidden_def (__putlong)
+
+void
+__putshort (uint16_t src, unsigned char *dst)
+{
+  ns_put16 (src, dst);
+}
+libresolv_hidden_def (__putshort)
+
+uint32_t
+_getlong (const unsigned char *src)
+{
+  return ns_get32 (src);
+}
+
+uint16_t
+_getshort (const unsigned char *src)
+{
+  return ns_get16 (src);
+}
diff --git a/resolv/res_comp.c b/resolv/res_comp.c
index 42e73a1f00..80faea7e5e 100644
--- a/resolv/res_comp.c
+++ b/resolv/res_comp.c
@@ -234,18 +234,3 @@ res_dnok (const char *dn)
   return printable_string (dn) && ns_name_pton (dn, buf, sizeof (buf)) >= 0;
 }
 libresolv_hidden_def (res_dnok)
-
-/*
- * This module must export the following externally-visible symbols:
- *	___putlong
- *	___putshort
- *	__getlong
- *	__getshort
- * Note that one _ comes from C and the others come from us.
- */
-void __putlong(uint32_t src, u_char *dst) { ns_put32(src, dst); }
-libresolv_hidden_def (__putlong)
-void __putshort(uint16_t src, u_char *dst) { ns_put16(src, dst); }
-libresolv_hidden_def (__putshort)
-uint32_t _getlong(const u_char *src) { return (ns_get32(src)); }
-uint16_t _getshort(const u_char *src) { return (ns_get16(src)); }
-- 
2.31.1



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

* [PATCH 14/30] resolv: Move dn_comp to its own file and into libc
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (12 preceding siblings ...)
  2021-07-02 18:48 ` [PATCH 13/30] resolv: Move _getlong, _getshort, __putlong, __putshort to res-putget Florian Weimer
@ 2021-07-02 18:48 ` Florian Weimer
  2021-07-02 18:48 ` [PATCH 15/30] resolv: Move dn_skipname " Florian Weimer
                   ` (15 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:48 UTC (permalink / raw)
  To: libc-alpha

And reformat it to GNU style.

dn_comp is used in various programs, so keep it as a non-deprecated
symbol.  Switch to dn_comp (not __dn_comp) for the ABI name.  There
are no internal users, so interposition is not a problem.

The __dn_comp symbol was moved with scripts/move-symbol-to-libc.py
--no-new-version.  dn_comp@@GLIBC_2.34 was added with
make update-all-abi.
---
 include/resolv.h                              |   1 -
 resolv/Makefile                               |   1 +
 resolv/Versions                               |   3 +-
 resolv/dn_comp.c                              | 103 ++++++++++++++++++
 resolv/res_comp.c                             |  15 ---
 resolv/resolv.h                               |   1 -
 sysdeps/mach/hurd/i386/libc.abilist           |   2 +
 sysdeps/mach/hurd/i386/libresolv.abilist      |   1 -
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |   2 +
 .../unix/sysv/linux/aarch64/libresolv.abilist |   1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |   2 +
 .../unix/sysv/linux/alpha/libresolv.abilist   |   1 -
 sysdeps/unix/sysv/linux/arc/libc.abilist      |   2 +
 sysdeps/unix/sysv/linux/arc/libresolv.abilist |   1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |   2 +
 .../unix/sysv/linux/arm/be/libresolv.abilist  |   1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |   2 +
 .../unix/sysv/linux/arm/le/libresolv.abilist  |   1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist     |   2 +
 .../unix/sysv/linux/csky/libresolv.abilist    |   1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |   2 +
 .../unix/sysv/linux/hppa/libresolv.abilist    |   1 -
 sysdeps/unix/sysv/linux/i386/libc.abilist     |   2 +
 .../unix/sysv/linux/i386/libresolv.abilist    |   1 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |   2 +
 .../unix/sysv/linux/ia64/libresolv.abilist    |   1 -
 .../sysv/linux/m68k/coldfire/libc.abilist     |   2 +
 .../linux/m68k/coldfire/libresolv.abilist     |   1 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |   2 +
 .../sysv/linux/m68k/m680x0/libresolv.abilist  |   1 -
 .../sysv/linux/microblaze/be/libc.abilist     |   2 +
 .../linux/microblaze/be/libresolv.abilist     |   1 -
 .../sysv/linux/microblaze/le/libc.abilist     |   2 +
 .../linux/microblaze/le/libresolv.abilist     |   1 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |   2 +
 .../sysv/linux/mips/mips32/libresolv.abilist  |   1 -
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |   2 +
 .../sysv/linux/mips/mips64/n32/libc.abilist   |   2 +
 .../linux/mips/mips64/n32/libresolv.abilist   |   1 -
 .../sysv/linux/mips/mips64/n64/libc.abilist   |   2 +
 .../linux/mips/mips64/n64/libresolv.abilist   |   1 -
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |   2 +
 .../unix/sysv/linux/nios2/libresolv.abilist   |   1 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |   2 +
 .../linux/powerpc/powerpc32/libresolv.abilist |   1 -
 .../powerpc/powerpc32/nofpu/libc.abilist      |   2 +
 .../linux/powerpc/powerpc64/be/libc.abilist   |   2 +
 .../powerpc/powerpc64/be/libresolv.abilist    |   1 -
 .../linux/powerpc/powerpc64/le/libc.abilist   |   2 +
 .../powerpc/powerpc64/le/libresolv.abilist    |   1 -
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |   2 +
 .../sysv/linux/riscv/rv32/libresolv.abilist   |   1 -
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |   2 +
 .../sysv/linux/riscv/rv64/libresolv.abilist   |   1 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist |   2 +
 .../sysv/linux/s390/s390-32/libresolv.abilist |   1 -
 .../unix/sysv/linux/s390/s390-64/libc.abilist |   2 +
 .../sysv/linux/s390/s390-64/libresolv.abilist |   1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |   2 +
 .../unix/sysv/linux/sh/be/libresolv.abilist   |   1 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |   2 +
 .../unix/sysv/linux/sh/le/libresolv.abilist   |   1 -
 .../sysv/linux/sparc/sparc32/libc.abilist     |   2 +
 .../linux/sparc/sparc32/libresolv.abilist     |   1 -
 .../sysv/linux/sparc/sparc64/libc.abilist     |   2 +
 .../linux/sparc/sparc64/libresolv.abilist     |   1 -
 .../unix/sysv/linux/x86_64/64/libc.abilist    |   2 +
 .../sysv/linux/x86_64/64/libresolv.abilist    |   1 -
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |   2 +
 .../sysv/linux/x86_64/x32/libresolv.abilist   |   1 -
 70 files changed, 172 insertions(+), 49 deletions(-)
 create mode 100644 resolv/dn_comp.c

diff --git a/include/resolv.h b/include/resolv.h
index 44fc0c346f..602f184643 100644
--- a/include/resolv.h
+++ b/include/resolv.h
@@ -44,7 +44,6 @@ libresolv_hidden_proto (_sethtent)
 libresolv_hidden_proto (_gethtent)
 libresolv_hidden_proto (_gethtbyaddr)
 libresolv_hidden_proto (_gethtbyname2)
-libresolv_hidden_proto (__dn_comp)
 libresolv_hidden_proto (__dn_skipname)
 libresolv_hidden_proto (__res_hnok)
 libresolv_hidden_proto (__res_dnok)
diff --git a/resolv/Makefile b/resolv/Makefile
index 07cac54d3a..936518523d 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -28,6 +28,7 @@ headers	:= resolv.h bits/types/res_state.h \
 	   sys/bitypes.h
 
 routines := \
+  dn_comp \
   dn_expand \
   herror \
   inet_addr \
diff --git a/resolv/Versions b/resolv/Versions
index 4a9203042f..e36cf45cfa 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -1,5 +1,6 @@
 libc {
   GLIBC_2.0 {
+    __dn_comp;
     __h_errno_location;
     __res_randomid;
     _res;
@@ -42,6 +43,7 @@ libc {
     gai_suspend;
     getaddrinfo_a;
 %endif
+    dn_comp;
     dn_expand;
     ns_name_compress;
     ns_name_ntop;
@@ -79,7 +81,6 @@ libresolv {
   GLIBC_2.0 {
     __b64_ntop;
     __b64_pton;
-    __dn_comp;
     __dn_count_labels;
     __dn_skipname;
     __fp_nquery;
diff --git a/resolv/dn_comp.c b/resolv/dn_comp.c
new file mode 100644
index 0000000000..4506a628ac
--- /dev/null
+++ b/resolv/dn_comp.c
@@ -0,0 +1,103 @@
+/* Compressing a DNS domain name from presentation form to wire format.
+   Copyright (C) 1995-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/>.  */
+
+/*
+ * Copyright (c) 1985, 1993
+ *    The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Portions Copyright (c) 1993 by Digital Equipment Corporation.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies, and that
+ * the name of Digital Equipment Corporation not be used in advertising or
+ * publicity pertaining to distribution of the document or software without
+ * specific, written prior permission.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
+ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+/*
+ * Portions Copyright (c) 1996-1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <resolv.h>
+
+/* Packs domain name SRC in presentation form into DST.  Returns the
+   size of the compressed name or -1.  DSTSIZ is the size of the array
+   pointed to by COMPDN.  */
+int
+___dn_comp (const char *src, unsigned char *dst, int dstsiz,
+            unsigned char **dnptrs, unsigned char **lastdnptr)
+{
+  return __ns_name_compress (src, dst, (size_t) dstsiz,
+                             (const unsigned char **) dnptrs,
+                             (const unsigned char **) lastdnptr);
+}
+versioned_symbol (libc, ___dn_comp, dn_comp, GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libresolv, ___dn_comp, __dn_comp, GLIBC_2_0);
+#endif
diff --git a/resolv/res_comp.c b/resolv/res_comp.c
index 80faea7e5e..1930f17302 100644
--- a/resolv/res_comp.c
+++ b/resolv/res_comp.c
@@ -92,21 +92,6 @@
 #include <string.h>
 #include <unistd.h>
 
-/*
- * Pack domain name 'exp_dn' in presentation form into 'comp_dn'.
- * Return the size of the compressed name or -1.
- * 'length' is the size of the array pointed to by 'comp_dn'.
- */
-int
-dn_comp(const char *src, u_char *dst, int dstsiz,
-	u_char **dnptrs, u_char **lastdnptr)
-{
-	return (ns_name_compress(src, dst, (size_t)dstsiz,
-				 (const u_char **)dnptrs,
-				 (const u_char **)lastdnptr));
-}
-libresolv_hidden_def (dn_comp)
-
 /*
  * Skip over a compressed domain name. Return the size or -1.
  */
diff --git a/resolv/resolv.h b/resolv/resolv.h
index 5216c1f48c..78ad81577a 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -210,7 +210,6 @@ __END_DECLS
 
 #define b64_ntop		__b64_ntop
 #define b64_pton		__b64_pton
-#define dn_comp			__dn_comp
 #define dn_count_labels		__dn_count_labels
 #define dn_skipname		__dn_skipname
 #define fp_resstat		__fp_resstat
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index f7e2541856..5692245dbb 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -244,6 +244,7 @@ GLIBC_2.2.6 __dcgettext F
 GLIBC_2.2.6 __default_morecore F
 GLIBC_2.2.6 __dgettext F
 GLIBC_2.2.6 __divdi3 F
+GLIBC_2.2.6 __dn_comp F
 GLIBC_2.2.6 __dn_expand F
 GLIBC_2.2.6 __dup2 F
 GLIBC_2.2.6 __duplocale F
@@ -2235,6 +2236,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index 85460b7747..0132f6cef2 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.2.6 __b64_ntop F
 GLIBC_2.2.6 __b64_pton F
-GLIBC_2.2.6 __dn_comp F
 GLIBC_2.2.6 __dn_count_labels F
 GLIBC_2.2.6 __dn_skipname F
 GLIBC_2.2.6 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index d21c3250db..48737901ec 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -166,6 +166,7 @@ GLIBC_2.17 __daylight D 0x4
 GLIBC_2.17 __dcgettext F
 GLIBC_2.17 __default_morecore F
 GLIBC_2.17 __dgettext F
+GLIBC_2.17 __dn_comp F
 GLIBC_2.17 __dn_expand F
 GLIBC_2.17 __dprintf_chk F
 GLIBC_2.17 __dup2 F
@@ -2432,6 +2433,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
index 4edce71c8e..50019b9bdd 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.17 __b64_ntop F
 GLIBC_2.17 __b64_pton F
-GLIBC_2.17 __dn_comp F
 GLIBC_2.17 __dn_count_labels F
 GLIBC_2.17 __dn_skipname F
 GLIBC_2.17 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 7389dcc9f5..0afad4b86e 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -124,6 +124,7 @@ GLIBC_2.0 __divl F
 GLIBC_2.0 __divlu F
 GLIBC_2.0 __divq F
 GLIBC_2.0 __divqu F
+GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dup2 F
 GLIBC_2.0 __environ D 0x8
 GLIBC_2.0 __errno_location F
@@ -2525,6 +2526,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
index a788ff35b1..cee6c22004 100644
--- a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
-GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dn_count_labels F
 GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 5cf0ed48d2..b6315f3a0f 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -166,6 +166,7 @@ GLIBC_2.32 __daylight D 0x4
 GLIBC_2.32 __dcgettext F
 GLIBC_2.32 __default_morecore F
 GLIBC_2.32 __dgettext F
+GLIBC_2.32 __dn_comp F
 GLIBC_2.32 __dn_expand F
 GLIBC_2.32 __dprintf_chk F
 GLIBC_2.32 __dup2 F
@@ -2191,6 +2192,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
index 5c8e451dc7..f9326b9b22 100644
--- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.32 __b64_ntop F
 GLIBC_2.32 __b64_pton F
-GLIBC_2.32 __dn_comp F
 GLIBC_2.32 __dn_count_labels F
 GLIBC_2.32 __dn_skipname F
 GLIBC_2.32 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 13b15723b9..939289f202 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -317,6 +317,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
@@ -648,6 +649,7 @@ GLIBC_2.4 __daylight D 0x4
 GLIBC_2.4 __dcgettext F
 GLIBC_2.4 __default_morecore F
 GLIBC_2.4 __dgettext F
+GLIBC_2.4 __dn_comp F
 GLIBC_2.4 __dn_expand F
 GLIBC_2.4 __dup2 F
 GLIBC_2.4 __duplocale F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
index 1049155010..e67eec5b80 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.4 __b64_ntop F
 GLIBC_2.4 __b64_pton F
-GLIBC_2.4 __dn_comp F
 GLIBC_2.4 __dn_count_labels F
 GLIBC_2.4 __dn_skipname F
 GLIBC_2.4 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 59d4b44227..3d3a886651 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -314,6 +314,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
@@ -645,6 +646,7 @@ GLIBC_2.4 __daylight D 0x4
 GLIBC_2.4 __dcgettext F
 GLIBC_2.4 __default_morecore F
 GLIBC_2.4 __dgettext F
+GLIBC_2.4 __dn_comp F
 GLIBC_2.4 __dn_expand F
 GLIBC_2.4 __dup2 F
 GLIBC_2.4 __duplocale F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
index 1049155010..e67eec5b80 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.4 __b64_ntop F
 GLIBC_2.4 __b64_pton F
-GLIBC_2.4 __dn_comp F
 GLIBC_2.4 __dn_count_labels F
 GLIBC_2.4 __dn_skipname F
 GLIBC_2.4 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 34193704a4..6cb66a1957 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -166,6 +166,7 @@ GLIBC_2.29 __daylight D 0x4
 GLIBC_2.29 __dcgettext F
 GLIBC_2.29 __default_morecore F
 GLIBC_2.29 __dgettext F
+GLIBC_2.29 __dn_comp F
 GLIBC_2.29 __dn_expand F
 GLIBC_2.29 __dprintf_chk F
 GLIBC_2.29 __dup2 F
@@ -2457,6 +2458,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
index 07cc06fe36..798af0930d 100644
--- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.29 __b64_ntop F
 GLIBC_2.29 __b64_pton F
-GLIBC_2.29 __dn_comp F
 GLIBC_2.29 __dn_count_labels F
 GLIBC_2.29 __dn_skipname F
 GLIBC_2.29 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index be92a6384b..cdb34dab1a 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1,3 +1,4 @@
+GLIBC_2.0 __dn_comp F
 GLIBC_2.0 dladdr F
 GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
@@ -2404,6 +2405,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
index 1bcda7408c..8ee174124c 100644
--- a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
-GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dn_count_labels F
 GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 552d09a3e8..ebe59d0cd9 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -122,6 +122,7 @@ GLIBC_2.0 __deregister_frame F
 GLIBC_2.0 __deregister_frame_info F
 GLIBC_2.0 __dgettext F
 GLIBC_2.0 __divdi3 F
+GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dup2 F
 GLIBC_2.0 __environ D 0x4
 GLIBC_2.0 __errno_location F
@@ -2588,6 +2589,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/i386/libresolv.abilist b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
index 1bcda7408c..8ee174124c 100644
--- a/sysdeps/unix/sysv/linux/i386/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
-GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dn_count_labels F
 GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 6184d1e940..5b18cd888a 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1,3 +1,4 @@
+GLIBC_2.0 __dn_comp F
 GLIBC_2.0 dladdr F
 GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
@@ -2363,6 +2364,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
index a788ff35b1..cee6c22004 100644
--- a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
-GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dn_count_labels F
 GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 2953285d75..ad532daa48 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -318,6 +318,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
@@ -634,6 +635,7 @@ GLIBC_2.4 __dcgettext F
 GLIBC_2.4 __default_morecore F
 GLIBC_2.4 __dgettext F
 GLIBC_2.4 __divdi3 F
+GLIBC_2.4 __dn_comp F
 GLIBC_2.4 __dn_expand F
 GLIBC_2.4 __dup2 F
 GLIBC_2.4 __duplocale F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
index 1049155010..e67eec5b80 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.4 __b64_ntop F
 GLIBC_2.4 __b64_pton F
-GLIBC_2.4 __dn_comp F
 GLIBC_2.4 __dn_count_labels F
 GLIBC_2.4 __dn_skipname F
 GLIBC_2.4 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 175c3db4ac..461462fd46 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -122,6 +122,7 @@ GLIBC_2.0 __deregister_frame F
 GLIBC_2.0 __deregister_frame_info F
 GLIBC_2.0 __dgettext F
 GLIBC_2.0 __divdi3 F
+GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dup2 F
 GLIBC_2.0 __environ D 0x4
 GLIBC_2.0 __errno_location F
@@ -2531,6 +2532,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
index 1bcda7408c..8ee174124c 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
-GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dn_count_labels F
 GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index a8cc0c5559..c1e7cdf89d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -167,6 +167,7 @@ GLIBC_2.18 __daylight D 0x4
 GLIBC_2.18 __dcgettext F
 GLIBC_2.18 __default_morecore F
 GLIBC_2.18 __dgettext F
+GLIBC_2.18 __dn_comp F
 GLIBC_2.18 __dn_expand F
 GLIBC_2.18 __dprintf_chk F
 GLIBC_2.18 __dup2 F
@@ -2508,6 +2509,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
index 38aa97d106..b7206367f8 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.18 __b64_ntop F
 GLIBC_2.18 __b64_pton F
-GLIBC_2.18 __dn_comp F
 GLIBC_2.18 __dn_count_labels F
 GLIBC_2.18 __dn_skipname F
 GLIBC_2.18 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 7473efb402..fcb4467d48 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -167,6 +167,7 @@ GLIBC_2.18 __daylight D 0x4
 GLIBC_2.18 __dcgettext F
 GLIBC_2.18 __default_morecore F
 GLIBC_2.18 __dgettext F
+GLIBC_2.18 __dn_comp F
 GLIBC_2.18 __dn_expand F
 GLIBC_2.18 __dprintf_chk F
 GLIBC_2.18 __dup2 F
@@ -2505,6 +2506,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
index 38aa97d106..b7206367f8 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.18 __b64_ntop F
 GLIBC_2.18 __b64_pton F
-GLIBC_2.18 __dn_comp F
 GLIBC_2.18 __dn_count_labels F
 GLIBC_2.18 __dn_skipname F
 GLIBC_2.18 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index ae48952d9e..eeb2495fc3 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -121,6 +121,7 @@ GLIBC_2.0 __default_morecore F
 GLIBC_2.0 __deregister_frame F
 GLIBC_2.0 __deregister_frame_info F
 GLIBC_2.0 __dgettext F
+GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dup2 F
 GLIBC_2.0 __environ D 0x4
 GLIBC_2.0 __errno_location F
@@ -2496,6 +2497,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
index 1bcda7408c..8ee174124c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
-GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dn_count_labels F
 GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index db09d569db..425290ee34 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -121,6 +121,7 @@ GLIBC_2.0 __default_morecore F
 GLIBC_2.0 __deregister_frame F
 GLIBC_2.0 __deregister_frame_info F
 GLIBC_2.0 __dgettext F
+GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dup2 F
 GLIBC_2.0 __environ D 0x4
 GLIBC_2.0 __errno_location F
@@ -2494,6 +2495,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 7d2765f77f..1b1c72d19f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -121,6 +121,7 @@ GLIBC_2.0 __default_morecore F
 GLIBC_2.0 __deregister_frame F
 GLIBC_2.0 __deregister_frame_info F
 GLIBC_2.0 __dgettext F
+GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dup2 F
 GLIBC_2.0 __environ D 0x4
 GLIBC_2.0 __errno_location F
@@ -2502,6 +2503,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
index 1bcda7408c..8ee174124c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
-GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dn_count_labels F
 GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 984a681332..a49130a594 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -121,6 +121,7 @@ GLIBC_2.0 __default_morecore F
 GLIBC_2.0 __deregister_frame F
 GLIBC_2.0 __deregister_frame_info F
 GLIBC_2.0 __dgettext F
+GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dup2 F
 GLIBC_2.0 __environ D 0x8
 GLIBC_2.0 __errno_location F
@@ -2414,6 +2415,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
index a788ff35b1..cee6c22004 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
-GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dn_count_labels F
 GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 4c7757b05c..4b92e79bb4 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -171,6 +171,7 @@ GLIBC_2.21 __default_morecore F
 GLIBC_2.21 __dgettext F
 GLIBC_2.21 __divdf3 F
 GLIBC_2.21 __divsf3 F
+GLIBC_2.21 __dn_comp F
 GLIBC_2.21 __dn_expand F
 GLIBC_2.21 __dprintf_chk F
 GLIBC_2.21 __dup2 F
@@ -2547,6 +2548,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
index 9a65f29b20..9f7f9db8a9 100644
--- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.21 __b64_ntop F
 GLIBC_2.21 __b64_pton F
-GLIBC_2.21 __dn_comp F
 GLIBC_2.21 __dn_count_labels F
 GLIBC_2.21 __dn_skipname F
 GLIBC_2.21 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 3f62383465..5671a94927 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -124,6 +124,7 @@ GLIBC_2.0 __deregister_frame F
 GLIBC_2.0 __deregister_frame_info F
 GLIBC_2.0 __dgettext F
 GLIBC_2.0 __divdi3 F
+GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dup2 F
 GLIBC_2.0 __environ D 0x4
 GLIBC_2.0 __errno_location F
@@ -2558,6 +2559,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
index 1bcda7408c..8ee174124c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
-GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dn_count_labels F
 GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index fc04cfefd0..56c3c2ab3a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -124,6 +124,7 @@ GLIBC_2.0 __deregister_frame F
 GLIBC_2.0 __deregister_frame_info F
 GLIBC_2.0 __dgettext F
 GLIBC_2.0 __divdi3 F
+GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dup2 F
 GLIBC_2.0 __environ D 0x4
 GLIBC_2.0 __errno_location F
@@ -2591,6 +2592,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index afd6266d11..63b86e7dd4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -318,6 +318,7 @@ GLIBC_2.3 __daylight D 0x4
 GLIBC_2.3 __dcgettext F
 GLIBC_2.3 __default_morecore F
 GLIBC_2.3 __dgettext F
+GLIBC_2.3 __dn_comp F
 GLIBC_2.3 __dn_expand F
 GLIBC_2.3 __dup2 F
 GLIBC_2.3 __duplocale F
@@ -2326,6 +2327,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
index 213741bba9..72f9b070d8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.3 __b64_ntop F
 GLIBC_2.3 __b64_pton F
-GLIBC_2.3 __dn_comp F
 GLIBC_2.3 __dn_count_labels F
 GLIBC_2.3 __dn_skipname F
 GLIBC_2.3 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 87790e6ad0..5d65826943 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -165,6 +165,7 @@ GLIBC_2.17 __daylight D 0x4
 GLIBC_2.17 __dcgettext F
 GLIBC_2.17 __default_morecore F
 GLIBC_2.17 __dgettext F
+GLIBC_2.17 __dn_comp F
 GLIBC_2.17 __dn_expand F
 GLIBC_2.17 __dprintf_chk F
 GLIBC_2.17 __dup2 F
@@ -2628,6 +2629,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
index 4edce71c8e..50019b9bdd 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.17 __b64_ntop F
 GLIBC_2.17 __b64_pton F
-GLIBC_2.17 __dn_comp F
 GLIBC_2.17 __dn_count_labels F
 GLIBC_2.17 __dn_skipname F
 GLIBC_2.17 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 37d3db3786..9ef7a0bfcf 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -166,6 +166,7 @@ GLIBC_2.33 __daylight D 0x4
 GLIBC_2.33 __dcgettext F
 GLIBC_2.33 __default_morecore F
 GLIBC_2.33 __dgettext F
+GLIBC_2.33 __dn_comp F
 GLIBC_2.33 __dn_expand F
 GLIBC_2.33 __dprintf_chk F
 GLIBC_2.33 __dup2 F
@@ -2193,6 +2194,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
index 349ca1ddbb..5956461241 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.33 __b64_ntop F
 GLIBC_2.33 __b64_pton F
-GLIBC_2.33 __dn_comp F
 GLIBC_2.33 __dn_count_labels F
 GLIBC_2.33 __dn_skipname F
 GLIBC_2.33 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 5e04f1975c..8dc2ebd504 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -167,6 +167,7 @@ GLIBC_2.27 __daylight D 0x4
 GLIBC_2.27 __dcgettext F
 GLIBC_2.27 __default_morecore F
 GLIBC_2.27 __dgettext F
+GLIBC_2.27 __dn_comp F
 GLIBC_2.27 __dn_expand F
 GLIBC_2.27 __dprintf_chk F
 GLIBC_2.27 __dup2 F
@@ -2393,6 +2394,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
index 470e635d24..db984b40af 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.27 __b64_ntop F
 GLIBC_2.27 __b64_pton F
-GLIBC_2.27 __dn_comp F
 GLIBC_2.27 __dn_count_labels F
 GLIBC_2.27 __dn_skipname F
 GLIBC_2.27 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index ec5856bf3d..677b501555 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -122,6 +122,7 @@ GLIBC_2.0 __deregister_frame F
 GLIBC_2.0 __deregister_frame_info F
 GLIBC_2.0 __dgettext F
 GLIBC_2.0 __divdi3 F
+GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dup2 F
 GLIBC_2.0 __environ D 0x4
 GLIBC_2.0 __errno_location F
@@ -2556,6 +2557,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
index 1bcda7408c..8ee174124c 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
-GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dn_count_labels F
 GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 443c2c6aeb..5b0bf97a40 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -260,6 +260,7 @@ GLIBC_2.2 __default_morecore F
 GLIBC_2.2 __deregister_frame F
 GLIBC_2.2 __deregister_frame_info F
 GLIBC_2.2 __dgettext F
+GLIBC_2.2 __dn_comp F
 GLIBC_2.2 __dn_expand F
 GLIBC_2.2 __dup2 F
 GLIBC_2.2 __duplocale F
@@ -2363,6 +2364,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
index dd96d28ed9..e3ed8ccd8e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.2 __b64_ntop F
 GLIBC_2.2 __b64_pton F
-GLIBC_2.2 __dn_comp F
 GLIBC_2.2 __dn_count_labels F
 GLIBC_2.2 __dn_skipname F
 GLIBC_2.2 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index ca52bf6381..75aaf6149c 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2,6 +2,7 @@ GCC_3.0 _Unwind_Find_FDE F
 GCC_3.0 __deregister_frame_info_bases F
 GCC_3.0 __register_frame_info_bases F
 GCC_3.0 __register_frame_info_table_bases F
+GLIBC_2.0 __dn_comp F
 GLIBC_2.0 dladdr F
 GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
@@ -2411,6 +2412,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
index 1bcda7408c..8ee174124c 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
-GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dn_count_labels F
 GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 7c964cc903..873aed2c03 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2,6 +2,7 @@ GCC_3.0 _Unwind_Find_FDE F
 GCC_3.0 __deregister_frame_info_bases F
 GCC_3.0 __register_frame_info_bases F
 GCC_3.0 __register_frame_info_table_bases F
+GLIBC_2.0 __dn_comp F
 GLIBC_2.0 dladdr F
 GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
@@ -2408,6 +2409,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
index 1bcda7408c..8ee174124c 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
-GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dn_count_labels F
 GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 5a70a989f1..d7fa161b15 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -127,6 +127,7 @@ GLIBC_2.0 __default_morecore F
 GLIBC_2.0 __deregister_frame F
 GLIBC_2.0 __deregister_frame_info F
 GLIBC_2.0 __dgettext F
+GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dup2 F
 GLIBC_2.0 __environ D 0x4
 GLIBC_2.0 __errno_location F
@@ -2551,6 +2552,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
index 1bcda7408c..8ee174124c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
-GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dn_count_labels F
 GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 4255d90086..447a7f52c8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2,6 +2,7 @@ GCC_3.0 _Unwind_Find_FDE F
 GCC_3.0 __deregister_frame_info_bases F
 GCC_3.0 __register_frame_info_bases F
 GCC_3.0 __register_frame_info_table_bases F
+GLIBC_2.0 __dn_comp F
 GLIBC_2.0 dladdr F
 GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
@@ -2386,6 +2387,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
index a788ff35b1..cee6c22004 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
-GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dn_count_labels F
 GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 6448d1d2c4..b78d6887c2 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -248,6 +248,7 @@ GLIBC_2.2.5 __daylight D 0x4
 GLIBC_2.2.5 __dcgettext F
 GLIBC_2.2.5 __default_morecore F
 GLIBC_2.2.5 __dgettext F
+GLIBC_2.2.5 __dn_comp F
 GLIBC_2.2.5 __dn_expand F
 GLIBC_2.2.5 __dup2 F
 GLIBC_2.2.5 __duplocale F
@@ -2341,6 +2342,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
index b82c0c212e..640facbd02 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.2.5 __b64_ntop F
 GLIBC_2.2.5 __b64_pton F
-GLIBC_2.2.5 __dn_comp F
 GLIBC_2.2.5 __dn_count_labels F
 GLIBC_2.2.5 __dn_skipname F
 GLIBC_2.2.5 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 6f60f98e66..7ce8765b1a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -166,6 +166,7 @@ GLIBC_2.16 __daylight D 0x4
 GLIBC_2.16 __dcgettext F
 GLIBC_2.16 __default_morecore F
 GLIBC_2.16 __dgettext F
+GLIBC_2.16 __dn_comp F
 GLIBC_2.16 __dn_expand F
 GLIBC_2.16 __dprintf_chk F
 GLIBC_2.16 __dup2 F
@@ -2447,6 +2448,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
index 20574620f8..6990240c4e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.16 __b64_ntop F
 GLIBC_2.16 __b64_pton F
-GLIBC_2.16 __dn_comp F
 GLIBC_2.16 __dn_count_labels F
 GLIBC_2.16 __dn_skipname F
 GLIBC_2.16 __fp_nquery F
-- 
2.31.1



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

* [PATCH 15/30] resolv: Move dn_skipname to its own file and into libc
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (13 preceding siblings ...)
  2021-07-02 18:48 ` [PATCH 14/30] resolv: Move dn_comp to its own file and into libc Florian Weimer
@ 2021-07-02 18:48 ` Florian Weimer
  2021-07-02 18:48 ` [PATCH 16/30] resolv: Rename res_comp.c to res-name-checking.c and move " Florian Weimer
                   ` (14 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:48 UTC (permalink / raw)
  To: libc-alpha

And reformat it to GNU style.

dn_skipname is used outside glibc, so do not deprecate it,
and export it as dn_skipname (not __dn_skipname).  Due to internal
users, provide a __libc_dn_skipname alias, and keep __dn_skipname
as a pure compatibility symbol.

__dn_skipname@GLIBC_2.0 was moved using the script, and
dn_skipname@@GLIBC_2.34 was added using make update-all-abi.
---
 include/resolv.h                              |   3 +-
 resolv/Makefile                               |   1 +
 resolv/Versions                               |   4 +-
 resolv/dn_skipname.c                          | 103 ++++++++++++++++++
 resolv/nss_dns/dns-canon.c                    |   4 +-
 resolv/nss_dns/dns-network.c                  |   2 +-
 resolv/res_comp.c                             |  13 ---
 resolv/resolv.h                               |   1 -
 sysdeps/mach/hurd/i386/libc.abilist           |   2 +
 sysdeps/mach/hurd/i386/libresolv.abilist      |   1 -
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |   2 +
 .../unix/sysv/linux/aarch64/libresolv.abilist |   1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |   2 +
 .../unix/sysv/linux/alpha/libresolv.abilist   |   1 -
 sysdeps/unix/sysv/linux/arc/libc.abilist      |   2 +
 sysdeps/unix/sysv/linux/arc/libresolv.abilist |   1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |   2 +
 .../unix/sysv/linux/arm/be/libresolv.abilist  |   1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |   2 +
 .../unix/sysv/linux/arm/le/libresolv.abilist  |   1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist     |   2 +
 .../unix/sysv/linux/csky/libresolv.abilist    |   1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |   2 +
 .../unix/sysv/linux/hppa/libresolv.abilist    |   1 -
 sysdeps/unix/sysv/linux/i386/libc.abilist     |   2 +
 .../unix/sysv/linux/i386/libresolv.abilist    |   1 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |   2 +
 .../unix/sysv/linux/ia64/libresolv.abilist    |   1 -
 .../sysv/linux/m68k/coldfire/libc.abilist     |   2 +
 .../linux/m68k/coldfire/libresolv.abilist     |   1 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |   2 +
 .../sysv/linux/m68k/m680x0/libresolv.abilist  |   1 -
 .../sysv/linux/microblaze/be/libc.abilist     |   2 +
 .../linux/microblaze/be/libresolv.abilist     |   1 -
 .../sysv/linux/microblaze/le/libc.abilist     |   2 +
 .../linux/microblaze/le/libresolv.abilist     |   1 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |   2 +
 .../sysv/linux/mips/mips32/libresolv.abilist  |   1 -
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |   2 +
 .../sysv/linux/mips/mips64/n32/libc.abilist   |   2 +
 .../linux/mips/mips64/n32/libresolv.abilist   |   1 -
 .../sysv/linux/mips/mips64/n64/libc.abilist   |   2 +
 .../linux/mips/mips64/n64/libresolv.abilist   |   1 -
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |   2 +
 .../unix/sysv/linux/nios2/libresolv.abilist   |   1 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |   2 +
 .../linux/powerpc/powerpc32/libresolv.abilist |   1 -
 .../powerpc/powerpc32/nofpu/libc.abilist      |   2 +
 .../linux/powerpc/powerpc64/be/libc.abilist   |   2 +
 .../powerpc/powerpc64/be/libresolv.abilist    |   1 -
 .../linux/powerpc/powerpc64/le/libc.abilist   |   2 +
 .../powerpc/powerpc64/le/libresolv.abilist    |   1 -
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |   2 +
 .../sysv/linux/riscv/rv32/libresolv.abilist   |   1 -
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |   2 +
 .../sysv/linux/riscv/rv64/libresolv.abilist   |   1 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist |   2 +
 .../sysv/linux/s390/s390-32/libresolv.abilist |   1 -
 .../unix/sysv/linux/s390/s390-64/libc.abilist |   2 +
 .../sysv/linux/s390/s390-64/libresolv.abilist |   1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |   2 +
 .../unix/sysv/linux/sh/be/libresolv.abilist   |   1 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |   2 +
 .../unix/sysv/linux/sh/le/libresolv.abilist   |   1 -
 .../sysv/linux/sparc/sparc32/libc.abilist     |   2 +
 .../linux/sparc/sparc32/libresolv.abilist     |   1 -
 .../sysv/linux/sparc/sparc64/libc.abilist     |   2 +
 .../linux/sparc/sparc64/libresolv.abilist     |   1 -
 .../unix/sysv/linux/x86_64/64/libc.abilist    |   2 +
 .../sysv/linux/x86_64/64/libresolv.abilist    |   1 -
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |   2 +
 .../sysv/linux/x86_64/x32/libresolv.abilist   |   1 -
 72 files changed, 178 insertions(+), 50 deletions(-)
 create mode 100644 resolv/dn_skipname.c

diff --git a/include/resolv.h b/include/resolv.h
index 602f184643..378b36d612 100644
--- a/include/resolv.h
+++ b/include/resolv.h
@@ -44,7 +44,6 @@ libresolv_hidden_proto (_sethtent)
 libresolv_hidden_proto (_gethtent)
 libresolv_hidden_proto (_gethtbyaddr)
 libresolv_hidden_proto (_gethtbyname2)
-libresolv_hidden_proto (__dn_skipname)
 libresolv_hidden_proto (__res_hnok)
 libresolv_hidden_proto (__res_dnok)
 libresolv_hidden_proto (__putlong)
@@ -66,6 +65,8 @@ libresolv_hidden_proto (__dn_count_labels)
 
 extern __typeof (dn_expand) __libc_dn_expand;
 libc_hidden_proto (__libc_dn_expand)
+extern __typeof (dn_skipname) __libc_dn_skipname;
+libc_hidden_proto (__libc_dn_skipname)
 
 # endif /* _RESOLV_H_ && !_ISOMAC */
 #endif
diff --git a/resolv/Makefile b/resolv/Makefile
index 936518523d..e1a608f4ac 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -30,6 +30,7 @@ headers	:= resolv.h bits/types/res_state.h \
 routines := \
   dn_comp \
   dn_expand \
+  dn_skipname \
   herror \
   inet_addr \
   inet_ntop \
diff --git a/resolv/Versions b/resolv/Versions
index e36cf45cfa..634c7833a8 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -1,6 +1,7 @@
 libc {
   GLIBC_2.0 {
     __dn_comp;
+    __dn_skipname;
     __h_errno_location;
     __res_randomid;
     _res;
@@ -45,6 +46,7 @@ libc {
 %endif
     dn_comp;
     dn_expand;
+    dn_skipname;
     ns_name_compress;
     ns_name_ntop;
     ns_name_pack;
@@ -61,6 +63,7 @@ libc {
     __inet_aton_exact;
     __inet_pton_length;
     __libc_dn_expand;
+    __libc_dn_skipname;
     __ns_name_compress;
     __ns_name_ntop;
     __ns_name_pack;
@@ -82,7 +85,6 @@ libresolv {
     __b64_ntop;
     __b64_pton;
     __dn_count_labels;
-    __dn_skipname;
     __fp_nquery;
     __fp_query;
     __fp_resstat;
diff --git a/resolv/dn_skipname.c b/resolv/dn_skipname.c
new file mode 100644
index 0000000000..b9a587faff
--- /dev/null
+++ b/resolv/dn_skipname.c
@@ -0,0 +1,103 @@
+/* Skipping over a compressed DNS domain name in wire format.
+   Copyright (C) 1995-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/>.  */
+
+/*
+ * Copyright (c) 1985, 1993
+ *    The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Portions Copyright (c) 1993 by Digital Equipment Corporation.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies, and that
+ * the name of Digital Equipment Corporation not be used in advertising or
+ * publicity pertaining to distribution of the document or software without
+ * specific, written prior permission.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
+ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+/*
+ * Portions Copyright (c) 1996-1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <resolv.h>
+#include <shlib-compat.h>
+
+/* Skips over a compressed domain name. Returns the size or -1.  */
+int
+___dn_skipname (const unsigned char *ptr, const unsigned char *eom)
+{
+  const unsigned char *saveptr = ptr;
+  if (__ns_name_skip (&ptr, eom) < 0)
+    return -1;
+  return ptr - saveptr;
+}
+versioned_symbol (libc, ___dn_skipname, dn_skipname, GLIBC_2_34);
+versioned_symbol (libc, ___dn_skipname, __libc_dn_skipname, GLIBC_PRIVATE);
+libc_hidden_ver (___dn_skipname, __libc_dn_skipname)
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libresolv, ___dn_skipname, __dn_skipname, GLIBC_2_0);
+#endif
diff --git a/resolv/nss_dns/dns-canon.c b/resolv/nss_dns/dns-canon.c
index b7340d7b9e..c5718ce3ab 100644
--- a/resolv/nss_dns/dns-canon.c
+++ b/resolv/nss_dns/dns-canon.c
@@ -90,7 +90,7 @@ _nss_dns_getcanonname_r (const char *name, char *buffer, size_t buflen,
 	  unsigned char *endptr = ansp.ptr + r;
 
 	  /* Skip over the query.  This is the name, type, and class.  */
-	  int s = __dn_skipname (ptr, endptr);
+	  int s = __libc_dn_skipname (ptr, endptr);
 	  if (s < 0)
 	    {
 	    unavail:
@@ -108,7 +108,7 @@ _nss_dns_getcanonname_r (const char *name, char *buffer, size_t buflen,
 		 then type, class, TTL, and the length of the RDATA.
 		 We remember the name start.  */
 	      unsigned char *namestart = ptr;
-	      s = __dn_skipname (ptr, endptr);
+	      s = __libc_dn_skipname (ptr, endptr);
 	      if (s < 0)
 		goto unavail;
 
diff --git a/resolv/nss_dns/dns-network.c b/resolv/nss_dns/dns-network.c
index 2be9bfe2b3..801313caec 100644
--- a/resolv/nss_dns/dns-network.c
+++ b/resolv/nss_dns/dns-network.c
@@ -322,7 +322,7 @@ getanswer_r (const querybuf *answer, int anslen, struct netent *result,
   /* Skip the question part.  */
   while (question_count-- > 0)
     {
-      int n = __dn_skipname (cp, end_of_message);
+      int n = __libc_dn_skipname (cp, end_of_message);
       if (n < 0 || end_of_message - (cp + n) < QFIXEDSZ)
        {
          __set_h_errno (NO_RECOVERY);
diff --git a/resolv/res_comp.c b/resolv/res_comp.c
index 1930f17302..16f7e02111 100644
--- a/resolv/res_comp.c
+++ b/resolv/res_comp.c
@@ -92,19 +92,6 @@
 #include <string.h>
 #include <unistd.h>
 
-/*
- * Skip over a compressed domain name. Return the size or -1.
- */
-int
-dn_skipname(const u_char *ptr, const u_char *eom) {
-	const u_char *saveptr = ptr;
-
-	if (ns_name_skip(&ptr, eom) == -1)
-		return (-1);
-	return (ptr - saveptr);
-}
-libresolv_hidden_def (dn_skipname)
-
 /* Return true if the string consists of printable ASCII characters
    only.  */
 static bool
diff --git a/resolv/resolv.h b/resolv/resolv.h
index 78ad81577a..3056e1aafe 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -211,7 +211,6 @@ __END_DECLS
 #define b64_ntop		__b64_ntop
 #define b64_pton		__b64_pton
 #define dn_count_labels		__dn_count_labels
-#define dn_skipname		__dn_skipname
 #define fp_resstat		__fp_resstat
 #define loc_aton		__loc_aton
 #define loc_ntoa		__loc_ntoa
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 5692245dbb..3e9d6345bb 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -246,6 +246,7 @@ GLIBC_2.2.6 __dgettext F
 GLIBC_2.2.6 __divdi3 F
 GLIBC_2.2.6 __dn_comp F
 GLIBC_2.2.6 __dn_expand F
+GLIBC_2.2.6 __dn_skipname F
 GLIBC_2.2.6 __dup2 F
 GLIBC_2.2.6 __duplocale F
 GLIBC_2.2.6 __environ D 0x4
@@ -2238,6 +2239,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 login F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index 0132f6cef2..0c8d828f26 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.2.6 __b64_ntop F
 GLIBC_2.2.6 __b64_pton F
 GLIBC_2.2.6 __dn_count_labels F
-GLIBC_2.2.6 __dn_skipname F
 GLIBC_2.2.6 __fp_nquery F
 GLIBC_2.2.6 __fp_query F
 GLIBC_2.2.6 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 48737901ec..22beee3228 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -168,6 +168,7 @@ GLIBC_2.17 __default_morecore F
 GLIBC_2.17 __dgettext F
 GLIBC_2.17 __dn_comp F
 GLIBC_2.17 __dn_expand F
+GLIBC_2.17 __dn_skipname F
 GLIBC_2.17 __dprintf_chk F
 GLIBC_2.17 __dup2 F
 GLIBC_2.17 __duplocale F
@@ -2435,6 +2436,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
index 50019b9bdd..beb6e0efe3 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.17 __b64_ntop F
 GLIBC_2.17 __b64_pton F
 GLIBC_2.17 __dn_count_labels F
-GLIBC_2.17 __dn_skipname F
 GLIBC_2.17 __fp_nquery F
 GLIBC_2.17 __fp_query F
 GLIBC_2.17 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 0afad4b86e..17c3124f0b 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -125,6 +125,7 @@ GLIBC_2.0 __divlu F
 GLIBC_2.0 __divq F
 GLIBC_2.0 __divqu F
 GLIBC_2.0 __dn_comp F
+GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __dup2 F
 GLIBC_2.0 __environ D 0x8
 GLIBC_2.0 __errno_location F
@@ -2528,6 +2529,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
index cee6c22004..7c80f1818a 100644
--- a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
 GLIBC_2.0 __dn_count_labels F
-GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
 GLIBC_2.0 __fp_query F
 GLIBC_2.0 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index b6315f3a0f..3d4bf76924 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -168,6 +168,7 @@ GLIBC_2.32 __default_morecore F
 GLIBC_2.32 __dgettext F
 GLIBC_2.32 __dn_comp F
 GLIBC_2.32 __dn_expand F
+GLIBC_2.32 __dn_skipname F
 GLIBC_2.32 __dprintf_chk F
 GLIBC_2.32 __dup2 F
 GLIBC_2.32 __duplocale F
@@ -2194,6 +2195,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
index f9326b9b22..81ab66bc6d 100644
--- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.32 __b64_ntop F
 GLIBC_2.32 __b64_pton F
 GLIBC_2.32 __dn_count_labels F
-GLIBC_2.32 __dn_skipname F
 GLIBC_2.32 __fp_nquery F
 GLIBC_2.32 __fp_query F
 GLIBC_2.32 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 939289f202..686ad0d6a0 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -319,6 +319,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
@@ -651,6 +652,7 @@ GLIBC_2.4 __default_morecore F
 GLIBC_2.4 __dgettext F
 GLIBC_2.4 __dn_comp F
 GLIBC_2.4 __dn_expand F
+GLIBC_2.4 __dn_skipname F
 GLIBC_2.4 __dup2 F
 GLIBC_2.4 __duplocale F
 GLIBC_2.4 __endmntent F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
index e67eec5b80..5c4871fbec 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.4 __b64_ntop F
 GLIBC_2.4 __b64_pton F
 GLIBC_2.4 __dn_count_labels F
-GLIBC_2.4 __dn_skipname F
 GLIBC_2.4 __fp_nquery F
 GLIBC_2.4 __fp_query F
 GLIBC_2.4 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 3d3a886651..73a282553e 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -316,6 +316,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
@@ -648,6 +649,7 @@ GLIBC_2.4 __default_morecore F
 GLIBC_2.4 __dgettext F
 GLIBC_2.4 __dn_comp F
 GLIBC_2.4 __dn_expand F
+GLIBC_2.4 __dn_skipname F
 GLIBC_2.4 __dup2 F
 GLIBC_2.4 __duplocale F
 GLIBC_2.4 __endmntent F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
index e67eec5b80..5c4871fbec 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.4 __b64_ntop F
 GLIBC_2.4 __b64_pton F
 GLIBC_2.4 __dn_count_labels F
-GLIBC_2.4 __dn_skipname F
 GLIBC_2.4 __fp_nquery F
 GLIBC_2.4 __fp_query F
 GLIBC_2.4 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 6cb66a1957..a2aa9ee015 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -168,6 +168,7 @@ GLIBC_2.29 __default_morecore F
 GLIBC_2.29 __dgettext F
 GLIBC_2.29 __dn_comp F
 GLIBC_2.29 __dn_expand F
+GLIBC_2.29 __dn_skipname F
 GLIBC_2.29 __dprintf_chk F
 GLIBC_2.29 __dup2 F
 GLIBC_2.29 __duplocale F
@@ -2460,6 +2461,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
index 798af0930d..3a2239bdee 100644
--- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.29 __b64_ntop F
 GLIBC_2.29 __b64_pton F
 GLIBC_2.29 __dn_count_labels F
-GLIBC_2.29 __dn_skipname F
 GLIBC_2.29 __fp_nquery F
 GLIBC_2.29 __fp_query F
 GLIBC_2.29 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index cdb34dab1a..66e8cbf71d 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1,4 +1,5 @@
 GLIBC_2.0 __dn_comp F
+GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 dladdr F
 GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
@@ -2407,6 +2408,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
index 8ee174124c..48ff3bffa1 100644
--- a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
 GLIBC_2.0 __dn_count_labels F
-GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
 GLIBC_2.0 __fp_query F
 GLIBC_2.0 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index ebe59d0cd9..d237b67aa1 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -123,6 +123,7 @@ GLIBC_2.0 __deregister_frame_info F
 GLIBC_2.0 __dgettext F
 GLIBC_2.0 __divdi3 F
 GLIBC_2.0 __dn_comp F
+GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __dup2 F
 GLIBC_2.0 __environ D 0x4
 GLIBC_2.0 __errno_location F
@@ -2591,6 +2592,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/i386/libresolv.abilist b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
index 8ee174124c..48ff3bffa1 100644
--- a/sysdeps/unix/sysv/linux/i386/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
 GLIBC_2.0 __dn_count_labels F
-GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
 GLIBC_2.0 __fp_query F
 GLIBC_2.0 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 5b18cd888a..c7e70bd3a4 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1,4 +1,5 @@
 GLIBC_2.0 __dn_comp F
+GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 dladdr F
 GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
@@ -2366,6 +2367,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
index cee6c22004..7c80f1818a 100644
--- a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
 GLIBC_2.0 __dn_count_labels F
-GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
 GLIBC_2.0 __fp_query F
 GLIBC_2.0 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index ad532daa48..f58003fef2 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -320,6 +320,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
@@ -637,6 +638,7 @@ GLIBC_2.4 __dgettext F
 GLIBC_2.4 __divdi3 F
 GLIBC_2.4 __dn_comp F
 GLIBC_2.4 __dn_expand F
+GLIBC_2.4 __dn_skipname F
 GLIBC_2.4 __dup2 F
 GLIBC_2.4 __duplocale F
 GLIBC_2.4 __endmntent F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
index e67eec5b80..5c4871fbec 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.4 __b64_ntop F
 GLIBC_2.4 __b64_pton F
 GLIBC_2.4 __dn_count_labels F
-GLIBC_2.4 __dn_skipname F
 GLIBC_2.4 __fp_nquery F
 GLIBC_2.4 __fp_query F
 GLIBC_2.4 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 461462fd46..d37d2f7a8c 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -123,6 +123,7 @@ GLIBC_2.0 __deregister_frame_info F
 GLIBC_2.0 __dgettext F
 GLIBC_2.0 __divdi3 F
 GLIBC_2.0 __dn_comp F
+GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __dup2 F
 GLIBC_2.0 __environ D 0x4
 GLIBC_2.0 __errno_location F
@@ -2534,6 +2535,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
index 8ee174124c..48ff3bffa1 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
 GLIBC_2.0 __dn_count_labels F
-GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
 GLIBC_2.0 __fp_query F
 GLIBC_2.0 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index c1e7cdf89d..a148c848dd 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -169,6 +169,7 @@ GLIBC_2.18 __default_morecore F
 GLIBC_2.18 __dgettext F
 GLIBC_2.18 __dn_comp F
 GLIBC_2.18 __dn_expand F
+GLIBC_2.18 __dn_skipname F
 GLIBC_2.18 __dprintf_chk F
 GLIBC_2.18 __dup2 F
 GLIBC_2.18 __duplocale F
@@ -2511,6 +2512,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
index b7206367f8..eeb54aff28 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.18 __b64_ntop F
 GLIBC_2.18 __b64_pton F
 GLIBC_2.18 __dn_count_labels F
-GLIBC_2.18 __dn_skipname F
 GLIBC_2.18 __fp_nquery F
 GLIBC_2.18 __fp_query F
 GLIBC_2.18 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index fcb4467d48..c44e6a8e57 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -169,6 +169,7 @@ GLIBC_2.18 __default_morecore F
 GLIBC_2.18 __dgettext F
 GLIBC_2.18 __dn_comp F
 GLIBC_2.18 __dn_expand F
+GLIBC_2.18 __dn_skipname F
 GLIBC_2.18 __dprintf_chk F
 GLIBC_2.18 __dup2 F
 GLIBC_2.18 __duplocale F
@@ -2508,6 +2509,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
index b7206367f8..eeb54aff28 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.18 __b64_ntop F
 GLIBC_2.18 __b64_pton F
 GLIBC_2.18 __dn_count_labels F
-GLIBC_2.18 __dn_skipname F
 GLIBC_2.18 __fp_nquery F
 GLIBC_2.18 __fp_query F
 GLIBC_2.18 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index eeb2495fc3..14100354f2 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -122,6 +122,7 @@ GLIBC_2.0 __deregister_frame F
 GLIBC_2.0 __deregister_frame_info F
 GLIBC_2.0 __dgettext F
 GLIBC_2.0 __dn_comp F
+GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __dup2 F
 GLIBC_2.0 __environ D 0x4
 GLIBC_2.0 __errno_location F
@@ -2499,6 +2500,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
index 8ee174124c..48ff3bffa1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
 GLIBC_2.0 __dn_count_labels F
-GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
 GLIBC_2.0 __fp_query F
 GLIBC_2.0 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 425290ee34..adea8343e8 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -122,6 +122,7 @@ GLIBC_2.0 __deregister_frame F
 GLIBC_2.0 __deregister_frame_info F
 GLIBC_2.0 __dgettext F
 GLIBC_2.0 __dn_comp F
+GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __dup2 F
 GLIBC_2.0 __environ D 0x4
 GLIBC_2.0 __errno_location F
@@ -2497,6 +2498,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 1b1c72d19f..2d0d0c6859 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -122,6 +122,7 @@ GLIBC_2.0 __deregister_frame F
 GLIBC_2.0 __deregister_frame_info F
 GLIBC_2.0 __dgettext F
 GLIBC_2.0 __dn_comp F
+GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __dup2 F
 GLIBC_2.0 __environ D 0x4
 GLIBC_2.0 __errno_location F
@@ -2505,6 +2506,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
index 8ee174124c..48ff3bffa1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
 GLIBC_2.0 __dn_count_labels F
-GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
 GLIBC_2.0 __fp_query F
 GLIBC_2.0 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index a49130a594..5f3ba65972 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -122,6 +122,7 @@ GLIBC_2.0 __deregister_frame F
 GLIBC_2.0 __deregister_frame_info F
 GLIBC_2.0 __dgettext F
 GLIBC_2.0 __dn_comp F
+GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __dup2 F
 GLIBC_2.0 __environ D 0x8
 GLIBC_2.0 __errno_location F
@@ -2417,6 +2418,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
index cee6c22004..7c80f1818a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
 GLIBC_2.0 __dn_count_labels F
-GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
 GLIBC_2.0 __fp_query F
 GLIBC_2.0 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 4b92e79bb4..ea9221aa8d 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -173,6 +173,7 @@ GLIBC_2.21 __divdf3 F
 GLIBC_2.21 __divsf3 F
 GLIBC_2.21 __dn_comp F
 GLIBC_2.21 __dn_expand F
+GLIBC_2.21 __dn_skipname F
 GLIBC_2.21 __dprintf_chk F
 GLIBC_2.21 __dup2 F
 GLIBC_2.21 __duplocale F
@@ -2550,6 +2551,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
index 9f7f9db8a9..c4fbc8c68b 100644
--- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.21 __b64_ntop F
 GLIBC_2.21 __b64_pton F
 GLIBC_2.21 __dn_count_labels F
-GLIBC_2.21 __dn_skipname F
 GLIBC_2.21 __fp_nquery F
 GLIBC_2.21 __fp_query F
 GLIBC_2.21 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 5671a94927..9d860c3de5 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -125,6 +125,7 @@ GLIBC_2.0 __deregister_frame_info F
 GLIBC_2.0 __dgettext F
 GLIBC_2.0 __divdi3 F
 GLIBC_2.0 __dn_comp F
+GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __dup2 F
 GLIBC_2.0 __environ D 0x4
 GLIBC_2.0 __errno_location F
@@ -2561,6 +2562,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
index 8ee174124c..48ff3bffa1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
 GLIBC_2.0 __dn_count_labels F
-GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
 GLIBC_2.0 __fp_query F
 GLIBC_2.0 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 56c3c2ab3a..9469c6df2f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -125,6 +125,7 @@ GLIBC_2.0 __deregister_frame_info F
 GLIBC_2.0 __dgettext F
 GLIBC_2.0 __divdi3 F
 GLIBC_2.0 __dn_comp F
+GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __dup2 F
 GLIBC_2.0 __environ D 0x4
 GLIBC_2.0 __errno_location F
@@ -2594,6 +2595,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 63b86e7dd4..5b2f1b809d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -320,6 +320,7 @@ GLIBC_2.3 __default_morecore F
 GLIBC_2.3 __dgettext F
 GLIBC_2.3 __dn_comp F
 GLIBC_2.3 __dn_expand F
+GLIBC_2.3 __dn_skipname F
 GLIBC_2.3 __dup2 F
 GLIBC_2.3 __duplocale F
 GLIBC_2.3 __endmntent F
@@ -2329,6 +2330,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
index 72f9b070d8..b3d9c35c10 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.3 __b64_ntop F
 GLIBC_2.3 __b64_pton F
 GLIBC_2.3 __dn_count_labels F
-GLIBC_2.3 __dn_skipname F
 GLIBC_2.3 __fp_nquery F
 GLIBC_2.3 __fp_query F
 GLIBC_2.3 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 5d65826943..1e6c82f7c4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -167,6 +167,7 @@ GLIBC_2.17 __default_morecore F
 GLIBC_2.17 __dgettext F
 GLIBC_2.17 __dn_comp F
 GLIBC_2.17 __dn_expand F
+GLIBC_2.17 __dn_skipname F
 GLIBC_2.17 __dprintf_chk F
 GLIBC_2.17 __dup2 F
 GLIBC_2.17 __duplocale F
@@ -2631,6 +2632,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
index 50019b9bdd..beb6e0efe3 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.17 __b64_ntop F
 GLIBC_2.17 __b64_pton F
 GLIBC_2.17 __dn_count_labels F
-GLIBC_2.17 __dn_skipname F
 GLIBC_2.17 __fp_nquery F
 GLIBC_2.17 __fp_query F
 GLIBC_2.17 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 9ef7a0bfcf..620dcfd62d 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -168,6 +168,7 @@ GLIBC_2.33 __default_morecore F
 GLIBC_2.33 __dgettext F
 GLIBC_2.33 __dn_comp F
 GLIBC_2.33 __dn_expand F
+GLIBC_2.33 __dn_skipname F
 GLIBC_2.33 __dprintf_chk F
 GLIBC_2.33 __dup2 F
 GLIBC_2.33 __duplocale F
@@ -2196,6 +2197,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
index 5956461241..768d103895 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.33 __b64_ntop F
 GLIBC_2.33 __b64_pton F
 GLIBC_2.33 __dn_count_labels F
-GLIBC_2.33 __dn_skipname F
 GLIBC_2.33 __fp_nquery F
 GLIBC_2.33 __fp_query F
 GLIBC_2.33 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 8dc2ebd504..ce3ef6c7a4 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -169,6 +169,7 @@ GLIBC_2.27 __default_morecore F
 GLIBC_2.27 __dgettext F
 GLIBC_2.27 __dn_comp F
 GLIBC_2.27 __dn_expand F
+GLIBC_2.27 __dn_skipname F
 GLIBC_2.27 __dprintf_chk F
 GLIBC_2.27 __dup2 F
 GLIBC_2.27 __duplocale F
@@ -2396,6 +2397,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
index db984b40af..998b7a2105 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.27 __b64_ntop F
 GLIBC_2.27 __b64_pton F
 GLIBC_2.27 __dn_count_labels F
-GLIBC_2.27 __dn_skipname F
 GLIBC_2.27 __fp_nquery F
 GLIBC_2.27 __fp_query F
 GLIBC_2.27 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 677b501555..559a76b8f0 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -123,6 +123,7 @@ GLIBC_2.0 __deregister_frame_info F
 GLIBC_2.0 __dgettext F
 GLIBC_2.0 __divdi3 F
 GLIBC_2.0 __dn_comp F
+GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __dup2 F
 GLIBC_2.0 __environ D 0x4
 GLIBC_2.0 __errno_location F
@@ -2559,6 +2560,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
index 8ee174124c..48ff3bffa1 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
 GLIBC_2.0 __dn_count_labels F
-GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
 GLIBC_2.0 __fp_query F
 GLIBC_2.0 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 5b0bf97a40..2580a329fe 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -262,6 +262,7 @@ GLIBC_2.2 __deregister_frame_info F
 GLIBC_2.2 __dgettext F
 GLIBC_2.2 __dn_comp F
 GLIBC_2.2 __dn_expand F
+GLIBC_2.2 __dn_skipname F
 GLIBC_2.2 __dup2 F
 GLIBC_2.2 __duplocale F
 GLIBC_2.2 __endmntent F
@@ -2366,6 +2367,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
index e3ed8ccd8e..23e952fcac 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.2 __b64_ntop F
 GLIBC_2.2 __b64_pton F
 GLIBC_2.2 __dn_count_labels F
-GLIBC_2.2 __dn_skipname F
 GLIBC_2.2 __fp_nquery F
 GLIBC_2.2 __fp_query F
 GLIBC_2.2 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 75aaf6149c..b7d1c17e93 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -3,6 +3,7 @@ GCC_3.0 __deregister_frame_info_bases F
 GCC_3.0 __register_frame_info_bases F
 GCC_3.0 __register_frame_info_table_bases F
 GLIBC_2.0 __dn_comp F
+GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 dladdr F
 GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
@@ -2414,6 +2415,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
index 8ee174124c..48ff3bffa1 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
 GLIBC_2.0 __dn_count_labels F
-GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
 GLIBC_2.0 __fp_query F
 GLIBC_2.0 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 873aed2c03..74919e98e2 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -3,6 +3,7 @@ GCC_3.0 __deregister_frame_info_bases F
 GCC_3.0 __register_frame_info_bases F
 GCC_3.0 __register_frame_info_table_bases F
 GLIBC_2.0 __dn_comp F
+GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 dladdr F
 GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
@@ -2411,6 +2412,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
index 8ee174124c..48ff3bffa1 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
 GLIBC_2.0 __dn_count_labels F
-GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
 GLIBC_2.0 __fp_query F
 GLIBC_2.0 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index d7fa161b15..4d4d5b1129 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -128,6 +128,7 @@ GLIBC_2.0 __deregister_frame F
 GLIBC_2.0 __deregister_frame_info F
 GLIBC_2.0 __dgettext F
 GLIBC_2.0 __dn_comp F
+GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __dup2 F
 GLIBC_2.0 __environ D 0x4
 GLIBC_2.0 __errno_location F
@@ -2554,6 +2555,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
index 8ee174124c..48ff3bffa1 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
 GLIBC_2.0 __dn_count_labels F
-GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
 GLIBC_2.0 __fp_query F
 GLIBC_2.0 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 447a7f52c8..836e95bca8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -3,6 +3,7 @@ GCC_3.0 __deregister_frame_info_bases F
 GCC_3.0 __register_frame_info_bases F
 GCC_3.0 __register_frame_info_table_bases F
 GLIBC_2.0 __dn_comp F
+GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 dladdr F
 GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
@@ -2389,6 +2390,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
index cee6c22004..7c80f1818a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.0 __b64_ntop F
 GLIBC_2.0 __b64_pton F
 GLIBC_2.0 __dn_count_labels F
-GLIBC_2.0 __dn_skipname F
 GLIBC_2.0 __fp_nquery F
 GLIBC_2.0 __fp_query F
 GLIBC_2.0 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index b78d6887c2..65b3a9c04a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -250,6 +250,7 @@ GLIBC_2.2.5 __default_morecore F
 GLIBC_2.2.5 __dgettext F
 GLIBC_2.2.5 __dn_comp F
 GLIBC_2.2.5 __dn_expand F
+GLIBC_2.2.5 __dn_skipname F
 GLIBC_2.2.5 __dup2 F
 GLIBC_2.2.5 __duplocale F
 GLIBC_2.2.5 __endmntent F
@@ -2344,6 +2345,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
index 640facbd02..93c5e8111c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.2.5 __b64_ntop F
 GLIBC_2.2.5 __b64_pton F
 GLIBC_2.2.5 __dn_count_labels F
-GLIBC_2.2.5 __dn_skipname F
 GLIBC_2.2.5 __fp_nquery F
 GLIBC_2.2.5 __fp_query F
 GLIBC_2.2.5 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 7ce8765b1a..f1d9779f5c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -168,6 +168,7 @@ GLIBC_2.16 __default_morecore F
 GLIBC_2.16 __dgettext F
 GLIBC_2.16 __dn_comp F
 GLIBC_2.16 __dn_expand F
+GLIBC_2.16 __dn_skipname F
 GLIBC_2.16 __dprintf_chk F
 GLIBC_2.16 __dup2 F
 GLIBC_2.16 __duplocale F
@@ -2450,6 +2451,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 gai_cancel F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
index 6990240c4e..5c84955527 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.16 __b64_ntop F
 GLIBC_2.16 __b64_pton F
 GLIBC_2.16 __dn_count_labels F
-GLIBC_2.16 __dn_skipname F
 GLIBC_2.16 __fp_nquery F
 GLIBC_2.16 __fp_query F
 GLIBC_2.16 __fp_resstat F
-- 
2.31.1



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

* [PATCH 16/30] resolv: Rename res_comp.c to res-name-checking.c and move into libc
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (14 preceding siblings ...)
  2021-07-02 18:48 ` [PATCH 15/30] resolv: Move dn_skipname " Florian Weimer
@ 2021-07-02 18:48 ` Florian Weimer
  2021-07-02 18:49 ` [PATCH 17/30] resolv: Remove unnecessary res_isourserver_p call from send_dg Florian Weimer
                   ` (13 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:48 UTC (permalink / raw)
  To: libc-alpha

This reflects what the remaining functions in the file do.

The __res_dnok, __res_hnok, __res_mailok, __res_ownok were moved
with the script, using --no-new-version, and turned into compat
symbols.  __libc_res_dnok@@GLIBC_PRIVATE and
__libc_res_hnok@@GLIBC_PRIVATE are added for internal use, to avoid
accidentally binding to compatibility symbols.  The new public
symbols res_dnok, res_hnok, res_mailok, res_ownok were added using
make update-all-abi.
---
 include/resolv.h                              |  6 ++-
 resolv/Makefile                               |  2 +-
 resolv/Versions                               | 14 ++++--
 resolv/{res_comp.c => res-name-checking.c}    | 48 ++++++++++++-------
 resolv/resolv.h                               |  4 --
 sysdeps/mach/hurd/i386/libc.abilist           |  8 ++++
 sysdeps/mach/hurd/i386/libresolv.abilist      |  4 --
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  8 ++++
 .../unix/sysv/linux/aarch64/libresolv.abilist |  4 --
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |  8 ++++
 .../unix/sysv/linux/alpha/libresolv.abilist   |  4 --
 sysdeps/unix/sysv/linux/arc/libc.abilist      |  8 ++++
 sysdeps/unix/sysv/linux/arc/libresolv.abilist |  4 --
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  8 ++++
 .../unix/sysv/linux/arm/be/libresolv.abilist  |  4 --
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  8 ++++
 .../unix/sysv/linux/arm/le/libresolv.abilist  |  4 --
 sysdeps/unix/sysv/linux/csky/libc.abilist     |  8 ++++
 .../unix/sysv/linux/csky/libresolv.abilist    |  4 --
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |  8 ++++
 .../unix/sysv/linux/hppa/libresolv.abilist    |  4 --
 sysdeps/unix/sysv/linux/i386/libc.abilist     |  8 ++++
 .../unix/sysv/linux/i386/libresolv.abilist    |  4 --
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |  8 ++++
 .../unix/sysv/linux/ia64/libresolv.abilist    |  4 --
 .../sysv/linux/m68k/coldfire/libc.abilist     |  8 ++++
 .../linux/m68k/coldfire/libresolv.abilist     |  4 --
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  8 ++++
 .../sysv/linux/m68k/m680x0/libresolv.abilist  |  4 --
 .../sysv/linux/microblaze/be/libc.abilist     |  8 ++++
 .../linux/microblaze/be/libresolv.abilist     |  4 --
 .../sysv/linux/microblaze/le/libc.abilist     |  8 ++++
 .../linux/microblaze/le/libresolv.abilist     |  4 --
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |  8 ++++
 .../sysv/linux/mips/mips32/libresolv.abilist  |  4 --
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |  8 ++++
 .../sysv/linux/mips/mips64/n32/libc.abilist   |  8 ++++
 .../linux/mips/mips64/n32/libresolv.abilist   |  4 --
 .../sysv/linux/mips/mips64/n64/libc.abilist   |  8 ++++
 .../linux/mips/mips64/n64/libresolv.abilist   |  4 --
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |  8 ++++
 .../unix/sysv/linux/nios2/libresolv.abilist   |  4 --
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |  8 ++++
 .../linux/powerpc/powerpc32/libresolv.abilist |  4 --
 .../powerpc/powerpc32/nofpu/libc.abilist      |  8 ++++
 .../linux/powerpc/powerpc64/be/libc.abilist   |  8 ++++
 .../powerpc/powerpc64/be/libresolv.abilist    |  4 --
 .../linux/powerpc/powerpc64/le/libc.abilist   |  8 ++++
 .../powerpc/powerpc64/le/libresolv.abilist    |  4 --
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |  8 ++++
 .../sysv/linux/riscv/rv32/libresolv.abilist   |  4 --
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |  8 ++++
 .../sysv/linux/riscv/rv64/libresolv.abilist   |  4 --
 .../unix/sysv/linux/s390/s390-32/libc.abilist |  8 ++++
 .../sysv/linux/s390/s390-32/libresolv.abilist |  4 --
 .../unix/sysv/linux/s390/s390-64/libc.abilist |  8 ++++
 .../sysv/linux/s390/s390-64/libresolv.abilist |  4 --
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  8 ++++
 .../unix/sysv/linux/sh/be/libresolv.abilist   |  4 --
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  8 ++++
 .../unix/sysv/linux/sh/le/libresolv.abilist   |  4 --
 .../sysv/linux/sparc/sparc32/libc.abilist     |  8 ++++
 .../linux/sparc/sparc32/libresolv.abilist     |  4 --
 .../sysv/linux/sparc/sparc64/libc.abilist     |  8 ++++
 .../linux/sparc/sparc64/libresolv.abilist     |  4 --
 .../unix/sysv/linux/x86_64/64/libc.abilist    |  8 ++++
 .../sysv/linux/x86_64/64/libresolv.abilist    |  4 --
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |  8 ++++
 .../sysv/linux/x86_64/x32/libresolv.abilist   |  4 --
 69 files changed, 309 insertions(+), 153 deletions(-)
 rename resolv/{res_comp.c => res-name-checking.c} (82%)

diff --git a/include/resolv.h b/include/resolv.h
index 378b36d612..0c8db600d6 100644
--- a/include/resolv.h
+++ b/include/resolv.h
@@ -44,8 +44,6 @@ libresolv_hidden_proto (_sethtent)
 libresolv_hidden_proto (_gethtent)
 libresolv_hidden_proto (_gethtbyaddr)
 libresolv_hidden_proto (_gethtbyname2)
-libresolv_hidden_proto (__res_hnok)
-libresolv_hidden_proto (__res_dnok)
 libresolv_hidden_proto (__putlong)
 libresolv_hidden_proto (__putshort)
 libresolv_hidden_proto (__p_cdnname)
@@ -67,6 +65,10 @@ extern __typeof (dn_expand) __libc_dn_expand;
 libc_hidden_proto (__libc_dn_expand)
 extern __typeof (dn_skipname) __libc_dn_skipname;
 libc_hidden_proto (__libc_dn_skipname)
+extern __typeof (res_dnok) __libc_res_dnok;
+libc_hidden_proto (__libc_res_dnok)
+extern __typeof (res_hnok) __libc_res_hnok;
+libc_hidden_proto (__libc_res_hnok)
 
 # endif /* _RESOLV_H_ && !_ISOMAC */
 #endif
diff --git a/resolv/Makefile b/resolv/Makefile
index e1a608f4ac..7e142b9a14 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -44,6 +44,7 @@ routines := \
   ns_name_unpack \
   nsap_addr \
   res-close \
+  res-name-checking \
   res-state \
   res_hconf \
   res_init \
@@ -142,7 +143,6 @@ libresolv-routines := \
   ns_samedomain \
   ns_ttl \
   res-putget \
-  res_comp \
   res_data \
   res_debug \
   res_enable_icmp \
diff --git a/resolv/Versions b/resolv/Versions
index 634c7833a8..3e3b89a0b2 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -3,6 +3,10 @@ libc {
     __dn_comp;
     __dn_skipname;
     __h_errno_location;
+    __res_dnok;
+    __res_hnok;
+    __res_mailok;
+    __res_ownok;
     __res_randomid;
     _res;
     dn_expand;
@@ -54,6 +58,10 @@ libc {
     ns_name_skip;
     ns_name_uncompress;
     ns_name_unpack;
+    res_dnok;
+    res_hnok;
+    res_mailok;
+    res_ownok;
   }
   GLIBC_PRIVATE {
 %if !PTHREAD_IN_LIBC
@@ -64,6 +72,8 @@ libc {
     __inet_pton_length;
     __libc_dn_expand;
     __libc_dn_skipname;
+    __libc_res_dnok;
+    __libc_res_hnok;
     __ns_name_compress;
     __ns_name_ntop;
     __ns_name_pack;
@@ -107,12 +117,8 @@ libresolv {
     __putlong;
     __putshort;
     __res_close;
-    __res_dnok;
-    __res_hnok;
     __res_isourserver;
-    __res_mailok;
     __res_nameinquery;
-    __res_ownok;
     __res_queriesmatch;
     __res_send;
     __sym_ntop;
diff --git a/resolv/res_comp.c b/resolv/res-name-checking.c
similarity index 82%
rename from resolv/res_comp.c
rename to resolv/res-name-checking.c
index 16f7e02111..2c603494fa 100644
--- a/resolv/res_comp.c
+++ b/resolv/res-name-checking.c
@@ -1,4 +1,4 @@
-/* Domain name processing functions.
+/* Syntax checking for DNS domain names.
    Copyright (C) 1995-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -82,15 +82,9 @@
  * SOFTWARE.
  */
 
-#include <sys/types.h>
-#include <sys/param.h>
-#include <netinet/in.h>
 #include <arpa/nameser.h>
-#include <ctype.h>
 #include <resolv.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
+#include <shlib-compat.h>
 
 /* Return true if the string consists of printable ASCII characters
    only.  */
@@ -148,25 +142,30 @@ binary_leading_dash (const unsigned char *dn)
    contain [0-9a-zA-Z_-] characters, and the name must not start with
    a '-'.  The latter is to avoid confusion with program options.  */
 int
-res_hnok (const char *dn)
+___res_hnok (const char *dn)
 {
   unsigned char buf[NS_MAXCDNAME];
   if (!printable_string (dn)
-      || ns_name_pton (dn, buf, sizeof (buf)) < 0
+      || __ns_name_pton (dn, buf, sizeof (buf)) < 0
       || binary_leading_dash (buf))
     return 0;
   return binary_hnok (buf);
 }
-libresolv_hidden_def (res_hnok)
+versioned_symbol (libc, ___res_hnok, res_hnok, GLIBC_2_34);
+versioned_symbol (libc, ___res_hnok, __libc_res_hnok, GLIBC_PRIVATE);
+libc_hidden_ver (___res_hnok, __libc_res_hnok)
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libresolv, ___res_hnok, __res_hnok, GLIBC_2_0);
+#endif
 
 /* Hostname-like (A, MX, WKS) owners can have "*" as their first label
    but must otherwise be as a host name.  */
 int
-res_ownok (const char *dn)
+___res_ownok (const char *dn)
 {
   unsigned char buf[NS_MAXCDNAME];
   if (!printable_string (dn)
-      || ns_name_pton (dn, buf, sizeof (buf)) < 0
+      || __ns_name_pton (dn, buf, sizeof (buf)) < 0
       || binary_leading_dash (buf))
     return 0;
   if (buf[0] == 1 && buf [1] == '*')
@@ -175,15 +174,19 @@ res_ownok (const char *dn)
   else
     return binary_hnok (buf);
 }
+versioned_symbol (libc, ___res_ownok, res_ownok, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libresolv, ___res_ownok, __res_ownok, GLIBC_2_0);
+#endif
 
 /* SOA RNAMEs and RP RNAMEs can have any byte in their first label,
    but the rest of the name has to look like a host name.  */
 int
-res_mailok (const char *dn)
+___res_mailok (const char *dn)
 {
   unsigned char buf[NS_MAXCDNAME];
   if (!printable_string (dn)
-      || ns_name_pton (dn, buf, sizeof (buf)) < 0)
+      || __ns_name_pton (dn, buf, sizeof (buf)) < 0)
     return 0;
   unsigned char label_length = buf[0];
   /* "." is a valid missing representation */
@@ -196,13 +199,22 @@ res_mailok (const char *dn)
     return 0;
   return binary_hnok (tail);
 }
+versioned_symbol (libc, ___res_mailok, res_mailok, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libresolv, ___res_mailok, __res_mailok, GLIBC_2_0);
+#endif
 
 /* Return 1 if DN is a syntactically valid domain name.  Empty names
    are accepted.  */
 int
-res_dnok (const char *dn)
+___res_dnok (const char *dn)
 {
   unsigned char buf[NS_MAXCDNAME];
-  return printable_string (dn) && ns_name_pton (dn, buf, sizeof (buf)) >= 0;
+  return printable_string (dn) && __ns_name_pton (dn, buf, sizeof (buf)) >= 0;
 }
-libresolv_hidden_def (res_dnok)
+versioned_symbol (libc, ___res_dnok, res_dnok, GLIBC_2_34);
+versioned_symbol (libc, ___res_dnok, __libc_res_dnok, GLIBC_PRIVATE);
+libc_hidden_ver (___res_dnok, __libc_res_dnok)
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libresolv, ___res_dnok, __res_dnok, GLIBC_2_0);
+#endif
diff --git a/resolv/resolv.h b/resolv/resolv.h
index 3056e1aafe..d4e401b580 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -225,10 +225,7 @@ __END_DECLS
 #define p_rcode			__p_rcode
 #define putlong			__putlong
 #define putshort		__putshort
-#define res_dnok		__res_dnok
-#define res_hnok		__res_hnok
 #define res_hostalias		__res_hostalias
-#define res_mailok		__res_mailok
 #define res_nameinquery		__res_nameinquery
 #define res_nclose		__res_nclose
 #define res_ninit		__res_ninit
@@ -237,7 +234,6 @@ __END_DECLS
 #define res_nquerydomain	__res_nquerydomain
 #define res_nsearch		__res_nsearch
 #define res_nsend		__res_nsend
-#define res_ownok		__res_ownok
 #define res_queriesmatch	__res_queriesmatch
 #define res_randomid		__res_randomid
 #define sym_ntop		__sym_ntop
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 3e9d6345bb..0c2b5983a8 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -401,9 +401,13 @@ GLIBC_2.2.6 __rawmemchr F
 GLIBC_2.2.6 __rcmd_errstr D 0x4
 GLIBC_2.2.6 __read F
 GLIBC_2.2.6 __realloc_hook D 0x4
+GLIBC_2.2.6 __res_dnok F
+GLIBC_2.2.6 __res_hnok F
 GLIBC_2.2.6 __res_init F
+GLIBC_2.2.6 __res_mailok F
 GLIBC_2.2.6 __res_nclose F
 GLIBC_2.2.6 __res_ninit F
+GLIBC_2.2.6 __res_ownok F
 GLIBC_2.2.6 __res_randomid F
 GLIBC_2.2.6 __res_state F
 GLIBC_2.2.6 __rpc_thread_createerr F
@@ -2254,6 +2258,10 @@ GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 shm_open F
 GLIBC_2.34 shm_unlink F
 GLIBC_2.34 timespec_getres F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index 0c8d828f26..8166e6af58 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -22,11 +22,8 @@ GLIBC_2.2.6 __p_type_syms D 0x228
 GLIBC_2.2.6 __putlong F
 GLIBC_2.2.6 __putshort F
 GLIBC_2.2.6 __res_close F
-GLIBC_2.2.6 __res_dnok F
-GLIBC_2.2.6 __res_hnok F
 GLIBC_2.2.6 __res_hostalias F
 GLIBC_2.2.6 __res_isourserver F
-GLIBC_2.2.6 __res_mailok F
 GLIBC_2.2.6 __res_mkquery F
 GLIBC_2.2.6 __res_nameinquery F
 GLIBC_2.2.6 __res_nmkquery F
@@ -34,7 +31,6 @@ GLIBC_2.2.6 __res_nquery F
 GLIBC_2.2.6 __res_nquerydomain F
 GLIBC_2.2.6 __res_nsearch F
 GLIBC_2.2.6 __res_nsend F
-GLIBC_2.2.6 __res_ownok F
 GLIBC_2.2.6 __res_queriesmatch F
 GLIBC_2.2.6 __res_query F
 GLIBC_2.2.6 __res_querydomain F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 22beee3228..cb2bfd3779 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -380,9 +380,13 @@ GLIBC_2.17 __realpath_chk F
 GLIBC_2.17 __recv_chk F
 GLIBC_2.17 __recvfrom_chk F
 GLIBC_2.17 __register_atfork F
+GLIBC_2.17 __res_dnok F
+GLIBC_2.17 __res_hnok F
 GLIBC_2.17 __res_init F
+GLIBC_2.17 __res_mailok F
 GLIBC_2.17 __res_nclose F
 GLIBC_2.17 __res_ninit F
+GLIBC_2.17 __res_ownok F
 GLIBC_2.17 __res_randomid F
 GLIBC_2.17 __res_state F
 GLIBC_2.17 __rpc_thread_createerr F
@@ -2558,6 +2562,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
index beb6e0efe3..613638f9ce 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
@@ -23,11 +23,8 @@ GLIBC_2.17 __p_type_syms D 0x450
 GLIBC_2.17 __putlong F
 GLIBC_2.17 __putshort F
 GLIBC_2.17 __res_close F
-GLIBC_2.17 __res_dnok F
-GLIBC_2.17 __res_hnok F
 GLIBC_2.17 __res_hostalias F
 GLIBC_2.17 __res_isourserver F
-GLIBC_2.17 __res_mailok F
 GLIBC_2.17 __res_mkquery F
 GLIBC_2.17 __res_nameinquery F
 GLIBC_2.17 __res_nmkquery F
@@ -35,7 +32,6 @@ GLIBC_2.17 __res_nquery F
 GLIBC_2.17 __res_nquerydomain F
 GLIBC_2.17 __res_nsearch F
 GLIBC_2.17 __res_nsend F
-GLIBC_2.17 __res_ownok F
 GLIBC_2.17 __res_queriesmatch F
 GLIBC_2.17 __res_query F
 GLIBC_2.17 __res_querydomain F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 17c3124f0b..31882ba563 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -213,6 +213,10 @@ GLIBC_2.0 __reml F
 GLIBC_2.0 __remlu F
 GLIBC_2.0 __remq F
 GLIBC_2.0 __remqu F
+GLIBC_2.0 __res_dnok F
+GLIBC_2.0 __res_hnok F
+GLIBC_2.0 __res_mailok F
+GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_randomid F
 GLIBC_2.0 __sbrk F
 GLIBC_2.0 __sched_get_priority_max F
@@ -2651,6 +2655,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
index 7c80f1818a..abfaf8840f 100644
--- a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
@@ -22,12 +22,8 @@ GLIBC_2.0 __p_type_syms D 0x450
 GLIBC_2.0 __putlong F
 GLIBC_2.0 __putshort F
 GLIBC_2.0 __res_close F
-GLIBC_2.0 __res_dnok F
-GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_isourserver F
-GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_nameinquery F
-GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_queriesmatch F
 GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 3d4bf76924..00462b5520 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -369,9 +369,13 @@ GLIBC_2.32 __realpath_chk F
 GLIBC_2.32 __recv_chk F
 GLIBC_2.32 __recvfrom_chk F
 GLIBC_2.32 __register_atfork F
+GLIBC_2.32 __res_dnok F
+GLIBC_2.32 __res_hnok F
 GLIBC_2.32 __res_init F
+GLIBC_2.32 __res_mailok F
 GLIBC_2.32 __res_nclose F
 GLIBC_2.32 __res_ninit F
+GLIBC_2.32 __res_ownok F
 GLIBC_2.32 __res_randomid F
 GLIBC_2.32 __res_state F
 GLIBC_2.32 __sbrk F
@@ -2317,6 +2321,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
index 81ab66bc6d..f3a103d072 100644
--- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
@@ -22,11 +22,8 @@ GLIBC_2.32 __p_type_syms D 0x228
 GLIBC_2.32 __putlong F
 GLIBC_2.32 __putshort F
 GLIBC_2.32 __res_close F
-GLIBC_2.32 __res_dnok F
-GLIBC_2.32 __res_hnok F
 GLIBC_2.32 __res_hostalias F
 GLIBC_2.32 __res_isourserver F
-GLIBC_2.32 __res_mailok F
 GLIBC_2.32 __res_mkquery F
 GLIBC_2.32 __res_nameinquery F
 GLIBC_2.32 __res_nmkquery F
@@ -34,7 +31,6 @@ GLIBC_2.32 __res_nquery F
 GLIBC_2.32 __res_nquerydomain F
 GLIBC_2.32 __res_nsearch F
 GLIBC_2.32 __res_nsend F
-GLIBC_2.32 __res_ownok F
 GLIBC_2.32 __res_queriesmatch F
 GLIBC_2.32 __res_query F
 GLIBC_2.32 __res_querydomain F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 686ad0d6a0..ce88c66270 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -441,6 +441,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
@@ -835,9 +839,13 @@ GLIBC_2.4 __realpath_chk F
 GLIBC_2.4 __recv_chk F
 GLIBC_2.4 __recvfrom_chk F
 GLIBC_2.4 __register_atfork F
+GLIBC_2.4 __res_dnok F
+GLIBC_2.4 __res_hnok F
 GLIBC_2.4 __res_init F
+GLIBC_2.4 __res_mailok F
 GLIBC_2.4 __res_nclose F
 GLIBC_2.4 __res_ninit F
+GLIBC_2.4 __res_ownok F
 GLIBC_2.4 __res_randomid F
 GLIBC_2.4 __res_state F
 GLIBC_2.4 __rpc_thread_createerr F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
index 5c4871fbec..a2ca6abc87 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
@@ -23,11 +23,8 @@ GLIBC_2.4 __p_type_syms D 0x228
 GLIBC_2.4 __putlong F
 GLIBC_2.4 __putshort F
 GLIBC_2.4 __res_close F
-GLIBC_2.4 __res_dnok F
-GLIBC_2.4 __res_hnok F
 GLIBC_2.4 __res_hostalias F
 GLIBC_2.4 __res_isourserver F
-GLIBC_2.4 __res_mailok F
 GLIBC_2.4 __res_mkquery F
 GLIBC_2.4 __res_nameinquery F
 GLIBC_2.4 __res_nmkquery F
@@ -35,7 +32,6 @@ GLIBC_2.4 __res_nquery F
 GLIBC_2.4 __res_nquerydomain F
 GLIBC_2.4 __res_nsearch F
 GLIBC_2.4 __res_nsend F
-GLIBC_2.4 __res_ownok F
 GLIBC_2.4 __res_queriesmatch F
 GLIBC_2.4 __res_query F
 GLIBC_2.4 __res_querydomain F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 73a282553e..1b3daa54b2 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -438,6 +438,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
@@ -832,9 +836,13 @@ GLIBC_2.4 __realpath_chk F
 GLIBC_2.4 __recv_chk F
 GLIBC_2.4 __recvfrom_chk F
 GLIBC_2.4 __register_atfork F
+GLIBC_2.4 __res_dnok F
+GLIBC_2.4 __res_hnok F
 GLIBC_2.4 __res_init F
+GLIBC_2.4 __res_mailok F
 GLIBC_2.4 __res_nclose F
 GLIBC_2.4 __res_ninit F
+GLIBC_2.4 __res_ownok F
 GLIBC_2.4 __res_randomid F
 GLIBC_2.4 __res_state F
 GLIBC_2.4 __rpc_thread_createerr F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
index 5c4871fbec..a2ca6abc87 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
@@ -23,11 +23,8 @@ GLIBC_2.4 __p_type_syms D 0x228
 GLIBC_2.4 __putlong F
 GLIBC_2.4 __putshort F
 GLIBC_2.4 __res_close F
-GLIBC_2.4 __res_dnok F
-GLIBC_2.4 __res_hnok F
 GLIBC_2.4 __res_hostalias F
 GLIBC_2.4 __res_isourserver F
-GLIBC_2.4 __res_mailok F
 GLIBC_2.4 __res_mkquery F
 GLIBC_2.4 __res_nameinquery F
 GLIBC_2.4 __res_nmkquery F
@@ -35,7 +32,6 @@ GLIBC_2.4 __res_nquery F
 GLIBC_2.4 __res_nquerydomain F
 GLIBC_2.4 __res_nsearch F
 GLIBC_2.4 __res_nsend F
-GLIBC_2.4 __res_ownok F
 GLIBC_2.4 __res_queriesmatch F
 GLIBC_2.4 __res_query F
 GLIBC_2.4 __res_querydomain F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index a2aa9ee015..056fedf121 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -373,9 +373,13 @@ GLIBC_2.29 __realpath_chk F
 GLIBC_2.29 __recv_chk F
 GLIBC_2.29 __recvfrom_chk F
 GLIBC_2.29 __register_atfork F
+GLIBC_2.29 __res_dnok F
+GLIBC_2.29 __res_hnok F
 GLIBC_2.29 __res_init F
+GLIBC_2.29 __res_mailok F
 GLIBC_2.29 __res_nclose F
 GLIBC_2.29 __res_ninit F
+GLIBC_2.29 __res_ownok F
 GLIBC_2.29 __res_randomid F
 GLIBC_2.29 __res_state F
 GLIBC_2.29 __rpc_thread_createerr F
@@ -2583,6 +2587,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
index 3a2239bdee..df1d7ebd48 100644
--- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
@@ -22,11 +22,8 @@ GLIBC_2.29 __p_type_syms D 0x228
 GLIBC_2.29 __putlong F
 GLIBC_2.29 __putshort F
 GLIBC_2.29 __res_close F
-GLIBC_2.29 __res_dnok F
-GLIBC_2.29 __res_hnok F
 GLIBC_2.29 __res_hostalias F
 GLIBC_2.29 __res_isourserver F
-GLIBC_2.29 __res_mailok F
 GLIBC_2.29 __res_mkquery F
 GLIBC_2.29 __res_nameinquery F
 GLIBC_2.29 __res_nmkquery F
@@ -34,7 +31,6 @@ GLIBC_2.29 __res_nquery F
 GLIBC_2.29 __res_nquerydomain F
 GLIBC_2.29 __res_nsearch F
 GLIBC_2.29 __res_nsend F
-GLIBC_2.29 __res_ownok F
 GLIBC_2.29 __res_queriesmatch F
 GLIBC_2.29 __res_query F
 GLIBC_2.29 __res_querydomain F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 66e8cbf71d..e5df8dfb66 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1,5 +1,9 @@
 GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dn_skipname F
+GLIBC_2.0 __res_dnok F
+GLIBC_2.0 __res_hnok F
+GLIBC_2.0 __res_mailok F
+GLIBC_2.0 __res_ownok F
 GLIBC_2.0 dladdr F
 GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
@@ -2530,6 +2534,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
index 48ff3bffa1..b6244e71e7 100644
--- a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
@@ -22,12 +22,8 @@ GLIBC_2.0 __p_type_syms D 0x228
 GLIBC_2.0 __putlong F
 GLIBC_2.0 __putshort F
 GLIBC_2.0 __res_close F
-GLIBC_2.0 __res_dnok F
-GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_isourserver F
-GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_nameinquery F
-GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_queriesmatch F
 GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index d237b67aa1..5858649b2f 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -206,6 +206,10 @@ GLIBC_2.0 __register_frame F
 GLIBC_2.0 __register_frame_info F
 GLIBC_2.0 __register_frame_info_table F
 GLIBC_2.0 __register_frame_table F
+GLIBC_2.0 __res_dnok F
+GLIBC_2.0 __res_hnok F
+GLIBC_2.0 __res_mailok F
+GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_randomid F
 GLIBC_2.0 __sbrk F
 GLIBC_2.0 __sched_get_priority_max F
@@ -2714,6 +2718,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/i386/libresolv.abilist b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
index 48ff3bffa1..b6244e71e7 100644
--- a/sysdeps/unix/sysv/linux/i386/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
@@ -22,12 +22,8 @@ GLIBC_2.0 __p_type_syms D 0x228
 GLIBC_2.0 __putlong F
 GLIBC_2.0 __putshort F
 GLIBC_2.0 __res_close F
-GLIBC_2.0 __res_dnok F
-GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_isourserver F
-GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_nameinquery F
-GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_queriesmatch F
 GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index c7e70bd3a4..8098431f1c 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1,5 +1,9 @@
 GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dn_skipname F
+GLIBC_2.0 __res_dnok F
+GLIBC_2.0 __res_hnok F
+GLIBC_2.0 __res_mailok F
+GLIBC_2.0 __res_ownok F
 GLIBC_2.0 dladdr F
 GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
@@ -2489,6 +2493,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
index 7c80f1818a..abfaf8840f 100644
--- a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
@@ -22,12 +22,8 @@ GLIBC_2.0 __p_type_syms D 0x450
 GLIBC_2.0 __putlong F
 GLIBC_2.0 __putshort F
 GLIBC_2.0 __res_close F
-GLIBC_2.0 __res_dnok F
-GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_isourserver F
-GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_nameinquery F
-GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_queriesmatch F
 GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index f58003fef2..6941dc8a9f 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -442,6 +442,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
@@ -821,9 +825,13 @@ GLIBC_2.4 __realpath_chk F
 GLIBC_2.4 __recv_chk F
 GLIBC_2.4 __recvfrom_chk F
 GLIBC_2.4 __register_atfork F
+GLIBC_2.4 __res_dnok F
+GLIBC_2.4 __res_hnok F
 GLIBC_2.4 __res_init F
+GLIBC_2.4 __res_mailok F
 GLIBC_2.4 __res_nclose F
 GLIBC_2.4 __res_ninit F
+GLIBC_2.4 __res_ownok F
 GLIBC_2.4 __res_randomid F
 GLIBC_2.4 __res_state F
 GLIBC_2.4 __rpc_thread_createerr F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
index 5c4871fbec..a2ca6abc87 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
@@ -23,11 +23,8 @@ GLIBC_2.4 __p_type_syms D 0x228
 GLIBC_2.4 __putlong F
 GLIBC_2.4 __putshort F
 GLIBC_2.4 __res_close F
-GLIBC_2.4 __res_dnok F
-GLIBC_2.4 __res_hnok F
 GLIBC_2.4 __res_hostalias F
 GLIBC_2.4 __res_isourserver F
-GLIBC_2.4 __res_mailok F
 GLIBC_2.4 __res_mkquery F
 GLIBC_2.4 __res_nameinquery F
 GLIBC_2.4 __res_nmkquery F
@@ -35,7 +32,6 @@ GLIBC_2.4 __res_nquery F
 GLIBC_2.4 __res_nquerydomain F
 GLIBC_2.4 __res_nsearch F
 GLIBC_2.4 __res_nsend F
-GLIBC_2.4 __res_ownok F
 GLIBC_2.4 __res_queriesmatch F
 GLIBC_2.4 __res_query F
 GLIBC_2.4 __res_querydomain F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index d37d2f7a8c..2724565feb 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -206,6 +206,10 @@ GLIBC_2.0 __register_frame F
 GLIBC_2.0 __register_frame_info F
 GLIBC_2.0 __register_frame_info_table F
 GLIBC_2.0 __register_frame_table F
+GLIBC_2.0 __res_dnok F
+GLIBC_2.0 __res_hnok F
+GLIBC_2.0 __res_mailok F
+GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_randomid F
 GLIBC_2.0 __sbrk F
 GLIBC_2.0 __sched_get_priority_max F
@@ -2657,6 +2661,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
index 48ff3bffa1..b6244e71e7 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
@@ -22,12 +22,8 @@ GLIBC_2.0 __p_type_syms D 0x228
 GLIBC_2.0 __putlong F
 GLIBC_2.0 __putshort F
 GLIBC_2.0 __res_close F
-GLIBC_2.0 __res_dnok F
-GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_isourserver F
-GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_nameinquery F
-GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_queriesmatch F
 GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index a148c848dd..2eb5fed52d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -381,9 +381,13 @@ GLIBC_2.18 __realpath_chk F
 GLIBC_2.18 __recv_chk F
 GLIBC_2.18 __recvfrom_chk F
 GLIBC_2.18 __register_atfork F
+GLIBC_2.18 __res_dnok F
+GLIBC_2.18 __res_hnok F
 GLIBC_2.18 __res_init F
+GLIBC_2.18 __res_mailok F
 GLIBC_2.18 __res_nclose F
 GLIBC_2.18 __res_ninit F
+GLIBC_2.18 __res_ownok F
 GLIBC_2.18 __res_randomid F
 GLIBC_2.18 __res_state F
 GLIBC_2.18 __rpc_thread_createerr F
@@ -2634,6 +2638,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
index eeb54aff28..2e35f266cd 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
@@ -23,11 +23,8 @@ GLIBC_2.18 __p_type_syms D 0x228
 GLIBC_2.18 __putlong F
 GLIBC_2.18 __putshort F
 GLIBC_2.18 __res_close F
-GLIBC_2.18 __res_dnok F
-GLIBC_2.18 __res_hnok F
 GLIBC_2.18 __res_hostalias F
 GLIBC_2.18 __res_isourserver F
-GLIBC_2.18 __res_mailok F
 GLIBC_2.18 __res_mkquery F
 GLIBC_2.18 __res_nameinquery F
 GLIBC_2.18 __res_nmkquery F
@@ -35,7 +32,6 @@ GLIBC_2.18 __res_nquery F
 GLIBC_2.18 __res_nquerydomain F
 GLIBC_2.18 __res_nsearch F
 GLIBC_2.18 __res_nsend F
-GLIBC_2.18 __res_ownok F
 GLIBC_2.18 __res_queriesmatch F
 GLIBC_2.18 __res_query F
 GLIBC_2.18 __res_querydomain F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index c44e6a8e57..5da6906e19 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -381,9 +381,13 @@ GLIBC_2.18 __realpath_chk F
 GLIBC_2.18 __recv_chk F
 GLIBC_2.18 __recvfrom_chk F
 GLIBC_2.18 __register_atfork F
+GLIBC_2.18 __res_dnok F
+GLIBC_2.18 __res_hnok F
 GLIBC_2.18 __res_init F
+GLIBC_2.18 __res_mailok F
 GLIBC_2.18 __res_nclose F
 GLIBC_2.18 __res_ninit F
+GLIBC_2.18 __res_ownok F
 GLIBC_2.18 __res_randomid F
 GLIBC_2.18 __res_state F
 GLIBC_2.18 __rpc_thread_createerr F
@@ -2631,6 +2635,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
index eeb54aff28..2e35f266cd 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
@@ -23,11 +23,8 @@ GLIBC_2.18 __p_type_syms D 0x228
 GLIBC_2.18 __putlong F
 GLIBC_2.18 __putshort F
 GLIBC_2.18 __res_close F
-GLIBC_2.18 __res_dnok F
-GLIBC_2.18 __res_hnok F
 GLIBC_2.18 __res_hostalias F
 GLIBC_2.18 __res_isourserver F
-GLIBC_2.18 __res_mailok F
 GLIBC_2.18 __res_mkquery F
 GLIBC_2.18 __res_nameinquery F
 GLIBC_2.18 __res_nmkquery F
@@ -35,7 +32,6 @@ GLIBC_2.18 __res_nquery F
 GLIBC_2.18 __res_nquerydomain F
 GLIBC_2.18 __res_nsearch F
 GLIBC_2.18 __res_nsend F
-GLIBC_2.18 __res_ownok F
 GLIBC_2.18 __res_queriesmatch F
 GLIBC_2.18 __res_query F
 GLIBC_2.18 __res_querydomain F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 14100354f2..36ff79120a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -204,6 +204,10 @@ GLIBC_2.0 __register_frame F
 GLIBC_2.0 __register_frame_info F
 GLIBC_2.0 __register_frame_info_table F
 GLIBC_2.0 __register_frame_table F
+GLIBC_2.0 __res_dnok F
+GLIBC_2.0 __res_hnok F
+GLIBC_2.0 __res_mailok F
+GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_randomid F
 GLIBC_2.0 __sbrk F
 GLIBC_2.0 __sched_get_priority_max F
@@ -2622,6 +2626,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
index 48ff3bffa1..b6244e71e7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
@@ -22,12 +22,8 @@ GLIBC_2.0 __p_type_syms D 0x228
 GLIBC_2.0 __putlong F
 GLIBC_2.0 __putshort F
 GLIBC_2.0 __res_close F
-GLIBC_2.0 __res_dnok F
-GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_isourserver F
-GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_nameinquery F
-GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_queriesmatch F
 GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index adea8343e8..262dafa1f3 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -204,6 +204,10 @@ GLIBC_2.0 __register_frame F
 GLIBC_2.0 __register_frame_info F
 GLIBC_2.0 __register_frame_info_table F
 GLIBC_2.0 __register_frame_table F
+GLIBC_2.0 __res_dnok F
+GLIBC_2.0 __res_hnok F
+GLIBC_2.0 __res_mailok F
+GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_randomid F
 GLIBC_2.0 __sbrk F
 GLIBC_2.0 __sched_get_priority_max F
@@ -2620,6 +2624,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 2d0d0c6859..f213a1897f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -204,6 +204,10 @@ GLIBC_2.0 __register_frame F
 GLIBC_2.0 __register_frame_info F
 GLIBC_2.0 __register_frame_info_table F
 GLIBC_2.0 __register_frame_table F
+GLIBC_2.0 __res_dnok F
+GLIBC_2.0 __res_hnok F
+GLIBC_2.0 __res_mailok F
+GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_randomid F
 GLIBC_2.0 __sbrk F
 GLIBC_2.0 __sched_get_priority_max F
@@ -2628,6 +2632,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
index 48ff3bffa1..b6244e71e7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
@@ -22,12 +22,8 @@ GLIBC_2.0 __p_type_syms D 0x228
 GLIBC_2.0 __putlong F
 GLIBC_2.0 __putshort F
 GLIBC_2.0 __res_close F
-GLIBC_2.0 __res_dnok F
-GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_isourserver F
-GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_nameinquery F
-GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_queriesmatch F
 GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 5f3ba65972..f5a432e96d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -204,6 +204,10 @@ GLIBC_2.0 __register_frame F
 GLIBC_2.0 __register_frame_info F
 GLIBC_2.0 __register_frame_info_table F
 GLIBC_2.0 __register_frame_table F
+GLIBC_2.0 __res_dnok F
+GLIBC_2.0 __res_hnok F
+GLIBC_2.0 __res_mailok F
+GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_randomid F
 GLIBC_2.0 __sbrk F
 GLIBC_2.0 __sched_get_priority_max F
@@ -2540,6 +2544,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
index 7c80f1818a..abfaf8840f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
@@ -22,12 +22,8 @@ GLIBC_2.0 __p_type_syms D 0x450
 GLIBC_2.0 __putlong F
 GLIBC_2.0 __putshort F
 GLIBC_2.0 __res_close F
-GLIBC_2.0 __res_dnok F
-GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_isourserver F
-GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_nameinquery F
-GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_queriesmatch F
 GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index ea9221aa8d..82162f919d 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -418,9 +418,13 @@ GLIBC_2.21 __realpath_chk F
 GLIBC_2.21 __recv_chk F
 GLIBC_2.21 __recvfrom_chk F
 GLIBC_2.21 __register_atfork F
+GLIBC_2.21 __res_dnok F
+GLIBC_2.21 __res_hnok F
 GLIBC_2.21 __res_init F
+GLIBC_2.21 __res_mailok F
 GLIBC_2.21 __res_nclose F
 GLIBC_2.21 __res_ninit F
+GLIBC_2.21 __res_ownok F
 GLIBC_2.21 __res_randomid F
 GLIBC_2.21 __res_state F
 GLIBC_2.21 __rpc_thread_createerr F
@@ -2673,6 +2677,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
index c4fbc8c68b..14395d8bf4 100644
--- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
@@ -23,11 +23,8 @@ GLIBC_2.21 __p_type_syms D 0x228
 GLIBC_2.21 __putlong F
 GLIBC_2.21 __putshort F
 GLIBC_2.21 __res_close F
-GLIBC_2.21 __res_dnok F
-GLIBC_2.21 __res_hnok F
 GLIBC_2.21 __res_hostalias F
 GLIBC_2.21 __res_isourserver F
-GLIBC_2.21 __res_mailok F
 GLIBC_2.21 __res_mkquery F
 GLIBC_2.21 __res_nameinquery F
 GLIBC_2.21 __res_nmkquery F
@@ -35,7 +32,6 @@ GLIBC_2.21 __res_nquery F
 GLIBC_2.21 __res_nquerydomain F
 GLIBC_2.21 __res_nsearch F
 GLIBC_2.21 __res_nsend F
-GLIBC_2.21 __res_ownok F
 GLIBC_2.21 __res_queriesmatch F
 GLIBC_2.21 __res_query F
 GLIBC_2.21 __res_querydomain F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 9d860c3de5..2afd685b07 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -215,6 +215,10 @@ GLIBC_2.0 __register_frame F
 GLIBC_2.0 __register_frame_info F
 GLIBC_2.0 __register_frame_info_table F
 GLIBC_2.0 __register_frame_table F
+GLIBC_2.0 __res_dnok F
+GLIBC_2.0 __res_hnok F
+GLIBC_2.0 __res_mailok F
+GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_randomid F
 GLIBC_2.0 __sbrk F
 GLIBC_2.0 __sched_get_priority_max F
@@ -2684,6 +2688,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
index 48ff3bffa1..b6244e71e7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
@@ -22,12 +22,8 @@ GLIBC_2.0 __p_type_syms D 0x228
 GLIBC_2.0 __putlong F
 GLIBC_2.0 __putshort F
 GLIBC_2.0 __res_close F
-GLIBC_2.0 __res_dnok F
-GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_isourserver F
-GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_nameinquery F
-GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_queriesmatch F
 GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 9469c6df2f..d7111c53a5 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -215,6 +215,10 @@ GLIBC_2.0 __register_frame F
 GLIBC_2.0 __register_frame_info F
 GLIBC_2.0 __register_frame_info_table F
 GLIBC_2.0 __register_frame_table F
+GLIBC_2.0 __res_dnok F
+GLIBC_2.0 __res_hnok F
+GLIBC_2.0 __res_mailok F
+GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_randomid F
 GLIBC_2.0 __sbrk F
 GLIBC_2.0 __sched_get_priority_max F
@@ -2717,6 +2721,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 5b2f1b809d..d27bc07919 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -464,9 +464,13 @@ GLIBC_2.3 __rawmemchr F
 GLIBC_2.3 __rcmd_errstr D 0x8
 GLIBC_2.3 __read F
 GLIBC_2.3 __realloc_hook D 0x8
+GLIBC_2.3 __res_dnok F
+GLIBC_2.3 __res_hnok F
 GLIBC_2.3 __res_init F
+GLIBC_2.3 __res_mailok F
 GLIBC_2.3 __res_nclose F
 GLIBC_2.3 __res_ninit F
+GLIBC_2.3 __res_ownok F
 GLIBC_2.3 __res_randomid F
 GLIBC_2.3 __res_state F
 GLIBC_2.3 __rpc_thread_createerr F
@@ -2452,6 +2456,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
index b3d9c35c10..d48ab674cc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
@@ -22,11 +22,8 @@ GLIBC_2.3 __p_type_syms D 0x450
 GLIBC_2.3 __putlong F
 GLIBC_2.3 __putshort F
 GLIBC_2.3 __res_close F
-GLIBC_2.3 __res_dnok F
-GLIBC_2.3 __res_hnok F
 GLIBC_2.3 __res_hostalias F
 GLIBC_2.3 __res_isourserver F
-GLIBC_2.3 __res_mailok F
 GLIBC_2.3 __res_mkquery F
 GLIBC_2.3 __res_nameinquery F
 GLIBC_2.3 __res_nmkquery F
@@ -34,7 +31,6 @@ GLIBC_2.3 __res_nquery F
 GLIBC_2.3 __res_nquerydomain F
 GLIBC_2.3 __res_nsearch F
 GLIBC_2.3 __res_nsend F
-GLIBC_2.3 __res_ownok F
 GLIBC_2.3 __res_queriesmatch F
 GLIBC_2.3 __res_query F
 GLIBC_2.3 __res_querydomain F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 1e6c82f7c4..20e1d587c3 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -466,9 +466,13 @@ GLIBC_2.17 __realpath_chk F
 GLIBC_2.17 __recv_chk F
 GLIBC_2.17 __recvfrom_chk F
 GLIBC_2.17 __register_atfork F
+GLIBC_2.17 __res_dnok F
+GLIBC_2.17 __res_hnok F
 GLIBC_2.17 __res_init F
+GLIBC_2.17 __res_mailok F
 GLIBC_2.17 __res_nclose F
 GLIBC_2.17 __res_ninit F
+GLIBC_2.17 __res_ownok F
 GLIBC_2.17 __res_randomid F
 GLIBC_2.17 __res_state F
 GLIBC_2.17 __rpc_thread_createerr F
@@ -2754,6 +2758,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
index beb6e0efe3..613638f9ce 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
@@ -23,11 +23,8 @@ GLIBC_2.17 __p_type_syms D 0x450
 GLIBC_2.17 __putlong F
 GLIBC_2.17 __putshort F
 GLIBC_2.17 __res_close F
-GLIBC_2.17 __res_dnok F
-GLIBC_2.17 __res_hnok F
 GLIBC_2.17 __res_hostalias F
 GLIBC_2.17 __res_isourserver F
-GLIBC_2.17 __res_mailok F
 GLIBC_2.17 __res_mkquery F
 GLIBC_2.17 __res_nameinquery F
 GLIBC_2.17 __res_nmkquery F
@@ -35,7 +32,6 @@ GLIBC_2.17 __res_nquery F
 GLIBC_2.17 __res_nquerydomain F
 GLIBC_2.17 __res_nsearch F
 GLIBC_2.17 __res_nsend F
-GLIBC_2.17 __res_ownok F
 GLIBC_2.17 __res_queriesmatch F
 GLIBC_2.17 __res_query F
 GLIBC_2.17 __res_querydomain F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 620dcfd62d..891ee06d45 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -366,9 +366,13 @@ GLIBC_2.33 __realpath_chk F
 GLIBC_2.33 __recv_chk F
 GLIBC_2.33 __recvfrom_chk F
 GLIBC_2.33 __register_atfork F
+GLIBC_2.33 __res_dnok F
+GLIBC_2.33 __res_hnok F
 GLIBC_2.33 __res_init F
+GLIBC_2.33 __res_mailok F
 GLIBC_2.33 __res_nclose F
 GLIBC_2.33 __res_ninit F
+GLIBC_2.33 __res_ownok F
 GLIBC_2.33 __res_randomid F
 GLIBC_2.33 __res_state F
 GLIBC_2.33 __riscv_flush_icache F
@@ -2319,6 +2323,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
index 768d103895..3b9691588e 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
@@ -22,11 +22,8 @@ GLIBC_2.33 __p_type_syms D 0x228
 GLIBC_2.33 __putlong F
 GLIBC_2.33 __putshort F
 GLIBC_2.33 __res_close F
-GLIBC_2.33 __res_dnok F
-GLIBC_2.33 __res_hnok F
 GLIBC_2.33 __res_hostalias F
 GLIBC_2.33 __res_isourserver F
-GLIBC_2.33 __res_mailok F
 GLIBC_2.33 __res_mkquery F
 GLIBC_2.33 __res_nameinquery F
 GLIBC_2.33 __res_nmkquery F
@@ -34,7 +31,6 @@ GLIBC_2.33 __res_nquery F
 GLIBC_2.33 __res_nquerydomain F
 GLIBC_2.33 __res_nsearch F
 GLIBC_2.33 __res_nsend F
-GLIBC_2.33 __res_ownok F
 GLIBC_2.33 __res_queriesmatch F
 GLIBC_2.33 __res_query F
 GLIBC_2.33 __res_querydomain F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index ce3ef6c7a4..089c6b9de3 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -377,9 +377,13 @@ GLIBC_2.27 __realpath_chk F
 GLIBC_2.27 __recv_chk F
 GLIBC_2.27 __recvfrom_chk F
 GLIBC_2.27 __register_atfork F
+GLIBC_2.27 __res_dnok F
+GLIBC_2.27 __res_hnok F
 GLIBC_2.27 __res_init F
+GLIBC_2.27 __res_mailok F
 GLIBC_2.27 __res_nclose F
 GLIBC_2.27 __res_ninit F
+GLIBC_2.27 __res_ownok F
 GLIBC_2.27 __res_randomid F
 GLIBC_2.27 __res_state F
 GLIBC_2.27 __riscv_flush_icache F
@@ -2519,6 +2523,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
index 998b7a2105..4417916b78 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
@@ -22,11 +22,8 @@ GLIBC_2.27 __p_type_syms D 0x450
 GLIBC_2.27 __putlong F
 GLIBC_2.27 __putshort F
 GLIBC_2.27 __res_close F
-GLIBC_2.27 __res_dnok F
-GLIBC_2.27 __res_hnok F
 GLIBC_2.27 __res_hostalias F
 GLIBC_2.27 __res_isourserver F
-GLIBC_2.27 __res_mailok F
 GLIBC_2.27 __res_mkquery F
 GLIBC_2.27 __res_nameinquery F
 GLIBC_2.27 __res_nmkquery F
@@ -34,7 +31,6 @@ GLIBC_2.27 __res_nquery F
 GLIBC_2.27 __res_nquerydomain F
 GLIBC_2.27 __res_nsearch F
 GLIBC_2.27 __res_nsend F
-GLIBC_2.27 __res_ownok F
 GLIBC_2.27 __res_queriesmatch F
 GLIBC_2.27 __res_query F
 GLIBC_2.27 __res_querydomain F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 559a76b8f0..7c02785103 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -206,6 +206,10 @@ GLIBC_2.0 __register_frame F
 GLIBC_2.0 __register_frame_info F
 GLIBC_2.0 __register_frame_info_table F
 GLIBC_2.0 __register_frame_table F
+GLIBC_2.0 __res_dnok F
+GLIBC_2.0 __res_hnok F
+GLIBC_2.0 __res_mailok F
+GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_randomid F
 GLIBC_2.0 __sbrk F
 GLIBC_2.0 __sched_get_priority_max F
@@ -2682,6 +2686,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
index 48ff3bffa1..b6244e71e7 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
@@ -22,12 +22,8 @@ GLIBC_2.0 __p_type_syms D 0x228
 GLIBC_2.0 __putlong F
 GLIBC_2.0 __putshort F
 GLIBC_2.0 __res_close F
-GLIBC_2.0 __res_dnok F
-GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_isourserver F
-GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_nameinquery F
-GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_queriesmatch F
 GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 2580a329fe..d294d9af62 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -408,9 +408,13 @@ GLIBC_2.2 __register_frame F
 GLIBC_2.2 __register_frame_info F
 GLIBC_2.2 __register_frame_info_table F
 GLIBC_2.2 __register_frame_table F
+GLIBC_2.2 __res_dnok F
+GLIBC_2.2 __res_hnok F
 GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_mailok F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_ownok F
 GLIBC_2.2 __res_randomid F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __sbrk F
@@ -2489,6 +2493,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
index 23e952fcac..07d7ef8935 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
@@ -22,11 +22,8 @@ GLIBC_2.2 __p_type_syms D 0x450
 GLIBC_2.2 __putlong F
 GLIBC_2.2 __putshort F
 GLIBC_2.2 __res_close F
-GLIBC_2.2 __res_dnok F
-GLIBC_2.2 __res_hnok F
 GLIBC_2.2 __res_hostalias F
 GLIBC_2.2 __res_isourserver F
-GLIBC_2.2 __res_mailok F
 GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nameinquery F
 GLIBC_2.2 __res_nmkquery F
@@ -34,7 +31,6 @@ GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
 GLIBC_2.2 __res_nsend F
-GLIBC_2.2 __res_ownok F
 GLIBC_2.2 __res_queriesmatch F
 GLIBC_2.2 __res_query F
 GLIBC_2.2 __res_querydomain F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index b7d1c17e93..a3e3845b3f 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -4,6 +4,10 @@ GCC_3.0 __register_frame_info_bases F
 GCC_3.0 __register_frame_info_table_bases F
 GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dn_skipname F
+GLIBC_2.0 __res_dnok F
+GLIBC_2.0 __res_hnok F
+GLIBC_2.0 __res_mailok F
+GLIBC_2.0 __res_ownok F
 GLIBC_2.0 dladdr F
 GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
@@ -2537,6 +2541,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
index 48ff3bffa1..b6244e71e7 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
@@ -22,12 +22,8 @@ GLIBC_2.0 __p_type_syms D 0x228
 GLIBC_2.0 __putlong F
 GLIBC_2.0 __putshort F
 GLIBC_2.0 __res_close F
-GLIBC_2.0 __res_dnok F
-GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_isourserver F
-GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_nameinquery F
-GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_queriesmatch F
 GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 74919e98e2..3a7ca365c8 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -4,6 +4,10 @@ GCC_3.0 __register_frame_info_bases F
 GCC_3.0 __register_frame_info_table_bases F
 GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dn_skipname F
+GLIBC_2.0 __res_dnok F
+GLIBC_2.0 __res_hnok F
+GLIBC_2.0 __res_mailok F
+GLIBC_2.0 __res_ownok F
 GLIBC_2.0 dladdr F
 GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
@@ -2534,6 +2538,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
index 48ff3bffa1..b6244e71e7 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
@@ -22,12 +22,8 @@ GLIBC_2.0 __p_type_syms D 0x228
 GLIBC_2.0 __putlong F
 GLIBC_2.0 __putshort F
 GLIBC_2.0 __res_close F
-GLIBC_2.0 __res_dnok F
-GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_isourserver F
-GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_nameinquery F
-GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_queriesmatch F
 GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 4d4d5b1129..61ebc732dd 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -210,6 +210,10 @@ GLIBC_2.0 __register_frame F
 GLIBC_2.0 __register_frame_info F
 GLIBC_2.0 __register_frame_info_table F
 GLIBC_2.0 __register_frame_table F
+GLIBC_2.0 __res_dnok F
+GLIBC_2.0 __res_hnok F
+GLIBC_2.0 __res_mailok F
+GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_randomid F
 GLIBC_2.0 __sbrk F
 GLIBC_2.0 __sched_get_priority_max F
@@ -2677,6 +2681,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
index 48ff3bffa1..b6244e71e7 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
@@ -22,12 +22,8 @@ GLIBC_2.0 __p_type_syms D 0x228
 GLIBC_2.0 __putlong F
 GLIBC_2.0 __putshort F
 GLIBC_2.0 __res_close F
-GLIBC_2.0 __res_dnok F
-GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_isourserver F
-GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_nameinquery F
-GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_queriesmatch F
 GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 836e95bca8..8417c58ddd 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -4,6 +4,10 @@ GCC_3.0 __register_frame_info_bases F
 GCC_3.0 __register_frame_info_table_bases F
 GLIBC_2.0 __dn_comp F
 GLIBC_2.0 __dn_skipname F
+GLIBC_2.0 __res_dnok F
+GLIBC_2.0 __res_hnok F
+GLIBC_2.0 __res_mailok F
+GLIBC_2.0 __res_ownok F
 GLIBC_2.0 dladdr F
 GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
@@ -2512,6 +2516,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
index 7c80f1818a..abfaf8840f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
@@ -22,12 +22,8 @@ GLIBC_2.0 __p_type_syms D 0x450
 GLIBC_2.0 __putlong F
 GLIBC_2.0 __putshort F
 GLIBC_2.0 __res_close F
-GLIBC_2.0 __res_dnok F
-GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_isourserver F
-GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_nameinquery F
-GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_queriesmatch F
 GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 65b3a9c04a..d50726c678 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -392,9 +392,13 @@ GLIBC_2.2.5 __rawmemchr F
 GLIBC_2.2.5 __rcmd_errstr D 0x8
 GLIBC_2.2.5 __read F
 GLIBC_2.2.5 __realloc_hook D 0x8
+GLIBC_2.2.5 __res_dnok F
+GLIBC_2.2.5 __res_hnok F
 GLIBC_2.2.5 __res_init F
+GLIBC_2.2.5 __res_mailok F
 GLIBC_2.2.5 __res_nclose F
 GLIBC_2.2.5 __res_ninit F
+GLIBC_2.2.5 __res_ownok F
 GLIBC_2.2.5 __res_randomid F
 GLIBC_2.2.5 __res_state F
 GLIBC_2.2.5 __rpc_thread_createerr F
@@ -2467,6 +2471,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
index 93c5e8111c..3375dd6380 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
@@ -22,11 +22,8 @@ GLIBC_2.2.5 __p_type_syms D 0x450
 GLIBC_2.2.5 __putlong F
 GLIBC_2.2.5 __putshort F
 GLIBC_2.2.5 __res_close F
-GLIBC_2.2.5 __res_dnok F
-GLIBC_2.2.5 __res_hnok F
 GLIBC_2.2.5 __res_hostalias F
 GLIBC_2.2.5 __res_isourserver F
-GLIBC_2.2.5 __res_mailok F
 GLIBC_2.2.5 __res_mkquery F
 GLIBC_2.2.5 __res_nameinquery F
 GLIBC_2.2.5 __res_nmkquery F
@@ -34,7 +31,6 @@ GLIBC_2.2.5 __res_nquery F
 GLIBC_2.2.5 __res_nquerydomain F
 GLIBC_2.2.5 __res_nsearch F
 GLIBC_2.2.5 __res_nsend F
-GLIBC_2.2.5 __res_ownok F
 GLIBC_2.2.5 __res_queriesmatch F
 GLIBC_2.2.5 __res_query F
 GLIBC_2.2.5 __res_querydomain F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index f1d9779f5c..1e92ea4ce4 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -381,9 +381,13 @@ GLIBC_2.16 __realpath_chk F
 GLIBC_2.16 __recv_chk F
 GLIBC_2.16 __recvfrom_chk F
 GLIBC_2.16 __register_atfork F
+GLIBC_2.16 __res_dnok F
+GLIBC_2.16 __res_hnok F
 GLIBC_2.16 __res_init F
+GLIBC_2.16 __res_mailok F
 GLIBC_2.16 __res_nclose F
 GLIBC_2.16 __res_ninit F
+GLIBC_2.16 __res_ownok F
 GLIBC_2.16 __res_randomid F
 GLIBC_2.16 __res_state F
 GLIBC_2.16 __rpc_thread_createerr F
@@ -2573,6 +2577,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
index 5c84955527..99db09f022 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
@@ -23,11 +23,8 @@ GLIBC_2.16 __p_type_syms D 0x228
 GLIBC_2.16 __putlong F
 GLIBC_2.16 __putshort F
 GLIBC_2.16 __res_close F
-GLIBC_2.16 __res_dnok F
-GLIBC_2.16 __res_hnok F
 GLIBC_2.16 __res_hostalias F
 GLIBC_2.16 __res_isourserver F
-GLIBC_2.16 __res_mailok F
 GLIBC_2.16 __res_mkquery F
 GLIBC_2.16 __res_nameinquery F
 GLIBC_2.16 __res_nmkquery F
@@ -35,7 +32,6 @@ GLIBC_2.16 __res_nquery F
 GLIBC_2.16 __res_nquerydomain F
 GLIBC_2.16 __res_nsearch F
 GLIBC_2.16 __res_nsend F
-GLIBC_2.16 __res_ownok F
 GLIBC_2.16 __res_queriesmatch F
 GLIBC_2.16 __res_query F
 GLIBC_2.16 __res_querydomain F
-- 
2.31.1



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

* [PATCH 17/30] resolv: Remove unnecessary res_isourserver_p call from send_dg
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (15 preceding siblings ...)
  2021-07-02 18:48 ` [PATCH 16/30] resolv: Rename res_comp.c to res-name-checking.c and move " Florian Weimer
@ 2021-07-02 18:49 ` Florian Weimer
  2021-07-02 18:49 ` [PATCH 18/30] resolv: Move __res_get_nsaddr to its own file and into libc Florian Weimer
                   ` (12 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:49 UTC (permalink / raw)
  To: libc-alpha

As the comment indicates, the check is unnecessary due to the way the
UDP socket is set up.
---
 resolv/res_send.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/resolv/res_send.c b/resolv/res_send.c
index 77d6835e1a..b6139c7d62 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -1343,12 +1343,6 @@ send_dg(res_state statp,
 			return close_and_return_error (statp, resplen2);
 		}
 
-		/* Paranoia check.  Due to the connected UDP socket,
-		   the kernel has already filtered invalid addresses
-		   for us.  */
-		if (!res_ourserver_p(statp, &from))
-		  goto wait;
-
 		/* Check for the correct header layout and a matching
 		   question.  */
 		int matching_query = 0; /* Default to no matching query.  */
-- 
2.31.1



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

* [PATCH 18/30] resolv: Move __res_get_nsaddr to its own file and into libc
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (16 preceding siblings ...)
  2021-07-02 18:49 ` [PATCH 17/30] resolv: Remove unnecessary res_isourserver_p call from send_dg Florian Weimer
@ 2021-07-02 18:49 ` Florian Weimer
  2021-07-02 18:49 ` [PATCH 19/30] resolv: Move res_isourserver to its own file and reformat to GNU style Florian Weimer
                   ` (11 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:49 UTC (permalink / raw)
  To: libc-alpha

Eliminate the use of the EXT macro from it because it does not
add clarity.  The function was added to res_send.c in 2015, and
the copyright year reflects that.
---
 resolv/Makefile          |  1 +
 resolv/Versions          |  1 +
 resolv/res_get_nsaddr.c  | 39 +++++++++++++++++++++++++++++++++++++++
 resolv/res_send.c        | 25 ++++---------------------
 resolv/resolv-internal.h |  6 ++++++
 5 files changed, 51 insertions(+), 21 deletions(-)
 create mode 100644 resolv/res_get_nsaddr.c

diff --git a/resolv/Makefile b/resolv/Makefile
index 7e142b9a14..6eed73de87 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -46,6 +46,7 @@ routines := \
   res-close \
   res-name-checking \
   res-state \
+  res_get_nsaddr \
   res_hconf \
   res_init \
   res_libc \
diff --git a/resolv/Versions b/resolv/Versions
index 3e3b89a0b2..fc14cdb701 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -81,6 +81,7 @@ libc {
     __ns_name_skip;
     __ns_name_uncompress;
     __ns_name_unpack;
+    __res_get_nsaddr;
     __res_iclose;
     __resolv_context_get;
     __resolv_context_get_override;
diff --git a/resolv/res_get_nsaddr.c b/resolv/res_get_nsaddr.c
new file mode 100644
index 0000000000..593597bdd7
--- /dev/null
+++ b/resolv/res_get_nsaddr.c
@@ -0,0 +1,39 @@
+/* Name server address at specified index in res_state.
+   Copyright (C) 2015-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/>.  */
+
+#include <assert.h>
+#include <resolv.h>
+#include <resolv-internal.h>
+
+struct sockaddr *
+__res_get_nsaddr (res_state statp, unsigned int n)
+{
+  assert (n < statp->nscount);
+
+  if (statp->nsaddr_list[n].sin_family == 0
+      && statp->_u._ext.nsaddrs[n] != NULL)
+    /* statp->_u._ext.nsaddrs[n] holds an address that is larger than
+       struct sockaddr, and user code did not update
+       statp->nsaddr_list[n].  */
+    return (struct sockaddr *) statp->_u._ext.nsaddrs[n];
+  else
+    /* User code updated statp->nsaddr_list[n], or statp->nsaddr_list[n]
+       has the same content as statp->_u._ext.nsaddrs[n].  */
+    return (struct sockaddr *) (void *) &statp->nsaddr_list[n];
+}
+libc_hidden_def (__res_get_nsaddr)
diff --git a/resolv/res_send.c b/resolv/res_send.c
index b6139c7d62..78f564ee85 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -180,7 +180,6 @@ evNowTime(struct timespec *res) {
 
 /* Forward. */
 
-static struct sockaddr *get_nsaddr (res_state, unsigned int);
 static int		send_vc(res_state, const u_char *, int,
 				const u_char *, int,
 				u_char **, int *, int *, int, u_char **,
@@ -215,7 +214,7 @@ res_ourserver_p(const res_state statp, const struct sockaddr_in6 *inp)
 
 	    for (ns = 0;  ns < statp->nscount;  ns++) {
 		const struct sockaddr_in *srv =
-		    (struct sockaddr_in *) get_nsaddr (statp, ns);
+		    (struct sockaddr_in *) __res_get_nsaddr (statp, ns);
 
 		if ((srv->sin_family == AF_INET) &&
 		    (srv->sin_port == port) &&
@@ -226,7 +225,7 @@ res_ourserver_p(const res_state statp, const struct sockaddr_in6 *inp)
 	} else if (inp->sin6_family == AF_INET6) {
 	    for (ns = 0;  ns < statp->nscount;  ns++) {
 		const struct sockaddr_in6 *srv
-		  = (struct sockaddr_in6 *) get_nsaddr (statp, ns);
+		  = (struct sockaddr_in6 *) __res_get_nsaddr (statp, ns);
 		if ((srv->sin6_family == AF_INET6) &&
 		    (srv->sin6_port == inp->sin6_port) &&
 		    !(memcmp(&srv->sin6_addr, &in6addr_any,
@@ -608,22 +607,6 @@ res_send (const unsigned char *buf, int buflen, unsigned char *ans, int anssiz)
 
 /* Private */
 
-static struct sockaddr *
-get_nsaddr (res_state statp, unsigned int n)
-{
-  assert (n < statp->nscount);
-
-  if (statp->nsaddr_list[n].sin_family == 0 && EXT(statp).nsaddrs[n] != NULL)
-    /* EXT(statp).nsaddrs[n] holds an address that is larger than
-       struct sockaddr, and user code did not update
-       statp->nsaddr_list[n].  */
-    return (struct sockaddr *) EXT(statp).nsaddrs[n];
-  else
-    /* User code updated statp->nsaddr_list[n], or statp->nsaddr_list[n]
-       has the same content as EXT(statp).nsaddrs[n].  */
-    return (struct sockaddr *) (void *) &statp->nsaddr_list[n];
-}
-
 /* Close the resolver structure, assign zero to *RESPLEN2 if RESPLEN2
    is not NULL, and return zero.  */
 static int
@@ -717,7 +700,7 @@ send_vc(res_state statp,
 	const HEADER *hp = (HEADER *) buf;
 	const HEADER *hp2 = (HEADER *) buf2;
 	HEADER *anhp = (HEADER *) *ansp;
-	struct sockaddr *nsap = get_nsaddr (statp, ns);
+	struct sockaddr *nsap = __res_get_nsaddr (statp, ns);
 	int truncating, connreset, n;
 	/* On some architectures compiler might emit a warning indicating
 	   'resplen' may be used uninitialized.  However if buf2 == NULL
@@ -948,7 +931,7 @@ static int
 reopen (res_state statp, int *terrno, int ns)
 {
 	if (EXT(statp).nssocks[ns] == -1) {
-		struct sockaddr *nsap = get_nsaddr (statp, ns);
+		struct sockaddr *nsap = __res_get_nsaddr (statp, ns);
 		socklen_t slen;
 
 		/* only try IPv6 if IPv6 NS and if not failed before */
diff --git a/resolv/resolv-internal.h b/resolv/resolv-internal.h
index e1e8aa3ef3..c18b1d0472 100644
--- a/resolv/resolv-internal.h
+++ b/resolv/resolv-internal.h
@@ -103,4 +103,10 @@ void __res_thread_freeres (void) attribute_hidden;
    success, -1 on failure.  */
 int __res_enable_icmp (int family, int fd) attribute_hidden;
 
+
+/* Returns the name server address for the indicated index.  */
+struct sockaddr *__res_get_nsaddr (res_state statp, unsigned int n);
+libc_hidden_proto (__res_get_nsaddr)
+
+
 #endif  /* _RESOLV_INTERNAL_H */
-- 
2.31.1



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

* [PATCH 19/30] resolv: Move res_isourserver to its own file and reformat to GNU style
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (17 preceding siblings ...)
  2021-07-02 18:49 ` [PATCH 18/30] resolv: Move __res_get_nsaddr to its own file and into libc Florian Weimer
@ 2021-07-02 18:49 ` Florian Weimer
  2021-07-02 18:49 ` [PATCH 20/30] resolv: Move ns_makecanon into its own file, and into libc Florian Weimer
                   ` (10 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:49 UTC (permalink / raw)
  To: libc-alpha

---
 include/resolv.h         |   2 -
 resolv/Makefile          |   1 +
 resolv/res_isourserver.c | 134 +++++++++++++++++++++++++++++++++++++++
 resolv/res_send.c        |  51 ---------------
 4 files changed, 135 insertions(+), 53 deletions(-)
 create mode 100644 resolv/res_isourserver.c

diff --git a/include/resolv.h b/include/resolv.h
index 0c8db600d6..a70e9e5723 100644
--- a/include/resolv.h
+++ b/include/resolv.h
@@ -31,8 +31,6 @@ extern struct hostent *_gethtbyname2 (const char *__name, int __af);
 struct hostent *_gethtbyaddr (const char *addr, size_t __len, int __af);
 extern uint32_t _getlong (const unsigned char *__src);
 extern uint16_t _getshort (const unsigned char *__src);
-extern int res_ourserver_p (const res_state __statp,
-			    const struct sockaddr_in6 *__inp);
 extern void __res_iclose (res_state statp, bool free_addr);
 libc_hidden_proto (__res_ninit)
 libc_hidden_proto (__res_nclose)
diff --git a/resolv/Makefile b/resolv/Makefile
index 6eed73de87..221bdc153d 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -147,6 +147,7 @@ libresolv-routines := \
   res_data \
   res_debug \
   res_enable_icmp \
+  res_isourserver \
   res_mkquery \
   res_query \
   res_send \
diff --git a/resolv/res_isourserver.c b/resolv/res_isourserver.c
new file mode 100644
index 0000000000..1e3576fb88
--- /dev/null
+++ b/resolv/res_isourserver.c
@@ -0,0 +1,134 @@
+/* Legacy function for expected server checking.
+   Copyright (C) 2016-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/>.  */
+
+/*
+ * Copyright (c) 1985, 1989, 1993
+ *    The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Portions Copyright (c) 1993 by Digital Equipment Corporation.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies, and that
+ * the name of Digital Equipment Corporation not be used in advertising or
+ * publicity pertaining to distribution of the document or software without
+ * specific, written prior permission.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
+ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+/*
+ * Portions Copyright (c) 1996-1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+#include <resolv-internal.h>
+#include <resolv.h>
+#include <string.h>
+
+/* author: paul vixie, 29may94 */
+static int
+res_ourserver_p (const res_state statp, const struct sockaddr_in6 *inp)
+{
+  int ns;
+
+  if (inp->sin6_family == AF_INET)
+    {
+      struct sockaddr_in *in4p = (struct sockaddr_in *) inp;
+      in_port_t port = in4p->sin_port;
+      in_addr_t addr = in4p->sin_addr.s_addr;
+
+      for (ns = 0;  ns < statp->nscount;  ns++)
+        {
+          const struct sockaddr_in *srv =
+            (struct sockaddr_in *) __res_get_nsaddr (statp, ns);
+
+          if ((srv->sin_family == AF_INET) &&
+              (srv->sin_port == port) &&
+              (srv->sin_addr.s_addr == INADDR_ANY ||
+               srv->sin_addr.s_addr == addr))
+            return 1;
+        }
+    } else if (inp->sin6_family == AF_INET6)
+    {
+      for (ns = 0;  ns < statp->nscount;  ns++)
+        {
+          const struct sockaddr_in6 *srv
+            = (struct sockaddr_in6 *) __res_get_nsaddr (statp, ns);
+          if ((srv->sin6_family == AF_INET6) &&
+              (srv->sin6_port == inp->sin6_port) &&
+              !(memcmp (&srv->sin6_addr, &in6addr_any,
+                        sizeof (struct in6_addr)) &&
+                memcmp (&srv->sin6_addr, &inp->sin6_addr,
+                        sizeof (struct in6_addr))))
+            return 1;
+        }
+    }
+  return 0;
+}
+
+int
+res_isourserver (const struct sockaddr_in *inp)
+{
+  return res_ourserver_p (&_res, (const struct sockaddr_in6 *) inp);
+}
diff --git a/resolv/res_send.c b/resolv/res_send.c
index 78f564ee85..915fc6d2c6 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -193,57 +193,6 @@ static int		sock_eq(struct sockaddr_in6 *, struct sockaddr_in6 *);
 
 /* Public. */
 
-/* int
- * res_isourserver(ina)
- *	looks up "ina" in _res.ns_addr_list[]
- * returns:
- *	0  : not found
- *	>0 : found
- * author:
- *	paul vixie, 29may94
- */
-int
-res_ourserver_p(const res_state statp, const struct sockaddr_in6 *inp)
-{
-	int ns;
-
-	if (inp->sin6_family == AF_INET) {
-	    struct sockaddr_in *in4p = (struct sockaddr_in *) inp;
-	    in_port_t port = in4p->sin_port;
-	    in_addr_t addr = in4p->sin_addr.s_addr;
-
-	    for (ns = 0;  ns < statp->nscount;  ns++) {
-		const struct sockaddr_in *srv =
-		    (struct sockaddr_in *) __res_get_nsaddr (statp, ns);
-
-		if ((srv->sin_family == AF_INET) &&
-		    (srv->sin_port == port) &&
-		    (srv->sin_addr.s_addr == INADDR_ANY ||
-		     srv->sin_addr.s_addr == addr))
-		    return (1);
-	    }
-	} else if (inp->sin6_family == AF_INET6) {
-	    for (ns = 0;  ns < statp->nscount;  ns++) {
-		const struct sockaddr_in6 *srv
-		  = (struct sockaddr_in6 *) __res_get_nsaddr (statp, ns);
-		if ((srv->sin6_family == AF_INET6) &&
-		    (srv->sin6_port == inp->sin6_port) &&
-		    !(memcmp(&srv->sin6_addr, &in6addr_any,
-			     sizeof (struct in6_addr)) &&
-		      memcmp(&srv->sin6_addr, &inp->sin6_addr,
-			     sizeof (struct in6_addr))))
-		    return (1);
-	    }
-	}
-	return (0);
-}
-
-int
-res_isourserver (const struct sockaddr_in *inp)
-{
-  return res_ourserver_p (&_res, (const struct sockaddr_in6 *) inp);
-}
-
 /* int
  * res_nameinquery(name, type, class, buf, eom)
  *	look for (name,type,class) in the query section of packet (buf,eom)
-- 
2.31.1



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

* [PATCH 20/30] resolv: Move ns_makecanon into its own file, and into libc
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (18 preceding siblings ...)
  2021-07-02 18:49 ` [PATCH 19/30] resolv: Move res_isourserver to its own file and reformat to GNU style Florian Weimer
@ 2021-07-02 18:49 ` Florian Weimer
  2021-07-02 18:49 ` [PATCH 21/30] resolv: Move ns_samename " Florian Weimer
                   ` (9 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:49 UTC (permalink / raw)
  To: libc-alpha

But only as an internal symbol, __libc_ns_makecanon.  The libresolv
ABI is preserved.  This is because the function is deprecated, and
it does not make sense to add new symbol versions for deprecated
functions.

Also reformat the implementation to GNU style.
---
 include/arpa/nameser.h     |  3 ++-
 resolv/Makefile            |  2 ++
 resolv/Versions            |  1 +
 resolv/ns_makecanon.c      | 50 ++++++++++++++++++++++++++++++++++++++
 resolv/ns_samedomain.c     | 38 ++---------------------------
 resolv/resolv-deprecated.c | 35 ++++++++++++++++++++++++++
 6 files changed, 92 insertions(+), 37 deletions(-)
 create mode 100644 resolv/ns_makecanon.c
 create mode 100644 resolv/resolv-deprecated.c

diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
index eff25178c8..a529cc86d3 100644
--- a/include/arpa/nameser.h
+++ b/include/arpa/nameser.h
@@ -69,9 +69,10 @@ libresolv_hidden_proto (ns_sprintrr)
 libresolv_hidden_proto (ns_sprintrrf)
 libresolv_hidden_proto (ns_samedomain)
 libresolv_hidden_proto (ns_samename)
-libresolv_hidden_proto (ns_makecanon)
 libresolv_hidden_proto (ns_format_ttl)
 
+extern __typeof (ns_makecanon) __libc_ns_makecanon;
+libc_hidden_proto (__libc_ns_makecanon)
 extern __typeof (ns_name_compress) __ns_name_compress;
 libc_hidden_proto (__ns_name_compress)
 extern __typeof (ns_name_ntop) __ns_name_ntop;
diff --git a/resolv/Makefile b/resolv/Makefile
index 221bdc153d..d1ad5e4cba 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -35,6 +35,7 @@ routines := \
   inet_addr \
   inet_ntop \
   inet_pton \
+  ns_makecanon \
   ns_name_compress \
   ns_name_ntop \
   ns_name_pack \
@@ -151,6 +152,7 @@ libresolv-routines := \
   res_mkquery \
   res_query \
   res_send \
+  resolv-deprecated \
   # libresolv-routines
 
 $(libanl-routines-var) += \
diff --git a/resolv/Versions b/resolv/Versions
index fc14cdb701..93078de25c 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -72,6 +72,7 @@ libc {
     __inet_pton_length;
     __libc_dn_expand;
     __libc_dn_skipname;
+    __libc_ns_makecanon;
     __libc_res_dnok;
     __libc_res_hnok;
     __ns_name_compress;
diff --git a/resolv/ns_makecanon.c b/resolv/ns_makecanon.c
new file mode 100644
index 0000000000..a6c3c2737d
--- /dev/null
+++ b/resolv/ns_makecanon.c
@@ -0,0 +1,50 @@
+/* Add missing "." to domain names.
+ * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1995,1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <errno.h>
+#include <string.h>
+
+/* Make a canonical copy of domain name SRC in DST.  Behavior:
+      foo -> foo.
+      foo. -> foo.
+      foo.. -> foo.
+      foo\. -> foo\..
+      foo\\. -> foo\\.  */
+int
+__libc_ns_makecanon (const char *src, char *dst, size_t dstsize)
+{
+  size_t n = strlen (src);
+
+  if (n + sizeof "." > dstsize) /* sizeof == 2.  */
+    {
+      __set_errno (EMSGSIZE);
+      return -1;
+    }
+  strcpy (dst, src);
+  while (n >= 1U && dst[n - 1] == '.')   /* Ends in ".".  */
+    if (n >= 2U && dst[n - 2] == '\\' && /* Ends in "\.".  */
+        (n < 3U || dst[n - 3] != '\\'))  /* But not "\\.".  */
+      break;
+    else
+      dst[--n] = '\0';
+  dst[n++] = '.';
+  dst[n] = '\0';
+  return 0;
+}
+libc_hidden_def (__libc_ns_makecanon)
diff --git a/resolv/ns_samedomain.c b/resolv/ns_samedomain.c
index 5d1bf39fc7..cfff2516b0 100644
--- a/resolv/ns_samedomain.c
+++ b/resolv/ns_samedomain.c
@@ -143,40 +143,6 @@ ns_subdomain(const char *a, const char *b) {
 	return (ns_samename(a, b) != 1 && ns_samedomain(a, b));
 }
 
-/*%
- *	make a canonical copy of domain name "src"
- *
- * notes:
- * \code
- *	foo -> foo.
- *	foo. -> foo.
- *	foo.. -> foo.
- *	foo\. -> foo\..
- *	foo\\. -> foo\\.
- * \endcode
- */
-
-int
-ns_makecanon(const char *src, char *dst, size_t dstsize) {
-	size_t n = strlen(src);
-
-	if (n + sizeof "." > dstsize) {			/*%< Note: sizeof == 2 */
-		__set_errno (EMSGSIZE);
-		return (-1);
-	}
-	strcpy(dst, src);
-	while (n >= 1U && dst[n - 1] == '.')		/*%< Ends in "." */
-		if (n >= 2U && dst[n - 2] == '\\' &&	/*%< Ends in "\." */
-		    (n < 3U || dst[n - 3] != '\\'))	/*%< But not "\\." */
-			break;
-		else
-			dst[--n] = '\0';
-	dst[n++] = '.';
-	dst[n] = '\0';
-	return (0);
-}
-libresolv_hidden_def (ns_makecanon)
-
 /*%
  *	determine whether domain name "a" is the same as domain name "b"
  *
@@ -190,8 +156,8 @@ int
 ns_samename(const char *a, const char *b) {
 	char ta[NS_MAXDNAME], tb[NS_MAXDNAME];
 
-	if (ns_makecanon(a, ta, sizeof ta) < 0 ||
-	    ns_makecanon(b, tb, sizeof tb) < 0)
+	if (__libc_ns_makecanon(a, ta, sizeof ta) < 0 ||
+	    __libc_ns_makecanon(b, tb, sizeof tb) < 0)
 		return (-1);
 	if (strcasecmp(ta, tb) == 0)
 		return (1);
diff --git a/resolv/resolv-deprecated.c b/resolv/resolv-deprecated.c
new file mode 100644
index 0000000000..cbd1078dc2
--- /dev/null
+++ b/resolv/resolv-deprecated.c
@@ -0,0 +1,35 @@
+/* Forwarders for deprecated libresolv functions which are implemented in libc.
+   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/>.  */
+
+/* Some functions are used by the stub resolver implementation
+   internally and thus have to be located in libc.  They have been
+   historially exported for application use as well.  However, the
+   stub resolver dependency on those functions is not intrinsic to
+   what the stub resolver does, and it is possible that a future
+   version of the stub resolver will not need them anymore.  The
+   public symbols for these functions remain in libresolv, and are not
+   moved to libc, to avoid adding new symbol versions for legacy
+   functions.  */
+
+#include <arpa/nameser.h>
+
+int
+ns_makecanon (const char *src, char *dst, size_t dstsize)
+{
+  return __libc_ns_makecanon (src, dst, dstsize);
+}
-- 
2.31.1



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

* [PATCH 21/30] resolv: Move ns_samename into its own file, and into libc
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (19 preceding siblings ...)
  2021-07-02 18:49 ` [PATCH 20/30] resolv: Move ns_makecanon into its own file, and into libc Florian Weimer
@ 2021-07-02 18:49 ` Florian Weimer
  2021-07-02 18:49 ` [PATCH 22/30] resolv: Move res_nameinquery to its own file " Florian Weimer
                   ` (8 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:49 UTC (permalink / raw)
  To: libc-alpha

But only as an internal symbol, __libc_ns_samename.  The libresolv
ABI is preserved.  This is because the function is deprecated, and
it does not make sense to add new symbol versions for deprecated
functions.

Also reformat the implementation to GNU style.
---
 include/arpa/nameser.h     |  3 ++-
 resolv/Makefile            |  1 +
 resolv/Versions            |  1 +
 resolv/ns_print.c          |  6 +++---
 resolv/ns_samedomain.c     | 28 +++-------------------------
 resolv/ns_samename.c       | 38 ++++++++++++++++++++++++++++++++++++++
 resolv/res_query.c         |  2 +-
 resolv/res_send.c          |  4 ++--
 resolv/resolv-deprecated.c |  6 ++++++
 9 files changed, 57 insertions(+), 32 deletions(-)
 create mode 100644 resolv/ns_samename.c

diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
index a529cc86d3..53f1dbc7c3 100644
--- a/include/arpa/nameser.h
+++ b/include/arpa/nameser.h
@@ -68,7 +68,6 @@ libresolv_hidden_proto (ns_parserr)
 libresolv_hidden_proto (ns_sprintrr)
 libresolv_hidden_proto (ns_sprintrrf)
 libresolv_hidden_proto (ns_samedomain)
-libresolv_hidden_proto (ns_samename)
 libresolv_hidden_proto (ns_format_ttl)
 
 extern __typeof (ns_makecanon) __libc_ns_makecanon;
@@ -87,6 +86,8 @@ extern __typeof (ns_name_uncompress) __ns_name_uncompress;
 libc_hidden_proto (__ns_name_uncompress)
 extern __typeof (ns_name_unpack) __ns_name_unpack;
 libc_hidden_proto (__ns_name_unpack)
+extern __typeof (ns_samename) __libc_ns_samename;
+libc_hidden_proto (__libc_ns_samename)
 
 # endif /* !_ISOMAC */
 #endif
diff --git a/resolv/Makefile b/resolv/Makefile
index d1ad5e4cba..744da951ae 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -43,6 +43,7 @@ routines := \
   ns_name_skip \
   ns_name_uncompress \
   ns_name_unpack \
+  ns_samename \
   nsap_addr \
   res-close \
   res-name-checking \
diff --git a/resolv/Versions b/resolv/Versions
index 93078de25c..2201d4224c 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -73,6 +73,7 @@ libc {
     __libc_dn_expand;
     __libc_dn_skipname;
     __libc_ns_makecanon;
+    __libc_ns_samename;
     __libc_res_dnok;
     __libc_res_hnok;
     __ns_name_compress;
diff --git a/resolv/ns_print.c b/resolv/ns_print.c
index 9a9602d74c..43f39edf61 100644
--- a/resolv/ns_print.c
+++ b/resolv/ns_print.c
@@ -103,9 +103,9 @@ ns_sprintrrf(const u_char *msg, size_t msglen,
 	/*
 	 * Owner.
 	 */
-	if (name_ctx != NULL && ns_samename(name_ctx, name) == 1) {
+	if (name_ctx != NULL && __libc_ns_samename (name_ctx, name) == 1)
 		T(addstr("\t\t\t", 3, &buf, &buflen));
-	} else {
+	else {
 		len = prune_origin(name, origin);
 		if (*name == '\0') {
 			goto root;
@@ -621,7 +621,7 @@ prune_origin(const char *name, const char *origin) {
 	const char *oname = name;
 
 	while (*name != '\0') {
-		if (origin != NULL && ns_samename(name, origin) == 1)
+		if (origin != NULL && __libc_ns_samename (name, origin) == 1)
 			return (name - oname - (name > oname));
 		while (*name != '\0') {
 			if (*name == '\\') {
diff --git a/resolv/ns_samedomain.c b/resolv/ns_samedomain.c
index cfff2516b0..46cb8f5fb2 100644
--- a/resolv/ns_samedomain.c
+++ b/resolv/ns_samedomain.c
@@ -139,31 +139,9 @@ libresolv_hidden_def (ns_samedomain)
  *	is "a" a subdomain of "b"?
  */
 int
-ns_subdomain(const char *a, const char *b) {
-	return (ns_samename(a, b) != 1 && ns_samedomain(a, b));
+ns_subdomain (const char *a, const char *b)
+{
+  return __libc_ns_samename (a, b) != 1 && ns_samedomain (a, b);
 }
 
-/*%
- *	determine whether domain name "a" is the same as domain name "b"
- *
- * return:
- *\li	-1 on error
- *\li	0 if names differ
- *\li	1 if names are the same
- */
-
-int
-ns_samename(const char *a, const char *b) {
-	char ta[NS_MAXDNAME], tb[NS_MAXDNAME];
-
-	if (__libc_ns_makecanon(a, ta, sizeof ta) < 0 ||
-	    __libc_ns_makecanon(b, tb, sizeof tb) < 0)
-		return (-1);
-	if (strcasecmp(ta, tb) == 0)
-		return (1);
-	else
-		return (0);
-}
-libresolv_hidden_def (ns_samename)
-
 /*! \file */
diff --git a/resolv/ns_samename.c b/resolv/ns_samename.c
new file mode 100644
index 0000000000..61fe3cab43
--- /dev/null
+++ b/resolv/ns_samename.c
@@ -0,0 +1,38 @@
+/* Check if two domain names are equal after trailing dot normalization.
+ * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1995,1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <string.h>
+
+/* Determines whether domain name A is the same as domain name B.
+   Returns -1 on error, 0 if names differ, 1 if names are the
+   same.  */
+int
+__libc_ns_samename (const char *a, const char *b)
+{
+  char ta[NS_MAXDNAME], tb[NS_MAXDNAME];
+
+  if (__libc_ns_makecanon (a, ta, sizeof ta) < 0 ||
+      __libc_ns_makecanon (b, tb, sizeof tb) < 0)
+    return -1;
+  if (__strcasecmp (ta, tb) == 0)
+    return 1;
+  else
+    return 0;
+}
+libc_hidden_def (__libc_ns_samename)
diff --git a/resolv/res_query.c b/resolv/res_query.c
index ebbe5a6a4e..5b51af8451 100644
--- a/resolv/res_query.c
+++ b/resolv/res_query.c
@@ -656,7 +656,7 @@ __res_context_hostalias (struct resolv_context *ctx,
 		if (!*cp1)
 			break;
 		*cp1 = '\0';
-		if (ns_samename(buf, name) == 1) {
+		if (__libc_ns_samename(buf, name) == 1) {
 			while (isspace(*++cp1))
 				;
 			if (!*cp1)
diff --git a/resolv/res_send.c b/resolv/res_send.c
index 915fc6d2c6..dfea9fc7fa 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -224,8 +224,8 @@ res_nameinquery(const char *name, int type, int class,
 			return (-1);
 		NS_GET16(ttype, cp);
 		NS_GET16(tclass, cp);
-		if (ttype == type && tclass == class &&
-		    ns_samename(tname, name) == 1)
+		if (ttype == type && tclass == class
+		    && __libc_ns_samename (tname, name) == 1)
 			return (1);
 	}
 	return (0);
diff --git a/resolv/resolv-deprecated.c b/resolv/resolv-deprecated.c
index cbd1078dc2..d8344f8f39 100644
--- a/resolv/resolv-deprecated.c
+++ b/resolv/resolv-deprecated.c
@@ -33,3 +33,9 @@ ns_makecanon (const char *src, char *dst, size_t dstsize)
 {
   return __libc_ns_makecanon (src, dst, dstsize);
 }
+
+int
+ns_samename (const char *a, const char *b)
+{
+  return __libc_ns_samename (a, b);
+}
-- 
2.31.1



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

* [PATCH 22/30] resolv: Move res_nameinquery to its own file and into libc
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (20 preceding siblings ...)
  2021-07-02 18:49 ` [PATCH 21/30] resolv: Move ns_samename " Florian Weimer
@ 2021-07-02 18:49 ` Florian Weimer
  2021-07-02 18:49 ` [PATCH 23/30] resolv: Move res_queriesmatch " Florian Weimer
                   ` (7 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:49 UTC (permalink / raw)
  To: libc-alpha

And reformat to GNU style.

This deprecated function is used in the implementation of the stub
resolver (for now).  Keep the public symbol in libresolv for now
(so that no new symbol version is needed), and add a forwarder to
libresolv.
---
 include/resolv.h           |   3 +-
 resolv/Makefile            |   1 +
 resolv/Versions            |   1 +
 resolv/res_nameinquery.c   | 115 +++++++++++++++++++++++++++++++++++++
 resolv/res_send.c          |  43 +-------------
 resolv/resolv-deprecated.c |   8 +++
 6 files changed, 128 insertions(+), 43 deletions(-)
 create mode 100644 resolv/res_nameinquery.c

diff --git a/include/resolv.h b/include/resolv.h
index a70e9e5723..4d328fe914 100644
--- a/include/resolv.h
+++ b/include/resolv.h
@@ -54,7 +54,6 @@ libresolv_hidden_proto (__p_type)
 libresolv_hidden_proto (__loc_ntoa)
 libresolv_hidden_proto (__fp_nquery)
 libresolv_hidden_proto (__fp_query)
-libresolv_hidden_proto (__res_nameinquery)
 libresolv_hidden_proto (__res_queriesmatch)
 libresolv_hidden_proto (__b64_ntop)
 libresolv_hidden_proto (__dn_count_labels)
@@ -67,6 +66,8 @@ extern __typeof (res_dnok) __libc_res_dnok;
 libc_hidden_proto (__libc_res_dnok)
 extern __typeof (res_hnok) __libc_res_hnok;
 libc_hidden_proto (__libc_res_hnok)
+extern __typeof (__res_nameinquery) __libc_res_nameinquery;
+libc_hidden_proto (__libc_res_nameinquery)
 
 # endif /* _RESOLV_H_ && !_ISOMAC */
 #endif
diff --git a/resolv/Makefile b/resolv/Makefile
index 744da951ae..c4c59dcac0 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -52,6 +52,7 @@ routines := \
   res_hconf \
   res_init \
   res_libc \
+  res_nameinquery \
   res_randomid \
   resolv_conf \
   resolv_context \
diff --git a/resolv/Versions b/resolv/Versions
index 2201d4224c..f3482793dd 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -76,6 +76,7 @@ libc {
     __libc_ns_samename;
     __libc_res_dnok;
     __libc_res_hnok;
+    __libc_res_nameinquery;
     __ns_name_compress;
     __ns_name_ntop;
     __ns_name_pack;
diff --git a/resolv/res_nameinquery.c b/resolv/res_nameinquery.c
new file mode 100644
index 0000000000..c8404ea9d6
--- /dev/null
+++ b/resolv/res_nameinquery.c
@@ -0,0 +1,115 @@
+/* Check if a DNS packet matches a specific DNS query.
+   Copyright (C) 2016-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/>.  */
+
+/*
+ * Copyright (c) 1985, 1989, 1993
+ *    The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Portions Copyright (c) 1993 by Digital Equipment Corporation.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies, and that
+ * the name of Digital Equipment Corporation not be used in advertising or
+ * publicity pertaining to distribution of the document or software without
+ * specific, written prior permission.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
+ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+/*
+ * Portions Copyright (c) 1996-1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <resolv.h>
+
+/* Author: paul vixie, 29may94.  */
+int
+__libc_res_nameinquery (const char *name, int type, int class,
+                        const unsigned char *buf, const unsigned char *eom)
+{
+  const unsigned char *cp = buf + HFIXEDSZ;
+  int qdcount = ntohs (((HEADER *) buf)->qdcount);
+
+  while (qdcount-- > 0)
+    {
+      char tname[MAXDNAME+1];
+      int n, ttype, tclass;
+
+      n = __libc_dn_expand (buf, eom, cp, tname, sizeof tname);
+      if (n < 0)
+        return -1;
+      cp += n;
+      if (cp + 2 * INT16SZ > eom)
+        return -1;
+      NS_GET16 (ttype, cp);
+      NS_GET16 (tclass, cp);
+      if (ttype == type && tclass == class
+          && __libc_ns_samename (tname, name) == 1)
+        return 1;
+    }
+  return 0;
+}
+libc_hidden_def (__libc_res_nameinquery)
diff --git a/resolv/res_send.c b/resolv/res_send.c
index dfea9fc7fa..a5a33e6f3b 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -191,47 +191,6 @@ static int		send_dg(res_state, const u_char *, int,
 				u_char **, int *, int *, int *);
 static int		sock_eq(struct sockaddr_in6 *, struct sockaddr_in6 *);
 
-/* Public. */
-
-/* int
- * res_nameinquery(name, type, class, buf, eom)
- *	look for (name,type,class) in the query section of packet (buf,eom)
- * requires:
- *	buf + HFIXEDSZ <= eom
- * returns:
- *	-1 : format error
- *	0  : not found
- *	>0 : found
- * author:
- *	paul vixie, 29may94
- */
-int
-res_nameinquery(const char *name, int type, int class,
-		const u_char *buf, const u_char *eom)
-{
-	const u_char *cp = buf + HFIXEDSZ;
-	int qdcount = ntohs(((HEADER*)buf)->qdcount);
-
-	while (qdcount-- > 0) {
-		char tname[MAXDNAME+1];
-		int n, ttype, tclass;
-
-		n = __libc_dn_expand (buf, eom, cp, tname, sizeof tname);
-		if (n < 0)
-			return (-1);
-		cp += n;
-		if (cp + 2 * INT16SZ > eom)
-			return (-1);
-		NS_GET16(ttype, cp);
-		NS_GET16(tclass, cp);
-		if (ttype == type && tclass == class
-		    && __libc_ns_samename (tname, name) == 1)
-			return (1);
-	}
-	return (0);
-}
-libresolv_hidden_def (res_nameinquery)
-
 /* Returns a shift value for the name server index.  Used to implement
    RES_ROTATE.  */
 static unsigned int
@@ -337,7 +296,7 @@ res_queriesmatch(const u_char *buf1, const u_char *eom1,
 			return (-1);
 		NS_GET16(ttype, cp);
 		NS_GET16(tclass, cp);
-		if (!res_nameinquery(tname, ttype, tclass, buf2, eom2))
+		if (!__libc_res_nameinquery (tname, ttype, tclass, buf2, eom2))
 			return (0);
 	}
 	return (1);
diff --git a/resolv/resolv-deprecated.c b/resolv/resolv-deprecated.c
index d8344f8f39..0fe9e4fda6 100644
--- a/resolv/resolv-deprecated.c
+++ b/resolv/resolv-deprecated.c
@@ -27,6 +27,7 @@
    functions.  */
 
 #include <arpa/nameser.h>
+#include <resolv.h>
 
 int
 ns_makecanon (const char *src, char *dst, size_t dstsize)
@@ -39,3 +40,10 @@ ns_samename (const char *a, const char *b)
 {
   return __libc_ns_samename (a, b);
 }
+
+int
+res_nameinquery (const char *name, int type, int class,
+                 const unsigned char *buf, const unsigned char *eom)
+{
+  return __libc_res_nameinquery (name, type, class, buf, eom);
+}
-- 
2.31.1



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

* [PATCH 23/30] resolv: Move res_queriesmatch to its own file and into libc
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (21 preceding siblings ...)
  2021-07-02 18:49 ` [PATCH 22/30] resolv: Move res_nameinquery to its own file " Florian Weimer
@ 2021-07-02 18:49 ` Florian Weimer
  2021-07-02 18:49 ` [PATCH 24/30] resolv: Move __res_context_hostalias into " Florian Weimer
                   ` (6 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:49 UTC (permalink / raw)
  To: libc-alpha

And reformat it to GNU style.

The treatment of this function matches res_nameinquery, for the
reasons stated there.
---
 include/resolv.h           |   3 +-
 resolv/Makefile            |   1 +
 resolv/Versions            |   1 +
 resolv/res_queriesmatch.c  | 129 +++++++++++++++++++++++++++++++++++++
 resolv/res_send.c          |  65 ++-----------------
 resolv/resolv-deprecated.c |   7 ++
 6 files changed, 146 insertions(+), 60 deletions(-)
 create mode 100644 resolv/res_queriesmatch.c

diff --git a/include/resolv.h b/include/resolv.h
index 4d328fe914..3590b6f496 100644
--- a/include/resolv.h
+++ b/include/resolv.h
@@ -54,7 +54,6 @@ libresolv_hidden_proto (__p_type)
 libresolv_hidden_proto (__loc_ntoa)
 libresolv_hidden_proto (__fp_nquery)
 libresolv_hidden_proto (__fp_query)
-libresolv_hidden_proto (__res_queriesmatch)
 libresolv_hidden_proto (__b64_ntop)
 libresolv_hidden_proto (__dn_count_labels)
 
@@ -68,6 +67,8 @@ extern __typeof (res_hnok) __libc_res_hnok;
 libc_hidden_proto (__libc_res_hnok)
 extern __typeof (__res_nameinquery) __libc_res_nameinquery;
 libc_hidden_proto (__libc_res_nameinquery)
+extern __typeof (__res_queriesmatch) __libc_res_queriesmatch;
+libc_hidden_proto (__libc_res_queriesmatch)
 
 # endif /* _RESOLV_H_ && !_ISOMAC */
 #endif
diff --git a/resolv/Makefile b/resolv/Makefile
index c4c59dcac0..83ba39cb52 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -53,6 +53,7 @@ routines := \
   res_init \
   res_libc \
   res_nameinquery \
+  res_queriesmatch \
   res_randomid \
   resolv_conf \
   resolv_context \
diff --git a/resolv/Versions b/resolv/Versions
index f3482793dd..5bbda96230 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -77,6 +77,7 @@ libc {
     __libc_res_dnok;
     __libc_res_hnok;
     __libc_res_nameinquery;
+    __libc_res_queriesmatch;
     __ns_name_compress;
     __ns_name_ntop;
     __ns_name_pack;
diff --git a/resolv/res_queriesmatch.c b/resolv/res_queriesmatch.c
new file mode 100644
index 0000000000..4b56d33193
--- /dev/null
+++ b/resolv/res_queriesmatch.c
@@ -0,0 +1,129 @@
+/* Check if two DNS packets contain the same query.
+   Copyright (C) 2016-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/>.  */
+
+/*
+ * Copyright (c) 1985, 1989, 1993
+ *    The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Portions Copyright (c) 1993 by Digital Equipment Corporation.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies, and that
+ * the name of Digital Equipment Corporation not be used in advertising or
+ * publicity pertaining to distribution of the document or software without
+ * specific, written prior permission.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
+ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+/*
+ * Portions Copyright (c) 1996-1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+#include <resolv.h>
+
+/* Author: paul vixie, 29may94.  */
+int
+__libc_res_queriesmatch (const unsigned char *buf1, const unsigned char *eom1,
+                         const unsigned char *buf2, const unsigned char *eom2)
+{
+  if (eom1 - buf1 < HFIXEDSZ || eom2 - buf2 < HFIXEDSZ)
+    return -1;
+
+  /* Only header section present in replies to dynamic update
+     packets.  */
+  if ((((HEADER *) buf1)->opcode == ns_o_update) &&
+      (((HEADER *) buf2)->opcode == ns_o_update))
+    return 1;
+
+  /* Note that we initially do not convert QDCOUNT to the host byte
+     order.  We can compare it with the second buffer's QDCOUNT
+     value without doing this.  */
+  int qdcount = ((HEADER *) buf1)->qdcount;
+  if (qdcount != ((HEADER *) buf2)->qdcount)
+    return 0;
+
+  qdcount = htons (qdcount);
+  const unsigned char *cp = buf1 + HFIXEDSZ;
+
+  while (qdcount-- > 0)
+    {
+      char tname[MAXDNAME+1];
+      int n, ttype, tclass;
+
+      n = __libc_dn_expand (buf1, eom1, cp, tname, sizeof tname);
+      if (n < 0)
+        return -1;
+      cp += n;
+      if (eom1 - cp < 4)
+        return -1;
+      NS_GET16 (ttype, cp);
+      NS_GET16 (tclass, cp);
+      if (!__libc_res_nameinquery (tname, ttype, tclass, buf2, eom2))
+        return 0;
+    }
+  return 1;
+}
+libc_hidden_def (__libc_res_queriesmatch)
diff --git a/resolv/res_send.c b/resolv/res_send.c
index a5a33e6f3b..b502ef5132 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -248,61 +248,6 @@ mask_ad_bit (struct resolv_context *ctx, void *buf)
     ((HEADER *) buf)->ad = 0;
 }
 
-/* int
- * res_queriesmatch(buf1, eom1, buf2, eom2)
- *	is there a 1:1 mapping of (name,type,class)
- *	in (buf1,eom1) and (buf2,eom2)?
- * returns:
- *	-1 : format error
- *	0  : not a 1:1 mapping
- *	>0 : is a 1:1 mapping
- * author:
- *	paul vixie, 29may94
- */
-int
-res_queriesmatch(const u_char *buf1, const u_char *eom1,
-		 const u_char *buf2, const u_char *eom2)
-{
-	if (buf1 + HFIXEDSZ > eom1 || buf2 + HFIXEDSZ > eom2)
-		return (-1);
-
-	/*
-	 * Only header section present in replies to
-	 * dynamic update packets.
-	 */
-	if ((((HEADER *)buf1)->opcode == ns_o_update) &&
-	    (((HEADER *)buf2)->opcode == ns_o_update))
-		return (1);
-
-	/* Note that we initially do not convert QDCOUNT to the host byte
-	   order.  We can compare it with the second buffer's QDCOUNT
-	   value without doing this.  */
-	int qdcount = ((HEADER*)buf1)->qdcount;
-	if (qdcount != ((HEADER*)buf2)->qdcount)
-		return (0);
-
-	qdcount = htons (qdcount);
-	const u_char *cp = buf1 + HFIXEDSZ;
-
-	while (qdcount-- > 0) {
-		char tname[MAXDNAME+1];
-		int n, ttype, tclass;
-
-		n = __libc_dn_expand (buf1, eom1, cp, tname, sizeof tname);
-		if (n < 0)
-			return (-1);
-		cp += n;
-		if (cp + 2 * INT16SZ > eom1)
-			return (-1);
-		NS_GET16(ttype, cp);
-		NS_GET16(tclass, cp);
-		if (!__libc_res_nameinquery (tname, ttype, tclass, buf2, eom2))
-			return (0);
-	}
-	return (1);
-}
-libresolv_hidden_def (res_queriesmatch)
-
 int
 __res_context_send (struct resolv_context *ctx,
 		    const unsigned char *buf, int buflen,
@@ -1239,13 +1184,15 @@ send_dg(res_state statp,
 		int matching_query = 0; /* Default to no matching query.  */
 		if (!recvresp1
 		    && anhp->id == hp->id
-		    && res_queriesmatch (buf, buf + buflen,
-					 *thisansp, *thisansp + *thisanssizp))
+		    && __libc_res_queriesmatch (buf, buf + buflen,
+						*thisansp,
+						*thisansp + *thisanssizp))
 		  matching_query = 1;
 		if (!recvresp2
 		    && anhp->id == hp2->id
-		    && res_queriesmatch (buf2, buf2 + buflen2,
-					 *thisansp, *thisansp + *thisanssizp))
+		    && __libc_res_queriesmatch (buf2, buf2 + buflen2,
+						*thisansp,
+						*thisansp + *thisanssizp))
 		  matching_query = 2;
 		if (matching_query == 0)
 		  /* Spurious UDP packet.  Drop it and continue
diff --git a/resolv/resolv-deprecated.c b/resolv/resolv-deprecated.c
index 0fe9e4fda6..a2953db963 100644
--- a/resolv/resolv-deprecated.c
+++ b/resolv/resolv-deprecated.c
@@ -47,3 +47,10 @@ res_nameinquery (const char *name, int type, int class,
 {
   return __libc_res_nameinquery (name, type, class, buf, eom);
 }
+
+int
+res_queriesmatch (const unsigned char *buf1, const unsigned char *eom1,
+                  const unsigned char *buf2, const unsigned char *eom2)
+{
+  return __libc_res_queriesmatch (buf1, eom1, buf2, eom2);
+}
-- 
2.31.1



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

* [PATCH 24/30] resolv: Move __res_context_hostalias into its own file and into libc
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (22 preceding siblings ...)
  2021-07-02 18:49 ` [PATCH 23/30] resolv: Move res_queriesmatch " Florian Weimer
@ 2021-07-02 18:49 ` Florian Weimer
  2021-07-02 18:49 ` [PATCH 25/30] resolv: Move res_hostalias into its own file, along with hostalias Florian Weimer
                   ` (5 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:49 UTC (permalink / raw)
  To: libc-alpha

And reformat it to GNU style.  Remove the unecessary setbuf call.
Use __fgets_unlocked for PLT avoidance; no locking is required here.
---
 resolv/Makefile                |   1 +
 resolv/Versions                |   2 +-
 resolv/res_context_hostalias.c | 132 +++++++++++++++++++++++++++++++++
 resolv/res_query.c             |  40 ----------
 resolv/resolv-internal.h       |   2 +-
 5 files changed, 135 insertions(+), 42 deletions(-)
 create mode 100644 resolv/res_context_hostalias.c

diff --git a/resolv/Makefile b/resolv/Makefile
index 83ba39cb52..bfcca70f26 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -48,6 +48,7 @@ routines := \
   res-close \
   res-name-checking \
   res-state \
+  res_context_hostalias \
   res_get_nsaddr \
   res_hconf \
   res_init \
diff --git a/resolv/Versions b/resolv/Versions
index 5bbda96230..b084660dde 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -85,6 +85,7 @@ libc {
     __ns_name_skip;
     __ns_name_uncompress;
     __ns_name_unpack;
+    __res_context_hostalias;
     __res_get_nsaddr;
     __res_iclose;
     __resolv_context_get;
@@ -192,7 +193,6 @@ libresolv {
   GLIBC_PRIVATE {
     __ns_get16;
     __ns_get32;
-    __res_context_hostalias;
     __res_context_query;
     __res_context_search;
   }
diff --git a/resolv/res_context_hostalias.c b/resolv/res_context_hostalias.c
new file mode 100644
index 0000000000..b4dc1763db
--- /dev/null
+++ b/resolv/res_context_hostalias.c
@@ -0,0 +1,132 @@
+/* HOSTALIASES-based name resolution.  Internal function.
+   Copyright (C) 2015-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/>.  */
+
+/*
+ * Copyright (c) 1988, 1993
+ *    The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Portions Copyright (c) 1993 by Digital Equipment Corporation.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies, and that
+ * the name of Digital Equipment Corporation not be used in advertising or
+ * publicity pertaining to distribution of the document or software without
+ * specific, written prior permission.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
+ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+/*
+ * Portions Copyright (c) 1996-1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <ctype.h>
+#include <resolv-internal.h>
+#include <resolv_context.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+const char *
+__res_context_hostalias (struct resolv_context *ctx,
+                         const char *name, char *dst, size_t siz)
+{
+  char *file, *cp1, *cp2;
+  char buf[BUFSIZ];
+  FILE *fp;
+
+  if (ctx->resp->options & RES_NOALIASES)
+    return NULL;
+  file = getenv ("HOSTALIASES");
+  if (file == NULL || (fp = fopen (file, "rce")) == NULL)
+    return NULL;
+  buf[sizeof (buf) - 1] = '\0';
+  while (__fgets_unlocked (buf, sizeof (buf), fp))
+    {
+      for (cp1 = buf; *cp1 && !isspace (*cp1); ++cp1)
+        ;
+      if (!*cp1)
+        break;
+      *cp1 = '\0';
+      if (__libc_ns_samename (buf, name) == 1)
+        {
+          while (isspace (*++cp1))
+            ;
+          if (!*cp1)
+            break;
+          for (cp2 = cp1 + 1; *cp2 && !isspace (*cp2); ++cp2)
+            ;
+          *cp2 = '\0';
+          strncpy (dst, cp1, siz - 1);
+          dst[siz - 1] = '\0';
+          fclose (fp);
+          return dst;
+        }
+    }
+  fclose (fp);
+  return NULL;
+}
+libc_hidden_def (__res_context_hostalias)
diff --git a/resolv/res_query.c b/resolv/res_query.c
index 5b51af8451..45c591ae27 100644
--- a/resolv/res_query.c
+++ b/resolv/res_query.c
@@ -635,46 +635,6 @@ res_querydomain (const char *name, const char *domain, int class, int type,
     (__resolv_context_get (), name, domain, class, type, answer, anslen);
 }
 
-const char *
-__res_context_hostalias (struct resolv_context *ctx,
-			 const char *name, char *dst, size_t siz)
-{
-	char *file, *cp1, *cp2;
-	char buf[BUFSIZ];
-	FILE *fp;
-
-	if (ctx->resp->options & RES_NOALIASES)
-		return (NULL);
-	file = getenv("HOSTALIASES");
-	if (file == NULL || (fp = fopen(file, "rce")) == NULL)
-		return (NULL);
-	setbuf(fp, NULL);
-	buf[sizeof(buf) - 1] = '\0';
-	while (fgets(buf, sizeof(buf), fp)) {
-		for (cp1 = buf; *cp1 && !isspace(*cp1); ++cp1)
-			;
-		if (!*cp1)
-			break;
-		*cp1 = '\0';
-		if (__libc_ns_samename(buf, name) == 1) {
-			while (isspace(*++cp1))
-				;
-			if (!*cp1)
-				break;
-			for (cp2 = cp1 + 1; *cp2 && !isspace(*cp2); ++cp2)
-				;
-			*cp2 = '\0';
-			strncpy(dst, cp1, siz - 1);
-			dst[siz - 1] = '\0';
-			fclose(fp);
-			return (dst);
-		}
-	}
-	fclose(fp);
-	return (NULL);
-}
-libresolv_hidden_def (__res_context_hostalias)
-
 /* Common part of res_hostalias and hostalias.  */
 static const char *
 context_hostalias_common (struct resolv_context *ctx,
diff --git a/resolv/resolv-internal.h b/resolv/resolv-internal.h
index c18b1d0472..7d37817232 100644
--- a/resolv/resolv-internal.h
+++ b/resolv/resolv-internal.h
@@ -79,7 +79,7 @@ int __res_context_send (struct resolv_context *, const unsigned char *, int,
 /* Internal function similar to res_hostalias.  */
 const char *__res_context_hostalias (struct resolv_context *,
                                      const char *, char *, size_t);
-libresolv_hidden_proto (__res_context_hostalias);
+libc_hidden_proto (__res_context_hostalias);
 
 /* Add an OPT record to a DNS query.  */
 int __res_nopt (struct resolv_context *, int n0,
-- 
2.31.1



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

* [PATCH 25/30] resolv: Move res_hostalias into its own file, along with hostalias
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (23 preceding siblings ...)
  2021-07-02 18:49 ` [PATCH 24/30] resolv: Move __res_context_hostalias into " Florian Weimer
@ 2021-07-02 18:49 ` Florian Weimer
  2021-07-02 18:49 ` [PATCH 26/30] resolv: Move res_send, res_nsend into libc Florian Weimer
                   ` (4 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:49 UTC (permalink / raw)
  To: libc-alpha

These deprecated symbols continue to be exported from libresolv.
---
 resolv/Makefile        |  1 +
 resolv/res_hostalias.c | 51 ++++++++++++++++++++++++++++++++++++++++++
 resolv/res_query.c     | 30 -------------------------
 3 files changed, 52 insertions(+), 30 deletions(-)
 create mode 100644 resolv/res_hostalias.c

diff --git a/resolv/Makefile b/resolv/Makefile
index bfcca70f26..8c28afe5c4 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -152,6 +152,7 @@ libresolv-routines := \
   res_data \
   res_debug \
   res_enable_icmp \
+  res_hostalias \
   res_isourserver \
   res_mkquery \
   res_query \
diff --git a/resolv/res_hostalias.c b/resolv/res_hostalias.c
new file mode 100644
index 0000000000..d364725677
--- /dev/null
+++ b/resolv/res_hostalias.c
@@ -0,0 +1,51 @@
+/* HOSTALIASES-based name resolution.  Public legacy functions.
+   Copyright (C) 2017-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/>.  */
+
+#include <netdb.h>
+#include <resolv-internal.h>
+#include <resolv_context.h>
+
+/* Common part of res_hostalias and hostalias.  */
+static const char *
+context_hostalias_common (struct resolv_context *ctx,
+                          const char *name, char *dst, size_t siz)
+{
+  if (ctx == NULL)
+    {
+      RES_SET_H_ERRNO (&_res, NETDB_INTERNAL);
+      return NULL;
+    }
+  const char *result = __res_context_hostalias (ctx, name, dst, siz);
+  __resolv_context_put (ctx);
+  return result;
+}
+
+const char *
+res_hostalias (res_state statp, const char *name, char *dst, size_t siz)
+{
+  return context_hostalias_common
+    (__resolv_context_get_override (statp), name, dst, siz);
+}
+
+const char *
+hostalias (const char *name)
+{
+  static char abuf[MAXDNAME];
+  return context_hostalias_common
+    (__resolv_context_get (), name, abuf, sizeof (abuf));
+}
diff --git a/resolv/res_query.c b/resolv/res_query.c
index 45c591ae27..2457193d31 100644
--- a/resolv/res_query.c
+++ b/resolv/res_query.c
@@ -635,36 +635,6 @@ res_querydomain (const char *name, const char *domain, int class, int type,
     (__resolv_context_get (), name, domain, class, type, answer, anslen);
 }
 
-/* Common part of res_hostalias and hostalias.  */
-static const char *
-context_hostalias_common (struct resolv_context *ctx,
-			  const char *name, char *dst, size_t siz)
-{
-  if (ctx == NULL)
-    {
-      RES_SET_H_ERRNO (&_res, NETDB_INTERNAL);
-      return NULL;
-    }
-  const char *result = __res_context_hostalias (ctx, name, dst, siz);
-  __resolv_context_put (ctx);
-  return result;
-}
-
-const char *
-res_hostalias (res_state statp, const char *name, char *dst, size_t siz)
-{
-  return context_hostalias_common
-    (__resolv_context_get_override (statp), name, dst, siz);
-}
-
-const char *
-hostalias (const char *name)
-{
-  static char abuf[MAXDNAME];
-  return context_hostalias_common
-    (__resolv_context_get (), name, abuf, sizeof (abuf));
-}
-
 #if SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_2)
 # undef res_query
 # undef res_querydomain
-- 
2.31.1



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

* [PATCH 26/30] resolv: Move res_send, res_nsend into libc
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (24 preceding siblings ...)
  2021-07-02 18:49 ` [PATCH 25/30] resolv: Move res_hostalias into its own file, along with hostalias Florian Weimer
@ 2021-07-02 18:49 ` Florian Weimer
  2021-07-02 18:49 ` [PATCH 27/30] resolv: Move res_mkquery, res_nmkquery " Florian Weimer
                   ` (3 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:49 UTC (permalink / raw)
  To: libc-alpha

Switch to public symbols without __ prefix (due to improved
namespace management).

__res_send, __res_nsend were moved using the script (with
--no-new-version).  res_send@@GLIBC_2.34 and res_nsend@@GLIBC_2.34
were added using make update-all-abi.
---
 resolv/Makefile                               |  4 +-
 resolv/Versions                               |  9 +++-
 resolv/res_enable_icmp.c                      |  4 +-
 resolv/res_send.c                             | 54 +++++++++++--------
 resolv/resolv-internal.h                      |  3 +-
 resolv/resolv.h                               |  2 -
 sysdeps/mach/hurd/i386/libc.abilist           |  4 ++
 sysdeps/mach/hurd/i386/libresolv.abilist      |  2 -
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  4 ++
 .../unix/sysv/linux/aarch64/libresolv.abilist |  2 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |  4 ++
 .../unix/sysv/linux/alpha/libresolv.abilist   |  2 -
 sysdeps/unix/sysv/linux/arc/libc.abilist      |  4 ++
 sysdeps/unix/sysv/linux/arc/libresolv.abilist |  2 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  4 ++
 .../unix/sysv/linux/arm/be/libresolv.abilist  |  2 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  4 ++
 .../unix/sysv/linux/arm/le/libresolv.abilist  |  2 -
 sysdeps/unix/sysv/linux/csky/libc.abilist     |  4 ++
 .../unix/sysv/linux/csky/libresolv.abilist    |  2 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |  4 ++
 .../unix/sysv/linux/hppa/libresolv.abilist    |  2 -
 sysdeps/unix/sysv/linux/i386/libc.abilist     |  4 ++
 .../unix/sysv/linux/i386/libresolv.abilist    |  2 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |  4 ++
 .../unix/sysv/linux/ia64/libresolv.abilist    |  2 -
 .../sysv/linux/m68k/coldfire/libc.abilist     |  4 ++
 .../linux/m68k/coldfire/libresolv.abilist     |  2 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  4 ++
 .../sysv/linux/m68k/m680x0/libresolv.abilist  |  2 -
 .../sysv/linux/microblaze/be/libc.abilist     |  4 ++
 .../linux/microblaze/be/libresolv.abilist     |  2 -
 .../sysv/linux/microblaze/le/libc.abilist     |  4 ++
 .../linux/microblaze/le/libresolv.abilist     |  2 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |  4 ++
 .../sysv/linux/mips/mips32/libresolv.abilist  |  2 -
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |  4 ++
 .../sysv/linux/mips/mips64/n32/libc.abilist   |  4 ++
 .../linux/mips/mips64/n32/libresolv.abilist   |  2 -
 .../sysv/linux/mips/mips64/n64/libc.abilist   |  4 ++
 .../linux/mips/mips64/n64/libresolv.abilist   |  2 -
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |  4 ++
 .../unix/sysv/linux/nios2/libresolv.abilist   |  2 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |  4 ++
 .../linux/powerpc/powerpc32/libresolv.abilist |  2 -
 .../powerpc/powerpc32/nofpu/libc.abilist      |  4 ++
 .../linux/powerpc/powerpc64/be/libc.abilist   |  4 ++
 .../powerpc/powerpc64/be/libresolv.abilist    |  2 -
 .../linux/powerpc/powerpc64/le/libc.abilist   |  4 ++
 .../powerpc/powerpc64/le/libresolv.abilist    |  2 -
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |  4 ++
 .../sysv/linux/riscv/rv32/libresolv.abilist   |  2 -
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |  4 ++
 .../sysv/linux/riscv/rv64/libresolv.abilist   |  2 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist |  4 ++
 .../sysv/linux/s390/s390-32/libresolv.abilist |  2 -
 .../unix/sysv/linux/s390/s390-64/libc.abilist |  4 ++
 .../sysv/linux/s390/s390-64/libresolv.abilist |  2 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  4 ++
 .../unix/sysv/linux/sh/be/libresolv.abilist   |  2 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  4 ++
 .../unix/sysv/linux/sh/le/libresolv.abilist   |  2 -
 .../sysv/linux/sparc/sparc32/libc.abilist     |  4 ++
 .../linux/sparc/sparc32/libresolv.abilist     |  2 -
 .../sysv/linux/sparc/sparc64/libc.abilist     |  4 ++
 .../linux/sparc/sparc64/libresolv.abilist     |  2 -
 .../unix/sysv/linux/x86_64/64/libc.abilist    |  4 ++
 .../sysv/linux/x86_64/64/libresolv.abilist    |  2 -
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |  4 ++
 .../sysv/linux/x86_64/x32/libresolv.abilist   |  2 -
 70 files changed, 178 insertions(+), 92 deletions(-)

diff --git a/resolv/Makefile b/resolv/Makefile
index 8c28afe5c4..e9689f7e2c 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -49,6 +49,7 @@ routines := \
   res-name-checking \
   res-state \
   res_context_hostalias \
+  res_enable_icmp \
   res_get_nsaddr \
   res_hconf \
   res_init \
@@ -56,6 +57,7 @@ routines := \
   res_nameinquery \
   res_queriesmatch \
   res_randomid \
+  res_send \
   resolv_conf \
   resolv_context \
   # routines
@@ -151,12 +153,10 @@ libresolv-routines := \
   res-putget \
   res_data \
   res_debug \
-  res_enable_icmp \
   res_hostalias \
   res_isourserver \
   res_mkquery \
   res_query \
-  res_send \
   resolv-deprecated \
   # libresolv-routines
 
diff --git a/resolv/Versions b/resolv/Versions
index b084660dde..21b7af73c5 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -6,8 +6,10 @@ libc {
     __res_dnok;
     __res_hnok;
     __res_mailok;
+    __res_nsend;
     __res_ownok;
     __res_randomid;
+    __res_send;
     _res;
     dn_expand;
     h_errlist;
@@ -21,6 +23,7 @@ libc {
     __res_init;
     __res_nclose;
     __res_ninit;
+    __res_nsend;
     __res_state;
     _res_hconf;
   }
@@ -61,7 +64,9 @@ libc {
     res_dnok;
     res_hnok;
     res_mailok;
+    res_nsend;
     res_ownok;
+    res_send;
   }
   GLIBC_PRIVATE {
 %if !PTHREAD_IN_LIBC
@@ -86,6 +91,8 @@ libc {
     __ns_name_uncompress;
     __ns_name_unpack;
     __res_context_hostalias;
+    __res_context_send;
+    __res_context_send;
     __res_get_nsaddr;
     __res_iclose;
     __resolv_context_get;
@@ -126,7 +133,6 @@ libresolv {
     __res_isourserver;
     __res_nameinquery;
     __res_queriesmatch;
-    __res_send;
     __sym_ntop;
     __sym_ntos;
     __sym_ston;
@@ -159,7 +165,6 @@ libresolv {
     __res_nquery;
     __res_nquerydomain;
     __res_nsearch;
-    __res_nsend;
     __res_query;
     __res_querydomain;
     __res_search;
diff --git a/resolv/res_enable_icmp.c b/resolv/res_enable_icmp.c
index 9aa61823df..3bfe6e4f4c 100644
--- a/resolv/res_enable_icmp.c
+++ b/resolv/res_enable_icmp.c
@@ -27,9 +27,9 @@ __res_enable_icmp (int family, int fd)
   switch (family)
     {
     case AF_INET:
-      return setsockopt (fd, SOL_IP, IP_RECVERR, &one, sizeof (one));
+      return __setsockopt (fd, SOL_IP, IP_RECVERR, &one, sizeof (one));
     case AF_INET6:
-      return setsockopt (fd, SOL_IPV6, IPV6_RECVERR, &one, sizeof (one));
+      return __setsockopt (fd, SOL_IPV6, IPV6_RECVERR, &one, sizeof (one));
     default:
       __set_errno (EAFNOSUPPORT);
       return -1;
diff --git a/resolv/res_send.c b/resolv/res_send.c
index b502ef5132..9f86f5fe47 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -425,6 +425,7 @@ __res_context_send (struct resolv_context *ctx,
 		__set_errno (terrno);
 	return (-1);
 }
+libc_hidden_def (__res_context_send)
 
 /* Common part of res_nsend and res_send.  */
 static int
@@ -444,19 +445,28 @@ context_send_common (struct resolv_context *ctx,
 }
 
 int
-res_nsend (res_state statp, const unsigned char *buf, int buflen,
-	   unsigned char *ans, int anssiz)
+___res_nsend (res_state statp, const unsigned char *buf, int buflen,
+	      unsigned char *ans, int anssiz)
 {
   return context_send_common
     (__resolv_context_get_override (statp), buf, buflen, ans, anssiz);
 }
+versioned_symbol (libc, ___res_nsend, res_nsend, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_nsend, __res_nsend, GLIBC_2_2);
+#endif
 
 int
-res_send (const unsigned char *buf, int buflen, unsigned char *ans, int anssiz)
+___res_send (const unsigned char *buf, int buflen, unsigned char *ans,
+	     int anssiz)
 {
   return context_send_common
     (__resolv_context_get (), buf, buflen, ans, anssiz);
 }
+versioned_symbol (libc, ___res_send, res_send, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libresolv, ___res_send, __res_send, GLIBC_2_0);
+#endif
 
 /* Private */
 
@@ -582,9 +592,9 @@ send_vc(res_state statp,
 		struct sockaddr_in6 peer;
 		socklen_t size = sizeof peer;
 
-		if (getpeername(statp->_vcsock,
-				(struct sockaddr *)&peer, &size) < 0 ||
-		    !sock_eq(&peer, (struct sockaddr_in6 *) nsap)) {
+		if (__getpeername (statp->_vcsock,
+				   (struct sockaddr *) &peer, &size) < 0
+		    || !sock_eq (&peer, (struct sockaddr_in6 *) nsap)) {
 			__res_iclose(statp, false);
 			statp->_flags &= ~RES_F_VC;
 		}
@@ -594,7 +604,7 @@ send_vc(res_state statp,
 		if (statp->_vcsock >= 0)
 		  __res_iclose(statp, false);
 
-		statp->_vcsock = socket
+		statp->_vcsock = __socket
 		  (nsap->sa_family, SOCK_STREAM | SOCK_CLOEXEC, 0);
 		if (statp->_vcsock < 0) {
 			*terrno = errno;
@@ -603,10 +613,10 @@ send_vc(res_state statp,
 			return (-1);
 		}
 		__set_errno (0);
-		if (connect(statp->_vcsock, nsap,
-			    nsap->sa_family == AF_INET
-			    ? sizeof (struct sockaddr_in)
-			    : sizeof (struct sockaddr_in6)) < 0) {
+		if (__connect (statp->_vcsock, nsap,
+			       nsap->sa_family == AF_INET
+			       ? sizeof (struct sockaddr_in)
+			       : sizeof (struct sockaddr_in6)) < 0) {
 			*terrno = errno;
 			return close_and_return_error (statp, resplen2);
 		}
@@ -628,7 +638,8 @@ send_vc(res_state statp,
 		niov = 4;
 		explen += INT16SZ + buflen2;
 	}
-	if (TEMP_FAILURE_RETRY (writev(statp->_vcsock, iov, niov)) != explen) {
+	if (TEMP_FAILURE_RETRY (__writev (statp->_vcsock, iov, niov))
+	    != explen) {
 		*terrno = errno;
 		return close_and_return_error (statp, resplen2);
 	}
@@ -789,14 +800,14 @@ reopen (res_state statp, int *terrno, int ns)
 
 		/* only try IPv6 if IPv6 NS and if not failed before */
 		if (nsap->sa_family == AF_INET6 && !statp->ipv6_unavail) {
-			EXT(statp).nssocks[ns] = socket
+			EXT (statp).nssocks[ns] = __socket
 			  (PF_INET6,
 			   SOCK_DGRAM | SOCK_NONBLOCK | SOCK_CLOEXEC, 0);
 			if (EXT(statp).nssocks[ns] < 0)
 			    statp->ipv6_unavail = errno == EAFNOSUPPORT;
 			slen = sizeof (struct sockaddr_in6);
 		} else if (nsap->sa_family == AF_INET) {
-			EXT(statp).nssocks[ns] = socket
+			EXT (statp).nssocks[ns] = __socket
 			  (PF_INET,
 			   SOCK_DGRAM | SOCK_NONBLOCK | SOCK_CLOEXEC, 0);
 			slen = sizeof (struct sockaddr_in);
@@ -837,7 +848,7 @@ reopen (res_state statp, int *terrno, int ns)
 		   the call to connect with slen.  */
 		DIAG_PUSH_NEEDS_COMMENT;
 		DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
-		if (connect(EXT(statp).nssocks[ns], nsap, slen) < 0) {
+		if (__connect (EXT (statp).nssocks[ns], nsap, slen) < 0) {
 		DIAG_POP_NEEDS_COMMENT;
 			__res_iclose(statp, false);
 			return (0);
@@ -1090,9 +1101,9 @@ send_dg(res_state statp,
 		  try_send:
 #endif
 		    if (nwritten != 0)
-		      sr = send (pfd[0].fd, buf2, buflen2, MSG_NOSIGNAL);
+		      sr = __send (pfd[0].fd, buf2, buflen2, MSG_NOSIGNAL);
 		    else
-		      sr = send (pfd[0].fd, buf, buflen, MSG_NOSIGNAL);
+		      sr = __send (pfd[0].fd, buf, buflen, MSG_NOSIGNAL);
 
 		    if (sr != (nwritten != 0 ? buflen2 : buflen)) {
 		      if (errno == EINTR || errno == EAGAIN)
@@ -1133,7 +1144,7 @@ send_dg(res_state statp,
 		    && (thisansp != NULL && thisansp != ansp)
 #ifdef FIONREAD
 		    /* Is the size too small?  */
-		    && (ioctl (pfd[0].fd, FIONREAD, thisresplenp) < 0
+		    && (__ioctl (pfd[0].fd, FIONREAD, thisresplenp) < 0
 			|| *thisanssizp < *thisresplenp)
 #endif
                     ) {
@@ -1160,9 +1171,10 @@ send_dg(res_state statp,
 		HEADER *anhp = (HEADER *) *thisansp;
 		socklen_t fromlen = sizeof(struct sockaddr_in6);
 		assert (sizeof(from) <= fromlen);
-		*thisresplenp = recvfrom(pfd[0].fd, (char*)*thisansp,
-					 *thisanssizp, 0,
-					(struct sockaddr *)&from, &fromlen);
+		*thisresplenp = __recvfrom (pfd[0].fd, (char *) *thisansp,
+					    *thisanssizp, 0,
+					    (struct sockaddr *) &from,
+					    &fromlen);
 		if (__glibc_unlikely (*thisresplenp <= 0))       {
 			if (errno == EINTR || errno == EAGAIN) {
 				need_recompute = 1;
diff --git a/resolv/resolv-internal.h b/resolv/resolv-internal.h
index 7d37817232..1e21c38cc7 100644
--- a/resolv/resolv-internal.h
+++ b/resolv/resolv-internal.h
@@ -74,7 +74,8 @@ libresolv_hidden_proto (__res_context_query)
 int __res_context_send (struct resolv_context *, const unsigned char *, int,
                         const unsigned char *, int, unsigned char *,
                         int, unsigned char **, unsigned char **,
-                        int *, int *, int *) attribute_hidden;
+                        int *, int *, int *);
+libc_hidden_proto (__res_context_send)
 
 /* Internal function similar to res_hostalias.  */
 const char *__res_context_hostalias (struct resolv_context *,
diff --git a/resolv/resolv.h b/resolv/resolv.h
index d4e401b580..66944008fd 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -172,7 +172,6 @@ __END_DECLS
 #define res_query		__res_query
 #define res_querydomain		__res_querydomain
 #define res_search		__res_search
-#define res_send		__res_send
 
 #ifdef _LIBC
 # define __RESOLV_DEPRECATED
@@ -233,7 +232,6 @@ __END_DECLS
 #define res_nquery		__res_nquery
 #define res_nquerydomain	__res_nquerydomain
 #define res_nsearch		__res_nsearch
-#define res_nsend		__res_nsend
 #define res_queriesmatch	__res_queriesmatch
 #define res_randomid		__res_randomid
 #define sym_ntop		__sym_ntop
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 0c2b5983a8..956c92182b 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -407,8 +407,10 @@ GLIBC_2.2.6 __res_init F
 GLIBC_2.2.6 __res_mailok F
 GLIBC_2.2.6 __res_nclose F
 GLIBC_2.2.6 __res_ninit F
+GLIBC_2.2.6 __res_nsend F
 GLIBC_2.2.6 __res_ownok F
 GLIBC_2.2.6 __res_randomid F
+GLIBC_2.2.6 __res_send F
 GLIBC_2.2.6 __res_state F
 GLIBC_2.2.6 __rpc_thread_createerr F
 GLIBC_2.2.6 __rpc_thread_svc_fdset F
@@ -2261,7 +2263,9 @@ GLIBC_2.34 openpty F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 shm_open F
 GLIBC_2.34 shm_unlink F
 GLIBC_2.34 timespec_getres F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index 8166e6af58..2e772ae4e1 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -30,12 +30,10 @@ GLIBC_2.2.6 __res_nmkquery F
 GLIBC_2.2.6 __res_nquery F
 GLIBC_2.2.6 __res_nquerydomain F
 GLIBC_2.2.6 __res_nsearch F
-GLIBC_2.2.6 __res_nsend F
 GLIBC_2.2.6 __res_queriesmatch F
 GLIBC_2.2.6 __res_query F
 GLIBC_2.2.6 __res_querydomain F
 GLIBC_2.2.6 __res_search F
-GLIBC_2.2.6 __res_send F
 GLIBC_2.2.6 __sym_ntop F
 GLIBC_2.2.6 __sym_ntos F
 GLIBC_2.2.6 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index cb2bfd3779..9bc89dcdc8 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -386,8 +386,10 @@ GLIBC_2.17 __res_init F
 GLIBC_2.17 __res_mailok F
 GLIBC_2.17 __res_nclose F
 GLIBC_2.17 __res_ninit F
+GLIBC_2.17 __res_nsend F
 GLIBC_2.17 __res_ownok F
 GLIBC_2.17 __res_randomid F
+GLIBC_2.17 __res_send F
 GLIBC_2.17 __res_state F
 GLIBC_2.17 __rpc_thread_createerr F
 GLIBC_2.17 __rpc_thread_svc_fdset F
@@ -2565,7 +2567,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
index 613638f9ce..d071a2c5ef 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
@@ -31,12 +31,10 @@ GLIBC_2.17 __res_nmkquery F
 GLIBC_2.17 __res_nquery F
 GLIBC_2.17 __res_nquerydomain F
 GLIBC_2.17 __res_nsearch F
-GLIBC_2.17 __res_nsend F
 GLIBC_2.17 __res_queriesmatch F
 GLIBC_2.17 __res_query F
 GLIBC_2.17 __res_querydomain F
 GLIBC_2.17 __res_search F
-GLIBC_2.17 __res_send F
 GLIBC_2.17 __sym_ntop F
 GLIBC_2.17 __sym_ntos F
 GLIBC_2.17 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 31882ba563..444c73a3ee 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -218,6 +218,7 @@ GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_randomid F
+GLIBC_2.0 __res_send F
 GLIBC_2.0 __sbrk F
 GLIBC_2.0 __sched_get_priority_max F
 GLIBC_2.0 __sched_get_priority_min F
@@ -1978,6 +1979,7 @@ GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __res_init F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
 GLIBC_2.2 __statfs F
@@ -2658,7 +2660,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
index abfaf8840f..9e3b8f8c31 100644
--- a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
@@ -25,7 +25,6 @@ GLIBC_2.0 __res_close F
 GLIBC_2.0 __res_isourserver F
 GLIBC_2.0 __res_nameinquery F
 GLIBC_2.0 __res_queriesmatch F
-GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
 GLIBC_2.0 __sym_ntos F
 GLIBC_2.0 __sym_ston F
@@ -55,7 +54,6 @@ GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_query F
 GLIBC_2.2 __res_querydomain F
 GLIBC_2.2 __res_search F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 00462b5520..92661d2b20 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -375,8 +375,10 @@ GLIBC_2.32 __res_init F
 GLIBC_2.32 __res_mailok F
 GLIBC_2.32 __res_nclose F
 GLIBC_2.32 __res_ninit F
+GLIBC_2.32 __res_nsend F
 GLIBC_2.32 __res_ownok F
 GLIBC_2.32 __res_randomid F
+GLIBC_2.32 __res_send F
 GLIBC_2.32 __res_state F
 GLIBC_2.32 __sbrk F
 GLIBC_2.32 __sched_cpualloc F
@@ -2324,7 +2326,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
index f3a103d072..a9599afe6d 100644
--- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
@@ -30,12 +30,10 @@ GLIBC_2.32 __res_nmkquery F
 GLIBC_2.32 __res_nquery F
 GLIBC_2.32 __res_nquerydomain F
 GLIBC_2.32 __res_nsearch F
-GLIBC_2.32 __res_nsend F
 GLIBC_2.32 __res_queriesmatch F
 GLIBC_2.32 __res_query F
 GLIBC_2.32 __res_querydomain F
 GLIBC_2.32 __res_search F
-GLIBC_2.32 __res_send F
 GLIBC_2.32 __sym_ntop F
 GLIBC_2.32 __sym_ntos F
 GLIBC_2.32 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index ce88c66270..7f741fd135 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -444,7 +444,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
@@ -845,8 +847,10 @@ GLIBC_2.4 __res_init F
 GLIBC_2.4 __res_mailok F
 GLIBC_2.4 __res_nclose F
 GLIBC_2.4 __res_ninit F
+GLIBC_2.4 __res_nsend F
 GLIBC_2.4 __res_ownok F
 GLIBC_2.4 __res_randomid F
+GLIBC_2.4 __res_send F
 GLIBC_2.4 __res_state F
 GLIBC_2.4 __rpc_thread_createerr F
 GLIBC_2.4 __rpc_thread_svc_fdset F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
index a2ca6abc87..722feb80b6 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
@@ -31,12 +31,10 @@ GLIBC_2.4 __res_nmkquery F
 GLIBC_2.4 __res_nquery F
 GLIBC_2.4 __res_nquerydomain F
 GLIBC_2.4 __res_nsearch F
-GLIBC_2.4 __res_nsend F
 GLIBC_2.4 __res_queriesmatch F
 GLIBC_2.4 __res_query F
 GLIBC_2.4 __res_querydomain F
 GLIBC_2.4 __res_search F
-GLIBC_2.4 __res_send F
 GLIBC_2.4 __sym_ntop F
 GLIBC_2.4 __sym_ntos F
 GLIBC_2.4 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 1b3daa54b2..63a4230c49 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -441,7 +441,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
@@ -842,8 +844,10 @@ GLIBC_2.4 __res_init F
 GLIBC_2.4 __res_mailok F
 GLIBC_2.4 __res_nclose F
 GLIBC_2.4 __res_ninit F
+GLIBC_2.4 __res_nsend F
 GLIBC_2.4 __res_ownok F
 GLIBC_2.4 __res_randomid F
+GLIBC_2.4 __res_send F
 GLIBC_2.4 __res_state F
 GLIBC_2.4 __rpc_thread_createerr F
 GLIBC_2.4 __rpc_thread_svc_fdset F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
index a2ca6abc87..722feb80b6 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
@@ -31,12 +31,10 @@ GLIBC_2.4 __res_nmkquery F
 GLIBC_2.4 __res_nquery F
 GLIBC_2.4 __res_nquerydomain F
 GLIBC_2.4 __res_nsearch F
-GLIBC_2.4 __res_nsend F
 GLIBC_2.4 __res_queriesmatch F
 GLIBC_2.4 __res_query F
 GLIBC_2.4 __res_querydomain F
 GLIBC_2.4 __res_search F
-GLIBC_2.4 __res_send F
 GLIBC_2.4 __sym_ntop F
 GLIBC_2.4 __sym_ntos F
 GLIBC_2.4 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 056fedf121..29f34efbef 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -379,8 +379,10 @@ GLIBC_2.29 __res_init F
 GLIBC_2.29 __res_mailok F
 GLIBC_2.29 __res_nclose F
 GLIBC_2.29 __res_ninit F
+GLIBC_2.29 __res_nsend F
 GLIBC_2.29 __res_ownok F
 GLIBC_2.29 __res_randomid F
+GLIBC_2.29 __res_send F
 GLIBC_2.29 __res_state F
 GLIBC_2.29 __rpc_thread_createerr F
 GLIBC_2.29 __rpc_thread_svc_fdset F
@@ -2590,7 +2592,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
index df1d7ebd48..d94fe24625 100644
--- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
@@ -30,12 +30,10 @@ GLIBC_2.29 __res_nmkquery F
 GLIBC_2.29 __res_nquery F
 GLIBC_2.29 __res_nquerydomain F
 GLIBC_2.29 __res_nsearch F
-GLIBC_2.29 __res_nsend F
 GLIBC_2.29 __res_queriesmatch F
 GLIBC_2.29 __res_query F
 GLIBC_2.29 __res_querydomain F
 GLIBC_2.29 __res_search F
-GLIBC_2.29 __res_send F
 GLIBC_2.29 __sym_ntop F
 GLIBC_2.29 __sym_ntos F
 GLIBC_2.29 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index e5df8dfb66..150f119985 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -4,6 +4,7 @@ GLIBC_2.0 __res_dnok F
 GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_ownok F
+GLIBC_2.0 __res_send F
 GLIBC_2.0 dladdr F
 GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
@@ -428,6 +429,7 @@ GLIBC_2.2 __realloc_hook D 0x4
 GLIBC_2.2 __res_init F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_randomid F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __sbrk F
@@ -2537,7 +2539,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
index b6244e71e7..87c1434919 100644
--- a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
@@ -25,7 +25,6 @@ GLIBC_2.0 __res_close F
 GLIBC_2.0 __res_isourserver F
 GLIBC_2.0 __res_nameinquery F
 GLIBC_2.0 __res_queriesmatch F
-GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
 GLIBC_2.0 __sym_ntos F
 GLIBC_2.0 __sym_ston F
@@ -55,7 +54,6 @@ GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_query F
 GLIBC_2.2 __res_querydomain F
 GLIBC_2.2 __res_search F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 5858649b2f..7bbb872f75 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -211,6 +211,7 @@ GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_randomid F
+GLIBC_2.0 __res_send F
 GLIBC_2.0 __sbrk F
 GLIBC_2.0 __sched_get_priority_max F
 GLIBC_2.0 __sched_get_priority_min F
@@ -1982,6 +1983,7 @@ GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __res_init F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
 GLIBC_2.2 __statfs F
@@ -2721,7 +2723,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/i386/libresolv.abilist b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
index b6244e71e7..87c1434919 100644
--- a/sysdeps/unix/sysv/linux/i386/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
@@ -25,7 +25,6 @@ GLIBC_2.0 __res_close F
 GLIBC_2.0 __res_isourserver F
 GLIBC_2.0 __res_nameinquery F
 GLIBC_2.0 __res_queriesmatch F
-GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
 GLIBC_2.0 __sym_ntos F
 GLIBC_2.0 __sym_ston F
@@ -55,7 +54,6 @@ GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_query F
 GLIBC_2.2 __res_querydomain F
 GLIBC_2.2 __res_search F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 8098431f1c..b4471465ef 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -4,6 +4,7 @@ GLIBC_2.0 __res_dnok F
 GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_ownok F
+GLIBC_2.0 __res_send F
 GLIBC_2.0 dladdr F
 GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
@@ -432,6 +433,7 @@ GLIBC_2.2 __realloc_hook D 0x8
 GLIBC_2.2 __res_init F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_randomid F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __sbrk F
@@ -2496,7 +2498,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
index abfaf8840f..9e3b8f8c31 100644
--- a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
@@ -25,7 +25,6 @@ GLIBC_2.0 __res_close F
 GLIBC_2.0 __res_isourserver F
 GLIBC_2.0 __res_nameinquery F
 GLIBC_2.0 __res_queriesmatch F
-GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
 GLIBC_2.0 __sym_ntos F
 GLIBC_2.0 __sym_ston F
@@ -55,7 +54,6 @@ GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_query F
 GLIBC_2.2 __res_querydomain F
 GLIBC_2.2 __res_search F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 6941dc8a9f..dcf0f0002d 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -445,7 +445,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
@@ -831,8 +833,10 @@ GLIBC_2.4 __res_init F
 GLIBC_2.4 __res_mailok F
 GLIBC_2.4 __res_nclose F
 GLIBC_2.4 __res_ninit F
+GLIBC_2.4 __res_nsend F
 GLIBC_2.4 __res_ownok F
 GLIBC_2.4 __res_randomid F
+GLIBC_2.4 __res_send F
 GLIBC_2.4 __res_state F
 GLIBC_2.4 __rpc_thread_createerr F
 GLIBC_2.4 __rpc_thread_svc_fdset F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
index a2ca6abc87..722feb80b6 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
@@ -31,12 +31,10 @@ GLIBC_2.4 __res_nmkquery F
 GLIBC_2.4 __res_nquery F
 GLIBC_2.4 __res_nquerydomain F
 GLIBC_2.4 __res_nsearch F
-GLIBC_2.4 __res_nsend F
 GLIBC_2.4 __res_queriesmatch F
 GLIBC_2.4 __res_query F
 GLIBC_2.4 __res_querydomain F
 GLIBC_2.4 __res_search F
-GLIBC_2.4 __res_send F
 GLIBC_2.4 __sym_ntop F
 GLIBC_2.4 __sym_ntos F
 GLIBC_2.4 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 2724565feb..56722c0f22 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -211,6 +211,7 @@ GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_randomid F
+GLIBC_2.0 __res_send F
 GLIBC_2.0 __sbrk F
 GLIBC_2.0 __sched_get_priority_max F
 GLIBC_2.0 __sched_get_priority_min F
@@ -1938,6 +1939,7 @@ GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __res_init F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
 GLIBC_2.2 __statfs F
@@ -2664,7 +2666,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
index b6244e71e7..87c1434919 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
@@ -25,7 +25,6 @@ GLIBC_2.0 __res_close F
 GLIBC_2.0 __res_isourserver F
 GLIBC_2.0 __res_nameinquery F
 GLIBC_2.0 __res_queriesmatch F
-GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
 GLIBC_2.0 __sym_ntos F
 GLIBC_2.0 __sym_ston F
@@ -55,7 +54,6 @@ GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_query F
 GLIBC_2.2 __res_querydomain F
 GLIBC_2.2 __res_search F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 2eb5fed52d..ee019cae8b 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -387,8 +387,10 @@ GLIBC_2.18 __res_init F
 GLIBC_2.18 __res_mailok F
 GLIBC_2.18 __res_nclose F
 GLIBC_2.18 __res_ninit F
+GLIBC_2.18 __res_nsend F
 GLIBC_2.18 __res_ownok F
 GLIBC_2.18 __res_randomid F
+GLIBC_2.18 __res_send F
 GLIBC_2.18 __res_state F
 GLIBC_2.18 __rpc_thread_createerr F
 GLIBC_2.18 __rpc_thread_svc_fdset F
@@ -2641,7 +2643,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
index 2e35f266cd..a3350181fe 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
@@ -31,12 +31,10 @@ GLIBC_2.18 __res_nmkquery F
 GLIBC_2.18 __res_nquery F
 GLIBC_2.18 __res_nquerydomain F
 GLIBC_2.18 __res_nsearch F
-GLIBC_2.18 __res_nsend F
 GLIBC_2.18 __res_queriesmatch F
 GLIBC_2.18 __res_query F
 GLIBC_2.18 __res_querydomain F
 GLIBC_2.18 __res_search F
-GLIBC_2.18 __res_send F
 GLIBC_2.18 __sym_ntop F
 GLIBC_2.18 __sym_ntos F
 GLIBC_2.18 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 5da6906e19..e6202e984d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -387,8 +387,10 @@ GLIBC_2.18 __res_init F
 GLIBC_2.18 __res_mailok F
 GLIBC_2.18 __res_nclose F
 GLIBC_2.18 __res_ninit F
+GLIBC_2.18 __res_nsend F
 GLIBC_2.18 __res_ownok F
 GLIBC_2.18 __res_randomid F
+GLIBC_2.18 __res_send F
 GLIBC_2.18 __res_state F
 GLIBC_2.18 __rpc_thread_createerr F
 GLIBC_2.18 __rpc_thread_svc_fdset F
@@ -2638,7 +2640,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
index 2e35f266cd..a3350181fe 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
@@ -31,12 +31,10 @@ GLIBC_2.18 __res_nmkquery F
 GLIBC_2.18 __res_nquery F
 GLIBC_2.18 __res_nquerydomain F
 GLIBC_2.18 __res_nsearch F
-GLIBC_2.18 __res_nsend F
 GLIBC_2.18 __res_queriesmatch F
 GLIBC_2.18 __res_query F
 GLIBC_2.18 __res_querydomain F
 GLIBC_2.18 __res_search F
-GLIBC_2.18 __res_send F
 GLIBC_2.18 __sym_ntop F
 GLIBC_2.18 __sym_ntos F
 GLIBC_2.18 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 36ff79120a..cc6d7a06b3 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -209,6 +209,7 @@ GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_randomid F
+GLIBC_2.0 __res_send F
 GLIBC_2.0 __sbrk F
 GLIBC_2.0 __sched_get_priority_max F
 GLIBC_2.0 __sched_get_priority_min F
@@ -1591,6 +1592,7 @@ GLIBC_2.2 __rawmemchr F
 GLIBC_2.2 __res_init F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
 GLIBC_2.2 __signbit F
@@ -2629,7 +2631,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
index b6244e71e7..87c1434919 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
@@ -25,7 +25,6 @@ GLIBC_2.0 __res_close F
 GLIBC_2.0 __res_isourserver F
 GLIBC_2.0 __res_nameinquery F
 GLIBC_2.0 __res_queriesmatch F
-GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
 GLIBC_2.0 __sym_ntos F
 GLIBC_2.0 __sym_ston F
@@ -55,7 +54,6 @@ GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_query F
 GLIBC_2.2 __res_querydomain F
 GLIBC_2.2 __res_search F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 262dafa1f3..37e72aa024 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -209,6 +209,7 @@ GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_randomid F
+GLIBC_2.0 __res_send F
 GLIBC_2.0 __sbrk F
 GLIBC_2.0 __sched_get_priority_max F
 GLIBC_2.0 __sched_get_priority_min F
@@ -1589,6 +1590,7 @@ GLIBC_2.2 __rawmemchr F
 GLIBC_2.2 __res_init F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
 GLIBC_2.2 __signbit F
@@ -2627,7 +2629,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index f213a1897f..ab34c11c0c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -209,6 +209,7 @@ GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_randomid F
+GLIBC_2.0 __res_send F
 GLIBC_2.0 __sbrk F
 GLIBC_2.0 __sched_get_priority_max F
 GLIBC_2.0 __sched_get_priority_min F
@@ -1589,6 +1590,7 @@ GLIBC_2.2 __rawmemchr F
 GLIBC_2.2 __res_init F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
 GLIBC_2.2 __signbit F
@@ -2635,7 +2637,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
index b6244e71e7..87c1434919 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
@@ -25,7 +25,6 @@ GLIBC_2.0 __res_close F
 GLIBC_2.0 __res_isourserver F
 GLIBC_2.0 __res_nameinquery F
 GLIBC_2.0 __res_queriesmatch F
-GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
 GLIBC_2.0 __sym_ntos F
 GLIBC_2.0 __sym_ston F
@@ -55,7 +54,6 @@ GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_query F
 GLIBC_2.2 __res_querydomain F
 GLIBC_2.2 __res_search F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index f5a432e96d..ac1d00db89 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -209,6 +209,7 @@ GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_randomid F
+GLIBC_2.0 __res_send F
 GLIBC_2.0 __sbrk F
 GLIBC_2.0 __sched_get_priority_max F
 GLIBC_2.0 __sched_get_priority_min F
@@ -1585,6 +1586,7 @@ GLIBC_2.2 __rawmemchr F
 GLIBC_2.2 __res_init F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
 GLIBC_2.2 __signbit F
@@ -2547,7 +2549,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
index abfaf8840f..9e3b8f8c31 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
@@ -25,7 +25,6 @@ GLIBC_2.0 __res_close F
 GLIBC_2.0 __res_isourserver F
 GLIBC_2.0 __res_nameinquery F
 GLIBC_2.0 __res_queriesmatch F
-GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
 GLIBC_2.0 __sym_ntos F
 GLIBC_2.0 __sym_ston F
@@ -55,7 +54,6 @@ GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_query F
 GLIBC_2.2 __res_querydomain F
 GLIBC_2.2 __res_search F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 82162f919d..5d0ab2b4b5 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -424,8 +424,10 @@ GLIBC_2.21 __res_init F
 GLIBC_2.21 __res_mailok F
 GLIBC_2.21 __res_nclose F
 GLIBC_2.21 __res_ninit F
+GLIBC_2.21 __res_nsend F
 GLIBC_2.21 __res_ownok F
 GLIBC_2.21 __res_randomid F
+GLIBC_2.21 __res_send F
 GLIBC_2.21 __res_state F
 GLIBC_2.21 __rpc_thread_createerr F
 GLIBC_2.21 __rpc_thread_svc_fdset F
@@ -2680,7 +2682,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
index 14395d8bf4..48cf067b8b 100644
--- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
@@ -31,12 +31,10 @@ GLIBC_2.21 __res_nmkquery F
 GLIBC_2.21 __res_nquery F
 GLIBC_2.21 __res_nquerydomain F
 GLIBC_2.21 __res_nsearch F
-GLIBC_2.21 __res_nsend F
 GLIBC_2.21 __res_queriesmatch F
 GLIBC_2.21 __res_query F
 GLIBC_2.21 __res_querydomain F
 GLIBC_2.21 __res_search F
-GLIBC_2.21 __res_send F
 GLIBC_2.21 __sym_ntop F
 GLIBC_2.21 __sym_ntos F
 GLIBC_2.21 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 2afd685b07..40a25c6816 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -220,6 +220,7 @@ GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_randomid F
+GLIBC_2.0 __res_send F
 GLIBC_2.0 __sbrk F
 GLIBC_2.0 __sched_get_priority_max F
 GLIBC_2.0 __sched_get_priority_min F
@@ -1944,6 +1945,7 @@ GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __res_init F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
 GLIBC_2.2 __statfs F
@@ -2691,7 +2693,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
index b6244e71e7..87c1434919 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
@@ -25,7 +25,6 @@ GLIBC_2.0 __res_close F
 GLIBC_2.0 __res_isourserver F
 GLIBC_2.0 __res_nameinquery F
 GLIBC_2.0 __res_queriesmatch F
-GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
 GLIBC_2.0 __sym_ntos F
 GLIBC_2.0 __sym_ston F
@@ -55,7 +54,6 @@ GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_query F
 GLIBC_2.2 __res_querydomain F
 GLIBC_2.2 __res_search F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index d7111c53a5..322e7d49c0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -220,6 +220,7 @@ GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_randomid F
+GLIBC_2.0 __res_send F
 GLIBC_2.0 __sbrk F
 GLIBC_2.0 __sched_get_priority_max F
 GLIBC_2.0 __sched_get_priority_min F
@@ -1948,6 +1949,7 @@ GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __res_init F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
 GLIBC_2.2 __statfs F
@@ -2724,7 +2726,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index d27bc07919..8242ca505f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -470,8 +470,10 @@ GLIBC_2.3 __res_init F
 GLIBC_2.3 __res_mailok F
 GLIBC_2.3 __res_nclose F
 GLIBC_2.3 __res_ninit F
+GLIBC_2.3 __res_nsend F
 GLIBC_2.3 __res_ownok F
 GLIBC_2.3 __res_randomid F
+GLIBC_2.3 __res_send F
 GLIBC_2.3 __res_state F
 GLIBC_2.3 __rpc_thread_createerr F
 GLIBC_2.3 __rpc_thread_svc_fdset F
@@ -2459,7 +2461,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
index d48ab674cc..708f9cd1d8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
@@ -30,12 +30,10 @@ GLIBC_2.3 __res_nmkquery F
 GLIBC_2.3 __res_nquery F
 GLIBC_2.3 __res_nquerydomain F
 GLIBC_2.3 __res_nsearch F
-GLIBC_2.3 __res_nsend F
 GLIBC_2.3 __res_queriesmatch F
 GLIBC_2.3 __res_query F
 GLIBC_2.3 __res_querydomain F
 GLIBC_2.3 __res_search F
-GLIBC_2.3 __res_send F
 GLIBC_2.3 __sym_ntop F
 GLIBC_2.3 __sym_ntos F
 GLIBC_2.3 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 20e1d587c3..36473c1832 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -472,8 +472,10 @@ GLIBC_2.17 __res_init F
 GLIBC_2.17 __res_mailok F
 GLIBC_2.17 __res_nclose F
 GLIBC_2.17 __res_ninit F
+GLIBC_2.17 __res_nsend F
 GLIBC_2.17 __res_ownok F
 GLIBC_2.17 __res_randomid F
+GLIBC_2.17 __res_send F
 GLIBC_2.17 __res_state F
 GLIBC_2.17 __rpc_thread_createerr F
 GLIBC_2.17 __rpc_thread_svc_fdset F
@@ -2761,7 +2763,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
index 613638f9ce..d071a2c5ef 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
@@ -31,12 +31,10 @@ GLIBC_2.17 __res_nmkquery F
 GLIBC_2.17 __res_nquery F
 GLIBC_2.17 __res_nquerydomain F
 GLIBC_2.17 __res_nsearch F
-GLIBC_2.17 __res_nsend F
 GLIBC_2.17 __res_queriesmatch F
 GLIBC_2.17 __res_query F
 GLIBC_2.17 __res_querydomain F
 GLIBC_2.17 __res_search F
-GLIBC_2.17 __res_send F
 GLIBC_2.17 __sym_ntop F
 GLIBC_2.17 __sym_ntos F
 GLIBC_2.17 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 891ee06d45..c092350f1b 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -372,8 +372,10 @@ GLIBC_2.33 __res_init F
 GLIBC_2.33 __res_mailok F
 GLIBC_2.33 __res_nclose F
 GLIBC_2.33 __res_ninit F
+GLIBC_2.33 __res_nsend F
 GLIBC_2.33 __res_ownok F
 GLIBC_2.33 __res_randomid F
+GLIBC_2.33 __res_send F
 GLIBC_2.33 __res_state F
 GLIBC_2.33 __riscv_flush_icache F
 GLIBC_2.33 __sbrk F
@@ -2326,7 +2328,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
index 3b9691588e..bd9a317d8d 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
@@ -30,12 +30,10 @@ GLIBC_2.33 __res_nmkquery F
 GLIBC_2.33 __res_nquery F
 GLIBC_2.33 __res_nquerydomain F
 GLIBC_2.33 __res_nsearch F
-GLIBC_2.33 __res_nsend F
 GLIBC_2.33 __res_queriesmatch F
 GLIBC_2.33 __res_query F
 GLIBC_2.33 __res_querydomain F
 GLIBC_2.33 __res_search F
-GLIBC_2.33 __res_send F
 GLIBC_2.33 __sym_ntop F
 GLIBC_2.33 __sym_ntos F
 GLIBC_2.33 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 089c6b9de3..23036032e2 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -383,8 +383,10 @@ GLIBC_2.27 __res_init F
 GLIBC_2.27 __res_mailok F
 GLIBC_2.27 __res_nclose F
 GLIBC_2.27 __res_ninit F
+GLIBC_2.27 __res_nsend F
 GLIBC_2.27 __res_ownok F
 GLIBC_2.27 __res_randomid F
+GLIBC_2.27 __res_send F
 GLIBC_2.27 __res_state F
 GLIBC_2.27 __riscv_flush_icache F
 GLIBC_2.27 __rpc_thread_createerr F
@@ -2526,7 +2528,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
index 4417916b78..e40b11fe0f 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
@@ -30,12 +30,10 @@ GLIBC_2.27 __res_nmkquery F
 GLIBC_2.27 __res_nquery F
 GLIBC_2.27 __res_nquerydomain F
 GLIBC_2.27 __res_nsearch F
-GLIBC_2.27 __res_nsend F
 GLIBC_2.27 __res_queriesmatch F
 GLIBC_2.27 __res_query F
 GLIBC_2.27 __res_querydomain F
 GLIBC_2.27 __res_search F
-GLIBC_2.27 __res_send F
 GLIBC_2.27 __sym_ntop F
 GLIBC_2.27 __sym_ntos F
 GLIBC_2.27 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 7c02785103..5ed84830cb 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -211,6 +211,7 @@ GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_randomid F
+GLIBC_2.0 __res_send F
 GLIBC_2.0 __sbrk F
 GLIBC_2.0 __sched_get_priority_max F
 GLIBC_2.0 __sched_get_priority_min F
@@ -1942,6 +1943,7 @@ GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __res_init F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
 GLIBC_2.2 __statfs F
@@ -2689,7 +2691,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
index b6244e71e7..87c1434919 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
@@ -25,7 +25,6 @@ GLIBC_2.0 __res_close F
 GLIBC_2.0 __res_isourserver F
 GLIBC_2.0 __res_nameinquery F
 GLIBC_2.0 __res_queriesmatch F
-GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
 GLIBC_2.0 __sym_ntos F
 GLIBC_2.0 __sym_ston F
@@ -55,7 +54,6 @@ GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_query F
 GLIBC_2.2 __res_querydomain F
 GLIBC_2.2 __res_search F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index d294d9af62..13372d9c85 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -414,8 +414,10 @@ GLIBC_2.2 __res_init F
 GLIBC_2.2 __res_mailok F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_ownok F
 GLIBC_2.2 __res_randomid F
+GLIBC_2.2 __res_send F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __sbrk F
 GLIBC_2.2 __sched_get_priority_max F
@@ -2496,7 +2498,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
index 07d7ef8935..f1c523177b 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
@@ -30,12 +30,10 @@ GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_queriesmatch F
 GLIBC_2.2 __res_query F
 GLIBC_2.2 __res_querydomain F
 GLIBC_2.2 __res_search F
-GLIBC_2.2 __res_send F
 GLIBC_2.2 __sym_ntop F
 GLIBC_2.2 __sym_ntos F
 GLIBC_2.2 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index a3e3845b3f..ec0f690bb0 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -8,6 +8,7 @@ GLIBC_2.0 __res_dnok F
 GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_ownok F
+GLIBC_2.0 __res_send F
 GLIBC_2.0 dladdr F
 GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
@@ -432,6 +433,7 @@ GLIBC_2.2 __register_frame_info F
 GLIBC_2.2 __res_init F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_randomid F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __sbrk F
@@ -2544,7 +2546,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
index b6244e71e7..87c1434919 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
@@ -25,7 +25,6 @@ GLIBC_2.0 __res_close F
 GLIBC_2.0 __res_isourserver F
 GLIBC_2.0 __res_nameinquery F
 GLIBC_2.0 __res_queriesmatch F
-GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
 GLIBC_2.0 __sym_ntos F
 GLIBC_2.0 __sym_ston F
@@ -55,7 +54,6 @@ GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_query F
 GLIBC_2.2 __res_querydomain F
 GLIBC_2.2 __res_search F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 3a7ca365c8..375372f0ff 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -8,6 +8,7 @@ GLIBC_2.0 __res_dnok F
 GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_ownok F
+GLIBC_2.0 __res_send F
 GLIBC_2.0 dladdr F
 GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
@@ -432,6 +433,7 @@ GLIBC_2.2 __register_frame_info F
 GLIBC_2.2 __res_init F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_randomid F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __sbrk F
@@ -2541,7 +2543,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
index b6244e71e7..87c1434919 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
@@ -25,7 +25,6 @@ GLIBC_2.0 __res_close F
 GLIBC_2.0 __res_isourserver F
 GLIBC_2.0 __res_nameinquery F
 GLIBC_2.0 __res_queriesmatch F
-GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
 GLIBC_2.0 __sym_ntos F
 GLIBC_2.0 __sym_ston F
@@ -55,7 +54,6 @@ GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_query F
 GLIBC_2.2 __res_querydomain F
 GLIBC_2.2 __res_search F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 61ebc732dd..e761671120 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -215,6 +215,7 @@ GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_ownok F
 GLIBC_2.0 __res_randomid F
+GLIBC_2.0 __res_send F
 GLIBC_2.0 __sbrk F
 GLIBC_2.0 __sched_get_priority_max F
 GLIBC_2.0 __sched_get_priority_min F
@@ -1940,6 +1941,7 @@ GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __res_init F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
 GLIBC_2.2 __statfs F
@@ -2684,7 +2686,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
index b6244e71e7..87c1434919 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
@@ -25,7 +25,6 @@ GLIBC_2.0 __res_close F
 GLIBC_2.0 __res_isourserver F
 GLIBC_2.0 __res_nameinquery F
 GLIBC_2.0 __res_queriesmatch F
-GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
 GLIBC_2.0 __sym_ntos F
 GLIBC_2.0 __sym_ston F
@@ -55,7 +54,6 @@ GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_query F
 GLIBC_2.2 __res_querydomain F
 GLIBC_2.2 __res_search F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 8417c58ddd..7e6db6fafe 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -8,6 +8,7 @@ GLIBC_2.0 __res_dnok F
 GLIBC_2.0 __res_hnok F
 GLIBC_2.0 __res_mailok F
 GLIBC_2.0 __res_ownok F
+GLIBC_2.0 __res_send F
 GLIBC_2.0 dladdr F
 GLIBC_2.0 dlclose F
 GLIBC_2.0 dlerror F
@@ -473,6 +474,7 @@ GLIBC_2.2 __register_frame_table F
 GLIBC_2.2 __res_init F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_randomid F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __sbrk F
@@ -2519,7 +2521,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
index abfaf8840f..9e3b8f8c31 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
@@ -25,7 +25,6 @@ GLIBC_2.0 __res_close F
 GLIBC_2.0 __res_isourserver F
 GLIBC_2.0 __res_nameinquery F
 GLIBC_2.0 __res_queriesmatch F
-GLIBC_2.0 __res_send F
 GLIBC_2.0 __sym_ntop F
 GLIBC_2.0 __sym_ntos F
 GLIBC_2.0 __sym_ston F
@@ -55,7 +54,6 @@ GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_query F
 GLIBC_2.2 __res_querydomain F
 GLIBC_2.2 __res_search F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index d50726c678..3a4df00064 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -398,8 +398,10 @@ GLIBC_2.2.5 __res_init F
 GLIBC_2.2.5 __res_mailok F
 GLIBC_2.2.5 __res_nclose F
 GLIBC_2.2.5 __res_ninit F
+GLIBC_2.2.5 __res_nsend F
 GLIBC_2.2.5 __res_ownok F
 GLIBC_2.2.5 __res_randomid F
+GLIBC_2.2.5 __res_send F
 GLIBC_2.2.5 __res_state F
 GLIBC_2.2.5 __rpc_thread_createerr F
 GLIBC_2.2.5 __rpc_thread_svc_fdset F
@@ -2474,7 +2476,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
index 3375dd6380..dd49cbe641 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
@@ -30,12 +30,10 @@ GLIBC_2.2.5 __res_nmkquery F
 GLIBC_2.2.5 __res_nquery F
 GLIBC_2.2.5 __res_nquerydomain F
 GLIBC_2.2.5 __res_nsearch F
-GLIBC_2.2.5 __res_nsend F
 GLIBC_2.2.5 __res_queriesmatch F
 GLIBC_2.2.5 __res_query F
 GLIBC_2.2.5 __res_querydomain F
 GLIBC_2.2.5 __res_search F
-GLIBC_2.2.5 __res_send F
 GLIBC_2.2.5 __sym_ntop F
 GLIBC_2.2.5 __sym_ntos F
 GLIBC_2.2.5 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 1e92ea4ce4..108d816493 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -387,8 +387,10 @@ GLIBC_2.16 __res_init F
 GLIBC_2.16 __res_mailok F
 GLIBC_2.16 __res_nclose F
 GLIBC_2.16 __res_ninit F
+GLIBC_2.16 __res_nsend F
 GLIBC_2.16 __res_ownok F
 GLIBC_2.16 __res_randomid F
+GLIBC_2.16 __res_send F
 GLIBC_2.16 __res_state F
 GLIBC_2.16 __rpc_thread_createerr F
 GLIBC_2.16 __rpc_thread_svc_fdset F
@@ -2580,7 +2582,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
index 99db09f022..298baa250e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
@@ -31,12 +31,10 @@ GLIBC_2.16 __res_nmkquery F
 GLIBC_2.16 __res_nquery F
 GLIBC_2.16 __res_nquerydomain F
 GLIBC_2.16 __res_nsearch F
-GLIBC_2.16 __res_nsend F
 GLIBC_2.16 __res_queriesmatch F
 GLIBC_2.16 __res_query F
 GLIBC_2.16 __res_querydomain F
 GLIBC_2.16 __res_search F
-GLIBC_2.16 __res_send F
 GLIBC_2.16 __sym_ntop F
 GLIBC_2.16 __sym_ntos F
 GLIBC_2.16 __sym_ston F
-- 
2.31.1



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

* [PATCH 27/30] resolv: Move res_mkquery, res_nmkquery into libc
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (25 preceding siblings ...)
  2021-07-02 18:49 ` [PATCH 26/30] resolv: Move res_send, res_nsend into libc Florian Weimer
@ 2021-07-02 18:49 ` Florian Weimer
  2021-07-02 18:49 ` [PATCH 28/30] resolv: Move res_query functions " Florian Weimer
                   ` (2 subsequent siblings)
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:49 UTC (permalink / raw)
  To: libc-alpha

This switches to public symbols without __ prefixes, due to improved
namespace management in glibc.

The symbols res_mkquery, __res_mkquery, __res_nmkquery were
moved with the script (using --no-new-version).
res_mkquery@@GLIBC_2.34, res_nmkquery@@GLIBC_2.34 were added using
make update-all-abi.
---
 resolv/Makefile                               |  2 +-
 resolv/Versions                               | 10 ++--
 resolv/res_mkquery.c                          | 48 +++++++++++--------
 resolv/resolv-internal.h                      |  6 ++-
 resolv/resolv.h                               |  2 -
 sysdeps/mach/hurd/i386/libc.abilist           |  4 ++
 sysdeps/mach/hurd/i386/libresolv.abilist      |  2 -
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  4 ++
 .../unix/sysv/linux/aarch64/libresolv.abilist |  2 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |  5 ++
 .../unix/sysv/linux/alpha/libresolv.abilist   |  3 --
 sysdeps/unix/sysv/linux/arc/libc.abilist      |  4 ++
 sysdeps/unix/sysv/linux/arc/libresolv.abilist |  2 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  4 ++
 .../unix/sysv/linux/arm/be/libresolv.abilist  |  2 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  4 ++
 .../unix/sysv/linux/arm/le/libresolv.abilist  |  2 -
 sysdeps/unix/sysv/linux/csky/libc.abilist     |  4 ++
 .../unix/sysv/linux/csky/libresolv.abilist    |  2 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |  5 ++
 .../unix/sysv/linux/hppa/libresolv.abilist    |  3 --
 sysdeps/unix/sysv/linux/i386/libc.abilist     |  5 ++
 .../unix/sysv/linux/i386/libresolv.abilist    |  3 --
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |  5 ++
 .../unix/sysv/linux/ia64/libresolv.abilist    |  3 --
 .../sysv/linux/m68k/coldfire/libc.abilist     |  4 ++
 .../linux/m68k/coldfire/libresolv.abilist     |  2 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  5 ++
 .../sysv/linux/m68k/m680x0/libresolv.abilist  |  3 --
 .../sysv/linux/microblaze/be/libc.abilist     |  4 ++
 .../linux/microblaze/be/libresolv.abilist     |  2 -
 .../sysv/linux/microblaze/le/libc.abilist     |  4 ++
 .../linux/microblaze/le/libresolv.abilist     |  2 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |  5 ++
 .../sysv/linux/mips/mips32/libresolv.abilist  |  3 --
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |  5 ++
 .../sysv/linux/mips/mips64/n32/libc.abilist   |  5 ++
 .../linux/mips/mips64/n32/libresolv.abilist   |  3 --
 .../sysv/linux/mips/mips64/n64/libc.abilist   |  5 ++
 .../linux/mips/mips64/n64/libresolv.abilist   |  3 --
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |  4 ++
 .../unix/sysv/linux/nios2/libresolv.abilist   |  2 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |  5 ++
 .../linux/powerpc/powerpc32/libresolv.abilist |  3 --
 .../powerpc/powerpc32/nofpu/libc.abilist      |  5 ++
 .../linux/powerpc/powerpc64/be/libc.abilist   |  4 ++
 .../powerpc/powerpc64/be/libresolv.abilist    |  2 -
 .../linux/powerpc/powerpc64/le/libc.abilist   |  4 ++
 .../powerpc/powerpc64/le/libresolv.abilist    |  2 -
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |  4 ++
 .../sysv/linux/riscv/rv32/libresolv.abilist   |  2 -
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |  4 ++
 .../sysv/linux/riscv/rv64/libresolv.abilist   |  2 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist |  5 ++
 .../sysv/linux/s390/s390-32/libresolv.abilist |  3 --
 .../unix/sysv/linux/s390/s390-64/libc.abilist |  4 ++
 .../sysv/linux/s390/s390-64/libresolv.abilist |  2 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  5 ++
 .../unix/sysv/linux/sh/be/libresolv.abilist   |  3 --
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  5 ++
 .../unix/sysv/linux/sh/le/libresolv.abilist   |  3 --
 .../sysv/linux/sparc/sparc32/libc.abilist     |  5 ++
 .../linux/sparc/sparc32/libresolv.abilist     |  3 --
 .../sysv/linux/sparc/sparc64/libc.abilist     |  5 ++
 .../linux/sparc/sparc64/libresolv.abilist     |  3 --
 .../unix/sysv/linux/x86_64/64/libc.abilist    |  4 ++
 .../sysv/linux/x86_64/64/libresolv.abilist    |  2 -
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |  4 ++
 .../sysv/linux/x86_64/x32/libresolv.abilist   |  2 -
 69 files changed, 188 insertions(+), 104 deletions(-)

diff --git a/resolv/Makefile b/resolv/Makefile
index e9689f7e2c..31658202d3 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -54,6 +54,7 @@ routines := \
   res_hconf \
   res_init \
   res_libc \
+  res_mkquery \
   res_nameinquery \
   res_queriesmatch \
   res_randomid \
@@ -155,7 +156,6 @@ libresolv-routines := \
   res_debug \
   res_hostalias \
   res_isourserver \
-  res_mkquery \
   res_query \
   resolv-deprecated \
   # libresolv-routines
diff --git a/resolv/Versions b/resolv/Versions
index 21b7af73c5..fcaf9fada7 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -17,12 +17,15 @@ libc {
     herror;
     hstrerror;
     res_init;
+    res_mkquery;
   }
   GLIBC_2.2 {
     __dn_expand;
     __res_init;
+    __res_mkquery;
     __res_nclose;
     __res_ninit;
+    __res_nmkquery;
     __res_nsend;
     __res_state;
     _res_hconf;
@@ -64,6 +67,8 @@ libc {
     res_dnok;
     res_hnok;
     res_mailok;
+    res_mkquery;
+    res_nmkquery;
     res_nsend;
     res_ownok;
     res_send;
@@ -91,10 +96,12 @@ libc {
     __ns_name_uncompress;
     __ns_name_unpack;
     __res_context_hostalias;
+    __res_context_mkquery;
     __res_context_send;
     __res_context_send;
     __res_get_nsaddr;
     __res_iclose;
+    __res_nopt;
     __resolv_context_get;
     __resolv_context_get_override;
     __resolv_context_get_preinit;
@@ -151,7 +158,6 @@ libresolv {
     res_gethostbyaddr;
     res_gethostbyname2;
     res_gethostbyname;
-    res_mkquery;
     res_query;
     res_querydomain;
     res_search;
@@ -160,8 +166,6 @@ libresolv {
   }
   GLIBC_2.2 {
     __res_hostalias;
-    __res_mkquery;
-    __res_nmkquery;
     __res_nquery;
     __res_nquerydomain;
     __res_nsearch;
diff --git a/resolv/res_mkquery.c b/resolv/res_mkquery.c
index 07c34d1340..ba6c983b58 100644
--- a/resolv/res_mkquery.c
+++ b/resolv/res_mkquery.c
@@ -141,9 +141,9 @@ __res_context_mkquery (struct resolv_context *ctx, int op, const char *dname,
       if ((buflen -= QFIXEDSZ) < 0)
         return -1;
     compose:
-      n = ns_name_compress (dname, cp, buflen,
-                            (const unsigned char **) dnptrs,
-                            (const unsigned char **) lastdnptr);
+      n = __ns_name_compress (dname, cp, buflen,
+                              (const unsigned char **) dnptrs,
+                              (const unsigned char **) lastdnptr);
       if (n < 0)
         return -1;
       cp += n;
@@ -155,9 +155,9 @@ __res_context_mkquery (struct resolv_context *ctx, int op, const char *dname,
         break;
 
       /* Make an additional record for completion domain.  */
-      n = ns_name_compress ((char *)data, cp, buflen,
-                            (const unsigned char **) dnptrs,
-                            (const unsigned char **) lastdnptr);
+      n = __ns_name_compress ((char *)data, cp, buflen,
+                              (const unsigned char **) dnptrs,
+                              (const unsigned char **) lastdnptr);
       if (__glibc_unlikely (n < 0))
         return -1;
       cp += n;
@@ -174,6 +174,7 @@ __res_context_mkquery (struct resolv_context *ctx, int op, const char *dname,
     }
   return cp - buf;
 }
+libc_hidden_def (__res_context_mkquery)
 
 /* Common part of res_nmkquery and res_mkquery.  */
 static int
@@ -203,27 +204,38 @@ context_mkquery_common (struct resolv_context *ctx,
 
    DATALEN and NEWRR_IN are currently ignored.  */
 int
-res_nmkquery (res_state statp, int op, const char *dname,
-              int class, int type,
-              const unsigned char *data, int datalen,
-              const unsigned char *newrr_in,
-              unsigned char *buf, int buflen)
+___res_nmkquery (res_state statp, int op, const char *dname,
+                 int class, int type,
+                 const unsigned char *data, int datalen,
+                 const unsigned char *newrr_in,
+                 unsigned char *buf, int buflen)
 {
   return context_mkquery_common
     (__resolv_context_get_override (statp),
      op, dname, class, type, data, buf, buflen);
 }
+versioned_symbol (libc, ___res_nmkquery, res_nmkquery, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_nmkquery, __res_nmkquery, GLIBC_2_2);
+#endif
 
 int
-res_mkquery (int op, const char *dname, int class, int type,
-             const unsigned char *data, int datalen,
-             const unsigned char *newrr_in,
-             unsigned char *buf, int buflen)
+___res_mkquery (int op, const char *dname, int class, int type,
+                const unsigned char *data, int datalen,
+                const unsigned char *newrr_in,
+                unsigned char *buf, int buflen)
 {
   return context_mkquery_common
     (__resolv_context_get_preinit (),
      op, dname, class, type, data, buf, buflen);
 }
+versioned_symbol (libc, ___res_mkquery, res_mkquery, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_2)
+compat_symbol (libresolv, ___res_mkquery, res_mkquery, GLIBC_2_0);
+#endif
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_mkquery, __res_mkquery, GLIBC_2_2);
+#endif
 
 /* Create an OPT resource record.  Return the length of the final
    packet, or -1 on error.
@@ -285,8 +297,4 @@ __res_nopt (struct resolv_context *ctx,
 
   return cp - buf;
 }
-
-#if SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_2)
-# undef res_mkquery
-weak_alias (__res_mkquery, res_mkquery);
-#endif
+libc_hidden_def (__res_nopt)
diff --git a/resolv/resolv-internal.h b/resolv/resolv-internal.h
index 1e21c38cc7..3cf8a77698 100644
--- a/resolv/resolv-internal.h
+++ b/resolv/resolv-internal.h
@@ -55,7 +55,8 @@ struct resolv_context;
    Also used by __res_context_query.  */
 int __res_context_mkquery (struct resolv_context *, int op, const char *dname,
                            int class, int type, const unsigned char *data,
-                           unsigned char *buf, int buflen) attribute_hidden;
+                           unsigned char *buf, int buflen);
+libc_hidden_proto (__res_context_mkquery)
 
 /* Main resolver query function for use within glibc.  */
 int __res_context_search (struct resolv_context *, const char *, int, int,
@@ -84,7 +85,8 @@ libc_hidden_proto (__res_context_hostalias);
 
 /* Add an OPT record to a DNS query.  */
 int __res_nopt (struct resolv_context *, int n0,
-                unsigned char *buf, int buflen, int anslen) attribute_hidden;
+                unsigned char *buf, int buflen, int anslen);
+libc_hidden_proto (__res_nopt)
 
 /* Convert from presentation format (which usually means ASCII
    printable) to network format (which is usually some kind of binary
diff --git a/resolv/resolv.h b/resolv/resolv.h
index 66944008fd..e50b8d08d7 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -168,7 +168,6 @@ __END_DECLS
 #define res_close		__res_close
 #define res_init		__res_init
 #define res_isourserver		__res_isourserver
-#define res_mkquery		__res_mkquery
 #define res_query		__res_query
 #define res_querydomain		__res_querydomain
 #define res_search		__res_search
@@ -228,7 +227,6 @@ __END_DECLS
 #define res_nameinquery		__res_nameinquery
 #define res_nclose		__res_nclose
 #define res_ninit		__res_ninit
-#define res_nmkquery		__res_nmkquery
 #define res_nquery		__res_nquery
 #define res_nquerydomain	__res_nquerydomain
 #define res_nsearch		__res_nsearch
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 956c92182b..092f1b8ffb 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -405,8 +405,10 @@ GLIBC_2.2.6 __res_dnok F
 GLIBC_2.2.6 __res_hnok F
 GLIBC_2.2.6 __res_init F
 GLIBC_2.2.6 __res_mailok F
+GLIBC_2.2.6 __res_mkquery F
 GLIBC_2.2.6 __res_nclose F
 GLIBC_2.2.6 __res_ninit F
+GLIBC_2.2.6 __res_nmkquery F
 GLIBC_2.2.6 __res_nsend F
 GLIBC_2.2.6 __res_ownok F
 GLIBC_2.2.6 __res_randomid F
@@ -2263,6 +2265,8 @@ GLIBC_2.34 openpty F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index 2e772ae4e1..3ef54cc28e 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -24,9 +24,7 @@ GLIBC_2.2.6 __putshort F
 GLIBC_2.2.6 __res_close F
 GLIBC_2.2.6 __res_hostalias F
 GLIBC_2.2.6 __res_isourserver F
-GLIBC_2.2.6 __res_mkquery F
 GLIBC_2.2.6 __res_nameinquery F
-GLIBC_2.2.6 __res_nmkquery F
 GLIBC_2.2.6 __res_nquery F
 GLIBC_2.2.6 __res_nquerydomain F
 GLIBC_2.2.6 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 9bc89dcdc8..69669a0e7c 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -384,8 +384,10 @@ GLIBC_2.17 __res_dnok F
 GLIBC_2.17 __res_hnok F
 GLIBC_2.17 __res_init F
 GLIBC_2.17 __res_mailok F
+GLIBC_2.17 __res_mkquery F
 GLIBC_2.17 __res_nclose F
 GLIBC_2.17 __res_ninit F
+GLIBC_2.17 __res_nmkquery F
 GLIBC_2.17 __res_nsend F
 GLIBC_2.17 __res_ownok F
 GLIBC_2.17 __res_randomid F
@@ -2567,6 +2569,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
index d071a2c5ef..702d13c633 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
@@ -25,9 +25,7 @@ GLIBC_2.17 __putshort F
 GLIBC_2.17 __res_close F
 GLIBC_2.17 __res_hostalias F
 GLIBC_2.17 __res_isourserver F
-GLIBC_2.17 __res_mkquery F
 GLIBC_2.17 __res_nameinquery F
-GLIBC_2.17 __res_nmkquery F
 GLIBC_2.17 __res_nquery F
 GLIBC_2.17 __res_nquerydomain F
 GLIBC_2.17 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 444c73a3ee..080dc715cd 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1004,6 +1004,7 @@ GLIBC_2.0 remove F
 GLIBC_2.0 remque F
 GLIBC_2.0 rename F
 GLIBC_2.0 res_init F
+GLIBC_2.0 res_mkquery F
 GLIBC_2.0 revoke F
 GLIBC_2.0 rewind F
 GLIBC_2.0 rewinddir F
@@ -1977,8 +1978,10 @@ GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
@@ -2660,6 +2663,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
index 9e3b8f8c31..4f5160f474 100644
--- a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
@@ -42,15 +42,12 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_mkquery F
 GLIBC_2.0 res_query F
 GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_mkquery F
-GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 92661d2b20..c348727faa 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -373,8 +373,10 @@ GLIBC_2.32 __res_dnok F
 GLIBC_2.32 __res_hnok F
 GLIBC_2.32 __res_init F
 GLIBC_2.32 __res_mailok F
+GLIBC_2.32 __res_mkquery F
 GLIBC_2.32 __res_nclose F
 GLIBC_2.32 __res_ninit F
+GLIBC_2.32 __res_nmkquery F
 GLIBC_2.32 __res_nsend F
 GLIBC_2.32 __res_ownok F
 GLIBC_2.32 __res_randomid F
@@ -2326,6 +2328,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
index a9599afe6d..ee92f2ae58 100644
--- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
@@ -24,9 +24,7 @@ GLIBC_2.32 __putshort F
 GLIBC_2.32 __res_close F
 GLIBC_2.32 __res_hostalias F
 GLIBC_2.32 __res_isourserver F
-GLIBC_2.32 __res_mkquery F
 GLIBC_2.32 __res_nameinquery F
-GLIBC_2.32 __res_nmkquery F
 GLIBC_2.32 __res_nquery F
 GLIBC_2.32 __res_nquerydomain F
 GLIBC_2.32 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 7f741fd135..db6b437b54 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -444,6 +444,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
@@ -845,8 +847,10 @@ GLIBC_2.4 __res_dnok F
 GLIBC_2.4 __res_hnok F
 GLIBC_2.4 __res_init F
 GLIBC_2.4 __res_mailok F
+GLIBC_2.4 __res_mkquery F
 GLIBC_2.4 __res_nclose F
 GLIBC_2.4 __res_ninit F
+GLIBC_2.4 __res_nmkquery F
 GLIBC_2.4 __res_nsend F
 GLIBC_2.4 __res_ownok F
 GLIBC_2.4 __res_randomid F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
index 722feb80b6..ee4f6a36e9 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
@@ -25,9 +25,7 @@ GLIBC_2.4 __putshort F
 GLIBC_2.4 __res_close F
 GLIBC_2.4 __res_hostalias F
 GLIBC_2.4 __res_isourserver F
-GLIBC_2.4 __res_mkquery F
 GLIBC_2.4 __res_nameinquery F
-GLIBC_2.4 __res_nmkquery F
 GLIBC_2.4 __res_nquery F
 GLIBC_2.4 __res_nquerydomain F
 GLIBC_2.4 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 63a4230c49..2fdab7ae14 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -441,6 +441,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
@@ -842,8 +844,10 @@ GLIBC_2.4 __res_dnok F
 GLIBC_2.4 __res_hnok F
 GLIBC_2.4 __res_init F
 GLIBC_2.4 __res_mailok F
+GLIBC_2.4 __res_mkquery F
 GLIBC_2.4 __res_nclose F
 GLIBC_2.4 __res_ninit F
+GLIBC_2.4 __res_nmkquery F
 GLIBC_2.4 __res_nsend F
 GLIBC_2.4 __res_ownok F
 GLIBC_2.4 __res_randomid F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
index 722feb80b6..ee4f6a36e9 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
@@ -25,9 +25,7 @@ GLIBC_2.4 __putshort F
 GLIBC_2.4 __res_close F
 GLIBC_2.4 __res_hostalias F
 GLIBC_2.4 __res_isourserver F
-GLIBC_2.4 __res_mkquery F
 GLIBC_2.4 __res_nameinquery F
-GLIBC_2.4 __res_nmkquery F
 GLIBC_2.4 __res_nquery F
 GLIBC_2.4 __res_nquerydomain F
 GLIBC_2.4 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 29f34efbef..9aaf7b0233 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -377,8 +377,10 @@ GLIBC_2.29 __res_dnok F
 GLIBC_2.29 __res_hnok F
 GLIBC_2.29 __res_init F
 GLIBC_2.29 __res_mailok F
+GLIBC_2.29 __res_mkquery F
 GLIBC_2.29 __res_nclose F
 GLIBC_2.29 __res_ninit F
+GLIBC_2.29 __res_nmkquery F
 GLIBC_2.29 __res_nsend F
 GLIBC_2.29 __res_ownok F
 GLIBC_2.29 __res_randomid F
@@ -2592,6 +2594,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
index d94fe24625..f4ae402b6f 100644
--- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
@@ -24,9 +24,7 @@ GLIBC_2.29 __putshort F
 GLIBC_2.29 __res_close F
 GLIBC_2.29 __res_hostalias F
 GLIBC_2.29 __res_isourserver F
-GLIBC_2.29 __res_mkquery F
 GLIBC_2.29 __res_nameinquery F
-GLIBC_2.29 __res_nmkquery F
 GLIBC_2.29 __res_nquery F
 GLIBC_2.29 __res_nquerydomain F
 GLIBC_2.29 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 150f119985..a229d3d5f1 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -17,6 +17,7 @@ GLIBC_2.0 login_tty F
 GLIBC_2.0 logout F
 GLIBC_2.0 logwtmp F
 GLIBC_2.0 openpty F
+GLIBC_2.0 res_mkquery F
 GLIBC_2.1 aio_cancel F
 GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_error F
@@ -427,8 +428,10 @@ GLIBC_2.2 __rcmd_errstr D 0x4
 GLIBC_2.2 __read F
 GLIBC_2.2 __realloc_hook D 0x4
 GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_randomid F
 GLIBC_2.2 __res_state F
@@ -2539,6 +2542,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
index 87c1434919..f2707204ed 100644
--- a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
@@ -42,15 +42,12 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_mkquery F
 GLIBC_2.0 res_query F
 GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_mkquery F
-GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 7bbb872f75..408822e865 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -981,6 +981,7 @@ GLIBC_2.0 remove F
 GLIBC_2.0 remque F
 GLIBC_2.0 rename F
 GLIBC_2.0 res_init F
+GLIBC_2.0 res_mkquery F
 GLIBC_2.0 revoke F
 GLIBC_2.0 rewind F
 GLIBC_2.0 rewinddir F
@@ -1981,8 +1982,10 @@ GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
@@ -2723,6 +2726,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/i386/libresolv.abilist b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
index 87c1434919..f2707204ed 100644
--- a/sysdeps/unix/sysv/linux/i386/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
@@ -42,15 +42,12 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_mkquery F
 GLIBC_2.0 res_query F
 GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_mkquery F
-GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index b4471465ef..d2abb8829e 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -17,6 +17,7 @@ GLIBC_2.0 login_tty F
 GLIBC_2.0 logout F
 GLIBC_2.0 logwtmp F
 GLIBC_2.0 openpty F
+GLIBC_2.0 res_mkquery F
 GLIBC_2.1 aio_cancel F
 GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_error F
@@ -431,8 +432,10 @@ GLIBC_2.2 __rcmd_errstr D 0x8
 GLIBC_2.2 __read F
 GLIBC_2.2 __realloc_hook D 0x8
 GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_randomid F
 GLIBC_2.2 __res_state F
@@ -2498,6 +2501,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
index 9e3b8f8c31..4f5160f474 100644
--- a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
@@ -42,15 +42,12 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_mkquery F
 GLIBC_2.0 res_query F
 GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_mkquery F
-GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index dcf0f0002d..494b8cc0a9 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -445,6 +445,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
@@ -831,8 +833,10 @@ GLIBC_2.4 __res_dnok F
 GLIBC_2.4 __res_hnok F
 GLIBC_2.4 __res_init F
 GLIBC_2.4 __res_mailok F
+GLIBC_2.4 __res_mkquery F
 GLIBC_2.4 __res_nclose F
 GLIBC_2.4 __res_ninit F
+GLIBC_2.4 __res_nmkquery F
 GLIBC_2.4 __res_nsend F
 GLIBC_2.4 __res_ownok F
 GLIBC_2.4 __res_randomid F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
index 722feb80b6..ee4f6a36e9 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
@@ -25,9 +25,7 @@ GLIBC_2.4 __putshort F
 GLIBC_2.4 __res_close F
 GLIBC_2.4 __res_hostalias F
 GLIBC_2.4 __res_isourserver F
-GLIBC_2.4 __res_mkquery F
 GLIBC_2.4 __res_nameinquery F
-GLIBC_2.4 __res_nmkquery F
 GLIBC_2.4 __res_nquery F
 GLIBC_2.4 __res_nquerydomain F
 GLIBC_2.4 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 56722c0f22..7fad70be62 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -980,6 +980,7 @@ GLIBC_2.0 remove F
 GLIBC_2.0 remque F
 GLIBC_2.0 rename F
 GLIBC_2.0 res_init F
+GLIBC_2.0 res_mkquery F
 GLIBC_2.0 revoke F
 GLIBC_2.0 rewind F
 GLIBC_2.0 rewinddir F
@@ -1937,8 +1938,10 @@ GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
@@ -2666,6 +2669,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
index 87c1434919..f2707204ed 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
@@ -42,15 +42,12 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_mkquery F
 GLIBC_2.0 res_query F
 GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_mkquery F
-GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index ee019cae8b..769715e97b 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -385,8 +385,10 @@ GLIBC_2.18 __res_dnok F
 GLIBC_2.18 __res_hnok F
 GLIBC_2.18 __res_init F
 GLIBC_2.18 __res_mailok F
+GLIBC_2.18 __res_mkquery F
 GLIBC_2.18 __res_nclose F
 GLIBC_2.18 __res_ninit F
+GLIBC_2.18 __res_nmkquery F
 GLIBC_2.18 __res_nsend F
 GLIBC_2.18 __res_ownok F
 GLIBC_2.18 __res_randomid F
@@ -2643,6 +2645,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
index a3350181fe..9550bc22e1 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
@@ -25,9 +25,7 @@ GLIBC_2.18 __putshort F
 GLIBC_2.18 __res_close F
 GLIBC_2.18 __res_hostalias F
 GLIBC_2.18 __res_isourserver F
-GLIBC_2.18 __res_mkquery F
 GLIBC_2.18 __res_nameinquery F
-GLIBC_2.18 __res_nmkquery F
 GLIBC_2.18 __res_nquery F
 GLIBC_2.18 __res_nquerydomain F
 GLIBC_2.18 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index e6202e984d..0d3bea192f 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -385,8 +385,10 @@ GLIBC_2.18 __res_dnok F
 GLIBC_2.18 __res_hnok F
 GLIBC_2.18 __res_init F
 GLIBC_2.18 __res_mailok F
+GLIBC_2.18 __res_mkquery F
 GLIBC_2.18 __res_nclose F
 GLIBC_2.18 __res_ninit F
+GLIBC_2.18 __res_nmkquery F
 GLIBC_2.18 __res_nsend F
 GLIBC_2.18 __res_ownok F
 GLIBC_2.18 __res_randomid F
@@ -2640,6 +2642,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
index a3350181fe..9550bc22e1 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
@@ -25,9 +25,7 @@ GLIBC_2.18 __putshort F
 GLIBC_2.18 __res_close F
 GLIBC_2.18 __res_hostalias F
 GLIBC_2.18 __res_isourserver F
-GLIBC_2.18 __res_mkquery F
 GLIBC_2.18 __res_nameinquery F
-GLIBC_2.18 __res_nmkquery F
 GLIBC_2.18 __res_nquery F
 GLIBC_2.18 __res_nquerydomain F
 GLIBC_2.18 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index cc6d7a06b3..da99de9e20 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -977,6 +977,7 @@ GLIBC_2.0 remove F
 GLIBC_2.0 remque F
 GLIBC_2.0 rename F
 GLIBC_2.0 res_init F
+GLIBC_2.0 res_mkquery F
 GLIBC_2.0 revoke F
 GLIBC_2.0 rewind F
 GLIBC_2.0 rewinddir F
@@ -1590,8 +1591,10 @@ GLIBC_2.2 __pthread_rwlock_wrlock F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __rawmemchr F
 GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
@@ -2631,6 +2634,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
index 87c1434919..f2707204ed 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
@@ -42,15 +42,12 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_mkquery F
 GLIBC_2.0 res_query F
 GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_mkquery F
-GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 37e72aa024..eb9e00e1c6 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -977,6 +977,7 @@ GLIBC_2.0 remove F
 GLIBC_2.0 remque F
 GLIBC_2.0 rename F
 GLIBC_2.0 res_init F
+GLIBC_2.0 res_mkquery F
 GLIBC_2.0 revoke F
 GLIBC_2.0 rewind F
 GLIBC_2.0 rewinddir F
@@ -1588,8 +1589,10 @@ GLIBC_2.2 __pthread_rwlock_wrlock F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __rawmemchr F
 GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
@@ -2629,6 +2632,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index ab34c11c0c..843f370721 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -977,6 +977,7 @@ GLIBC_2.0 remove F
 GLIBC_2.0 remque F
 GLIBC_2.0 rename F
 GLIBC_2.0 res_init F
+GLIBC_2.0 res_mkquery F
 GLIBC_2.0 revoke F
 GLIBC_2.0 rewind F
 GLIBC_2.0 rewinddir F
@@ -1588,8 +1589,10 @@ GLIBC_2.2 __pthread_rwlock_wrlock F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __rawmemchr F
 GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
@@ -2637,6 +2640,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
index 87c1434919..f2707204ed 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
@@ -42,15 +42,12 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_mkquery F
 GLIBC_2.0 res_query F
 GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_mkquery F
-GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index ac1d00db89..61c47a53e3 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -975,6 +975,7 @@ GLIBC_2.0 remove F
 GLIBC_2.0 remque F
 GLIBC_2.0 rename F
 GLIBC_2.0 res_init F
+GLIBC_2.0 res_mkquery F
 GLIBC_2.0 revoke F
 GLIBC_2.0 rewind F
 GLIBC_2.0 rewinddir F
@@ -1584,8 +1585,10 @@ GLIBC_2.2 __pthread_rwlock_wrlock F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __rawmemchr F
 GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
@@ -2549,6 +2552,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
index 9e3b8f8c31..4f5160f474 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
@@ -42,15 +42,12 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_mkquery F
 GLIBC_2.0 res_query F
 GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_mkquery F
-GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 5d0ab2b4b5..1f839feeac 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -422,8 +422,10 @@ GLIBC_2.21 __res_dnok F
 GLIBC_2.21 __res_hnok F
 GLIBC_2.21 __res_init F
 GLIBC_2.21 __res_mailok F
+GLIBC_2.21 __res_mkquery F
 GLIBC_2.21 __res_nclose F
 GLIBC_2.21 __res_ninit F
+GLIBC_2.21 __res_nmkquery F
 GLIBC_2.21 __res_nsend F
 GLIBC_2.21 __res_ownok F
 GLIBC_2.21 __res_randomid F
@@ -2682,6 +2684,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
index 48cf067b8b..23c5250a0c 100644
--- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
@@ -25,9 +25,7 @@ GLIBC_2.21 __putshort F
 GLIBC_2.21 __res_close F
 GLIBC_2.21 __res_hostalias F
 GLIBC_2.21 __res_isourserver F
-GLIBC_2.21 __res_mkquery F
 GLIBC_2.21 __res_nameinquery F
-GLIBC_2.21 __res_nmkquery F
 GLIBC_2.21 __res_nquery F
 GLIBC_2.21 __res_nquerydomain F
 GLIBC_2.21 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 40a25c6816..75ba24498d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -988,6 +988,7 @@ GLIBC_2.0 remove F
 GLIBC_2.0 remque F
 GLIBC_2.0 rename F
 GLIBC_2.0 res_init F
+GLIBC_2.0 res_mkquery F
 GLIBC_2.0 revoke F
 GLIBC_2.0 rewind F
 GLIBC_2.0 rewinddir F
@@ -1943,8 +1944,10 @@ GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
@@ -2693,6 +2696,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
index 87c1434919..f2707204ed 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
@@ -42,15 +42,12 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_mkquery F
 GLIBC_2.0 res_query F
 GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_mkquery F
-GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 322e7d49c0..2020450b53 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -988,6 +988,7 @@ GLIBC_2.0 remove F
 GLIBC_2.0 remque F
 GLIBC_2.0 rename F
 GLIBC_2.0 res_init F
+GLIBC_2.0 res_mkquery F
 GLIBC_2.0 revoke F
 GLIBC_2.0 rewind F
 GLIBC_2.0 rewinddir F
@@ -1947,8 +1948,10 @@ GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
@@ -2726,6 +2729,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 8242ca505f..67f0228db0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -468,8 +468,10 @@ GLIBC_2.3 __res_dnok F
 GLIBC_2.3 __res_hnok F
 GLIBC_2.3 __res_init F
 GLIBC_2.3 __res_mailok F
+GLIBC_2.3 __res_mkquery F
 GLIBC_2.3 __res_nclose F
 GLIBC_2.3 __res_ninit F
+GLIBC_2.3 __res_nmkquery F
 GLIBC_2.3 __res_nsend F
 GLIBC_2.3 __res_ownok F
 GLIBC_2.3 __res_randomid F
@@ -2461,6 +2463,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
index 708f9cd1d8..4d1fb69bc6 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
@@ -24,9 +24,7 @@ GLIBC_2.3 __putshort F
 GLIBC_2.3 __res_close F
 GLIBC_2.3 __res_hostalias F
 GLIBC_2.3 __res_isourserver F
-GLIBC_2.3 __res_mkquery F
 GLIBC_2.3 __res_nameinquery F
-GLIBC_2.3 __res_nmkquery F
 GLIBC_2.3 __res_nquery F
 GLIBC_2.3 __res_nquerydomain F
 GLIBC_2.3 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 36473c1832..c4f1220cce 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -470,8 +470,10 @@ GLIBC_2.17 __res_dnok F
 GLIBC_2.17 __res_hnok F
 GLIBC_2.17 __res_init F
 GLIBC_2.17 __res_mailok F
+GLIBC_2.17 __res_mkquery F
 GLIBC_2.17 __res_nclose F
 GLIBC_2.17 __res_ninit F
+GLIBC_2.17 __res_nmkquery F
 GLIBC_2.17 __res_nsend F
 GLIBC_2.17 __res_ownok F
 GLIBC_2.17 __res_randomid F
@@ -2763,6 +2765,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
index d071a2c5ef..702d13c633 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
@@ -25,9 +25,7 @@ GLIBC_2.17 __putshort F
 GLIBC_2.17 __res_close F
 GLIBC_2.17 __res_hostalias F
 GLIBC_2.17 __res_isourserver F
-GLIBC_2.17 __res_mkquery F
 GLIBC_2.17 __res_nameinquery F
-GLIBC_2.17 __res_nmkquery F
 GLIBC_2.17 __res_nquery F
 GLIBC_2.17 __res_nquerydomain F
 GLIBC_2.17 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index c092350f1b..3ea1998b5e 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -370,8 +370,10 @@ GLIBC_2.33 __res_dnok F
 GLIBC_2.33 __res_hnok F
 GLIBC_2.33 __res_init F
 GLIBC_2.33 __res_mailok F
+GLIBC_2.33 __res_mkquery F
 GLIBC_2.33 __res_nclose F
 GLIBC_2.33 __res_ninit F
+GLIBC_2.33 __res_nmkquery F
 GLIBC_2.33 __res_nsend F
 GLIBC_2.33 __res_ownok F
 GLIBC_2.33 __res_randomid F
@@ -2328,6 +2330,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
index bd9a317d8d..50daff9908 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
@@ -24,9 +24,7 @@ GLIBC_2.33 __putshort F
 GLIBC_2.33 __res_close F
 GLIBC_2.33 __res_hostalias F
 GLIBC_2.33 __res_isourserver F
-GLIBC_2.33 __res_mkquery F
 GLIBC_2.33 __res_nameinquery F
-GLIBC_2.33 __res_nmkquery F
 GLIBC_2.33 __res_nquery F
 GLIBC_2.33 __res_nquerydomain F
 GLIBC_2.33 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 23036032e2..219afb5303 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -381,8 +381,10 @@ GLIBC_2.27 __res_dnok F
 GLIBC_2.27 __res_hnok F
 GLIBC_2.27 __res_init F
 GLIBC_2.27 __res_mailok F
+GLIBC_2.27 __res_mkquery F
 GLIBC_2.27 __res_nclose F
 GLIBC_2.27 __res_ninit F
+GLIBC_2.27 __res_nmkquery F
 GLIBC_2.27 __res_nsend F
 GLIBC_2.27 __res_ownok F
 GLIBC_2.27 __res_randomid F
@@ -2528,6 +2530,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
index e40b11fe0f..050ca355e2 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
@@ -24,9 +24,7 @@ GLIBC_2.27 __putshort F
 GLIBC_2.27 __res_close F
 GLIBC_2.27 __res_hostalias F
 GLIBC_2.27 __res_isourserver F
-GLIBC_2.27 __res_mkquery F
 GLIBC_2.27 __res_nameinquery F
-GLIBC_2.27 __res_nmkquery F
 GLIBC_2.27 __res_nquery F
 GLIBC_2.27 __res_nquerydomain F
 GLIBC_2.27 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 5ed84830cb..ae30dee1f9 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -979,6 +979,7 @@ GLIBC_2.0 remove F
 GLIBC_2.0 remque F
 GLIBC_2.0 rename F
 GLIBC_2.0 res_init F
+GLIBC_2.0 res_mkquery F
 GLIBC_2.0 revoke F
 GLIBC_2.0 rewind F
 GLIBC_2.0 rewinddir F
@@ -1941,8 +1942,10 @@ GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
@@ -2691,6 +2694,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
index 87c1434919..f2707204ed 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
@@ -42,15 +42,12 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_mkquery F
 GLIBC_2.0 res_query F
 GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_mkquery F
-GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 13372d9c85..46078077aa 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -412,8 +412,10 @@ GLIBC_2.2 __res_dnok F
 GLIBC_2.2 __res_hnok F
 GLIBC_2.2 __res_init F
 GLIBC_2.2 __res_mailok F
+GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_ownok F
 GLIBC_2.2 __res_randomid F
@@ -2498,6 +2500,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
index f1c523177b..3b8ffd2766 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
@@ -24,9 +24,7 @@ GLIBC_2.2 __putshort F
 GLIBC_2.2 __res_close F
 GLIBC_2.2 __res_hostalias F
 GLIBC_2.2 __res_isourserver F
-GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nameinquery F
-GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index ec0f690bb0..77d694ca2f 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -21,6 +21,7 @@ GLIBC_2.0 login_tty F
 GLIBC_2.0 logout F
 GLIBC_2.0 logwtmp F
 GLIBC_2.0 openpty F
+GLIBC_2.0 res_mkquery F
 GLIBC_2.1 aio_cancel F
 GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_error F
@@ -431,8 +432,10 @@ GLIBC_2.2 __read F
 GLIBC_2.2 __realloc_hook D 0x4
 GLIBC_2.2 __register_frame_info F
 GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_randomid F
 GLIBC_2.2 __res_state F
@@ -2546,6 +2549,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
index 87c1434919..f2707204ed 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
@@ -42,15 +42,12 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_mkquery F
 GLIBC_2.0 res_query F
 GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_mkquery F
-GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 375372f0ff..3a2b27f2d4 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -21,6 +21,7 @@ GLIBC_2.0 login_tty F
 GLIBC_2.0 logout F
 GLIBC_2.0 logwtmp F
 GLIBC_2.0 openpty F
+GLIBC_2.0 res_mkquery F
 GLIBC_2.1 aio_cancel F
 GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_error F
@@ -431,8 +432,10 @@ GLIBC_2.2 __read F
 GLIBC_2.2 __realloc_hook D 0x4
 GLIBC_2.2 __register_frame_info F
 GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_randomid F
 GLIBC_2.2 __res_state F
@@ -2543,6 +2546,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
index 87c1434919..f2707204ed 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
@@ -42,15 +42,12 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_mkquery F
 GLIBC_2.0 res_query F
 GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_mkquery F
-GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index e761671120..78c3540559 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -982,6 +982,7 @@ GLIBC_2.0 remove F
 GLIBC_2.0 remque F
 GLIBC_2.0 rename F
 GLIBC_2.0 res_init F
+GLIBC_2.0 res_mkquery F
 GLIBC_2.0 revoke F
 GLIBC_2.0 rewind F
 GLIBC_2.0 rewinddir F
@@ -1939,8 +1940,10 @@ GLIBC_2.2 __pthread_rwlock_unlock F
 GLIBC_2.2 __pthread_rwlock_wrlock F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
@@ -2686,6 +2689,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
index 87c1434919..f2707204ed 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
@@ -42,15 +42,12 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_mkquery F
 GLIBC_2.0 res_query F
 GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_mkquery F
-GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 7e6db6fafe..8c080d6d18 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -21,6 +21,7 @@ GLIBC_2.0 login_tty F
 GLIBC_2.0 logout F
 GLIBC_2.0 logwtmp F
 GLIBC_2.0 openpty F
+GLIBC_2.0 res_mkquery F
 GLIBC_2.1 aio_cancel F
 GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_error F
@@ -472,8 +473,10 @@ GLIBC_2.2 __register_frame_info F
 GLIBC_2.2 __register_frame_info_table F
 GLIBC_2.2 __register_frame_table F
 GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_randomid F
 GLIBC_2.2 __res_state F
@@ -2521,6 +2524,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
index 9e3b8f8c31..4f5160f474 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
@@ -42,15 +42,12 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_mkquery F
 GLIBC_2.0 res_query F
 GLIBC_2.0 res_querydomain F
 GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_mkquery F
-GLIBC_2.2 __res_nmkquery F
 GLIBC_2.2 __res_nquery F
 GLIBC_2.2 __res_nquerydomain F
 GLIBC_2.2 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 3a4df00064..e8f210d449 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -396,8 +396,10 @@ GLIBC_2.2.5 __res_dnok F
 GLIBC_2.2.5 __res_hnok F
 GLIBC_2.2.5 __res_init F
 GLIBC_2.2.5 __res_mailok F
+GLIBC_2.2.5 __res_mkquery F
 GLIBC_2.2.5 __res_nclose F
 GLIBC_2.2.5 __res_ninit F
+GLIBC_2.2.5 __res_nmkquery F
 GLIBC_2.2.5 __res_nsend F
 GLIBC_2.2.5 __res_ownok F
 GLIBC_2.2.5 __res_randomid F
@@ -2476,6 +2478,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
index dd49cbe641..e2a6207778 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
@@ -24,9 +24,7 @@ GLIBC_2.2.5 __putshort F
 GLIBC_2.2.5 __res_close F
 GLIBC_2.2.5 __res_hostalias F
 GLIBC_2.2.5 __res_isourserver F
-GLIBC_2.2.5 __res_mkquery F
 GLIBC_2.2.5 __res_nameinquery F
-GLIBC_2.2.5 __res_nmkquery F
 GLIBC_2.2.5 __res_nquery F
 GLIBC_2.2.5 __res_nquerydomain F
 GLIBC_2.2.5 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 108d816493..1eb7bd764f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -385,8 +385,10 @@ GLIBC_2.16 __res_dnok F
 GLIBC_2.16 __res_hnok F
 GLIBC_2.16 __res_init F
 GLIBC_2.16 __res_mailok F
+GLIBC_2.16 __res_mkquery F
 GLIBC_2.16 __res_nclose F
 GLIBC_2.16 __res_ninit F
+GLIBC_2.16 __res_nmkquery F
 GLIBC_2.16 __res_nsend F
 GLIBC_2.16 __res_ownok F
 GLIBC_2.16 __res_randomid F
@@ -2582,6 +2584,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
index 298baa250e..b7564c49cc 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
@@ -25,9 +25,7 @@ GLIBC_2.16 __putshort F
 GLIBC_2.16 __res_close F
 GLIBC_2.16 __res_hostalias F
 GLIBC_2.16 __res_isourserver F
-GLIBC_2.16 __res_mkquery F
 GLIBC_2.16 __res_nameinquery F
-GLIBC_2.16 __res_nmkquery F
 GLIBC_2.16 __res_nquery F
 GLIBC_2.16 __res_nquerydomain F
 GLIBC_2.16 __res_nsearch F
-- 
2.31.1



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

* [PATCH 28/30] resolv: Move res_query functions into libc
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (26 preceding siblings ...)
  2021-07-02 18:49 ` [PATCH 27/30] resolv: Move res_mkquery, res_nmkquery " Florian Weimer
@ 2021-07-02 18:49 ` Florian Weimer
  2021-07-02 18:49 ` [PATCH 29/30] resolv: Move nss_dns " Florian Weimer
  2021-07-02 18:50 ` [PATCH 30/30] nss: Directly load nss_dns, without going through dlsym/dlopen Florian Weimer
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:49 UTC (permalink / raw)
  To: libc-alpha

This switches to public symbols without __ prefixes, due to improved
namespace management in glibc.

The script was used with --no-new-version to move the symbols
__res_nquery, __res_nquerydomain, __res_nsearch, __res_query,
__res_querydomain, __res_search, res_query, res_querydomain,
res_search.  The public symbols res_nquery, res_nquerydomain,
res_nsearch, res_ownok, res_query, res_querydomain, res_search
were added with make update-all-abi.
---
 resolv/Makefile                               |  2 +-
 resolv/Versions                               | 28 +++---
 resolv/res_query.c                            | 88 ++++++++++++-------
 resolv/resolv-internal.h                      |  4 +-
 resolv/resolv.h                               |  6 --
 sysdeps/mach/hurd/i386/libc.abilist           | 12 +++
 sysdeps/mach/hurd/i386/libresolv.abilist      |  6 --
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  | 12 +++
 .../unix/sysv/linux/aarch64/libresolv.abilist |  6 --
 sysdeps/unix/sysv/linux/alpha/libc.abilist    | 15 ++++
 .../unix/sysv/linux/alpha/libresolv.abilist   |  9 --
 sysdeps/unix/sysv/linux/arc/libc.abilist      | 12 +++
 sysdeps/unix/sysv/linux/arc/libresolv.abilist |  6 --
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   | 12 +++
 .../unix/sysv/linux/arm/be/libresolv.abilist  |  6 --
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   | 12 +++
 .../unix/sysv/linux/arm/le/libresolv.abilist  |  6 --
 sysdeps/unix/sysv/linux/csky/libc.abilist     | 12 +++
 .../unix/sysv/linux/csky/libresolv.abilist    |  6 --
 sysdeps/unix/sysv/linux/hppa/libc.abilist     | 15 ++++
 .../unix/sysv/linux/hppa/libresolv.abilist    |  9 --
 sysdeps/unix/sysv/linux/i386/libc.abilist     | 15 ++++
 .../unix/sysv/linux/i386/libresolv.abilist    |  9 --
 sysdeps/unix/sysv/linux/ia64/libc.abilist     | 15 ++++
 .../unix/sysv/linux/ia64/libresolv.abilist    |  9 --
 .../sysv/linux/m68k/coldfire/libc.abilist     | 12 +++
 .../linux/m68k/coldfire/libresolv.abilist     |  6 --
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  | 15 ++++
 .../sysv/linux/m68k/m680x0/libresolv.abilist  |  9 --
 .../sysv/linux/microblaze/be/libc.abilist     | 12 +++
 .../linux/microblaze/be/libresolv.abilist     |  6 --
 .../sysv/linux/microblaze/le/libc.abilist     | 12 +++
 .../linux/microblaze/le/libresolv.abilist     |  6 --
 .../sysv/linux/mips/mips32/fpu/libc.abilist   | 15 ++++
 .../sysv/linux/mips/mips32/libresolv.abilist  |  9 --
 .../sysv/linux/mips/mips32/nofpu/libc.abilist | 15 ++++
 .../sysv/linux/mips/mips64/n32/libc.abilist   | 15 ++++
 .../linux/mips/mips64/n32/libresolv.abilist   |  9 --
 .../sysv/linux/mips/mips64/n64/libc.abilist   | 15 ++++
 .../linux/mips/mips64/n64/libresolv.abilist   |  9 --
 sysdeps/unix/sysv/linux/nios2/libc.abilist    | 12 +++
 .../unix/sysv/linux/nios2/libresolv.abilist   |  6 --
 .../linux/powerpc/powerpc32/fpu/libc.abilist  | 15 ++++
 .../linux/powerpc/powerpc32/libresolv.abilist |  9 --
 .../powerpc/powerpc32/nofpu/libc.abilist      | 15 ++++
 .../linux/powerpc/powerpc64/be/libc.abilist   | 12 +++
 .../powerpc/powerpc64/be/libresolv.abilist    |  6 --
 .../linux/powerpc/powerpc64/le/libc.abilist   | 12 +++
 .../powerpc/powerpc64/le/libresolv.abilist    |  6 --
 .../unix/sysv/linux/riscv/rv32/libc.abilist   | 12 +++
 .../sysv/linux/riscv/rv32/libresolv.abilist   |  6 --
 .../unix/sysv/linux/riscv/rv64/libc.abilist   | 12 +++
 .../sysv/linux/riscv/rv64/libresolv.abilist   |  6 --
 .../unix/sysv/linux/s390/s390-32/libc.abilist | 15 ++++
 .../sysv/linux/s390/s390-32/libresolv.abilist |  9 --
 .../unix/sysv/linux/s390/s390-64/libc.abilist | 12 +++
 .../sysv/linux/s390/s390-64/libresolv.abilist |  6 --
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    | 15 ++++
 .../unix/sysv/linux/sh/be/libresolv.abilist   |  9 --
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    | 15 ++++
 .../unix/sysv/linux/sh/le/libresolv.abilist   |  9 --
 .../sysv/linux/sparc/sparc32/libc.abilist     | 15 ++++
 .../linux/sparc/sparc32/libresolv.abilist     |  9 --
 .../sysv/linux/sparc/sparc64/libc.abilist     | 15 ++++
 .../linux/sparc/sparc64/libresolv.abilist     |  9 --
 .../unix/sysv/linux/x86_64/64/libc.abilist    | 12 +++
 .../sysv/linux/x86_64/64/libresolv.abilist    |  6 --
 .../unix/sysv/linux/x86_64/x32/libc.abilist   | 12 +++
 .../sysv/linux/x86_64/x32/libresolv.abilist   |  6 --
 69 files changed, 520 insertions(+), 280 deletions(-)

diff --git a/resolv/Makefile b/resolv/Makefile
index 31658202d3..4ba58dfa96 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -57,6 +57,7 @@ routines := \
   res_mkquery \
   res_nameinquery \
   res_queriesmatch \
+  res_query \
   res_randomid \
   res_send \
   resolv_conf \
@@ -156,7 +157,6 @@ libresolv-routines := \
   res_debug \
   res_hostalias \
   res_isourserver \
-  res_query \
   resolv-deprecated \
   # libresolv-routines
 
diff --git a/resolv/Versions b/resolv/Versions
index fcaf9fada7..f8b7700a1e 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -18,6 +18,9 @@ libc {
     hstrerror;
     res_init;
     res_mkquery;
+    res_query;
+    res_querydomain;
+    res_search;
   }
   GLIBC_2.2 {
     __dn_expand;
@@ -26,7 +29,13 @@ libc {
     __res_nclose;
     __res_ninit;
     __res_nmkquery;
+    __res_nquery;
+    __res_nquerydomain;
+    __res_nsearch;
     __res_nsend;
+    __res_query;
+    __res_querydomain;
+    __res_search;
     __res_state;
     _res_hconf;
   }
@@ -69,8 +78,14 @@ libc {
     res_mailok;
     res_mkquery;
     res_nmkquery;
+    res_nquery;
+    res_nquerydomain;
+    res_nsearch;
     res_nsend;
     res_ownok;
+    res_query;
+    res_querydomain;
+    res_search;
     res_send;
   }
   GLIBC_PRIVATE {
@@ -97,6 +112,8 @@ libc {
     __ns_name_unpack;
     __res_context_hostalias;
     __res_context_mkquery;
+    __res_context_query;
+    __res_context_search;
     __res_context_send;
     __res_context_send;
     __res_get_nsaddr;
@@ -158,20 +175,11 @@ libresolv {
     res_gethostbyaddr;
     res_gethostbyname2;
     res_gethostbyname;
-    res_query;
-    res_querydomain;
-    res_search;
     res_send_setqhook;
     res_send_setrhook;
   }
   GLIBC_2.2 {
     __res_hostalias;
-    __res_nquery;
-    __res_nquerydomain;
-    __res_nsearch;
-    __res_query;
-    __res_querydomain;
-    __res_search;
   }
   GLIBC_2.3.2 {
     __p_rcode;
@@ -202,8 +210,6 @@ libresolv {
   GLIBC_PRIVATE {
     __ns_get16;
     __ns_get32;
-    __res_context_query;
-    __res_context_search;
   }
 }
 
diff --git a/resolv/res_query.c b/resolv/res_query.c
index 2457193d31..75b0e5f2f7 100644
--- a/resolv/res_query.c
+++ b/resolv/res_query.c
@@ -276,7 +276,7 @@ __res_context_query (struct resolv_context *ctx, const char *name,
  success:
 	return (n);
 }
-libresolv_hidden_def (__res_context_query)
+libc_hidden_def (__res_context_query)
 
 /* Common part of res_nquery and res_query.  */
 static int
@@ -296,23 +296,34 @@ context_query_common (struct resolv_context *ctx,
 }
 
 int
-res_nquery(res_state statp,
-	   const char *name,	/* domain name */
-	   int class, int type,	/* class and type of query */
-	   u_char *answer,	/* buffer to put answer */
-	   int anslen)		/* size of answer buffer */
+___res_nquery (res_state statp,
+	       const char *name,      /* Domain name.  */
+	       int class, int type,   /* Class and type of query.  */
+	       unsigned char *answer, /* Buffer to put answer.  */
+	       int anslen)	      /* Size of answer buffer.  */
 {
   return context_query_common
     (__resolv_context_get_override (statp), name, class, type, answer, anslen);
 }
+versioned_symbol (libc, ___res_nquery, res_nquery, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_nquery, __res_nquery, GLIBC_2_2);
+#endif
 
 int
-res_query (const char *name, int class, int type,
-	   unsigned char *answer, int anslen)
+___res_query (const char *name, int class, int type,
+	      unsigned char *answer, int anslen)
 {
   return context_query_common
     (__resolv_context_get (), name, class, type, answer, anslen);
 }
+versioned_symbol (libc, ___res_query, res_query, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_2)
+compat_symbol (libresolv, ___res_query, res_query, GLIBC_2_0);
+#endif
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_query, __res_query, GLIBC_2_2);
+#endif
 
 /* Formulate a normal query, send, and retrieve answer in supplied
    buffer.  Return the size of the response on success, -1 on error.
@@ -515,7 +526,7 @@ __res_context_search (struct resolv_context *ctx,
 		RES_SET_H_ERRNO(statp, TRY_AGAIN);
 	return (-1);
 }
-libresolv_hidden_def (__res_context_search)
+libc_hidden_def (__res_context_search)
 
 /* Common part of res_nsearch and res_search.  */
 static int
@@ -535,23 +546,34 @@ context_search_common (struct resolv_context *ctx,
 }
 
 int
-res_nsearch(res_state statp,
-	    const char *name,	/* domain name */
-	    int class, int type,	/* class and type of query */
-	    u_char *answer,	/* buffer to put answer */
-	    int anslen)		/* size of answer */
+___res_nsearch (res_state statp,
+		const char *name,      /* Domain name.  */
+		int class, int type,   /* Class and type of query.  */
+		unsigned char *answer, /* Buffer to put answer.  */
+		int anslen)	       /* Size of answer.  */
 {
   return context_search_common
     (__resolv_context_get_override (statp), name, class, type, answer, anslen);
 }
+versioned_symbol (libc, ___res_nsearch, res_nsearch, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_nsearch, __res_nsearch, GLIBC_2_2);
+#endif
 
 int
-res_search (const char *name, int class, int type,
-	    unsigned char *answer, int anslen)
+___res_search (const char *name, int class, int type,
+	       unsigned char *answer, int anslen)
 {
   return context_search_common
     (__resolv_context_get (), name, class, type, answer, anslen);
 }
+versioned_symbol (libc, ___res_search, res_search, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_2)
+compat_symbol (libresolv, ___res_search, res_search, GLIBC_2_0);
+#endif
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_search, __res_search, GLIBC_2_2);
+#endif
 
 /*  Perform a call on res_query on the concatenation of name and
     domain.  */
@@ -615,31 +637,33 @@ context_querydomain_common (struct resolv_context *ctx,
 }
 
 int
-res_nquerydomain(res_state statp,
-	    const char *name,
-	    const char *domain,
-	    int class, int type,	/* class and type of query */
-	    u_char *answer,		/* buffer to put answer */
-	    int anslen)		/* size of answer */
+___res_nquerydomain (res_state statp,
+		     const char *name,
+		     const char *domain,
+		     int class, int type, /* Class and type of query.  */
+		     unsigned char *answer, /* Buffer to put answer.  */
+		     int anslen)	    /* Size of answer.  */
 {
   return context_querydomain_common
     (__resolv_context_get_override (statp),
      name, domain, class, type, answer, anslen);
 }
+versioned_symbol (libc, ___res_nquerydomain, res_nquerydomain, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_nquerydomain, __res_nquerydomain, GLIBC_2_2);
+#endif
 
 int
-res_querydomain (const char *name, const char *domain, int class, int type,
-		 unsigned char *answer, int anslen)
+___res_querydomain (const char *name, const char *domain, int class, int type,
+		    unsigned char *answer, int anslen)
 {
   return context_querydomain_common
     (__resolv_context_get (), name, domain, class, type, answer, anslen);
 }
-
-#if SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_2)
-# undef res_query
-# undef res_querydomain
-# undef res_search
-weak_alias (__res_query, res_query);
-weak_alias (__res_querydomain, res_querydomain);
-weak_alias (__res_search, res_search);
+versioned_symbol (libc, ___res_querydomain, res_querydomain, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_2)
+compat_symbol (libresolv, ___res_querydomain, res_querydomain, GLIBC_2_0);
+#endif
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_querydomain, __res_querydomain, GLIBC_2_2);
 #endif
diff --git a/resolv/resolv-internal.h b/resolv/resolv-internal.h
index 3cf8a77698..216e47ed42 100644
--- a/resolv/resolv-internal.h
+++ b/resolv/resolv-internal.h
@@ -62,13 +62,13 @@ libc_hidden_proto (__res_context_mkquery)
 int __res_context_search (struct resolv_context *, const char *, int, int,
                           unsigned char *, int, unsigned char **,
                           unsigned char **, int *, int *, int *);
-libresolv_hidden_proto (__res_context_search)
+libc_hidden_proto (__res_context_search)
 
 /* Main resolver query function for use within glibc.  */
 int __res_context_query (struct resolv_context *, const char *, int, int,
                          unsigned char *, int, unsigned char **,
                          unsigned char **, int *, int *, int *);
-libresolv_hidden_proto (__res_context_query)
+libc_hidden_proto (__res_context_query)
 
 /* Internal function used to implement the query and search
    functions.  */
diff --git a/resolv/resolv.h b/resolv/resolv.h
index e50b8d08d7..f2a8641e82 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -168,9 +168,6 @@ __END_DECLS
 #define res_close		__res_close
 #define res_init		__res_init
 #define res_isourserver		__res_isourserver
-#define res_query		__res_query
-#define res_querydomain		__res_querydomain
-#define res_search		__res_search
 
 #ifdef _LIBC
 # define __RESOLV_DEPRECATED
@@ -227,9 +224,6 @@ __END_DECLS
 #define res_nameinquery		__res_nameinquery
 #define res_nclose		__res_nclose
 #define res_ninit		__res_ninit
-#define res_nquery		__res_nquery
-#define res_nquerydomain	__res_nquerydomain
-#define res_nsearch		__res_nsearch
 #define res_queriesmatch	__res_queriesmatch
 #define res_randomid		__res_randomid
 #define sym_ntop		__sym_ntop
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 092f1b8ffb..db955bd396 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -409,9 +409,15 @@ GLIBC_2.2.6 __res_mkquery F
 GLIBC_2.2.6 __res_nclose F
 GLIBC_2.2.6 __res_ninit F
 GLIBC_2.2.6 __res_nmkquery F
+GLIBC_2.2.6 __res_nquery F
+GLIBC_2.2.6 __res_nquerydomain F
+GLIBC_2.2.6 __res_nsearch F
 GLIBC_2.2.6 __res_nsend F
 GLIBC_2.2.6 __res_ownok F
+GLIBC_2.2.6 __res_query F
+GLIBC_2.2.6 __res_querydomain F
 GLIBC_2.2.6 __res_randomid F
+GLIBC_2.2.6 __res_search F
 GLIBC_2.2.6 __res_send F
 GLIBC_2.2.6 __res_state F
 GLIBC_2.2.6 __rpc_thread_createerr F
@@ -2267,8 +2273,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 shm_open F
 GLIBC_2.34 shm_unlink F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index 3ef54cc28e..8b633891cf 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -25,13 +25,7 @@ GLIBC_2.2.6 __res_close F
 GLIBC_2.2.6 __res_hostalias F
 GLIBC_2.2.6 __res_isourserver F
 GLIBC_2.2.6 __res_nameinquery F
-GLIBC_2.2.6 __res_nquery F
-GLIBC_2.2.6 __res_nquerydomain F
-GLIBC_2.2.6 __res_nsearch F
 GLIBC_2.2.6 __res_queriesmatch F
-GLIBC_2.2.6 __res_query F
-GLIBC_2.2.6 __res_querydomain F
-GLIBC_2.2.6 __res_search F
 GLIBC_2.2.6 __sym_ntop F
 GLIBC_2.2.6 __sym_ntos F
 GLIBC_2.2.6 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 69669a0e7c..8c636a91de 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -388,9 +388,15 @@ GLIBC_2.17 __res_mkquery F
 GLIBC_2.17 __res_nclose F
 GLIBC_2.17 __res_ninit F
 GLIBC_2.17 __res_nmkquery F
+GLIBC_2.17 __res_nquery F
+GLIBC_2.17 __res_nquerydomain F
+GLIBC_2.17 __res_nsearch F
 GLIBC_2.17 __res_nsend F
 GLIBC_2.17 __res_ownok F
+GLIBC_2.17 __res_query F
+GLIBC_2.17 __res_querydomain F
 GLIBC_2.17 __res_randomid F
+GLIBC_2.17 __res_search F
 GLIBC_2.17 __res_send F
 GLIBC_2.17 __res_state F
 GLIBC_2.17 __rpc_thread_createerr F
@@ -2571,8 +2577,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
index 702d13c633..3d4bfe3179 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
@@ -26,13 +26,7 @@ GLIBC_2.17 __res_close F
 GLIBC_2.17 __res_hostalias F
 GLIBC_2.17 __res_isourserver F
 GLIBC_2.17 __res_nameinquery F
-GLIBC_2.17 __res_nquery F
-GLIBC_2.17 __res_nquerydomain F
-GLIBC_2.17 __res_nsearch F
 GLIBC_2.17 __res_queriesmatch F
-GLIBC_2.17 __res_query F
-GLIBC_2.17 __res_querydomain F
-GLIBC_2.17 __res_search F
 GLIBC_2.17 __sym_ntop F
 GLIBC_2.17 __sym_ntos F
 GLIBC_2.17 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 080dc715cd..ddb1eaf57f 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1005,6 +1005,9 @@ GLIBC_2.0 remque F
 GLIBC_2.0 rename F
 GLIBC_2.0 res_init F
 GLIBC_2.0 res_mkquery F
+GLIBC_2.0 res_query F
+GLIBC_2.0 res_querydomain F
+GLIBC_2.0 res_search F
 GLIBC_2.0 revoke F
 GLIBC_2.0 rewind F
 GLIBC_2.0 rewinddir F
@@ -1982,7 +1985,13 @@ GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
 GLIBC_2.2 __res_nmkquery F
+GLIBC_2.2 __res_nquery F
+GLIBC_2.2 __res_nquerydomain F
+GLIBC_2.2 __res_nsearch F
 GLIBC_2.2 __res_nsend F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
+GLIBC_2.2 __res_search F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
 GLIBC_2.2 __statfs F
@@ -2665,8 +2674,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
index 4f5160f474..8325eae8a5 100644
--- a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
@@ -42,18 +42,9 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_query F
-GLIBC_2.0 res_querydomain F
-GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_nquery F
-GLIBC_2.2 __res_nquerydomain F
-GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_query F
-GLIBC_2.2 __res_querydomain F
-GLIBC_2.2 __res_search F
 GLIBC_2.3.2 __p_rcode F
 GLIBC_2.9 ns_datetosecs F
 GLIBC_2.9 ns_format_ttl F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index c348727faa..3653b1d40a 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -377,9 +377,15 @@ GLIBC_2.32 __res_mkquery F
 GLIBC_2.32 __res_nclose F
 GLIBC_2.32 __res_ninit F
 GLIBC_2.32 __res_nmkquery F
+GLIBC_2.32 __res_nquery F
+GLIBC_2.32 __res_nquerydomain F
+GLIBC_2.32 __res_nsearch F
 GLIBC_2.32 __res_nsend F
 GLIBC_2.32 __res_ownok F
+GLIBC_2.32 __res_query F
+GLIBC_2.32 __res_querydomain F
 GLIBC_2.32 __res_randomid F
+GLIBC_2.32 __res_search F
 GLIBC_2.32 __res_send F
 GLIBC_2.32 __res_state F
 GLIBC_2.32 __sbrk F
@@ -2330,8 +2336,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
index ee92f2ae58..47c5072f61 100644
--- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
@@ -25,13 +25,7 @@ GLIBC_2.32 __res_close F
 GLIBC_2.32 __res_hostalias F
 GLIBC_2.32 __res_isourserver F
 GLIBC_2.32 __res_nameinquery F
-GLIBC_2.32 __res_nquery F
-GLIBC_2.32 __res_nquerydomain F
-GLIBC_2.32 __res_nsearch F
 GLIBC_2.32 __res_queriesmatch F
-GLIBC_2.32 __res_query F
-GLIBC_2.32 __res_querydomain F
-GLIBC_2.32 __res_search F
 GLIBC_2.32 __sym_ntop F
 GLIBC_2.32 __sym_ntos F
 GLIBC_2.32 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index db6b437b54..3fc7e590cc 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -446,8 +446,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
@@ -851,9 +857,15 @@ GLIBC_2.4 __res_mkquery F
 GLIBC_2.4 __res_nclose F
 GLIBC_2.4 __res_ninit F
 GLIBC_2.4 __res_nmkquery F
+GLIBC_2.4 __res_nquery F
+GLIBC_2.4 __res_nquerydomain F
+GLIBC_2.4 __res_nsearch F
 GLIBC_2.4 __res_nsend F
 GLIBC_2.4 __res_ownok F
+GLIBC_2.4 __res_query F
+GLIBC_2.4 __res_querydomain F
 GLIBC_2.4 __res_randomid F
+GLIBC_2.4 __res_search F
 GLIBC_2.4 __res_send F
 GLIBC_2.4 __res_state F
 GLIBC_2.4 __rpc_thread_createerr F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
index ee4f6a36e9..06018c2f04 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
@@ -26,13 +26,7 @@ GLIBC_2.4 __res_close F
 GLIBC_2.4 __res_hostalias F
 GLIBC_2.4 __res_isourserver F
 GLIBC_2.4 __res_nameinquery F
-GLIBC_2.4 __res_nquery F
-GLIBC_2.4 __res_nquerydomain F
-GLIBC_2.4 __res_nsearch F
 GLIBC_2.4 __res_queriesmatch F
-GLIBC_2.4 __res_query F
-GLIBC_2.4 __res_querydomain F
-GLIBC_2.4 __res_search F
 GLIBC_2.4 __sym_ntop F
 GLIBC_2.4 __sym_ntos F
 GLIBC_2.4 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 2fdab7ae14..4bd6fafd00 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -443,8 +443,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
@@ -848,9 +854,15 @@ GLIBC_2.4 __res_mkquery F
 GLIBC_2.4 __res_nclose F
 GLIBC_2.4 __res_ninit F
 GLIBC_2.4 __res_nmkquery F
+GLIBC_2.4 __res_nquery F
+GLIBC_2.4 __res_nquerydomain F
+GLIBC_2.4 __res_nsearch F
 GLIBC_2.4 __res_nsend F
 GLIBC_2.4 __res_ownok F
+GLIBC_2.4 __res_query F
+GLIBC_2.4 __res_querydomain F
 GLIBC_2.4 __res_randomid F
+GLIBC_2.4 __res_search F
 GLIBC_2.4 __res_send F
 GLIBC_2.4 __res_state F
 GLIBC_2.4 __rpc_thread_createerr F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
index ee4f6a36e9..06018c2f04 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
@@ -26,13 +26,7 @@ GLIBC_2.4 __res_close F
 GLIBC_2.4 __res_hostalias F
 GLIBC_2.4 __res_isourserver F
 GLIBC_2.4 __res_nameinquery F
-GLIBC_2.4 __res_nquery F
-GLIBC_2.4 __res_nquerydomain F
-GLIBC_2.4 __res_nsearch F
 GLIBC_2.4 __res_queriesmatch F
-GLIBC_2.4 __res_query F
-GLIBC_2.4 __res_querydomain F
-GLIBC_2.4 __res_search F
 GLIBC_2.4 __sym_ntop F
 GLIBC_2.4 __sym_ntos F
 GLIBC_2.4 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 9aaf7b0233..c23fc41846 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -381,9 +381,15 @@ GLIBC_2.29 __res_mkquery F
 GLIBC_2.29 __res_nclose F
 GLIBC_2.29 __res_ninit F
 GLIBC_2.29 __res_nmkquery F
+GLIBC_2.29 __res_nquery F
+GLIBC_2.29 __res_nquerydomain F
+GLIBC_2.29 __res_nsearch F
 GLIBC_2.29 __res_nsend F
 GLIBC_2.29 __res_ownok F
+GLIBC_2.29 __res_query F
+GLIBC_2.29 __res_querydomain F
 GLIBC_2.29 __res_randomid F
+GLIBC_2.29 __res_search F
 GLIBC_2.29 __res_send F
 GLIBC_2.29 __res_state F
 GLIBC_2.29 __rpc_thread_createerr F
@@ -2596,8 +2602,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
index f4ae402b6f..1b37befe82 100644
--- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
@@ -25,13 +25,7 @@ GLIBC_2.29 __res_close F
 GLIBC_2.29 __res_hostalias F
 GLIBC_2.29 __res_isourserver F
 GLIBC_2.29 __res_nameinquery F
-GLIBC_2.29 __res_nquery F
-GLIBC_2.29 __res_nquerydomain F
-GLIBC_2.29 __res_nsearch F
 GLIBC_2.29 __res_queriesmatch F
-GLIBC_2.29 __res_query F
-GLIBC_2.29 __res_querydomain F
-GLIBC_2.29 __res_search F
 GLIBC_2.29 __sym_ntop F
 GLIBC_2.29 __sym_ntos F
 GLIBC_2.29 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index a229d3d5f1..ef0e7e3ae7 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -18,6 +18,9 @@ GLIBC_2.0 logout F
 GLIBC_2.0 logwtmp F
 GLIBC_2.0 openpty F
 GLIBC_2.0 res_mkquery F
+GLIBC_2.0 res_query F
+GLIBC_2.0 res_querydomain F
+GLIBC_2.0 res_search F
 GLIBC_2.1 aio_cancel F
 GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_error F
@@ -432,8 +435,14 @@ GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
 GLIBC_2.2 __res_nmkquery F
+GLIBC_2.2 __res_nquery F
+GLIBC_2.2 __res_nquerydomain F
+GLIBC_2.2 __res_nsearch F
 GLIBC_2.2 __res_nsend F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
 GLIBC_2.2 __res_randomid F
+GLIBC_2.2 __res_search F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __sbrk F
 GLIBC_2.2 __sched_get_priority_max F
@@ -2544,8 +2553,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
index f2707204ed..56dcd57b6c 100644
--- a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
@@ -42,18 +42,9 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_query F
-GLIBC_2.0 res_querydomain F
-GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_nquery F
-GLIBC_2.2 __res_nquerydomain F
-GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_query F
-GLIBC_2.2 __res_querydomain F
-GLIBC_2.2 __res_search F
 GLIBC_2.3.2 __p_rcode F
 GLIBC_2.9 ns_datetosecs F
 GLIBC_2.9 ns_format_ttl F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 408822e865..36cce86f38 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -982,6 +982,9 @@ GLIBC_2.0 remque F
 GLIBC_2.0 rename F
 GLIBC_2.0 res_init F
 GLIBC_2.0 res_mkquery F
+GLIBC_2.0 res_query F
+GLIBC_2.0 res_querydomain F
+GLIBC_2.0 res_search F
 GLIBC_2.0 revoke F
 GLIBC_2.0 rewind F
 GLIBC_2.0 rewinddir F
@@ -1986,7 +1989,13 @@ GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
 GLIBC_2.2 __res_nmkquery F
+GLIBC_2.2 __res_nquery F
+GLIBC_2.2 __res_nquerydomain F
+GLIBC_2.2 __res_nsearch F
 GLIBC_2.2 __res_nsend F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
+GLIBC_2.2 __res_search F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
 GLIBC_2.2 __statfs F
@@ -2728,8 +2737,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/i386/libresolv.abilist b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
index f2707204ed..56dcd57b6c 100644
--- a/sysdeps/unix/sysv/linux/i386/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
@@ -42,18 +42,9 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_query F
-GLIBC_2.0 res_querydomain F
-GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_nquery F
-GLIBC_2.2 __res_nquerydomain F
-GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_query F
-GLIBC_2.2 __res_querydomain F
-GLIBC_2.2 __res_search F
 GLIBC_2.3.2 __p_rcode F
 GLIBC_2.9 ns_datetosecs F
 GLIBC_2.9 ns_format_ttl F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index d2abb8829e..b7398160a2 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -18,6 +18,9 @@ GLIBC_2.0 logout F
 GLIBC_2.0 logwtmp F
 GLIBC_2.0 openpty F
 GLIBC_2.0 res_mkquery F
+GLIBC_2.0 res_query F
+GLIBC_2.0 res_querydomain F
+GLIBC_2.0 res_search F
 GLIBC_2.1 aio_cancel F
 GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_error F
@@ -436,8 +439,14 @@ GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
 GLIBC_2.2 __res_nmkquery F
+GLIBC_2.2 __res_nquery F
+GLIBC_2.2 __res_nquerydomain F
+GLIBC_2.2 __res_nsearch F
 GLIBC_2.2 __res_nsend F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
 GLIBC_2.2 __res_randomid F
+GLIBC_2.2 __res_search F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __sbrk F
 GLIBC_2.2 __sched_get_priority_max F
@@ -2503,8 +2512,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
index 4f5160f474..8325eae8a5 100644
--- a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
@@ -42,18 +42,9 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_query F
-GLIBC_2.0 res_querydomain F
-GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_nquery F
-GLIBC_2.2 __res_nquerydomain F
-GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_query F
-GLIBC_2.2 __res_querydomain F
-GLIBC_2.2 __res_search F
 GLIBC_2.3.2 __p_rcode F
 GLIBC_2.9 ns_datetosecs F
 GLIBC_2.9 ns_format_ttl F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 494b8cc0a9..88ec061fe7 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -447,8 +447,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
@@ -837,9 +843,15 @@ GLIBC_2.4 __res_mkquery F
 GLIBC_2.4 __res_nclose F
 GLIBC_2.4 __res_ninit F
 GLIBC_2.4 __res_nmkquery F
+GLIBC_2.4 __res_nquery F
+GLIBC_2.4 __res_nquerydomain F
+GLIBC_2.4 __res_nsearch F
 GLIBC_2.4 __res_nsend F
 GLIBC_2.4 __res_ownok F
+GLIBC_2.4 __res_query F
+GLIBC_2.4 __res_querydomain F
 GLIBC_2.4 __res_randomid F
+GLIBC_2.4 __res_search F
 GLIBC_2.4 __res_send F
 GLIBC_2.4 __res_state F
 GLIBC_2.4 __rpc_thread_createerr F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
index ee4f6a36e9..06018c2f04 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
@@ -26,13 +26,7 @@ GLIBC_2.4 __res_close F
 GLIBC_2.4 __res_hostalias F
 GLIBC_2.4 __res_isourserver F
 GLIBC_2.4 __res_nameinquery F
-GLIBC_2.4 __res_nquery F
-GLIBC_2.4 __res_nquerydomain F
-GLIBC_2.4 __res_nsearch F
 GLIBC_2.4 __res_queriesmatch F
-GLIBC_2.4 __res_query F
-GLIBC_2.4 __res_querydomain F
-GLIBC_2.4 __res_search F
 GLIBC_2.4 __sym_ntop F
 GLIBC_2.4 __sym_ntos F
 GLIBC_2.4 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 7fad70be62..8391f756f5 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -981,6 +981,9 @@ GLIBC_2.0 remque F
 GLIBC_2.0 rename F
 GLIBC_2.0 res_init F
 GLIBC_2.0 res_mkquery F
+GLIBC_2.0 res_query F
+GLIBC_2.0 res_querydomain F
+GLIBC_2.0 res_search F
 GLIBC_2.0 revoke F
 GLIBC_2.0 rewind F
 GLIBC_2.0 rewinddir F
@@ -1942,7 +1945,13 @@ GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
 GLIBC_2.2 __res_nmkquery F
+GLIBC_2.2 __res_nquery F
+GLIBC_2.2 __res_nquerydomain F
+GLIBC_2.2 __res_nsearch F
 GLIBC_2.2 __res_nsend F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
+GLIBC_2.2 __res_search F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
 GLIBC_2.2 __statfs F
@@ -2671,8 +2680,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
index f2707204ed..56dcd57b6c 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
@@ -42,18 +42,9 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_query F
-GLIBC_2.0 res_querydomain F
-GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_nquery F
-GLIBC_2.2 __res_nquerydomain F
-GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_query F
-GLIBC_2.2 __res_querydomain F
-GLIBC_2.2 __res_search F
 GLIBC_2.3.2 __p_rcode F
 GLIBC_2.9 ns_datetosecs F
 GLIBC_2.9 ns_format_ttl F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 769715e97b..5e75d90b0b 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -389,9 +389,15 @@ GLIBC_2.18 __res_mkquery F
 GLIBC_2.18 __res_nclose F
 GLIBC_2.18 __res_ninit F
 GLIBC_2.18 __res_nmkquery F
+GLIBC_2.18 __res_nquery F
+GLIBC_2.18 __res_nquerydomain F
+GLIBC_2.18 __res_nsearch F
 GLIBC_2.18 __res_nsend F
 GLIBC_2.18 __res_ownok F
+GLIBC_2.18 __res_query F
+GLIBC_2.18 __res_querydomain F
 GLIBC_2.18 __res_randomid F
+GLIBC_2.18 __res_search F
 GLIBC_2.18 __res_send F
 GLIBC_2.18 __res_state F
 GLIBC_2.18 __rpc_thread_createerr F
@@ -2647,8 +2653,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
index 9550bc22e1..9782b54587 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
@@ -26,13 +26,7 @@ GLIBC_2.18 __res_close F
 GLIBC_2.18 __res_hostalias F
 GLIBC_2.18 __res_isourserver F
 GLIBC_2.18 __res_nameinquery F
-GLIBC_2.18 __res_nquery F
-GLIBC_2.18 __res_nquerydomain F
-GLIBC_2.18 __res_nsearch F
 GLIBC_2.18 __res_queriesmatch F
-GLIBC_2.18 __res_query F
-GLIBC_2.18 __res_querydomain F
-GLIBC_2.18 __res_search F
 GLIBC_2.18 __sym_ntop F
 GLIBC_2.18 __sym_ntos F
 GLIBC_2.18 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 0d3bea192f..099009fd98 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -389,9 +389,15 @@ GLIBC_2.18 __res_mkquery F
 GLIBC_2.18 __res_nclose F
 GLIBC_2.18 __res_ninit F
 GLIBC_2.18 __res_nmkquery F
+GLIBC_2.18 __res_nquery F
+GLIBC_2.18 __res_nquerydomain F
+GLIBC_2.18 __res_nsearch F
 GLIBC_2.18 __res_nsend F
 GLIBC_2.18 __res_ownok F
+GLIBC_2.18 __res_query F
+GLIBC_2.18 __res_querydomain F
 GLIBC_2.18 __res_randomid F
+GLIBC_2.18 __res_search F
 GLIBC_2.18 __res_send F
 GLIBC_2.18 __res_state F
 GLIBC_2.18 __rpc_thread_createerr F
@@ -2644,8 +2650,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
index 9550bc22e1..9782b54587 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
@@ -26,13 +26,7 @@ GLIBC_2.18 __res_close F
 GLIBC_2.18 __res_hostalias F
 GLIBC_2.18 __res_isourserver F
 GLIBC_2.18 __res_nameinquery F
-GLIBC_2.18 __res_nquery F
-GLIBC_2.18 __res_nquerydomain F
-GLIBC_2.18 __res_nsearch F
 GLIBC_2.18 __res_queriesmatch F
-GLIBC_2.18 __res_query F
-GLIBC_2.18 __res_querydomain F
-GLIBC_2.18 __res_search F
 GLIBC_2.18 __sym_ntop F
 GLIBC_2.18 __sym_ntos F
 GLIBC_2.18 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index da99de9e20..840888f516 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -978,6 +978,9 @@ GLIBC_2.0 remque F
 GLIBC_2.0 rename F
 GLIBC_2.0 res_init F
 GLIBC_2.0 res_mkquery F
+GLIBC_2.0 res_query F
+GLIBC_2.0 res_querydomain F
+GLIBC_2.0 res_search F
 GLIBC_2.0 revoke F
 GLIBC_2.0 rewind F
 GLIBC_2.0 rewinddir F
@@ -1595,7 +1598,13 @@ GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
 GLIBC_2.2 __res_nmkquery F
+GLIBC_2.2 __res_nquery F
+GLIBC_2.2 __res_nquerydomain F
+GLIBC_2.2 __res_nsearch F
 GLIBC_2.2 __res_nsend F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
+GLIBC_2.2 __res_search F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
 GLIBC_2.2 __signbit F
@@ -2636,8 +2645,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
index f2707204ed..56dcd57b6c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
@@ -42,18 +42,9 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_query F
-GLIBC_2.0 res_querydomain F
-GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_nquery F
-GLIBC_2.2 __res_nquerydomain F
-GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_query F
-GLIBC_2.2 __res_querydomain F
-GLIBC_2.2 __res_search F
 GLIBC_2.3.2 __p_rcode F
 GLIBC_2.9 ns_datetosecs F
 GLIBC_2.9 ns_format_ttl F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index eb9e00e1c6..57631b743a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -978,6 +978,9 @@ GLIBC_2.0 remque F
 GLIBC_2.0 rename F
 GLIBC_2.0 res_init F
 GLIBC_2.0 res_mkquery F
+GLIBC_2.0 res_query F
+GLIBC_2.0 res_querydomain F
+GLIBC_2.0 res_search F
 GLIBC_2.0 revoke F
 GLIBC_2.0 rewind F
 GLIBC_2.0 rewinddir F
@@ -1593,7 +1596,13 @@ GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
 GLIBC_2.2 __res_nmkquery F
+GLIBC_2.2 __res_nquery F
+GLIBC_2.2 __res_nquerydomain F
+GLIBC_2.2 __res_nsearch F
 GLIBC_2.2 __res_nsend F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
+GLIBC_2.2 __res_search F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
 GLIBC_2.2 __signbit F
@@ -2634,8 +2643,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 843f370721..1aad7b9ec1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -978,6 +978,9 @@ GLIBC_2.0 remque F
 GLIBC_2.0 rename F
 GLIBC_2.0 res_init F
 GLIBC_2.0 res_mkquery F
+GLIBC_2.0 res_query F
+GLIBC_2.0 res_querydomain F
+GLIBC_2.0 res_search F
 GLIBC_2.0 revoke F
 GLIBC_2.0 rewind F
 GLIBC_2.0 rewinddir F
@@ -1593,7 +1596,13 @@ GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
 GLIBC_2.2 __res_nmkquery F
+GLIBC_2.2 __res_nquery F
+GLIBC_2.2 __res_nquerydomain F
+GLIBC_2.2 __res_nsearch F
 GLIBC_2.2 __res_nsend F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
+GLIBC_2.2 __res_search F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
 GLIBC_2.2 __signbit F
@@ -2642,8 +2651,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
index f2707204ed..56dcd57b6c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
@@ -42,18 +42,9 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_query F
-GLIBC_2.0 res_querydomain F
-GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_nquery F
-GLIBC_2.2 __res_nquerydomain F
-GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_query F
-GLIBC_2.2 __res_querydomain F
-GLIBC_2.2 __res_search F
 GLIBC_2.3.2 __p_rcode F
 GLIBC_2.9 ns_datetosecs F
 GLIBC_2.9 ns_format_ttl F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 61c47a53e3..b80d5167c8 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -976,6 +976,9 @@ GLIBC_2.0 remque F
 GLIBC_2.0 rename F
 GLIBC_2.0 res_init F
 GLIBC_2.0 res_mkquery F
+GLIBC_2.0 res_query F
+GLIBC_2.0 res_querydomain F
+GLIBC_2.0 res_search F
 GLIBC_2.0 revoke F
 GLIBC_2.0 rewind F
 GLIBC_2.0 rewinddir F
@@ -1589,7 +1592,13 @@ GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
 GLIBC_2.2 __res_nmkquery F
+GLIBC_2.2 __res_nquery F
+GLIBC_2.2 __res_nquerydomain F
+GLIBC_2.2 __res_nsearch F
 GLIBC_2.2 __res_nsend F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
+GLIBC_2.2 __res_search F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
 GLIBC_2.2 __signbit F
@@ -2554,8 +2563,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
index 4f5160f474..8325eae8a5 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
@@ -42,18 +42,9 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_query F
-GLIBC_2.0 res_querydomain F
-GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_nquery F
-GLIBC_2.2 __res_nquerydomain F
-GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_query F
-GLIBC_2.2 __res_querydomain F
-GLIBC_2.2 __res_search F
 GLIBC_2.3.2 __p_rcode F
 GLIBC_2.9 ns_datetosecs F
 GLIBC_2.9 ns_format_ttl F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 1f839feeac..19532b6c9f 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -426,9 +426,15 @@ GLIBC_2.21 __res_mkquery F
 GLIBC_2.21 __res_nclose F
 GLIBC_2.21 __res_ninit F
 GLIBC_2.21 __res_nmkquery F
+GLIBC_2.21 __res_nquery F
+GLIBC_2.21 __res_nquerydomain F
+GLIBC_2.21 __res_nsearch F
 GLIBC_2.21 __res_nsend F
 GLIBC_2.21 __res_ownok F
+GLIBC_2.21 __res_query F
+GLIBC_2.21 __res_querydomain F
 GLIBC_2.21 __res_randomid F
+GLIBC_2.21 __res_search F
 GLIBC_2.21 __res_send F
 GLIBC_2.21 __res_state F
 GLIBC_2.21 __rpc_thread_createerr F
@@ -2686,8 +2692,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
index 23c5250a0c..e1d606503a 100644
--- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
@@ -26,13 +26,7 @@ GLIBC_2.21 __res_close F
 GLIBC_2.21 __res_hostalias F
 GLIBC_2.21 __res_isourserver F
 GLIBC_2.21 __res_nameinquery F
-GLIBC_2.21 __res_nquery F
-GLIBC_2.21 __res_nquerydomain F
-GLIBC_2.21 __res_nsearch F
 GLIBC_2.21 __res_queriesmatch F
-GLIBC_2.21 __res_query F
-GLIBC_2.21 __res_querydomain F
-GLIBC_2.21 __res_search F
 GLIBC_2.21 __sym_ntop F
 GLIBC_2.21 __sym_ntos F
 GLIBC_2.21 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 75ba24498d..0bf4aa83fe 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -989,6 +989,9 @@ GLIBC_2.0 remque F
 GLIBC_2.0 rename F
 GLIBC_2.0 res_init F
 GLIBC_2.0 res_mkquery F
+GLIBC_2.0 res_query F
+GLIBC_2.0 res_querydomain F
+GLIBC_2.0 res_search F
 GLIBC_2.0 revoke F
 GLIBC_2.0 rewind F
 GLIBC_2.0 rewinddir F
@@ -1948,7 +1951,13 @@ GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
 GLIBC_2.2 __res_nmkquery F
+GLIBC_2.2 __res_nquery F
+GLIBC_2.2 __res_nquerydomain F
+GLIBC_2.2 __res_nsearch F
 GLIBC_2.2 __res_nsend F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
+GLIBC_2.2 __res_search F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
 GLIBC_2.2 __statfs F
@@ -2698,8 +2707,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
index f2707204ed..56dcd57b6c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
@@ -42,18 +42,9 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_query F
-GLIBC_2.0 res_querydomain F
-GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_nquery F
-GLIBC_2.2 __res_nquerydomain F
-GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_query F
-GLIBC_2.2 __res_querydomain F
-GLIBC_2.2 __res_search F
 GLIBC_2.3.2 __p_rcode F
 GLIBC_2.9 ns_datetosecs F
 GLIBC_2.9 ns_format_ttl F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 2020450b53..b4c8567af3 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -989,6 +989,9 @@ GLIBC_2.0 remque F
 GLIBC_2.0 rename F
 GLIBC_2.0 res_init F
 GLIBC_2.0 res_mkquery F
+GLIBC_2.0 res_query F
+GLIBC_2.0 res_querydomain F
+GLIBC_2.0 res_search F
 GLIBC_2.0 revoke F
 GLIBC_2.0 rewind F
 GLIBC_2.0 rewinddir F
@@ -1952,7 +1955,13 @@ GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
 GLIBC_2.2 __res_nmkquery F
+GLIBC_2.2 __res_nquery F
+GLIBC_2.2 __res_nquerydomain F
+GLIBC_2.2 __res_nsearch F
 GLIBC_2.2 __res_nsend F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
+GLIBC_2.2 __res_search F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
 GLIBC_2.2 __statfs F
@@ -2731,8 +2740,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 67f0228db0..051db5b596 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -472,9 +472,15 @@ GLIBC_2.3 __res_mkquery F
 GLIBC_2.3 __res_nclose F
 GLIBC_2.3 __res_ninit F
 GLIBC_2.3 __res_nmkquery F
+GLIBC_2.3 __res_nquery F
+GLIBC_2.3 __res_nquerydomain F
+GLIBC_2.3 __res_nsearch F
 GLIBC_2.3 __res_nsend F
 GLIBC_2.3 __res_ownok F
+GLIBC_2.3 __res_query F
+GLIBC_2.3 __res_querydomain F
 GLIBC_2.3 __res_randomid F
+GLIBC_2.3 __res_search F
 GLIBC_2.3 __res_send F
 GLIBC_2.3 __res_state F
 GLIBC_2.3 __rpc_thread_createerr F
@@ -2465,8 +2471,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
index 4d1fb69bc6..55dfc1d558 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
@@ -25,13 +25,7 @@ GLIBC_2.3 __res_close F
 GLIBC_2.3 __res_hostalias F
 GLIBC_2.3 __res_isourserver F
 GLIBC_2.3 __res_nameinquery F
-GLIBC_2.3 __res_nquery F
-GLIBC_2.3 __res_nquerydomain F
-GLIBC_2.3 __res_nsearch F
 GLIBC_2.3 __res_queriesmatch F
-GLIBC_2.3 __res_query F
-GLIBC_2.3 __res_querydomain F
-GLIBC_2.3 __res_search F
 GLIBC_2.3 __sym_ntop F
 GLIBC_2.3 __sym_ntos F
 GLIBC_2.3 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index c4f1220cce..8c1f6271f5 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -474,9 +474,15 @@ GLIBC_2.17 __res_mkquery F
 GLIBC_2.17 __res_nclose F
 GLIBC_2.17 __res_ninit F
 GLIBC_2.17 __res_nmkquery F
+GLIBC_2.17 __res_nquery F
+GLIBC_2.17 __res_nquerydomain F
+GLIBC_2.17 __res_nsearch F
 GLIBC_2.17 __res_nsend F
 GLIBC_2.17 __res_ownok F
+GLIBC_2.17 __res_query F
+GLIBC_2.17 __res_querydomain F
 GLIBC_2.17 __res_randomid F
+GLIBC_2.17 __res_search F
 GLIBC_2.17 __res_send F
 GLIBC_2.17 __res_state F
 GLIBC_2.17 __rpc_thread_createerr F
@@ -2767,8 +2773,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
index 702d13c633..3d4bfe3179 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
@@ -26,13 +26,7 @@ GLIBC_2.17 __res_close F
 GLIBC_2.17 __res_hostalias F
 GLIBC_2.17 __res_isourserver F
 GLIBC_2.17 __res_nameinquery F
-GLIBC_2.17 __res_nquery F
-GLIBC_2.17 __res_nquerydomain F
-GLIBC_2.17 __res_nsearch F
 GLIBC_2.17 __res_queriesmatch F
-GLIBC_2.17 __res_query F
-GLIBC_2.17 __res_querydomain F
-GLIBC_2.17 __res_search F
 GLIBC_2.17 __sym_ntop F
 GLIBC_2.17 __sym_ntos F
 GLIBC_2.17 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 3ea1998b5e..5ea6975855 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -374,9 +374,15 @@ GLIBC_2.33 __res_mkquery F
 GLIBC_2.33 __res_nclose F
 GLIBC_2.33 __res_ninit F
 GLIBC_2.33 __res_nmkquery F
+GLIBC_2.33 __res_nquery F
+GLIBC_2.33 __res_nquerydomain F
+GLIBC_2.33 __res_nsearch F
 GLIBC_2.33 __res_nsend F
 GLIBC_2.33 __res_ownok F
+GLIBC_2.33 __res_query F
+GLIBC_2.33 __res_querydomain F
 GLIBC_2.33 __res_randomid F
+GLIBC_2.33 __res_search F
 GLIBC_2.33 __res_send F
 GLIBC_2.33 __res_state F
 GLIBC_2.33 __riscv_flush_icache F
@@ -2332,8 +2338,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
index 50daff9908..e4e29c8a20 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
@@ -25,13 +25,7 @@ GLIBC_2.33 __res_close F
 GLIBC_2.33 __res_hostalias F
 GLIBC_2.33 __res_isourserver F
 GLIBC_2.33 __res_nameinquery F
-GLIBC_2.33 __res_nquery F
-GLIBC_2.33 __res_nquerydomain F
-GLIBC_2.33 __res_nsearch F
 GLIBC_2.33 __res_queriesmatch F
-GLIBC_2.33 __res_query F
-GLIBC_2.33 __res_querydomain F
-GLIBC_2.33 __res_search F
 GLIBC_2.33 __sym_ntop F
 GLIBC_2.33 __sym_ntos F
 GLIBC_2.33 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 219afb5303..1dc408099a 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -385,9 +385,15 @@ GLIBC_2.27 __res_mkquery F
 GLIBC_2.27 __res_nclose F
 GLIBC_2.27 __res_ninit F
 GLIBC_2.27 __res_nmkquery F
+GLIBC_2.27 __res_nquery F
+GLIBC_2.27 __res_nquerydomain F
+GLIBC_2.27 __res_nsearch F
 GLIBC_2.27 __res_nsend F
 GLIBC_2.27 __res_ownok F
+GLIBC_2.27 __res_query F
+GLIBC_2.27 __res_querydomain F
 GLIBC_2.27 __res_randomid F
+GLIBC_2.27 __res_search F
 GLIBC_2.27 __res_send F
 GLIBC_2.27 __res_state F
 GLIBC_2.27 __riscv_flush_icache F
@@ -2532,8 +2538,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
index 050ca355e2..57f214e869 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
@@ -25,13 +25,7 @@ GLIBC_2.27 __res_close F
 GLIBC_2.27 __res_hostalias F
 GLIBC_2.27 __res_isourserver F
 GLIBC_2.27 __res_nameinquery F
-GLIBC_2.27 __res_nquery F
-GLIBC_2.27 __res_nquerydomain F
-GLIBC_2.27 __res_nsearch F
 GLIBC_2.27 __res_queriesmatch F
-GLIBC_2.27 __res_query F
-GLIBC_2.27 __res_querydomain F
-GLIBC_2.27 __res_search F
 GLIBC_2.27 __sym_ntop F
 GLIBC_2.27 __sym_ntos F
 GLIBC_2.27 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index ae30dee1f9..a18d322e7f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -980,6 +980,9 @@ GLIBC_2.0 remque F
 GLIBC_2.0 rename F
 GLIBC_2.0 res_init F
 GLIBC_2.0 res_mkquery F
+GLIBC_2.0 res_query F
+GLIBC_2.0 res_querydomain F
+GLIBC_2.0 res_search F
 GLIBC_2.0 revoke F
 GLIBC_2.0 rewind F
 GLIBC_2.0 rewinddir F
@@ -1946,7 +1949,13 @@ GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
 GLIBC_2.2 __res_nmkquery F
+GLIBC_2.2 __res_nquery F
+GLIBC_2.2 __res_nquerydomain F
+GLIBC_2.2 __res_nsearch F
 GLIBC_2.2 __res_nsend F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
+GLIBC_2.2 __res_search F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
 GLIBC_2.2 __statfs F
@@ -2696,8 +2705,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
index f2707204ed..56dcd57b6c 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
@@ -42,18 +42,9 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_query F
-GLIBC_2.0 res_querydomain F
-GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_nquery F
-GLIBC_2.2 __res_nquerydomain F
-GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_query F
-GLIBC_2.2 __res_querydomain F
-GLIBC_2.2 __res_search F
 GLIBC_2.3.2 __p_rcode F
 GLIBC_2.9 ns_datetosecs F
 GLIBC_2.9 ns_format_ttl F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 46078077aa..8b2a821fe5 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -416,9 +416,15 @@ GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
 GLIBC_2.2 __res_nmkquery F
+GLIBC_2.2 __res_nquery F
+GLIBC_2.2 __res_nquerydomain F
+GLIBC_2.2 __res_nsearch F
 GLIBC_2.2 __res_nsend F
 GLIBC_2.2 __res_ownok F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
 GLIBC_2.2 __res_randomid F
+GLIBC_2.2 __res_search F
 GLIBC_2.2 __res_send F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __sbrk F
@@ -2502,8 +2508,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
index 3b8ffd2766..7f2b4f6cab 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
@@ -25,13 +25,7 @@ GLIBC_2.2 __res_close F
 GLIBC_2.2 __res_hostalias F
 GLIBC_2.2 __res_isourserver F
 GLIBC_2.2 __res_nameinquery F
-GLIBC_2.2 __res_nquery F
-GLIBC_2.2 __res_nquerydomain F
-GLIBC_2.2 __res_nsearch F
 GLIBC_2.2 __res_queriesmatch F
-GLIBC_2.2 __res_query F
-GLIBC_2.2 __res_querydomain F
-GLIBC_2.2 __res_search F
 GLIBC_2.2 __sym_ntop F
 GLIBC_2.2 __sym_ntos F
 GLIBC_2.2 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 77d694ca2f..4cfb12b373 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -22,6 +22,9 @@ GLIBC_2.0 logout F
 GLIBC_2.0 logwtmp F
 GLIBC_2.0 openpty F
 GLIBC_2.0 res_mkquery F
+GLIBC_2.0 res_query F
+GLIBC_2.0 res_querydomain F
+GLIBC_2.0 res_search F
 GLIBC_2.1 aio_cancel F
 GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_error F
@@ -436,8 +439,14 @@ GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
 GLIBC_2.2 __res_nmkquery F
+GLIBC_2.2 __res_nquery F
+GLIBC_2.2 __res_nquerydomain F
+GLIBC_2.2 __res_nsearch F
 GLIBC_2.2 __res_nsend F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
 GLIBC_2.2 __res_randomid F
+GLIBC_2.2 __res_search F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __sbrk F
 GLIBC_2.2 __sched_get_priority_max F
@@ -2551,8 +2560,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
index f2707204ed..56dcd57b6c 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
@@ -42,18 +42,9 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_query F
-GLIBC_2.0 res_querydomain F
-GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_nquery F
-GLIBC_2.2 __res_nquerydomain F
-GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_query F
-GLIBC_2.2 __res_querydomain F
-GLIBC_2.2 __res_search F
 GLIBC_2.3.2 __p_rcode F
 GLIBC_2.9 ns_datetosecs F
 GLIBC_2.9 ns_format_ttl F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 3a2b27f2d4..44f8c83c6f 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -22,6 +22,9 @@ GLIBC_2.0 logout F
 GLIBC_2.0 logwtmp F
 GLIBC_2.0 openpty F
 GLIBC_2.0 res_mkquery F
+GLIBC_2.0 res_query F
+GLIBC_2.0 res_querydomain F
+GLIBC_2.0 res_search F
 GLIBC_2.1 aio_cancel F
 GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_error F
@@ -436,8 +439,14 @@ GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
 GLIBC_2.2 __res_nmkquery F
+GLIBC_2.2 __res_nquery F
+GLIBC_2.2 __res_nquerydomain F
+GLIBC_2.2 __res_nsearch F
 GLIBC_2.2 __res_nsend F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
 GLIBC_2.2 __res_randomid F
+GLIBC_2.2 __res_search F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __sbrk F
 GLIBC_2.2 __sched_get_priority_max F
@@ -2548,8 +2557,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
index f2707204ed..56dcd57b6c 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
@@ -42,18 +42,9 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_query F
-GLIBC_2.0 res_querydomain F
-GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_nquery F
-GLIBC_2.2 __res_nquerydomain F
-GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_query F
-GLIBC_2.2 __res_querydomain F
-GLIBC_2.2 __res_search F
 GLIBC_2.3.2 __p_rcode F
 GLIBC_2.9 ns_datetosecs F
 GLIBC_2.9 ns_format_ttl F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 78c3540559..3e15e4f90d 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -983,6 +983,9 @@ GLIBC_2.0 remque F
 GLIBC_2.0 rename F
 GLIBC_2.0 res_init F
 GLIBC_2.0 res_mkquery F
+GLIBC_2.0 res_query F
+GLIBC_2.0 res_querydomain F
+GLIBC_2.0 res_search F
 GLIBC_2.0 revoke F
 GLIBC_2.0 rewind F
 GLIBC_2.0 rewinddir F
@@ -1944,7 +1947,13 @@ GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
 GLIBC_2.2 __res_nmkquery F
+GLIBC_2.2 __res_nquery F
+GLIBC_2.2 __res_nquerydomain F
+GLIBC_2.2 __res_nsearch F
 GLIBC_2.2 __res_nsend F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
+GLIBC_2.2 __res_search F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __setmntent F
 GLIBC_2.2 __statfs F
@@ -2691,8 +2700,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
index f2707204ed..56dcd57b6c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
@@ -42,18 +42,9 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_query F
-GLIBC_2.0 res_querydomain F
-GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_nquery F
-GLIBC_2.2 __res_nquerydomain F
-GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_query F
-GLIBC_2.2 __res_querydomain F
-GLIBC_2.2 __res_search F
 GLIBC_2.3.2 __p_rcode F
 GLIBC_2.9 ns_datetosecs F
 GLIBC_2.9 ns_format_ttl F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 8c080d6d18..881d0fc9f4 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -22,6 +22,9 @@ GLIBC_2.0 logout F
 GLIBC_2.0 logwtmp F
 GLIBC_2.0 openpty F
 GLIBC_2.0 res_mkquery F
+GLIBC_2.0 res_query F
+GLIBC_2.0 res_querydomain F
+GLIBC_2.0 res_search F
 GLIBC_2.1 aio_cancel F
 GLIBC_2.1 aio_cancel64 F
 GLIBC_2.1 aio_error F
@@ -477,8 +480,14 @@ GLIBC_2.2 __res_mkquery F
 GLIBC_2.2 __res_nclose F
 GLIBC_2.2 __res_ninit F
 GLIBC_2.2 __res_nmkquery F
+GLIBC_2.2 __res_nquery F
+GLIBC_2.2 __res_nquerydomain F
+GLIBC_2.2 __res_nsearch F
 GLIBC_2.2 __res_nsend F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
 GLIBC_2.2 __res_randomid F
+GLIBC_2.2 __res_search F
 GLIBC_2.2 __res_state F
 GLIBC_2.2 __sbrk F
 GLIBC_2.2 __sched_get_priority_max F
@@ -2526,8 +2535,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
index 4f5160f474..8325eae8a5 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
@@ -42,18 +42,9 @@ GLIBC_2.0 inet_neta F
 GLIBC_2.0 res_gethostbyaddr F
 GLIBC_2.0 res_gethostbyname F
 GLIBC_2.0 res_gethostbyname2 F
-GLIBC_2.0 res_query F
-GLIBC_2.0 res_querydomain F
-GLIBC_2.0 res_search F
 GLIBC_2.0 res_send_setqhook F
 GLIBC_2.0 res_send_setrhook F
 GLIBC_2.2 __res_hostalias F
-GLIBC_2.2 __res_nquery F
-GLIBC_2.2 __res_nquerydomain F
-GLIBC_2.2 __res_nsearch F
-GLIBC_2.2 __res_query F
-GLIBC_2.2 __res_querydomain F
-GLIBC_2.2 __res_search F
 GLIBC_2.3.2 __p_rcode F
 GLIBC_2.9 ns_datetosecs F
 GLIBC_2.9 ns_format_ttl F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index e8f210d449..53586b344f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -400,9 +400,15 @@ GLIBC_2.2.5 __res_mkquery F
 GLIBC_2.2.5 __res_nclose F
 GLIBC_2.2.5 __res_ninit F
 GLIBC_2.2.5 __res_nmkquery F
+GLIBC_2.2.5 __res_nquery F
+GLIBC_2.2.5 __res_nquerydomain F
+GLIBC_2.2.5 __res_nsearch F
 GLIBC_2.2.5 __res_nsend F
 GLIBC_2.2.5 __res_ownok F
+GLIBC_2.2.5 __res_query F
+GLIBC_2.2.5 __res_querydomain F
 GLIBC_2.2.5 __res_randomid F
+GLIBC_2.2.5 __res_search F
 GLIBC_2.2.5 __res_send F
 GLIBC_2.2.5 __res_state F
 GLIBC_2.2.5 __rpc_thread_createerr F
@@ -2480,8 +2486,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
index e2a6207778..bd3596d3a3 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
@@ -25,13 +25,7 @@ GLIBC_2.2.5 __res_close F
 GLIBC_2.2.5 __res_hostalias F
 GLIBC_2.2.5 __res_isourserver F
 GLIBC_2.2.5 __res_nameinquery F
-GLIBC_2.2.5 __res_nquery F
-GLIBC_2.2.5 __res_nquerydomain F
-GLIBC_2.2.5 __res_nsearch F
 GLIBC_2.2.5 __res_queriesmatch F
-GLIBC_2.2.5 __res_query F
-GLIBC_2.2.5 __res_querydomain F
-GLIBC_2.2.5 __res_search F
 GLIBC_2.2.5 __sym_ntop F
 GLIBC_2.2.5 __sym_ntos F
 GLIBC_2.2.5 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 1eb7bd764f..00247d8e9c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -389,9 +389,15 @@ GLIBC_2.16 __res_mkquery F
 GLIBC_2.16 __res_nclose F
 GLIBC_2.16 __res_ninit F
 GLIBC_2.16 __res_nmkquery F
+GLIBC_2.16 __res_nquery F
+GLIBC_2.16 __res_nquerydomain F
+GLIBC_2.16 __res_nsearch F
 GLIBC_2.16 __res_nsend F
 GLIBC_2.16 __res_ownok F
+GLIBC_2.16 __res_query F
+GLIBC_2.16 __res_querydomain F
 GLIBC_2.16 __res_randomid F
+GLIBC_2.16 __res_search F
 GLIBC_2.16 __res_send F
 GLIBC_2.16 __res_state F
 GLIBC_2.16 __rpc_thread_createerr F
@@ -2586,8 +2592,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
index b7564c49cc..aa5227882b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
@@ -26,13 +26,7 @@ GLIBC_2.16 __res_close F
 GLIBC_2.16 __res_hostalias F
 GLIBC_2.16 __res_isourserver F
 GLIBC_2.16 __res_nameinquery F
-GLIBC_2.16 __res_nquery F
-GLIBC_2.16 __res_nquerydomain F
-GLIBC_2.16 __res_nsearch F
 GLIBC_2.16 __res_queriesmatch F
-GLIBC_2.16 __res_query F
-GLIBC_2.16 __res_querydomain F
-GLIBC_2.16 __res_search F
 GLIBC_2.16 __sym_ntop F
 GLIBC_2.16 __sym_ntos F
 GLIBC_2.16 __sym_ston F
-- 
2.31.1



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

* [PATCH 29/30] resolv: Move nss_dns into libc
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (27 preceding siblings ...)
  2021-07-02 18:49 ` [PATCH 28/30] resolv: Move res_query functions " Florian Weimer
@ 2021-07-02 18:49 ` Florian Weimer
  2021-07-02 18:50 ` [PATCH 30/30] nss: Directly load nss_dns, without going through dlsym/dlopen Florian Weimer
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:49 UTC (permalink / raw)
  To: libc-alpha

No abilist updates are needed because the symbols were GLIBC_PRIVATE.
---
 include/nss_dns.h            | 36 ++++++++++++++++++++++++++
 resolv/Makefile              | 15 +++--------
 resolv/Versions              | 21 ++++++++-------
 resolv/nss_dns/dns-canon.c   |  4 +--
 resolv/nss_dns/dns-host.c    | 50 +++++++++++++++++-------------------
 resolv/nss_dns/dns-network.c | 13 +++++-----
 6 files changed, 82 insertions(+), 57 deletions(-)
 create mode 100644 include/nss_dns.h

diff --git a/include/nss_dns.h b/include/nss_dns.h
new file mode 100644
index 0000000000..63b5853870
--- /dev/null
+++ b/include/nss_dns.h
@@ -0,0 +1,36 @@
+/* Internal routines for nss_dns.
+   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/>.  */
+
+#ifndef _NSS_DNS_H
+#define _NSS_DNS_H
+
+#include <nss.h>
+
+NSS_DECLARE_MODULE_FUNCTIONS (dns)
+
+libc_hidden_proto (_nss_dns_getcanonname_r)
+libc_hidden_proto (_nss_dns_gethostbyname3_r)
+libc_hidden_proto (_nss_dns_gethostbyname2_r)
+libc_hidden_proto (_nss_dns_gethostbyname_r)
+libc_hidden_proto (_nss_dns_gethostbyname4_r)
+libc_hidden_proto (_nss_dns_gethostbyaddr2_r)
+libc_hidden_proto (_nss_dns_gethostbyaddr_r)
+libc_hidden_proto (_nss_dns_getnetbyname_r)
+libc_hidden_proto (_nss_dns_getnetbyaddr_r)
+
+#endif
diff --git a/resolv/Makefile b/resolv/Makefile
index 4ba58dfa96..dd0a98c74f 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -31,6 +31,9 @@ routines := \
   dn_comp \
   dn_expand \
   dn_skipname \
+  dns-canon \
+  dns-host \
+  dns-network \
   herror \
   inet_addr \
   inet_ntop \
@@ -175,18 +178,6 @@ libanl-shared-only-routines += libanl-compat
 subdir-dirs = nss_dns
 vpath %.c nss_dns
 
-libnss_dns-routines := \
-  dns-canon \
-  dns-host \
-  dns-network \
-  # libnss_dns-routines
-
-libnss_dns-inhibit-o	= $(filter-out .os,$(object-suffixes))
-ifeq ($(build-static-nss),yes)
-routines                += $(libnss_dns-routines) $(libresolv-routines)
-static-only-routines    += $(libnss_dns-routines) $(libresolv-routines)
-endif
-
 ifeq ($(run-built-tests),yes)
 ifneq (no,$(PERL))
 tests-special += $(objpfx)mtrace-tst-leaks.out $(objpfx)mtrace-tst-leaks2.out \
diff --git a/resolv/Versions b/resolv/Versions
index f8b7700a1e..0e878d1421 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -124,6 +124,15 @@ libc {
     __resolv_context_get_preinit;
     __resolv_context_put;
     __resp;
+    _nss_dns_getcanonname_r;
+    _nss_dns_gethostbyaddr2_r;
+    _nss_dns_gethostbyaddr_r;
+    _nss_dns_gethostbyname2_r;
+    _nss_dns_gethostbyname3_r;
+    _nss_dns_gethostbyname4_r;
+    _nss_dns_gethostbyname_r;
+    _nss_dns_getnetbyaddr_r;
+    _nss_dns_getnetbyname_r;
   }
 }
 
@@ -215,15 +224,9 @@ libresolv {
 
 libnss_dns {
   GLIBC_PRIVATE {
-    _nss_dns_getcanonname_r;
-    _nss_dns_gethostbyaddr2_r;
-    _nss_dns_gethostbyaddr_r;
-    _nss_dns_gethostbyname2_r;
-    _nss_dns_gethostbyname3_r;
-    _nss_dns_gethostbyname4_r;
-    _nss_dns_gethostbyname_r;
-    _nss_dns_getnetbyaddr_r;
-    _nss_dns_getnetbyname_r;
+    # Keep a version node (with a synthesized local: * directive) so that
+    # __bss_* symbols are hidden on targets that need it.
+    __libnss_dns_version_placeholder;
   }
 }
 
diff --git a/resolv/nss_dns/dns-canon.c b/resolv/nss_dns/dns-canon.c
index c5718ce3ab..c892170abd 100644
--- a/resolv/nss_dns/dns-canon.c
+++ b/resolv/nss_dns/dns-canon.c
@@ -25,8 +25,7 @@
 #include <nsswitch.h>
 #include <resolv/resolv_context.h>
 #include <resolv/resolv-internal.h>
-
-NSS_DECLARE_MODULE_FUNCTIONS (dns)
+#include <nss_dns.h>
 
 #if PACKETSZ > 65536
 # define MAXPACKET	PACKETSZ
@@ -185,3 +184,4 @@ _nss_dns_getcanonname_r (const char *name, char *buffer, size_t buflen,
   __resolv_context_put (ctx);
   return status;
 }
+libc_hidden_def (_nss_dns_getcanonname_r)
diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c
index d6a69a602a..7248ade18d 100644
--- a/resolv/nss_dns/dns-host.c
+++ b/resolv/nss_dns/dns-host.c
@@ -82,6 +82,7 @@
 
 #include "nsswitch.h"
 #include <arpa/nameser.h>
+#include <nss_dns.h>
 
 #include <resolv/resolv-internal.h>
 #include <resolv/resolv_context.h>
@@ -90,8 +91,6 @@
 #include <resolv/mapv4v6addr.h>
 #include <resolv/mapv4v6hostent.h>
 
-NSS_DECLARE_MODULE_FUNCTIONS (dns)
-
 #define RESOLVSORT
 
 #if PACKETSZ > 65536
@@ -169,6 +168,7 @@ _nss_dns_gethostbyname3_r (const char *name, int af, struct hostent *result,
   __resolv_context_put (ctx);
   return status;
 }
+libc_hidden_def (_nss_dns_gethostbyname3_r)
 
 static enum nss_status
 gethostbyname3_context (struct resolv_context *ctx,
@@ -283,7 +283,7 @@ gethostbyname3_context (struct resolv_context *ctx,
 static enum nss_status
 check_name (const char *name, int *h_errnop)
 {
-  if (res_hnok (name))
+  if (__libc_res_hnok (name))
     return NSS_STATUS_SUCCESS;
   *h_errnop = HOST_NOT_FOUND;
   return NSS_STATUS_NOTFOUND;
@@ -300,7 +300,7 @@ _nss_dns_gethostbyname2_r (const char *name, int af, struct hostent *result,
   return _nss_dns_gethostbyname3_r (name, af, result, buffer, buflen, errnop,
 				    h_errnop, NULL, NULL);
 }
-
+libc_hidden_def (_nss_dns_gethostbyname2_r)
 
 enum nss_status
 _nss_dns_gethostbyname_r (const char *name, struct hostent *result,
@@ -327,7 +327,7 @@ _nss_dns_gethostbyname_r (const char *name, struct hostent *result,
   __resolv_context_put (ctx);
   return status;
 }
-
+libc_hidden_def (_nss_dns_gethostbyname_r)
 
 enum nss_status
 _nss_dns_gethostbyname4_r (const char *name, struct gaih_addrtuple **pat,
@@ -419,15 +419,7 @@ _nss_dns_gethostbyname4_r (const char *name, struct gaih_addrtuple **pat,
   __resolv_context_put (ctx);
   return status;
 }
-
-
-extern enum nss_status _nss_dns_gethostbyaddr2_r (const void *addr,
-						  socklen_t len, int af,
-						  struct hostent *result,
-						  char *buffer, size_t buflen,
-						  int *errnop, int *h_errnop,
-						  int32_t *ttlp);
-hidden_proto (_nss_dns_gethostbyaddr2_r)
+libc_hidden_def (_nss_dns_gethostbyname4_r)
 
 enum nss_status
 _nss_dns_gethostbyaddr2_r (const void *addr, socklen_t len, int af,
@@ -568,7 +560,7 @@ _nss_dns_gethostbyaddr2_r (const void *addr, socklen_t len, int af,
   __resolv_context_put (ctx);
   return NSS_STATUS_SUCCESS;
 }
-hidden_def (_nss_dns_gethostbyaddr2_r)
+libc_hidden_def (_nss_dns_gethostbyaddr2_r)
 
 
 enum nss_status
@@ -579,6 +571,7 @@ _nss_dns_gethostbyaddr_r (const void *addr, socklen_t len, int af,
   return _nss_dns_gethostbyaddr2_r (addr, len, af, result, buffer, buflen,
 				    errnop, h_errnop, NULL);
 }
+libc_hidden_def (_nss_dns_gethostbyaddr_r)
 
 static void
 addrsort (struct resolv_context *ctx, char **ap, int num)
@@ -672,10 +665,10 @@ getanswer_r (struct resolv_context *ctx,
     {
     case T_A:
     case T_AAAA:
-      name_ok = res_hnok;
+      name_ok = __libc_res_hnok;
       break;
     case T_PTR:
-      name_ok = res_dnok;
+      name_ok = __libc_res_dnok;
       break;
     default:
       *errnop = ENOENT;
@@ -810,7 +803,8 @@ getanswer_r (struct resolv_context *ctx,
 
 	  if (ap >= &host_data->aliases[MAX_NR_ALIASES - 1])
 	    continue;
-	  n = dn_expand (answer->buf, end_of_message, cp, tbuf, sizeof tbuf);
+	  n = __libc_dn_expand (answer->buf, end_of_message, cp,
+				tbuf, sizeof tbuf);
 	  if (__glibc_unlikely (n < 0 || (*name_ok) (tbuf) == 0))
 	    {
 	      ++had_error;
@@ -848,8 +842,9 @@ getanswer_r (struct resolv_context *ctx,
 	  if (ttlp != NULL && ttl < *ttlp)
 	      *ttlp = ttl;
 
-	  n = dn_expand (answer->buf, end_of_message, cp, tbuf, sizeof tbuf);
-	  if (__glibc_unlikely (n < 0 || res_dnok (tbuf) == 0))
+	  n = __libc_dn_expand (answer->buf, end_of_message, cp,
+				tbuf, sizeof tbuf);
+	  if (__glibc_unlikely (n < 0 || __libc_res_dnok (tbuf) == 0))
 	    {
 	      ++had_error;
 	      continue;
@@ -881,7 +876,7 @@ getanswer_r (struct resolv_context *ctx,
       switch (type)
 	{
 	case T_PTR:
-	  if (__glibc_unlikely (strcasecmp (tname, bp) != 0))
+	  if (__glibc_unlikely (__strcasecmp (tname, bp) != 0))
 	    {
 	      cp += n;
 	      continue;			/* XXX - had_error++ ? */
@@ -897,7 +892,7 @@ getanswer_r (struct resolv_context *ctx,
 	      n = -1;
 	    }
 
-	  if (__glibc_unlikely (n < 0 || res_hnok (bp) == 0))
+	  if (__glibc_unlikely (n < 0 || __libc_res_hnok (bp) == 0))
 	    {
 	      ++had_error;
 	      break;
@@ -911,7 +906,7 @@ getanswer_r (struct resolv_context *ctx,
 	  return NSS_STATUS_SUCCESS;
 	case T_A:
 	case T_AAAA:
-	  if (__glibc_unlikely (strcasecmp (result->h_name, bp) != 0))
+	  if (__glibc_unlikely (__strcasecmp (result->h_name, bp) != 0))
 	    {
 	      cp += n;
 	      continue;			/* XXX - had_error++ ? */
@@ -1060,7 +1055,7 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname,
       *h_errnop = NO_RECOVERY;
       return NSS_STATUS_UNAVAIL;
     }
-  if (__glibc_unlikely (res_hnok (buffer) == 0))
+  if (__glibc_unlikely (__libc_res_hnok (buffer) == 0))
     {
       errno = EBADMSG;
       *errnop = EBADMSG;
@@ -1093,7 +1088,7 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname,
 
 	  n = -1;
 	}
-      if (__glibc_unlikely (n < 0 || res_hnok (buffer) == 0))
+      if (__glibc_unlikely (n < 0 || __libc_res_hnok (buffer) == 0))
 	{
 	  ++had_error;
 	  continue;
@@ -1142,8 +1137,9 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname,
 	  if (ttlp != NULL && ttl < *ttlp)
 	      *ttlp = ttl;
 
-	  n = dn_expand (answer->buf, end_of_message, cp, tbuf, sizeof tbuf);
-	  if (__glibc_unlikely (n < 0 || res_hnok (tbuf) == 0))
+	  n = __libc_dn_expand (answer->buf, end_of_message, cp,
+				tbuf, sizeof tbuf);
+	  if (__glibc_unlikely (n < 0 || __libc_res_hnok (tbuf) == 0))
 	    {
 	      ++had_error;
 	      continue;
diff --git a/resolv/nss_dns/dns-network.c b/resolv/nss_dns/dns-network.c
index 801313caec..74b78959c2 100644
--- a/resolv/nss_dns/dns-network.c
+++ b/resolv/nss_dns/dns-network.c
@@ -67,11 +67,10 @@
 #include "nsswitch.h"
 #include <arpa/inet.h>
 #include <arpa/nameser.h>
+#include <nss_dns.h>
 #include <resolv/resolv-internal.h>
 #include <resolv/resolv_context.h>
 
-NSS_DECLARE_MODULE_FUNCTIONS (dns)
-
 /* Maximum number of aliases we allow.  */
 #define MAX_NR_ALIASES	48
 
@@ -152,7 +151,7 @@ _nss_dns_getnetbyname_r (const char *name, struct netent *result,
   __resolv_context_put (ctx);
   return status;
 }
-
+libc_hidden_def (_nss_dns_getnetbyname_r)
 
 enum nss_status
 _nss_dns_getnetbyaddr_r (uint32_t net, int type, struct netent *result,
@@ -246,7 +245,7 @@ _nss_dns_getnetbyaddr_r (uint32_t net, int type, struct netent *result,
   __resolv_context_put (ctx);
   return status;
 }
-
+libc_hidden_def (_nss_dns_getnetbyaddr_r)
 
 static enum nss_status
 getanswer_r (const querybuf *answer, int anslen, struct netent *result,
@@ -347,7 +346,7 @@ getanswer_r (const querybuf *answer, int anslen, struct netent *result,
 	  n = -1;
 	}
 
-      if (n < 0 || res_dnok (bp) == 0)
+      if (n < 0 || __libc_res_dnok (bp) == 0)
 	break;
       cp += n;
 
@@ -381,7 +380,7 @@ getanswer_r (const querybuf *answer, int anslen, struct netent *result,
 	      n = -1;
 	    }
 
-	  if (n < 0 || !res_hnok (bp))
+	  if (n < 0 || !__libc_res_hnok (bp))
 	    {
 	      /* XXX What does this mean?  The original form from bind
 		 returns NULL. Incrementing cp has no effect in any case.
@@ -469,7 +468,7 @@ getanswer_r (const querybuf *answer, int anslen, struct netent *result,
 		    /* If we are out of digits now, there are two cases:
 		       1. We are done with digits and now see "in-addr.arpa".
 		       2. This is not the droid we are looking for.  */
-		    if (!isdigit (*p) && !strcasecmp (p, "in-addr.arpa"))
+		    if (!isdigit (*p) && !__strcasecmp (p, "in-addr.arpa"))
 		      {
 			result->n_net = val;
 			return NSS_STATUS_SUCCESS;
-- 
2.31.1



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

* [PATCH 30/30] nss: Directly load nss_dns, without going through dlsym/dlopen
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
                   ` (28 preceding siblings ...)
  2021-07-02 18:49 ` [PATCH 29/30] resolv: Move nss_dns " Florian Weimer
@ 2021-07-02 18:50 ` Florian Weimer
  29 siblings, 0 replies; 33+ messages in thread
From: Florian Weimer @ 2021-07-02 18:50 UTC (permalink / raw)
  To: libc-alpha

This partially fixes static-only NSS support (bug 27959): The dns
module no longer needs dlopen.  Support for the files module remains
to be added, and also support for disabling dlopen altogher.
---
 include/nss_dns.h          | 13 ++++++-----
 nss/nss_module.c           | 31 ++++++++++++++++++++++++-
 nss/nss_module.h           | 10 +++++++--
 resolv/Makefile            |  1 +
 resolv/nss_dns_functions.c | 46 ++++++++++++++++++++++++++++++++++++++
 5 files changed, 93 insertions(+), 8 deletions(-)
 create mode 100644 resolv/nss_dns_functions.c

diff --git a/include/nss_dns.h b/include/nss_dns.h
index 63b5853870..53205b27a6 100644
--- a/include/nss_dns.h
+++ b/include/nss_dns.h
@@ -24,13 +24,16 @@
 NSS_DECLARE_MODULE_FUNCTIONS (dns)
 
 libc_hidden_proto (_nss_dns_getcanonname_r)
-libc_hidden_proto (_nss_dns_gethostbyname3_r)
-libc_hidden_proto (_nss_dns_gethostbyname2_r)
-libc_hidden_proto (_nss_dns_gethostbyname_r)
-libc_hidden_proto (_nss_dns_gethostbyname4_r)
 libc_hidden_proto (_nss_dns_gethostbyaddr2_r)
 libc_hidden_proto (_nss_dns_gethostbyaddr_r)
-libc_hidden_proto (_nss_dns_getnetbyname_r)
+libc_hidden_proto (_nss_dns_gethostbyname2_r)
+libc_hidden_proto (_nss_dns_gethostbyname3_r)
+libc_hidden_proto (_nss_dns_gethostbyname4_r)
+libc_hidden_proto (_nss_dns_gethostbyname_r)
 libc_hidden_proto (_nss_dns_getnetbyaddr_r)
+libc_hidden_proto (_nss_dns_getnetbyname_r)
+
+void __nss_dns_functions (nss_module_functions_untyped pointers)
+  attribute_hidden;
 
 #endif
diff --git a/nss/nss_module.c b/nss/nss_module.c
index 60c070c851..cb91a16e3a 100644
--- a/nss/nss_module.c
+++ b/nss/nss_module.c
@@ -26,6 +26,7 @@
 #include <dlfcn.h>
 #include <gnu/lib-names.h>
 #include <libc-lock.h>
+#include <nss_dns.h>
 #include <stddef.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -110,10 +111,36 @@ static const function_name nss_function_name_array[] =
 #include "function.def"
   };
 
+static bool
+module_load_nss_dns (struct nss_module *module)
+{
+  /* Initialize the function pointers, following the double-checked
+     locking idiom.  */
+  __libc_lock_lock (nss_module_list_lock);
+  switch ((enum nss_module_state) atomic_load_acquire (&module->state))
+    {
+    case nss_module_uninitialized:
+    case nss_module_failed:
+      __nss_dns_functions (module->functions.untyped);
+      module->handle = NULL;
+      /* Synchronizes with unlocked __nss_module_load atomic_load_acquire.  */
+      atomic_store_release (&module->state, nss_module_loaded);
+      break;
+    case nss_module_loaded:
+      /* Nothing to clean up.  */
+      break;
+    }
+  __libc_lock_unlock (nss_module_list_lock);
+  return true;
+}
+
 /* Internal implementation of __nss_module_load.  */
 static bool
 module_load (struct nss_module *module)
 {
+  if (strcmp (module->name, "dns") == 0)
+    return module_load_nss_dns (module);
+
   void *handle;
   {
     char *shlib_name;
@@ -360,7 +387,9 @@ __nss_module_freeres (void)
   struct nss_module *current = nss_module_list;
   while (current != NULL)
     {
-      if (current->state == nss_module_loaded)
+      /* Ignore built-in modules (which have a NULL handle).  */
+      if (current->state == nss_module_loaded
+	  && current->handle != NULL)
         __libc_dlclose (current->handle);
 
       struct nss_module *next = current->next;
diff --git a/nss/nss_module.h b/nss/nss_module.h
index 05c4791d11..908b2351d4 100644
--- a/nss/nss_module.h
+++ b/nss/nss_module.h
@@ -33,10 +33,16 @@ struct nss_module_functions
 #include "function.def"
 };
 
+/* Number of elements of the nss_module_functions_untyped array.  */
+enum
+  {
+    nss_module_functions_count = (sizeof (struct nss_module_functions)
+                                  / sizeof (void *))
+  };
+
 /* Untyped version of struct nss_module_functions, for consistent
    processing purposes.  */
-typedef void *nss_module_functions_untyped[sizeof (struct nss_module_functions)
-                                           / sizeof (void *)];
+typedef void *nss_module_functions_untyped[nss_module_functions_count];
 
 /* Initialization state of a NSS module.  */
 enum nss_module_state
diff --git a/resolv/Makefile b/resolv/Makefile
index dd0a98c74f..31d27454b4 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -48,6 +48,7 @@ routines := \
   ns_name_unpack \
   ns_samename \
   nsap_addr \
+  nss_dns_functions \
   res-close \
   res-name-checking \
   res-state \
diff --git a/resolv/nss_dns_functions.c b/resolv/nss_dns_functions.c
new file mode 100644
index 0000000000..684718d4a9
--- /dev/null
+++ b/resolv/nss_dns_functions.c
@@ -0,0 +1,46 @@
+/* Direct access for nss_dns functions for NSS module loading.
+   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/>.  */
+
+#include <nss/nss_module.h>
+#include <nss_dns.h>
+#include <string.h>
+#include <sysdep.h>
+
+void
+__nss_dns_functions (nss_module_functions_untyped pointers)
+{
+  struct nss_module_functions typed =
+    {
+      .getcanonname_r = &_nss_dns_getcanonname_r,
+      .gethostbyname3_r = &_nss_dns_gethostbyname3_r,
+      .gethostbyname2_r = &_nss_dns_gethostbyname2_r,
+      .gethostbyname_r = &_nss_dns_gethostbyname_r,
+      .gethostbyname4_r = &_nss_dns_gethostbyname4_r,
+      .gethostbyaddr2_r = &_nss_dns_gethostbyaddr2_r,
+      .gethostbyaddr_r = &_nss_dns_gethostbyaddr_r,
+      .getnetbyname_r = &_nss_dns_getnetbyname_r,
+      .getnetbyaddr_r = &_nss_dns_getnetbyaddr_r,
+    };
+
+  memcpy (pointers, &typed, sizeof (nss_module_functions_untyped));
+
+#ifdef PTR_MANGLE
+  for (int i = 0; i < nss_module_functions_count; ++i)
+    PTR_MANGLE (pointers[i]);
+#endif
+}
-- 
2.31.1


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

* Re: [PATCH 18/30] resolv: Move __res_get_nsaddr to its own file and into libc
  2021-07-08 15:04 ` [PATCH 18/30] resolv: Move __res_get_nsaddr to its own file and " Florian Weimer
@ 2021-07-15  5:01   ` Carlos O'Donell
  0 siblings, 0 replies; 33+ messages in thread
From: Carlos O'Donell @ 2021-07-15  5:01 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 7/8/21 11:04 AM, Florian Weimer via Libc-alpha wrote:
> Eliminate the use of the EXT macro from it because it does not
> add clarity.  The function was added to res_send.c in 2015, and
> the copyright year reflects that.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

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

> ---
>  resolv/Makefile          |  1 +
>  resolv/Versions          |  1 +
>  resolv/res_get_nsaddr.c  | 39 +++++++++++++++++++++++++++++++++++++++
>  resolv/res_send.c        | 25 ++++---------------------
>  resolv/resolv-internal.h |  6 ++++++
>  5 files changed, 51 insertions(+), 21 deletions(-)
>  create mode 100644 resolv/res_get_nsaddr.c
> 
> diff --git a/resolv/Makefile b/resolv/Makefile
> index 7e142b9a14..6eed73de87 100644
> --- a/resolv/Makefile
> +++ b/resolv/Makefile
> @@ -46,6 +46,7 @@ routines := \
>    res-close \
>    res-name-checking \
>    res-state \
> +  res_get_nsaddr \

OK.

>    res_hconf \
>    res_init \
>    res_libc \
> diff --git a/resolv/Versions b/resolv/Versions
> index 3e3b89a0b2..fc14cdb701 100644
> --- a/resolv/Versions
> +++ b/resolv/Versions
> @@ -81,6 +81,7 @@ libc {
>      __ns_name_skip;
>      __ns_name_uncompress;
>      __ns_name_unpack;
> +    __res_get_nsaddr;

OK.

>      __res_iclose;
>      __resolv_context_get;
>      __resolv_context_get_override;
> diff --git a/resolv/res_get_nsaddr.c b/resolv/res_get_nsaddr.c
> new file mode 100644
> index 0000000000..593597bdd7
> --- /dev/null
> +++ b/resolv/res_get_nsaddr.c
> @@ -0,0 +1,39 @@
> +/* Name server address at specified index in res_state.

OK.

> +   Copyright (C) 2015-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/>.  */
> +
> +#include <assert.h>
> +#include <resolv.h>
> +#include <resolv-internal.h>
> +
> +struct sockaddr *
> +__res_get_nsaddr (res_state statp, unsigned int n)
> +{
> +  assert (n < statp->nscount);
> +
> +  if (statp->nsaddr_list[n].sin_family == 0
> +      && statp->_u._ext.nsaddrs[n] != NULL)
> +    /* statp->_u._ext.nsaddrs[n] holds an address that is larger than
> +       struct sockaddr, and user code did not update
> +       statp->nsaddr_list[n].  */
> +    return (struct sockaddr *) statp->_u._ext.nsaddrs[n];

OK.

> +  else
> +    /* User code updated statp->nsaddr_list[n], or statp->nsaddr_list[n]
> +       has the same content as statp->_u._ext.nsaddrs[n].  */
> +    return (struct sockaddr *) (void *) &statp->nsaddr_list[n];

OK.

> +}
> +libc_hidden_def (__res_get_nsaddr)
> diff --git a/resolv/res_send.c b/resolv/res_send.c
> index b6139c7d62..78f564ee85 100644
> --- a/resolv/res_send.c
> +++ b/resolv/res_send.c
> @@ -180,7 +180,6 @@ evNowTime(struct timespec *res) {
>  
>  /* Forward. */
>  
> -static struct sockaddr *get_nsaddr (res_state, unsigned int);

OK.

>  static int		send_vc(res_state, const u_char *, int,
>  				const u_char *, int,
>  				u_char **, int *, int *, int, u_char **,
> @@ -215,7 +214,7 @@ res_ourserver_p(const res_state statp, const struct sockaddr_in6 *inp)
>  
>  	    for (ns = 0;  ns < statp->nscount;  ns++) {
>  		const struct sockaddr_in *srv =
> -		    (struct sockaddr_in *) get_nsaddr (statp, ns);
> +		    (struct sockaddr_in *) __res_get_nsaddr (statp, ns);

OK.

>  
>  		if ((srv->sin_family == AF_INET) &&
>  		    (srv->sin_port == port) &&
> @@ -226,7 +225,7 @@ res_ourserver_p(const res_state statp, const struct sockaddr_in6 *inp)
>  	} else if (inp->sin6_family == AF_INET6) {
>  	    for (ns = 0;  ns < statp->nscount;  ns++) {
>  		const struct sockaddr_in6 *srv
> -		  = (struct sockaddr_in6 *) get_nsaddr (statp, ns);
> +		  = (struct sockaddr_in6 *) __res_get_nsaddr (statp, ns);

OK.

>  		if ((srv->sin6_family == AF_INET6) &&
>  		    (srv->sin6_port == inp->sin6_port) &&
>  		    !(memcmp(&srv->sin6_addr, &in6addr_any,
> @@ -608,22 +607,6 @@ res_send (const unsigned char *buf, int buflen, unsigned char *ans, int anssiz)
>  
>  /* Private */
>  
> -static struct sockaddr *
> -get_nsaddr (res_state statp, unsigned int n)
> -{
> -  assert (n < statp->nscount);
> -
> -  if (statp->nsaddr_list[n].sin_family == 0 && EXT(statp).nsaddrs[n] != NULL)
> -    /* EXT(statp).nsaddrs[n] holds an address that is larger than
> -       struct sockaddr, and user code did not update
> -       statp->nsaddr_list[n].  */
> -    return (struct sockaddr *) EXT(statp).nsaddrs[n];
> -  else
> -    /* User code updated statp->nsaddr_list[n], or statp->nsaddr_list[n]
> -       has the same content as EXT(statp).nsaddrs[n].  */
> -    return (struct sockaddr *) (void *) &statp->nsaddr_list[n];
> -}
> -

OK. Remove.

>  /* Close the resolver structure, assign zero to *RESPLEN2 if RESPLEN2
>     is not NULL, and return zero.  */
>  static int
> @@ -717,7 +700,7 @@ send_vc(res_state statp,
>  	const HEADER *hp = (HEADER *) buf;
>  	const HEADER *hp2 = (HEADER *) buf2;
>  	HEADER *anhp = (HEADER *) *ansp;
> -	struct sockaddr *nsap = get_nsaddr (statp, ns);
> +	struct sockaddr *nsap = __res_get_nsaddr (statp, ns);

OK.

>  	int truncating, connreset, n;
>  	/* On some architectures compiler might emit a warning indicating
>  	   'resplen' may be used uninitialized.  However if buf2 == NULL
> @@ -948,7 +931,7 @@ static int
>  reopen (res_state statp, int *terrno, int ns)
>  {
>  	if (EXT(statp).nssocks[ns] == -1) {
> -		struct sockaddr *nsap = get_nsaddr (statp, ns);
> +		struct sockaddr *nsap = __res_get_nsaddr (statp, ns);

OK.

>  		socklen_t slen;
>  
>  		/* only try IPv6 if IPv6 NS and if not failed before */
> diff --git a/resolv/resolv-internal.h b/resolv/resolv-internal.h
> index e1e8aa3ef3..c18b1d0472 100644
> --- a/resolv/resolv-internal.h
> +++ b/resolv/resolv-internal.h
> @@ -103,4 +103,10 @@ void __res_thread_freeres (void) attribute_hidden;
>     success, -1 on failure.  */
>  int __res_enable_icmp (int family, int fd) attribute_hidden;
>  
> +
> +/* Returns the name server address for the indicated index.  */
> +struct sockaddr *__res_get_nsaddr (res_state statp, unsigned int n);
> +libc_hidden_proto (__res_get_nsaddr)

OK.

> +
> +
>  #endif  /* _RESOLV_INTERNAL_H */
> 


-- 
Cheers,
Carlos.


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

* [PATCH 18/30] resolv: Move __res_get_nsaddr to its own file and into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer
@ 2021-07-08 15:04 ` Florian Weimer
  2021-07-15  5:01   ` Carlos O'Donell
  0 siblings, 1 reply; 33+ messages in thread
From: Florian Weimer @ 2021-07-08 15:04 UTC (permalink / raw)
  To: libc-alpha

Eliminate the use of the EXT macro from it because it does not
add clarity.  The function was added to res_send.c in 2015, and
the copyright year reflects that.
---
 resolv/Makefile          |  1 +
 resolv/Versions          |  1 +
 resolv/res_get_nsaddr.c  | 39 +++++++++++++++++++++++++++++++++++++++
 resolv/res_send.c        | 25 ++++---------------------
 resolv/resolv-internal.h |  6 ++++++
 5 files changed, 51 insertions(+), 21 deletions(-)
 create mode 100644 resolv/res_get_nsaddr.c

diff --git a/resolv/Makefile b/resolv/Makefile
index 7e142b9a14..6eed73de87 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -46,6 +46,7 @@ routines := \
   res-close \
   res-name-checking \
   res-state \
+  res_get_nsaddr \
   res_hconf \
   res_init \
   res_libc \
diff --git a/resolv/Versions b/resolv/Versions
index 3e3b89a0b2..fc14cdb701 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -81,6 +81,7 @@ libc {
     __ns_name_skip;
     __ns_name_uncompress;
     __ns_name_unpack;
+    __res_get_nsaddr;
     __res_iclose;
     __resolv_context_get;
     __resolv_context_get_override;
diff --git a/resolv/res_get_nsaddr.c b/resolv/res_get_nsaddr.c
new file mode 100644
index 0000000000..593597bdd7
--- /dev/null
+++ b/resolv/res_get_nsaddr.c
@@ -0,0 +1,39 @@
+/* Name server address at specified index in res_state.
+   Copyright (C) 2015-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/>.  */
+
+#include <assert.h>
+#include <resolv.h>
+#include <resolv-internal.h>
+
+struct sockaddr *
+__res_get_nsaddr (res_state statp, unsigned int n)
+{
+  assert (n < statp->nscount);
+
+  if (statp->nsaddr_list[n].sin_family == 0
+      && statp->_u._ext.nsaddrs[n] != NULL)
+    /* statp->_u._ext.nsaddrs[n] holds an address that is larger than
+       struct sockaddr, and user code did not update
+       statp->nsaddr_list[n].  */
+    return (struct sockaddr *) statp->_u._ext.nsaddrs[n];
+  else
+    /* User code updated statp->nsaddr_list[n], or statp->nsaddr_list[n]
+       has the same content as statp->_u._ext.nsaddrs[n].  */
+    return (struct sockaddr *) (void *) &statp->nsaddr_list[n];
+}
+libc_hidden_def (__res_get_nsaddr)
diff --git a/resolv/res_send.c b/resolv/res_send.c
index b6139c7d62..78f564ee85 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -180,7 +180,6 @@ evNowTime(struct timespec *res) {
 
 /* Forward. */
 
-static struct sockaddr *get_nsaddr (res_state, unsigned int);
 static int		send_vc(res_state, const u_char *, int,
 				const u_char *, int,
 				u_char **, int *, int *, int, u_char **,
@@ -215,7 +214,7 @@ res_ourserver_p(const res_state statp, const struct sockaddr_in6 *inp)
 
 	    for (ns = 0;  ns < statp->nscount;  ns++) {
 		const struct sockaddr_in *srv =
-		    (struct sockaddr_in *) get_nsaddr (statp, ns);
+		    (struct sockaddr_in *) __res_get_nsaddr (statp, ns);
 
 		if ((srv->sin_family == AF_INET) &&
 		    (srv->sin_port == port) &&
@@ -226,7 +225,7 @@ res_ourserver_p(const res_state statp, const struct sockaddr_in6 *inp)
 	} else if (inp->sin6_family == AF_INET6) {
 	    for (ns = 0;  ns < statp->nscount;  ns++) {
 		const struct sockaddr_in6 *srv
-		  = (struct sockaddr_in6 *) get_nsaddr (statp, ns);
+		  = (struct sockaddr_in6 *) __res_get_nsaddr (statp, ns);
 		if ((srv->sin6_family == AF_INET6) &&
 		    (srv->sin6_port == inp->sin6_port) &&
 		    !(memcmp(&srv->sin6_addr, &in6addr_any,
@@ -608,22 +607,6 @@ res_send (const unsigned char *buf, int buflen, unsigned char *ans, int anssiz)
 
 /* Private */
 
-static struct sockaddr *
-get_nsaddr (res_state statp, unsigned int n)
-{
-  assert (n < statp->nscount);
-
-  if (statp->nsaddr_list[n].sin_family == 0 && EXT(statp).nsaddrs[n] != NULL)
-    /* EXT(statp).nsaddrs[n] holds an address that is larger than
-       struct sockaddr, and user code did not update
-       statp->nsaddr_list[n].  */
-    return (struct sockaddr *) EXT(statp).nsaddrs[n];
-  else
-    /* User code updated statp->nsaddr_list[n], or statp->nsaddr_list[n]
-       has the same content as EXT(statp).nsaddrs[n].  */
-    return (struct sockaddr *) (void *) &statp->nsaddr_list[n];
-}
-
 /* Close the resolver structure, assign zero to *RESPLEN2 if RESPLEN2
    is not NULL, and return zero.  */
 static int
@@ -717,7 +700,7 @@ send_vc(res_state statp,
 	const HEADER *hp = (HEADER *) buf;
 	const HEADER *hp2 = (HEADER *) buf2;
 	HEADER *anhp = (HEADER *) *ansp;
-	struct sockaddr *nsap = get_nsaddr (statp, ns);
+	struct sockaddr *nsap = __res_get_nsaddr (statp, ns);
 	int truncating, connreset, n;
 	/* On some architectures compiler might emit a warning indicating
 	   'resplen' may be used uninitialized.  However if buf2 == NULL
@@ -948,7 +931,7 @@ static int
 reopen (res_state statp, int *terrno, int ns)
 {
 	if (EXT(statp).nssocks[ns] == -1) {
-		struct sockaddr *nsap = get_nsaddr (statp, ns);
+		struct sockaddr *nsap = __res_get_nsaddr (statp, ns);
 		socklen_t slen;
 
 		/* only try IPv6 if IPv6 NS and if not failed before */
diff --git a/resolv/resolv-internal.h b/resolv/resolv-internal.h
index e1e8aa3ef3..c18b1d0472 100644
--- a/resolv/resolv-internal.h
+++ b/resolv/resolv-internal.h
@@ -103,4 +103,10 @@ void __res_thread_freeres (void) attribute_hidden;
    success, -1 on failure.  */
 int __res_enable_icmp (int family, int fd) attribute_hidden;
 
+
+/* Returns the name server address for the indicated index.  */
+struct sockaddr *__res_get_nsaddr (res_state statp, unsigned int n);
+libc_hidden_proto (__res_get_nsaddr)
+
+
 #endif  /* _RESOLV_INTERNAL_H */
-- 
2.31.1



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

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

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-02 18:47 [PATCH 00/30] Move nss_dns into libc Florian Weimer
2021-07-02 18:47 ` [PATCH 01/30] socket: Add hidden prototype for setsockopt Florian Weimer
2021-07-02 18:47 ` [PATCH 02/30] resolv: Deprecate legacy interfaces in <resolv.h> Florian Weimer
2021-07-02 18:47 ` [PATCH 03/30] resolv: Sort Makefile routines and Versions lexicographically Florian Weimer
2021-07-02 18:47 ` [PATCH 04/30] nss_dns: Do not use deprecated packet parsing functions Florian Weimer
2021-07-02 18:47 ` [PATCH 05/30] resolv: Move ns_name_ntop to its own file and into libc Florian Weimer
2021-07-02 18:48 ` [PATCH 06/30] resolv: Move ns_name_unpack " Florian Weimer
2021-07-02 18:48 ` [PATCH 07/30] resolv: Move ns_name_skip " Florian Weimer
2021-07-02 18:48 ` [PATCH 08/30] resolv: Move ns_name_uncompress into " Florian Weimer
2021-07-02 18:48 ` [PATCH 09/30] resolv: Move ns_name_pton " Florian Weimer
2021-07-02 18:48 ` [PATCH 10/30] resolv: Move ns_name_pack " Florian Weimer
2021-07-02 18:48 ` [PATCH 11/30] resolv: Move ns_name_compress " Florian Weimer
2021-07-02 18:48 ` [PATCH 12/30] resolv: Move dn_expand to " Florian Weimer
2021-07-02 18:48 ` [PATCH 13/30] resolv: Move _getlong, _getshort, __putlong, __putshort to res-putget Florian Weimer
2021-07-02 18:48 ` [PATCH 14/30] resolv: Move dn_comp to its own file and into libc Florian Weimer
2021-07-02 18:48 ` [PATCH 15/30] resolv: Move dn_skipname " Florian Weimer
2021-07-02 18:48 ` [PATCH 16/30] resolv: Rename res_comp.c to res-name-checking.c and move " Florian Weimer
2021-07-02 18:49 ` [PATCH 17/30] resolv: Remove unnecessary res_isourserver_p call from send_dg Florian Weimer
2021-07-02 18:49 ` [PATCH 18/30] resolv: Move __res_get_nsaddr to its own file and into libc Florian Weimer
2021-07-02 18:49 ` [PATCH 19/30] resolv: Move res_isourserver to its own file and reformat to GNU style Florian Weimer
2021-07-02 18:49 ` [PATCH 20/30] resolv: Move ns_makecanon into its own file, and into libc Florian Weimer
2021-07-02 18:49 ` [PATCH 21/30] resolv: Move ns_samename " Florian Weimer
2021-07-02 18:49 ` [PATCH 22/30] resolv: Move res_nameinquery to its own file " Florian Weimer
2021-07-02 18:49 ` [PATCH 23/30] resolv: Move res_queriesmatch " Florian Weimer
2021-07-02 18:49 ` [PATCH 24/30] resolv: Move __res_context_hostalias into " Florian Weimer
2021-07-02 18:49 ` [PATCH 25/30] resolv: Move res_hostalias into its own file, along with hostalias Florian Weimer
2021-07-02 18:49 ` [PATCH 26/30] resolv: Move res_send, res_nsend into libc Florian Weimer
2021-07-02 18:49 ` [PATCH 27/30] resolv: Move res_mkquery, res_nmkquery " Florian Weimer
2021-07-02 18:49 ` [PATCH 28/30] resolv: Move res_query functions " Florian Weimer
2021-07-02 18:49 ` [PATCH 29/30] resolv: Move nss_dns " Florian Weimer
2021-07-02 18:50 ` [PATCH 30/30] nss: Directly load nss_dns, without going through dlsym/dlopen Florian Weimer
2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer
2021-07-08 15:04 ` [PATCH 18/30] resolv: Move __res_get_nsaddr to its own file and " Florian Weimer
2021-07-15  5:01   ` 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).