unofficial mirror of libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc
@ 2021-07-15  9:08 Florian Weimer via Libc-alpha
  2021-07-15  9:09 ` [PATCH 01/24] resolv: Deprecate legacy interfaces in libresolv Florian Weimer via Libc-alpha
                   ` (24 more replies)
  0 siblings, 25 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:08 UTC (permalink / raw)
  To: libc-alpha

I've pushed six already-approved patches, but I didn't want to
resequence the rest.

ns_skip_name has been fixed.  I fuzz-tested it against the old
implementation and found what is arguably a bug in the old
implementation.

I updated the NEWS file with a list of deprecated functions, and a few
more based on a review of the remaining libresolv contents.

I hope I addressed all review comments.

Thanks,
Florian

Florian Weimer (24):
  resolv: Deprecate legacy interfaces in libresolv
  resolv: Move ns_name_skip to its own file and into libc (bug 28091)
  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: 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                                          |  14 +
 include/arpa/nameser.h                        |  21 +-
 include/nss_dns.h                             |  39 ++
 include/resolv.h                              |  22 +-
 inet/arpa/inet.h                              |   3 +-
 nss/nss_files_functions.c                     |   6 -
 nss/nss_module.c                              |  58 ++-
 nss/nss_module.h                              |  10 +-
 resolv/Makefile                               |  44 +-
 resolv/Versions                               | 121 ++++--
 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                              | 407 ------------------
 resolv/ns_name_compress.c                     |  50 +++
 resolv/ns_name_pack.c                         | 202 +++++++++
 resolv/ns_name_pton.c                         | 157 +++++++
 resolv/ns_name_skip.c                         |  70 +++
 resolv/ns_name_uncompress.c                   |  45 ++
 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                    |  12 +-
 resolv/nss_dns/dns-host.c                     |  50 +--
 resolv/nss_dns/dns-network.c                  |  15 +-
 resolv/nss_dns_functions.c                    |  40 ++
 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                             | 232 ++--------
 resolv/resolv-deprecated.c                    |  56 +++
 resolv/resolv-internal.h                      |  21 +-
 resolv/resolv.h                               | 103 ++---
 sysdeps/mach/hurd/i386/libc.abilist           |  44 ++
 sysdeps/mach/hurd/i386/libresolv.abilist      |  22 -
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  44 ++
 .../unix/sysv/linux/aarch64/libresolv.abilist |  22 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |  49 +++
 .../unix/sysv/linux/alpha/libresolv.abilist   |  27 --
 sysdeps/unix/sysv/linux/arc/libc.abilist      |  44 ++
 sysdeps/unix/sysv/linux/arc/libresolv.abilist |  22 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  44 ++
 .../unix/sysv/linux/arm/be/libresolv.abilist  |  22 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  44 ++
 .../unix/sysv/linux/arm/le/libresolv.abilist  |  22 -
 sysdeps/unix/sysv/linux/csky/libc.abilist     |  44 ++
 .../unix/sysv/linux/csky/libresolv.abilist    |  22 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |  49 +++
 .../unix/sysv/linux/hppa/libresolv.abilist    |  27 --
 sysdeps/unix/sysv/linux/i386/libc.abilist     |  49 +++
 .../unix/sysv/linux/i386/libresolv.abilist    |  27 --
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |  49 +++
 .../unix/sysv/linux/ia64/libresolv.abilist    |  27 --
 .../sysv/linux/m68k/coldfire/libc.abilist     |  44 ++
 .../linux/m68k/coldfire/libresolv.abilist     |  22 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  49 +++
 .../sysv/linux/m68k/m680x0/libresolv.abilist  |  27 --
 .../sysv/linux/microblaze/be/libc.abilist     |  44 ++
 .../linux/microblaze/be/libresolv.abilist     |  22 -
 .../sysv/linux/microblaze/le/libc.abilist     |  44 ++
 .../linux/microblaze/le/libresolv.abilist     |  22 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |  49 +++
 .../sysv/linux/mips/mips32/libresolv.abilist  |  27 --
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |  49 +++
 .../sysv/linux/mips/mips64/n32/libc.abilist   |  49 +++
 .../linux/mips/mips64/n32/libresolv.abilist   |  27 --
 .../sysv/linux/mips/mips64/n64/libc.abilist   |  49 +++
 .../linux/mips/mips64/n64/libresolv.abilist   |  27 --
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |  44 ++
 .../unix/sysv/linux/nios2/libresolv.abilist   |  22 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |  49 +++
 .../linux/powerpc/powerpc32/libresolv.abilist |  27 --
 .../powerpc/powerpc32/nofpu/libc.abilist      |  49 +++
 .../linux/powerpc/powerpc64/be/libc.abilist   |  44 ++
 .../powerpc/powerpc64/be/libresolv.abilist    |  22 -
 .../linux/powerpc/powerpc64/le/libc.abilist   |  44 ++
 .../powerpc/powerpc64/le/libresolv.abilist    |  22 -
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |  44 ++
 .../sysv/linux/riscv/rv32/libresolv.abilist   |  22 -
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |  44 ++
 .../sysv/linux/riscv/rv64/libresolv.abilist   |  22 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist |  49 +++
 .../sysv/linux/s390/s390-32/libresolv.abilist |  27 --
 .../unix/sysv/linux/s390/s390-64/libc.abilist |  44 ++
 .../sysv/linux/s390/s390-64/libresolv.abilist |  22 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  49 +++
 .../unix/sysv/linux/sh/be/libresolv.abilist   |  27 --
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  49 +++
 .../unix/sysv/linux/sh/le/libresolv.abilist   |  27 --
 .../sysv/linux/sparc/sparc32/libc.abilist     |  49 +++
 .../linux/sparc/sparc32/libresolv.abilist     |  27 --
 .../sysv/linux/sparc/sparc64/libc.abilist     |  49 +++
 .../linux/sparc/sparc64/libresolv.abilist     |  27 --
 .../unix/sysv/linux/x86_64/64/libc.abilist    |  44 ++
 .../sysv/linux/x86_64/64/libresolv.abilist    |  22 -
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |  44 ++
 .../sysv/linux/x86_64/x32/libresolv.abilist   |  22 -
 110 files changed, 3818 insertions(+), 1832 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_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_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] 34+ messages in thread

* [PATCH 01/24] resolv: Deprecate legacy interfaces in libresolv
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
@ 2021-07-15  9:09 ` Florian Weimer via Libc-alpha
  2021-07-15  9:30   ` Andreas Schwab
  2021-07-19  1:48   ` Carlos O'Donell via Libc-alpha
  2021-07-15  9:09 ` [PATCH 02/24] resolv: Move ns_name_skip to its own file and into libc (bug 28091) Florian Weimer via Libc-alpha
                   ` (23 subsequent siblings)
  24 siblings, 2 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:09 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.

inet_ntoa cannot handle IPv6 addresses.

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                  | 14 +++++++
 inet/arpa/inet.h      |  3 +-
 resolv/arpa/nameser.h | 33 ++++++++++++-----
 resolv/resolv.h       | 86 +++++++++++++++++++++++++++----------------
 4 files changed, 95 insertions(+), 41 deletions(-)

diff --git a/NEWS b/NEWS
index 13ffe627da..4df348cce5 100644
--- a/NEWS
+++ b/NEWS
@@ -93,6 +93,20 @@ 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.
 
+* The function inet_neta declared in <arpa/inet.h> has been deprecated.
+
+* 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.  For <resolv.h>,
+  this affects the functions dn_count_labels, 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_rcode, p_time,
+  p_type, putlong, putshort, res_hostalias, res_isourserver,
+  res_nameinquery, res_queriesmatch, res_randomid, sym_ntop, sym_ntos,
+  sym_ston.  For <arpa/nameser.h>, the functions ns_datetosecs,
+  ns_format_ttl, ns_makecanon, ns_parse_ttl, ns_samedomain, ns_samename,
+  ns_sprintrr, ns_sprintrrf, ns_subdomain have been deprecated.
+
 * 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/inet/arpa/inet.h b/inet/arpa/inet.h
index 3a99dbfa5a..54c9c6d468 100644
--- a/inet/arpa/inet.h
+++ b/inet/arpa/inet.h
@@ -74,7 +74,8 @@ extern int inet_aton (const char *__cp, struct in_addr *__inp) __THROW;
 
 /* Format a network number NET into presentation format and place result
    in buffer starting at BUF with length of LEN bytes.  */
-extern char *inet_neta (in_addr_t __net, char *__buf, size_t __len) __THROW;
+extern char *inet_neta (in_addr_t __net, char *__buf, size_t __len) __THROW
+  __attribute_deprecated_msg__ ("Use inet_ntop instead");
 
 /* Convert network number for interface type AF in buffer starting at
    CP to presentation format.  The result will specifiy BITS bits of
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..02a35173e9 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		dn_count_labels (const char *) __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 __RESOLV_DEPRECATED;
 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 related	[flat|nested] 34+ messages in thread

* [PATCH 02/24] resolv: Move ns_name_skip to its own file and into libc (bug 28091)
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
  2021-07-15  9:09 ` [PATCH 01/24] resolv: Deprecate legacy interfaces in libresolv Florian Weimer via Libc-alpha
@ 2021-07-15  9:09 ` Florian Weimer via Libc-alpha
  2021-07-19  1:52   ` Carlos O'Donell via Libc-alpha
  2021-07-15  9:09 ` [PATCH 03/24] resolv: Move ns_name_uncompress into its own file and into libc Florian Weimer via Libc-alpha
                   ` (22 subsequent siblings)
  24 siblings, 1 reply; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:09 UTC (permalink / raw)
  To: libc-alpha

And reformat to GNU style.  Avoid out-of-bounds pointer arithmetic.
This also results in a fix of bug 28091 due to the additional packet
length checks.

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                         | 70 +++++++++++++++++++
 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, 143 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..c26d658a49
--- /dev/null
+++ b/resolv/ns_name_skip.c
@@ -0,0 +1,70 @@
+/* Skip over a (potentially compressed) domain name in 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>
+
+/* 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 (cp < eom)
+    {
+      n = *cp++;
+      if (n == 0)
+        {
+          /* End of domain name without indirection.  */
+          *ptrptr = cp;
+          return 0;
+        }
+
+      /* Check for indirection.  */
+      switch (n & NS_CMPRSFLGS)
+        {
+        case 0:                 /* Normal case, n == len.  */
+          if (eom - cp < n)
+            goto malformed;
+          cp += n;
+          break;
+        case NS_CMPRSFLGS:      /* Indirection.  */
+          if (cp == eom)
+            /* No room for second indirection byte.  */
+            goto malformed;
+          *ptrptr = cp + 1;
+          return 0;
+        default:                /* Illegal type.  */
+          goto malformed;
+        }
+    }
+
+ malformed:
+  __set_errno (EMSGSIZE);
+  return -1;
+}
+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 bf67af76e8..60d11fe99f 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2242,6 +2242,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 posix_spawn_file_actions_addclosefrom_np 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_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 109b905574..dbfe495002 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 posix_spawn_file_actions_addclosefrom_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 ae278c0340..0e29e1b275 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2988,5 +2989,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 a271d889e0..6b335b5580 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 posix_spawn_file_actions_addclosefrom_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 97ce687b41..734b29ab67 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2684,5 +2685,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 64c85c5ac7..d4e2d66553 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2681,5 +2682,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 edc85dc1e1..ba1b6304de 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 posix_spawn_file_actions_addclosefrom_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 918b703f71..8e81396345 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2698,5 +2699,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 cd7d082741..9b07bb8d3c 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2882,5 +2883,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 3b8b100bbd..f4956f1d77 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2657,5 +2658,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 4036b8c739..6d0e4f6609 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2663,5 +2664,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 fb9964f928..e7e115b594 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2825,5 +2826,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 064fee7132..3cf1d6b911 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 posix_spawn_file_actions_addclosefrom_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 14541859b5..9d1742d3e8 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 posix_spawn_file_actions_addclosefrom_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 8a5c574be3..391123b10b 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2786,5 +2787,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 4eccc7c2d0..816b0f4781 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2784,5 +2785,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 6cf6b1a267..2e2b0962fe 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2792,5 +2793,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 0fe1366b21..f273c60d4c 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 posix_spawn_file_actions_addclosefrom_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/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 d8ab09dd70..5967c94d35 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 posix_spawn_file_actions_addclosefrom_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 a7396733ca..fe7339820f 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 posix_spawn_file_actions_addclosefrom_np F
@@ -3023,5 +3024,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 f4fa630d45..5889603bf1 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 posix_spawn_file_actions_addclosefrom_np F
@@ -3068,5 +3069,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 988ac70948..3b45bd462f 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2792,5 +2793,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 1cabd6411b..7aa4d0e136 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 posix_spawn_file_actions_addclosefrom_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 48a4d4cc40..c8883dac58 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 posix_spawn_file_actions_addclosefrom_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 b7179f07d3..e5b8a6a20e 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 posix_spawn_file_actions_addclosefrom_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 0ca8cc574c..271e734702 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 posix_spawn_file_actions_addclosefrom_np F
@@ -3031,6 +3032,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 310d770a8b..1115fe5992 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2827,5 +2828,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 8a53d60b1a..cd6e6602a5 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2705,5 +2706,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 035eb0989c..a63e98a7be 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2702,5 +2703,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 7cc652b8a0..3cf627c882 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 posix_spawn_file_actions_addclosefrom_np F
@@ -3040,5 +3041,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 6d521dfe7b..7232278699 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 posix_spawn_file_actions_addclosefrom_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/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 a535ca6172..7a8e656c3d 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2636,5 +2637,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 6cd8b9a537..c764524f70 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 posix_spawn_file_actions_addclosefrom_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 related	[flat|nested] 34+ messages in thread

* [PATCH 03/24] resolv: Move ns_name_uncompress into its own file and into libc
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
  2021-07-15  9:09 ` [PATCH 01/24] resolv: Deprecate legacy interfaces in libresolv Florian Weimer via Libc-alpha
  2021-07-15  9:09 ` [PATCH 02/24] resolv: Move ns_name_skip to its own file and into libc (bug 28091) Florian Weimer via Libc-alpha
@ 2021-07-15  9:09 ` Florian Weimer via Libc-alpha
  2021-07-15  9:09 ` [PATCH 04/24] resolv: Move ns_name_pton " Florian Weimer via Libc-alpha
                   ` (21 subsequent siblings)
  24 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:09 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.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
---
 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 60d11fe99f..9b5a40a643 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2243,6 +2243,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 posix_spawn_file_actions_addclosefrom_np F
@@ -2367,6 +2368,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 dbfe495002..a5e4e2048e 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 posix_spawn_file_actions_addclosefrom_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 0e29e1b275..4c14296df9 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2990,5 +2991,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 6b335b5580..14a09d9293 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 posix_spawn_file_actions_addclosefrom_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 734b29ab67..591d61a39b 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2686,5 +2687,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 d4e2d66553..0ae97dda6e 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2683,5 +2684,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 ba1b6304de..401a13c8e4 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 posix_spawn_file_actions_addclosefrom_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 8e81396345..a3e95ee6bf 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2700,5 +2701,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 9b07bb8d3c..21b8719369 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2884,5 +2885,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 f4956f1d77..bf797e5296 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2659,5 +2660,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 6d0e4f6609..10e5ea4b61 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2665,5 +2666,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 e7e115b594..3df6b8a5d2 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2827,5 +2828,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 3cf1d6b911..9fc545ac3b 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 posix_spawn_file_actions_addclosefrom_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 9d1742d3e8..cfe9644ecc 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 posix_spawn_file_actions_addclosefrom_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 391123b10b..fe2f6fbffd 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2788,5 +2789,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 816b0f4781..5e085cb1b6 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2786,5 +2787,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 2e2b0962fe..694827b20b 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2794,5 +2795,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 f273c60d4c..ab704d232f 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 posix_spawn_file_actions_addclosefrom_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/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 5967c94d35..5c2f5e9883 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 posix_spawn_file_actions_addclosefrom_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 fe7339820f..0f5901a7c6 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 posix_spawn_file_actions_addclosefrom_np F
@@ -3025,5 +3026,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 5889603bf1..1a7171b20e 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 posix_spawn_file_actions_addclosefrom_np F
@@ -3070,5 +3071,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 3b45bd462f..7d3d78e519 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2794,5 +2795,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 7aa4d0e136..108f1fd985 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 posix_spawn_file_actions_addclosefrom_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 c8883dac58..827ede6ed1 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 posix_spawn_file_actions_addclosefrom_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 e5b8a6a20e..dee7b1d43d 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 posix_spawn_file_actions_addclosefrom_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 271e734702..b4c7670b1f 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 posix_spawn_file_actions_addclosefrom_np F
@@ -3033,6 +3034,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 1115fe5992..b45d8503b1 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2829,5 +2830,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 cd6e6602a5..58392a8d0b 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2707,5 +2708,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 a63e98a7be..cb739240c8 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2704,5 +2705,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 3cf627c882..d9032b4b95 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 posix_spawn_file_actions_addclosefrom_np F
@@ -3042,5 +3043,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 7232278699..96f7d987e9 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 posix_spawn_file_actions_addclosefrom_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/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 7a8e656c3d..bd02683504 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 posix_spawn_file_actions_addclosefrom_np F
@@ -2638,5 +2639,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 c764524f70..4b3c0012c5 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 posix_spawn_file_actions_addclosefrom_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 related	[flat|nested] 34+ messages in thread

* [PATCH 04/24] resolv: Move ns_name_pton into its own file and into libc
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
                   ` (2 preceding siblings ...)
  2021-07-15  9:09 ` [PATCH 03/24] resolv: Move ns_name_uncompress into its own file and into libc Florian Weimer via Libc-alpha
@ 2021-07-15  9:09 ` Florian Weimer via Libc-alpha
  2021-07-15  9:09 ` [PATCH 05/24] resolv: Move ns_name_pack " Florian Weimer via Libc-alpha
                   ` (20 subsequent siblings)
  24 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:09 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.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
---
 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 9b5a40a643..dddf1bbfce 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2242,6 +2242,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
@@ -2367,6 +2368,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 a5e4e2048e..a478d41037 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 4c14296df9..d309ae15d4 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
@@ -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_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 14a09d9293..ef2c9935b6 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 591d61a39b..ae12d2f7e1 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
@@ -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_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 0ae97dda6e..b8ea30939c 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
@@ -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_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 401a13c8e4..1c0115376c 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 a3e95ee6bf..51a979f353 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
@@ -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_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 21b8719369..e93b668363 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
@@ -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_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 bf797e5296..b601587ed6 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
@@ -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_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 10e5ea4b61..f72349ea2f 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
@@ -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_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 3df6b8a5d2..ecc593286d 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
@@ -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_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 9fc545ac3b..e1689c0297 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 cfe9644ecc..f5b07346c2 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 fe2f6fbffd..2bad9fc342 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
@@ -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_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 5e085cb1b6..c935a7e57f 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
@@ -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_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 694827b20b..fd282cff15 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
@@ -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_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 ab704d232f..3d7066cba4 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
@@ -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/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 5c2f5e9883..a65edd6377 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 0f5901a7c6..f4afea1c0e 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
@@ -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_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 1a7171b20e..8660c84c58 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
@@ -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_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 7d3d78e519..102be71006 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
@@ -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_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 108f1fd985..8358781947 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 827ede6ed1..7b8669a5dc 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 dee7b1d43d..6197fd917c 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 b4c7670b1f..7396f67833 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
@@ -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_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 b45d8503b1..e7a7d91b19 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
@@ -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_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 58392a8d0b..60ae375c3c 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
@@ -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_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 cb739240c8..b3c877b450 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
@@ -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_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 d9032b4b95..1d192b689a 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
@@ -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_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 96f7d987e9..c0b226671a 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
@@ -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/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 bd02683504..4e8239479f 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
@@ -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_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 4b3c0012c5..d7528162bc 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 related	[flat|nested] 34+ messages in thread

* [PATCH 05/24] resolv: Move ns_name_pack into its own file and into libc
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
                   ` (3 preceding siblings ...)
  2021-07-15  9:09 ` [PATCH 04/24] resolv: Move ns_name_pton " Florian Weimer via Libc-alpha
@ 2021-07-15  9:09 ` Florian Weimer via Libc-alpha
  2021-07-15  9:09 ` [PATCH 06/24] resolv: Move ns_name_compress " Florian Weimer via Libc-alpha
                   ` (19 subsequent siblings)
  24 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:09 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.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
---
 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 dddf1bbfce..44a08edfc1 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2242,6 +2242,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
@@ -2368,6 +2369,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 a478d41037..c857884187 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 d309ae15d4..e122b6114c 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
@@ -2991,6 +2992,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 ef2c9935b6..8c679d10c1 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 ae12d2f7e1..4dad4c1bc7 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
@@ -2687,6 +2688,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 b8ea30939c..fff76728fe 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
@@ -2684,6 +2685,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 1c0115376c..bf98471537 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 51a979f353..fc44c374a3 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
@@ -2701,6 +2702,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 e93b668363..2eb6614c51 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
@@ -2885,6 +2886,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 b601587ed6..2ccb334f67 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
@@ -2660,6 +2661,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 f72349ea2f..cd9602dff8 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
@@ -2666,6 +2667,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 ecc593286d..f328aa3edd 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
@@ -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_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 e1689c0297..ea8e9faaf5 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 f5b07346c2..3fbc141f2e 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 2bad9fc342..7ff8f95c6c 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
@@ -2789,6 +2790,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 c935a7e57f..34d917e373 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
@@ -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_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 fd282cff15..f90f676fbb 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
@@ -2795,6 +2796,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 3d7066cba4..8235cc758e 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
@@ -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/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 a65edd6377..f1e6d1d7c2 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 f4afea1c0e..f599610271 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
@@ -3026,6 +3027,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 8660c84c58..533f543cde 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
@@ -3071,6 +3072,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 102be71006..8e85d7c1ed 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
@@ -2795,6 +2796,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 8358781947..669a5b51d5 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 7b8669a5dc..f5dcdeba4c 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 6197fd917c..983a863fb1 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 7396f67833..44738bd913 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
@@ -3034,6 +3035,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 e7a7d91b19..88a072e738 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
@@ -2830,6 +2831,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 60ae375c3c..9a586fbd79 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
@@ -2708,6 +2709,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 b3c877b450..3e0e5ca7ad 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
@@ -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_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 1d192b689a..e06f3cc144 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
@@ -3043,6 +3044,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 c0b226671a..de2eb6af7e 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
@@ -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/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 4e8239479f..72de702c29 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
@@ -2639,6 +2640,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 d7528162bc..837b269ce7 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 related	[flat|nested] 34+ messages in thread

* [PATCH 06/24] resolv: Move ns_name_compress into its own file and into libc
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
                   ` (4 preceding siblings ...)
  2021-07-15  9:09 ` [PATCH 05/24] resolv: Move ns_name_pack " Florian Weimer via Libc-alpha
@ 2021-07-15  9:09 ` Florian Weimer via Libc-alpha
  2021-07-15  9:09 ` [PATCH 07/24] resolv: Move dn_expand to " Florian Weimer via Libc-alpha
                   ` (18 subsequent siblings)
  24 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:09 UTC (permalink / raw)
  To: libc-alpha

And reformat to GNU style.

The symbol was moved using scripts/move-symbol-to-libc.py.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
---
 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 44a08edfc1..706ae69614 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2241,6 +2241,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
@@ -2368,6 +2369,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 c857884187..8ae8992321 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 e122b6114c..69f2f7a235 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
@@ -2991,6 +2992,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 8c679d10c1..3898a3ea4f 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 4dad4c1bc7..e23de44dd2 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
@@ -2687,6 +2688,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 fff76728fe..129b3abaca 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
@@ -2684,6 +2685,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 bf98471537..39f05ffbbe 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 fc44c374a3..e70563a755 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
@@ -2701,6 +2702,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 2eb6614c51..82cdc64c75 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
@@ -2885,6 +2886,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 2ccb334f67..ad30a530db 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
@@ -2660,6 +2661,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 cd9602dff8..3c20ff3b3f 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
@@ -2666,6 +2667,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 f328aa3edd..a2d635ffb7 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
@@ -2828,6 +2829,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 ea8e9faaf5..b587e31f92 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 3fbc141f2e..59e9deb05c 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 7ff8f95c6c..71f357977b 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
@@ -2789,6 +2790,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 34d917e373..d65deadbe7 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
@@ -2787,6 +2788,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 f90f676fbb..ed08bc12d3 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
@@ -2795,6 +2796,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 8235cc758e..dc26b2bfd4 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
@@ -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/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 f1e6d1d7c2..3fc908d413 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 f599610271..01bc4b637b 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
@@ -3026,6 +3027,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 533f543cde..6a217f5f1d 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
@@ -3071,6 +3072,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 8e85d7c1ed..615970660b 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
@@ -2795,6 +2796,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 669a5b51d5..7b72a039af 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 f5dcdeba4c..9dfc9e7c43 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 983a863fb1..c0ddd211ed 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 44738bd913..e35e1c62b6 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
@@ -3034,6 +3035,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 88a072e738..4c159037c8 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
@@ -2830,6 +2831,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 9a586fbd79..10ea324ddc 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
@@ -2708,6 +2709,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 3e0e5ca7ad..27b7fcb309 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
@@ -2705,6 +2706,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 e06f3cc144..d3ab50f13a 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
@@ -3043,6 +3044,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 de2eb6af7e..8b45824bd0 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
@@ -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/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 72de702c29..3032b2dc62 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
@@ -2639,6 +2640,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 837b269ce7..eef97e9886 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 related	[flat|nested] 34+ messages in thread

* [PATCH 07/24] resolv: Move dn_expand to its own file and into libc
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
                   ` (5 preceding siblings ...)
  2021-07-15  9:09 ` [PATCH 06/24] resolv: Move ns_name_compress " Florian Weimer via Libc-alpha
@ 2021-07-15  9:09 ` Florian Weimer via Libc-alpha
  2021-07-15  9:09 ` [PATCH 08/24] resolv: Move _getlong, _getshort, __putlong, __putshort to res-putget Florian Weimer via Libc-alpha
                   ` (17 subsequent siblings)
  24 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:09 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.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
---
 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 a70f3dec05..b6139c7d62 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 02a35173e9..7232d81a3b 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 706ae69614..626ac8a248 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
@@ -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_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 8ae8992321..2165aff042 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 69f2f7a235..8be569206d 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 3898a3ea4f..fbcc456d1b 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 e23de44dd2..9d344d5a02 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
@@ -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_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 129b3abaca..9f0e945a58 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
@@ -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_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 39f05ffbbe..03e87f4992 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 e70563a755..cc40154371 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 82cdc64c75..23b132bfa4 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 ad30a530db..fcb77704c1 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 3c20ff3b3f..4b245f0e64 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
@@ -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_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 a2d635ffb7..85936bd042 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 b587e31f92..25115b3026 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 59e9deb05c..8e39d26d88 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 71f357977b..70e42c327a 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 d65deadbe7..bd532f7688 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 ed08bc12d3..265fb8b34b 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 dc26b2bfd4..8f1764d134 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 3fc908d413..477e668aac 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 01bc4b637b..a2966bf605 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 6a217f5f1d..26408a32b4 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 615970660b..7e8d35172f 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 7b72a039af..a7db5a8081 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 9dfc9e7c43..2a30081b45 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 c0ddd211ed..a92aec2885 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 e35e1c62b6..7d6878ec4d 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 4c159037c8..5a84bfe5fd 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 10ea324ddc..cabb25e831 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 27b7fcb309..d32bc7cfcf 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 d3ab50f13a..d40efb1cb4 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 8b45824bd0..ebe5d8719c 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 3032b2dc62..ea06d56c39 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 eef97e9886..5c5110c425 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 related	[flat|nested] 34+ messages in thread

* [PATCH 08/24] resolv: Move _getlong, _getshort, __putlong, __putshort to res-putget
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
                   ` (6 preceding siblings ...)
  2021-07-15  9:09 ` [PATCH 07/24] resolv: Move dn_expand to " Florian Weimer via Libc-alpha
@ 2021-07-15  9:09 ` Florian Weimer via Libc-alpha
  2021-07-15  9:09 ` [PATCH 09/24] resolv: Move dn_comp to its own file and into libc Florian Weimer via Libc-alpha
                   ` (16 subsequent siblings)
  24 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:09 UTC (permalink / raw)
  To: libc-alpha

And reformat to GNU style.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
---
 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 related	[flat|nested] 34+ messages in thread

* [PATCH 09/24] resolv: Move dn_comp to its own file and into libc
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
                   ` (7 preceding siblings ...)
  2021-07-15  9:09 ` [PATCH 08/24] resolv: Move _getlong, _getshort, __putlong, __putshort to res-putget Florian Weimer via Libc-alpha
@ 2021-07-15  9:09 ` Florian Weimer via Libc-alpha
  2021-07-15  9:09 ` [PATCH 10/24] resolv: Move dn_skipname " Florian Weimer via Libc-alpha
                   ` (15 subsequent siblings)
  24 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:09 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.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
---
 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 7232d81a3b..0e91801e5f 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 626ac8a248..cb1af9e5b0 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
@@ -2236,6 +2237,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 2165aff042..60b98210e1 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 8be569206d..ccf9603926 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 fbcc456d1b..b7336e1aad 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 9d344d5a02..4a709a3a7c 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
@@ -649,6 +650,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 9f0e945a58..78248cf8a5 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
@@ -646,6 +647,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 03e87f4992..4166d5599a 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 cc40154371..b0b618ab09 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 23b132bfa4..0562ab901f 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 fcb77704c1..25c6d8ffe8 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 4b245f0e64..46f111a975 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
@@ -635,6 +636,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 85936bd042..16fc902d74 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 25115b3026..afcd92b1aa 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 8e39d26d88..234b8b388a 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 70e42c327a..d85461c661 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 bd532f7688..57a34442f7 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 265fb8b34b..08529e2816 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 8f1764d134..3c1ceaa78c 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 477e668aac..c91eec1a23 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 a2966bf605..213631f60b 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 26408a32b4..cc4e53c759 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 7e8d35172f..487d109435 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 a7db5a8081..bf5ad293b6 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 2a30081b45..9cc70cced6 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 a92aec2885..9d1c6c20fe 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 7d6878ec4d..7efc7e2328 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 5a84bfe5fd..b2773db2c4 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 cabb25e831..d9a12026b4 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 d32bc7cfcf..db49075925 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 d40efb1cb4..06195031b6 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 ebe5d8719c..bc0428fe2a 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 ea06d56c39..c91a47da4c 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 5c5110c425..7bad9379c5 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 related	[flat|nested] 34+ messages in thread

* [PATCH 10/24] resolv: Move dn_skipname to its own file and into libc
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
                   ` (8 preceding siblings ...)
  2021-07-15  9:09 ` [PATCH 09/24] resolv: Move dn_comp to its own file and into libc Florian Weimer via Libc-alpha
@ 2021-07-15  9:09 ` Florian Weimer via Libc-alpha
  2021-07-15  9:09 ` [PATCH 11/24] resolv: Rename res_comp.c to res-name-checking.c and move " Florian Weimer via Libc-alpha
                   ` (14 subsequent siblings)
  24 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:09 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.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
---
 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 0e91801e5f..a10ad99a16 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 cb1af9e5b0..cda0d59e65 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
@@ -2239,6 +2240,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 60b98210e1..6bf1d144e5 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 ccf9603926..93d9085e90 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 b7336e1aad..7569849d88 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 4a709a3a7c..6879df7eb5 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
@@ -652,6 +653,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 78248cf8a5..30d7813539 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
@@ -649,6 +650,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 4166d5599a..4f413776f1 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 b0b618ab09..8ef693f450 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 0562ab901f..f79021433c 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 25c6d8ffe8..12693807c8 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 46f111a975..d0642fce98 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
@@ -638,6 +639,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 16fc902d74..a0b020bec9 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 afcd92b1aa..d8b86d4a1e 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 234b8b388a..45beeb0c3f 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 d85461c661..e25688089c 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 57a34442f7..d3c02c5e09 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 08529e2816..568b293968 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 3c1ceaa78c..3337791b3f 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 c91eec1a23..0bfef10696 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 213631f60b..a05356fd1a 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 cc4e53c759..ade0df3047 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 487d109435..3734e94e0a 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 bf5ad293b6..fbbba35c4c 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 9cc70cced6..69ef55331e 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 9d1c6c20fe..fc38e7d21e 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 7efc7e2328..e7309a82f7 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 b2773db2c4..d056821ab8 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 d9a12026b4..8e8d971063 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 db49075925..3c251328c3 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 06195031b6..7f5698bc16 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 bc0428fe2a..bc3b2f5486 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 c91a47da4c..e2055934b6 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 7bad9379c5..f4a1f04c59 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 related	[flat|nested] 34+ messages in thread

* [PATCH 11/24] resolv: Rename res_comp.c to res-name-checking.c and move into libc
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
                   ` (9 preceding siblings ...)
  2021-07-15  9:09 ` [PATCH 10/24] resolv: Move dn_skipname " Florian Weimer via Libc-alpha
@ 2021-07-15  9:09 ` Florian Weimer via Libc-alpha
  2021-07-15  9:10 ` [PATCH 12/24] resolv: Move __res_get_nsaddr to its own file and " Florian Weimer via Libc-alpha
                   ` (13 subsequent siblings)
  24 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:09 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.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
---
 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 a10ad99a16..9cce53f67b 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 cda0d59e65..cf3f4b6548 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
@@ -2256,6 +2260,10 @@ GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 posix_spawn_file_actions_addclosefrom_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 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 6bf1d144e5..1a8736f86f 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
@@ -2559,6 +2563,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 93d9085e90..be66c6f9a2 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
@@ -2652,6 +2656,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 7569849d88..04f3b337b5 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
@@ -2318,6 +2322,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 6879df7eb5..bd79006ad5 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/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
@@ -836,9 +840,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 30d7813539..7466152af7 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -439,6 +439,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
@@ -833,9 +837,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 4f413776f1..0e1d1c0688 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
@@ -2584,6 +2588,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 8ef693f450..b6ce2d11df 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
@@ -2531,6 +2535,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 f79021433c..e364a01f1e 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
@@ -2715,6 +2719,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 12693807c8..08bbbce4a2 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
@@ -2490,6 +2494,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 d0642fce98..eb9e9ac07d 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -443,6 +443,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
@@ -822,9 +826,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 a0b020bec9..b408481e59 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
@@ -2658,6 +2662,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 d8b86d4a1e..c9a8d74767 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
@@ -2635,6 +2639,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 45beeb0c3f..e409a40746 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
@@ -2632,6 +2636,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 e25688089c..014913aca8 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
@@ -2623,6 +2627,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 d3c02c5e09..bc70779dd2 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
@@ -2621,6 +2625,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 568b293968..e71fd1249b 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
@@ -2629,6 +2633,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 3337791b3f..b2760740e1 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
@@ -2541,6 +2545,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 0bfef10696..8bd4793e3f 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
@@ -2674,6 +2678,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 a05356fd1a..3b25e6893a 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
@@ -2685,6 +2689,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 ade0df3047..78a501fac1 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
@@ -2718,6 +2722,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 3734e94e0a..fc5d03b3fe 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
@@ -2453,6 +2457,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 fbbba35c4c..44550469c2 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
@@ -2755,6 +2759,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 69ef55331e..289f148fb2 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
@@ -2320,6 +2324,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 fc38e7d21e..738405ecca 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
@@ -2520,6 +2524,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 e7309a82f7..bfb4d0168f 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
@@ -2683,6 +2687,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 d056821ab8..ed73e1c75b 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
@@ -2490,6 +2494,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 8e8d971063..ac8eb152d5 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
@@ -2538,6 +2542,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 3c251328c3..28c54dfe63 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
@@ -2535,6 +2539,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 7f5698bc16..9e4fe11b6e 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
@@ -2678,6 +2682,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 bc3b2f5486..66cf930fa9 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
@@ -2513,6 +2517,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 e2055934b6..1915276f61 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
@@ -2468,6 +2472,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 f4a1f04c59..777d7614ee 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
@@ -2574,6 +2578,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 related	[flat|nested] 34+ messages in thread

* [PATCH 12/24] resolv: Move __res_get_nsaddr to its own file and into libc
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
                   ` (10 preceding siblings ...)
  2021-07-15  9:09 ` [PATCH 11/24] resolv: Rename res_comp.c to res-name-checking.c and move " Florian Weimer via Libc-alpha
@ 2021-07-15  9:10 ` Florian Weimer via Libc-alpha
  2021-07-15  9:10 ` [PATCH 13/24] resolv: Move res_isourserver to its own file and reformat to GNU style Florian Weimer via Libc-alpha
                   ` (12 subsequent siblings)
  24 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:10 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.

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 \
   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 related	[flat|nested] 34+ messages in thread

* [PATCH 13/24] resolv: Move res_isourserver to its own file and reformat to GNU style
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
                   ` (11 preceding siblings ...)
  2021-07-15  9:10 ` [PATCH 12/24] resolv: Move __res_get_nsaddr to its own file and " Florian Weimer via Libc-alpha
@ 2021-07-15  9:10 ` Florian Weimer via Libc-alpha
  2021-07-15  9:10 ` [PATCH 14/24] resolv: Move ns_makecanon into its own file, and into libc Florian Weimer via Libc-alpha
                   ` (11 subsequent siblings)
  24 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:10 UTC (permalink / raw)
  To: libc-alpha

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
---
 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 related	[flat|nested] 34+ messages in thread

* [PATCH 14/24] resolv: Move ns_makecanon into its own file, and into libc
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
                   ` (12 preceding siblings ...)
  2021-07-15  9:10 ` [PATCH 13/24] resolv: Move res_isourserver to its own file and reformat to GNU style Florian Weimer via Libc-alpha
@ 2021-07-15  9:10 ` Florian Weimer via Libc-alpha
  2021-07-15  9:10 ` [PATCH 15/24] resolv: Move ns_samename " Florian Weimer via Libc-alpha
                   ` (10 subsequent siblings)
  24 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:10 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.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
---
 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 related	[flat|nested] 34+ messages in thread

* [PATCH 15/24] resolv: Move ns_samename into its own file, and into libc
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
                   ` (13 preceding siblings ...)
  2021-07-15  9:10 ` [PATCH 14/24] resolv: Move ns_makecanon into its own file, and into libc Florian Weimer via Libc-alpha
@ 2021-07-15  9:10 ` Florian Weimer via Libc-alpha
  2021-07-15  9:10 ` [PATCH 16/24] resolv: Move res_nameinquery to its own file " Florian Weimer via Libc-alpha
                   ` (9 subsequent siblings)
  24 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:10 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.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
---
 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 related	[flat|nested] 34+ messages in thread

* [PATCH 16/24] resolv: Move res_nameinquery to its own file and into libc
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
                   ` (14 preceding siblings ...)
  2021-07-15  9:10 ` [PATCH 15/24] resolv: Move ns_samename " Florian Weimer via Libc-alpha
@ 2021-07-15  9:10 ` Florian Weimer via Libc-alpha
  2021-07-15  9:10 ` [PATCH 17/24] resolv: Move res_queriesmatch " Florian Weimer via Libc-alpha
                   ` (8 subsequent siblings)
  24 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:10 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.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
---
 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 related	[flat|nested] 34+ messages in thread

* [PATCH 17/24] resolv: Move res_queriesmatch to its own file and into libc
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
                   ` (15 preceding siblings ...)
  2021-07-15  9:10 ` [PATCH 16/24] resolv: Move res_nameinquery to its own file " Florian Weimer via Libc-alpha
@ 2021-07-15  9:10 ` Florian Weimer via Libc-alpha
  2021-07-15  9:10 ` [PATCH 18/24] resolv: Move __res_context_hostalias into " Florian Weimer via Libc-alpha
                   ` (7 subsequent siblings)
  24 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:10 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.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
---
 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 related	[flat|nested] 34+ messages in thread

* [PATCH 18/24] resolv: Move __res_context_hostalias into its own file and into libc
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
                   ` (16 preceding siblings ...)
  2021-07-15  9:10 ` [PATCH 17/24] resolv: Move res_queriesmatch " Florian Weimer via Libc-alpha
@ 2021-07-15  9:10 ` Florian Weimer via Libc-alpha
  2021-07-15  9:10 ` [PATCH 19/24] resolv: Move res_hostalias into its own file, along with hostalias Florian Weimer via Libc-alpha
                   ` (6 subsequent siblings)
  24 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:10 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.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
---
 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 related	[flat|nested] 34+ messages in thread

* [PATCH 19/24] resolv: Move res_hostalias into its own file, along with hostalias
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
                   ` (17 preceding siblings ...)
  2021-07-15  9:10 ` [PATCH 18/24] resolv: Move __res_context_hostalias into " Florian Weimer via Libc-alpha
@ 2021-07-15  9:10 ` Florian Weimer via Libc-alpha
  2021-07-15  9:10 ` [PATCH 20/24] resolv: Move res_send, res_nsend into libc Florian Weimer via Libc-alpha
                   ` (5 subsequent siblings)
  24 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:10 UTC (permalink / raw)
  To: libc-alpha

These deprecated symbols continue to be exported from libresolv.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
---
 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 related	[flat|nested] 34+ messages in thread

* [PATCH 20/24] resolv: Move res_send, res_nsend into libc
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
                   ` (18 preceding siblings ...)
  2021-07-15  9:10 ` [PATCH 19/24] resolv: Move res_hostalias into its own file, along with hostalias Florian Weimer via Libc-alpha
@ 2021-07-15  9:10 ` Florian Weimer via Libc-alpha
  2021-07-19  1:54   ` Carlos O'Donell via Libc-alpha
  2021-07-15  9:10 ` [PATCH 21/24] resolv: Move res_mkquery, res_nmkquery " Florian Weimer via Libc-alpha
                   ` (4 subsequent siblings)
  24 siblings, 1 reply; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:10 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                               |  8 ++-
 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, 177 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..429b3304c4 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,7 @@ libc {
     __ns_name_uncompress;
     __ns_name_unpack;
     __res_context_hostalias;
+    __res_context_send;
     __res_get_nsaddr;
     __res_iclose;
     __resolv_context_get;
@@ -126,7 +132,6 @@ libresolv {
     __res_isourserver;
     __res_nameinquery;
     __res_queriesmatch;
-    __res_send;
     __sym_ntop;
     __sym_ntos;
     __sym_ston;
@@ -159,7 +164,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 9cce53f67b..39c5e59d31 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 cf3f4b6548..12cba8480b 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
@@ -2263,7 +2265,9 @@ GLIBC_2.34 posix_spawn_file_actions_addclosefrom_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 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 1a8736f86f..78d6ca79ea 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
@@ -2566,7 +2568,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 be66c6f9a2..8f94a0b4cc 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
@@ -2659,7 +2661,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 04f3b337b5..dc86ab3d5d 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
@@ -2325,7 +2327,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 bd79006ad5..7f4235e1a7 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/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
@@ -846,8 +848,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 7466152af7..e14410d5b8 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -442,7 +442,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
@@ -843,8 +845,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 0e1d1c0688..ccb6d3048b 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
@@ -2591,7 +2593,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 b6ce2d11df..f7303589df 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
@@ -2538,7 +2540,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 e364a01f1e..b5d3084f8b 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
@@ -2722,7 +2724,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 08bbbce4a2..49fa6e109d 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
@@ -2497,7 +2499,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 eb9e9ac07d..37356621aa 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -446,7 +446,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
@@ -832,8 +834,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 b408481e59..cbbd396f8f 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
@@ -2665,7 +2667,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 c9a8d74767..a06665d2a5 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
@@ -2642,7 +2644,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 e409a40746..02b859afb2 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
@@ -2639,7 +2641,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 014913aca8..6dfcd3d474 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
@@ -2630,7 +2632,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 bc70779dd2..1782e7a113 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
@@ -2628,7 +2630,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 e71fd1249b..36334df8b9 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
@@ -2636,7 +2638,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 b2760740e1..8841efbe76 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
@@ -2548,7 +2550,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 8bd4793e3f..ac77a8ba64 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
@@ -2681,7 +2683,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 3b25e6893a..8fb867e176 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
@@ -2692,7 +2694,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 78a501fac1..98c92fc2d8 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
@@ -2725,7 +2727,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 fc5d03b3fe..eb77c459a0 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
@@ -2460,7 +2462,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 44550469c2..9d9c61fe79 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
@@ -2762,7 +2764,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 289f148fb2..1a9301fe5d 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
@@ -2327,7 +2329,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 738405ecca..93f6b17743 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
@@ -2527,7 +2529,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 bfb4d0168f..14b8be0b17 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
@@ -2690,7 +2692,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 ed73e1c75b..11bc28b033 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
@@ -2497,7 +2499,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 ac8eb152d5..fc5f5948f3 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
@@ -2545,7 +2547,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 28c54dfe63..29c3521df1 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
@@ -2542,7 +2544,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 9e4fe11b6e..c9bd20080b 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
@@ -2685,7 +2687,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 66cf930fa9..e336393be4 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
@@ -2520,7 +2522,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 1915276f61..3e079a3783 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
@@ -2475,7 +2477,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 777d7614ee..540e30dd94 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
@@ -2581,7 +2583,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 related	[flat|nested] 34+ messages in thread

* [PATCH 21/24] resolv: Move res_mkquery, res_nmkquery into libc
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
                   ` (19 preceding siblings ...)
  2021-07-15  9:10 ` [PATCH 20/24] resolv: Move res_send, res_nsend into libc Florian Weimer via Libc-alpha
@ 2021-07-15  9:10 ` Florian Weimer via Libc-alpha
  2021-07-15  9:10 ` [PATCH 22/24] resolv: Move res_query functions " Florian Weimer via Libc-alpha
                   ` (3 subsequent siblings)
  24 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:10 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.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
---
 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 429b3304c4..e3dd38b3a9 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,9 +96,11 @@ libc {
     __ns_name_uncompress;
     __ns_name_unpack;
     __res_context_hostalias;
+    __res_context_mkquery;
     __res_context_send;
     __res_get_nsaddr;
     __res_iclose;
+    __res_nopt;
     __resolv_context_get;
     __resolv_context_get_override;
     __resolv_context_get_preinit;
@@ -150,7 +157,6 @@ libresolv {
     res_gethostbyaddr;
     res_gethostbyname2;
     res_gethostbyname;
-    res_mkquery;
     res_query;
     res_querydomain;
     res_search;
@@ -159,8 +165,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 39c5e59d31..21c88ca9f8 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 12cba8480b..2ad74cc9f3 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
@@ -2265,6 +2267,8 @@ GLIBC_2.34 posix_spawn_file_actions_addclosefrom_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/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 78d6ca79ea..edd1502923 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
@@ -2568,6 +2570,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 8f94a0b4cc..971e91cb6f 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
@@ -2661,6 +2664,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 dc86ab3d5d..d5298fe20b 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
@@ -2327,6 +2329,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 7f4235e1a7..7a3636d94e 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/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
@@ -846,8 +848,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 e14410d5b8..35c1385831 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -442,6 +442,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
@@ -843,8 +845,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 ccb6d3048b..5d26e27f49 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
@@ -2593,6 +2595,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 f7303589df..438a2da584 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
@@ -2540,6 +2543,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 b5d3084f8b..ea83824671 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
@@ -2724,6 +2727,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 49fa6e109d..8167410e5b 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
@@ -2499,6 +2502,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 37356621aa..14ef1c377a 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -446,6 +446,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
@@ -832,8 +834,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 cbbd396f8f..dcea2e5ef9 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
@@ -2667,6 +2670,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 a06665d2a5..fb2560e434 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
@@ -2644,6 +2646,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 02b859afb2..ce5ed3a0aa 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
@@ -2641,6 +2643,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 6dfcd3d474..4ec2264100 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
@@ -2632,6 +2635,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 1782e7a113..e09d28527c 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
@@ -2630,6 +2633,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 36334df8b9..3993d0ed6e 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
@@ -2638,6 +2641,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 8841efbe76..f818299bb6 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
@@ -2550,6 +2553,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 ac77a8ba64..1d8a638635 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
@@ -2683,6 +2685,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 8fb867e176..763b548aae 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
@@ -2694,6 +2697,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 98c92fc2d8..11af5a6bad 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
@@ -2727,6 +2730,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 eb77c459a0..ec5370d2f4 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
@@ -2462,6 +2464,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 9d9c61fe79..be6fb1aca6 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
@@ -2764,6 +2766,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 1a9301fe5d..15742f95e0 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
@@ -2329,6 +2331,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 93f6b17743..d8548ac912 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
@@ -2529,6 +2531,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 14b8be0b17..1e68f5cbd9 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
@@ -2692,6 +2695,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 11bc28b033..0175572126 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
@@ -2499,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/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 fc5f5948f3..b0a6589b21 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
@@ -2547,6 +2550,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 29c3521df1..06195f339b 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
@@ -2544,6 +2547,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 c9bd20080b..d44b9bcdc4 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
@@ -2687,6 +2690,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 e336393be4..6bae0324ce 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
@@ -2522,6 +2525,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 3e079a3783..40c3121657 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
@@ -2477,6 +2479,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 540e30dd94..925049883e 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
@@ -2583,6 +2585,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 related	[flat|nested] 34+ messages in thread

* [PATCH 22/24] resolv: Move res_query functions into libc
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
                   ` (20 preceding siblings ...)
  2021-07-15  9:10 ` [PATCH 21/24] resolv: Move res_mkquery, res_nmkquery " Florian Weimer via Libc-alpha
@ 2021-07-15  9:10 ` Florian Weimer via Libc-alpha
  2021-07-21  9:54   ` Andreas Schwab
  2021-07-15  9:10 ` [PATCH 23/24] resolv: Move nss_dns " Florian Weimer via Libc-alpha
                   ` (2 subsequent siblings)
  24 siblings, 1 reply; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:10 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.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
---
 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 e3dd38b3a9..05679d42c1 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_get_nsaddr;
     __res_iclose;
@@ -157,20 +174,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;
@@ -201,8 +209,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 21c88ca9f8..e7c8d44645 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 2ad74cc9f3..b337d0d45b 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
@@ -2269,8 +2275,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 edd1502923..8d49fc0835 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
@@ -2572,8 +2578,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 971e91cb6f..db496e108f 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
@@ -2666,8 +2675,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 d5298fe20b..2611436937 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
@@ -2331,8 +2337,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 7a3636d94e..1e73617837 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/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
@@ -852,9 +858,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 35c1385831..2bd1f4a0f4 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -444,8 +444,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
@@ -849,9 +855,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 5d26e27f49..0b3a2310f4 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
@@ -2597,8 +2603,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 438a2da584..230eb0c85a 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
@@ -2545,8 +2554,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 ea83824671..d58620d817 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
@@ -2729,8 +2738,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 8167410e5b..5b78b61d4c 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
@@ -2504,8 +2513,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 14ef1c377a..9b9d0dff9d 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -448,8 +448,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
@@ -838,9 +844,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 dcea2e5ef9..6d48dc726c 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
@@ -2672,8 +2681,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 fb2560e434..6abbed158e 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
@@ -2648,8 +2654,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 ce5ed3a0aa..8b9ae1f072 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
@@ -2645,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/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 4ec2264100..095c2ea5da 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
@@ -2637,8 +2646,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 e09d28527c..bc1a353726 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
@@ -2635,8 +2644,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 3993d0ed6e..63db2192c9 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
@@ -2643,8 +2652,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 f818299bb6..35372f6c1a 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
@@ -2555,8 +2564,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 1d8a638635..2303e12935 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
@@ -2687,8 +2693,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 763b548aae..b51067a81f 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
@@ -2699,8 +2708,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 11af5a6bad..c5112da9e5 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
@@ -2732,8 +2741,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 ec5370d2f4..0b7700cb84 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
@@ -2466,8 +2472,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 be6fb1aca6..47e5a5aa79 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
@@ -2768,8 +2774,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 15742f95e0..c9a7eacb32 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
@@ -2333,8 +2339,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 d8548ac912..8299131cb2 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
@@ -2533,8 +2539,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 1e68f5cbd9..f803a1093c 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
@@ -2697,8 +2706,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 0175572126..3ec521cf52 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
@@ -2503,8 +2509,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 b0a6589b21..fcb9c99713 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
@@ -2552,8 +2561,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 06195f339b..aa294c7685 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
@@ -2549,8 +2558,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 d44b9bcdc4..f5f6bf24fd 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
@@ -2692,8 +2701,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 6bae0324ce..e16b738b22 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
@@ -2527,8 +2536,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 40c3121657..12cabf3f88 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
@@ -2481,8 +2487,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 925049883e..545af5a689 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
@@ -2587,8 +2593,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 related	[flat|nested] 34+ messages in thread

* [PATCH 23/24] resolv: Move nss_dns into libc
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
                   ` (21 preceding siblings ...)
  2021-07-15  9:10 ` [PATCH 22/24] resolv: Move res_query functions " Florian Weimer via Libc-alpha
@ 2021-07-15  9:10 ` Florian Weimer via Libc-alpha
  2021-07-15  9:11 ` [PATCH 24/24] nss: Directly load nss_dns, without going through dlsym/dlopen Florian Weimer via Libc-alpha
  2021-07-20  9:17 ` [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Andreas Schwab
  24 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:10 UTC (permalink / raw)
  To: libc-alpha

No abilist updates are needed because the symbols were GLIBC_PRIVATE.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
---
 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 05679d42c1..6c7694e089 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -123,6 +123,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;
   }
 }
 
@@ -214,15 +223,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 related	[flat|nested] 34+ messages in thread

* [PATCH 24/24] nss: Directly load nss_dns, without going through dlsym/dlopen
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
                   ` (22 preceding siblings ...)
  2021-07-15  9:10 ` [PATCH 23/24] resolv: Move nss_dns " Florian Weimer via Libc-alpha
@ 2021-07-15  9:11 ` Florian Weimer via Libc-alpha
  2021-07-20  9:17 ` [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Andreas Schwab
  24 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:11 UTC (permalink / raw)
  To: libc-alpha

This partially fixes static-only NSS support (bug 27959): The dns
module no longer needs dlopen.  Support for disabling dlopen altogher
remains to be added.

This commit introduces module_load_builtin into nss/nss_module.c, which
handles the common parts of loading the built-in nss_files and nss_dns
modules.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
---
 include/nss_dns.h          | 13 +++++----
 nss/nss_files_functions.c  |  6 ----
 nss/nss_module.c           | 58 ++++++++++++++++++++++++++++----------
 nss/nss_module.h           | 10 +++++--
 resolv/Makefile            |  1 +
 resolv/nss_dns_functions.c | 40 ++++++++++++++++++++++++++
 6 files changed, 100 insertions(+), 28 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_files_functions.c b/nss/nss_files_functions.c
index 85720b4311..46040fff70 100644
--- a/nss/nss_files_functions.c
+++ b/nss/nss_files_functions.c
@@ -34,10 +34,4 @@ __nss_files_functions (nss_module_functions_untyped pointers)
 #undef DEFINE_NSS_FUNCTION
 #define DEFINE_NSS_FUNCTION(x) *fptr++ = _nss_files_##x;
 #include "function.def"
-
-#ifdef PTR_MANGLE
-  void **end = fptr;
-  for (fptr = pointers; fptr != end; ++fptr)
-    PTR_MANGLE (*fptr);
-#endif
 }
diff --git a/nss/nss_module.c b/nss/nss_module.c
index 7ea5ad9887..b28cb94a6a 100644
--- a/nss/nss_module.c
+++ b/nss/nss_module.c
@@ -26,11 +26,13 @@
 #include <dlfcn.h>
 #include <gnu/lib-names.h>
 #include <libc-lock.h>
+#include <nss_dns.h>
+#include <nss_files.h>
 #include <stddef.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <nss_files.h>
+#include <sysdep.h>
 
 /* Suffix after .so of NSS service modules.  This is a bit of magic,
    but we assume LIBNSS_FILES_SO looks like "libnss_files.so.2" and we
@@ -111,20 +113,12 @@ static const function_name nss_function_name_array[] =
 #include "function.def"
   };
 
+/* Loads a built-in module, binding the symbols using the supplied
+   callback function.  Always returns true.  */
 static bool
-module_load_nss_files (struct nss_module *module)
+module_load_builtin (struct nss_module *module,
+		     void (*bind) (nss_module_functions_untyped))
 {
-#ifdef USE_NSCD
-  if (is_nscd)
-    {
-      void (*cb) (size_t, struct traced_file *) = nscd_init_cb;
-# ifdef PTR_DEMANGLE
-      PTR_DEMANGLE (cb);
-# endif
-      _nss_files_init (cb);
-    }
-#endif
-
   /* Initialize the function pointers, following the double-checked
      locking idiom.  */
   __libc_lock_lock (nss_module_list_lock);
@@ -132,7 +126,13 @@ module_load_nss_files (struct nss_module *module)
     {
     case nss_module_uninitialized:
     case nss_module_failed:
-      __nss_files_functions (module->functions.untyped);
+      bind (module->functions.untyped);
+
+#ifdef PTR_MANGLE
+      for (int i = 0; i < nss_module_functions_count; ++i)
+	PTR_MANGLE (module->functions.untyped[i]);
+#endif
+
       module->handle = NULL;
       /* Synchronizes with unlocked __nss_module_load atomic_load_acquire.  */
       atomic_store_release (&module->state, nss_module_loaded);
@@ -145,12 +145,38 @@ module_load_nss_files (struct nss_module *module)
   return true;
 }
 
+/* Loads the built-in nss_files module.  */
+static bool
+module_load_nss_files (struct nss_module *module)
+{
+#ifdef USE_NSCD
+  if (is_nscd)
+    {
+      void (*cb) (size_t, struct traced_file *) = nscd_init_cb;
+# ifdef PTR_DEMANGLE
+      PTR_DEMANGLE (cb);
+# endif
+      _nss_files_init (cb);
+    }
+#endif
+  return module_load_builtin (module, __nss_files_functions);
+}
+
+/* Loads the built-in nss_dns module.  */
+static bool
+module_load_nss_dns (struct nss_module *module)
+{
+  return module_load_builtin (module, __nss_dns_functions);
+}
+
 /* Internal implementation of __nss_module_load.  */
 static bool
 module_load (struct nss_module *module)
 {
   if (strcmp (module->name, "files") == 0)
     return module_load_nss_files (module);
+  if (strcmp (module->name, "dns") == 0)
+    return module_load_nss_dns (module);
 
   void *handle;
   {
@@ -398,7 +424,9 @@ __nss_module_freeres (void)
   struct nss_module *current = nss_module_list;
   while (current != NULL)
     {
-      if (current->state == nss_module_loaded && current->handle != NULL)
+      /* 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 c1a1d90b60..b52c2935d2 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];
 
 /* Locate the nss_files functions, as if by dlopen/dlsym.  */
 void __nss_files_functions (nss_module_functions_untyped pointers)
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..158dafec90
--- /dev/null
+++ b/resolv/nss_dns_functions.c
@@ -0,0 +1,40 @@
+/* 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>
+
+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));
+}
-- 
2.31.1


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

* Re: [PATCH 01/24] resolv: Deprecate legacy interfaces in libresolv
  2021-07-15  9:09 ` [PATCH 01/24] resolv: Deprecate legacy interfaces in libresolv Florian Weimer via Libc-alpha
@ 2021-07-15  9:30   ` Andreas Schwab
  2021-07-15  9:32     ` Florian Weimer via Libc-alpha
  2021-07-19  1:48   ` Carlos O'Donell via Libc-alpha
  1 sibling, 1 reply; 34+ messages in thread
From: Andreas Schwab @ 2021-07-15  9:30 UTC (permalink / raw)
  To: Florian Weimer via Libc-alpha; +Cc: Florian Weimer

On Jul 15 2021, Florian Weimer via Libc-alpha wrote:

> 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.
>
> inet_ntoa cannot handle IPv6 addresses.

ITYM inet_neta.

> 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.

Ok.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."

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

* Re: [PATCH 01/24] resolv: Deprecate legacy interfaces in libresolv
  2021-07-15  9:30   ` Andreas Schwab
@ 2021-07-15  9:32     ` Florian Weimer via Libc-alpha
  0 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  9:32 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: Florian Weimer via Libc-alpha

* Andreas Schwab:

> On Jul 15 2021, Florian Weimer via Libc-alpha wrote:
>
>> 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.
>>
>> inet_ntoa cannot handle IPv6 addresses.
>
> ITYM inet_neta.

Indeed, fixed.

Thanks,
Florian


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

* Re: [PATCH 01/24] resolv: Deprecate legacy interfaces in libresolv
  2021-07-15  9:09 ` [PATCH 01/24] resolv: Deprecate legacy interfaces in libresolv Florian Weimer via Libc-alpha
  2021-07-15  9:30   ` Andreas Schwab
@ 2021-07-19  1:48   ` Carlos O'Donell via Libc-alpha
  1 sibling, 0 replies; 34+ messages in thread
From: Carlos O'Donell via Libc-alpha @ 2021-07-19  1:48 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 7/15/21 5:09 AM, Florian Weimer via Libc-alpha wrote:
> 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.
> 
> inet_ntoa cannot handle IPv6 addresses.
> 
> 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.

OK for 2.34.

Reviewed-by: Carlos O'Donell <carlos@systemhalted.org>

> ---
>  NEWS                  | 14 +++++++
>  inet/arpa/inet.h      |  3 +-
>  resolv/arpa/nameser.h | 33 ++++++++++++-----
>  resolv/resolv.h       | 86 +++++++++++++++++++++++++++----------------
>  4 files changed, 95 insertions(+), 41 deletions(-)
> 
> diff --git a/NEWS b/NEWS
> index 13ffe627da..4df348cce5 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -93,6 +93,20 @@ 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.
>  
> +* The function inet_neta declared in <arpa/inet.h> has been deprecated.
> +
> +* 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.  For <resolv.h>,
> +  this affects the functions dn_count_labels, 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_rcode, p_time,
> +  p_type, putlong, putshort, res_hostalias, res_isourserver,
> +  res_nameinquery, res_queriesmatch, res_randomid, sym_ntop, sym_ntos,
> +  sym_ston.  For <arpa/nameser.h>, the functions ns_datetosecs,
> +  ns_format_ttl, ns_makecanon, ns_parse_ttl, ns_samedomain, ns_samename,
> +  ns_sprintrr, ns_sprintrrf, ns_subdomain have been deprecated.

OK.

> +
>  * 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/inet/arpa/inet.h b/inet/arpa/inet.h
> index 3a99dbfa5a..54c9c6d468 100644
> --- a/inet/arpa/inet.h
> +++ b/inet/arpa/inet.h
> @@ -74,7 +74,8 @@ extern int inet_aton (const char *__cp, struct in_addr *__inp) __THROW;
>  
>  /* Format a network number NET into presentation format and place result
>     in buffer starting at BUF with length of LEN bytes.  */
> -extern char *inet_neta (in_addr_t __net, char *__buf, size_t __len) __THROW;
> +extern char *inet_neta (in_addr_t __net, char *__buf, size_t __len) __THROW
> +  __attribute_deprecated_msg__ ("Use inet_ntop instead");

OK.

>  
>  /* Convert network number for interface type AF in buffer starting at
>     CP to presentation format.  The result will specifiy BITS bits of
> 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..02a35173e9 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		dn_count_labels (const char *) __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 __RESOLV_DEPRECATED;
>  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,
> 

OK.

-- 
Cheers,
Carlos.


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

* Re: [PATCH 02/24] resolv: Move ns_name_skip to its own file and into libc (bug 28091)
  2021-07-15  9:09 ` [PATCH 02/24] resolv: Move ns_name_skip to its own file and into libc (bug 28091) Florian Weimer via Libc-alpha
@ 2021-07-19  1:52   ` Carlos O'Donell via Libc-alpha
  0 siblings, 0 replies; 34+ messages in thread
From: Carlos O'Donell via Libc-alpha @ 2021-07-19  1:52 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 7/15/21 5:09 AM, Florian Weimer via Libc-alpha wrote:
> And reformat to GNU style.  Avoid out-of-bounds pointer arithmetic.
> This also results in a fix of bug 28091 due to the additional packet
> length checks.

Great work on this one!
 
> The symbol was moved using scripts/move-symbol-to-libc.py.

OK for 2.34.

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

> ---
>  include/arpa/nameser.h                        |  3 +-
>  resolv/Makefile                               |  1 +
>  resolv/Versions                               |  5 +-
>  resolv/ns_name.c                              | 37 ----------
>  resolv/ns_name_skip.c                         | 70 +++++++++++++++++++
>  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, 143 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..c26d658a49
> --- /dev/null
> +++ b/resolv/ns_name_skip.c
> @@ -0,0 +1,70 @@
> +/* Skip over a (potentially compressed) domain name in 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>
> +
> +/* 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;

OK.

> +
> +  cp = *ptrptr;
> +  while (cp < eom)

OK. Keep checking for < eom which is bounded.

> +    {
> +      n = *cp++;

OK. Advance.

> +      if (n == 0)
> +        {
> +          /* End of domain name without indirection.  */
> +          *ptrptr = cp;
> +          return 0;
> +        }
> +
> +      /* Check for indirection.  */
> +      switch (n & NS_CMPRSFLGS)
> +        {
> +        case 0:                 /* Normal case, n == len.  */
> +          if (eom - cp < n)
> +            goto malformed;

OK. New check for exceeding eom. Nice!

> +          cp += n;
> +          break;
> +        case NS_CMPRSFLGS:      /* Indirection.  */
> +          if (cp == eom)
> +            /* No room for second indirection byte.  */
> +            goto malformed;

OK. New check for exceeding eom. Nice!

> +          *ptrptr = cp + 1;
> +          return 0;
> +        default:                /* Illegal type.  */
> +          goto malformed;
> +        }
> +    }
> +
> + malformed:
> +  __set_errno (EMSGSIZE);
> +  return -1;

OK.

> +}
> +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 bf67af76e8..60d11fe99f 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -2242,6 +2242,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 posix_spawn_file_actions_addclosefrom_np 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_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 109b905574..dbfe495002 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 posix_spawn_file_actions_addclosefrom_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 ae278c0340..0e29e1b275 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 posix_spawn_file_actions_addclosefrom_np F
> @@ -2988,5 +2989,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 a271d889e0..6b335b5580 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 posix_spawn_file_actions_addclosefrom_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 97ce687b41..734b29ab67 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 posix_spawn_file_actions_addclosefrom_np F
> @@ -2684,5 +2685,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 64c85c5ac7..d4e2d66553 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 posix_spawn_file_actions_addclosefrom_np F
> @@ -2681,5 +2682,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 edc85dc1e1..ba1b6304de 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 posix_spawn_file_actions_addclosefrom_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 918b703f71..8e81396345 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 posix_spawn_file_actions_addclosefrom_np F
> @@ -2698,5 +2699,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 cd7d082741..9b07bb8d3c 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 posix_spawn_file_actions_addclosefrom_np F
> @@ -2882,5 +2883,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 3b8b100bbd..f4956f1d77 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 posix_spawn_file_actions_addclosefrom_np F
> @@ -2657,5 +2658,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 4036b8c739..6d0e4f6609 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 posix_spawn_file_actions_addclosefrom_np F
> @@ -2663,5 +2664,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 fb9964f928..e7e115b594 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 posix_spawn_file_actions_addclosefrom_np F
> @@ -2825,5 +2826,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 064fee7132..3cf1d6b911 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 posix_spawn_file_actions_addclosefrom_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 14541859b5..9d1742d3e8 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 posix_spawn_file_actions_addclosefrom_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 8a5c574be3..391123b10b 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 posix_spawn_file_actions_addclosefrom_np F
> @@ -2786,5 +2787,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 4eccc7c2d0..816b0f4781 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 posix_spawn_file_actions_addclosefrom_np F
> @@ -2784,5 +2785,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 6cf6b1a267..2e2b0962fe 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 posix_spawn_file_actions_addclosefrom_np F
> @@ -2792,5 +2793,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 0fe1366b21..f273c60d4c 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 posix_spawn_file_actions_addclosefrom_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/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 d8ab09dd70..5967c94d35 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 posix_spawn_file_actions_addclosefrom_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 a7396733ca..fe7339820f 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 posix_spawn_file_actions_addclosefrom_np F
> @@ -3023,5 +3024,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 f4fa630d45..5889603bf1 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 posix_spawn_file_actions_addclosefrom_np F
> @@ -3068,5 +3069,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 988ac70948..3b45bd462f 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 posix_spawn_file_actions_addclosefrom_np F
> @@ -2792,5 +2793,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 1cabd6411b..7aa4d0e136 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 posix_spawn_file_actions_addclosefrom_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 48a4d4cc40..c8883dac58 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 posix_spawn_file_actions_addclosefrom_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 b7179f07d3..e5b8a6a20e 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 posix_spawn_file_actions_addclosefrom_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 0ca8cc574c..271e734702 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 posix_spawn_file_actions_addclosefrom_np F
> @@ -3031,6 +3032,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 310d770a8b..1115fe5992 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 posix_spawn_file_actions_addclosefrom_np F
> @@ -2827,5 +2828,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 8a53d60b1a..cd6e6602a5 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 posix_spawn_file_actions_addclosefrom_np F
> @@ -2705,5 +2706,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 035eb0989c..a63e98a7be 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 posix_spawn_file_actions_addclosefrom_np F
> @@ -2702,5 +2703,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 7cc652b8a0..3cf627c882 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 posix_spawn_file_actions_addclosefrom_np F
> @@ -3040,5 +3041,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 6d521dfe7b..7232278699 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 posix_spawn_file_actions_addclosefrom_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/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 a535ca6172..7a8e656c3d 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 posix_spawn_file_actions_addclosefrom_np F
> @@ -2636,5 +2637,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 6cd8b9a537..c764524f70 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 posix_spawn_file_actions_addclosefrom_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
> 

OK.

-- 
Cheers,
Carlos.


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

* Re: [PATCH 20/24] resolv: Move res_send, res_nsend into libc
  2021-07-15  9:10 ` [PATCH 20/24] resolv: Move res_send, res_nsend into libc Florian Weimer via Libc-alpha
@ 2021-07-19  1:54   ` Carlos O'Donell via Libc-alpha
  0 siblings, 0 replies; 34+ messages in thread
From: Carlos O'Donell via Libc-alpha @ 2021-07-19  1:54 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 7/15/21 5:10 AM, Florian Weimer via Libc-alpha wrote:
> 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.

Fixed the duplicate Version entry.

OK for 2.34.

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

> ---
>  resolv/Makefile                               |  4 +-
>  resolv/Versions                               |  8 ++-
>  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, 177 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..429b3304c4 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,7 @@ libc {
>      __ns_name_uncompress;
>      __ns_name_unpack;
>      __res_context_hostalias;
> +    __res_context_send;

OK. Just one this time. Fixed.

>      __res_get_nsaddr;
>      __res_iclose;
>      __resolv_context_get;
> @@ -126,7 +132,6 @@ libresolv {
>      __res_isourserver;
>      __res_nameinquery;
>      __res_queriesmatch;
> -    __res_send;
>      __sym_ntop;
>      __sym_ntos;
>      __sym_ston;
> @@ -159,7 +164,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 9cce53f67b..39c5e59d31 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 cf3f4b6548..12cba8480b 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
> @@ -2263,7 +2265,9 @@ GLIBC_2.34 posix_spawn_file_actions_addclosefrom_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 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 1a8736f86f..78d6ca79ea 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
> @@ -2566,7 +2568,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 be66c6f9a2..8f94a0b4cc 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
> @@ -2659,7 +2661,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 04f3b337b5..dc86ab3d5d 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
> @@ -2325,7 +2327,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 bd79006ad5..7f4235e1a7 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/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
> @@ -846,8 +848,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 7466152af7..e14410d5b8 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -442,7 +442,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
> @@ -843,8 +845,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 0e1d1c0688..ccb6d3048b 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
> @@ -2591,7 +2593,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 b6ce2d11df..f7303589df 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
> @@ -2538,7 +2540,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 e364a01f1e..b5d3084f8b 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
> @@ -2722,7 +2724,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 08bbbce4a2..49fa6e109d 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
> @@ -2497,7 +2499,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 eb9e9ac07d..37356621aa 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -446,7 +446,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
> @@ -832,8 +834,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 b408481e59..cbbd396f8f 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
> @@ -2665,7 +2667,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 c9a8d74767..a06665d2a5 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
> @@ -2642,7 +2644,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 e409a40746..02b859afb2 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
> @@ -2639,7 +2641,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 014913aca8..6dfcd3d474 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
> @@ -2630,7 +2632,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 bc70779dd2..1782e7a113 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
> @@ -2628,7 +2630,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 e71fd1249b..36334df8b9 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
> @@ -2636,7 +2638,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 b2760740e1..8841efbe76 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
> @@ -2548,7 +2550,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 8bd4793e3f..ac77a8ba64 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
> @@ -2681,7 +2683,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 3b25e6893a..8fb867e176 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
> @@ -2692,7 +2694,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 78a501fac1..98c92fc2d8 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
> @@ -2725,7 +2727,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 fc5d03b3fe..eb77c459a0 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
> @@ -2460,7 +2462,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 44550469c2..9d9c61fe79 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
> @@ -2762,7 +2764,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 289f148fb2..1a9301fe5d 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
> @@ -2327,7 +2329,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 738405ecca..93f6b17743 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
> @@ -2527,7 +2529,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 bfb4d0168f..14b8be0b17 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
> @@ -2690,7 +2692,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 ed73e1c75b..11bc28b033 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
> @@ -2497,7 +2499,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 ac8eb152d5..fc5f5948f3 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
> @@ -2545,7 +2547,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 28c54dfe63..29c3521df1 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
> @@ -2542,7 +2544,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 9e4fe11b6e..c9bd20080b 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
> @@ -2685,7 +2687,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 66cf930fa9..e336393be4 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
> @@ -2520,7 +2522,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 1915276f61..3e079a3783 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
> @@ -2475,7 +2477,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 777d7614ee..540e30dd94 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
> @@ -2581,7 +2583,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
> 

OK. Everything else looks the same.

-- 
Cheers,
Carlos.


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

* Re: [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc
  2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
                   ` (23 preceding siblings ...)
  2021-07-15  9:11 ` [PATCH 24/24] nss: Directly load nss_dns, without going through dlsym/dlopen Florian Weimer via Libc-alpha
@ 2021-07-20  9:17 ` Andreas Schwab
  2021-07-20 10:26   ` Florian Weimer via Libc-alpha
  24 siblings, 1 reply; 34+ messages in thread
From: Andreas Schwab @ 2021-07-20  9:17 UTC (permalink / raw)
  To: Florian Weimer via Libc-alpha; +Cc: Florian Weimer

This again adds new files /usr/lib64/libnss_dns.a and
/usr/lib64/libnss_dns_p.a.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."

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

* Re: [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc
  2021-07-20  9:17 ` [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Andreas Schwab
@ 2021-07-20 10:26   ` Florian Weimer via Libc-alpha
  0 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-20 10:26 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: Florian Weimer via Libc-alpha

* Andreas Schwab:

> This again adds new files /usr/lib64/libnss_dns.a and
> /usr/lib64/libnss_dns_p.a.

Sorry, I got distracted and forgot to fixup resolv/Makefile, too.
I'm going to send a patch shortly.

Thanks,
Florian


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

* Re: [PATCH 22/24] resolv: Move res_query functions into libc
  2021-07-15  9:10 ` [PATCH 22/24] resolv: Move res_query functions " Florian Weimer via Libc-alpha
@ 2021-07-21  9:54   ` Andreas Schwab
  2021-07-21 10:16     ` Florian Weimer via Libc-alpha
  0 siblings, 1 reply; 34+ messages in thread
From: Andreas Schwab @ 2021-07-21  9:54 UTC (permalink / raw)
  To: Florian Weimer via Libc-alpha; +Cc: Florian Weimer

fedfs-utils wants __res_querydomain.  Do we want to support this?

https://build.opensuse.org/package/live_build_log/home:Andreas_Schwab:glibc:rebuild/fedfs-utils/f/x86_64

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."

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

* Re: [PATCH 22/24] resolv: Move res_query functions into libc
  2021-07-21  9:54   ` Andreas Schwab
@ 2021-07-21 10:16     ` Florian Weimer via Libc-alpha
  0 siblings, 0 replies; 34+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-21 10:16 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: Florian Weimer via Libc-alpha

* Andreas Schwab:

> fedfs-utils wants __res_querydomain.  Do we want to support this?
>
> https://build.opensuse.org/package/live_build_log/home:Andreas_Schwab:glibc:rebuild/fedfs-utils/f/x86_64

The configure test looks like this:

AC_CHECK_LIB([resolv], [__res_querydomain],
                [AC_SUBST([LIBRESOLV], ["-lresolv"])
                 AC_DEFINE([HAVE_LIBRESOLV], [1],
                           [Define if you have libresolv])],
                [AC_MSG_ERROR([libresolv not found.])])

The AC_MSG_ERROR probably needs to be removed.  HAVE_LIBRESOLV is
unused, and LIBRESOLV is not needed if __res_querydomain is not
available (because res_querydomain is in libc).

I'm not sure if we need to cater to such configure tests.  In my
opinion, if programmers want to check for the presence of such
(non-POSIX) functions, they need to include <resolv.h> and use an
appropriate source code fragment.

As far as I can see, other software (emacs, mtr, sendmail) checks both
__res_* and res_* names and should be fine with __res_* as compat
symbols.

Thanks,
Florian


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

end of thread, other threads:[~2021-07-21 10:16 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-15  9:08 [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Florian Weimer via Libc-alpha
2021-07-15  9:09 ` [PATCH 01/24] resolv: Deprecate legacy interfaces in libresolv Florian Weimer via Libc-alpha
2021-07-15  9:30   ` Andreas Schwab
2021-07-15  9:32     ` Florian Weimer via Libc-alpha
2021-07-19  1:48   ` Carlos O'Donell via Libc-alpha
2021-07-15  9:09 ` [PATCH 02/24] resolv: Move ns_name_skip to its own file and into libc (bug 28091) Florian Weimer via Libc-alpha
2021-07-19  1:52   ` Carlos O'Donell via Libc-alpha
2021-07-15  9:09 ` [PATCH 03/24] resolv: Move ns_name_uncompress into its own file and into libc Florian Weimer via Libc-alpha
2021-07-15  9:09 ` [PATCH 04/24] resolv: Move ns_name_pton " Florian Weimer via Libc-alpha
2021-07-15  9:09 ` [PATCH 05/24] resolv: Move ns_name_pack " Florian Weimer via Libc-alpha
2021-07-15  9:09 ` [PATCH 06/24] resolv: Move ns_name_compress " Florian Weimer via Libc-alpha
2021-07-15  9:09 ` [PATCH 07/24] resolv: Move dn_expand to " Florian Weimer via Libc-alpha
2021-07-15  9:09 ` [PATCH 08/24] resolv: Move _getlong, _getshort, __putlong, __putshort to res-putget Florian Weimer via Libc-alpha
2021-07-15  9:09 ` [PATCH 09/24] resolv: Move dn_comp to its own file and into libc Florian Weimer via Libc-alpha
2021-07-15  9:09 ` [PATCH 10/24] resolv: Move dn_skipname " Florian Weimer via Libc-alpha
2021-07-15  9:09 ` [PATCH 11/24] resolv: Rename res_comp.c to res-name-checking.c and move " Florian Weimer via Libc-alpha
2021-07-15  9:10 ` [PATCH 12/24] resolv: Move __res_get_nsaddr to its own file and " Florian Weimer via Libc-alpha
2021-07-15  9:10 ` [PATCH 13/24] resolv: Move res_isourserver to its own file and reformat to GNU style Florian Weimer via Libc-alpha
2021-07-15  9:10 ` [PATCH 14/24] resolv: Move ns_makecanon into its own file, and into libc Florian Weimer via Libc-alpha
2021-07-15  9:10 ` [PATCH 15/24] resolv: Move ns_samename " Florian Weimer via Libc-alpha
2021-07-15  9:10 ` [PATCH 16/24] resolv: Move res_nameinquery to its own file " Florian Weimer via Libc-alpha
2021-07-15  9:10 ` [PATCH 17/24] resolv: Move res_queriesmatch " Florian Weimer via Libc-alpha
2021-07-15  9:10 ` [PATCH 18/24] resolv: Move __res_context_hostalias into " Florian Weimer via Libc-alpha
2021-07-15  9:10 ` [PATCH 19/24] resolv: Move res_hostalias into its own file, along with hostalias Florian Weimer via Libc-alpha
2021-07-15  9:10 ` [PATCH 20/24] resolv: Move res_send, res_nsend into libc Florian Weimer via Libc-alpha
2021-07-19  1:54   ` Carlos O'Donell via Libc-alpha
2021-07-15  9:10 ` [PATCH 21/24] resolv: Move res_mkquery, res_nmkquery " Florian Weimer via Libc-alpha
2021-07-15  9:10 ` [PATCH 22/24] resolv: Move res_query functions " Florian Weimer via Libc-alpha
2021-07-21  9:54   ` Andreas Schwab
2021-07-21 10:16     ` Florian Weimer via Libc-alpha
2021-07-15  9:10 ` [PATCH 23/24] resolv: Move nss_dns " Florian Weimer via Libc-alpha
2021-07-15  9:11 ` [PATCH 24/24] nss: Directly load nss_dns, without going through dlsym/dlopen Florian Weimer via Libc-alpha
2021-07-20  9:17 ` [PATCH v3 00/24] Move nss_dns and parts of libresolv into libc Andreas Schwab
2021-07-20 10:26   ` Florian Weimer via Libc-alpha

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).