unofficial mirror of libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 28/30] resolv: Move res_query functions into libc
  2021-07-02 18:47 [PATCH 00/30] Move nss_dns " Florian Weimer via Libc-alpha
@ 2021-07-02 18:49 ` Florian Weimer via Libc-alpha
  0 siblings, 0 replies; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-02 18:49 UTC (permalink / raw)
  To: libc-alpha

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

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

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



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

* [PATCH v2 00/30] nss_dns move into libc
@ 2021-07-08 14:59 Florian Weimer via Libc-alpha
  2021-07-08 14:59 ` [PATCH 01/30] socket: Add hidden prototype for setsockopt Florian Weimer via Libc-alpha
                   ` (30 more replies)
  0 siblings, 31 replies; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 14:59 UTC (permalink / raw)
  To: libc-alpha

This is a rebase of the previous series.  The final patch (direct
loading) has been integrated with the nss_files changes.

Re-tested on i686-linux-gnu, x86_64-linux-gnu.  Built with
build-many-glibcs.py.

Thanks,
Florian

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

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

-- 
2.31.1


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

* [PATCH 01/30] socket: Add hidden prototype for setsockopt
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
@ 2021-07-08 14:59 ` Florian Weimer via Libc-alpha
  2021-07-08 18:02   ` Adhemerval Zanella via Libc-alpha
  2021-07-15  4:59   ` Carlos O'Donell via Libc-alpha
  2021-07-08 14:59 ` [PATCH 02/30] resolv: Deprecate legacy interfaces in <resolv.h> Florian Weimer via Libc-alpha
                   ` (29 subsequent siblings)
  30 siblings, 2 replies; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 14:59 UTC (permalink / raw)
  To: libc-alpha

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

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



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

* [PATCH 02/30] resolv: Deprecate legacy interfaces in <resolv.h>
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
  2021-07-08 14:59 ` [PATCH 01/30] socket: Add hidden prototype for setsockopt Florian Weimer via Libc-alpha
@ 2021-07-08 14:59 ` Florian Weimer via Libc-alpha
  2021-07-08 18:32   ` Adhemerval Zanella via Libc-alpha
  2021-07-15  4:59   ` Carlos O'Donell via Libc-alpha
  2021-07-08 14:59 ` [PATCH 03/30] resolv: Sort Makefile routines and Versions lexicographically Florian Weimer via Libc-alpha
                   ` (28 subsequent siblings)
  30 siblings, 2 replies; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 14:59 UTC (permalink / raw)
  To: libc-alpha

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

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

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

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

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

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



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

* [PATCH 03/30] resolv: Sort Makefile routines and Versions lexicographically
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
  2021-07-08 14:59 ` [PATCH 01/30] socket: Add hidden prototype for setsockopt Florian Weimer via Libc-alpha
  2021-07-08 14:59 ` [PATCH 02/30] resolv: Deprecate legacy interfaces in <resolv.h> Florian Weimer via Libc-alpha
@ 2021-07-08 14:59 ` Florian Weimer via Libc-alpha
  2021-07-08 18:33   ` Adhemerval Zanella via Libc-alpha
  2021-07-15  4:59   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:00 ` [PATCH 04/30] nss_dns: Do not use deprecated packet parsing functions Florian Weimer via Libc-alpha
                   ` (27 subsequent siblings)
  30 siblings, 2 replies; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 14:59 UTC (permalink / raw)
  To: libc-alpha

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

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



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

* [PATCH 04/30] nss_dns: Do not use deprecated packet parsing functions
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (2 preceding siblings ...)
  2021-07-08 14:59 ` [PATCH 03/30] resolv: Sort Makefile routines and Versions lexicographically Florian Weimer via Libc-alpha
@ 2021-07-08 15:00 ` Florian Weimer via Libc-alpha
  2021-07-15  5:00   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:00 ` [PATCH 05/30] resolv: Move ns_name_ntop to its own file and into libc Florian Weimer via Libc-alpha
                   ` (26 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:00 UTC (permalink / raw)
  To: libc-alpha

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

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



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

* [PATCH 05/30] resolv: Move ns_name_ntop to its own file and into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (3 preceding siblings ...)
  2021-07-08 15:00 ` [PATCH 04/30] nss_dns: Do not use deprecated packet parsing functions Florian Weimer via Libc-alpha
@ 2021-07-08 15:00 ` Florian Weimer via Libc-alpha
  2021-07-15  5:00   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:00 ` [PATCH 06/30] resolv: Move ns_name_unpack " Florian Weimer via Libc-alpha
                   ` (25 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:00 UTC (permalink / raw)
  To: libc-alpha

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

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

diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
index 7a8290e1f2..f1a696514a 100644
--- a/include/arpa/nameser.h
+++ b/include/arpa/nameser.h
@@ -65,7 +65,6 @@ libresolv_hidden_proto (ns_put32)
 libresolv_hidden_proto (ns_initparse)
 libresolv_hidden_proto (ns_skiprr)
 libresolv_hidden_proto (ns_parserr)
-libresolv_hidden_proto (ns_name_ntop)
 libresolv_hidden_proto (ns_name_pton)
 libresolv_hidden_proto (ns_name_pack)
 libresolv_hidden_proto (ns_name_skip)
@@ -79,5 +78,8 @@ libresolv_hidden_proto (ns_samename)
 libresolv_hidden_proto (ns_makecanon)
 libresolv_hidden_proto (ns_format_ttl)
 
+extern __typeof (ns_name_ntop) __ns_name_ntop;
+libc_hidden_proto (__ns_name_ntop)
+
 # endif /* !_ISOMAC */
 #endif
diff --git a/resolv/Makefile b/resolv/Makefile
index f14b149b31..bb16175654 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -32,6 +32,7 @@ routines := \
   inet_addr \
   inet_ntop \
   inet_pton \
+  ns_name_ntop \
   nsap_addr \
   res-close \
   res-state \
diff --git a/resolv/Versions b/resolv/Versions
index 3b5328301a..4bf1a13d48 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -24,6 +24,9 @@ libc {
     getaddrinfo_a;
 %endif
   }
+  GLIBC_2.9 {
+    ns_name_ntop;
+  }
   GLIBC_2.34 {
 %if PTHREAD_IN_LIBC
     gai_cancel;
@@ -31,6 +34,7 @@ libc {
     gai_suspend;
     getaddrinfo_a;
 %endif
+    ns_name_ntop;
   }
   GLIBC_PRIVATE {
 %if !PTHREAD_IN_LIBC
@@ -40,6 +44,7 @@ libc {
     __inet_aton_exact;
     __inet_pton_length;
     __res_iclose;
+    __ns_name_ntop;
     __resolv_context_get;
     __resolv_context_get_override;
     __resolv_context_get_preinit;
@@ -137,7 +142,6 @@ libresolv {
     ns_msg_getflag;
     ns_name_compress;
     ns_name_ntol;
-    ns_name_ntop;
     ns_name_pack;
     ns_name_pton;
     ns_name_rollback;
@@ -158,7 +162,6 @@ libresolv {
   GLIBC_PRIVATE {
     __ns_get16;
     __ns_get32;
-    __ns_name_ntop;
     __ns_name_unpack;
     __res_context_hostalias;
     __res_context_query;
diff --git a/resolv/ns_name.c b/resolv/ns_name.c
index 73213fee2d..4990003746 100644
--- a/resolv/ns_name.c
+++ b/resolv/ns_name.c
@@ -35,8 +35,6 @@ static const char	digits[] = "0123456789";
 
 /* Forward. */
 
-static int		special(int);
-static int		printable(int);
 static int		dn_find(const u_char *, const u_char *,
 				const u_char * const *,
 				const u_char * const *);
@@ -44,93 +42,6 @@ static int		labellen(const u_char *);
 
 /* Public. */
 
-/*%
- *	Convert an encoded domain name to printable ascii as per RFC1035.
-
- * return:
- *\li	Number of bytes written to buffer, or -1 (with errno set)
- *
- * notes:
- *\li	The root is returned as "."
- *\li	All other domains are returned in non absolute form
- */
-int
-ns_name_ntop(const u_char *src, char *dst, size_t dstsiz)
-{
-	const u_char *cp;
-	char *dn, *eom;
-	u_char c;
-	u_int n;
-	int l;
-
-	cp = src;
-	dn = dst;
-	eom = dst + dstsiz;
-
-	while ((n = *cp++) != 0) {
-		if ((n & NS_CMPRSFLGS) == NS_CMPRSFLGS) {
-			/* Some kind of compression pointer. */
-			__set_errno (EMSGSIZE);
-			return (-1);
-		}
-		if (dn != dst) {
-			if (dn >= eom) {
-				__set_errno (EMSGSIZE);
-				return (-1);
-			}
-			*dn++ = '.';
-		}
-		if ((l = labellen(cp - 1)) < 0) {
-			__set_errno (EMSGSIZE);
-			return(-1);
-		}
-		if (dn + l >= eom) {
-			__set_errno (EMSGSIZE);
-			return (-1);
-		}
-		for ((void)NULL; l > 0; l--) {
-			c = *cp++;
-			if (special(c)) {
-				if (dn + 1 >= eom) {
-					__set_errno (EMSGSIZE);
-					return (-1);
-				}
-				*dn++ = '\\';
-				*dn++ = (char)c;
-			} else if (!printable(c)) {
-				if (dn + 3 >= eom) {
-					__set_errno (EMSGSIZE);
-					return (-1);
-				}
-				*dn++ = '\\';
-				*dn++ = digits[c / 100];
-				*dn++ = digits[(c % 100) / 10];
-				*dn++ = digits[c % 10];
-			} else {
-				if (dn >= eom) {
-					__set_errno (EMSGSIZE);
-					return (-1);
-				}
-				*dn++ = (char)c;
-			}
-		}
-	}
-	if (dn == dst) {
-		if (dn >= eom) {
-			__set_errno (EMSGSIZE);
-			return (-1);
-		}
-		*dn++ = '.';
-	}
-	if (dn >= eom) {
-		__set_errno (EMSGSIZE);
-		return (-1);
-	}
-	*dn++ = '\0';
-	return (dn - dst);
-}
-libresolv_hidden_def (ns_name_ntop)
-strong_alias (ns_name_ntop, __ns_name_ntop)
 
 /*%
  *	Convert an ascii string into an encoded domain name as per RFC1035.
@@ -517,7 +428,7 @@ ns_name_uncompress(const u_char *msg, const u_char *eom, const u_char *src,
 
 	if ((n = ns_name_unpack(msg, eom, src, tmp, sizeof tmp)) == -1)
 		return (-1);
-	if (ns_name_ntop(tmp, dst, dstsiz) == -1)
+	if (__ns_name_ntop (tmp, dst, dstsiz) == -1)
 		return (-1);
 	return (n);
 }
@@ -606,43 +517,6 @@ libresolv_hidden_def (ns_name_skip)
 
 /* Private. */
 
-/*%
- *	Thinking in noninternationalized USASCII (per the DNS spec),
- *	is this character special ("in need of quoting") ?
- *
- * return:
- *\li	boolean.
- */
-static int
-special(int ch) {
-	switch (ch) {
-	case 0x22: /*%< '"' */
-	case 0x2E: /*%< '.' */
-	case 0x3B: /*%< ';' */
-	case 0x5C: /*%< '\\' */
-	case 0x28: /*%< '(' */
-	case 0x29: /*%< ')' */
-	/* Special modifiers in zone files. */
-	case 0x40: /*%< '@' */
-	case 0x24: /*%< '$' */
-		return (1);
-	default:
-		return (0);
-	}
-}
-
-/*%
- *	Thinking in noninternationalized USASCII (per the DNS spec),
- *	is this character visible and not a space when printed ?
- *
- * return:
- *\li	boolean.
- */
-static int
-printable(int ch) {
-	return (ch > 0x20 && ch < 0x7f);
-}
-
 /*%
  *	Thinking in noninternationalized USASCII (per the DNS spec),
  *	convert this character to lower case if it's upper case.
diff --git a/resolv/ns_name_ntop.c b/resolv/ns_name_ntop.c
new file mode 100644
index 0000000000..4dab3a3ce0
--- /dev/null
+++ b/resolv/ns_name_ntop.c
@@ -0,0 +1,145 @@
+/* Convert DNS domain names from network format to textual presentation format.
+ * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1996,1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <errno.h>
+#include <shlib-compat.h>
+#include <stdbool.h>
+
+/* Thinking in noninternationalized US-ASCII (per the DNS spec), is
+   this character special ("in need of quoting")?  */
+static inline bool
+special (int ch)
+{
+  switch (ch)
+    {
+    case '"':
+    case '.':
+    case ';':
+    case '\\':
+    case '(':
+    case ')':
+      /* Special modifiers in zone files.  */
+    case '@':
+    case '$':
+      return true;
+    default:
+      return false;
+    }
+}
+
+/* Thinking in noninternationalized US-ASCII (per the DNS spec), is
+   this character visible and not a space when printed?  */
+static inline bool
+printable (int ch)
+{
+  return ch > 0x20 && ch < 0x7f;
+}
+
+/* Converts an uncompressed, encoded domain name to printable ASCII as
+   per RFC1035.  Returns the number of bytes written to buffer, or -1
+   (with errno set).  The root is returned as "."  All other domains
+   are returned in non absolute form.  */
+int
+___ns_name_ntop (const unsigned char *src, char *dst, size_t dstsiz)
+{
+  const unsigned char *cp;
+  char *dn, *eom;
+  unsigned char c;
+  int l;
+
+  cp = src;
+  dn = dst;
+  eom = dst + dstsiz;
+
+  while ((l = *cp++) != 0)
+    {
+      if (l >= 64)
+        {
+          /* Some kind of compression pointer.  */
+          __set_errno (EMSGSIZE);
+          return -1;
+        }
+      if (dn != dst)
+        {
+          if (dn >= eom)
+            {
+              __set_errno (EMSGSIZE);
+              return -1;
+            }
+          *dn++ = '.';
+        }
+      for (; l > 0; l--)
+        {
+          c = *cp++;
+          if (special (c))
+            {
+              if (eom - dn < 2)
+                {
+                  __set_errno (EMSGSIZE);
+                  return -1;
+                }
+              *dn++ = '\\';
+              *dn++ = c;
+            }
+          else if (!printable (c))
+            {
+              if (eom - dn < 4)
+                {
+                  __set_errno (EMSGSIZE);
+                  return -1;
+                }
+              *dn++ = '\\';
+              *dn++ = '0' + (c / 100);
+              *dn++ = '0' + ((c % 100) / 10);
+              *dn++ = '0' + (c % 10);
+            }
+          else
+            {
+              if (eom - dn < 2)
+                {
+                  __set_errno (EMSGSIZE);
+                  return -1;
+                }
+              *dn++ = c;
+            }
+        }
+    }
+  if (dn == dst)
+    {
+      if (dn >= eom)
+        {
+          __set_errno (EMSGSIZE);
+          return -1;
+        }
+      *dn++ = '.';
+    }
+  if (dn >= eom)
+    {
+      __set_errno (EMSGSIZE);
+      return -1;
+    }
+  *dn++ = '\0';
+  return dn - dst;
+}
+versioned_symbol (libc, ___ns_name_ntop, ns_name_ntop, GLIBC_2_34);
+versioned_symbol (libc, ___ns_name_ntop, __ns_name_ntop, GLIBC_PRIVATE);
+libc_hidden_ver (___ns_name_ntop, __ns_name_ntop)
+
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_9, GLIBC_2_34)
+compat_symbol (libresolv, ___ns_name_ntop, ns_name_ntop, GLIBC_2_9);
+#endif
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index fcfe64f26b..a2cb340469 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2240,6 +2240,7 @@ GLIBC_2.34 login F
 GLIBC_2.34 login_tty F
 GLIBC_2.34 logout F
 GLIBC_2.34 logwtmp F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 shm_open F
 GLIBC_2.34 shm_unlink F
@@ -2360,6 +2361,7 @@ GLIBC_2.8 __vasprintf_chk F
 GLIBC_2.8 __vdprintf_chk F
 GLIBC_2.8 qsort_r F
 GLIBC_2.9 dup3 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
 HURD_CTHREADS_0.3 __cthread_getspecific F
 HURD_CTHREADS_0.3 __cthread_keycreate F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index e662651c8e..63a07a6073 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 6f19b07b47..e263dca707 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1404,6 +1404,7 @@ GLIBC_2.17 nl_langinfo F
 GLIBC_2.17 nl_langinfo_l F
 GLIBC_2.17 nrand48 F
 GLIBC_2.17 nrand48_r F
+GLIBC_2.17 ns_name_ntop F
 GLIBC_2.17 ntohl F
 GLIBC_2.17 ntohs F
 GLIBC_2.17 ntp_adjtime F
@@ -2450,6 +2451,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
index f7fdd26bd1..0a93c2cc44 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
@@ -67,7 +67,6 @@ GLIBC_2.17 ns_makecanon F
 GLIBC_2.17 ns_msg_getflag F
 GLIBC_2.17 ns_name_compress F
 GLIBC_2.17 ns_name_ntol F
-GLIBC_2.17 ns_name_ntop F
 GLIBC_2.17 ns_name_pack F
 GLIBC_2.17 ns_name_pton F
 GLIBC_2.17 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 6ece449d4b..6bdfc2dc34 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2549,6 +2549,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2982,4 +2983,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
index 06f995151c..2eee410d23 100644
--- a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 3bf846349f..d129dd12ff 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1338,6 +1338,7 @@ GLIBC_2.32 nl_langinfo F
 GLIBC_2.32 nl_langinfo_l F
 GLIBC_2.32 nrand48 F
 GLIBC_2.32 nrand48_r F
+GLIBC_2.32 ns_name_ntop F
 GLIBC_2.32 ntohl F
 GLIBC_2.32 ntohs F
 GLIBC_2.32 ntp_adjtime F
@@ -2209,6 +2210,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
index c5edf99ea9..232146e7db 100644
--- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
@@ -60,7 +60,6 @@ GLIBC_2.32 ns_makecanon F
 GLIBC_2.32 ns_msg_getflag F
 GLIBC_2.32 ns_name_compress F
 GLIBC_2.32 ns_name_ntol F
-GLIBC_2.32 ns_name_ntop F
 GLIBC_2.32 ns_name_pack F
 GLIBC_2.32 ns_name_pton F
 GLIBC_2.32 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 08be998d35..c0c24b0772 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -343,6 +343,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2678,4 +2679,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
index 2dd5094f76..1f2d60151f 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index ebd767ed96..dc666f1cc1 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -340,6 +340,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2675,4 +2676,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
index 2dd5094f76..1f2d60151f 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 4a467e706e..403a84d1c6 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1395,6 +1395,7 @@ GLIBC_2.29 nl_langinfo F
 GLIBC_2.29 nl_langinfo_l F
 GLIBC_2.29 nrand48 F
 GLIBC_2.29 nrand48_r F
+GLIBC_2.29 ns_name_ntop F
 GLIBC_2.29 ntohl F
 GLIBC_2.29 ntohs F
 GLIBC_2.29 ntp_adjtime F
@@ -2475,6 +2476,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
index 2830a7efd1..eca5d43340 100644
--- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
@@ -60,7 +60,6 @@ GLIBC_2.29 ns_makecanon F
 GLIBC_2.29 ns_msg_getflag F
 GLIBC_2.29 ns_name_compress F
 GLIBC_2.29 ns_name_ntol F
-GLIBC_2.29 ns_name_ntop F
 GLIBC_2.29 ns_name_pack F
 GLIBC_2.29 ns_name_pton F
 GLIBC_2.29 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index bdef8d2a34..640fe27645 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2428,6 +2428,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2692,4 +2693,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
index 157a33ce35..14c65c7a46 100644
--- a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index eba95a2cf0..0064e5c88a 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2612,6 +2612,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2876,4 +2877,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/i386/libresolv.abilist b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
index 157a33ce35..14c65c7a46 100644
--- a/sysdeps/unix/sysv/linux/i386/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 3fbc5ae978..f42d8294de 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2387,6 +2387,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2651,4 +2652,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
index 06f995151c..2eee410d23 100644
--- a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 0aef2ec43a..53f45dc6a4 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -344,6 +344,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2657,4 +2658,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
index 2dd5094f76..1f2d60151f 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index a4704f7e96..8992fdb150 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2555,6 +2555,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2819,4 +2820,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
index 157a33ce35..14c65c7a46 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 8f135f30c0..85651e5bfe 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1406,6 +1406,7 @@ GLIBC_2.18 nl_langinfo F
 GLIBC_2.18 nl_langinfo_l F
 GLIBC_2.18 nrand48 F
 GLIBC_2.18 nrand48_r F
+GLIBC_2.18 ns_name_ntop F
 GLIBC_2.18 ntohl F
 GLIBC_2.18 ntohs F
 GLIBC_2.18 ntp_adjtime F
@@ -2526,6 +2527,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
index b04f0397c8..815672536e 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
@@ -67,7 +67,6 @@ GLIBC_2.18 ns_makecanon F
 GLIBC_2.18 ns_msg_getflag F
 GLIBC_2.18 ns_name_compress F
 GLIBC_2.18 ns_name_ntol F
-GLIBC_2.18 ns_name_ntop F
 GLIBC_2.18 ns_name_pack F
 GLIBC_2.18 ns_name_pton F
 GLIBC_2.18 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 719609ac10..be1f207863 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1406,6 +1406,7 @@ GLIBC_2.18 nl_langinfo F
 GLIBC_2.18 nl_langinfo_l F
 GLIBC_2.18 nrand48 F
 GLIBC_2.18 nrand48_r F
+GLIBC_2.18 ns_name_ntop F
 GLIBC_2.18 ntohl F
 GLIBC_2.18 ntohs F
 GLIBC_2.18 ntp_adjtime F
@@ -2523,6 +2524,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
index b04f0397c8..815672536e 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
@@ -67,7 +67,6 @@ GLIBC_2.18 ns_makecanon F
 GLIBC_2.18 ns_msg_getflag F
 GLIBC_2.18 ns_name_compress F
 GLIBC_2.18 ns_name_ntol F
-GLIBC_2.18 ns_name_ntop F
 GLIBC_2.18 ns_name_pack F
 GLIBC_2.18 ns_name_pton F
 GLIBC_2.18 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index f9a6bccdc5..7bf0307887 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2520,6 +2520,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2780,4 +2781,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
index 157a33ce35..14c65c7a46 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index cee02495c6..909b533575 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2518,6 +2518,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2778,4 +2779,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index c9fdfe3a55..ddeedf1dd9 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2526,6 +2526,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2786,4 +2787,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
index 157a33ce35..14c65c7a46 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index d27c97094e..93036f5b60 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2438,6 +2438,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2698,4 +2699,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
index 06f995151c..2eee410d23 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 25f270403f..da0f44c5e1 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1449,6 +1449,7 @@ GLIBC_2.21 nl_langinfo F
 GLIBC_2.21 nl_langinfo_l F
 GLIBC_2.21 nrand48 F
 GLIBC_2.21 nrand48_r F
+GLIBC_2.21 ns_name_ntop F
 GLIBC_2.21 ntohl F
 GLIBC_2.21 ntohs F
 GLIBC_2.21 ntp_adjtime F
@@ -2565,6 +2566,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
index 2a2bec433f..b1b08bb486 100644
--- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
@@ -67,7 +67,6 @@ GLIBC_2.21 ns_makecanon F
 GLIBC_2.21 ns_msg_getflag F
 GLIBC_2.21 ns_name_compress F
 GLIBC_2.21 ns_name_ntol F
-GLIBC_2.21 ns_name_ntop F
 GLIBC_2.21 ns_name_pack F
 GLIBC_2.21 ns_name_pton F
 GLIBC_2.21 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 0256a272dd..0e7944d5b7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2582,6 +2582,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -3017,4 +3018,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
index 157a33ce35..14c65c7a46 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 946f855c64..ea590ca43c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2615,6 +2615,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -3062,4 +3063,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 602da17327..fde9d2e40d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2351,6 +2351,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2786,4 +2787,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
index 15f30deb34..c998d17d81 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 287285a21a..70eaf6b69b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1492,6 +1492,7 @@ GLIBC_2.17 nl_langinfo F
 GLIBC_2.17 nl_langinfo_l F
 GLIBC_2.17 nrand48 F
 GLIBC_2.17 nrand48_r F
+GLIBC_2.17 ns_name_ntop F
 GLIBC_2.17 ntohl F
 GLIBC_2.17 ntohs F
 GLIBC_2.17 ntp_adjtime F
@@ -2646,6 +2647,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
index f7fdd26bd1..0a93c2cc44 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
@@ -67,7 +67,6 @@ GLIBC_2.17 ns_makecanon F
 GLIBC_2.17 ns_msg_getflag F
 GLIBC_2.17 ns_name_compress F
 GLIBC_2.17 ns_name_ntol F
-GLIBC_2.17 ns_name_ntop F
 GLIBC_2.17 ns_name_pack F
 GLIBC_2.17 ns_name_pton F
 GLIBC_2.17 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index cdeee28d0f..f3a14d6efc 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1340,6 +1340,7 @@ GLIBC_2.33 nl_langinfo F
 GLIBC_2.33 nl_langinfo_l F
 GLIBC_2.33 nrand48 F
 GLIBC_2.33 nrand48_r F
+GLIBC_2.33 ns_name_ntop F
 GLIBC_2.33 ntohl F
 GLIBC_2.33 ntohs F
 GLIBC_2.33 ntp_adjtime F
@@ -2211,6 +2212,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
index 43947f7e27..a3af26db78 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
@@ -60,7 +60,6 @@ GLIBC_2.33 ns_makecanon F
 GLIBC_2.33 ns_msg_getflag F
 GLIBC_2.33 ns_name_compress F
 GLIBC_2.33 ns_name_ntol F
-GLIBC_2.33 ns_name_ntop F
 GLIBC_2.33 ns_name_pack F
 GLIBC_2.33 ns_name_pton F
 GLIBC_2.33 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index a74b54d6bb..94ededbfb6 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1387,6 +1387,7 @@ GLIBC_2.27 nl_langinfo F
 GLIBC_2.27 nl_langinfo_l F
 GLIBC_2.27 nrand48 F
 GLIBC_2.27 nrand48_r F
+GLIBC_2.27 ns_name_ntop F
 GLIBC_2.27 ntohl F
 GLIBC_2.27 ntohs F
 GLIBC_2.27 ntp_adjtime F
@@ -2411,6 +2412,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
index eb9c1cb747..0d4bd6855b 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
@@ -60,7 +60,6 @@ GLIBC_2.27 ns_makecanon F
 GLIBC_2.27 ns_msg_getflag F
 GLIBC_2.27 ns_name_compress F
 GLIBC_2.27 ns_name_ntol F
-GLIBC_2.27 ns_name_ntop F
 GLIBC_2.27 ns_name_pack F
 GLIBC_2.27 ns_name_pton F
 GLIBC_2.27 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index e96371317c..6a1a79c0cb 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2580,6 +2580,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -3025,6 +3026,7 @@ GLIBC_2.9 getutxid F
 GLIBC_2.9 getutxline F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 login F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
 GLIBC_2.9 pututline F
 GLIBC_2.9 pututxline F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
index 157a33ce35..14c65c7a46 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index aadc7c1d66..0ccda5fb5e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2388,6 +2388,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2821,4 +2822,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
index dcc4de5f55..548e92b846 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index cc4a625cb4..0b2709d984 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2435,6 +2435,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2699,4 +2700,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
index 157a33ce35..14c65c7a46 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 163d2cd613..3077a96068 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2432,6 +2432,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2696,4 +2697,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
index 157a33ce35..14c65c7a46 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 6eceee6b88..1df94b2c6b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2575,6 +2575,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -3034,4 +3035,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
index 157a33ce35..14c65c7a46 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index e6bac469ba..8596cfbde9 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2410,6 +2410,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2674,4 +2675,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
index 06f995151c..2eee410d23 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index e90f3e54c0..7422e4dcd6 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2366,6 +2366,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2630,4 +2631,5 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
index 61d6b2b853..954af66409 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 792f681bba..dba3592fb9 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1411,6 +1411,7 @@ GLIBC_2.16 nl_langinfo F
 GLIBC_2.16 nl_langinfo_l F
 GLIBC_2.16 nrand48 F
 GLIBC_2.16 nrand48_r F
+GLIBC_2.16 ns_name_ntop F
 GLIBC_2.16 ntohl F
 GLIBC_2.16 ntohs F
 GLIBC_2.16 ntp_adjtime F
@@ -2465,6 +2466,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
index 2457bc9d49..79b4bbdd98 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
@@ -67,7 +67,6 @@ GLIBC_2.16 ns_makecanon F
 GLIBC_2.16 ns_msg_getflag F
 GLIBC_2.16 ns_name_compress F
 GLIBC_2.16 ns_name_ntol F
-GLIBC_2.16 ns_name_ntop F
 GLIBC_2.16 ns_name_pack F
 GLIBC_2.16 ns_name_pton F
 GLIBC_2.16 ns_name_rollback F
-- 
2.31.1



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

* [PATCH 06/30] resolv: Move ns_name_unpack to its own file and into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (4 preceding siblings ...)
  2021-07-08 15:00 ` [PATCH 05/30] resolv: Move ns_name_ntop to its own file and into libc Florian Weimer via Libc-alpha
@ 2021-07-08 15:00 ` Florian Weimer via Libc-alpha
  2021-07-15  5:00   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:00 ` [PATCH 07/30] resolv: Move ns_name_skip " Florian Weimer via Libc-alpha
                   ` (24 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:00 UTC (permalink / raw)
  To: libc-alpha

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

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

diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
index f1a696514a..2396a43030 100644
--- a/include/arpa/nameser.h
+++ b/include/arpa/nameser.h
@@ -68,7 +68,6 @@ libresolv_hidden_proto (ns_parserr)
 libresolv_hidden_proto (ns_name_pton)
 libresolv_hidden_proto (ns_name_pack)
 libresolv_hidden_proto (ns_name_skip)
-libresolv_hidden_proto (ns_name_unpack)
 libresolv_hidden_proto (ns_name_compress)
 libresolv_hidden_proto (ns_name_uncompress)
 libresolv_hidden_proto (ns_sprintrr)
@@ -80,6 +79,8 @@ libresolv_hidden_proto (ns_format_ttl)
 
 extern __typeof (ns_name_ntop) __ns_name_ntop;
 libc_hidden_proto (__ns_name_ntop)
+extern __typeof (ns_name_unpack) __ns_name_unpack;
+libc_hidden_proto (__ns_name_unpack)
 
 # endif /* !_ISOMAC */
 #endif
diff --git a/resolv/Makefile b/resolv/Makefile
index bb16175654..469a9a55ae 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -33,6 +33,7 @@ routines := \
   inet_ntop \
   inet_pton \
   ns_name_ntop \
+  ns_name_unpack \
   nsap_addr \
   res-close \
   res-state \
diff --git a/resolv/Versions b/resolv/Versions
index 4bf1a13d48..9b5c4d9733 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -26,6 +26,7 @@ libc {
   }
   GLIBC_2.9 {
     ns_name_ntop;
+    ns_name_unpack;
   }
   GLIBC_2.34 {
 %if PTHREAD_IN_LIBC
@@ -35,6 +36,7 @@ libc {
     getaddrinfo_a;
 %endif
     ns_name_ntop;
+    ns_name_unpack;
   }
   GLIBC_PRIVATE {
 %if !PTHREAD_IN_LIBC
@@ -45,6 +47,7 @@ libc {
     __inet_pton_length;
     __res_iclose;
     __ns_name_ntop;
+    __ns_name_unpack;
     __resolv_context_get;
     __resolv_context_get_override;
     __resolv_context_get_preinit;
@@ -147,7 +150,6 @@ libresolv {
     ns_name_rollback;
     ns_name_skip;
     ns_name_uncompress;
-    ns_name_unpack;
     ns_parse_ttl;
     ns_parserr;
     ns_put16;
@@ -162,7 +164,6 @@ libresolv {
   GLIBC_PRIVATE {
     __ns_get16;
     __ns_get32;
-    __ns_name_unpack;
     __res_context_hostalias;
     __res_context_query;
     __res_context_search;
diff --git a/resolv/ns_name.c b/resolv/ns_name.c
index 4990003746..a0d541f110 100644
--- a/resolv/ns_name.c
+++ b/resolv/ns_name.c
@@ -217,87 +217,6 @@ ns_name_ntol(const u_char *src, u_char *dst, size_t dstsiz)
 	return (dn - dst);
 }
 
-/*%
- *	Unpack a domain name from a message, source may be compressed.
- *
- * return:
- *\li	-1 if it fails, or consumed octets if it succeeds.
- */
-int
-ns_name_unpack(const u_char *msg, const u_char *eom, const u_char *src,
-	       u_char *dst, size_t dstsiz)
-{
-	const u_char *srcp, *dstlim;
-	u_char *dstp;
-	int n, len, checked, l;
-
-	len = -1;
-	checked = 0;
-	dstp = dst;
-	srcp = src;
-	dstlim = dst + dstsiz;
-	if (srcp < msg || srcp >= eom) {
-		__set_errno (EMSGSIZE);
-		return (-1);
-	}
-	/* Fetch next label in domain name. */
-	while ((n = *srcp++) != 0) {
-		/* Check for indirection. */
-		switch (n & NS_CMPRSFLGS) {
-		case 0:
-			/* Limit checks. */
-			if ((l = labellen(srcp - 1)) < 0) {
-				__set_errno (EMSGSIZE);
-				return(-1);
-			}
-			if (dstp + l + 1 >= dstlim || srcp + l >= eom) {
-				__set_errno (EMSGSIZE);
-				return (-1);
-			}
-			checked += l + 1;
-			*dstp++ = n;
-			memcpy(dstp, srcp, l);
-			dstp += l;
-			srcp += l;
-			break;
-
-		case NS_CMPRSFLGS:
-			if (srcp >= eom) {
-				__set_errno (EMSGSIZE);
-				return (-1);
-			}
-			if (len < 0)
-				len = srcp - src + 1;
-			srcp = msg + (((n & 0x3f) << 8) | (*srcp & 0xff));
-			if (srcp < msg || srcp >= eom) {  /*%< Out of range. */
-				__set_errno (EMSGSIZE);
-				return (-1);
-			}
-			checked += 2;
-			/*
-			 * Check for loops in the compressed name;
-			 * if we've looked at the whole message,
-			 * there must be a loop.
-			 */
-			if (checked >= eom - msg) {
-				__set_errno (EMSGSIZE);
-				return (-1);
-			}
-			break;
-
-		default:
-			__set_errno (EMSGSIZE);
-			return (-1);			/*%< flag error */
-		}
-	}
-	*dstp = '\0';
-	if (len < 0)
-		len = srcp - src;
-	return (len);
-}
-libresolv_hidden_def (ns_name_unpack)
-strong_alias (ns_name_unpack, __ns_name_unpack)
-
 /*%
  *	Pack domain name 'domain' into 'comp_dn'.
  *
diff --git a/resolv/ns_name_unpack.c b/resolv/ns_name_unpack.c
new file mode 100644
index 0000000000..1c1dd3ee8a
--- /dev/null
+++ b/resolv/ns_name_unpack.c
@@ -0,0 +1,115 @@
+/* De-compressing DNS domain names into binary-encoded uncompressed name.
+ * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1996,1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <errno.h>
+#include <shlib-compat.h>
+#include <stddef.h>
+#include <string.h>
+
+/* Unpack a domain name from a message, source may be compressed.
+   Returns -1 if it fails, or consumed octets if it succeeds.  */
+int
+___ns_name_unpack (const unsigned char *msg, const unsigned char *eom,
+                   const unsigned char *src, unsigned char *dst, size_t dstsiz)
+{
+  const unsigned char *srcp, *dstlim;
+  unsigned char *dstp;
+  int n, len, checked;
+
+  len = -1;
+  checked = 0;
+  dstp = dst;
+  srcp = src;
+  dstlim = dst + dstsiz;
+  if (srcp < msg || srcp >= eom)
+    {
+      __set_errno (EMSGSIZE);
+      return -1;
+    }
+  /* Fetch next label in domain name.  */
+  while ((n = *srcp++) != 0)
+    {
+      /* Check for indirection.  */
+      switch (n & NS_CMPRSFLGS)
+        {
+        case 0:
+          /* Limit checks.  */
+          if (n >= 64)
+            {
+              __set_errno (EMSGSIZE);
+              return -1;
+            }
+          /* NB: n + 1 and >= to cover the *dstp = '\0' assignment
+             below.  */
+          if (n + 1 >= dstlim - dstp || n >= eom - srcp)
+            {
+              __set_errno (EMSGSIZE);
+              return -1;
+            }
+          checked += n + 1;
+          *dstp++ = n;
+          memcpy (dstp, srcp, n);
+          dstp += n;
+          srcp += n;
+          break;
+
+        case NS_CMPRSFLGS:
+          if (srcp >= eom)
+            {
+              __set_errno (EMSGSIZE);
+              return -1;
+            }
+          if (len < 0)
+            len = srcp - src + 1;
+          {
+            int target = ((n & 0x3f) << 8) | *srcp;
+            if (target >= eom - msg)
+              {
+              /* Out of range.  */
+                __set_errno (EMSGSIZE);
+                return -1;
+            }
+            srcp = msg + target;
+          }
+          checked += 2;
+          /* Check for loops in the compressed name; if we've looked
+             at the whole message, there must be a loop.  */
+          if (checked >= eom - msg)
+            {
+              __set_errno (EMSGSIZE);
+              return -1;
+            }
+          break;
+
+        default:
+          __set_errno (EMSGSIZE);
+          return -1;
+        }
+    }
+  *dstp = '\0';
+  if (len < 0)
+    len = srcp - src;
+  return len;
+}
+versioned_symbol (libc, ___ns_name_unpack, ns_name_unpack, GLIBC_2_34);
+versioned_symbol (libc, ___ns_name_unpack, __ns_name_unpack, GLIBC_PRIVATE);
+libc_hidden_ver (___ns_name_unpack, __ns_name_unpack)
+
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_9, GLIBC_2_34)
+compat_symbol (libresolv, ___ns_name_unpack, ns_name_unpack, GLIBC_2_9);
+#endif
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index a2cb340469..6576db7c4d 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2241,6 +2241,7 @@ GLIBC_2.34 login_tty F
 GLIBC_2.34 logout F
 GLIBC_2.34 logwtmp F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 shm_open F
 GLIBC_2.34 shm_unlink F
@@ -2362,6 +2363,7 @@ GLIBC_2.8 __vdprintf_chk F
 GLIBC_2.8 qsort_r F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
 HURD_CTHREADS_0.3 __cthread_getspecific F
 HURD_CTHREADS_0.3 __cthread_keycreate F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index 63a07a6073..ac0ee33f74 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index e263dca707..740e3d74bc 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1405,6 +1405,7 @@ GLIBC_2.17 nl_langinfo_l F
 GLIBC_2.17 nrand48 F
 GLIBC_2.17 nrand48_r F
 GLIBC_2.17 ns_name_ntop F
+GLIBC_2.17 ns_name_unpack F
 GLIBC_2.17 ntohl F
 GLIBC_2.17 ntohs F
 GLIBC_2.17 ntp_adjtime F
@@ -2452,6 +2453,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
index 0a93c2cc44..088a380288 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.17 ns_name_pton F
 GLIBC_2.17 ns_name_rollback F
 GLIBC_2.17 ns_name_skip F
 GLIBC_2.17 ns_name_uncompress F
-GLIBC_2.17 ns_name_unpack F
 GLIBC_2.17 ns_parse_ttl F
 GLIBC_2.17 ns_parserr F
 GLIBC_2.17 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 6bdfc2dc34..2466effa31 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2550,6 +2550,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2984,4 +2985,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
index 2eee410d23..96bfcda497 100644
--- a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index d129dd12ff..4c5913ac9a 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1339,6 +1339,7 @@ GLIBC_2.32 nl_langinfo_l F
 GLIBC_2.32 nrand48 F
 GLIBC_2.32 nrand48_r F
 GLIBC_2.32 ns_name_ntop F
+GLIBC_2.32 ns_name_unpack F
 GLIBC_2.32 ntohl F
 GLIBC_2.32 ntohs F
 GLIBC_2.32 ntp_adjtime F
@@ -2211,6 +2212,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
index 232146e7db..a2a3b33098 100644
--- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
@@ -65,7 +65,6 @@ GLIBC_2.32 ns_name_pton F
 GLIBC_2.32 ns_name_rollback F
 GLIBC_2.32 ns_name_skip F
 GLIBC_2.32 ns_name_uncompress F
-GLIBC_2.32 ns_name_unpack F
 GLIBC_2.32 ns_parse_ttl F
 GLIBC_2.32 ns_parserr F
 GLIBC_2.32 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index c0c24b0772..c3ec2a2394 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -344,6 +344,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2680,4 +2681,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
index 1f2d60151f..b65f928a24 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index dc666f1cc1..9a608b624c 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -341,6 +341,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2677,4 +2678,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
index 1f2d60151f..b65f928a24 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 403a84d1c6..5c2fe19b5e 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1396,6 +1396,7 @@ GLIBC_2.29 nl_langinfo_l F
 GLIBC_2.29 nrand48 F
 GLIBC_2.29 nrand48_r F
 GLIBC_2.29 ns_name_ntop F
+GLIBC_2.29 ns_name_unpack F
 GLIBC_2.29 ntohl F
 GLIBC_2.29 ntohs F
 GLIBC_2.29 ntp_adjtime F
@@ -2477,6 +2478,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
index eca5d43340..706af86332 100644
--- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
@@ -65,7 +65,6 @@ GLIBC_2.29 ns_name_pton F
 GLIBC_2.29 ns_name_rollback F
 GLIBC_2.29 ns_name_skip F
 GLIBC_2.29 ns_name_uncompress F
-GLIBC_2.29 ns_name_unpack F
 GLIBC_2.29 ns_parse_ttl F
 GLIBC_2.29 ns_parserr F
 GLIBC_2.29 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 640fe27645..f76ae1034e 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2429,6 +2429,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2694,4 +2695,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
index 14c65c7a46..65c4147299 100644
--- a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 0064e5c88a..9d8a964e99 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2613,6 +2613,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2878,4 +2879,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/i386/libresolv.abilist b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
index 14c65c7a46..65c4147299 100644
--- a/sysdeps/unix/sysv/linux/i386/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index f42d8294de..12af56217c 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2388,6 +2388,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2653,4 +2654,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
index 2eee410d23..96bfcda497 100644
--- a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 53f45dc6a4..a7e7db0d51 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -345,6 +345,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2659,4 +2660,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
index 1f2d60151f..b65f928a24 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 8992fdb150..8e9523d2f2 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2556,6 +2556,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2821,4 +2822,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
index 14c65c7a46..65c4147299 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 85651e5bfe..3b080473e2 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1407,6 +1407,7 @@ GLIBC_2.18 nl_langinfo_l F
 GLIBC_2.18 nrand48 F
 GLIBC_2.18 nrand48_r F
 GLIBC_2.18 ns_name_ntop F
+GLIBC_2.18 ns_name_unpack F
 GLIBC_2.18 ntohl F
 GLIBC_2.18 ntohs F
 GLIBC_2.18 ntp_adjtime F
@@ -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_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
index 815672536e..b37f89df02 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.18 ns_name_pton F
 GLIBC_2.18 ns_name_rollback F
 GLIBC_2.18 ns_name_skip F
 GLIBC_2.18 ns_name_uncompress F
-GLIBC_2.18 ns_name_unpack F
 GLIBC_2.18 ns_parse_ttl F
 GLIBC_2.18 ns_parserr F
 GLIBC_2.18 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index be1f207863..8796b3bbfa 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1407,6 +1407,7 @@ GLIBC_2.18 nl_langinfo_l F
 GLIBC_2.18 nrand48 F
 GLIBC_2.18 nrand48_r F
 GLIBC_2.18 ns_name_ntop F
+GLIBC_2.18 ns_name_unpack F
 GLIBC_2.18 ntohl F
 GLIBC_2.18 ntohs F
 GLIBC_2.18 ntp_adjtime F
@@ -2525,6 +2526,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
index 815672536e..b37f89df02 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.18 ns_name_pton F
 GLIBC_2.18 ns_name_rollback F
 GLIBC_2.18 ns_name_skip F
 GLIBC_2.18 ns_name_uncompress F
-GLIBC_2.18 ns_name_unpack F
 GLIBC_2.18 ns_parse_ttl F
 GLIBC_2.18 ns_parserr F
 GLIBC_2.18 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 7bf0307887..68614db597 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2521,6 +2521,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2782,4 +2783,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
index 14c65c7a46..65c4147299 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 909b533575..9bbb7c5621 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2519,6 +2519,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2780,4 +2781,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index ddeedf1dd9..96bf68ec0f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2527,6 +2527,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2788,4 +2789,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
index 14c65c7a46..65c4147299 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 93036f5b60..6d3036a673 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2439,6 +2439,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2700,4 +2701,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
index 2eee410d23..96bfcda497 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index da0f44c5e1..9bd7b364ee 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1450,6 +1450,7 @@ GLIBC_2.21 nl_langinfo_l F
 GLIBC_2.21 nrand48 F
 GLIBC_2.21 nrand48_r F
 GLIBC_2.21 ns_name_ntop F
+GLIBC_2.21 ns_name_unpack F
 GLIBC_2.21 ntohl F
 GLIBC_2.21 ntohs F
 GLIBC_2.21 ntp_adjtime F
@@ -2567,6 +2568,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
index b1b08bb486..5440f128a1 100644
--- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.21 ns_name_pton F
 GLIBC_2.21 ns_name_rollback F
 GLIBC_2.21 ns_name_skip F
 GLIBC_2.21 ns_name_uncompress F
-GLIBC_2.21 ns_name_unpack F
 GLIBC_2.21 ns_parse_ttl F
 GLIBC_2.21 ns_parserr F
 GLIBC_2.21 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 0e7944d5b7..bc7c8d8b36 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2583,6 +2583,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -3019,4 +3020,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
index 14c65c7a46..65c4147299 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index ea590ca43c..a42f391d96 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2616,6 +2616,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -3064,4 +3065,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index fde9d2e40d..0a84e3dac2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2352,6 +2352,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2788,4 +2789,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
index c998d17d81..f9615e3258 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 70eaf6b69b..702cc85b50 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1493,6 +1493,7 @@ GLIBC_2.17 nl_langinfo_l F
 GLIBC_2.17 nrand48 F
 GLIBC_2.17 nrand48_r F
 GLIBC_2.17 ns_name_ntop F
+GLIBC_2.17 ns_name_unpack F
 GLIBC_2.17 ntohl F
 GLIBC_2.17 ntohs F
 GLIBC_2.17 ntp_adjtime F
@@ -2648,6 +2649,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
index 0a93c2cc44..088a380288 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.17 ns_name_pton F
 GLIBC_2.17 ns_name_rollback F
 GLIBC_2.17 ns_name_skip F
 GLIBC_2.17 ns_name_uncompress F
-GLIBC_2.17 ns_name_unpack F
 GLIBC_2.17 ns_parse_ttl F
 GLIBC_2.17 ns_parserr F
 GLIBC_2.17 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index f3a14d6efc..38a7e94c89 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1341,6 +1341,7 @@ GLIBC_2.33 nl_langinfo_l F
 GLIBC_2.33 nrand48 F
 GLIBC_2.33 nrand48_r F
 GLIBC_2.33 ns_name_ntop F
+GLIBC_2.33 ns_name_unpack F
 GLIBC_2.33 ntohl F
 GLIBC_2.33 ntohs F
 GLIBC_2.33 ntp_adjtime F
@@ -2213,6 +2214,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
index a3af26db78..e7595e5a28 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
@@ -65,7 +65,6 @@ GLIBC_2.33 ns_name_pton F
 GLIBC_2.33 ns_name_rollback F
 GLIBC_2.33 ns_name_skip F
 GLIBC_2.33 ns_name_uncompress F
-GLIBC_2.33 ns_name_unpack F
 GLIBC_2.33 ns_parse_ttl F
 GLIBC_2.33 ns_parserr F
 GLIBC_2.33 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 94ededbfb6..6ad1142be3 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1388,6 +1388,7 @@ GLIBC_2.27 nl_langinfo_l F
 GLIBC_2.27 nrand48 F
 GLIBC_2.27 nrand48_r F
 GLIBC_2.27 ns_name_ntop F
+GLIBC_2.27 ns_name_unpack F
 GLIBC_2.27 ntohl F
 GLIBC_2.27 ntohs F
 GLIBC_2.27 ntp_adjtime F
@@ -2413,6 +2414,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
index 0d4bd6855b..ad3fd40f6d 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
@@ -65,7 +65,6 @@ GLIBC_2.27 ns_name_pton F
 GLIBC_2.27 ns_name_rollback F
 GLIBC_2.27 ns_name_skip F
 GLIBC_2.27 ns_name_uncompress F
-GLIBC_2.27 ns_name_unpack F
 GLIBC_2.27 ns_parse_ttl F
 GLIBC_2.27 ns_parserr F
 GLIBC_2.27 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 6a1a79c0cb..b02fc32c1f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2581,6 +2581,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -3027,6 +3028,7 @@ GLIBC_2.9 getutxline F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 login F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
 GLIBC_2.9 pututline F
 GLIBC_2.9 pututxline F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
index 14c65c7a46..65c4147299 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 0ccda5fb5e..30792bcca7 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2389,6 +2389,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2823,4 +2824,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
index 548e92b846..5f3cac884a 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 0b2709d984..c556603108 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2436,6 +2436,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2701,4 +2702,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
index 14c65c7a46..65c4147299 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 3077a96068..bc84cf6f5e 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2433,6 +2433,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2698,4 +2699,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
index 14c65c7a46..65c4147299 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 1df94b2c6b..2010492695 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2576,6 +2576,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -3036,4 +3037,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
index 14c65c7a46..65c4147299 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 8596cfbde9..46d2a55532 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2411,6 +2411,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2676,4 +2677,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
index 2eee410d23..96bfcda497 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
@@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 7422e4dcd6..52ccfad228 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2367,6 +2367,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
@@ -2632,4 +2633,5 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
index 954af66409..34277a3732 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
@@ -77,7 +77,6 @@ GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
-GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index dba3592fb9..fe7f1661c0 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1412,6 +1412,7 @@ GLIBC_2.16 nl_langinfo_l F
 GLIBC_2.16 nrand48 F
 GLIBC_2.16 nrand48_r F
 GLIBC_2.16 ns_name_ntop F
+GLIBC_2.16 ns_name_unpack F
 GLIBC_2.16 ntohl F
 GLIBC_2.16 ntohs F
 GLIBC_2.16 ntp_adjtime F
@@ -2467,6 +2468,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
 GLIBC_2.34 pthread_attr_getguardsize F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
index 79b4bbdd98..16eca4411d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.16 ns_name_pton F
 GLIBC_2.16 ns_name_rollback F
 GLIBC_2.16 ns_name_skip F
 GLIBC_2.16 ns_name_uncompress F
-GLIBC_2.16 ns_name_unpack F
 GLIBC_2.16 ns_parse_ttl F
 GLIBC_2.16 ns_parserr F
 GLIBC_2.16 ns_put16 F
-- 
2.31.1



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

* [PATCH 07/30] resolv: Move ns_name_skip to its own file and into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (5 preceding siblings ...)
  2021-07-08 15:00 ` [PATCH 06/30] resolv: Move ns_name_unpack " Florian Weimer via Libc-alpha
@ 2021-07-08 15:00 ` Florian Weimer via Libc-alpha
  2021-07-15  5:00   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:00 ` [PATCH 08/30] resolv: Move ns_name_uncompress into " Florian Weimer via Libc-alpha
                   ` (23 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:00 UTC (permalink / raw)
  To: libc-alpha

And reformat to GNU style.

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

diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
index 2396a43030..c4ec0aaf7a 100644
--- a/include/arpa/nameser.h
+++ b/include/arpa/nameser.h
@@ -67,7 +67,6 @@ libresolv_hidden_proto (ns_skiprr)
 libresolv_hidden_proto (ns_parserr)
 libresolv_hidden_proto (ns_name_pton)
 libresolv_hidden_proto (ns_name_pack)
-libresolv_hidden_proto (ns_name_skip)
 libresolv_hidden_proto (ns_name_compress)
 libresolv_hidden_proto (ns_name_uncompress)
 libresolv_hidden_proto (ns_sprintrr)
@@ -79,6 +78,8 @@ libresolv_hidden_proto (ns_format_ttl)
 
 extern __typeof (ns_name_ntop) __ns_name_ntop;
 libc_hidden_proto (__ns_name_ntop)
+extern __typeof (ns_name_skip) __ns_name_skip;
+libc_hidden_proto (__ns_name_skip)
 extern __typeof (ns_name_unpack) __ns_name_unpack;
 libc_hidden_proto (__ns_name_unpack)
 
diff --git a/resolv/Makefile b/resolv/Makefile
index 469a9a55ae..91ce46a3b9 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -33,6 +33,7 @@ routines := \
   inet_ntop \
   inet_pton \
   ns_name_ntop \
+  ns_name_skip \
   ns_name_unpack \
   nsap_addr \
   res-close \
diff --git a/resolv/Versions b/resolv/Versions
index 9b5c4d9733..b075881b24 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -26,6 +26,7 @@ libc {
   }
   GLIBC_2.9 {
     ns_name_ntop;
+    ns_name_skip;
     ns_name_unpack;
   }
   GLIBC_2.34 {
@@ -36,6 +37,7 @@ libc {
     getaddrinfo_a;
 %endif
     ns_name_ntop;
+    ns_name_skip;
     ns_name_unpack;
   }
   GLIBC_PRIVATE {
@@ -45,9 +47,10 @@ libc {
     __h_errno;
     __inet_aton_exact;
     __inet_pton_length;
-    __res_iclose;
     __ns_name_ntop;
+    __ns_name_skip;
     __ns_name_unpack;
+    __res_iclose;
     __resolv_context_get;
     __resolv_context_get_override;
     __resolv_context_get_preinit;
diff --git a/resolv/ns_name.c b/resolv/ns_name.c
index a0d541f110..58d6a60ce4 100644
--- a/resolv/ns_name.c
+++ b/resolv/ns_name.c
@@ -397,43 +397,6 @@ ns_name_rollback(const u_char *src, const u_char **dnptrs,
 	}
 }
 
-/*%
- *	Advance *ptrptr to skip over the compressed name it points at.
- *
- * return:
- *\li	0 on success, -1 (with errno set) on failure.
- */
-int
-ns_name_skip(const u_char **ptrptr, const u_char *eom)
-{
-	const u_char *cp;
-	u_int n;
-
-	cp = *ptrptr;
-	while (cp < eom && (n = *cp++) != 0) {
-		/* Check for indirection. */
-		switch (n & NS_CMPRSFLGS) {
-		case 0:			/*%< normal case, n == len */
-			cp += n;
-			continue;
-		case NS_CMPRSFLGS:	/*%< indirection */
-			cp++;
-			break;
-		default:		/*%< illegal type */
-			__set_errno (EMSGSIZE);
-			return (-1);
-		}
-		break;
-	}
-	if (cp > eom) {
-		__set_errno (EMSGSIZE);
-		return (-1);
-	}
-	*ptrptr = cp;
-	return (0);
-}
-libresolv_hidden_def (ns_name_skip)
-
 /* Private. */
 
 /*%
diff --git a/resolv/ns_name_skip.c b/resolv/ns_name_skip.c
new file mode 100644
index 0000000000..66dd2b6334
--- /dev/null
+++ b/resolv/ns_name_skip.c
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1996,1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <errno.h>
+#include <shlib-compat.h>
+
+/* Advances *PTRPTR to skip over the compressed name it points at.
+   Returns 0 on success, -1 (with errno set) on failure.  */
+int
+___ns_name_skip (const unsigned char **ptrptr, const unsigned char *eom)
+{
+  const unsigned char *cp;
+  unsigned int n;
+
+  cp = *ptrptr;
+  while ((n = *cp++) != 0)
+    {
+      /* Check for indirection.  */
+      switch (n & NS_CMPRSFLGS)
+        {
+        case 0:                 /* Normal case, n == len.  */
+          cp += n;
+          continue;
+        case NS_CMPRSFLGS:      /* Indirection.  */
+          cp++;
+          break;
+        default:                /* Illegal type.  */
+          __set_errno (EMSGSIZE);
+          return -1;
+        }
+      break;
+    }
+  if (cp > eom)
+    {
+      __set_errno (EMSGSIZE);
+      return -1;
+    }
+  *ptrptr = cp;
+  return 0;
+}
+versioned_symbol (libc, ___ns_name_skip, ns_name_skip, GLIBC_2_34);
+versioned_symbol (libc, ___ns_name_skip, __ns_name_skip, GLIBC_PRIVATE);
+libc_hidden_ver (___ns_name_skip, __ns_name_skip)
+
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_9, GLIBC_2_34)
+compat_symbol (libresolv, ___ns_name_skip, ns_name_skip, GLIBC_2_9);
+#endif
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 6576db7c4d..2d8ef7235e 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2241,6 +2241,7 @@ GLIBC_2.34 login_tty F
 GLIBC_2.34 logout F
 GLIBC_2.34 logwtmp F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 shm_open F
@@ -2363,6 +2364,7 @@ GLIBC_2.8 __vdprintf_chk F
 GLIBC_2.8 qsort_r F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
 HURD_CTHREADS_0.3 __cthread_getspecific F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index ac0ee33f74..adb8afdfdb 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 740e3d74bc..eb990157f3 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
@@ -2453,6 +2454,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
index 088a380288..0c18a1077e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.17 ns_name_ntol F
 GLIBC_2.17 ns_name_pack F
 GLIBC_2.17 ns_name_pton F
 GLIBC_2.17 ns_name_rollback F
-GLIBC_2.17 ns_name_skip F
 GLIBC_2.17 ns_name_uncompress F
 GLIBC_2.17 ns_parse_ttl F
 GLIBC_2.17 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 2466effa31..8f5309caad 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2550,6 +2550,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2985,5 +2986,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 4c5913ac9a..9d56883a7d 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
@@ -2212,6 +2213,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
index a2a3b33098..ebaa6c47e5 100644
--- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
@@ -63,7 +63,6 @@ GLIBC_2.32 ns_name_ntol F
 GLIBC_2.32 ns_name_pack F
 GLIBC_2.32 ns_name_pton F
 GLIBC_2.32 ns_name_rollback F
-GLIBC_2.32 ns_name_skip F
 GLIBC_2.32 ns_name_uncompress F
 GLIBC_2.32 ns_parse_ttl F
 GLIBC_2.32 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index c3ec2a2394..4c2dccf268 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -344,6 +344,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -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/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 9a608b624c..0fd6428de8 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -341,6 +341,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2678,5 +2679,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 5c2fe19b5e..a0d5d97f56 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
@@ -2478,6 +2479,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
index 706af86332..d12b2546a3 100644
--- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
@@ -63,7 +63,6 @@ GLIBC_2.29 ns_name_ntol F
 GLIBC_2.29 ns_name_pack F
 GLIBC_2.29 ns_name_pton F
 GLIBC_2.29 ns_name_rollback F
-GLIBC_2.29 ns_name_skip F
 GLIBC_2.29 ns_name_uncompress F
 GLIBC_2.29 ns_parse_ttl F
 GLIBC_2.29 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index f76ae1034e..a07fbd2078 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2429,6 +2429,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2695,5 +2696,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 9d8a964e99..0a1a45c4e7 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2613,6 +2613,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2879,5 +2880,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 12af56217c..2a28ef6086 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2388,6 +2388,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2654,5 +2655,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 a7e7db0d51..4388f3071d 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -345,6 +345,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2660,5 +2661,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 8e9523d2f2..99b4caae17 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2556,6 +2556,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2822,5 +2823,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 3b080473e2..d018943dbe 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
@@ -2529,6 +2530,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
index b37f89df02..36c1e1477d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.18 ns_name_ntol F
 GLIBC_2.18 ns_name_pack F
 GLIBC_2.18 ns_name_pton F
 GLIBC_2.18 ns_name_rollback F
-GLIBC_2.18 ns_name_skip F
 GLIBC_2.18 ns_name_uncompress F
 GLIBC_2.18 ns_parse_ttl F
 GLIBC_2.18 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 8796b3bbfa..28552f1b80 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
@@ -2526,6 +2527,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
index b37f89df02..36c1e1477d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.18 ns_name_ntol F
 GLIBC_2.18 ns_name_pack F
 GLIBC_2.18 ns_name_pton F
 GLIBC_2.18 ns_name_rollback F
-GLIBC_2.18 ns_name_skip F
 GLIBC_2.18 ns_name_uncompress F
 GLIBC_2.18 ns_parse_ttl F
 GLIBC_2.18 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 68614db597..08da0a9b24 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2521,6 +2521,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2783,5 +2784,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/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 9bbb7c5621..d0f957a7b1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2519,6 +2519,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2781,5 +2782,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 96bf68ec0f..d19ba7d186 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2527,6 +2527,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2789,5 +2790,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 6d3036a673..167b1ec1c1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2439,6 +2439,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2701,5 +2702,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/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 9bd7b364ee..5d7723a22e 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
@@ -2568,6 +2569,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
index 5440f128a1..6a3ee63c15 100644
--- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.21 ns_name_ntol F
 GLIBC_2.21 ns_name_pack F
 GLIBC_2.21 ns_name_pton F
 GLIBC_2.21 ns_name_rollback F
-GLIBC_2.21 ns_name_skip F
 GLIBC_2.21 ns_name_uncompress F
 GLIBC_2.21 ns_parse_ttl F
 GLIBC_2.21 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index bc7c8d8b36..31e50429c3 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2583,6 +2583,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -3020,5 +3021,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 a42f391d96..b03dde6df7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2616,6 +2616,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -3065,5 +3066,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 0a84e3dac2..64ed6e1fdc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2352,6 +2352,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2789,5 +2790,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 702cc85b50..013aaad687 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
@@ -2649,6 +2650,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
index 088a380288..0c18a1077e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.17 ns_name_ntol F
 GLIBC_2.17 ns_name_pack F
 GLIBC_2.17 ns_name_pton F
 GLIBC_2.17 ns_name_rollback F
-GLIBC_2.17 ns_name_skip F
 GLIBC_2.17 ns_name_uncompress F
 GLIBC_2.17 ns_parse_ttl F
 GLIBC_2.17 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 38a7e94c89..ea0919fd8f 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
@@ -2214,6 +2215,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/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 6ad1142be3..aeb3a0eb69 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
@@ -2414,6 +2415,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
index ad3fd40f6d..1b0a9f7284 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
@@ -63,7 +63,6 @@ GLIBC_2.27 ns_name_ntol F
 GLIBC_2.27 ns_name_pack F
 GLIBC_2.27 ns_name_pton F
 GLIBC_2.27 ns_name_rollback F
-GLIBC_2.27 ns_name_skip F
 GLIBC_2.27 ns_name_uncompress F
 GLIBC_2.27 ns_parse_ttl F
 GLIBC_2.27 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index b02fc32c1f..82edac8485 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2581,6 +2581,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -3028,6 +3029,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 30792bcca7..0814fe77b4 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2389,6 +2389,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2824,5 +2825,6 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/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 c556603108..9895a607f3 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2436,6 +2436,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -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/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 bc84cf6f5e..bdce7c7e5e 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2433,6 +2433,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2699,5 +2700,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 2010492695..ed30903823 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2576,6 +2576,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -3037,5 +3038,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 46d2a55532..b19390184b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2411,6 +2411,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2677,5 +2678,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 52ccfad228..b9a575986d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2367,6 +2367,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2633,5 +2634,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 fe7f1661c0..86a0ee5323 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
@@ -2468,6 +2469,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
index 16eca4411d..db2942840e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.16 ns_name_ntol F
 GLIBC_2.16 ns_name_pack F
 GLIBC_2.16 ns_name_pton F
 GLIBC_2.16 ns_name_rollback F
-GLIBC_2.16 ns_name_skip F
 GLIBC_2.16 ns_name_uncompress F
 GLIBC_2.16 ns_parse_ttl F
 GLIBC_2.16 ns_parserr F
-- 
2.31.1



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

* [PATCH 08/30] resolv: Move ns_name_uncompress into its own file and into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (6 preceding siblings ...)
  2021-07-08 15:00 ` [PATCH 07/30] resolv: Move ns_name_skip " Florian Weimer via Libc-alpha
@ 2021-07-08 15:00 ` Florian Weimer via Libc-alpha
  2021-07-15  5:00   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:01 ` [PATCH 09/30] resolv: Move ns_name_pton " Florian Weimer via Libc-alpha
                   ` (22 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:00 UTC (permalink / raw)
  To: libc-alpha

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

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

diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
index c4ec0aaf7a..dcceff823d 100644
--- a/include/arpa/nameser.h
+++ b/include/arpa/nameser.h
@@ -68,7 +68,6 @@ libresolv_hidden_proto (ns_parserr)
 libresolv_hidden_proto (ns_name_pton)
 libresolv_hidden_proto (ns_name_pack)
 libresolv_hidden_proto (ns_name_compress)
-libresolv_hidden_proto (ns_name_uncompress)
 libresolv_hidden_proto (ns_sprintrr)
 libresolv_hidden_proto (ns_sprintrrf)
 libresolv_hidden_proto (ns_samedomain)
@@ -80,6 +79,8 @@ extern __typeof (ns_name_ntop) __ns_name_ntop;
 libc_hidden_proto (__ns_name_ntop)
 extern __typeof (ns_name_skip) __ns_name_skip;
 libc_hidden_proto (__ns_name_skip)
+extern __typeof (ns_name_uncompress) __ns_name_uncompress;
+libc_hidden_proto (__ns_name_uncompress)
 extern __typeof (ns_name_unpack) __ns_name_unpack;
 libc_hidden_proto (__ns_name_unpack)
 
diff --git a/resolv/Makefile b/resolv/Makefile
index 91ce46a3b9..3145ddebb7 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -34,6 +34,7 @@ routines := \
   inet_pton \
   ns_name_ntop \
   ns_name_skip \
+  ns_name_uncompress \
   ns_name_unpack \
   nsap_addr \
   res-close \
diff --git a/resolv/Versions b/resolv/Versions
index b075881b24..9e8762f984 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -27,6 +27,7 @@ libc {
   GLIBC_2.9 {
     ns_name_ntop;
     ns_name_skip;
+    ns_name_uncompress;
     ns_name_unpack;
   }
   GLIBC_2.34 {
@@ -38,6 +39,7 @@ libc {
 %endif
     ns_name_ntop;
     ns_name_skip;
+    ns_name_uncompress;
     ns_name_unpack;
   }
   GLIBC_PRIVATE {
@@ -49,6 +51,7 @@ libc {
     __inet_pton_length;
     __ns_name_ntop;
     __ns_name_skip;
+    __ns_name_uncompress;
     __ns_name_unpack;
     __res_iclose;
     __resolv_context_get;
@@ -152,7 +155,6 @@ libresolv {
     ns_name_pton;
     ns_name_rollback;
     ns_name_skip;
-    ns_name_uncompress;
     ns_parse_ttl;
     ns_parserr;
     ns_put16;
diff --git a/resolv/ns_name.c b/resolv/ns_name.c
index 58d6a60ce4..35e25cbd83 100644
--- a/resolv/ns_name.c
+++ b/resolv/ns_name.c
@@ -329,30 +329,6 @@ cleanup:
 }
 libresolv_hidden_def (ns_name_pack)
 
-/*%
- *	Expand compressed domain name to presentation format.
- *
- * return:
- *\li	Number of bytes read out of `src', or -1 (with errno set).
- *
- * note:
- *\li	Root domain returns as "." not "".
- */
-int
-ns_name_uncompress(const u_char *msg, const u_char *eom, const u_char *src,
-		   char *dst, size_t dstsiz)
-{
-	u_char tmp[NS_MAXCDNAME];
-	int n;
-
-	if ((n = ns_name_unpack(msg, eom, src, tmp, sizeof tmp)) == -1)
-		return (-1);
-	if (__ns_name_ntop (tmp, dst, dstsiz) == -1)
-		return (-1);
-	return (n);
-}
-libresolv_hidden_def (ns_name_uncompress)
-
 /*%
  *	Compress a domain name into wire format, using compression pointers.
  *
diff --git a/resolv/ns_name_uncompress.c b/resolv/ns_name_uncompress.c
new file mode 100644
index 0000000000..95ecbe315b
--- /dev/null
+++ b/resolv/ns_name_uncompress.c
@@ -0,0 +1,45 @@
+/* Expand compressed domain name to presentation format.
+ * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1996,1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <shlib-compat.h>
+
+/* Expand compressed domain name to presentation format.  Returns the
+   number of bytes read out of `src', or -1 (with errno set).  The
+   root domain is returned as ".", not "".  */
+int
+___ns_name_uncompress (const unsigned char *msg, const unsigned char *eom,
+                       const unsigned char *src, char *dst, size_t dstsiz)
+{
+  unsigned char tmp[NS_MAXCDNAME];
+  int n = __ns_name_unpack (msg, eom, src, tmp, sizeof tmp);
+  if (n < 0)
+    return -1;
+  if (__ns_name_ntop (tmp, dst, dstsiz) < 0)
+    return -1;
+  return n;
+}
+versioned_symbol (libc, ___ns_name_uncompress, ns_name_uncompress,
+                  GLIBC_2_34);
+versioned_symbol (libc, ___ns_name_uncompress, __ns_name_uncompress,
+                  GLIBC_PRIVATE);
+libc_hidden_ver (___ns_name_uncompress, __ns_name_uncompress)
+
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_9, GLIBC_2_34)
+compat_symbol (libresolv, ___ns_name_uncompress, ns_name_uncompress,
+               GLIBC_2_9);
+#endif
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 2d8ef7235e..970b28eac6 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2242,6 +2242,7 @@ GLIBC_2.34 logout F
 GLIBC_2.34 logwtmp F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 shm_open F
@@ -2365,6 +2366,7 @@ GLIBC_2.8 qsort_r F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
 HURD_CTHREADS_0.3 __cthread_getspecific F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index adb8afdfdb..ca2c547a81 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -75,7 +75,6 @@ GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
-GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
 GLIBC_2.9 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index eb990157f3..fa4652a7df 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
@@ -2455,6 +2456,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
index 0c18a1077e..f72b307b99 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.17 ns_name_ntol F
 GLIBC_2.17 ns_name_pack F
 GLIBC_2.17 ns_name_pton F
 GLIBC_2.17 ns_name_rollback F
-GLIBC_2.17 ns_name_uncompress F
 GLIBC_2.17 ns_parse_ttl F
 GLIBC_2.17 ns_parserr F
 GLIBC_2.17 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 8f5309caad..36a577adc7 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_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2987,5 +2988,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 9d56883a7d..afc1278d6c 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
@@ -2214,6 +2215,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
index ebaa6c47e5..ed1aa0e9ed 100644
--- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
@@ -63,7 +63,6 @@ GLIBC_2.32 ns_name_ntol F
 GLIBC_2.32 ns_name_pack F
 GLIBC_2.32 ns_name_pton F
 GLIBC_2.32 ns_name_rollback F
-GLIBC_2.32 ns_name_uncompress F
 GLIBC_2.32 ns_parse_ttl F
 GLIBC_2.32 ns_parserr F
 GLIBC_2.32 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 4c2dccf268..a7d135a4c2 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_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -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/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 0fd6428de8..7bced4102e 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_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2680,5 +2681,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 a0d5d97f56..40aca91bb5 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
@@ -2480,6 +2481,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
index d12b2546a3..b2a83ee8cc 100644
--- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
@@ -63,7 +63,6 @@ GLIBC_2.29 ns_name_ntol F
 GLIBC_2.29 ns_name_pack F
 GLIBC_2.29 ns_name_pton F
 GLIBC_2.29 ns_name_rollback F
-GLIBC_2.29 ns_name_uncompress F
 GLIBC_2.29 ns_parse_ttl F
 GLIBC_2.29 ns_parserr F
 GLIBC_2.29 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index a07fbd2078..cb19800bde 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_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2697,5 +2698,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 0a1a45c4e7..c2d526dd2c 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_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2881,5 +2882,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 2a28ef6086..1276461181 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_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2656,5 +2657,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 4388f3071d..59147109e2 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_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2662,5 +2663,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 99b4caae17..1750e4818e 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_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2824,5 +2825,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 d018943dbe..5043550ec1 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
@@ -2531,6 +2532,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
index 36c1e1477d..cc9fea5f46 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.18 ns_name_ntol F
 GLIBC_2.18 ns_name_pack F
 GLIBC_2.18 ns_name_pton F
 GLIBC_2.18 ns_name_rollback F
-GLIBC_2.18 ns_name_uncompress F
 GLIBC_2.18 ns_parse_ttl F
 GLIBC_2.18 ns_parserr F
 GLIBC_2.18 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 28552f1b80..18de19bead 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
@@ -2528,6 +2529,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
index 36c1e1477d..cc9fea5f46 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.18 ns_name_ntol F
 GLIBC_2.18 ns_name_pack F
 GLIBC_2.18 ns_name_pton F
 GLIBC_2.18 ns_name_rollback F
-GLIBC_2.18 ns_name_uncompress F
 GLIBC_2.18 ns_parse_ttl F
 GLIBC_2.18 ns_parserr F
 GLIBC_2.18 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 08da0a9b24..464d196ae9 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_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2785,5 +2786,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/mips/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 d0f957a7b1..87da9f5626 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_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2783,5 +2784,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 d19ba7d186..f3f0a6dc37 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_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2791,5 +2792,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 167b1ec1c1..dbbd9d782d 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_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2703,5 +2704,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/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 5d7723a22e..ea1d641c79 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
@@ -2570,6 +2571,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
index 6a3ee63c15..111b8ac423 100644
--- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.21 ns_name_ntol F
 GLIBC_2.21 ns_name_pack F
 GLIBC_2.21 ns_name_pton F
 GLIBC_2.21 ns_name_rollback F
-GLIBC_2.21 ns_name_uncompress F
 GLIBC_2.21 ns_parse_ttl F
 GLIBC_2.21 ns_parserr F
 GLIBC_2.21 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 31e50429c3..45b46c3ee1 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_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -3022,5 +3023,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 b03dde6df7..a252c6f7b2 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_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -3067,5 +3068,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 64ed6e1fdc..8e682bdb78 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_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2791,5 +2792,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 013aaad687..9e6f3d71d7 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
@@ -2651,6 +2652,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
index 0c18a1077e..f72b307b99 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.17 ns_name_ntol F
 GLIBC_2.17 ns_name_pack F
 GLIBC_2.17 ns_name_pton F
 GLIBC_2.17 ns_name_rollback F
-GLIBC_2.17 ns_name_uncompress F
 GLIBC_2.17 ns_parse_ttl F
 GLIBC_2.17 ns_parserr F
 GLIBC_2.17 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index ea0919fd8f..c95e4eeb6e 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
@@ -2216,6 +2217,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/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 aeb3a0eb69..ea497cf7e0 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
@@ -2416,6 +2417,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
index 1b0a9f7284..3410dc454d 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
@@ -63,7 +63,6 @@ GLIBC_2.27 ns_name_ntol F
 GLIBC_2.27 ns_name_pack F
 GLIBC_2.27 ns_name_pton F
 GLIBC_2.27 ns_name_rollback F
-GLIBC_2.27 ns_name_uncompress F
 GLIBC_2.27 ns_parse_ttl F
 GLIBC_2.27 ns_parserr F
 GLIBC_2.27 ns_put16 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 82edac8485..953db1c42c 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_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -3030,6 +3031,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 0814fe77b4..b41a6a9e33 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_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2826,5 +2827,6 @@ GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
 GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/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 9895a607f3..3e0cf9b271 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_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -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/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 bdce7c7e5e..2cba575172 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_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2701,5 +2702,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 ed30903823..a78e41777e 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_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -3039,5 +3040,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 b19390184b..31f8359dac 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_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2679,5 +2680,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 b9a575986d..751b1e34be 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_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
@@ -2635,5 +2636,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 86a0ee5323..6f488a7638 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
@@ -2470,6 +2471,7 @@ GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_skip F
+GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
 GLIBC_2.34 pthread_attr_getaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
index db2942840e..b441069e4b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.16 ns_name_ntol F
 GLIBC_2.16 ns_name_pack F
 GLIBC_2.16 ns_name_pton F
 GLIBC_2.16 ns_name_rollback F
-GLIBC_2.16 ns_name_uncompress F
 GLIBC_2.16 ns_parse_ttl F
 GLIBC_2.16 ns_parserr F
 GLIBC_2.16 ns_put16 F
-- 
2.31.1



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

* [PATCH 09/30] resolv: Move ns_name_pton into its own file and into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (7 preceding siblings ...)
  2021-07-08 15:00 ` [PATCH 08/30] resolv: Move ns_name_uncompress into " Florian Weimer via Libc-alpha
@ 2021-07-08 15:01 ` Florian Weimer via Libc-alpha
  2021-07-15  5:00   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:01 ` [PATCH 10/30] resolv: Move ns_name_pack " Florian Weimer via Libc-alpha
                   ` (21 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:01 UTC (permalink / raw)
  To: libc-alpha

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

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

diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
index dcceff823d..c27008b5ff 100644
--- a/include/arpa/nameser.h
+++ b/include/arpa/nameser.h
@@ -65,7 +65,6 @@ libresolv_hidden_proto (ns_put32)
 libresolv_hidden_proto (ns_initparse)
 libresolv_hidden_proto (ns_skiprr)
 libresolv_hidden_proto (ns_parserr)
-libresolv_hidden_proto (ns_name_pton)
 libresolv_hidden_proto (ns_name_pack)
 libresolv_hidden_proto (ns_name_compress)
 libresolv_hidden_proto (ns_sprintrr)
@@ -77,6 +76,8 @@ libresolv_hidden_proto (ns_format_ttl)
 
 extern __typeof (ns_name_ntop) __ns_name_ntop;
 libc_hidden_proto (__ns_name_ntop)
+extern __typeof (ns_name_pton) __ns_name_pton;
+libc_hidden_proto (__ns_name_pton)
 extern __typeof (ns_name_skip) __ns_name_skip;
 libc_hidden_proto (__ns_name_skip)
 extern __typeof (ns_name_uncompress) __ns_name_uncompress;
diff --git a/resolv/Makefile b/resolv/Makefile
index 3145ddebb7..7839e1fb3c 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -33,6 +33,7 @@ routines := \
   inet_ntop \
   inet_pton \
   ns_name_ntop \
+  ns_name_pton \
   ns_name_skip \
   ns_name_uncompress \
   ns_name_unpack \
diff --git a/resolv/Versions b/resolv/Versions
index 9e8762f984..770a2b8d6b 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -26,6 +26,7 @@ libc {
   }
   GLIBC_2.9 {
     ns_name_ntop;
+    ns_name_pton;
     ns_name_skip;
     ns_name_uncompress;
     ns_name_unpack;
@@ -38,6 +39,7 @@ libc {
     getaddrinfo_a;
 %endif
     ns_name_ntop;
+    ns_name_pton;
     ns_name_skip;
     ns_name_uncompress;
     ns_name_unpack;
@@ -50,6 +52,7 @@ libc {
     __inet_aton_exact;
     __inet_pton_length;
     __ns_name_ntop;
+    __ns_name_pton;
     __ns_name_skip;
     __ns_name_uncompress;
     __ns_name_unpack;
diff --git a/resolv/ns_name.c b/resolv/ns_name.c
index 35e25cbd83..9f7ca4a506 100644
--- a/resolv/ns_name.c
+++ b/resolv/ns_name.c
@@ -29,10 +29,6 @@
 
 # define SPRINTF(x) ((size_t)sprintf x)
 
-/* Data. */
-
-static const char	digits[] = "0123456789";
-
 /* Forward. */
 
 static int		dn_find(const u_char *, const u_char *,
@@ -42,127 +38,6 @@ static int		labellen(const u_char *);
 
 /* Public. */
 
-
-/*%
- *	Convert an ascii string into an encoded domain name as per RFC1035.
- *
- * return:
- *
- *\li	-1 if it fails
- *\li	1 if string was fully qualified
- *\li	0 is string was not fully qualified
- *
- * notes:
- *\li	Enforces label and domain length limits.
- */
-
-int
-ns_name_pton(const char *src, u_char *dst, size_t dstsiz)
-{
-	u_char *label, *bp, *eom;
-	int c, n, escaped;
-	char *cp;
-
-	escaped = 0;
-	bp = dst;
-	eom = dst + dstsiz;
-	label = bp++;
-
-	while ((c = *src++) != 0) {
-		if (escaped) {
-			if ((cp = strchr(digits, c)) != NULL) {
-				n = (cp - digits) * 100;
-				if ((c = *src++) == 0 ||
-				    (cp = strchr(digits, c)) == NULL) {
-					__set_errno (EMSGSIZE);
-					return (-1);
-				}
-				n += (cp - digits) * 10;
-				if ((c = *src++) == 0 ||
-				    (cp = strchr(digits, c)) == NULL) {
-					__set_errno (EMSGSIZE);
-					return (-1);
-				}
-				n += (cp - digits);
-				if (n > 255) {
-					__set_errno (EMSGSIZE);
-					return (-1);
-				}
-				c = n;
-			}
-			escaped = 0;
-		} else if (c == '\\') {
-			escaped = 1;
-			continue;
-		} else if (c == '.') {
-			c = (bp - label - 1);
-			if ((c & NS_CMPRSFLGS) != 0) {	/*%< Label too big. */
-				__set_errno (EMSGSIZE);
-				return (-1);
-			}
-			if (label >= eom) {
-				__set_errno (EMSGSIZE);
-				return (-1);
-			}
-			*label = c;
-			/* Fully qualified ? */
-			if (*src == '\0') {
-				if (c != 0) {
-					if (bp >= eom) {
-						__set_errno (EMSGSIZE);
-						return (-1);
-					}
-					*bp++ = '\0';
-				}
-				if ((bp - dst) > MAXCDNAME) {
-					__set_errno (EMSGSIZE);
-					return (-1);
-				}
-				return (1);
-			}
-			if (c == 0 || *src == '.') {
-				__set_errno (EMSGSIZE);
-				return (-1);
-			}
-			label = bp++;
-			continue;
-		}
-		if (bp >= eom) {
-			__set_errno (EMSGSIZE);
-			return (-1);
-		}
-		*bp++ = (u_char)c;
-	}
-	if (escaped) {
-		/* Trailing backslash.  */
-		__set_errno (EMSGSIZE);
-		return -1;
-	}
-	c = (bp - label - 1);
-	if ((c & NS_CMPRSFLGS) != 0) {		/*%< Label too big. */
-		__set_errno (EMSGSIZE);
-		return (-1);
-	}
-	if (label >= eom) {
-		__set_errno (EMSGSIZE);
-		return (-1);
-	}
-	*label = c;
-	if (c != 0) {
-		if (bp >= eom) {
-			__set_errno (EMSGSIZE);
-			return (-1);
-		}
-		*bp++ = 0;
-	}
-	if ((bp - dst) > MAXCDNAME) {	/*%< src too big */
-		__set_errno (EMSGSIZE);
-		return (-1);
-	}
-	return (0);
-}
-libresolv_hidden_def (ns_name_pton)
-
 /*%
  *	Convert a network strings labels into all lowercase.
  *
diff --git a/resolv/ns_name_pton.c b/resolv/ns_name_pton.c
new file mode 100644
index 0000000000..16f8ec8303
--- /dev/null
+++ b/resolv/ns_name_pton.c
@@ -0,0 +1,157 @@
+/* Convert a DNS domain name from presentation to wire format.
+ * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1996,1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <errno.h>
+#include <shlib-compat.h>
+
+/* Converts an ASCII string into an encoded domain name as per
+   RFC1035.  Returns -1 if it fails, 1 if string was fully qualified,
+   0 is string was not fully qualified.  Enforces label and domain
+   length limits.  */
+int
+___ns_name_pton (const char *src, unsigned char *dst, size_t dstsiz)
+{
+  unsigned char *label, *bp, *eom;
+  int c, n, escaped;
+
+  escaped = 0;
+  bp = dst;
+  eom = dst + dstsiz;
+  label = bp++;
+
+  while ((c = *src++) != 0)
+    {
+      if (escaped)
+        {
+          if ('0' <= c && c <= '9')
+            {
+              n = (c - '0') * 100;
+              if ((c = *src++) == 0 || c < '0' || c > '9')
+                {
+                  __set_errno (EMSGSIZE);
+                  return -1;
+                }
+              n += (c - '0') * 10;
+              if ((c = *src++) == 0 || c < '0' || c > '9')
+                {
+                  __set_errno (EMSGSIZE);
+                  return -1;
+                }
+              n += c - '0';
+              if (n > 255)
+                {
+                  __set_errno (EMSGSIZE);
+                  return -1;
+                }
+              c = n;
+            }
+          escaped = 0;
+        }
+      else if (c == '\\')
+        {
+          escaped = 1;
+          continue;
+        }
+      else if (c == '.')
+        {
+          c = (bp - label - 1);
+          if ((c & NS_CMPRSFLGS) != 0) /* Label too big.  */
+            {
+              __set_errno (EMSGSIZE);
+              return -1;
+            }
+          if (label >= eom)
+            {
+              __set_errno (EMSGSIZE);
+              return -1;
+            }
+          *label = c;
+          /* Fully qualified ? */
+          if (*src == '\0')
+            {
+              if (c != 0)
+                {
+                  if (bp >= eom)
+                    {
+                      __set_errno (EMSGSIZE);
+                      return -1;
+                    }
+                  *bp++ = '\0';
+                }
+              if ((bp - dst) > MAXCDNAME)
+                {
+                  __set_errno (EMSGSIZE);
+                  return -1;
+                }
+              return 1;
+            }
+          if (c == 0 || *src == '.')
+            {
+              __set_errno (EMSGSIZE);
+              return -1;
+            }
+          label = bp++;
+          continue;
+        }
+      if (bp >= eom)
+        {
+          __set_errno (EMSGSIZE);
+          return -1;
+        }
+      *bp++ = (unsigned char) c;
+    }
+  if (escaped)                  /* Trailing backslash.  */
+    {
+      __set_errno (EMSGSIZE);
+      return -1;
+    }
+  c = (bp - label - 1);
+  if ((c & NS_CMPRSFLGS) != 0)  /* Label too big.  */
+    {
+      __set_errno (EMSGSIZE);
+      return -1;
+    }
+  if (label >= eom)
+    {
+      __set_errno (EMSGSIZE);
+      return -1;
+    }
+  *label = c;
+  if (c != 0)
+    {
+      if (bp >= eom)
+        {
+          __set_errno (EMSGSIZE);
+          return -1;
+        }
+      *bp++ = 0;
+    }
+  if ((bp - dst) > MAXCDNAME)   /* src too big.  */
+    {
+      __set_errno (EMSGSIZE);
+      return -1;
+    }
+  return 0;
+}
+versioned_symbol (libc, ___ns_name_pton, ns_name_pton, GLIBC_2_34);
+versioned_symbol (libc, ___ns_name_pton, __ns_name_pton, GLIBC_PRIVATE);
+libc_hidden_ver (___ns_name_pton, __ns_name_pton)
+
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_9, GLIBC_2_34)
+compat_symbol (libresolv, ___ns_name_pton, ns_name_pton, GLIBC_2_9);
+#endif
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 970b28eac6..83b4e2a983 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2241,6 +2241,7 @@ GLIBC_2.34 login_tty F
 GLIBC_2.34 logout F
 GLIBC_2.34 logwtmp F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2365,6 +2366,7 @@ GLIBC_2.8 __vdprintf_chk F
 GLIBC_2.8 qsort_r F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index ca2c547a81..1e75aaa6d7 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -73,7 +73,6 @@ GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_pack F
-GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index fa4652a7df..1b6e962fe3 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
@@ -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_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 36a577adc7..ef88aa8e36 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2550,6 +2550,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
@@ -2987,6 +2988,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 afc1278d6c..94f9908585 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
@@ -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_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 a7d135a4c2..7157111655 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -344,6 +344,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/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 7bced4102e..8f4e772481 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -341,6 +341,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
@@ -2680,6 +2681,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 40aca91bb5..f4368cc20b 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
@@ -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_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 cb19800bde..d5a661c221 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2429,6 +2429,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
@@ -2697,6 +2698,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 c2d526dd2c..49c26a44a6 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2613,6 +2613,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
@@ -2881,6 +2882,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 1276461181..bee668d6f7 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2388,6 +2388,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
@@ -2656,6 +2657,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 59147109e2..45fca7a557 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -345,6 +345,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
@@ -2662,6 +2663,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 1750e4818e..a1b316aa1c 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2556,6 +2556,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
@@ -2824,6 +2825,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 5043550ec1..7a991b941a 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
@@ -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_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 18de19bead..a3fae78187 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
@@ -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_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 464d196ae9..84f9ab0af6 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2521,6 +2521,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2785,6 +2786,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/mips/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 87da9f5626..343c2925c3 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2519,6 +2519,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
@@ -2783,6 +2784,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 f3f0a6dc37..cd01ef31f0 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2527,6 +2527,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
@@ -2791,6 +2792,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 dbbd9d782d..1722ba6722 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2439,6 +2439,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2703,6 +2704,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/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 ea1d641c79..aaf4b25fe0 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
@@ -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_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 45b46c3ee1..937d59759a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/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
@@ -3022,6 +3023,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 a252c6f7b2..186c59d401 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2616,6 +2616,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
@@ -3067,6 +3068,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 8e682bdb78..c9ffbc9455 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2352,6 +2352,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
@@ -2791,6 +2792,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 9e6f3d71d7..0c7183ba10 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
@@ -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_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 c95e4eeb6e..0f345ea431 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
@@ -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/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 ea497cf7e0..613ad3332d 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
@@ -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_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 953db1c42c..a4df94a8ed 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2581,6 +2581,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
@@ -3030,6 +3031,7 @@ GLIBC_2.9 getutxline F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 login F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_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 b41a6a9e33..2002437627 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2389,6 +2389,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
@@ -2826,6 +2827,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
 GLIBC_2.9 ns_name_unpack F
diff --git a/sysdeps/unix/sysv/linux/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 3e0cf9b271..934a8af021 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2436,6 +2436,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/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 2cba575172..82f0b5e2e5 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2433,6 +2433,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
@@ -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_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 a78e41777e..78b5667c51 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2576,6 +2576,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
@@ -3039,6 +3040,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 31f8359dac..77076f51ec 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2411,6 +2411,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
@@ -2679,6 +2680,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 751b1e34be..c060a7b027 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2367,6 +2367,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
@@ -2635,6 +2636,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 6f488a7638..2baaf7af06 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
@@ -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_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] 70+ messages in thread

* [PATCH 10/30] resolv: Move ns_name_pack into its own file and into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (8 preceding siblings ...)
  2021-07-08 15:01 ` [PATCH 09/30] resolv: Move ns_name_pton " Florian Weimer via Libc-alpha
@ 2021-07-08 15:01 ` Florian Weimer via Libc-alpha
  2021-07-15  5:00   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:01 ` [PATCH 11/30] resolv: Move ns_name_compress " Florian Weimer via Libc-alpha
                   ` (20 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:01 UTC (permalink / raw)
  To: libc-alpha

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

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

diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
index c27008b5ff..02d7b0b553 100644
--- a/include/arpa/nameser.h
+++ b/include/arpa/nameser.h
@@ -65,7 +65,6 @@ libresolv_hidden_proto (ns_put32)
 libresolv_hidden_proto (ns_initparse)
 libresolv_hidden_proto (ns_skiprr)
 libresolv_hidden_proto (ns_parserr)
-libresolv_hidden_proto (ns_name_pack)
 libresolv_hidden_proto (ns_name_compress)
 libresolv_hidden_proto (ns_sprintrr)
 libresolv_hidden_proto (ns_sprintrrf)
@@ -76,6 +75,8 @@ libresolv_hidden_proto (ns_format_ttl)
 
 extern __typeof (ns_name_ntop) __ns_name_ntop;
 libc_hidden_proto (__ns_name_ntop)
+extern __typeof (ns_name_pack) __ns_name_pack;
+libc_hidden_proto (__ns_name_pack)
 extern __typeof (ns_name_pton) __ns_name_pton;
 libc_hidden_proto (__ns_name_pton)
 extern __typeof (ns_name_skip) __ns_name_skip;
diff --git a/resolv/Makefile b/resolv/Makefile
index 7839e1fb3c..8bb2585dca 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -33,6 +33,7 @@ routines := \
   inet_ntop \
   inet_pton \
   ns_name_ntop \
+  ns_name_pack \
   ns_name_pton \
   ns_name_skip \
   ns_name_uncompress \
diff --git a/resolv/Versions b/resolv/Versions
index 770a2b8d6b..8ea42da48d 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -26,6 +26,7 @@ libc {
   }
   GLIBC_2.9 {
     ns_name_ntop;
+    ns_name_pack;
     ns_name_pton;
     ns_name_skip;
     ns_name_uncompress;
@@ -39,6 +40,7 @@ libc {
     getaddrinfo_a;
 %endif
     ns_name_ntop;
+    ns_name_pack;
     ns_name_pton;
     ns_name_skip;
     ns_name_uncompress;
@@ -52,6 +54,7 @@ libc {
     __inet_aton_exact;
     __inet_pton_length;
     __ns_name_ntop;
+    __ns_name_pack;
     __ns_name_pton;
     __ns_name_skip;
     __ns_name_uncompress;
@@ -154,7 +157,6 @@ libresolv {
     ns_msg_getflag;
     ns_name_compress;
     ns_name_ntol;
-    ns_name_pack;
     ns_name_pton;
     ns_name_rollback;
     ns_name_skip;
diff --git a/resolv/ns_name.c b/resolv/ns_name.c
index 9f7ca4a506..f1a84ad8a6 100644
--- a/resolv/ns_name.c
+++ b/resolv/ns_name.c
@@ -31,9 +31,6 @@
 
 /* Forward. */
 
-static int		dn_find(const u_char *, const u_char *,
-				const u_char * const *,
-				const u_char * const *);
 static int		labellen(const u_char *);
 
 /* Public. */
@@ -92,118 +89,6 @@ ns_name_ntol(const u_char *src, u_char *dst, size_t dstsiz)
 	return (dn - dst);
 }
 
-/*%
- *	Pack domain name 'domain' into 'comp_dn'.
- *
- * return:
- *\li	Size of the compressed name, or -1.
- *
- * notes:
- *\li	'dnptrs' is an array of pointers to previous compressed names.
- *\li	dnptrs[0] is a pointer to the beginning of the message. The array
- *	ends with NULL.
- *\li	'lastdnptr' is a pointer to the end of the array pointed to
- *	by 'dnptrs'.
- *
- * Side effects:
- *\li	The list of pointers in dnptrs is updated for labels inserted into
- *	the message as we compress the name.  If 'dnptr' is NULL, we don't
- *	try to compress names. If 'lastdnptr' is NULL, we don't update the
- *	list.
- */
-int
-ns_name_pack(const u_char *src, u_char *dst, int dstsiz,
-	     const u_char **dnptrs, const u_char **lastdnptr)
-{
-	u_char *dstp;
-	const u_char **cpp, **lpp, *eob, *msg;
-	const u_char *srcp;
-	int n, l, first = 1;
-
-	srcp = src;
-	dstp = dst;
-	eob = dstp + dstsiz;
-	lpp = cpp = NULL;
-	if (dnptrs != NULL) {
-		if ((msg = *dnptrs++) != NULL) {
-			for (cpp = dnptrs; *cpp != NULL; cpp++)
-				(void)NULL;
-			lpp = cpp;	/*%< end of list to search */
-		}
-	} else
-		msg = NULL;
-
-	/* make sure the domain we are about to add is legal */
-	l = 0;
-	do {
-		int l0;
-
-		n = *srcp;
-		if ((n & NS_CMPRSFLGS) == NS_CMPRSFLGS) {
-			__set_errno (EMSGSIZE);
-			return (-1);
-		}
-		if ((l0 = labellen(srcp)) < 0) {
-			__set_errno (EINVAL);
-			return(-1);
-		}
-		l += l0 + 1;
-		if (l > MAXCDNAME) {
-			__set_errno (EMSGSIZE);
-			return (-1);
-		}
-		srcp += l0 + 1;
-	} while (n != 0);
-
-	/* from here on we need to reset compression pointer array on error */
-	srcp = src;
-	do {
-		/* Look to see if we can use pointers. */
-		n = *srcp;
-		if (n != 0 && msg != NULL) {
-			l = dn_find(srcp, msg, (const u_char * const *)dnptrs,
-				    (const u_char * const *)lpp);
-			if (l >= 0) {
-				if (dstp + 1 >= eob) {
-					goto cleanup;
-				}
-				*dstp++ = (l >> 8) | NS_CMPRSFLGS;
-				*dstp++ = l % 256;
-				return (dstp - dst);
-			}
-			/* Not found, save it. */
-			if (lastdnptr != NULL && cpp < lastdnptr - 1 &&
-			    (dstp - msg) < 0x4000 && first) {
-				*cpp++ = dstp;
-				*cpp = NULL;
-				first = 0;
-			}
-		}
-		/* copy label to buffer */
-		if ((n & NS_CMPRSFLGS) == NS_CMPRSFLGS) {
-			/* Should not happen. */
-			goto cleanup;
-		}
-		n = labellen(srcp);
-		if (n + 1 > eob - dstp) {
-			goto cleanup;
-		}
-		memcpy(dstp, srcp, n + 1);
-		srcp += n + 1;
-		dstp += n + 1;
-	} while (n != 0);
-
-	if (dstp > eob) {
-cleanup:
-		if (msg != NULL)
-			*lpp = NULL;
-		__set_errno (EMSGSIZE);
-		return (-1);
-	}
-	return (dstp - dst);
-}
-libresolv_hidden_def (ns_name_pack)
-
 /*%
  *	Compress a domain name into wire format, using compression pointers.
  *
@@ -250,85 +135,6 @@ ns_name_rollback(const u_char *src, const u_char **dnptrs,
 
 /* Private. */
 
-/*%
- *	Thinking in noninternationalized USASCII (per the DNS spec),
- *	convert this character to lower case if it's upper case.
- */
-static int
-mklower(int ch) {
-	if (ch >= 0x41 && ch <= 0x5A)
-		return (ch + 0x20);
-	return (ch);
-}
-
-/*%
- *	Search for the counted-label name in an array of compressed names.
- *
- * return:
- *\li	offset from msg if found, or -1.
- *
- * notes:
- *\li	dnptrs is the pointer to the first name on the list,
- *\li	not the pointer to the start of the message.
- */
-static int
-dn_find(const u_char *domain, const u_char *msg,
-	const u_char * const *dnptrs,
-	const u_char * const *lastdnptr)
-{
-	const u_char *dn, *cp, *sp;
-	const u_char * const *cpp;
-	u_int n;
-
-	for (cpp = dnptrs; cpp < lastdnptr; cpp++) {
-		sp = *cpp;
-		/*
-		 * terminate search on:
-		 * root label
-		 * compression pointer
-		 * unusable offset
-		 */
-		while (*sp != 0 && (*sp & NS_CMPRSFLGS) == 0 &&
-		       (sp - msg) < 0x4000) {
-			dn = domain;
-			cp = sp;
-			while ((n = *cp++) != 0) {
-				/*
-				 * check for indirection
-				 */
-				switch (n & NS_CMPRSFLGS) {
-				case 0:		/*%< normal case, n == len */
-					n = labellen(cp - 1); /*%< XXX */
-					if (n != *dn++)
-						goto next;
-
-					for ((void)NULL; n > 0; n--)
-						if (mklower(*dn++) !=
-						    mklower(*cp++))
-							goto next;
-					/* Is next root for both ? */
-					if (*dn == '\0' && *cp == '\0')
-						return (sp - msg);
-					if (*dn)
-						continue;
-					goto next;
-				case NS_CMPRSFLGS:	/*%< indirection */
-					cp = msg + (((n & 0x3f) << 8) | *cp);
-					break;
-
-				default:	/*%< illegal type */
-					__set_errno (EMSGSIZE);
-					return (-1);
-				}
-			}
-  next: ;
-			sp += *sp + 1;
-		}
-	}
-	__set_errno (ENOENT);
-	return (-1);
-}
-
 /* Return the length of the encoded label starting at LP, or -1 for
    compression references and extended label types.  */
 static int
diff --git a/resolv/ns_name_pack.c b/resolv/ns_name_pack.c
new file mode 100644
index 0000000000..3200b788b3
--- /dev/null
+++ b/resolv/ns_name_pack.c
@@ -0,0 +1,202 @@
+/* Compression of DNS domain names.
+ * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1996,1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <errno.h>
+#include <string.h>
+#include <shlib-compat.h>
+
+/* Thinking in noninternationalized USASCII (per the DNS spec),
+   convert this character to lower case if it's upper case.  */
+static int
+mklower (int ch)
+{
+  if (ch >= 'A' && ch <= 'Z')
+    return ch - 'A' + 'a';
+  return ch;
+}
+
+/* Search for the counted-label name in an array of compressed names.
+   Returns the offset from MSG if found, or -1.
+
+   DNPTRS is the pointer to the first name on the list, not the
+   pointer to the start of the message.  */
+static int
+dn_find (const unsigned char *domain, const unsigned char *msg,
+         const unsigned char **dnptrs,
+         const unsigned char **lastdnptr)
+{
+  const unsigned char *dn, *cp, *sp;
+  const unsigned char **cpp;
+  unsigned int n;
+
+  for (cpp = dnptrs; cpp < lastdnptr; cpp++)
+    {
+    sp = *cpp;
+    /* Terminate search on: root label, compression pointer, unusable
+       offset.  */
+    while (*sp != 0 && (*sp & NS_CMPRSFLGS) == 0 && (sp - msg) < 0x4000)
+      {
+        dn = domain;
+        cp = sp;
+        while ((n = *cp++) != 0)
+          {
+            /* Check for indirection.  */
+            switch (n & NS_CMPRSFLGS)
+              {
+              case 0:                 /* Normal case, n == len.  */
+                if (n != *dn++)
+                  goto next;
+
+                for (; n > 0; n--)
+                  if (mklower (*dn++) != mklower (*cp++))
+                    goto next;
+                /* Is next root for both?  */
+                if (*dn == '\0' && *cp == '\0')
+                  return sp - msg;
+                if (*dn)
+                  continue;
+                goto next;
+              case NS_CMPRSFLGS: /* Indirection.  */
+                cp = msg + (((n & 0x3f) << 8) | *cp);
+                break;
+
+              default:          /* Illegal type.  */
+                __set_errno (EMSGSIZE);
+                return -1;
+              }
+          }
+      next: ;
+        sp += *sp + 1;
+      }
+    }
+  __set_errno (ENOENT);
+  return -1;
+}
+
+/* Packs domain name SRC into DST.  Returns size of the compressed
+   name, or -1.
+
+   DNPTRS is an array of pointers to previous compressed names.
+   DNPTRS[0] is a pointer to the beginning of the message. The array
+   ends with NULL.  LASTDNPTR is a pointer to the end of the array
+   pointed to by 'dnptrs'.
+
+   The list of pointers in DNPTRS is updated for labels inserted into
+   the message as we compress the name.  If DNPTRS is NULL, we don't
+   try to compress names. If LASTDNPTR is NULL, we don't update the
+   list.  */
+int
+___ns_name_pack (const unsigned char *src, unsigned char *dst, int dstsiz,
+                 const unsigned char **dnptrs, const unsigned char **lastdnptr)
+{
+  unsigned char *dstp;
+  const unsigned char **cpp, **lpp, *eob, *msg;
+  const unsigned char *srcp;
+  int n, l, first = 1;
+
+  srcp = src;
+  dstp = dst;
+  eob = dstp + dstsiz;
+  lpp = cpp = NULL;
+  if (dnptrs != NULL)
+    {
+      if ((msg = *dnptrs++) != NULL)
+        {
+          for (cpp = dnptrs; *cpp != NULL; cpp++)
+            ;
+          lpp = cpp;            /* End of list to search.  */
+        }
+    }
+  else
+    msg = NULL;
+
+  /* Make sure the domain we are about to add is legal.  */
+  l = 0;
+  do
+    {
+      n = *srcp;
+      if (n >= 64)
+        {
+          __set_errno (EMSGSIZE);
+          return -1;
+        }
+      l += n + 1;
+      if (l > MAXCDNAME)
+        {
+          __set_errno (EMSGSIZE);
+          return -1;
+        }
+      srcp += n + 1;
+    }
+  while (n != 0);
+
+  /* from here on we need to reset compression pointer array on error */
+  srcp = src;
+  do
+    {
+      /* Look to see if we can use pointers.  */
+      n = *srcp;
+      if (n != 0 && msg != NULL)
+        {
+          l = dn_find (srcp, msg, dnptrs, lpp);
+          if (l >= 0)
+            {
+              if (eob - dstp <= 1)
+                goto cleanup;
+              *dstp++ = (l >> 8) | NS_CMPRSFLGS;
+              *dstp++ = l % 256;
+              return dstp - dst;
+            }
+          /* Not found, save it.  */
+          if (lastdnptr != NULL && cpp < lastdnptr - 1
+              && (dstp - msg) < 0x4000 && first)
+            {
+              *cpp++ = dstp;
+              *cpp = NULL;
+              first = 0;
+            }
+        }
+      /* Copy label to buffer.  */
+      if (n >= 64)
+        /* Should not happen.  */
+        goto cleanup;
+      if (n + 1 > eob - dstp)
+        goto cleanup;
+      memcpy (dstp, srcp, n + 1);
+      srcp += n + 1;
+      dstp += n + 1;
+    }
+  while (n != 0);
+
+  if (dstp > eob)
+    {
+    cleanup:
+      if (msg != NULL)
+        *lpp = NULL;
+      __set_errno (EMSGSIZE);
+      return -1;
+    }
+  return dstp - dst;
+}
+versioned_symbol (libc, ___ns_name_pack, ns_name_pack, GLIBC_2_34);
+versioned_symbol (libc, ___ns_name_pack, __ns_name_pack, GLIBC_PRIVATE);
+libc_hidden_ver (___ns_name_pack, __ns_name_pack)
+
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_9, GLIBC_2_34)
+compat_symbol (libresolv, ___ns_name_pack, ns_name_pack, GLIBC_2_9);
+#endif
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 83b4e2a983..b73d7d11a2 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2241,6 +2241,7 @@ GLIBC_2.34 login_tty F
 GLIBC_2.34 logout F
 GLIBC_2.34 logwtmp F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2366,6 +2367,7 @@ GLIBC_2.8 __vdprintf_chk F
 GLIBC_2.8 qsort_r F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index 1e75aaa6d7..533283afaa 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
 GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
-GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
 GLIBC_2.9 ns_parserr F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 1b6e962fe3..7ae7506b0b 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
@@ -2456,6 +2457,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 ef88aa8e36..47ab3bbcfb 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2550,6 +2550,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
@@ -2988,6 +2989,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 94f9908585..5b387418ab 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
@@ -2215,6 +2216,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_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 7157111655..2419fcbbb7 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -344,6 +344,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/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 8f4e772481..0010d1e86c 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -341,6 +341,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
@@ -2681,6 +2682,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_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 f4368cc20b..27d8e165c1 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
@@ -2481,6 +2482,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 d5a661c221..8c8bea67aa 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2429,6 +2429,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
@@ -2698,6 +2699,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 49c26a44a6..3014ad7143 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2613,6 +2613,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
@@ -2882,6 +2883,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 bee668d6f7..8d00eaf6b1 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2388,6 +2388,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
@@ -2657,6 +2658,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 45fca7a557..19534dd36c 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -345,6 +345,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
@@ -2663,6 +2664,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 a1b316aa1c..8c03c6797a 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2556,6 +2556,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
@@ -2825,6 +2826,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 7a991b941a..28a03e9915 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
@@ -2532,6 +2533,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 a3fae78187..5747e6f330 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
@@ -2529,6 +2530,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 84f9ab0af6..bbfe63587c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2521,6 +2521,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2786,6 +2787,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/mips/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 343c2925c3..62d1219681 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2519,6 +2519,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
@@ -2784,6 +2785,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 cd01ef31f0..a5da7c2236 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2527,6 +2527,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
@@ -2792,6 +2793,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 1722ba6722..5957ca61e1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2439,6 +2439,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2704,6 +2705,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/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 aaf4b25fe0..7b30702bc8 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
@@ -2571,6 +2572,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 937d59759a..c6a6c3902b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/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
@@ -3023,6 +3024,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 186c59d401..c54fe04c21 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2616,6 +2616,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
@@ -3068,6 +3069,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 c9ffbc9455..de407254a8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2352,6 +2352,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
@@ -2792,6 +2793,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 0c7183ba10..73d7784b6f 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
@@ -2652,6 +2653,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 0f345ea431..bd76b7f48c 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
@@ -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/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 613ad3332d..ad0c74f1e8 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
@@ -2417,6 +2418,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 a4df94a8ed..f8d5c15c8f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2581,6 +2581,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
@@ -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_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 2002437627..f8f387c8bc 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2389,6 +2389,7 @@ GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
 GLIBC_2.34 ns_name_ntop F
+GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
 GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
@@ -2827,6 +2828,7 @@ GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
 GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
 GLIBC_2.9 ns_name_skip F
 GLIBC_2.9 ns_name_uncompress F
diff --git a/sysdeps/unix/sysv/linux/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 934a8af021..4ba1fca626 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2436,6 +2436,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/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 82f0b5e2e5..8b6f0df2a4 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2433,6 +2433,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
@@ -2702,6 +2703,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 78b5667c51..40e5363a64 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2576,6 +2576,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
@@ -3040,6 +3041,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 77076f51ec..794dfecaac 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2411,6 +2411,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
@@ -2680,6 +2681,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 c060a7b027..b886a7d9af 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2367,6 +2367,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
@@ -2636,6 +2637,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 2baaf7af06..d301782e21 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
@@ -2471,6 +2472,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] 70+ messages in thread

* [PATCH 11/30] resolv: Move ns_name_compress into its own file and into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (9 preceding siblings ...)
  2021-07-08 15:01 ` [PATCH 10/30] resolv: Move ns_name_pack " Florian Weimer via Libc-alpha
@ 2021-07-08 15:01 ` Florian Weimer via Libc-alpha
  2021-07-15  5:01   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:02 ` [PATCH 12/30] resolv: Move dn_expand to " Florian Weimer via Libc-alpha
                   ` (19 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:01 UTC (permalink / raw)
  To: libc-alpha

And reformat to GNU style.

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

diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
index 02d7b0b553..eff25178c8 100644
--- a/include/arpa/nameser.h
+++ b/include/arpa/nameser.h
@@ -65,7 +65,6 @@ libresolv_hidden_proto (ns_put32)
 libresolv_hidden_proto (ns_initparse)
 libresolv_hidden_proto (ns_skiprr)
 libresolv_hidden_proto (ns_parserr)
-libresolv_hidden_proto (ns_name_compress)
 libresolv_hidden_proto (ns_sprintrr)
 libresolv_hidden_proto (ns_sprintrrf)
 libresolv_hidden_proto (ns_samedomain)
@@ -73,6 +72,8 @@ libresolv_hidden_proto (ns_samename)
 libresolv_hidden_proto (ns_makecanon)
 libresolv_hidden_proto (ns_format_ttl)
 
+extern __typeof (ns_name_compress) __ns_name_compress;
+libc_hidden_proto (__ns_name_compress)
 extern __typeof (ns_name_ntop) __ns_name_ntop;
 libc_hidden_proto (__ns_name_ntop)
 extern __typeof (ns_name_pack) __ns_name_pack;
diff --git a/resolv/Makefile b/resolv/Makefile
index 8bb2585dca..64600ab845 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -32,6 +32,7 @@ routines := \
   inet_addr \
   inet_ntop \
   inet_pton \
+  ns_name_compress \
   ns_name_ntop \
   ns_name_pack \
   ns_name_pton \
diff --git a/resolv/Versions b/resolv/Versions
index 8ea42da48d..a676be2e42 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -25,6 +25,7 @@ libc {
 %endif
   }
   GLIBC_2.9 {
+    ns_name_compress;
     ns_name_ntop;
     ns_name_pack;
     ns_name_pton;
@@ -39,6 +40,7 @@ libc {
     gai_suspend;
     getaddrinfo_a;
 %endif
+    ns_name_compress;
     ns_name_ntop;
     ns_name_pack;
     ns_name_pton;
@@ -53,6 +55,7 @@ libc {
     __h_errno;
     __inet_aton_exact;
     __inet_pton_length;
+    __ns_name_compress;
     __ns_name_ntop;
     __ns_name_pack;
     __ns_name_pton;
@@ -155,7 +158,6 @@ libresolv {
     ns_initparse;
     ns_makecanon;
     ns_msg_getflag;
-    ns_name_compress;
     ns_name_ntol;
     ns_name_pton;
     ns_name_rollback;
diff --git a/resolv/ns_name.c b/resolv/ns_name.c
index f1a84ad8a6..f19c11c03f 100644
--- a/resolv/ns_name.c
+++ b/resolv/ns_name.c
@@ -89,33 +89,6 @@ ns_name_ntol(const u_char *src, u_char *dst, size_t dstsiz)
 	return (dn - dst);
 }
 
-/*%
- *	Compress a domain name into wire format, using compression pointers.
- *
- * return:
- *\li	Number of bytes consumed in `dst' or -1 (with errno set).
- *
- * notes:
- *\li	'dnptrs' is an array of pointers to previous compressed names.
- *\li	dnptrs[0] is a pointer to the beginning of the message.
- *\li	The list ends with NULL.  'lastdnptr' is a pointer to the end of the
- *	array pointed to by 'dnptrs'. Side effect is to update the list of
- *	pointers for labels inserted into the message as we compress the name.
- *\li	If 'dnptr' is NULL, we don't try to compress names. If 'lastdnptr'
- *	is NULL, we don't update the list.
- */
-int
-ns_name_compress(const char *src, u_char *dst, size_t dstsiz,
-		 const u_char **dnptrs, const u_char **lastdnptr)
-{
-	u_char tmp[NS_MAXCDNAME];
-
-	if (ns_name_pton(src, tmp, sizeof tmp) == -1)
-		return (-1);
-	return (ns_name_pack(tmp, dst, dstsiz, dnptrs, lastdnptr));
-}
-libresolv_hidden_def (ns_name_compress)
-
 /*%
  * Reset dnptrs so that there are no active references to pointers at or
  * after src.
diff --git a/resolv/ns_name_compress.c b/resolv/ns_name_compress.c
new file mode 100644
index 0000000000..ade3676cdb
--- /dev/null
+++ b/resolv/ns_name_compress.c
@@ -0,0 +1,50 @@
+/* Compress a DNS domain name in presentation format.
+ * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1996,1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <shlib-compat.h>
+
+/* Compresses a domain name into wire format, using compression pointers.
+   Returns the number of bytes consumed in DST or -1 (with errno set).
+
+   DNPTRS is an array of pointers to previous compressed names.
+   DNPTRS[0] is a pointer to the beginning of the message.
+
+   The list ends with NULL.  LASTDNPTR is a pointer to the end of the
+   array pointed to by DNPTRS.  Side effect is to update the list of
+   pointers for labels inserted into the message as we compress the
+   name.  If DNPTRS is NULL, we don't try to compress names.  If
+   LASTDNPTR * is NULL, we don't update the list.  */
+int
+___ns_name_compress (const char *src, unsigned char *dst, size_t dstsiz,
+                     const unsigned char **dnptrs,
+                     const unsigned char **lastdnptr)
+{
+  unsigned char tmp[NS_MAXCDNAME];
+
+  if (__ns_name_pton (src, tmp, sizeof tmp) < 0)
+    return -1;
+  return __ns_name_pack (tmp, dst, dstsiz, dnptrs, lastdnptr);
+}
+versioned_symbol (libc, ___ns_name_compress, ns_name_compress, GLIBC_2_34);
+versioned_symbol (libc, ___ns_name_compress, __ns_name_compress,
+                  GLIBC_PRIVATE);
+libc_hidden_ver (___ns_name_compress, __ns_name_compress)
+
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_9, GLIBC_2_34)
+compat_symbol (libresolv, ___ns_name_compress, ns_name_compress, GLIBC_2_9);
+#endif
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index b73d7d11a2..170c6aeaee 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2240,6 +2240,7 @@ GLIBC_2.34 login F
 GLIBC_2.34 login_tty F
 GLIBC_2.34 logout F
 GLIBC_2.34 logwtmp F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2366,6 +2367,7 @@ GLIBC_2.8 __vasprintf_chk F
 GLIBC_2.8 __vdprintf_chk F
 GLIBC_2.8 qsort_r F
 GLIBC_2.9 dup3 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index 533283afaa..6e77bc28c6 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -70,7 +70,6 @@ GLIBC_2.9 ns_get32 F
 GLIBC_2.9 ns_initparse F
 GLIBC_2.9 ns_makecanon F
 GLIBC_2.9 ns_msg_getflag F
-GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntol F
 GLIBC_2.9 ns_name_rollback F
 GLIBC_2.9 ns_parse_ttl F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 7ae7506b0b..16aa9b1803 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
@@ -2456,6 +2457,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 47ab3bbcfb..cf52581228 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2549,6 +2549,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
@@ -2988,6 +2989,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 5b387418ab..6ab308f822 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
@@ -2215,6 +2216,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 2419fcbbb7..7f9c44838c 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -343,6 +343,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/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 0010d1e86c..fce812f258 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -340,6 +340,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
@@ -2681,6 +2682,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 27d8e165c1..7962497b41 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
@@ -2481,6 +2482,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 8c8bea67aa..502f7e5a22 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2428,6 +2428,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
@@ -2698,6 +2699,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 3014ad7143..672ff49a8e 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2612,6 +2612,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
@@ -2882,6 +2883,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 8d00eaf6b1..35bf700e2b 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2387,6 +2387,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
@@ -2657,6 +2658,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 19534dd36c..f633a38f14 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -344,6 +344,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
@@ -2663,6 +2664,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 8c03c6797a..370ccf6564 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2555,6 +2555,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
@@ -2825,6 +2826,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 28a03e9915..e8378d068a 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
@@ -2532,6 +2533,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 5747e6f330..a20719cad5 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
@@ -2529,6 +2530,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 bbfe63587c..ee3721bdbb 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2520,6 +2520,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2786,6 +2787,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/mips/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 62d1219681..5c3f2598d0 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2518,6 +2518,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
@@ -2784,6 +2785,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 a5da7c2236..74ee08c389 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2526,6 +2526,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2792,6 +2793,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 5957ca61e1..78551cd239 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2438,6 +2438,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2704,6 +2705,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/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 7b30702bc8..de7c57a5b2 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
@@ -2571,6 +2572,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 c6a6c3902b..5b80d97e49 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/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
@@ -3023,6 +3024,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 c54fe04c21..cffcccde96 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2615,6 +2615,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
@@ -3068,6 +3069,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 de407254a8..05e0c32443 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2351,6 +2351,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
@@ -2792,6 +2793,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 73d7784b6f..0651e2e7f3 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
@@ -2652,6 +2653,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 bd76b7f48c..da2b9d8501 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
@@ -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/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 ad0c74f1e8..267d0d5d63 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
@@ -2417,6 +2418,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 f8d5c15c8f..3f6f77a9d4 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2580,6 +2580,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
@@ -3031,6 +3032,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 f8f387c8bc..7dd974d417 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2388,6 +2388,7 @@ GLIBC_2.34 mtx_lock F
 GLIBC_2.34 mtx_timedlock F
 GLIBC_2.34 mtx_trylock F
 GLIBC_2.34 mtx_unlock F
+GLIBC_2.34 ns_name_compress F
 GLIBC_2.34 ns_name_ntop F
 GLIBC_2.34 ns_name_pack F
 GLIBC_2.34 ns_name_pton F
@@ -2827,6 +2828,7 @@ GLIBC_2.8 timerfd_settime F
 GLIBC_2.9 dup3 F
 GLIBC_2.9 epoll_create1 F
 GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 ns_name_compress F
 GLIBC_2.9 ns_name_ntop F
 GLIBC_2.9 ns_name_pack F
 GLIBC_2.9 ns_name_pton F
diff --git a/sysdeps/unix/sysv/linux/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 4ba1fca626..2edaee2a59 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2435,6 +2435,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/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 8b6f0df2a4..98253e7329 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2432,6 +2432,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
@@ -2702,6 +2703,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 40e5363a64..0e63ce7d44 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2575,6 +2575,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
@@ -3040,6 +3041,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 794dfecaac..2362456d51 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2410,6 +2410,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
@@ -2680,6 +2681,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 b886a7d9af..d97d38a27c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2366,6 +2366,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
@@ -2636,6 +2637,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 d301782e21..c94f90a591 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
@@ -2471,6 +2472,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] 70+ messages in thread

* [PATCH 12/30] resolv: Move dn_expand to its own file and into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (10 preceding siblings ...)
  2021-07-08 15:01 ` [PATCH 11/30] resolv: Move ns_name_compress " Florian Weimer via Libc-alpha
@ 2021-07-08 15:02 ` Florian Weimer via Libc-alpha
  2021-07-15  5:01   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:02 ` [PATCH 13/30] resolv: Move _getlong, _getshort, __putlong, __putshort to res-putget Florian Weimer via Libc-alpha
                   ` (18 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:02 UTC (permalink / raw)
  To: libc-alpha

And reformat to GNU style.

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

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

diff --git a/include/resolv.h b/include/resolv.h
index daf4a74777..44fc0c346f 100644
--- a/include/resolv.h
+++ b/include/resolv.h
@@ -44,7 +44,6 @@ libresolv_hidden_proto (_sethtent)
 libresolv_hidden_proto (_gethtent)
 libresolv_hidden_proto (_gethtbyaddr)
 libresolv_hidden_proto (_gethtbyname2)
-libresolv_hidden_proto (__dn_expand)
 libresolv_hidden_proto (__dn_comp)
 libresolv_hidden_proto (__dn_skipname)
 libresolv_hidden_proto (__res_hnok)
@@ -66,5 +65,8 @@ libresolv_hidden_proto (__res_queriesmatch)
 libresolv_hidden_proto (__b64_ntop)
 libresolv_hidden_proto (__dn_count_labels)
 
+extern __typeof (dn_expand) __libc_dn_expand;
+libc_hidden_proto (__libc_dn_expand)
+
 # endif /* _RESOLV_H_ && !_ISOMAC */
 #endif
diff --git a/resolv/Makefile b/resolv/Makefile
index 64600ab845..3e7de81fb5 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -28,6 +28,7 @@ headers	:= resolv.h bits/types/res_state.h \
 	   sys/bitypes.h
 
 routines := \
+  dn_expand \
   herror \
   inet_addr \
   inet_ntop \
diff --git a/resolv/Versions b/resolv/Versions
index a676be2e42..4a9203042f 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -3,6 +3,7 @@ libc {
     __h_errno_location;
     __res_randomid;
     _res;
+    dn_expand;
     h_errlist;
     h_nerr;
     herror;
@@ -10,6 +11,7 @@ libc {
     res_init;
   }
   GLIBC_2.2 {
+    __dn_expand;
     __res_init;
     __res_nclose;
     __res_ninit;
@@ -40,6 +42,7 @@ libc {
     gai_suspend;
     getaddrinfo_a;
 %endif
+    dn_expand;
     ns_name_compress;
     ns_name_ntop;
     ns_name_pack;
@@ -55,6 +58,7 @@ libc {
     __h_errno;
     __inet_aton_exact;
     __inet_pton_length;
+    __libc_dn_expand;
     __ns_name_compress;
     __ns_name_ntop;
     __ns_name_pack;
@@ -120,7 +124,6 @@ libresolv {
     _res_opcodes;
     _res_resultcodes;
     _sethtent;
-    dn_expand;
     inet_net_ntop;
     inet_net_pton;
     inet_neta;
@@ -135,7 +138,6 @@ libresolv {
     res_send_setrhook;
   }
   GLIBC_2.2 {
-    __dn_expand;
     __res_hostalias;
     __res_mkquery;
     __res_nmkquery;
diff --git a/resolv/compat-gethnamaddr.c b/resolv/compat-gethnamaddr.c
index 0e24dcbbcc..1c630fcb3d 100644
--- a/resolv/compat-gethnamaddr.c
+++ b/resolv/compat-gethnamaddr.c
@@ -179,7 +179,7 @@ getanswer (const querybuf *answer, int anslen, const char *qname, int qtype)
 		__set_h_errno (NO_RECOVERY);
 		return (NULL);
 	}
-	n = dn_expand(answer->buf, eom, cp, bp, buflen);
+	n = __libc_dn_expand (answer->buf, eom, cp, bp, buflen);
 	if ((n < 0) || !(*name_ok)(bp)) {
 		__set_h_errno (NO_RECOVERY);
 		return (NULL);
@@ -210,7 +210,7 @@ getanswer (const querybuf *answer, int anslen, const char *qname, int qtype)
 	haveanswer = 0;
 	had_error = 0;
 	while (ancount-- > 0 && cp < eom && !had_error) {
-		n = dn_expand(answer->buf, eom, cp, bp, buflen);
+		n = __libc_dn_expand (answer->buf, eom, cp, bp, buflen);
 		if ((n < 0) || !(*name_ok)(bp)) {
 			had_error++;
 			continue;
@@ -233,7 +233,8 @@ getanswer (const querybuf *answer, int anslen, const char *qname, int qtype)
 		if ((qtype == T_A || qtype == T_AAAA) && type == T_CNAME) {
 			if (ap >= &host_aliases[MAXALIASES-1])
 				continue;
-			n = dn_expand(answer->buf, eom, cp, tbuf, sizeof tbuf);
+			n = __libc_dn_expand (answer->buf, eom, cp,
+					      tbuf, sizeof tbuf);
 			if ((n < 0) || !(*name_ok)(tbuf)) {
 				had_error++;
 				continue;
@@ -265,7 +266,8 @@ getanswer (const querybuf *answer, int anslen, const char *qname, int qtype)
 			continue;
 		}
 		if (qtype == T_PTR && type == T_CNAME) {
-			n = dn_expand(answer->buf, eom, cp, tbuf, sizeof tbuf);
+			n = __libc_dn_expand (answer->buf, eom, cp,
+					      tbuf, sizeof tbuf);
 			if (n < 0 || !res_dnok(tbuf)) {
 				had_error++;
 				continue;
@@ -302,7 +304,8 @@ getanswer (const querybuf *answer, int anslen, const char *qname, int qtype)
 				cp += n;
 				continue;	/* XXX - had_error++ ? */
 			}
-			n = dn_expand(answer->buf, eom, cp, bp, buflen);
+			n = __libc_dn_expand (answer->buf, eom, cp,
+					      bp, buflen);
 			if ((n < 0) || !res_hnok(bp)) {
 				had_error++;
 				break;
diff --git a/resolv/dn_expand.c b/resolv/dn_expand.c
new file mode 100644
index 0000000000..0235b34eb4
--- /dev/null
+++ b/resolv/dn_expand.c
@@ -0,0 +1,112 @@
+/* Expanding a compressed DNS domain name to its presentation form.
+   Copyright (C) 1995-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+/*
+ * Copyright (c) 1985, 1993
+ *    The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Portions Copyright (c) 1993 by Digital Equipment Corporation.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies, and that
+ * the name of Digital Equipment Corporation not be used in advertising or
+ * publicity pertaining to distribution of the document or software without
+ * specific, written prior permission.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
+ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+/*
+ * Portions Copyright (c) 1996-1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <resolv.h>
+#include <shlib-compat.h>
+
+/* Expand compressed domain name COMP_DN to full domain name.  MSG is
+   a pointer to the beginning of the message, EOMORIG points to the
+   first location after the message, EXP_DN is a pointer to a buffer
+   of size LENGTH for the result.  Returns size of compressed name or
+   -1 if there was an error.  */
+int
+___dn_expand (const unsigned char *msg, const unsigned char *eom,
+              const unsigned char *src, char *dst, int dstsiz)
+{
+  int n = __ns_name_uncompress (msg, eom, src, dst, (size_t) dstsiz);
+  if (n > 0 && dst[0] == '.')
+    dst[0] = '\0';
+  return n;
+}
+versioned_symbol (libc, ___dn_expand, dn_expand, GLIBC_2_34);
+versioned_symbol (libc, ___dn_expand, __libc_dn_expand, GLIBC_PRIVATE);
+libc_hidden_ver (___dn_expand, __libc_dn_expand);
+
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_2)
+compat_symbol (libresolv, ___dn_expand, dn_expand, GLIBC_2_0);
+#endif
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___dn_expand, __dn_expand, GLIBC_2_2);
+#endif
diff --git a/resolv/ns_parse.c b/resolv/ns_parse.c
index 863b20a9f7..8ae72e7e1f 100644
--- a/resolv/ns_parse.c
+++ b/resolv/ns_parse.c
@@ -154,8 +154,8 @@ ns_parserr(ns_msg *handle, ns_sect section, int rrnum, ns_rr *rr) {
 	}
 
 	/* Do the parse. */
-	b = dn_expand(handle->_msg, handle->_eom,
-		      handle->_msg_ptr, rr->name, NS_MAXDNAME);
+	b = __libc_dn_expand (handle->_msg, handle->_eom,
+			      handle->_msg_ptr, rr->name, NS_MAXDNAME);
 	if (b < 0)
 		return (-1);
 	handle->_msg_ptr += b;
diff --git a/resolv/ns_print.c b/resolv/ns_print.c
index d61f5044b1..9a9602d74c 100644
--- a/resolv/ns_print.c
+++ b/resolv/ns_print.c
@@ -693,7 +693,7 @@ addname(const u_char *msg, size_t msglen,
 	char *save_buf = *buf;
 	int n;
 
-	n = dn_expand(msg, msg + msglen, *pp, *buf, *buflen);
+	n = __libc_dn_expand (msg, msg + msglen, *pp, *buf, *buflen);
 	if (n < 0)
 		goto enospc;	/*%< Guess. */
 	newlen = prune_origin(*buf, origin);
diff --git a/resolv/nss_dns/dns-canon.c b/resolv/nss_dns/dns-canon.c
index 1cdc9a86c9..b7340d7b9e 100644
--- a/resolv/nss_dns/dns-canon.c
+++ b/resolv/nss_dns/dns-canon.c
@@ -125,8 +125,8 @@ _nss_dns_getcanonname_r (const char *name, char *buffer, size_t buflen,
 	      if (type == qtypes[i])
 		{
 		  /* We found the record.  */
-		  s = __dn_expand (ansp.buf->buf, endptr, namestart,
-				   buffer, buflen);
+		  s = __libc_dn_expand (ansp.buf->buf, endptr, namestart,
+					buffer, buflen);
 		  if (s < 0)
 		    {
 		      if (errno != EMSGSIZE)
diff --git a/resolv/res_comp.c b/resolv/res_comp.c
index c53788643a..42e73a1f00 100644
--- a/resolv/res_comp.c
+++ b/resolv/res_comp.c
@@ -92,25 +92,6 @@
 #include <string.h>
 #include <unistd.h>
 
-/*
- * Expand compressed domain name 'comp_dn' to full domain name.
- * 'msg' is a pointer to the beginning of the message,
- * 'eomorig' points to the first location after the message,
- * 'exp_dn' is a pointer to a buffer of size 'length' for the result.
- * Return size of compressed name or -1 if there was an error.
- */
-int
-dn_expand(const u_char *msg, const u_char *eom, const u_char *src,
-	  char *dst, int dstsiz)
-{
-	int n = ns_name_uncompress(msg, eom, src, dst, (size_t)dstsiz);
-
-	if (n > 0 && dst[0] == '.')
-		dst[0] = '\0';
-	return (n);
-}
-libresolv_hidden_def (dn_expand)
-
 /*
  * Pack domain name 'exp_dn' in presentation form into 'comp_dn'.
  * Return the size of the compressed name or -1.
@@ -268,11 +249,3 @@ void __putshort(uint16_t src, u_char *dst) { ns_put16(src, dst); }
 libresolv_hidden_def (__putshort)
 uint32_t _getlong(const u_char *src) { return (ns_get32(src)); }
 uint16_t _getshort(const u_char *src) { return (ns_get16(src)); }
-\f
-
-#include <shlib-compat.h>
-
-#if SHLIB_COMPAT(libresolv, GLIBC_2_0, GLIBC_2_2)
-# undef dn_expand
-weak_alias (__dn_expand, dn_expand);
-#endif
diff --git a/resolv/res_debug.c b/resolv/res_debug.c
index 844269cffa..030df0aa90 100644
--- a/resolv/res_debug.c
+++ b/resolv/res_debug.c
@@ -335,7 +335,7 @@ p_cdnname(const u_char *cp, const u_char *msg, int len, FILE *file) {
 	char name[MAXDNAME];
 	int n;
 
-	if ((n = dn_expand(msg, msg + len, cp, name, sizeof name)) < 0)
+	if ((n = __libc_dn_expand (msg, msg + len, cp, name, sizeof name)) < 0)
 		return (NULL);
 	if (name[0] == '\0')
 		putc('.', file);
@@ -359,7 +359,7 @@ p_fqnname (const u_char *cp, const u_char *msg, int msglen, char *name,
 {
 	int n, newlen;
 
-	if ((n = dn_expand(msg, cp + msglen, cp, name, namelen)) < 0)
+	if ((n = __libc_dn_expand (msg, cp + msglen, cp, name, namelen)) < 0)
 		return (NULL);
 	newlen = strlen(name);
 	if (newlen == 0 || name[newlen - 1] != '.') {
diff --git a/resolv/res_send.c b/resolv/res_send.c
index 9a3bc5804a..77d6835e1a 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -268,7 +268,7 @@ res_nameinquery(const char *name, int type, int class,
 		char tname[MAXDNAME+1];
 		int n, ttype, tclass;
 
-		n = dn_expand(buf, eom, cp, tname, sizeof tname);
+		n = __libc_dn_expand (buf, eom, cp, tname, sizeof tname);
 		if (n < 0)
 			return (-1);
 		cp += n;
@@ -381,7 +381,7 @@ res_queriesmatch(const u_char *buf1, const u_char *eom1,
 		char tname[MAXDNAME+1];
 		int n, ttype, tclass;
 
-		n = dn_expand(buf1, eom1, cp, tname, sizeof tname);
+		n = __libc_dn_expand (buf1, eom1, cp, tname, sizeof tname);
 		if (n < 0)
 			return (-1);
 		cp += n;
diff --git a/resolv/resolv.h b/resolv/resolv.h
index d55942a6b6..5216c1f48c 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -212,7 +212,6 @@ __END_DECLS
 #define b64_pton		__b64_pton
 #define dn_comp			__dn_comp
 #define dn_count_labels		__dn_count_labels
-#define dn_expand		__dn_expand
 #define dn_skipname		__dn_skipname
 #define fp_resstat		__fp_resstat
 #define loc_aton		__loc_aton
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 170c6aeaee..f7e2541856 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -244,6 +244,7 @@ GLIBC_2.2.6 __dcgettext F
 GLIBC_2.2.6 __default_morecore F
 GLIBC_2.2.6 __dgettext F
 GLIBC_2.2.6 __divdi3 F
+GLIBC_2.2.6 __dn_expand F
 GLIBC_2.2.6 __dup2 F
 GLIBC_2.2.6 __duplocale F
 GLIBC_2.2.6 __environ D 0x4
@@ -2234,6 +2235,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 login F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index 6e77bc28c6..85460b7747 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -2,7 +2,6 @@ GLIBC_2.2.6 __b64_ntop F
 GLIBC_2.2.6 __b64_pton F
 GLIBC_2.2.6 __dn_comp F
 GLIBC_2.2.6 __dn_count_labels F
-GLIBC_2.2.6 __dn_expand F
 GLIBC_2.2.6 __dn_skipname F
 GLIBC_2.2.6 __fp_nquery F
 GLIBC_2.2.6 __fp_query F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 16aa9b1803..d7feaebd25 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
@@ -2429,6 +2430,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 cf52581228..dcab48ea49 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
@@ -2521,6 +2523,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 6ab308f822..f2c3d18a2b 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
@@ -2188,6 +2189,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 7f9c44838c..89e94dc3ef 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -315,6 +315,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/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 fce812f258..912783d6b9 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -312,6 +312,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
@@ -642,6 +643,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 7962497b41..bb15cf2f8a 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
@@ -2454,6 +2455,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 502f7e5a22..8f189c1a85 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
@@ -2400,6 +2402,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 672ff49a8e..9ab1d41cc1 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
@@ -2584,6 +2586,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 35bf700e2b..5c3584516e 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
@@ -2359,6 +2361,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 f633a38f14..8b1c4a8a0b 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -316,6 +316,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
@@ -631,6 +632,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 370ccf6564..c354cc814d 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
@@ -2527,6 +2529,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 e8378d068a..c6d85fe0bd 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
@@ -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_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 a20719cad5..b57734b754 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
@@ -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_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 ee3721bdbb..7598be5fdb 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
@@ -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/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 5c3f2598d0..e072907b70 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
@@ -2490,6 +2492,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 74ee08c389..52ce193faa 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
@@ -2498,6 +2500,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 78551cd239..dc61c97f24 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
@@ -2410,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_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 de7c57a5b2..3a866aea22 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
@@ -2544,6 +2545,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 5b80d97e49..8cb8cf8c87 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
@@ -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/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 cffcccde96..dfdba9e6ff 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
@@ -2587,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_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 05e0c32443..512d13beba 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
@@ -2323,6 +2324,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 0651e2e7f3..a4c73428fb 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
@@ -2625,6 +2626,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 da2b9d8501..ef9a55a760 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
@@ -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/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 267d0d5d63..5e3b73302d 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
@@ -2390,6 +2391,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 3f6f77a9d4..b1a29b59ba 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
@@ -2552,6 +2554,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 7dd974d417..e674a2b9fd 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
@@ -2360,6 +2361,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 2edaee2a59..169e46d789 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
@@ -2407,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_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 98253e7329..fbdb2d38a2 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
@@ -2404,6 +2406,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 0e63ce7d44..186be324af 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
@@ -2547,6 +2549,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 2362456d51..8d2df781c3 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
@@ -2382,6 +2384,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 d97d38a27c..af478a0756 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
@@ -2338,6 +2339,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 c94f90a591..151d2fa46e 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
@@ -2444,6 +2445,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] 70+ messages in thread

* [PATCH 13/30] resolv: Move _getlong, _getshort, __putlong, __putshort to res-putget
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (11 preceding siblings ...)
  2021-07-08 15:02 ` [PATCH 12/30] resolv: Move dn_expand to " Florian Weimer via Libc-alpha
@ 2021-07-08 15:02 ` Florian Weimer via Libc-alpha
  2021-07-15  5:01   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:03 ` [PATCH 14/30] resolv: Move dn_comp to its own file and into libc Florian Weimer via Libc-alpha
                   ` (17 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:02 UTC (permalink / raw)
  To: libc-alpha

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

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



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

* [PATCH 14/30] resolv: Move dn_comp to its own file and into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (12 preceding siblings ...)
  2021-07-08 15:02 ` [PATCH 13/30] resolv: Move _getlong, _getshort, __putlong, __putshort to res-putget Florian Weimer via Libc-alpha
@ 2021-07-08 15:03 ` Florian Weimer via Libc-alpha
  2021-07-15  5:01   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:03 ` [PATCH 15/30] resolv: Move dn_skipname " Florian Weimer via Libc-alpha
                   ` (16 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:03 UTC (permalink / raw)
  To: libc-alpha

And reformat it to GNU style.

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

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

diff --git a/include/resolv.h b/include/resolv.h
index 44fc0c346f..602f184643 100644
--- a/include/resolv.h
+++ b/include/resolv.h
@@ -44,7 +44,6 @@ libresolv_hidden_proto (_sethtent)
 libresolv_hidden_proto (_gethtent)
 libresolv_hidden_proto (_gethtbyaddr)
 libresolv_hidden_proto (_gethtbyname2)
-libresolv_hidden_proto (__dn_comp)
 libresolv_hidden_proto (__dn_skipname)
 libresolv_hidden_proto (__res_hnok)
 libresolv_hidden_proto (__res_dnok)
diff --git a/resolv/Makefile b/resolv/Makefile
index 07cac54d3a..936518523d 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -28,6 +28,7 @@ headers	:= resolv.h bits/types/res_state.h \
 	   sys/bitypes.h
 
 routines := \
+  dn_comp \
   dn_expand \
   herror \
   inet_addr \
diff --git a/resolv/Versions b/resolv/Versions
index 4a9203042f..e36cf45cfa 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -1,5 +1,6 @@
 libc {
   GLIBC_2.0 {
+    __dn_comp;
     __h_errno_location;
     __res_randomid;
     _res;
@@ -42,6 +43,7 @@ libc {
     gai_suspend;
     getaddrinfo_a;
 %endif
+    dn_comp;
     dn_expand;
     ns_name_compress;
     ns_name_ntop;
@@ -79,7 +81,6 @@ libresolv {
   GLIBC_2.0 {
     __b64_ntop;
     __b64_pton;
-    __dn_comp;
     __dn_count_labels;
     __dn_skipname;
     __fp_nquery;
diff --git a/resolv/dn_comp.c b/resolv/dn_comp.c
new file mode 100644
index 0000000000..4506a628ac
--- /dev/null
+++ b/resolv/dn_comp.c
@@ -0,0 +1,103 @@
+/* Compressing a DNS domain name from presentation form to wire format.
+   Copyright (C) 1995-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+/*
+ * Copyright (c) 1985, 1993
+ *    The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Portions Copyright (c) 1993 by Digital Equipment Corporation.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies, and that
+ * the name of Digital Equipment Corporation not be used in advertising or
+ * publicity pertaining to distribution of the document or software without
+ * specific, written prior permission.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
+ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+/*
+ * Portions Copyright (c) 1996-1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <resolv.h>
+
+/* Packs domain name SRC in presentation form into DST.  Returns the
+   size of the compressed name or -1.  DSTSIZ is the size of the array
+   pointed to by COMPDN.  */
+int
+___dn_comp (const char *src, unsigned char *dst, int dstsiz,
+            unsigned char **dnptrs, unsigned char **lastdnptr)
+{
+  return __ns_name_compress (src, dst, (size_t) dstsiz,
+                             (const unsigned char **) dnptrs,
+                             (const unsigned char **) lastdnptr);
+}
+versioned_symbol (libc, ___dn_comp, dn_comp, GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libresolv, ___dn_comp, __dn_comp, GLIBC_2_0);
+#endif
diff --git a/resolv/res_comp.c b/resolv/res_comp.c
index 80faea7e5e..1930f17302 100644
--- a/resolv/res_comp.c
+++ b/resolv/res_comp.c
@@ -92,21 +92,6 @@
 #include <string.h>
 #include <unistd.h>
 
-/*
- * Pack domain name 'exp_dn' in presentation form into 'comp_dn'.
- * Return the size of the compressed name or -1.
- * 'length' is the size of the array pointed to by 'comp_dn'.
- */
-int
-dn_comp(const char *src, u_char *dst, int dstsiz,
-	u_char **dnptrs, u_char **lastdnptr)
-{
-	return (ns_name_compress(src, dst, (size_t)dstsiz,
-				 (const u_char **)dnptrs,
-				 (const u_char **)lastdnptr));
-}
-libresolv_hidden_def (dn_comp)
-
 /*
  * Skip over a compressed domain name. Return the size or -1.
  */
diff --git a/resolv/resolv.h b/resolv/resolv.h
index 5216c1f48c..78ad81577a 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -210,7 +210,6 @@ __END_DECLS
 
 #define b64_ntop		__b64_ntop
 #define b64_pton		__b64_pton
-#define dn_comp			__dn_comp
 #define dn_count_labels		__dn_count_labels
 #define dn_skipname		__dn_skipname
 #define fp_resstat		__fp_resstat
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index f7e2541856..5692245dbb 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -244,6 +244,7 @@ GLIBC_2.2.6 __dcgettext F
 GLIBC_2.2.6 __default_morecore F
 GLIBC_2.2.6 __dgettext F
 GLIBC_2.2.6 __divdi3 F
+GLIBC_2.2.6 __dn_comp F
 GLIBC_2.2.6 __dn_expand F
 GLIBC_2.2.6 __dup2 F
 GLIBC_2.2.6 __duplocale F
@@ -2235,6 +2236,7 @@ GLIBC_2.34 dlmopen F
 GLIBC_2.34 dlopen F
 GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
+GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index 85460b7747..0132f6cef2 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.2.6 __b64_ntop F
 GLIBC_2.2.6 __b64_pton F
-GLIBC_2.2.6 __dn_comp F
 GLIBC_2.2.6 __dn_count_labels F
 GLIBC_2.2.6 __dn_skipname F
 GLIBC_2.2.6 __fp_nquery F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index d7feaebd25..714de3bb0d 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
@@ -2430,6 +2431,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 dcab48ea49..61c47275c3 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
@@ -2523,6 +2524,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 f2c3d18a2b..4dca04958f 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
@@ -2189,6 +2190,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 89e94dc3ef..6caf581b98 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -315,6 +315,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/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 912783d6b9..e0d0789930 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -312,6 +312,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
@@ -643,6 +644,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 bb15cf2f8a..f259a65b82 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
@@ -2455,6 +2456,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 8f189c1a85..83c9b2e5f6 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
@@ -2402,6 +2403,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 9ab1d41cc1..62a140ecf3 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
@@ -2586,6 +2587,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 5c3584516e..24ae204834 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
@@ -2361,6 +2362,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 8b1c4a8a0b..162ef0bc36 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -316,6 +316,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
@@ -632,6 +633,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 c354cc814d..2983e2a063 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
@@ -2529,6 +2530,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 c6d85fe0bd..ebdeb8aefa 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
@@ -2506,6 +2507,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 b57734b754..b564531dfe 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
@@ -2503,6 +2504,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 7598be5fdb..30ed1ecb5a 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
@@ -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/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 e072907b70..6288970497 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
@@ -2492,6 +2493,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 52ce193faa..7f379f189b 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
@@ -2500,6 +2501,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 dc61c97f24..adc8f70e9f 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
@@ -2412,6 +2413,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 3a866aea22..e2f59dc3fa 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
@@ -2545,6 +2546,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 8cb8cf8c87..dce5b10559 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
@@ -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/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 dfdba9e6ff..b336af10c6 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
@@ -2589,6 +2590,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 512d13beba..a072b8f50c 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
@@ -2324,6 +2325,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 a4c73428fb..96aac6c2a7 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
@@ -2626,6 +2627,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 ef9a55a760..766840ed64 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
@@ -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/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 5e3b73302d..2330cc492e 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
@@ -2391,6 +2392,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 b1a29b59ba..202748823f 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
@@ -2554,6 +2555,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 e674a2b9fd..a9266ad20a 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
@@ -2361,6 +2362,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 169e46d789..32a81a467c 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
@@ -2409,6 +2410,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 fbdb2d38a2..884b53816e 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
@@ -2406,6 +2407,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 186be324af..2bb890e734 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
@@ -2549,6 +2550,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 8d2df781c3..5116c47b9f 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
@@ -2384,6 +2385,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 af478a0756..6616970cf5 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
@@ -2339,6 +2340,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 151d2fa46e..8fd921f505 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
@@ -2445,6 +2446,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] 70+ messages in thread

* [PATCH 15/30] resolv: Move dn_skipname to its own file and into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (13 preceding siblings ...)
  2021-07-08 15:03 ` [PATCH 14/30] resolv: Move dn_comp to its own file and into libc Florian Weimer via Libc-alpha
@ 2021-07-08 15:03 ` Florian Weimer via Libc-alpha
  2021-07-15  5:01   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:03 ` [PATCH 16/30] resolv: Rename res_comp.c to res-name-checking.c and move " Florian Weimer via Libc-alpha
                   ` (15 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:03 UTC (permalink / raw)
  To: libc-alpha

And reformat it to GNU style.

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

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

diff --git a/include/resolv.h b/include/resolv.h
index 602f184643..378b36d612 100644
--- a/include/resolv.h
+++ b/include/resolv.h
@@ -44,7 +44,6 @@ libresolv_hidden_proto (_sethtent)
 libresolv_hidden_proto (_gethtent)
 libresolv_hidden_proto (_gethtbyaddr)
 libresolv_hidden_proto (_gethtbyname2)
-libresolv_hidden_proto (__dn_skipname)
 libresolv_hidden_proto (__res_hnok)
 libresolv_hidden_proto (__res_dnok)
 libresolv_hidden_proto (__putlong)
@@ -66,6 +65,8 @@ libresolv_hidden_proto (__dn_count_labels)
 
 extern __typeof (dn_expand) __libc_dn_expand;
 libc_hidden_proto (__libc_dn_expand)
+extern __typeof (dn_skipname) __libc_dn_skipname;
+libc_hidden_proto (__libc_dn_skipname)
 
 # endif /* _RESOLV_H_ && !_ISOMAC */
 #endif
diff --git a/resolv/Makefile b/resolv/Makefile
index 936518523d..e1a608f4ac 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -30,6 +30,7 @@ headers	:= resolv.h bits/types/res_state.h \
 routines := \
   dn_comp \
   dn_expand \
+  dn_skipname \
   herror \
   inet_addr \
   inet_ntop \
diff --git a/resolv/Versions b/resolv/Versions
index e36cf45cfa..634c7833a8 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -1,6 +1,7 @@
 libc {
   GLIBC_2.0 {
     __dn_comp;
+    __dn_skipname;
     __h_errno_location;
     __res_randomid;
     _res;
@@ -45,6 +46,7 @@ libc {
 %endif
     dn_comp;
     dn_expand;
+    dn_skipname;
     ns_name_compress;
     ns_name_ntop;
     ns_name_pack;
@@ -61,6 +63,7 @@ libc {
     __inet_aton_exact;
     __inet_pton_length;
     __libc_dn_expand;
+    __libc_dn_skipname;
     __ns_name_compress;
     __ns_name_ntop;
     __ns_name_pack;
@@ -82,7 +85,6 @@ libresolv {
     __b64_ntop;
     __b64_pton;
     __dn_count_labels;
-    __dn_skipname;
     __fp_nquery;
     __fp_query;
     __fp_resstat;
diff --git a/resolv/dn_skipname.c b/resolv/dn_skipname.c
new file mode 100644
index 0000000000..b9a587faff
--- /dev/null
+++ b/resolv/dn_skipname.c
@@ -0,0 +1,103 @@
+/* Skipping over a compressed DNS domain name in wire format.
+   Copyright (C) 1995-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+/*
+ * Copyright (c) 1985, 1993
+ *    The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Portions Copyright (c) 1993 by Digital Equipment Corporation.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies, and that
+ * the name of Digital Equipment Corporation not be used in advertising or
+ * publicity pertaining to distribution of the document or software without
+ * specific, written prior permission.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
+ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+/*
+ * Portions Copyright (c) 1996-1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+#include <arpa/nameser.h>
+#include <resolv.h>
+#include <shlib-compat.h>
+
+/* Skips over a compressed domain name. Returns the size or -1.  */
+int
+___dn_skipname (const unsigned char *ptr, const unsigned char *eom)
+{
+  const unsigned char *saveptr = ptr;
+  if (__ns_name_skip (&ptr, eom) < 0)
+    return -1;
+  return ptr - saveptr;
+}
+versioned_symbol (libc, ___dn_skipname, dn_skipname, GLIBC_2_34);
+versioned_symbol (libc, ___dn_skipname, __libc_dn_skipname, GLIBC_PRIVATE);
+libc_hidden_ver (___dn_skipname, __libc_dn_skipname)
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libresolv, ___dn_skipname, __dn_skipname, GLIBC_2_0);
+#endif
diff --git a/resolv/nss_dns/dns-canon.c b/resolv/nss_dns/dns-canon.c
index b7340d7b9e..c5718ce3ab 100644
--- a/resolv/nss_dns/dns-canon.c
+++ b/resolv/nss_dns/dns-canon.c
@@ -90,7 +90,7 @@ _nss_dns_getcanonname_r (const char *name, char *buffer, size_t buflen,
 	  unsigned char *endptr = ansp.ptr + r;
 
 	  /* Skip over the query.  This is the name, type, and class.  */
-	  int s = __dn_skipname (ptr, endptr);
+	  int s = __libc_dn_skipname (ptr, endptr);
 	  if (s < 0)
 	    {
 	    unavail:
@@ -108,7 +108,7 @@ _nss_dns_getcanonname_r (const char *name, char *buffer, size_t buflen,
 		 then type, class, TTL, and the length of the RDATA.
 		 We remember the name start.  */
 	      unsigned char *namestart = ptr;
-	      s = __dn_skipname (ptr, endptr);
+	      s = __libc_dn_skipname (ptr, endptr);
 	      if (s < 0)
 		goto unavail;
 
diff --git a/resolv/nss_dns/dns-network.c b/resolv/nss_dns/dns-network.c
index 2be9bfe2b3..801313caec 100644
--- a/resolv/nss_dns/dns-network.c
+++ b/resolv/nss_dns/dns-network.c
@@ -322,7 +322,7 @@ getanswer_r (const querybuf *answer, int anslen, struct netent *result,
   /* Skip the question part.  */
   while (question_count-- > 0)
     {
-      int n = __dn_skipname (cp, end_of_message);
+      int n = __libc_dn_skipname (cp, end_of_message);
       if (n < 0 || end_of_message - (cp + n) < QFIXEDSZ)
        {
          __set_h_errno (NO_RECOVERY);
diff --git a/resolv/res_comp.c b/resolv/res_comp.c
index 1930f17302..16f7e02111 100644
--- a/resolv/res_comp.c
+++ b/resolv/res_comp.c
@@ -92,19 +92,6 @@
 #include <string.h>
 #include <unistd.h>
 
-/*
- * Skip over a compressed domain name. Return the size or -1.
- */
-int
-dn_skipname(const u_char *ptr, const u_char *eom) {
-	const u_char *saveptr = ptr;
-
-	if (ns_name_skip(&ptr, eom) == -1)
-		return (-1);
-	return (ptr - saveptr);
-}
-libresolv_hidden_def (dn_skipname)
-
 /* Return true if the string consists of printable ASCII characters
    only.  */
 static bool
diff --git a/resolv/resolv.h b/resolv/resolv.h
index 78ad81577a..3056e1aafe 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -211,7 +211,6 @@ __END_DECLS
 #define b64_ntop		__b64_ntop
 #define b64_pton		__b64_pton
 #define dn_count_labels		__dn_count_labels
-#define dn_skipname		__dn_skipname
 #define fp_resstat		__fp_resstat
 #define loc_aton		__loc_aton
 #define loc_ntoa		__loc_ntoa
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 5692245dbb..3e9d6345bb 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -246,6 +246,7 @@ GLIBC_2.2.6 __dgettext F
 GLIBC_2.2.6 __divdi3 F
 GLIBC_2.2.6 __dn_comp F
 GLIBC_2.2.6 __dn_expand F
+GLIBC_2.2.6 __dn_skipname F
 GLIBC_2.2.6 __dup2 F
 GLIBC_2.2.6 __duplocale F
 GLIBC_2.2.6 __environ D 0x4
@@ -2238,6 +2239,7 @@ GLIBC_2.34 dlsym F
 GLIBC_2.34 dlvsym F
 GLIBC_2.34 dn_comp F
 GLIBC_2.34 dn_expand F
+GLIBC_2.34 dn_skipname F
 GLIBC_2.34 execveat F
 GLIBC_2.34 forkpty F
 GLIBC_2.34 login F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index 0132f6cef2..0c8d828f26 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.2.6 __b64_ntop F
 GLIBC_2.2.6 __b64_pton F
 GLIBC_2.2.6 __dn_count_labels F
-GLIBC_2.2.6 __dn_skipname F
 GLIBC_2.2.6 __fp_nquery F
 GLIBC_2.2.6 __fp_query F
 GLIBC_2.2.6 __fp_resstat F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 714de3bb0d..3745fe29eb 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
@@ -2433,6 +2434,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 61c47275c3..55030a922a 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
@@ -2526,6 +2527,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 4dca04958f..8211028280 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
@@ -2192,6 +2193,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 6caf581b98..1f97005a6e 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 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/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 e0d0789930..a7ce26c5e1 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 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
@@ -646,6 +647,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 f259a65b82..a9ada43f4f 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
@@ -2458,6 +2459,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 83c9b2e5f6..a5c1ca11a7 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
@@ -2405,6 +2406,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 62a140ecf3..8fa262b560 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
@@ -2589,6 +2590,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 24ae204834..78dbe02b3b 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
@@ -2364,6 +2365,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 162ef0bc36..125a40dc15 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 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
@@ -635,6 +636,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 2983e2a063..3c31d4f442 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
@@ -2532,6 +2533,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 ebdeb8aefa..30b5703ab6 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
@@ -2509,6 +2510,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 b564531dfe..daaf5dbdee 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
@@ -2506,6 +2507,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 30ed1ecb5a..72a0f54281 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
@@ -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/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 6288970497..cf390ad8cc 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
@@ -2495,6 +2496,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 7f379f189b..19d80bd992 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
@@ -2503,6 +2504,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 adc8f70e9f..37add15070 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
@@ -2415,6 +2416,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 e2f59dc3fa..9c16508db9 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
@@ -2548,6 +2549,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 dce5b10559..c3370392f6 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
@@ -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/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 b336af10c6..5ccb7785c1 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
@@ -2592,6 +2593,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 a072b8f50c..7cbb47385c 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
@@ -2327,6 +2328,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 96aac6c2a7..58d3c10e58 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
@@ -2629,6 +2630,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 766840ed64..52f4d0a6c7 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
@@ -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/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 2330cc492e..b2a5a4c31a 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
@@ -2394,6 +2395,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 202748823f..2040feb493 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
@@ -2557,6 +2558,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 a9266ad20a..483a29477b 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
@@ -2364,6 +2365,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 32a81a467c..d38e23b612 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
@@ -2412,6 +2413,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 884b53816e..4890dfbfe4 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
@@ -2409,6 +2410,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 2bb890e734..bc737ffc66 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
@@ -2552,6 +2553,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 5116c47b9f..a745ed2a70 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
@@ -2387,6 +2388,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 6616970cf5..5d35b3bb7a 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
@@ -2342,6 +2343,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 8fd921f505..bf06824cd4 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
@@ -2448,6 +2449,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] 70+ messages in thread

* [PATCH 16/30] resolv: Rename res_comp.c to res-name-checking.c and move into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (14 preceding siblings ...)
  2021-07-08 15:03 ` [PATCH 15/30] resolv: Move dn_skipname " Florian Weimer via Libc-alpha
@ 2021-07-08 15:03 ` Florian Weimer via Libc-alpha
  2021-07-15  5:01   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:04 ` [PATCH 17/30] resolv: Remove unnecessary res_isourserver_p call from send_dg Florian Weimer via Libc-alpha
                   ` (14 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:03 UTC (permalink / raw)
  To: libc-alpha

This reflects what the remaining functions in the file do.

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

diff --git a/include/resolv.h b/include/resolv.h
index 378b36d612..0c8db600d6 100644
--- a/include/resolv.h
+++ b/include/resolv.h
@@ -44,8 +44,6 @@ libresolv_hidden_proto (_sethtent)
 libresolv_hidden_proto (_gethtent)
 libresolv_hidden_proto (_gethtbyaddr)
 libresolv_hidden_proto (_gethtbyname2)
-libresolv_hidden_proto (__res_hnok)
-libresolv_hidden_proto (__res_dnok)
 libresolv_hidden_proto (__putlong)
 libresolv_hidden_proto (__putshort)
 libresolv_hidden_proto (__p_cdnname)
@@ -67,6 +65,10 @@ extern __typeof (dn_expand) __libc_dn_expand;
 libc_hidden_proto (__libc_dn_expand)
 extern __typeof (dn_skipname) __libc_dn_skipname;
 libc_hidden_proto (__libc_dn_skipname)
+extern __typeof (res_dnok) __libc_res_dnok;
+libc_hidden_proto (__libc_res_dnok)
+extern __typeof (res_hnok) __libc_res_hnok;
+libc_hidden_proto (__libc_res_hnok)
 
 # endif /* _RESOLV_H_ && !_ISOMAC */
 #endif
diff --git a/resolv/Makefile b/resolv/Makefile
index e1a608f4ac..7e142b9a14 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -44,6 +44,7 @@ routines := \
   ns_name_unpack \
   nsap_addr \
   res-close \
+  res-name-checking \
   res-state \
   res_hconf \
   res_init \
@@ -142,7 +143,6 @@ libresolv-routines := \
   ns_samedomain \
   ns_ttl \
   res-putget \
-  res_comp \
   res_data \
   res_debug \
   res_enable_icmp \
diff --git a/resolv/Versions b/resolv/Versions
index 634c7833a8..3e3b89a0b2 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -3,6 +3,10 @@ libc {
     __dn_comp;
     __dn_skipname;
     __h_errno_location;
+    __res_dnok;
+    __res_hnok;
+    __res_mailok;
+    __res_ownok;
     __res_randomid;
     _res;
     dn_expand;
@@ -54,6 +58,10 @@ libc {
     ns_name_skip;
     ns_name_uncompress;
     ns_name_unpack;
+    res_dnok;
+    res_hnok;
+    res_mailok;
+    res_ownok;
   }
   GLIBC_PRIVATE {
 %if !PTHREAD_IN_LIBC
@@ -64,6 +72,8 @@ libc {
     __inet_pton_length;
     __libc_dn_expand;
     __libc_dn_skipname;
+    __libc_res_dnok;
+    __libc_res_hnok;
     __ns_name_compress;
     __ns_name_ntop;
     __ns_name_pack;
@@ -107,12 +117,8 @@ libresolv {
     __putlong;
     __putshort;
     __res_close;
-    __res_dnok;
-    __res_hnok;
     __res_isourserver;
-    __res_mailok;
     __res_nameinquery;
-    __res_ownok;
     __res_queriesmatch;
     __res_send;
     __sym_ntop;
diff --git a/resolv/res_comp.c b/resolv/res-name-checking.c
similarity index 82%
rename from resolv/res_comp.c
rename to resolv/res-name-checking.c
index 16f7e02111..2c603494fa 100644
--- a/resolv/res_comp.c
+++ b/resolv/res-name-checking.c
@@ -1,4 +1,4 @@
-/* Domain name processing functions.
+/* Syntax checking for DNS domain names.
    Copyright (C) 1995-2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -82,15 +82,9 @@
  * SOFTWARE.
  */
 
-#include <sys/types.h>
-#include <sys/param.h>
-#include <netinet/in.h>
 #include <arpa/nameser.h>
-#include <ctype.h>
 #include <resolv.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
+#include <shlib-compat.h>
 
 /* Return true if the string consists of printable ASCII characters
    only.  */
@@ -148,25 +142,30 @@ binary_leading_dash (const unsigned char *dn)
    contain [0-9a-zA-Z_-] characters, and the name must not start with
    a '-'.  The latter is to avoid confusion with program options.  */
 int
-res_hnok (const char *dn)
+___res_hnok (const char *dn)
 {
   unsigned char buf[NS_MAXCDNAME];
   if (!printable_string (dn)
-      || ns_name_pton (dn, buf, sizeof (buf)) < 0
+      || __ns_name_pton (dn, buf, sizeof (buf)) < 0
       || binary_leading_dash (buf))
     return 0;
   return binary_hnok (buf);
 }
-libresolv_hidden_def (res_hnok)
+versioned_symbol (libc, ___res_hnok, res_hnok, GLIBC_2_34);
+versioned_symbol (libc, ___res_hnok, __libc_res_hnok, GLIBC_PRIVATE);
+libc_hidden_ver (___res_hnok, __libc_res_hnok)
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libresolv, ___res_hnok, __res_hnok, GLIBC_2_0);
+#endif
 
 /* Hostname-like (A, MX, WKS) owners can have "*" as their first label
    but must otherwise be as a host name.  */
 int
-res_ownok (const char *dn)
+___res_ownok (const char *dn)
 {
   unsigned char buf[NS_MAXCDNAME];
   if (!printable_string (dn)
-      || ns_name_pton (dn, buf, sizeof (buf)) < 0
+      || __ns_name_pton (dn, buf, sizeof (buf)) < 0
       || binary_leading_dash (buf))
     return 0;
   if (buf[0] == 1 && buf [1] == '*')
@@ -175,15 +174,19 @@ res_ownok (const char *dn)
   else
     return binary_hnok (buf);
 }
+versioned_symbol (libc, ___res_ownok, res_ownok, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libresolv, ___res_ownok, __res_ownok, GLIBC_2_0);
+#endif
 
 /* SOA RNAMEs and RP RNAMEs can have any byte in their first label,
    but the rest of the name has to look like a host name.  */
 int
-res_mailok (const char *dn)
+___res_mailok (const char *dn)
 {
   unsigned char buf[NS_MAXCDNAME];
   if (!printable_string (dn)
-      || ns_name_pton (dn, buf, sizeof (buf)) < 0)
+      || __ns_name_pton (dn, buf, sizeof (buf)) < 0)
     return 0;
   unsigned char label_length = buf[0];
   /* "." is a valid missing representation */
@@ -196,13 +199,22 @@ res_mailok (const char *dn)
     return 0;
   return binary_hnok (tail);
 }
+versioned_symbol (libc, ___res_mailok, res_mailok, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libresolv, ___res_mailok, __res_mailok, GLIBC_2_0);
+#endif
 
 /* Return 1 if DN is a syntactically valid domain name.  Empty names
    are accepted.  */
 int
-res_dnok (const char *dn)
+___res_dnok (const char *dn)
 {
   unsigned char buf[NS_MAXCDNAME];
-  return printable_string (dn) && ns_name_pton (dn, buf, sizeof (buf)) >= 0;
+  return printable_string (dn) && __ns_name_pton (dn, buf, sizeof (buf)) >= 0;
 }
-libresolv_hidden_def (res_dnok)
+versioned_symbol (libc, ___res_dnok, res_dnok, GLIBC_2_34);
+versioned_symbol (libc, ___res_dnok, __libc_res_dnok, GLIBC_PRIVATE);
+libc_hidden_ver (___res_dnok, __libc_res_dnok)
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libresolv, ___res_dnok, __res_dnok, GLIBC_2_0);
+#endif
diff --git a/resolv/resolv.h b/resolv/resolv.h
index 3056e1aafe..d4e401b580 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -225,10 +225,7 @@ __END_DECLS
 #define p_rcode			__p_rcode
 #define putlong			__putlong
 #define putshort		__putshort
-#define res_dnok		__res_dnok
-#define res_hnok		__res_hnok
 #define res_hostalias		__res_hostalias
-#define res_mailok		__res_mailok
 #define res_nameinquery		__res_nameinquery
 #define res_nclose		__res_nclose
 #define res_ninit		__res_ninit
@@ -237,7 +234,6 @@ __END_DECLS
 #define res_nquerydomain	__res_nquerydomain
 #define res_nsearch		__res_nsearch
 #define res_nsend		__res_nsend
-#define res_ownok		__res_ownok
 #define res_queriesmatch	__res_queriesmatch
 #define res_randomid		__res_randomid
 #define sym_ntop		__sym_ntop
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 3e9d6345bb..0c2b5983a8 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -401,9 +401,13 @@ GLIBC_2.2.6 __rawmemchr F
 GLIBC_2.2.6 __rcmd_errstr D 0x4
 GLIBC_2.2.6 __read F
 GLIBC_2.2.6 __realloc_hook D 0x4
+GLIBC_2.2.6 __res_dnok F
+GLIBC_2.2.6 __res_hnok F
 GLIBC_2.2.6 __res_init F
+GLIBC_2.2.6 __res_mailok F
 GLIBC_2.2.6 __res_nclose F
 GLIBC_2.2.6 __res_ninit F
+GLIBC_2.2.6 __res_ownok F
 GLIBC_2.2.6 __res_randomid F
 GLIBC_2.2.6 __res_state F
 GLIBC_2.2.6 __rpc_thread_createerr F
@@ -2254,6 +2258,10 @@ GLIBC_2.34 ns_name_skip F
 GLIBC_2.34 ns_name_uncompress F
 GLIBC_2.34 ns_name_unpack F
 GLIBC_2.34 openpty F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 shm_open F
 GLIBC_2.34 shm_unlink F
 GLIBC_2.34 timespec_getres F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index 0c8d828f26..8166e6af58 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -22,11 +22,8 @@ GLIBC_2.2.6 __p_type_syms D 0x228
 GLIBC_2.2.6 __putlong F
 GLIBC_2.2.6 __putshort F
 GLIBC_2.2.6 __res_close F
-GLIBC_2.2.6 __res_dnok F
-GLIBC_2.2.6 __res_hnok F
 GLIBC_2.2.6 __res_hostalias F
 GLIBC_2.2.6 __res_isourserver F
-GLIBC_2.2.6 __res_mailok F
 GLIBC_2.2.6 __res_mkquery F
 GLIBC_2.2.6 __res_nameinquery F
 GLIBC_2.2.6 __res_nmkquery F
@@ -34,7 +31,6 @@ GLIBC_2.2.6 __res_nquery F
 GLIBC_2.2.6 __res_nquerydomain F
 GLIBC_2.2.6 __res_nsearch F
 GLIBC_2.2.6 __res_nsend F
-GLIBC_2.2.6 __res_ownok F
 GLIBC_2.2.6 __res_queriesmatch F
 GLIBC_2.2.6 __res_query F
 GLIBC_2.2.6 __res_querydomain F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 3745fe29eb..5e5318d5bf 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
@@ -2556,6 +2560,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 55030a922a..f0c4713a07 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
@@ -2649,6 +2653,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 8211028280..4afdad0df4 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
@@ -2315,6 +2319,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 1f97005a6e..b791356b77 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/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/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 a7ce26c5e1..76139809f0 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -436,6 +436,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
@@ -830,9 +834,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 a9ada43f4f..6881141271 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
@@ -2581,6 +2585,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 a5c1ca11a7..24f2fc27e1 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
@@ -2528,6 +2532,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 8fa262b560..fd14a8f78c 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
@@ -2712,6 +2716,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 78dbe02b3b..fa5119af99 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
@@ -2487,6 +2491,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 125a40dc15..c823a34421 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -440,6 +440,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
@@ -819,9 +823,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 3c31d4f442..be9c2c184a 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
@@ -2655,6 +2659,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 30b5703ab6..d7d28be015 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
@@ -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/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 daaf5dbdee..11eff3fab2 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
@@ -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/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 72a0f54281..eda89ef343 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
@@ -2620,6 +2624,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/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 cf390ad8cc..cbf9c259d5 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
@@ -2618,6 +2622,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 19d80bd992..43d62943b0 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
@@ -2626,6 +2630,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 37add15070..56ac25092d 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
@@ -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/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 9c16508db9..53fc8fecec 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
@@ -2671,6 +2675,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 c3370392f6..4350d38067 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
@@ -2682,6 +2686,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/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 5ccb7785c1..572a55e0c0 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
@@ -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/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 7cbb47385c..1b235baf00 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
@@ -2450,6 +2454,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 58d3c10e58..230c1af181 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
@@ -2752,6 +2756,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 52f4d0a6c7..72c91e4932 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
@@ -2317,6 +2321,10 @@ GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.34 pthread_testcancel F
 GLIBC_2.34 pthread_timedjoin_np F
 GLIBC_2.34 pthread_tryjoin_np F
+GLIBC_2.34 res_dnok F
+GLIBC_2.34 res_hnok F
+GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_ownok F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/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 b2a5a4c31a..04db64bbe2 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
@@ -2517,6 +2521,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 2040feb493..9430d6f772 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
@@ -2680,6 +2684,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 483a29477b..3ea1627bae 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
@@ -2487,6 +2491,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 d38e23b612..11cf290e0a 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
@@ -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/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 4890dfbfe4..a9ea1c1793 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
@@ -2532,6 +2536,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 bc737ffc66..b98e9cb77c 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
@@ -2675,6 +2679,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 a745ed2a70..f94e1b4b99 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
@@ -2510,6 +2514,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 5d35b3bb7a..286b66f2eb 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
@@ -2465,6 +2469,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 bf06824cd4..a82a766ca6 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
@@ -2571,6 +2575,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] 70+ messages in thread

* [PATCH 17/30] resolv: Remove unnecessary res_isourserver_p call from send_dg
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (15 preceding siblings ...)
  2021-07-08 15:03 ` [PATCH 16/30] resolv: Rename res_comp.c to res-name-checking.c and move " Florian Weimer via Libc-alpha
@ 2021-07-08 15:04 ` Florian Weimer via Libc-alpha
  2021-07-15  5:01   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:04 ` [PATCH 18/30] resolv: Move __res_get_nsaddr to its own file and into libc Florian Weimer via Libc-alpha
                   ` (13 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:04 UTC (permalink / raw)
  To: libc-alpha

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

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



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

* [PATCH 18/30] resolv: Move __res_get_nsaddr to its own file and into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (16 preceding siblings ...)
  2021-07-08 15:04 ` [PATCH 17/30] resolv: Remove unnecessary res_isourserver_p call from send_dg Florian Weimer via Libc-alpha
@ 2021-07-08 15:04 ` Florian Weimer via Libc-alpha
  2021-07-15  5:01   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:05 ` [PATCH 19/30] resolv: Move res_isourserver to its own file and reformat to GNU style Florian Weimer via Libc-alpha
                   ` (12 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:04 UTC (permalink / raw)
  To: libc-alpha

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

diff --git a/resolv/Makefile b/resolv/Makefile
index 7e142b9a14..6eed73de87 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -46,6 +46,7 @@ routines := \
   res-close \
   res-name-checking \
   res-state \
+  res_get_nsaddr \
   res_hconf \
   res_init \
   res_libc \
diff --git a/resolv/Versions b/resolv/Versions
index 3e3b89a0b2..fc14cdb701 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -81,6 +81,7 @@ libc {
     __ns_name_skip;
     __ns_name_uncompress;
     __ns_name_unpack;
+    __res_get_nsaddr;
     __res_iclose;
     __resolv_context_get;
     __resolv_context_get_override;
diff --git a/resolv/res_get_nsaddr.c b/resolv/res_get_nsaddr.c
new file mode 100644
index 0000000000..593597bdd7
--- /dev/null
+++ b/resolv/res_get_nsaddr.c
@@ -0,0 +1,39 @@
+/* Name server address at specified index in res_state.
+   Copyright (C) 2015-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#include <assert.h>
+#include <resolv.h>
+#include <resolv-internal.h>
+
+struct sockaddr *
+__res_get_nsaddr (res_state statp, unsigned int n)
+{
+  assert (n < statp->nscount);
+
+  if (statp->nsaddr_list[n].sin_family == 0
+      && statp->_u._ext.nsaddrs[n] != NULL)
+    /* statp->_u._ext.nsaddrs[n] holds an address that is larger than
+       struct sockaddr, and user code did not update
+       statp->nsaddr_list[n].  */
+    return (struct sockaddr *) statp->_u._ext.nsaddrs[n];
+  else
+    /* User code updated statp->nsaddr_list[n], or statp->nsaddr_list[n]
+       has the same content as statp->_u._ext.nsaddrs[n].  */
+    return (struct sockaddr *) (void *) &statp->nsaddr_list[n];
+}
+libc_hidden_def (__res_get_nsaddr)
diff --git a/resolv/res_send.c b/resolv/res_send.c
index b6139c7d62..78f564ee85 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -180,7 +180,6 @@ evNowTime(struct timespec *res) {
 
 /* Forward. */
 
-static struct sockaddr *get_nsaddr (res_state, unsigned int);
 static int		send_vc(res_state, const u_char *, int,
 				const u_char *, int,
 				u_char **, int *, int *, int, u_char **,
@@ -215,7 +214,7 @@ res_ourserver_p(const res_state statp, const struct sockaddr_in6 *inp)
 
 	    for (ns = 0;  ns < statp->nscount;  ns++) {
 		const struct sockaddr_in *srv =
-		    (struct sockaddr_in *) get_nsaddr (statp, ns);
+		    (struct sockaddr_in *) __res_get_nsaddr (statp, ns);
 
 		if ((srv->sin_family == AF_INET) &&
 		    (srv->sin_port == port) &&
@@ -226,7 +225,7 @@ res_ourserver_p(const res_state statp, const struct sockaddr_in6 *inp)
 	} else if (inp->sin6_family == AF_INET6) {
 	    for (ns = 0;  ns < statp->nscount;  ns++) {
 		const struct sockaddr_in6 *srv
-		  = (struct sockaddr_in6 *) get_nsaddr (statp, ns);
+		  = (struct sockaddr_in6 *) __res_get_nsaddr (statp, ns);
 		if ((srv->sin6_family == AF_INET6) &&
 		    (srv->sin6_port == inp->sin6_port) &&
 		    !(memcmp(&srv->sin6_addr, &in6addr_any,
@@ -608,22 +607,6 @@ res_send (const unsigned char *buf, int buflen, unsigned char *ans, int anssiz)
 
 /* Private */
 
-static struct sockaddr *
-get_nsaddr (res_state statp, unsigned int n)
-{
-  assert (n < statp->nscount);
-
-  if (statp->nsaddr_list[n].sin_family == 0 && EXT(statp).nsaddrs[n] != NULL)
-    /* EXT(statp).nsaddrs[n] holds an address that is larger than
-       struct sockaddr, and user code did not update
-       statp->nsaddr_list[n].  */
-    return (struct sockaddr *) EXT(statp).nsaddrs[n];
-  else
-    /* User code updated statp->nsaddr_list[n], or statp->nsaddr_list[n]
-       has the same content as EXT(statp).nsaddrs[n].  */
-    return (struct sockaddr *) (void *) &statp->nsaddr_list[n];
-}
-
 /* Close the resolver structure, assign zero to *RESPLEN2 if RESPLEN2
    is not NULL, and return zero.  */
 static int
@@ -717,7 +700,7 @@ send_vc(res_state statp,
 	const HEADER *hp = (HEADER *) buf;
 	const HEADER *hp2 = (HEADER *) buf2;
 	HEADER *anhp = (HEADER *) *ansp;
-	struct sockaddr *nsap = get_nsaddr (statp, ns);
+	struct sockaddr *nsap = __res_get_nsaddr (statp, ns);
 	int truncating, connreset, n;
 	/* On some architectures compiler might emit a warning indicating
 	   'resplen' may be used uninitialized.  However if buf2 == NULL
@@ -948,7 +931,7 @@ static int
 reopen (res_state statp, int *terrno, int ns)
 {
 	if (EXT(statp).nssocks[ns] == -1) {
-		struct sockaddr *nsap = get_nsaddr (statp, ns);
+		struct sockaddr *nsap = __res_get_nsaddr (statp, ns);
 		socklen_t slen;
 
 		/* only try IPv6 if IPv6 NS and if not failed before */
diff --git a/resolv/resolv-internal.h b/resolv/resolv-internal.h
index e1e8aa3ef3..c18b1d0472 100644
--- a/resolv/resolv-internal.h
+++ b/resolv/resolv-internal.h
@@ -103,4 +103,10 @@ void __res_thread_freeres (void) attribute_hidden;
    success, -1 on failure.  */
 int __res_enable_icmp (int family, int fd) attribute_hidden;
 
+
+/* Returns the name server address for the indicated index.  */
+struct sockaddr *__res_get_nsaddr (res_state statp, unsigned int n);
+libc_hidden_proto (__res_get_nsaddr)
+
+
 #endif  /* _RESOLV_INTERNAL_H */
-- 
2.31.1



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

* [PATCH 19/30] resolv: Move res_isourserver to its own file and reformat to GNU style
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (17 preceding siblings ...)
  2021-07-08 15:04 ` [PATCH 18/30] resolv: Move __res_get_nsaddr to its own file and into libc Florian Weimer via Libc-alpha
@ 2021-07-08 15:05 ` Florian Weimer via Libc-alpha
  2021-07-15  5:01   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:05 ` [PATCH 20/30] resolv: Move ns_makecanon into its own file, and into libc Florian Weimer via Libc-alpha
                   ` (11 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:05 UTC (permalink / raw)
  To: libc-alpha

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

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



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

* [PATCH 20/30] resolv: Move ns_makecanon into its own file, and into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (18 preceding siblings ...)
  2021-07-08 15:05 ` [PATCH 19/30] resolv: Move res_isourserver to its own file and reformat to GNU style Florian Weimer via Libc-alpha
@ 2021-07-08 15:05 ` Florian Weimer via Libc-alpha
  2021-07-15  5:01   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:05 ` [PATCH 21/30] resolv: Move ns_samename " Florian Weimer via Libc-alpha
                   ` (10 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:05 UTC (permalink / raw)
  To: libc-alpha

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

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

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



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

* [PATCH 21/30] resolv: Move ns_samename into its own file, and into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (19 preceding siblings ...)
  2021-07-08 15:05 ` [PATCH 20/30] resolv: Move ns_makecanon into its own file, and into libc Florian Weimer via Libc-alpha
@ 2021-07-08 15:05 ` Florian Weimer via Libc-alpha
  2021-07-15  5:01   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:05 ` [PATCH 22/30] resolv: Move res_nameinquery to its own file " Florian Weimer via Libc-alpha
                   ` (9 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:05 UTC (permalink / raw)
  To: libc-alpha

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

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

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



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

* [PATCH 22/30] resolv: Move res_nameinquery to its own file and into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (20 preceding siblings ...)
  2021-07-08 15:05 ` [PATCH 21/30] resolv: Move ns_samename " Florian Weimer via Libc-alpha
@ 2021-07-08 15:05 ` Florian Weimer via Libc-alpha
  2021-07-15  5:01   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:06 ` [PATCH 23/30] resolv: Move res_queriesmatch " Florian Weimer via Libc-alpha
                   ` (8 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:05 UTC (permalink / raw)
  To: libc-alpha

And reformat to GNU style.

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

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



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

* [PATCH 23/30] resolv: Move res_queriesmatch to its own file and into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (21 preceding siblings ...)
  2021-07-08 15:05 ` [PATCH 22/30] resolv: Move res_nameinquery to its own file " Florian Weimer via Libc-alpha
@ 2021-07-08 15:06 ` Florian Weimer via Libc-alpha
  2021-07-15  5:02   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:06 ` [PATCH 24/30] resolv: Move __res_context_hostalias into " Florian Weimer via Libc-alpha
                   ` (7 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:06 UTC (permalink / raw)
  To: libc-alpha

And reformat it to GNU style.

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

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



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

* [PATCH 24/30] resolv: Move __res_context_hostalias into its own file and into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (22 preceding siblings ...)
  2021-07-08 15:06 ` [PATCH 23/30] resolv: Move res_queriesmatch " Florian Weimer via Libc-alpha
@ 2021-07-08 15:06 ` Florian Weimer via Libc-alpha
  2021-07-15  5:02   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:06 ` [PATCH 25/30] resolv: Move res_hostalias into its own file, along with hostalias Florian Weimer via Libc-alpha
                   ` (6 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:06 UTC (permalink / raw)
  To: libc-alpha

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

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



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

* [PATCH 25/30] resolv: Move res_hostalias into its own file, along with hostalias
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (23 preceding siblings ...)
  2021-07-08 15:06 ` [PATCH 24/30] resolv: Move __res_context_hostalias into " Florian Weimer via Libc-alpha
@ 2021-07-08 15:06 ` Florian Weimer via Libc-alpha
  2021-07-15  5:02   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:06 ` [PATCH 26/30] resolv: Move res_send, res_nsend into libc Florian Weimer via Libc-alpha
                   ` (5 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:06 UTC (permalink / raw)
  To: libc-alpha

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

diff --git a/resolv/Makefile b/resolv/Makefile
index bfcca70f26..8c28afe5c4 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -152,6 +152,7 @@ libresolv-routines := \
   res_data \
   res_debug \
   res_enable_icmp \
+  res_hostalias \
   res_isourserver \
   res_mkquery \
   res_query \
diff --git a/resolv/res_hostalias.c b/resolv/res_hostalias.c
new file mode 100644
index 0000000000..d364725677
--- /dev/null
+++ b/resolv/res_hostalias.c
@@ -0,0 +1,51 @@
+/* HOSTALIASES-based name resolution.  Public legacy functions.
+   Copyright (C) 2017-2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#include <netdb.h>
+#include <resolv-internal.h>
+#include <resolv_context.h>
+
+/* Common part of res_hostalias and hostalias.  */
+static const char *
+context_hostalias_common (struct resolv_context *ctx,
+                          const char *name, char *dst, size_t siz)
+{
+  if (ctx == NULL)
+    {
+      RES_SET_H_ERRNO (&_res, NETDB_INTERNAL);
+      return NULL;
+    }
+  const char *result = __res_context_hostalias (ctx, name, dst, siz);
+  __resolv_context_put (ctx);
+  return result;
+}
+
+const char *
+res_hostalias (res_state statp, const char *name, char *dst, size_t siz)
+{
+  return context_hostalias_common
+    (__resolv_context_get_override (statp), name, dst, siz);
+}
+
+const char *
+hostalias (const char *name)
+{
+  static char abuf[MAXDNAME];
+  return context_hostalias_common
+    (__resolv_context_get (), name, abuf, sizeof (abuf));
+}
diff --git a/resolv/res_query.c b/resolv/res_query.c
index 45c591ae27..2457193d31 100644
--- a/resolv/res_query.c
+++ b/resolv/res_query.c
@@ -635,36 +635,6 @@ res_querydomain (const char *name, const char *domain, int class, int type,
     (__resolv_context_get (), name, domain, class, type, answer, anslen);
 }
 
-/* Common part of res_hostalias and hostalias.  */
-static const char *
-context_hostalias_common (struct resolv_context *ctx,
-			  const char *name, char *dst, size_t siz)
-{
-  if (ctx == NULL)
-    {
-      RES_SET_H_ERRNO (&_res, NETDB_INTERNAL);
-      return NULL;
-    }
-  const char *result = __res_context_hostalias (ctx, name, dst, siz);
-  __resolv_context_put (ctx);
-  return result;
-}
-
-const char *
-res_hostalias (res_state statp, const char *name, char *dst, size_t siz)
-{
-  return context_hostalias_common
-    (__resolv_context_get_override (statp), name, dst, siz);
-}
-
-const char *
-hostalias (const char *name)
-{
-  static char abuf[MAXDNAME];
-  return context_hostalias_common
-    (__resolv_context_get (), name, abuf, sizeof (abuf));
-}
-
 #if SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_2)
 # undef res_query
 # undef res_querydomain
-- 
2.31.1



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

* [PATCH 26/30] resolv: Move res_send, res_nsend into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (24 preceding siblings ...)
  2021-07-08 15:06 ` [PATCH 25/30] resolv: Move res_hostalias into its own file, along with hostalias Florian Weimer via Libc-alpha
@ 2021-07-08 15:06 ` Florian Weimer via Libc-alpha
  2021-07-15  5:02   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:06 ` [PATCH 27/30] resolv: Move res_mkquery, res_nmkquery " Florian Weimer via Libc-alpha
                   ` (4 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:06 UTC (permalink / raw)
  To: libc-alpha

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

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

diff --git a/resolv/Makefile b/resolv/Makefile
index 8c28afe5c4..e9689f7e2c 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -49,6 +49,7 @@ routines := \
   res-name-checking \
   res-state \
   res_context_hostalias \
+  res_enable_icmp \
   res_get_nsaddr \
   res_hconf \
   res_init \
@@ -56,6 +57,7 @@ routines := \
   res_nameinquery \
   res_queriesmatch \
   res_randomid \
+  res_send \
   resolv_conf \
   resolv_context \
   # routines
@@ -151,12 +153,10 @@ libresolv-routines := \
   res-putget \
   res_data \
   res_debug \
-  res_enable_icmp \
   res_hostalias \
   res_isourserver \
   res_mkquery \
   res_query \
-  res_send \
   resolv-deprecated \
   # libresolv-routines
 
diff --git a/resolv/Versions b/resolv/Versions
index b084660dde..21b7af73c5 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -6,8 +6,10 @@ libc {
     __res_dnok;
     __res_hnok;
     __res_mailok;
+    __res_nsend;
     __res_ownok;
     __res_randomid;
+    __res_send;
     _res;
     dn_expand;
     h_errlist;
@@ -21,6 +23,7 @@ libc {
     __res_init;
     __res_nclose;
     __res_ninit;
+    __res_nsend;
     __res_state;
     _res_hconf;
   }
@@ -61,7 +64,9 @@ libc {
     res_dnok;
     res_hnok;
     res_mailok;
+    res_nsend;
     res_ownok;
+    res_send;
   }
   GLIBC_PRIVATE {
 %if !PTHREAD_IN_LIBC
@@ -86,6 +91,8 @@ libc {
     __ns_name_uncompress;
     __ns_name_unpack;
     __res_context_hostalias;
+    __res_context_send;
+    __res_context_send;
     __res_get_nsaddr;
     __res_iclose;
     __resolv_context_get;
@@ -126,7 +133,6 @@ libresolv {
     __res_isourserver;
     __res_nameinquery;
     __res_queriesmatch;
-    __res_send;
     __sym_ntop;
     __sym_ntos;
     __sym_ston;
@@ -159,7 +165,6 @@ libresolv {
     __res_nquery;
     __res_nquerydomain;
     __res_nsearch;
-    __res_nsend;
     __res_query;
     __res_querydomain;
     __res_search;
diff --git a/resolv/res_enable_icmp.c b/resolv/res_enable_icmp.c
index 9aa61823df..3bfe6e4f4c 100644
--- a/resolv/res_enable_icmp.c
+++ b/resolv/res_enable_icmp.c
@@ -27,9 +27,9 @@ __res_enable_icmp (int family, int fd)
   switch (family)
     {
     case AF_INET:
-      return setsockopt (fd, SOL_IP, IP_RECVERR, &one, sizeof (one));
+      return __setsockopt (fd, SOL_IP, IP_RECVERR, &one, sizeof (one));
     case AF_INET6:
-      return setsockopt (fd, SOL_IPV6, IPV6_RECVERR, &one, sizeof (one));
+      return __setsockopt (fd, SOL_IPV6, IPV6_RECVERR, &one, sizeof (one));
     default:
       __set_errno (EAFNOSUPPORT);
       return -1;
diff --git a/resolv/res_send.c b/resolv/res_send.c
index b502ef5132..9f86f5fe47 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -425,6 +425,7 @@ __res_context_send (struct resolv_context *ctx,
 		__set_errno (terrno);
 	return (-1);
 }
+libc_hidden_def (__res_context_send)
 
 /* Common part of res_nsend and res_send.  */
 static int
@@ -444,19 +445,28 @@ context_send_common (struct resolv_context *ctx,
 }
 
 int
-res_nsend (res_state statp, const unsigned char *buf, int buflen,
-	   unsigned char *ans, int anssiz)
+___res_nsend (res_state statp, const unsigned char *buf, int buflen,
+	      unsigned char *ans, int anssiz)
 {
   return context_send_common
     (__resolv_context_get_override (statp), buf, buflen, ans, anssiz);
 }
+versioned_symbol (libc, ___res_nsend, res_nsend, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_nsend, __res_nsend, GLIBC_2_2);
+#endif
 
 int
-res_send (const unsigned char *buf, int buflen, unsigned char *ans, int anssiz)
+___res_send (const unsigned char *buf, int buflen, unsigned char *ans,
+	     int anssiz)
 {
   return context_send_common
     (__resolv_context_get (), buf, buflen, ans, anssiz);
 }
+versioned_symbol (libc, ___res_send, res_send, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libresolv, ___res_send, __res_send, GLIBC_2_0);
+#endif
 
 /* Private */
 
@@ -582,9 +592,9 @@ send_vc(res_state statp,
 		struct sockaddr_in6 peer;
 		socklen_t size = sizeof peer;
 
-		if (getpeername(statp->_vcsock,
-				(struct sockaddr *)&peer, &size) < 0 ||
-		    !sock_eq(&peer, (struct sockaddr_in6 *) nsap)) {
+		if (__getpeername (statp->_vcsock,
+				   (struct sockaddr *) &peer, &size) < 0
+		    || !sock_eq (&peer, (struct sockaddr_in6 *) nsap)) {
 			__res_iclose(statp, false);
 			statp->_flags &= ~RES_F_VC;
 		}
@@ -594,7 +604,7 @@ send_vc(res_state statp,
 		if (statp->_vcsock >= 0)
 		  __res_iclose(statp, false);
 
-		statp->_vcsock = socket
+		statp->_vcsock = __socket
 		  (nsap->sa_family, SOCK_STREAM | SOCK_CLOEXEC, 0);
 		if (statp->_vcsock < 0) {
 			*terrno = errno;
@@ -603,10 +613,10 @@ send_vc(res_state statp,
 			return (-1);
 		}
 		__set_errno (0);
-		if (connect(statp->_vcsock, nsap,
-			    nsap->sa_family == AF_INET
-			    ? sizeof (struct sockaddr_in)
-			    : sizeof (struct sockaddr_in6)) < 0) {
+		if (__connect (statp->_vcsock, nsap,
+			       nsap->sa_family == AF_INET
+			       ? sizeof (struct sockaddr_in)
+			       : sizeof (struct sockaddr_in6)) < 0) {
 			*terrno = errno;
 			return close_and_return_error (statp, resplen2);
 		}
@@ -628,7 +638,8 @@ send_vc(res_state statp,
 		niov = 4;
 		explen += INT16SZ + buflen2;
 	}
-	if (TEMP_FAILURE_RETRY (writev(statp->_vcsock, iov, niov)) != explen) {
+	if (TEMP_FAILURE_RETRY (__writev (statp->_vcsock, iov, niov))
+	    != explen) {
 		*terrno = errno;
 		return close_and_return_error (statp, resplen2);
 	}
@@ -789,14 +800,14 @@ reopen (res_state statp, int *terrno, int ns)
 
 		/* only try IPv6 if IPv6 NS and if not failed before */
 		if (nsap->sa_family == AF_INET6 && !statp->ipv6_unavail) {
-			EXT(statp).nssocks[ns] = socket
+			EXT (statp).nssocks[ns] = __socket
 			  (PF_INET6,
 			   SOCK_DGRAM | SOCK_NONBLOCK | SOCK_CLOEXEC, 0);
 			if (EXT(statp).nssocks[ns] < 0)
 			    statp->ipv6_unavail = errno == EAFNOSUPPORT;
 			slen = sizeof (struct sockaddr_in6);
 		} else if (nsap->sa_family == AF_INET) {
-			EXT(statp).nssocks[ns] = socket
+			EXT (statp).nssocks[ns] = __socket
 			  (PF_INET,
 			   SOCK_DGRAM | SOCK_NONBLOCK | SOCK_CLOEXEC, 0);
 			slen = sizeof (struct sockaddr_in);
@@ -837,7 +848,7 @@ reopen (res_state statp, int *terrno, int ns)
 		   the call to connect with slen.  */
 		DIAG_PUSH_NEEDS_COMMENT;
 		DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
-		if (connect(EXT(statp).nssocks[ns], nsap, slen) < 0) {
+		if (__connect (EXT (statp).nssocks[ns], nsap, slen) < 0) {
 		DIAG_POP_NEEDS_COMMENT;
 			__res_iclose(statp, false);
 			return (0);
@@ -1090,9 +1101,9 @@ send_dg(res_state statp,
 		  try_send:
 #endif
 		    if (nwritten != 0)
-		      sr = send (pfd[0].fd, buf2, buflen2, MSG_NOSIGNAL);
+		      sr = __send (pfd[0].fd, buf2, buflen2, MSG_NOSIGNAL);
 		    else
-		      sr = send (pfd[0].fd, buf, buflen, MSG_NOSIGNAL);
+		      sr = __send (pfd[0].fd, buf, buflen, MSG_NOSIGNAL);
 
 		    if (sr != (nwritten != 0 ? buflen2 : buflen)) {
 		      if (errno == EINTR || errno == EAGAIN)
@@ -1133,7 +1144,7 @@ send_dg(res_state statp,
 		    && (thisansp != NULL && thisansp != ansp)
 #ifdef FIONREAD
 		    /* Is the size too small?  */
-		    && (ioctl (pfd[0].fd, FIONREAD, thisresplenp) < 0
+		    && (__ioctl (pfd[0].fd, FIONREAD, thisresplenp) < 0
 			|| *thisanssizp < *thisresplenp)
 #endif
                     ) {
@@ -1160,9 +1171,10 @@ send_dg(res_state statp,
 		HEADER *anhp = (HEADER *) *thisansp;
 		socklen_t fromlen = sizeof(struct sockaddr_in6);
 		assert (sizeof(from) <= fromlen);
-		*thisresplenp = recvfrom(pfd[0].fd, (char*)*thisansp,
-					 *thisanssizp, 0,
-					(struct sockaddr *)&from, &fromlen);
+		*thisresplenp = __recvfrom (pfd[0].fd, (char *) *thisansp,
+					    *thisanssizp, 0,
+					    (struct sockaddr *) &from,
+					    &fromlen);
 		if (__glibc_unlikely (*thisresplenp <= 0))       {
 			if (errno == EINTR || errno == EAGAIN) {
 				need_recompute = 1;
diff --git a/resolv/resolv-internal.h b/resolv/resolv-internal.h
index 7d37817232..1e21c38cc7 100644
--- a/resolv/resolv-internal.h
+++ b/resolv/resolv-internal.h
@@ -74,7 +74,8 @@ libresolv_hidden_proto (__res_context_query)
 int __res_context_send (struct resolv_context *, const unsigned char *, int,
                         const unsigned char *, int, unsigned char *,
                         int, unsigned char **, unsigned char **,
-                        int *, int *, int *) attribute_hidden;
+                        int *, int *, int *);
+libc_hidden_proto (__res_context_send)
 
 /* Internal function similar to res_hostalias.  */
 const char *__res_context_hostalias (struct resolv_context *,
diff --git a/resolv/resolv.h b/resolv/resolv.h
index d4e401b580..66944008fd 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -172,7 +172,6 @@ __END_DECLS
 #define res_query		__res_query
 #define res_querydomain		__res_querydomain
 #define res_search		__res_search
-#define res_send		__res_send
 
 #ifdef _LIBC
 # define __RESOLV_DEPRECATED
@@ -233,7 +232,6 @@ __END_DECLS
 #define res_nquery		__res_nquery
 #define res_nquerydomain	__res_nquerydomain
 #define res_nsearch		__res_nsearch
-#define res_nsend		__res_nsend
 #define res_queriesmatch	__res_queriesmatch
 #define res_randomid		__res_randomid
 #define sym_ntop		__sym_ntop
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 0c2b5983a8..956c92182b 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -407,8 +407,10 @@ GLIBC_2.2.6 __res_init F
 GLIBC_2.2.6 __res_mailok F
 GLIBC_2.2.6 __res_nclose F
 GLIBC_2.2.6 __res_ninit F
+GLIBC_2.2.6 __res_nsend F
 GLIBC_2.2.6 __res_ownok F
 GLIBC_2.2.6 __res_randomid F
+GLIBC_2.2.6 __res_send F
 GLIBC_2.2.6 __res_state F
 GLIBC_2.2.6 __rpc_thread_createerr F
 GLIBC_2.2.6 __rpc_thread_svc_fdset F
@@ -2261,7 +2263,9 @@ GLIBC_2.34 openpty F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 shm_open F
 GLIBC_2.34 shm_unlink F
 GLIBC_2.34 timespec_getres F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index 8166e6af58..2e772ae4e1 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -30,12 +30,10 @@ GLIBC_2.2.6 __res_nmkquery F
 GLIBC_2.2.6 __res_nquery F
 GLIBC_2.2.6 __res_nquerydomain F
 GLIBC_2.2.6 __res_nsearch F
-GLIBC_2.2.6 __res_nsend F
 GLIBC_2.2.6 __res_queriesmatch F
 GLIBC_2.2.6 __res_query F
 GLIBC_2.2.6 __res_querydomain F
 GLIBC_2.2.6 __res_search F
-GLIBC_2.2.6 __res_send F
 GLIBC_2.2.6 __sym_ntop F
 GLIBC_2.2.6 __sym_ntos F
 GLIBC_2.2.6 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 5e5318d5bf..21e768c926 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
@@ -2563,7 +2565,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 f0c4713a07..b0a70022dd 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
@@ -2656,7 +2658,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 4afdad0df4..66620e2f33 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
@@ -2322,7 +2324,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 b791356b77..571dc4fcc0 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/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/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 76139809f0..fdeb5940bb 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -439,7 +439,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
@@ -840,8 +842,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 6881141271..4c0e79592e 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
@@ -2588,7 +2590,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 24f2fc27e1..813fb7cdda 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
@@ -2535,7 +2537,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 fd14a8f78c..f09c7af651 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
@@ -2719,7 +2721,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 fa5119af99..8fa8b1094e 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
@@ -2494,7 +2496,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 c823a34421..dd5d58b386 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -443,7 +443,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
@@ -829,8 +831,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 be9c2c184a..7feb85b86d 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
@@ -2662,7 +2664,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 d7d28be015..469153ade3 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
@@ -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/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 11eff3fab2..99d43fe009 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
@@ -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/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 eda89ef343..96edb00531 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
@@ -2627,7 +2629,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/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 cbf9c259d5..bfb2cec7f6 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
@@ -2625,7 +2627,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 43d62943b0..aad391e36c 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
@@ -2633,7 +2635,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 56ac25092d..9bf9d868ce 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
@@ -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/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 53fc8fecec..e6304726fd 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
@@ -2678,7 +2680,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 4350d38067..3ade7dce04 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
@@ -2689,7 +2691,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/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 572a55e0c0..3c68153771 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
@@ -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/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 1b235baf00..0c8d700ed8 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
@@ -2457,7 +2459,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 230c1af181..37c7b53452 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
@@ -2759,7 +2761,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 72c91e4932..2f00ab943c 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
@@ -2324,7 +2326,9 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
 GLIBC_2.34 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/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 04db64bbe2..02e82a02c3 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
@@ -2524,7 +2526,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 9430d6f772..dcb20fbe4f 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
@@ -2687,7 +2689,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 3ea1627bae..2c12049d08 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
@@ -2494,7 +2496,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 11cf290e0a..b11d407e33 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
@@ -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/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 a9ea1c1793..5dc2d54de1 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
@@ -2539,7 +2541,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 b98e9cb77c..96a26a42b9 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
@@ -2682,7 +2684,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 f94e1b4b99..ed5c95f089 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
@@ -2517,7 +2519,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 286b66f2eb..8d1eff33d9 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
@@ -2472,7 +2474,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 a82a766ca6..d6855e3690 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
@@ -2578,7 +2580,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] 70+ messages in thread

* [PATCH 27/30] resolv: Move res_mkquery, res_nmkquery into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (25 preceding siblings ...)
  2021-07-08 15:06 ` [PATCH 26/30] resolv: Move res_send, res_nsend into libc Florian Weimer via Libc-alpha
@ 2021-07-08 15:06 ` Florian Weimer via Libc-alpha
  2021-07-15  5:02   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:07 ` [PATCH 28/30] resolv: Move res_query functions " Florian Weimer via Libc-alpha
                   ` (3 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:06 UTC (permalink / raw)
  To: libc-alpha

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

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

diff --git a/resolv/Makefile b/resolv/Makefile
index e9689f7e2c..31658202d3 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -54,6 +54,7 @@ routines := \
   res_hconf \
   res_init \
   res_libc \
+  res_mkquery \
   res_nameinquery \
   res_queriesmatch \
   res_randomid \
@@ -155,7 +156,6 @@ libresolv-routines := \
   res_debug \
   res_hostalias \
   res_isourserver \
-  res_mkquery \
   res_query \
   resolv-deprecated \
   # libresolv-routines
diff --git a/resolv/Versions b/resolv/Versions
index 21b7af73c5..fcaf9fada7 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -17,12 +17,15 @@ libc {
     herror;
     hstrerror;
     res_init;
+    res_mkquery;
   }
   GLIBC_2.2 {
     __dn_expand;
     __res_init;
+    __res_mkquery;
     __res_nclose;
     __res_ninit;
+    __res_nmkquery;
     __res_nsend;
     __res_state;
     _res_hconf;
@@ -64,6 +67,8 @@ libc {
     res_dnok;
     res_hnok;
     res_mailok;
+    res_mkquery;
+    res_nmkquery;
     res_nsend;
     res_ownok;
     res_send;
@@ -91,10 +96,12 @@ libc {
     __ns_name_uncompress;
     __ns_name_unpack;
     __res_context_hostalias;
+    __res_context_mkquery;
     __res_context_send;
     __res_context_send;
     __res_get_nsaddr;
     __res_iclose;
+    __res_nopt;
     __resolv_context_get;
     __resolv_context_get_override;
     __resolv_context_get_preinit;
@@ -151,7 +158,6 @@ libresolv {
     res_gethostbyaddr;
     res_gethostbyname2;
     res_gethostbyname;
-    res_mkquery;
     res_query;
     res_querydomain;
     res_search;
@@ -160,8 +166,6 @@ libresolv {
   }
   GLIBC_2.2 {
     __res_hostalias;
-    __res_mkquery;
-    __res_nmkquery;
     __res_nquery;
     __res_nquerydomain;
     __res_nsearch;
diff --git a/resolv/res_mkquery.c b/resolv/res_mkquery.c
index 07c34d1340..ba6c983b58 100644
--- a/resolv/res_mkquery.c
+++ b/resolv/res_mkquery.c
@@ -141,9 +141,9 @@ __res_context_mkquery (struct resolv_context *ctx, int op, const char *dname,
       if ((buflen -= QFIXEDSZ) < 0)
         return -1;
     compose:
-      n = ns_name_compress (dname, cp, buflen,
-                            (const unsigned char **) dnptrs,
-                            (const unsigned char **) lastdnptr);
+      n = __ns_name_compress (dname, cp, buflen,
+                              (const unsigned char **) dnptrs,
+                              (const unsigned char **) lastdnptr);
       if (n < 0)
         return -1;
       cp += n;
@@ -155,9 +155,9 @@ __res_context_mkquery (struct resolv_context *ctx, int op, const char *dname,
         break;
 
       /* Make an additional record for completion domain.  */
-      n = ns_name_compress ((char *)data, cp, buflen,
-                            (const unsigned char **) dnptrs,
-                            (const unsigned char **) lastdnptr);
+      n = __ns_name_compress ((char *)data, cp, buflen,
+                              (const unsigned char **) dnptrs,
+                              (const unsigned char **) lastdnptr);
       if (__glibc_unlikely (n < 0))
         return -1;
       cp += n;
@@ -174,6 +174,7 @@ __res_context_mkquery (struct resolv_context *ctx, int op, const char *dname,
     }
   return cp - buf;
 }
+libc_hidden_def (__res_context_mkquery)
 
 /* Common part of res_nmkquery and res_mkquery.  */
 static int
@@ -203,27 +204,38 @@ context_mkquery_common (struct resolv_context *ctx,
 
    DATALEN and NEWRR_IN are currently ignored.  */
 int
-res_nmkquery (res_state statp, int op, const char *dname,
-              int class, int type,
-              const unsigned char *data, int datalen,
-              const unsigned char *newrr_in,
-              unsigned char *buf, int buflen)
+___res_nmkquery (res_state statp, int op, const char *dname,
+                 int class, int type,
+                 const unsigned char *data, int datalen,
+                 const unsigned char *newrr_in,
+                 unsigned char *buf, int buflen)
 {
   return context_mkquery_common
     (__resolv_context_get_override (statp),
      op, dname, class, type, data, buf, buflen);
 }
+versioned_symbol (libc, ___res_nmkquery, res_nmkquery, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_nmkquery, __res_nmkquery, GLIBC_2_2);
+#endif
 
 int
-res_mkquery (int op, const char *dname, int class, int type,
-             const unsigned char *data, int datalen,
-             const unsigned char *newrr_in,
-             unsigned char *buf, int buflen)
+___res_mkquery (int op, const char *dname, int class, int type,
+                const unsigned char *data, int datalen,
+                const unsigned char *newrr_in,
+                unsigned char *buf, int buflen)
 {
   return context_mkquery_common
     (__resolv_context_get_preinit (),
      op, dname, class, type, data, buf, buflen);
 }
+versioned_symbol (libc, ___res_mkquery, res_mkquery, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_2)
+compat_symbol (libresolv, ___res_mkquery, res_mkquery, GLIBC_2_0);
+#endif
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_mkquery, __res_mkquery, GLIBC_2_2);
+#endif
 
 /* Create an OPT resource record.  Return the length of the final
    packet, or -1 on error.
@@ -285,8 +297,4 @@ __res_nopt (struct resolv_context *ctx,
 
   return cp - buf;
 }
-
-#if SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_2)
-# undef res_mkquery
-weak_alias (__res_mkquery, res_mkquery);
-#endif
+libc_hidden_def (__res_nopt)
diff --git a/resolv/resolv-internal.h b/resolv/resolv-internal.h
index 1e21c38cc7..3cf8a77698 100644
--- a/resolv/resolv-internal.h
+++ b/resolv/resolv-internal.h
@@ -55,7 +55,8 @@ struct resolv_context;
    Also used by __res_context_query.  */
 int __res_context_mkquery (struct resolv_context *, int op, const char *dname,
                            int class, int type, const unsigned char *data,
-                           unsigned char *buf, int buflen) attribute_hidden;
+                           unsigned char *buf, int buflen);
+libc_hidden_proto (__res_context_mkquery)
 
 /* Main resolver query function for use within glibc.  */
 int __res_context_search (struct resolv_context *, const char *, int, int,
@@ -84,7 +85,8 @@ libc_hidden_proto (__res_context_hostalias);
 
 /* Add an OPT record to a DNS query.  */
 int __res_nopt (struct resolv_context *, int n0,
-                unsigned char *buf, int buflen, int anslen) attribute_hidden;
+                unsigned char *buf, int buflen, int anslen);
+libc_hidden_proto (__res_nopt)
 
 /* Convert from presentation format (which usually means ASCII
    printable) to network format (which is usually some kind of binary
diff --git a/resolv/resolv.h b/resolv/resolv.h
index 66944008fd..e50b8d08d7 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -168,7 +168,6 @@ __END_DECLS
 #define res_close		__res_close
 #define res_init		__res_init
 #define res_isourserver		__res_isourserver
-#define res_mkquery		__res_mkquery
 #define res_query		__res_query
 #define res_querydomain		__res_querydomain
 #define res_search		__res_search
@@ -228,7 +227,6 @@ __END_DECLS
 #define res_nameinquery		__res_nameinquery
 #define res_nclose		__res_nclose
 #define res_ninit		__res_ninit
-#define res_nmkquery		__res_nmkquery
 #define res_nquery		__res_nquery
 #define res_nquerydomain	__res_nquerydomain
 #define res_nsearch		__res_nsearch
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 956c92182b..092f1b8ffb 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -405,8 +405,10 @@ GLIBC_2.2.6 __res_dnok F
 GLIBC_2.2.6 __res_hnok F
 GLIBC_2.2.6 __res_init F
 GLIBC_2.2.6 __res_mailok F
+GLIBC_2.2.6 __res_mkquery F
 GLIBC_2.2.6 __res_nclose F
 GLIBC_2.2.6 __res_ninit F
+GLIBC_2.2.6 __res_nmkquery F
 GLIBC_2.2.6 __res_nsend F
 GLIBC_2.2.6 __res_ownok F
 GLIBC_2.2.6 __res_randomid F
@@ -2263,6 +2265,8 @@ GLIBC_2.34 openpty F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index 2e772ae4e1..3ef54cc28e 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -24,9 +24,7 @@ GLIBC_2.2.6 __putshort F
 GLIBC_2.2.6 __res_close F
 GLIBC_2.2.6 __res_hostalias F
 GLIBC_2.2.6 __res_isourserver F
-GLIBC_2.2.6 __res_mkquery F
 GLIBC_2.2.6 __res_nameinquery F
-GLIBC_2.2.6 __res_nmkquery F
 GLIBC_2.2.6 __res_nquery F
 GLIBC_2.2.6 __res_nquerydomain F
 GLIBC_2.2.6 __res_nsearch F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 21e768c926..7e1529bd90 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
@@ -2565,6 +2567,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 b0a70022dd..89ee2ed645 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
@@ -2658,6 +2661,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 66620e2f33..cf320c4bce 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
@@ -2324,6 +2326,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 571dc4fcc0..7b395d2683 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/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/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 fdeb5940bb..9a2aefac45 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -439,6 +439,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
@@ -840,8 +842,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 4c0e79592e..eb8efa378b 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
@@ -2590,6 +2592,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 813fb7cdda..4c3d7674ff 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
@@ -2537,6 +2540,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 f09c7af651..9f44807e02 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
@@ -2721,6 +2724,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 8fa8b1094e..63a3fa22ef 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
@@ -2496,6 +2499,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 dd5d58b386..37bbdde23b 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -443,6 +443,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
@@ -829,8 +831,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 7feb85b86d..bf0eb6e976 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
@@ -2664,6 +2667,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 469153ade3..d5d5771708 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
@@ -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/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 99d43fe009..2f05d61c21 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
@@ -2638,6 +2640,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/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 96edb00531..8d62d76ca5 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
@@ -2629,6 +2632,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/mips/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 bfb2cec7f6..68e086d203 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
@@ -2627,6 +2630,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 aad391e36c..14c19658c6 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
@@ -2635,6 +2638,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 9bf9d868ce..479115297c 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
@@ -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/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 e6304726fd..b98437e5fc 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
@@ -2680,6 +2682,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 3ade7dce04..6c311d2a5f 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
@@ -2691,6 +2694,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/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 3c68153771..c6d7f1cff4 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
@@ -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/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 0c8d700ed8..f8e69c7fd3 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
@@ -2459,6 +2461,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 37c7b53452..6b0a84c8f6 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
@@ -2761,6 +2763,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 2f00ab943c..080d87a80b 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
@@ -2326,6 +2328,8 @@ GLIBC_2.34 pthread_tryjoin_np F
 GLIBC_2.34 res_dnok F
 GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
+GLIBC_2.34 res_mkquery F
+GLIBC_2.34 res_nmkquery F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
 GLIBC_2.34 res_send F
diff --git a/sysdeps/unix/sysv/linux/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 02e82a02c3..53b33d1504 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
@@ -2526,6 +2528,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 dcb20fbe4f..d1d59f0021 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
@@ -2689,6 +2692,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 2c12049d08..ca3e7ebc6d 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
@@ -2496,6 +2498,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 b11d407e33..fcde356a18 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
@@ -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/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 5dc2d54de1..18dffb1d62 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
@@ -2541,6 +2544,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 96a26a42b9..61fd09d562 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
@@ -2684,6 +2687,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 ed5c95f089..fa300e44d6 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
@@ -2519,6 +2522,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 8d1eff33d9..3160273a6f 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
@@ -2474,6 +2476,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 d6855e3690..886414793c 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
@@ -2580,6 +2582,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] 70+ messages in thread

* [PATCH 28/30] resolv: Move res_query functions into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (26 preceding siblings ...)
  2021-07-08 15:06 ` [PATCH 27/30] resolv: Move res_mkquery, res_nmkquery " Florian Weimer via Libc-alpha
@ 2021-07-08 15:07 ` Florian Weimer via Libc-alpha
  2021-07-15  5:02   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:07 ` [PATCH 29/30] resolv: Move nss_dns " Florian Weimer via Libc-alpha
                   ` (2 subsequent siblings)
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:07 UTC (permalink / raw)
  To: libc-alpha

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

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

diff --git a/resolv/Makefile b/resolv/Makefile
index 31658202d3..4ba58dfa96 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -57,6 +57,7 @@ routines := \
   res_mkquery \
   res_nameinquery \
   res_queriesmatch \
+  res_query \
   res_randomid \
   res_send \
   resolv_conf \
@@ -156,7 +157,6 @@ libresolv-routines := \
   res_debug \
   res_hostalias \
   res_isourserver \
-  res_query \
   resolv-deprecated \
   # libresolv-routines
 
diff --git a/resolv/Versions b/resolv/Versions
index fcaf9fada7..f8b7700a1e 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -18,6 +18,9 @@ libc {
     hstrerror;
     res_init;
     res_mkquery;
+    res_query;
+    res_querydomain;
+    res_search;
   }
   GLIBC_2.2 {
     __dn_expand;
@@ -26,7 +29,13 @@ libc {
     __res_nclose;
     __res_ninit;
     __res_nmkquery;
+    __res_nquery;
+    __res_nquerydomain;
+    __res_nsearch;
     __res_nsend;
+    __res_query;
+    __res_querydomain;
+    __res_search;
     __res_state;
     _res_hconf;
   }
@@ -69,8 +78,14 @@ libc {
     res_mailok;
     res_mkquery;
     res_nmkquery;
+    res_nquery;
+    res_nquerydomain;
+    res_nsearch;
     res_nsend;
     res_ownok;
+    res_query;
+    res_querydomain;
+    res_search;
     res_send;
   }
   GLIBC_PRIVATE {
@@ -97,6 +112,8 @@ libc {
     __ns_name_unpack;
     __res_context_hostalias;
     __res_context_mkquery;
+    __res_context_query;
+    __res_context_search;
     __res_context_send;
     __res_context_send;
     __res_get_nsaddr;
@@ -158,20 +175,11 @@ libresolv {
     res_gethostbyaddr;
     res_gethostbyname2;
     res_gethostbyname;
-    res_query;
-    res_querydomain;
-    res_search;
     res_send_setqhook;
     res_send_setrhook;
   }
   GLIBC_2.2 {
     __res_hostalias;
-    __res_nquery;
-    __res_nquerydomain;
-    __res_nsearch;
-    __res_query;
-    __res_querydomain;
-    __res_search;
   }
   GLIBC_2.3.2 {
     __p_rcode;
@@ -202,8 +210,6 @@ libresolv {
   GLIBC_PRIVATE {
     __ns_get16;
     __ns_get32;
-    __res_context_query;
-    __res_context_search;
   }
 }
 
diff --git a/resolv/res_query.c b/resolv/res_query.c
index 2457193d31..75b0e5f2f7 100644
--- a/resolv/res_query.c
+++ b/resolv/res_query.c
@@ -276,7 +276,7 @@ __res_context_query (struct resolv_context *ctx, const char *name,
  success:
 	return (n);
 }
-libresolv_hidden_def (__res_context_query)
+libc_hidden_def (__res_context_query)
 
 /* Common part of res_nquery and res_query.  */
 static int
@@ -296,23 +296,34 @@ context_query_common (struct resolv_context *ctx,
 }
 
 int
-res_nquery(res_state statp,
-	   const char *name,	/* domain name */
-	   int class, int type,	/* class and type of query */
-	   u_char *answer,	/* buffer to put answer */
-	   int anslen)		/* size of answer buffer */
+___res_nquery (res_state statp,
+	       const char *name,      /* Domain name.  */
+	       int class, int type,   /* Class and type of query.  */
+	       unsigned char *answer, /* Buffer to put answer.  */
+	       int anslen)	      /* Size of answer buffer.  */
 {
   return context_query_common
     (__resolv_context_get_override (statp), name, class, type, answer, anslen);
 }
+versioned_symbol (libc, ___res_nquery, res_nquery, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_nquery, __res_nquery, GLIBC_2_2);
+#endif
 
 int
-res_query (const char *name, int class, int type,
-	   unsigned char *answer, int anslen)
+___res_query (const char *name, int class, int type,
+	      unsigned char *answer, int anslen)
 {
   return context_query_common
     (__resolv_context_get (), name, class, type, answer, anslen);
 }
+versioned_symbol (libc, ___res_query, res_query, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_2)
+compat_symbol (libresolv, ___res_query, res_query, GLIBC_2_0);
+#endif
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_query, __res_query, GLIBC_2_2);
+#endif
 
 /* Formulate a normal query, send, and retrieve answer in supplied
    buffer.  Return the size of the response on success, -1 on error.
@@ -515,7 +526,7 @@ __res_context_search (struct resolv_context *ctx,
 		RES_SET_H_ERRNO(statp, TRY_AGAIN);
 	return (-1);
 }
-libresolv_hidden_def (__res_context_search)
+libc_hidden_def (__res_context_search)
 
 /* Common part of res_nsearch and res_search.  */
 static int
@@ -535,23 +546,34 @@ context_search_common (struct resolv_context *ctx,
 }
 
 int
-res_nsearch(res_state statp,
-	    const char *name,	/* domain name */
-	    int class, int type,	/* class and type of query */
-	    u_char *answer,	/* buffer to put answer */
-	    int anslen)		/* size of answer */
+___res_nsearch (res_state statp,
+		const char *name,      /* Domain name.  */
+		int class, int type,   /* Class and type of query.  */
+		unsigned char *answer, /* Buffer to put answer.  */
+		int anslen)	       /* Size of answer.  */
 {
   return context_search_common
     (__resolv_context_get_override (statp), name, class, type, answer, anslen);
 }
+versioned_symbol (libc, ___res_nsearch, res_nsearch, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_nsearch, __res_nsearch, GLIBC_2_2);
+#endif
 
 int
-res_search (const char *name, int class, int type,
-	    unsigned char *answer, int anslen)
+___res_search (const char *name, int class, int type,
+	       unsigned char *answer, int anslen)
 {
   return context_search_common
     (__resolv_context_get (), name, class, type, answer, anslen);
 }
+versioned_symbol (libc, ___res_search, res_search, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_2)
+compat_symbol (libresolv, ___res_search, res_search, GLIBC_2_0);
+#endif
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_search, __res_search, GLIBC_2_2);
+#endif
 
 /*  Perform a call on res_query on the concatenation of name and
     domain.  */
@@ -615,31 +637,33 @@ context_querydomain_common (struct resolv_context *ctx,
 }
 
 int
-res_nquerydomain(res_state statp,
-	    const char *name,
-	    const char *domain,
-	    int class, int type,	/* class and type of query */
-	    u_char *answer,		/* buffer to put answer */
-	    int anslen)		/* size of answer */
+___res_nquerydomain (res_state statp,
+		     const char *name,
+		     const char *domain,
+		     int class, int type, /* Class and type of query.  */
+		     unsigned char *answer, /* Buffer to put answer.  */
+		     int anslen)	    /* Size of answer.  */
 {
   return context_querydomain_common
     (__resolv_context_get_override (statp),
      name, domain, class, type, answer, anslen);
 }
+versioned_symbol (libc, ___res_nquerydomain, res_nquerydomain, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_nquerydomain, __res_nquerydomain, GLIBC_2_2);
+#endif
 
 int
-res_querydomain (const char *name, const char *domain, int class, int type,
-		 unsigned char *answer, int anslen)
+___res_querydomain (const char *name, const char *domain, int class, int type,
+		    unsigned char *answer, int anslen)
 {
   return context_querydomain_common
     (__resolv_context_get (), name, domain, class, type, answer, anslen);
 }
-
-#if SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_2)
-# undef res_query
-# undef res_querydomain
-# undef res_search
-weak_alias (__res_query, res_query);
-weak_alias (__res_querydomain, res_querydomain);
-weak_alias (__res_search, res_search);
+versioned_symbol (libc, ___res_querydomain, res_querydomain, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_2)
+compat_symbol (libresolv, ___res_querydomain, res_querydomain, GLIBC_2_0);
+#endif
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_querydomain, __res_querydomain, GLIBC_2_2);
 #endif
diff --git a/resolv/resolv-internal.h b/resolv/resolv-internal.h
index 3cf8a77698..216e47ed42 100644
--- a/resolv/resolv-internal.h
+++ b/resolv/resolv-internal.h
@@ -62,13 +62,13 @@ libc_hidden_proto (__res_context_mkquery)
 int __res_context_search (struct resolv_context *, const char *, int, int,
                           unsigned char *, int, unsigned char **,
                           unsigned char **, int *, int *, int *);
-libresolv_hidden_proto (__res_context_search)
+libc_hidden_proto (__res_context_search)
 
 /* Main resolver query function for use within glibc.  */
 int __res_context_query (struct resolv_context *, const char *, int, int,
                          unsigned char *, int, unsigned char **,
                          unsigned char **, int *, int *, int *);
-libresolv_hidden_proto (__res_context_query)
+libc_hidden_proto (__res_context_query)
 
 /* Internal function used to implement the query and search
    functions.  */
diff --git a/resolv/resolv.h b/resolv/resolv.h
index e50b8d08d7..f2a8641e82 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -168,9 +168,6 @@ __END_DECLS
 #define res_close		__res_close
 #define res_init		__res_init
 #define res_isourserver		__res_isourserver
-#define res_query		__res_query
-#define res_querydomain		__res_querydomain
-#define res_search		__res_search
 
 #ifdef _LIBC
 # define __RESOLV_DEPRECATED
@@ -227,9 +224,6 @@ __END_DECLS
 #define res_nameinquery		__res_nameinquery
 #define res_nclose		__res_nclose
 #define res_ninit		__res_ninit
-#define res_nquery		__res_nquery
-#define res_nquerydomain	__res_nquerydomain
-#define res_nsearch		__res_nsearch
 #define res_queriesmatch	__res_queriesmatch
 #define res_randomid		__res_randomid
 #define sym_ntop		__sym_ntop
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 092f1b8ffb..db955bd396 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -409,9 +409,15 @@ GLIBC_2.2.6 __res_mkquery F
 GLIBC_2.2.6 __res_nclose F
 GLIBC_2.2.6 __res_ninit F
 GLIBC_2.2.6 __res_nmkquery F
+GLIBC_2.2.6 __res_nquery F
+GLIBC_2.2.6 __res_nquerydomain F
+GLIBC_2.2.6 __res_nsearch F
 GLIBC_2.2.6 __res_nsend F
 GLIBC_2.2.6 __res_ownok F
+GLIBC_2.2.6 __res_query F
+GLIBC_2.2.6 __res_querydomain F
 GLIBC_2.2.6 __res_randomid F
+GLIBC_2.2.6 __res_search F
 GLIBC_2.2.6 __res_send F
 GLIBC_2.2.6 __res_state F
 GLIBC_2.2.6 __rpc_thread_createerr F
@@ -2267,8 +2273,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 shm_open F
 GLIBC_2.34 shm_unlink F
diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
index 3ef54cc28e..8b633891cf 100644
--- a/sysdeps/mach/hurd/i386/libresolv.abilist
+++ b/sysdeps/mach/hurd/i386/libresolv.abilist
@@ -25,13 +25,7 @@ GLIBC_2.2.6 __res_close F
 GLIBC_2.2.6 __res_hostalias F
 GLIBC_2.2.6 __res_isourserver F
 GLIBC_2.2.6 __res_nameinquery F
-GLIBC_2.2.6 __res_nquery F
-GLIBC_2.2.6 __res_nquerydomain F
-GLIBC_2.2.6 __res_nsearch F
 GLIBC_2.2.6 __res_queriesmatch F
-GLIBC_2.2.6 __res_query F
-GLIBC_2.2.6 __res_querydomain F
-GLIBC_2.2.6 __res_search F
 GLIBC_2.2.6 __sym_ntop F
 GLIBC_2.2.6 __sym_ntos F
 GLIBC_2.2.6 __sym_ston F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 7e1529bd90..afa6a526ac 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
@@ -2569,8 +2575,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 89ee2ed645..66688182b1 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
@@ -2663,8 +2672,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 cf320c4bce..cd935c4015 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
@@ -2328,8 +2334,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 7b395d2683..e1026b6077 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/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/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 9a2aefac45..aa45c60686 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -441,8 +441,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
@@ -846,9 +852,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 eb8efa378b..f385a7cb66 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
@@ -2594,8 +2600,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 4c3d7674ff..6ed506e5ec 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
@@ -2542,8 +2551,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 9f44807e02..8f28ecbb9c 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
@@ -2726,8 +2735,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 63a3fa22ef..1acdafd19b 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
@@ -2501,8 +2510,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 37bbdde23b..125f2cfbca 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -445,8 +445,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
@@ -835,9 +841,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 bf0eb6e976..0e5d7c1b48 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
@@ -2669,8 +2678,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 d5d5771708..c44b106449 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
@@ -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/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 2f05d61c21..3c2edae799 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
@@ -2642,8 +2648,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 8d62d76ca5..41d8b812c6 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
@@ -2634,8 +2643,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/mips/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 68e086d203..875f68199a 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
@@ -2632,8 +2641,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 14c19658c6..bca901db65 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
@@ -2640,8 +2649,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 479115297c..29ddd75b77 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
@@ -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/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 b98437e5fc..dfb14647d2 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
@@ -2684,8 +2690,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 6c311d2a5f..930dccea8e 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
@@ -2696,8 +2705,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/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 c6d7f1cff4..29bb3ddc35 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
@@ -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/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index f8e69c7fd3..5d0b01d486 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
@@ -2463,8 +2469,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 6b0a84c8f6..b82e3af690 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
@@ -2765,8 +2771,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 080d87a80b..03a9a617b8 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
@@ -2330,8 +2336,14 @@ GLIBC_2.34 res_hnok F
 GLIBC_2.34 res_mailok F
 GLIBC_2.34 res_mkquery F
 GLIBC_2.34 res_nmkquery F
+GLIBC_2.34 res_nquery F
+GLIBC_2.34 res_nquerydomain F
+GLIBC_2.34 res_nsearch F
 GLIBC_2.34 res_nsend F
 GLIBC_2.34 res_ownok F
+GLIBC_2.34 res_query F
+GLIBC_2.34 res_querydomain F
+GLIBC_2.34 res_search F
 GLIBC_2.34 res_send F
 GLIBC_2.34 sem_clockwait F
 GLIBC_2.34 sem_close F
diff --git a/sysdeps/unix/sysv/linux/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 53b33d1504..42c0f86aaa 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
@@ -2530,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/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 d1d59f0021..3f15b3edc5 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
@@ -2694,8 +2703,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 ca3e7ebc6d..c24face132 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
@@ -2500,8 +2506,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 fcde356a18..ddcf105058 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
@@ -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/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 18dffb1d62..916630a82c 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
@@ -2546,8 +2555,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 61fd09d562..c411653766 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
@@ -2689,8 +2698,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 fa300e44d6..8421b56ac5 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
@@ -2524,8 +2533,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 3160273a6f..04720305d4 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
@@ -2478,8 +2484,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 886414793c..3981f2eb31 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
@@ -2584,8 +2590,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] 70+ messages in thread

* [PATCH 29/30] resolv: Move nss_dns into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (27 preceding siblings ...)
  2021-07-08 15:07 ` [PATCH 28/30] resolv: Move res_query functions " Florian Weimer via Libc-alpha
@ 2021-07-08 15:07 ` Florian Weimer via Libc-alpha
  2021-07-15  5:02   ` Carlos O'Donell via Libc-alpha
  2021-07-08 15:07 ` [PATCH 30/30] nss: Directly load nss_dns, without going through dlsym/dlopen Florian Weimer via Libc-alpha
  2021-07-15  4:58 ` [PATCH v2 00/30] nss_dns move into libc Carlos O'Donell via Libc-alpha
  30 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:07 UTC (permalink / raw)
  To: libc-alpha

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

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



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

* [PATCH 30/30] nss: Directly load nss_dns, without going through dlsym/dlopen
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (28 preceding siblings ...)
  2021-07-08 15:07 ` [PATCH 29/30] resolv: Move nss_dns " Florian Weimer via Libc-alpha
@ 2021-07-08 15:07 ` Florian Weimer via Libc-alpha
  2021-07-08 15:42   ` Florian Weimer via Libc-alpha
  2021-07-15  5:02   ` Carlos O'Donell via Libc-alpha
  2021-07-15  4:58 ` [PATCH v2 00/30] nss_dns move into libc Carlos O'Donell via Libc-alpha
  30 siblings, 2 replies; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:07 UTC (permalink / raw)
  To: libc-alpha

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

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.
---
 include/nss_dns.h          | 13 +++++----
 nss/nss_files_functions.c  |  6 -----
 nss/nss_module.c           | 55 +++++++++++++++++++++++++++++---------
 nss/nss_module.h           | 10 +++++--
 resolv/Makefile            |  1 +
 resolv/nss_dns_functions.c | 40 +++++++++++++++++++++++++++
 6 files changed, 99 insertions(+), 26 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 7b42c585a4..a4a66866fb 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,18 +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))
 {
-  if (is_nscd)
-    {
-      void (*cb) (size_t, struct traced_file *) = nscd_init_cb;
-#  ifdef PTR_DEMANGLE
-      PTR_DEMANGLE (cb);
-#  endif
-      _nss_files_init (cb);
-    }
-
   /* Initialize the function pointers, following the double-checked
      locking idiom.  */
   __libc_lock_lock (nss_module_list_lock);
@@ -130,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);
@@ -143,12 +145,37 @@ 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)
+{
+  if (is_nscd)
+    {
+      void (*cb) (size_t, struct traced_file *) = nscd_init_cb;
+#  ifdef PTR_DEMANGLE
+      PTR_DEMANGLE (cb);
+#  endif
+      _nss_files_init (cb);
+    }
+  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;
   {
@@ -396,7 +423,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] 70+ messages in thread

* Re: [PATCH 30/30] nss: Directly load nss_dns, without going through dlsym/dlopen
  2021-07-08 15:07 ` [PATCH 30/30] nss: Directly load nss_dns, without going through dlsym/dlopen Florian Weimer via Libc-alpha
@ 2021-07-08 15:42   ` Florian Weimer via Libc-alpha
  2021-07-15  5:02   ` Carlos O'Donell via Libc-alpha
  1 sibling, 0 replies; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-08 15:42 UTC (permalink / raw)
  To: Florian Weimer via Libc-alpha

* Florian Weimer via Libc-alpha:

> This partially fixes static-only NSS support (bug 27959): The dns
> module no longer needs dlopen.  Support for the files module remains
> to be added, and also support for disabling dlopen altogher.
>
> 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.

I've fixed the commit message not to mention the files module in the
first paragraph.

Thanks,
Florian


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

* Re: [PATCH 01/30] socket: Add hidden prototype for setsockopt
  2021-07-08 14:59 ` [PATCH 01/30] socket: Add hidden prototype for setsockopt Florian Weimer via Libc-alpha
@ 2021-07-08 18:02   ` Adhemerval Zanella via Libc-alpha
  2021-07-15  4:59   ` Carlos O'Donell via Libc-alpha
  1 sibling, 0 replies; 70+ messages in thread
From: Adhemerval Zanella via Libc-alpha @ 2021-07-08 18:02 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

LGTM, thanks.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

On 08/07/2021 11:59, Florian Weimer via Libc-alpha wrote:
> ---
>  include/sys/socket.h                 | 3 ++-
>  sysdeps/mach/hurd/setsockopt.c       | 2 +-
>  sysdeps/unix/sysv/linux/setsockopt.c | 5 +++--
>  3 files changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/include/sys/socket.h b/include/sys/socket.h
> index 38a1f76b3b..a1d749f9fa 100644
> --- a/include/sys/socket.h
> +++ b/include/sys/socket.h
> @@ -118,7 +118,8 @@ libc_hidden_proto (__recvmmsg64)
>     Returns 0 on success, -1 for errors.  */
>  extern int __setsockopt (int __fd, int __level, int __optname,
>  			 const void *__optval,
> -			 socklen_t __optlen) attribute_hidden;
> +			 socklen_t __optlen);
> +libc_hidden_proto (__setsockopt)
>  
>  /* Put the current value for socket FD's option OPTNAME at protocol level LEVEL
>     into OPTVAL (which is *OPTLEN bytes long), and set *OPTLEN to the value's

Ok.

> diff --git a/sysdeps/mach/hurd/setsockopt.c b/sysdeps/mach/hurd/setsockopt.c
> index 283af7114c..165c085599 100644
> --- a/sysdeps/mach/hurd/setsockopt.c
> +++ b/sysdeps/mach/hurd/setsockopt.c
> @@ -38,5 +38,5 @@ __setsockopt (int fd,
>      return __hurd_dfail (fd, err);
>    return 0;
>  }
> -
> +libc_hidden_def (__setsockopt)
>  weak_alias (__setsockopt, setsockopt)


Ok.

> diff --git a/sysdeps/unix/sysv/linux/setsockopt.c b/sysdeps/unix/sysv/linux/setsockopt.c
> index 2792f1b5a1..bb3017f89c 100644
> --- a/sysdeps/unix/sysv/linux/setsockopt.c
> +++ b/sysdeps/unix/sysv/linux/setsockopt.c
> @@ -90,7 +90,7 @@ setsockopt32 (int fd, int level, int optname, const void *optval,
>  #endif
>  
>  int
> -setsockopt (int fd, int level, int optname, const void *optval, socklen_t len)
> +__setsockopt (int fd, int level, int optname, const void *optval, socklen_t len)
>  {
>    int r = setsockopt_syscall (fd, level, optname, optval, len);
>  
> @@ -101,4 +101,5 @@ setsockopt (int fd, int level, int optname, const void *optval, socklen_t len)
>  
>    return r;
>  }
> -weak_alias (setsockopt, __setsockopt)
> +libc_hidden_def (__setsockopt)
> +weak_alias (__setsockopt, setsockopt)
> 


Ok.

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

* Re: [PATCH 02/30] resolv: Deprecate legacy interfaces in <resolv.h>
  2021-07-08 14:59 ` [PATCH 02/30] resolv: Deprecate legacy interfaces in <resolv.h> Florian Weimer via Libc-alpha
@ 2021-07-08 18:32   ` Adhemerval Zanella via Libc-alpha
  2021-07-15  4:59   ` Carlos O'Donell via Libc-alpha
  1 sibling, 0 replies; 70+ messages in thread
From: Adhemerval Zanella via Libc-alpha @ 2021-07-08 18:32 UTC (permalink / raw)
  To: libc-alpha, Florian Weimer



On 08/07/2021 11:59, 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.
> 
> res_hostalias has been superseded by getaddrinfo with AI_CANONNAME.
> hostalias is not thread-safe.
> 
> Some functions have int as size arguments instead of size_t, so they
> do not follow current coding practices.  However, dn_expand and
> b64_ntop are somewhat widely used (to name just two examples), so
> deprecating them seems problematic.
> ---
>  NEWS                  |  4 +++
>  resolv/arpa/nameser.h | 33 ++++++++++++-----
>  resolv/resolv.h       | 84 +++++++++++++++++++++++++++----------------
>  3 files changed, 82 insertions(+), 39 deletions(-)
> 
> diff --git a/NEWS b/NEWS
> index 8e72946c3f..23ff7fd104 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -77,6 +77,10 @@ Deprecated and removed features, and other changes affecting compatibility:
>  * The function pthread_yield has been deprecated; programs should use
>    the equivalent standard function sched_yield instead.
>  
> +* Various rarely-used functions declared in <resolv.h> and
> +  <arpa/nameser.h> have been deprecated.  Applications are encouraged to
> +  use dedicated DNS processing libraries if applicable.
> +

I think we should explicitly list all the deprecated functions here.

>  * The pthread cancellation handler is now installed with SA_RESTART and
>    pthread_cancel will always send the internal SIGCANCEL on a cancellation
>    request.  It should not be visible to application since the cancellation
> diff --git a/resolv/arpa/nameser.h b/resolv/arpa/nameser.h
> index a99d5ec508..017d7b194a 100644
> --- a/resolv/arpa/nameser.h
> +++ b/resolv/arpa/nameser.h
> @@ -52,6 +52,12 @@
>  #include <sys/types.h>
>  #include <stdint.h>
>  
> +#ifdef _LIBC
> +# define __NAMESER_DEPRECATED
> +#else
> +# define __NAMESER_DEPRECATED __attribute_deprecated__
> +#endif
> +

Is this correct for installed headers to expose the deprecated to users as
well? Afaik it is only defined by include/libc-symbols.h.

>  /*
>   * 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;

Ok.

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

Ok.

> diff --git a/resolv/resolv.h b/resolv/resolv.h
> index a039a9e636..d55942a6b6 100644
> --- a/resolv/resolv.h
> +++ b/resolv/resolv.h
> @@ -174,14 +174,27 @@ __END_DECLS
>  #define res_search		__res_search
>  #define res_send		__res_send
>  
> +#ifdef _LIBC
> +# define __RESOLV_DEPRECATED
> +# define __RESOLV_DEPRECATED_MSG(msg)
> +#else
> +# define __RESOLV_DEPRECATED __attribute_deprecated__
> +# define __RESOLV_DEPRECATED_MSG(msg) __attribute_deprecated_msg__ (msg)
> +#endif
> +
>  __BEGIN_DECLS
> -void		fp_nquery (const unsigned char *, int, FILE *) __THROW;
> -void		fp_query (const unsigned char *, FILE *) __THROW;
> -const char *	hostalias (const char *) __THROW;
> -void		p_query (const unsigned char *) __THROW;
> +void		fp_nquery (const unsigned char *, int, FILE *) __THROW
> +  __RESOLV_DEPRECATED;
> +void		fp_query (const unsigned char *, FILE *) __THROW
> +  __RESOLV_DEPRECATED;
> +const char *	hostalias (const char *) __THROW
> +  __RESOLV_DEPRECATED_MSG ("use getaddrinfo instead");
> +void		p_query (const unsigned char *) __THROW
> +  __RESOLV_DEPRECATED;
>  void		res_close (void) __THROW;
>  int		res_init (void) __THROW;
> -int		res_isourserver (const struct sockaddr_in *) __THROW;
> +int		res_isourserver (const struct sockaddr_in *) __THROW
> +  __RESOLV_DEPRECATED;
>  int		res_mkquery (int, const char *, int, int,
>  			     const unsigned char *, int, const unsigned char *,
>  			     unsigned char *, int) __THROW;
> @@ -238,50 +251,61 @@ int		res_hnok (const char *) __THROW;
>  int		res_ownok (const char *) __THROW;
>  int		res_mailok (const char *) __THROW;
>  int		res_dnok (const char *) __THROW;
> -int		sym_ston (const struct res_sym *, const char *, int *) __THROW;
> -const char *	sym_ntos (const struct res_sym *, int, int *) __THROW;
> -const char *	sym_ntop (const struct res_sym *, int, int *) __THROW;
> +int		sym_ston (const struct res_sym *, const char *, int *) __THROW
> +  __RESOLV_DEPRECATED;
> +const char *	sym_ntos (const struct res_sym *, int, int *) __THROW
> +  __RESOLV_DEPRECATED;
> +const char *	sym_ntop (const struct res_sym *, int, int *) __THROW
> +  __RESOLV_DEPRECATED;
>  int		b64_ntop (const unsigned char *, size_t, char *, size_t)
> -     __THROW;
> +  __THROW;
>  int		b64_pton (char const *, unsigned char *, size_t) __THROW;
> -int		loc_aton (const char *__ascii, unsigned char *__binary) __THROW;
> -const char *	loc_ntoa (const unsigned char *__binary, char *__ascii) __THROW;
> +int		loc_aton (const char *__ascii, unsigned char *__binary) __THROW
> +  __RESOLV_DEPRECATED;
> +const char *	loc_ntoa (const unsigned char *__binary, char *__ascii) __THROW
> +  __RESOLV_DEPRECATED;
>  int		dn_skipname (const unsigned char *, const unsigned char *)
> -     __THROW;
> -void		putlong (uint32_t, unsigned char *) __THROW;
> -void		putshort (uint16_t, unsigned char *) __THROW;
> -const char *	p_class (int) __THROW;
> -const char *	p_time (uint32_t) __THROW;
> -const char *	p_type (int) __THROW;
> -const char *	p_rcode (int) __THROW;
> -const unsigned char * p_cdnname (const unsigned char *,
> -				 const unsigned char *, int, FILE *) __THROW;
> +  __THROW;
> +void		putlong (uint32_t, unsigned char *) __THROW
> +  __RESOLV_DEPRECATED_MSG ("use NS_PUT16 instead");
> +void		putshort (uint16_t, unsigned char *) __THROW
> +  __RESOLV_DEPRECATED_MSG ("use NS_PUT32 instead");
> +const char *	p_class (int) __THROW __RESOLV_DEPRECATED;
> +const char *	p_time (uint32_t) __THROW __RESOLV_DEPRECATED;
> +const char *	p_type (int) __THROW __RESOLV_DEPRECATED;
> +const char *	p_rcode (int) __THROW __RESOLV_DEPRECATED;
> +const unsigned char * p_cdnname (const unsigned char *, const unsigned char *,
> +				 int, FILE *) __THROW __RESOLV_DEPRECATED;
>  const unsigned char * p_cdname (const unsigned char *, const unsigned char *,
> -				FILE *) __THROW;
> +				FILE *) __THROW __RESOLV_DEPRECATED;
>  const unsigned char * p_fqnname (const unsigned char *__cp,
>  				 const unsigned char *__msg,
> -				 int, char *, int) __THROW;
> -const unsigned char * p_fqname (const unsigned char *,
> -				const unsigned char *, FILE *) __THROW;
> -const char *	p_option (unsigned long __option) __THROW;
> +				 int, char *, int) __THROW __RESOLV_DEPRECATED;
> +const unsigned char * p_fqname (const unsigned char *, const unsigned char *,
> +				FILE *) __THROW __RESOLV_DEPRECATED;
> +const char *	p_option (unsigned long __option) __THROW __RESOLV_DEPRECATED;
>  int		dn_count_labels (const char *) __THROW;
>  int		dn_comp (const char *, unsigned char *, int, unsigned char **,
>  			 unsigned char **) __THROW;
>  int		dn_expand (const unsigned char *, const unsigned char *,
>  			   const unsigned char *, char *, int) __THROW;
> -unsigned int	res_randomid (void) __THROW;
> +unsigned int	res_randomid (void) __THROW
> +  __RESOLV_DEPRECATED_MSG ("use getentropy instead");
>  int		res_nameinquery (const char *, int, int,
>  				 const unsigned char *,
> -				 const unsigned char *) __THROW;
> +				 const unsigned char *) __THROW
> +  __RESOLV_DEPRECATED;
>  int		res_queriesmatch (const unsigned char *,
>  				  const unsigned char *,
>  				  const unsigned char *,
> -				  const unsigned char *) __THROW;
> +				  const unsigned char *) __THROW
> +  __RESOLV_DEPRECATED;
>  /* Things involving a resolver context. */
>  int		res_ninit (res_state) __THROW;
> -void		fp_resstat (const res_state, FILE *) __THROW;
> +void		fp_resstat (const res_state, FILE *) __THROW
> +  __RESOLV_DEPRECATED;
>  const char *	res_hostalias (const res_state, const char *, char *, size_t)
> -     __THROW;
> +     __THROW __RESOLV_DEPRECATED_MSG ("use getaddrinfo instead");
>  int		res_nquery (res_state, const char *, int, int,
>  			    unsigned char *, int) __THROW;
>  int		res_nsearch (res_state, const char *, int, int,
> 

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

* Re: [PATCH 03/30] resolv: Sort Makefile routines and Versions lexicographically
  2021-07-08 14:59 ` [PATCH 03/30] resolv: Sort Makefile routines and Versions lexicographically Florian Weimer via Libc-alpha
@ 2021-07-08 18:33   ` Adhemerval Zanella via Libc-alpha
  2021-07-15  4:59   ` Carlos O'Donell via Libc-alpha
  1 sibling, 0 replies; 70+ messages in thread
From: Adhemerval Zanella via Libc-alpha @ 2021-07-08 18:33 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

LGTM, thanks.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

On 08/07/2021 11:59, Florian Weimer via Libc-alpha wrote:
> ---
>  resolv/Makefile |  61 ++++++++++++---
>  resolv/Versions | 194 ++++++++++++++++++++++++++++++++----------------
>  2 files changed, 182 insertions(+), 73 deletions(-)
> 
> diff --git a/resolv/Makefile b/resolv/Makefile
> index 1d3565d478..f14b149b31 100644
> --- a/resolv/Makefile
> +++ b/resolv/Makefile
> @@ -27,9 +27,21 @@ headers	:= resolv.h bits/types/res_state.h \
>  	   arpa/nameser.h arpa/nameser_compat.h \
>  	   sys/bitypes.h
>  
> -routines := herror inet_addr inet_ntop inet_pton nsap_addr res_init \
> -	    res_hconf res_libc res-state res_randomid res-close \
> -	    resolv_context resolv_conf
> +routines := \
> +  herror \
> +  inet_addr \
> +  inet_ntop \
> +  inet_pton \
> +  nsap_addr \
> +  res-close \
> +  res-state \
> +  res_hconf \
> +  res_init \
> +  res_libc \
> +  res_randomid \
> +  resolv_conf \
> +  resolv_context \
> +  # routines
>  
>  tests = tst-aton tst-leaks tst-inet_ntop
>  tests-container = tst-leaks2

Ok.

> @@ -105,15 +117,37 @@ xtests += tst-resolv-qtypes
>  xtests += tst-resolv-rotate
>  endif
>  extra-libs-others = $(extra-libs)
> -libresolv-routines := res_comp res_debug \
> -		      res_data res_mkquery res_query res_send		\
> -		      inet_net_ntop inet_net_pton inet_neta base64	\
> -		      ns_parse ns_name ns_netint ns_ttl ns_print	\
> -		      ns_samedomain ns_date res_enable_icmp \
> -		      compat-hooks compat-gethnamaddr
> +libresolv-routines := \
> +  base64 \
> +  compat-gethnamaddr \
> +  compat-hooks \
> +  inet_net_ntop \
> +  inet_net_pton \
> +  inet_neta \
> +  ns_date \
> +  ns_name \
> +  ns_netint \
> +  ns_parse \
> +  ns_print \
> +  ns_samedomain \
> +  ns_ttl \
> +  res_comp \
> +  res_data \
> +  res_debug \
> +  res_enable_icmp \
> +  res_mkquery \
> +  res_query \
> +  res_send \
> +  # libresolv-routines
>  

Ok.

>  $(libanl-routines-var) += \
> -  gai_cancel gai_error gai_misc gai_notify gai_suspend getaddrinfo_a
> +  gai_cancel \
> +  gai_error \
> +  gai_misc \
> +  gai_notify \
> +  gai_suspend \
> +  getaddrinfo_a \
> +  # $(libanl-routines-var)
>  
>  libanl-routines += libanl-compat
>  libanl-shared-only-routines += libanl-compat

Ok.

> @@ -121,7 +155,12 @@ libanl-shared-only-routines += libanl-compat
>  subdir-dirs = nss_dns
>  vpath %.c nss_dns
>  
> -libnss_dns-routines	:= dns-host dns-network dns-canon
> +libnss_dns-routines := \
> +  dns-canon \
> +  dns-host \
> +  dns-network \
> +  # libnss_dns-routines
> +
>  libnss_dns-inhibit-o	= $(filter-out .os,$(object-suffixes))
>  ifeq ($(build-static-nss),yes)
>  routines                += $(libnss_dns-routines) $(libresolv-routines)

Ok.

> diff --git a/resolv/Versions b/resolv/Versions
> index d4f6b4b819..3b5328301a 100644
> --- a/resolv/Versions
> +++ b/resolv/Versions
> @@ -1,115 +1,182 @@
>  libc {
>    GLIBC_2.0 {
> -    _res;
> -
> -    # helper functions
>      __h_errno_location;
> -
> -    # functions used in other libraries
>      __res_randomid;
> -
> -    # variables in normal name space
> -    h_errlist; h_nerr;
> -
> -    # h*
> -    herror; hstrerror;
> -
> -    # r*
> +    _res;
> +    h_errlist;
> +    h_nerr;
> +    herror;
> +    hstrerror;
>      res_init;
>    }
>    GLIBC_2.2 {
> -    # r*
> -    __res_state; __res_init; __res_nclose; __res_ninit; _res_hconf;
> +    __res_init;
> +    __res_nclose;
> +    __res_ninit;
> +    __res_state;
> +    _res_hconf;
>    }

Ok.

>    GLIBC_2.2.3 {
>  %if PTHREAD_IN_LIBC
> -    gai_cancel; gai_error; gai_suspend; getaddrinfo_a;
> +    gai_cancel;
> +    gai_error;
> +    gai_suspend;
> +    getaddrinfo_a;
>  %endif
>    }
>    GLIBC_2.34 {
>  %if PTHREAD_IN_LIBC
> -    gai_cancel; gai_error; gai_suspend; getaddrinfo_a;
> +    gai_cancel;
> +    gai_error;
> +    gai_suspend;
> +    getaddrinfo_a;
>  %endif
>    }

Ok.

>    GLIBC_PRIVATE {
>  %if !PTHREAD_IN_LIBC
>      __gai_sigqueue;
>  %endif
> -
> -    __h_errno; __resp;
> -
> -    __res_iclose;
> +    __h_errno;
>      __inet_aton_exact;
>      __inet_pton_length;
> +    __res_iclose;
>      __resolv_context_get;
> -    __resolv_context_get_preinit;
>      __resolv_context_get_override;
> +    __resolv_context_get_preinit;
>      __resolv_context_put;
> +    __resp;
>    }
>  }
>  
Ok.

>  libresolv {
>    GLIBC_2.0 {
> -    _gethtbyaddr; _gethtbyname; _gethtbyname2; _gethtent; _getlong;
> -    _getshort; _res_opcodes; _res_resultcodes; _sethtent; dn_expand;
> -    inet_net_ntop; inet_net_pton; inet_neta; res_gethostbyaddr;
> -    res_gethostbyname; res_gethostbyname2; res_mkquery; res_query;
> -    res_querydomain; res_search; res_send_setqhook; res_send_setrhook;
> -    # Variables
> -    __p_class_syms; __p_type_syms;
> -    # Private routines shared between libc/net, named, nslookup and others.
> -    __b64_ntop; __b64_pton;
> -    __dn_comp;  __dn_count_labels; __dn_skipname;
> -    __fp_nquery; __fp_query; __fp_resstat; __hostalias;
> -    __loc_aton; __loc_ntoa;
> -    __p_cdname; __p_cdnname; __p_class; __p_fqname; __p_fqnname; __p_option;
> -    __p_query; __p_rr; __p_secstodate; __p_time; __p_type;
> -    __putlong; __putshort;
> -    __res_close; __res_dnok; __res_hnok; __res_isourserver; __res_mailok;
> -    __res_nameinquery; __res_ownok; __res_queriesmatch;
> +    __b64_ntop;
> +    __b64_pton;
> +    __dn_comp;
> +    __dn_count_labels;
> +    __dn_skipname;
> +    __fp_nquery;
> +    __fp_query;
> +    __fp_resstat;
> +    __hostalias;
> +    __loc_aton;
> +    __loc_ntoa;
> +    __p_cdname;
> +    __p_cdnname;
> +    __p_class;
> +    __p_class_syms;
> +    __p_fqname;
> +    __p_fqnname;
> +    __p_option;
> +    __p_query;
> +    __p_rr;
> +    __p_secstodate;
> +    __p_time;
> +    __p_type;
> +    __p_type_syms;
> +    __putlong;
> +    __putshort;
> +    __res_close;
> +    __res_dnok;
> +    __res_hnok;
> +    __res_isourserver;
> +    __res_mailok;
> +    __res_nameinquery;
> +    __res_ownok;
> +    __res_queriesmatch;
>      __res_send;
> -    __sym_ntop; __sym_ntos; __sym_ston;
> +    __sym_ntop;
> +    __sym_ntos;
> +    __sym_ston;
> +    _gethtbyaddr;
> +    _gethtbyname2;
> +    _gethtbyname;
> +    _gethtent;
> +    _getlong;
> +    _getshort;
> +    _res_opcodes;
> +    _res_resultcodes;
> +    _sethtent;
> +    dn_expand;
> +    inet_net_ntop;
> +    inet_net_pton;
> +    inet_neta;
> +    res_gethostbyaddr;
> +    res_gethostbyname2;
> +    res_gethostbyname;
> +    res_mkquery;
> +    res_query;
> +    res_querydomain;
> +    res_search;
> +    res_send_setqhook;
> +    res_send_setrhook;
>    }
>    GLIBC_2.2 {
>      __dn_expand;
> -    __res_hostalias; __res_mkquery; __res_nmkquery; __res_nquery;
> -    __res_nquerydomain; __res_nsearch; __res_nsend; __res_query;
> -    __res_querydomain; __res_search;
> +    __res_hostalias;
> +    __res_mkquery;
> +    __res_nmkquery;
> +    __res_nquery;
> +    __res_nquerydomain;
> +    __res_nsearch;
> +    __res_nsend;
> +    __res_query;
> +    __res_querydomain;
> +    __res_search;
>    }
>    GLIBC_2.3.2 {
>      __p_rcode;
>    }
>    GLIBC_2.9 {
> -    ns_msg_getflag;
> -    ns_get16; ns_get32; ns_put16; ns_put32;
> -    ns_initparse; ns_skiprr; ns_parserr;
> -    ns_sprintrr; ns_sprintrrf;
> -    ns_format_ttl; ns_parse_ttl;
>      ns_datetosecs;
> -    ns_name_ntol; ns_name_ntop; ns_name_pton;
> -    ns_name_unpack; ns_name_pack;
> -    ns_name_uncompress; ns_name_compress;
> -    ns_name_skip; ns_name_rollback;
> -    ns_samedomain; ns_subdomain; ns_makecanon; ns_samename;
> +    ns_format_ttl;
> +    ns_get16;
> +    ns_get32;
> +    ns_initparse;
> +    ns_makecanon;
> +    ns_msg_getflag;
> +    ns_name_compress;
> +    ns_name_ntol;
> +    ns_name_ntop;
> +    ns_name_pack;
> +    ns_name_pton;
> +    ns_name_rollback;
> +    ns_name_skip;
> +    ns_name_uncompress;
> +    ns_name_unpack;
> +    ns_parse_ttl;
> +    ns_parserr;
> +    ns_put16;
> +    ns_put32;
> +    ns_samedomain;
> +    ns_samename;
> +    ns_skiprr;
> +    ns_sprintrr;
> +    ns_sprintrrf;
> +    ns_subdomain;
>    }
>    GLIBC_PRIVATE {
> -    # Needed in libnss_dns.
> -    __ns_name_unpack; __ns_name_ntop;
> -    __ns_get16; __ns_get32;
> +    __ns_get16;
> +    __ns_get32;
> +    __ns_name_ntop;
> +    __ns_name_unpack;
> +    __res_context_hostalias;
>      __res_context_query;
>      __res_context_search;
> -    __res_context_hostalias;
>    }
>  }
>  
>  libnss_dns {
>    GLIBC_PRIVATE {
> -    _nss_dns_gethostbyaddr_r; _nss_dns_gethostbyname2_r;
> -    _nss_dns_gethostbyname3_r;
> -    _nss_dns_gethostbyname_r; _nss_dns_getnetbyaddr_r;
> -    _nss_dns_getnetbyname_r; _nss_dns_getcanonname_r;
> +    _nss_dns_getcanonname_r;
>      _nss_dns_gethostbyaddr2_r;
> +    _nss_dns_gethostbyaddr_r;
> +    _nss_dns_gethostbyname2_r;
> +    _nss_dns_gethostbyname3_r;
>      _nss_dns_gethostbyname4_r;
> +    _nss_dns_gethostbyname_r;
> +    _nss_dns_getnetbyaddr_r;
> +    _nss_dns_getnetbyname_r;
>    }
>  }
>  
> @@ -118,7 +185,10 @@ libanl {
>  %if PTHREAD_IN_LIBC
>      __libanl_version_placeholder;
>  %else
> -    gai_cancel; gai_error; gai_suspend; getaddrinfo_a;
> +    gai_cancel;
> +    gai_error;
> +    gai_suspend;
> +    getaddrinfo_a;
>  %endif
>    }
>  }
> 
Ok.

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

* Re: [PATCH v2 00/30] nss_dns move into libc
  2021-07-08 14:59 [PATCH v2 00/30] nss_dns move into libc Florian Weimer via Libc-alpha
                   ` (29 preceding siblings ...)
  2021-07-08 15:07 ` [PATCH 30/30] nss: Directly load nss_dns, without going through dlsym/dlopen Florian Weimer via Libc-alpha
@ 2021-07-15  4:58 ` Carlos O'Donell via Libc-alpha
  30 siblings, 0 replies; 70+ messages in thread
From: Carlos O'Donell via Libc-alpha @ 2021-07-15  4:58 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 7/8/21 10:59 AM, Florian Weimer via Libc-alpha wrote:
> This is a rebase of the previous series.  The final patch (direct
> loading) has been integrated with the nss_files changes.

OK for glibc 2.34 in general, with a few patches needing v3.
Please repost the series and I'll ack the remaining patches quickly
when I see which are left without Reviewed-by.

Thank you for tackling this. I think having nss_files and nss_dns
within libc allows for some straight forward use cases that allow
a process to use 'files' and 'dns' entries in nss regardless of
the current system state and that is often sufficient functionality
in a container/chroot to do the required work.

I've reviewed the entire series and I think we should include
it immediately for glibc 2.34 to go with the other ABI changes.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
 
> Re-tested on i686-linux-gnu, x86_64-linux-gnu.  Built with
> build-many-glibcs.py.
> 
> Thanks,
> Florian
> 
> Florian Weimer (30):
>   socket: Add hidden prototype for setsockopt
>   resolv: Deprecate legacy interfaces in <resolv.h>
>   resolv: Sort Makefile routines and Versions lexicographically
>   nss_dns: Do not use deprecated packet parsing functions
>   resolv: Move ns_name_ntop to its own file and into libc
>   resolv: Move ns_name_unpack to its own file and into libc
>   resolv: Move ns_name_skip to its own file and into libc
>   resolv: Move ns_name_uncompress into its own file and into libc
>   resolv: Move ns_name_pton into its own file and into libc
>   resolv: Move ns_name_pack into its own file and into libc
>   resolv: Move ns_name_compress into its own file and into libc
>   resolv: Move dn_expand to its own file and into libc
>   resolv: Move _getlong, _getshort, __putlong, __putshort to res-putget
>   resolv: Move dn_comp to its own file and into libc
>   resolv: Move dn_skipname to its own file and into libc
>   resolv: Rename res_comp.c to res-name-checking.c and move into libc
>   resolv: Remove unnecessary res_isourserver_p call from send_dg
>   resolv: Move __res_get_nsaddr to its own file and into libc
>   resolv: Move res_isourserver to its own file and reformat to GNU style
>   resolv: Move ns_makecanon into its own file, and into libc
>   resolv: Move ns_samename into its own file, and into libc
>   resolv: Move res_nameinquery to its own file and into libc
>   resolv: Move res_queriesmatch to its own file and into libc
>   resolv: Move __res_context_hostalias into its own file and into libc
>   resolv: Move res_hostalias into its own file, along with hostalias
>   resolv: Move res_send, res_nsend into libc
>   resolv: Move res_mkquery, res_nmkquery into libc
>   resolv: Move res_query functions into libc
>   resolv: Move nss_dns into libc
>   nss: Directly load nss_dns, without going through dlsym/dlopen
> 
>  NEWS                                          |   4 +
>  include/arpa/nameser.h                        |  28 +-
>  include/nss_dns.h                             |  39 ++
>  include/resolv.h                              |  22 +-
>  include/sys/socket.h                          |   3 +-
>  nss/nss_files_functions.c                     |   6 -
>  nss/nss_module.c                              |  55 +-
>  nss/nss_module.h                              |  10 +-
>  resolv/Makefile                               |  85 ++-
>  resolv/Versions                               | 256 ++++++--
>  resolv/arpa/nameser.h                         |  33 +-
>  resolv/compat-gethnamaddr.c                   |  13 +-
>  resolv/dn_comp.c                              | 103 +++
>  resolv/dn_expand.c                            | 112 ++++
>  resolv/dn_skipname.c                          | 103 +++
>  resolv/ns_makecanon.c                         |  50 ++
>  resolv/ns_name.c                              | 614 ------------------
>  resolv/ns_name_compress.c                     |  50 ++
>  resolv/ns_name_ntop.c                         | 145 +++++
>  resolv/ns_name_pack.c                         | 202 ++++++
>  resolv/ns_name_pton.c                         | 157 +++++
>  resolv/ns_name_skip.c                         |  62 ++
>  resolv/ns_name_uncompress.c                   |  45 ++
>  resolv/ns_name_unpack.c                       | 115 ++++
>  resolv/ns_parse.c                             |   4 +-
>  resolv/ns_print.c                             |   8 +-
>  resolv/ns_samedomain.c                        |  62 +-
>  resolv/ns_samename.c                          |  38 ++
>  resolv/nss_dns/dns-canon.c                    |  25 +-
>  resolv/nss_dns/dns-host.c                     |  78 +--
>  resolv/nss_dns/dns-network.c                  |  15 +-
>  resolv/nss_dns_functions.c                    |  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                             | 238 ++-----
>  resolv/resolv-deprecated.c                    |  56 ++
>  resolv/resolv-internal.h                      |  21 +-
>  resolv/resolv.h                               | 101 +--
>  sysdeps/mach/hurd/i386/libc.abilist           |  48 ++
>  sysdeps/mach/hurd/i386/libresolv.abilist      |  24 -
>  sysdeps/mach/hurd/setsockopt.c                |   2 +-
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  48 ++
>  .../unix/sysv/linux/aarch64/libresolv.abilist |  24 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist    |  53 ++
>  .../unix/sysv/linux/alpha/libresolv.abilist   |  29 -
>  sysdeps/unix/sysv/linux/arc/libc.abilist      |  48 ++
>  sysdeps/unix/sysv/linux/arc/libresolv.abilist |  24 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  48 ++
>  .../unix/sysv/linux/arm/be/libresolv.abilist  |  24 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  48 ++
>  .../unix/sysv/linux/arm/le/libresolv.abilist  |  24 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist     |  48 ++
>  .../unix/sysv/linux/csky/libresolv.abilist    |  24 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist     |  53 ++
>  .../unix/sysv/linux/hppa/libresolv.abilist    |  29 -
>  sysdeps/unix/sysv/linux/i386/libc.abilist     |  53 ++
>  .../unix/sysv/linux/i386/libresolv.abilist    |  29 -
>  sysdeps/unix/sysv/linux/ia64/libc.abilist     |  53 ++
>  .../unix/sysv/linux/ia64/libresolv.abilist    |  29 -
>  .../sysv/linux/m68k/coldfire/libc.abilist     |  48 ++
>  .../linux/m68k/coldfire/libresolv.abilist     |  24 -
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  53 ++
>  .../sysv/linux/m68k/m680x0/libresolv.abilist  |  29 -
>  .../sysv/linux/microblaze/be/libc.abilist     |  48 ++
>  .../linux/microblaze/be/libresolv.abilist     |  24 -
>  .../sysv/linux/microblaze/le/libc.abilist     |  48 ++
>  .../linux/microblaze/le/libresolv.abilist     |  24 -
>  .../sysv/linux/mips/mips32/fpu/libc.abilist   |  53 ++
>  .../sysv/linux/mips/mips32/libresolv.abilist  |  29 -
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist |  53 ++
>  .../sysv/linux/mips/mips64/n32/libc.abilist   |  53 ++
>  .../linux/mips/mips64/n32/libresolv.abilist   |  29 -
>  .../sysv/linux/mips/mips64/n64/libc.abilist   |  53 ++
>  .../linux/mips/mips64/n64/libresolv.abilist   |  29 -
>  sysdeps/unix/sysv/linux/nios2/libc.abilist    |  48 ++
>  .../unix/sysv/linux/nios2/libresolv.abilist   |  24 -
>  .../linux/powerpc/powerpc32/fpu/libc.abilist  |  53 ++
>  .../linux/powerpc/powerpc32/libresolv.abilist |  29 -
>  .../powerpc/powerpc32/nofpu/libc.abilist      |  53 ++
>  .../linux/powerpc/powerpc64/be/libc.abilist   |  48 ++
>  .../powerpc/powerpc64/be/libresolv.abilist    |  24 -
>  .../linux/powerpc/powerpc64/le/libc.abilist   |  48 ++
>  .../powerpc/powerpc64/le/libresolv.abilist    |  24 -
>  .../unix/sysv/linux/riscv/rv32/libc.abilist   |  48 ++
>  .../sysv/linux/riscv/rv32/libresolv.abilist   |  24 -
>  .../unix/sysv/linux/riscv/rv64/libc.abilist   |  48 ++
>  .../sysv/linux/riscv/rv64/libresolv.abilist   |  24 -
>  .../unix/sysv/linux/s390/s390-32/libc.abilist |  53 ++
>  .../sysv/linux/s390/s390-32/libresolv.abilist |  29 -
>  .../unix/sysv/linux/s390/s390-64/libc.abilist |  48 ++
>  .../sysv/linux/s390/s390-64/libresolv.abilist |  24 -
>  sysdeps/unix/sysv/linux/setsockopt.c          |   5 +-
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  53 ++
>  .../unix/sysv/linux/sh/be/libresolv.abilist   |  29 -
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  53 ++
>  .../unix/sysv/linux/sh/le/libresolv.abilist   |  29 -
>  .../sysv/linux/sparc/sparc32/libc.abilist     |  53 ++
>  .../linux/sparc/sparc32/libresolv.abilist     |  29 -
>  .../sysv/linux/sparc/sparc64/libc.abilist     |  53 ++
>  .../linux/sparc/sparc64/libresolv.abilist     |  29 -
>  .../unix/sysv/linux/x86_64/64/libc.abilist    |  48 ++
>  .../sysv/linux/x86_64/64/libresolv.abilist    |  24 -
>  .../unix/sysv/linux/x86_64/x32/libc.abilist   |  48 ++
>  .../sysv/linux/x86_64/x32/libresolv.abilist   |  24 -
>  114 files changed, 4365 insertions(+), 2160 deletions(-)
>  create mode 100644 include/nss_dns.h
>  create mode 100644 resolv/dn_comp.c
>  create mode 100644 resolv/dn_expand.c
>  create mode 100644 resolv/dn_skipname.c
>  create mode 100644 resolv/ns_makecanon.c
>  create mode 100644 resolv/ns_name_compress.c
>  create mode 100644 resolv/ns_name_ntop.c
>  create mode 100644 resolv/ns_name_pack.c
>  create mode 100644 resolv/ns_name_pton.c
>  create mode 100644 resolv/ns_name_skip.c
>  create mode 100644 resolv/ns_name_uncompress.c
>  create mode 100644 resolv/ns_name_unpack.c
>  create mode 100644 resolv/ns_samename.c
>  create mode 100644 resolv/nss_dns_functions.c
>  rename resolv/{res_comp.c => res-name-checking.c} (73%)
>  create mode 100644 resolv/res-putget.c
>  create mode 100644 resolv/res_context_hostalias.c
>  create mode 100644 resolv/res_get_nsaddr.c
>  create mode 100644 resolv/res_hostalias.c
>  create mode 100644 resolv/res_isourserver.c
>  create mode 100644 resolv/res_nameinquery.c
>  create mode 100644 resolv/res_queriesmatch.c
>  create mode 100644 resolv/resolv-deprecated.c
> 


-- 
Cheers,
Carlos.


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

* Re: [PATCH 01/30] socket: Add hidden prototype for setsockopt
  2021-07-08 14:59 ` [PATCH 01/30] socket: Add hidden prototype for setsockopt Florian Weimer via Libc-alpha
  2021-07-08 18:02   ` Adhemerval Zanella via Libc-alpha
@ 2021-07-15  4:59   ` Carlos O'Donell via Libc-alpha
  1 sibling, 0 replies; 70+ messages in thread
From: Carlos O'Donell via Libc-alpha @ 2021-07-15  4:59 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 7/8/21 10:59 AM, Florian Weimer via Libc-alpha wrote:

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

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

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


-- 
Cheers,
Carlos.


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

* Re: [PATCH 02/30] resolv: Deprecate legacy interfaces in <resolv.h>
  2021-07-08 14:59 ` [PATCH 02/30] resolv: Deprecate legacy interfaces in <resolv.h> Florian Weimer via Libc-alpha
  2021-07-08 18:32   ` Adhemerval Zanella via Libc-alpha
@ 2021-07-15  4:59   ` Carlos O'Donell via Libc-alpha
  1 sibling, 0 replies; 70+ messages in thread
From: Carlos O'Donell via Libc-alpha @ 2021-07-15  4:59 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 7/8/21 10:59 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.
> 
> 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.

I like the direction we go with this patch. I have always felt that
many of these functions should be deprecated and eventually removed.
I have even hemmed and hawed about either updating them or adding
man page documents for them, but I think they are ill suited to having
in glibc. Many of them belong in a dedicated DNS library where they
are kept up to date following the evolution of DNS.

I think we need a full list in the NEWS of all the deprecated interfaces
though just for the sake of searchability and to make it clear what
is being deprecated.

Please post v2 with NEWS list of deprecated functions and then I'll
ACK it for glibc 2.34.

Tested without regression on x86_64 and i686.

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

> ---
>  NEWS                  |  4 +++
>  resolv/arpa/nameser.h | 33 ++++++++++++-----
>  resolv/resolv.h       | 84 +++++++++++++++++++++++++++----------------
>  3 files changed, 82 insertions(+), 39 deletions(-)
> 
> diff --git a/NEWS b/NEWS
> index 8e72946c3f..23ff7fd104 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -77,6 +77,10 @@ Deprecated and removed features, and other changes affecting compatibility:
>  * The function pthread_yield has been deprecated; programs should use
>    the equivalent standard function sched_yield instead.
>  
> +* Various rarely-used functions declared in <resolv.h> and
> +  <arpa/nameser.h> have been deprecated.  Applications are encouraged to
> +  use dedicated DNS processing libraries if applicable.

Please list the exact functions deprecated in NEWS.

> +
>  * The pthread cancellation handler is now installed with SA_RESTART and
>    pthread_cancel will always send the internal SIGCANCEL on a cancellation
>    request.  It should not be visible to application since the cancellation
> diff --git a/resolv/arpa/nameser.h b/resolv/arpa/nameser.h
> index a99d5ec508..017d7b194a 100644
> --- a/resolv/arpa/nameser.h
> +++ b/resolv/arpa/nameser.h
> @@ -52,6 +52,12 @@
>  #include <sys/types.h>
>  #include <stdint.h>
>  
> +#ifdef _LIBC
> +# define __NAMESER_DEPRECATED
> +#else
> +# define __NAMESER_DEPRECATED __attribute_deprecated__
> +#endif

Adhemerval noted that this could be problematic because this is a
public header.

I don't think this is the case because usr/include/sys/cdefs.h includes
a definition for __attribute_deprecated__ specifically for use in
all the other headers we have. We use __attribute_deprecated__ in
10+ headers today.

I reviewed the installed public headers and they look correct to me.

> +
>  /*
>   * 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;

OK.

> +int		ns_format_ttl (unsigned long, char *, size_t)
> +  __THROW __NAMESER_DEPRECATED;

OK.

> +int		ns_parse_ttl (const char *, unsigned long *)
> +  __THROW __NAMESER_DEPRECATED;

OK.

> +uint32_t	ns_datetosecs (const char *, int *)
> +  __THROW __NAMESER_DEPRECATED;

OK.

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

OK.

> +int		ns_subdomain (const char *, const char *) __THROW
> +  __NAMESER_DEPRECATED;

OK.

> +int		ns_makecanon (const char *, char *, size_t) __THROW
> +  __NAMESER_DEPRECATED;

OK.

> +int		ns_samename (const char *, const char *) __THROW
> +  __NAMESER_DEPRECATED;

OK.

>  __END_DECLS
>  
>  #include <arpa/nameser_compat.h>
> diff --git a/resolv/resolv.h b/resolv/resolv.h
> index a039a9e636..d55942a6b6 100644
> --- a/resolv/resolv.h
> +++ b/resolv/resolv.h
> @@ -174,14 +174,27 @@ __END_DECLS
>  #define res_search		__res_search
>  #define res_send		__res_send
>  
> +#ifdef _LIBC
> +# define __RESOLV_DEPRECATED
> +# define __RESOLV_DEPRECATED_MSG(msg)
> +#else
> +# define __RESOLV_DEPRECATED __attribute_deprecated__
> +# define __RESOLV_DEPRECATED_MSG(msg) __attribute_deprecated_msg__ (msg)
> +#endif
> +
>  __BEGIN_DECLS
> -void		fp_nquery (const unsigned char *, int, FILE *) __THROW;
> -void		fp_query (const unsigned char *, FILE *) __THROW;
> -const char *	hostalias (const char *) __THROW;
> -void		p_query (const unsigned char *) __THROW;
> +void		fp_nquery (const unsigned char *, int, FILE *) __THROW
> +  __RESOLV_DEPRECATED;

OK.

> +void		fp_query (const unsigned char *, FILE *) __THROW
> +  __RESOLV_DEPRECATED;

OK.

> +const char *	hostalias (const char *) __THROW
> +  __RESOLV_DEPRECATED_MSG ("use getaddrinfo instead");

OK.

> +void		p_query (const unsigned char *) __THROW
> +  __RESOLV_DEPRECATED;

OK.

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

OK.

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

OK.

> +const char *	sym_ntos (const struct res_sym *, int, int *) __THROW
> +  __RESOLV_DEPRECATED;

OK.

> +const char *	sym_ntop (const struct res_sym *, int, int *) __THROW
> +  __RESOLV_DEPRECATED;

OK.

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

OK.

> +const char *	loc_ntoa (const unsigned char *__binary, char *__ascii) __THROW
> +  __RESOLV_DEPRECATED;

OK.

>  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");

OK.

> +void		putshort (uint16_t, unsigned char *) __THROW
> +  __RESOLV_DEPRECATED_MSG ("use NS_PUT32 instead");

OK.

> +const char *	p_class (int) __THROW __RESOLV_DEPRECATED;
OK.

> +const char *	p_time (uint32_t) __THROW __RESOLV_DEPRECATED;

OK.

> +const char *	p_type (int) __THROW __RESOLV_DEPRECATED;

OK.

> +const char *	p_rcode (int) __THROW __RESOLV_DEPRECATED;

OK.

> +const unsigned char * p_cdnname (const unsigned char *, const unsigned char *,
> +				 int, FILE *) __THROW __RESOLV_DEPRECATED;

OK.

>  const unsigned char * p_cdname (const unsigned char *, const unsigned char *,
> -				FILE *) __THROW;
> +				FILE *) __THROW __RESOLV_DEPRECATED;

OK.

>  const unsigned char * p_fqnname (const unsigned char *__cp,
>  				 const unsigned char *__msg,
> -				 int, char *, int) __THROW;
> -const unsigned char * p_fqname (const unsigned char *,
> -				const unsigned char *, FILE *) __THROW;
> -const char *	p_option (unsigned long __option) __THROW;
> +				 int, char *, int) __THROW __RESOLV_DEPRECATED;

OK.

> +const unsigned char * p_fqname (const unsigned char *, const unsigned char *,
> +				FILE *) __THROW __RESOLV_DEPRECATED;

OK.

> +const char *	p_option (unsigned long __option) __THROW __RESOLV_DEPRECATED;

OK.

>  int		dn_count_labels (const char *) __THROW;
>  int		dn_comp (const char *, unsigned char *, int, unsigned char **,
>  			 unsigned char **) __THROW;
>  int		dn_expand (const unsigned char *, const unsigned char *,
>  			   const unsigned char *, char *, int) __THROW;
> -unsigned int	res_randomid (void) __THROW;
> +unsigned int	res_randomid (void) __THROW
> +  __RESOLV_DEPRECATED_MSG ("use getentropy instead");

OK. Good message.

>  int		res_nameinquery (const char *, int, int,
>  				 const unsigned char *,
> -				 const unsigned char *) __THROW;
> +				 const unsigned char *) __THROW
> +  __RESOLV_DEPRECATED;

OK.

>  int		res_queriesmatch (const unsigned char *,
>  				  const unsigned char *,
>  				  const unsigned char *,
> -				  const unsigned char *) __THROW;
> +				  const unsigned char *) __THROW
> +  __RESOLV_DEPRECATED;

OK.

>  /* 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;

OK.

>  const char *	res_hostalias (const res_state, const char *, char *, size_t)
> -     __THROW;
> +     __THROW __RESOLV_DEPRECATED_MSG ("use getaddrinfo instead");

OK.


>  int		res_nquery (res_state, const char *, int, int,
>  			    unsigned char *, int) __THROW;
>  int		res_nsearch (res_state, const char *, int, int,
> 


-- 
Cheers,
Carlos.


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

* Re: [PATCH 03/30] resolv: Sort Makefile routines and Versions lexicographically
  2021-07-08 14:59 ` [PATCH 03/30] resolv: Sort Makefile routines and Versions lexicographically Florian Weimer via Libc-alpha
  2021-07-08 18:33   ` Adhemerval Zanella via Libc-alpha
@ 2021-07-15  4:59   ` Carlos O'Donell via Libc-alpha
  1 sibling, 0 replies; 70+ messages in thread
From: Carlos O'Donell via Libc-alpha @ 2021-07-15  4:59 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 7/8/21 10:59 AM, Florian Weimer via Libc-alpha wrote:

This will make refactoring and cleanup much easier and avoid potential
future conflicts. Thanks for the cleanup.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

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

> ---
>  resolv/Makefile |  61 ++++++++++++---
>  resolv/Versions | 194 ++++++++++++++++++++++++++++++++----------------
>  2 files changed, 182 insertions(+), 73 deletions(-)
> 
> diff --git a/resolv/Makefile b/resolv/Makefile
> index 1d3565d478..f14b149b31 100644
> --- a/resolv/Makefile
> +++ b/resolv/Makefile
> @@ -27,9 +27,21 @@ headers	:= resolv.h bits/types/res_state.h \
>  	   arpa/nameser.h arpa/nameser_compat.h \
>  	   sys/bitypes.h
>  
> -routines := herror inet_addr inet_ntop inet_pton nsap_addr res_init \
> -	    res_hconf res_libc res-state res_randomid res-close \
> -	    resolv_context resolv_conf
> +routines := \
> +  herror \
> +  inet_addr \
> +  inet_ntop \
> +  inet_pton \
> +  nsap_addr \
> +  res-close \
> +  res-state \
> +  res_hconf \
> +  res_init \
> +  res_libc \
> +  res_randomid \
> +  resolv_conf \
> +  resolv_context \
> +  # routines

OK. YAYAYAYAY! :-)

>  
>  tests = tst-aton tst-leaks tst-inet_ntop
>  tests-container = tst-leaks2
> @@ -105,15 +117,37 @@ xtests += tst-resolv-qtypes
>  xtests += tst-resolv-rotate
>  endif
>  extra-libs-others = $(extra-libs)
> -libresolv-routines := res_comp res_debug \
> -		      res_data res_mkquery res_query res_send		\
> -		      inet_net_ntop inet_net_pton inet_neta base64	\
> -		      ns_parse ns_name ns_netint ns_ttl ns_print	\
> -		      ns_samedomain ns_date res_enable_icmp \
> -		      compat-hooks compat-gethnamaddr
> +libresolv-routines := \
> +  base64 \
> +  compat-gethnamaddr \
> +  compat-hooks \
> +  inet_net_ntop \
> +  inet_net_pton \
> +  inet_neta \
> +  ns_date \
> +  ns_name \
> +  ns_netint \
> +  ns_parse \
> +  ns_print \
> +  ns_samedomain \
> +  ns_ttl \
> +  res_comp \
> +  res_data \
> +  res_debug \
> +  res_enable_icmp \
> +  res_mkquery \
> +  res_query \
> +  res_send \
> +  # libresolv-routines

OK.

>  
>  $(libanl-routines-var) += \
> -  gai_cancel gai_error gai_misc gai_notify gai_suspend getaddrinfo_a
> +  gai_cancel \
> +  gai_error \
> +  gai_misc \
> +  gai_notify \
> +  gai_suspend \
> +  getaddrinfo_a \
> +  # $(libanl-routines-var)

OK.

>  
>  libanl-routines += libanl-compat
>  libanl-shared-only-routines += libanl-compat
> @@ -121,7 +155,12 @@ libanl-shared-only-routines += libanl-compat
>  subdir-dirs = nss_dns
>  vpath %.c nss_dns
>  
> -libnss_dns-routines	:= dns-host dns-network dns-canon
> +libnss_dns-routines := \
> +  dns-canon \
> +  dns-host \
> +  dns-network \
> +  # libnss_dns-routines

OK.

> +
>  libnss_dns-inhibit-o	= $(filter-out .os,$(object-suffixes))
>  ifeq ($(build-static-nss),yes)
>  routines                += $(libnss_dns-routines) $(libresolv-routines)
> diff --git a/resolv/Versions b/resolv/Versions
> index d4f6b4b819..3b5328301a 100644
> --- a/resolv/Versions
> +++ b/resolv/Versions
> @@ -1,115 +1,182 @@
>  libc {
>    GLIBC_2.0 {
> -    _res;
> -
> -    # helper functions
>      __h_errno_location;
> -
> -    # functions used in other libraries
>      __res_randomid;
> -
> -    # variables in normal name space
> -    h_errlist; h_nerr;
> -
> -    # h*
> -    herror; hstrerror;
> -
> -    # r*
> +    _res;
> +    h_errlist;
> +    h_nerr;
> +    herror;
> +    hstrerror;

OK.

>      res_init;
>    }
>    GLIBC_2.2 {
> -    # r*
> -    __res_state; __res_init; __res_nclose; __res_ninit; _res_hconf;
> +    __res_init;
> +    __res_nclose;
> +    __res_ninit;
> +    __res_state;
> +    _res_hconf;

OK.

>    }
>    GLIBC_2.2.3 {
>  %if PTHREAD_IN_LIBC
> -    gai_cancel; gai_error; gai_suspend; getaddrinfo_a;
> +    gai_cancel;
> +    gai_error;
> +    gai_suspend;
> +    getaddrinfo_a;

OK.

>  %endif
>    }
>    GLIBC_2.34 {
>  %if PTHREAD_IN_LIBC
> -    gai_cancel; gai_error; gai_suspend; getaddrinfo_a;
> +    gai_cancel;
> +    gai_error;
> +    gai_suspend;
> +    getaddrinfo_a;

OK.

>  %endif
>    }
>    GLIBC_PRIVATE {
>  %if !PTHREAD_IN_LIBC
>      __gai_sigqueue;
>  %endif
> -
> -    __h_errno; __resp;
> -
> -    __res_iclose;
> +    __h_errno;
>      __inet_aton_exact;
>      __inet_pton_length;
> +    __res_iclose;
>      __resolv_context_get;
> -    __resolv_context_get_preinit;
>      __resolv_context_get_override;
> +    __resolv_context_get_preinit;
>      __resolv_context_put;
> +    __resp;

OK.

>    }
>  }
>  
>  libresolv {
>    GLIBC_2.0 {
> -    _gethtbyaddr; _gethtbyname; _gethtbyname2; _gethtent; _getlong;
> -    _getshort; _res_opcodes; _res_resultcodes; _sethtent; dn_expand;
> -    inet_net_ntop; inet_net_pton; inet_neta; res_gethostbyaddr;
> -    res_gethostbyname; res_gethostbyname2; res_mkquery; res_query;
> -    res_querydomain; res_search; res_send_setqhook; res_send_setrhook;
> -    # Variables
> -    __p_class_syms; __p_type_syms;
> -    # Private routines shared between libc/net, named, nslookup and others.
> -    __b64_ntop; __b64_pton;
> -    __dn_comp;  __dn_count_labels; __dn_skipname;
> -    __fp_nquery; __fp_query; __fp_resstat; __hostalias;
> -    __loc_aton; __loc_ntoa;
> -    __p_cdname; __p_cdnname; __p_class; __p_fqname; __p_fqnname; __p_option;
> -    __p_query; __p_rr; __p_secstodate; __p_time; __p_type;
> -    __putlong; __putshort;
> -    __res_close; __res_dnok; __res_hnok; __res_isourserver; __res_mailok;
> -    __res_nameinquery; __res_ownok; __res_queriesmatch;
> +    __b64_ntop;
> +    __b64_pton;
> +    __dn_comp;
> +    __dn_count_labels;
> +    __dn_skipname;
> +    __fp_nquery;
> +    __fp_query;
> +    __fp_resstat;
> +    __hostalias;
> +    __loc_aton;
> +    __loc_ntoa;
> +    __p_cdname;
> +    __p_cdnname;
> +    __p_class;
> +    __p_class_syms;
> +    __p_fqname;
> +    __p_fqnname;
> +    __p_option;
> +    __p_query;
> +    __p_rr;
> +    __p_secstodate;
> +    __p_time;
> +    __p_type;
> +    __p_type_syms;
> +    __putlong;
> +    __putshort;
> +    __res_close;
> +    __res_dnok;
> +    __res_hnok;
> +    __res_isourserver;
> +    __res_mailok;
> +    __res_nameinquery;
> +    __res_ownok;
> +    __res_queriesmatch;
>      __res_send;
> -    __sym_ntop; __sym_ntos; __sym_ston;
> +    __sym_ntop;
> +    __sym_ntos;
> +    __sym_ston;
> +    _gethtbyaddr;
> +    _gethtbyname2;
> +    _gethtbyname;
> +    _gethtent;
> +    _getlong;
> +    _getshort;
> +    _res_opcodes;
> +    _res_resultcodes;
> +    _sethtent;
> +    dn_expand;
> +    inet_net_ntop;
> +    inet_net_pton;
> +    inet_neta;
> +    res_gethostbyaddr;
> +    res_gethostbyname2;
> +    res_gethostbyname;
> +    res_mkquery;
> +    res_query;
> +    res_querydomain;
> +    res_search;
> +    res_send_setqhook;
> +    res_send_setrhook;

OK.

>    }
>    GLIBC_2.2 {
>      __dn_expand;
> -    __res_hostalias; __res_mkquery; __res_nmkquery; __res_nquery;
> -    __res_nquerydomain; __res_nsearch; __res_nsend; __res_query;
> -    __res_querydomain; __res_search;
> +    __res_hostalias;
> +    __res_mkquery;
> +    __res_nmkquery;
> +    __res_nquery;
> +    __res_nquerydomain;
> +    __res_nsearch;
> +    __res_nsend;
> +    __res_query;
> +    __res_querydomain;
> +    __res_search;
>    }
>    GLIBC_2.3.2 {
>      __p_rcode;
>    }
>    GLIBC_2.9 {
> -    ns_msg_getflag;
> -    ns_get16; ns_get32; ns_put16; ns_put32;
> -    ns_initparse; ns_skiprr; ns_parserr;
> -    ns_sprintrr; ns_sprintrrf;
> -    ns_format_ttl; ns_parse_ttl;
>      ns_datetosecs;
> -    ns_name_ntol; ns_name_ntop; ns_name_pton;
> -    ns_name_unpack; ns_name_pack;
> -    ns_name_uncompress; ns_name_compress;
> -    ns_name_skip; ns_name_rollback;
> -    ns_samedomain; ns_subdomain; ns_makecanon; ns_samename;
> +    ns_format_ttl;
> +    ns_get16;
> +    ns_get32;
> +    ns_initparse;
> +    ns_makecanon;
> +    ns_msg_getflag;
> +    ns_name_compress;
> +    ns_name_ntol;
> +    ns_name_ntop;
> +    ns_name_pack;
> +    ns_name_pton;
> +    ns_name_rollback;
> +    ns_name_skip;
> +    ns_name_uncompress;
> +    ns_name_unpack;
> +    ns_parse_ttl;
> +    ns_parserr;
> +    ns_put16;
> +    ns_put32;
> +    ns_samedomain;
> +    ns_samename;
> +    ns_skiprr;
> +    ns_sprintrr;
> +    ns_sprintrrf;
> +    ns_subdomain;

OK.

>    }
>    GLIBC_PRIVATE {
> -    # Needed in libnss_dns.
> -    __ns_name_unpack; __ns_name_ntop;
> -    __ns_get16; __ns_get32;
> +    __ns_get16;
> +    __ns_get32;
> +    __ns_name_ntop;
> +    __ns_name_unpack;
> +    __res_context_hostalias;
>      __res_context_query;
>      __res_context_search;
> -    __res_context_hostalias;

OK.

>    }
>  }
>  
>  libnss_dns {
>    GLIBC_PRIVATE {
> -    _nss_dns_gethostbyaddr_r; _nss_dns_gethostbyname2_r;
> -    _nss_dns_gethostbyname3_r;
> -    _nss_dns_gethostbyname_r; _nss_dns_getnetbyaddr_r;
> -    _nss_dns_getnetbyname_r; _nss_dns_getcanonname_r;
> +    _nss_dns_getcanonname_r;
>      _nss_dns_gethostbyaddr2_r;
> +    _nss_dns_gethostbyaddr_r;
> +    _nss_dns_gethostbyname2_r;
> +    _nss_dns_gethostbyname3_r;
>      _nss_dns_gethostbyname4_r;
> +    _nss_dns_gethostbyname_r;
> +    _nss_dns_getnetbyaddr_r;
> +    _nss_dns_getnetbyname_r;

OK.

>    }
>  }
>  
> @@ -118,7 +185,10 @@ libanl {
>  %if PTHREAD_IN_LIBC
>      __libanl_version_placeholder;
>  %else
> -    gai_cancel; gai_error; gai_suspend; getaddrinfo_a;
> +    gai_cancel;
> +    gai_error;
> +    gai_suspend;
> +    getaddrinfo_a;

OK.

>  %endif
>    }
>  }
> 


-- 
Cheers,
Carlos.


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

* Re: [PATCH 04/30] nss_dns: Do not use deprecated packet parsing functions
  2021-07-08 15:00 ` [PATCH 04/30] nss_dns: Do not use deprecated packet parsing functions Florian Weimer via Libc-alpha
@ 2021-07-15  5:00   ` Carlos O'Donell via Libc-alpha
  0 siblings, 0 replies; 70+ messages in thread
From: Carlos O'Donell via Libc-alpha @ 2021-07-15  5:00 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 7/8/21 11:00 AM, Florian Weimer via Libc-alpha wrote:

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

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

> ---
>  resolv/nss_dns/dns-canon.c | 13 ++++++++-----
>  resolv/nss_dns/dns-host.c  | 28 ++++++++++++----------------
>  2 files changed, 20 insertions(+), 21 deletions(-)
> 
> diff --git a/resolv/nss_dns/dns-canon.c b/resolv/nss_dns/dns-canon.c
> index cb321a0650..1cdc9a86c9 100644
> --- a/resolv/nss_dns/dns-canon.c
> +++ b/resolv/nss_dns/dns-canon.c
> @@ -150,15 +150,18 @@ _nss_dns_getcanonname_r (const char *name, char *buffer, size_t buflen,
>  	      if (type != ns_t_cname)
>  		goto unavail;
>  
> -	      if (__ns_get16 (ptr) != ns_c_in)
> +	      uint16_t rrclass;
> +	      NS_GET16 (rrclass, ptr);
> +	      if (rrclass != ns_c_in)

OK. This advances by NS_INT16SZ (which previously did not).

>  		goto unavail;
>  
> -	      /* Also skip over class and TTL.  */
> -	      ptr += sizeof (uint16_t) + sizeof (uint32_t);
> +	      /* Skip over TTL.  */
> +	      ptr += sizeof (uint32_t);

OK. This fixes the advance.

>  
>  	      /* Skip over RDATA length and RDATA itself.  */
> -	      uint16_t rdatalen = __ns_get16 (ptr);
> -	      ptr += sizeof (uint16_t);
> +	      uint16_t rdatalen;
> +	      NS_GET16 (rdatalen, ptr);

OK. No ptr += because NS_GET16 advances by NS_INT16SZ.

> +
>  	      /* Not enough room for RDATA.  */
>  	      if (endptr - ptr < rdatalen)
>  		goto unavail;
> diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c
> index 47e851db55..d6a69a602a 100644
> --- a/resolv/nss_dns/dns-host.c
> +++ b/resolv/nss_dns/dns-host.c
> @@ -782,14 +782,11 @@ getanswer_r (struct resolv_context *ctx,
>  	  continue;
>  	}
>  
> -      type = __ns_get16 (cp);
> -      cp += INT16SZ;			/* type */
> -      class = __ns_get16 (cp);
> -      cp += INT16SZ;			/* class */
> -      int32_t ttl = __ns_get32 (cp);
> -      cp += INT32SZ;			/* TTL */
> -      n = __ns_get16 (cp);
> -      cp += INT16SZ;			/* len */
> +      NS_GET16 (type, cp);
> +      NS_GET16 (class, cp);
> +      int32_t ttl;
> +      NS_GET32 (ttl, cp);
> +      NS_GET16 (n, cp);		/* RDATA length.  */

OK.

>  
>        if (end_of_message - cp < n)
>  	{
> @@ -1116,14 +1113,13 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname,
>  	  continue;
>  	}
>  
> -      int type = __ns_get16 (cp);
> -      cp += INT16SZ;			/* type */
> -      int class = __ns_get16 (cp);
> -      cp += INT16SZ;			/* class */
> -      int32_t ttl = __ns_get32 (cp);
> -      cp += INT32SZ;			/* TTL */
> -      n = __ns_get16 (cp);
> -      cp += INT16SZ;			/* len */
> +      uint16_t type;
> +      NS_GET16 (type, cp);
> +      uint16_t class;
> +      NS_GET16 (class, cp);
> +      int32_t ttl;
> +      NS_GET32 (ttl, cp);
> +      NS_GET16 (n, cp);		/* RDATA length.  */

OK.

>  
>        if (end_of_message - cp < n)
>  	{
> 


-- 
Cheers,
Carlos.


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

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

On 7/8/21 11:00 AM, Florian Weimer via Libc-alpha wrote:
> Reformat to GNU style.  Avoid out-of-bounds pointer arithmetic
> (e.g., use eom - dn < 2 instead of dn + 1 >= eom).  Inline the
> labellen function and fold the compression pointer check into
> the length check (l >= 64).  Assume ASCII encoding.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
 
> The symbol was moved using scripts/move-symbol-to-libc.py.
> ---
>  include/arpa/nameser.h                        |   4 +-
>  resolv/Makefile                               |   1 +
>  resolv/Versions                               |   7 +-
>  resolv/ns_name.c                              | 128 +---------------
>  resolv/ns_name_ntop.c                         | 145 ++++++++++++++++++
>  sysdeps/mach/hurd/i386/libc.abilist           |   2 +
>  sysdeps/mach/hurd/i386/libresolv.abilist      |   1 -
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  |   2 +
>  .../unix/sysv/linux/aarch64/libresolv.abilist |   1 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist    |   2 +
>  .../unix/sysv/linux/alpha/libresolv.abilist   |   1 -
>  sysdeps/unix/sysv/linux/arc/libc.abilist      |   2 +
>  sysdeps/unix/sysv/linux/arc/libresolv.abilist |   1 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist   |   2 +
>  .../unix/sysv/linux/arm/be/libresolv.abilist  |   1 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   |   2 +
>  .../unix/sysv/linux/arm/le/libresolv.abilist  |   1 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist     |   2 +
>  .../unix/sysv/linux/csky/libresolv.abilist    |   1 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist     |   2 +
>  .../unix/sysv/linux/hppa/libresolv.abilist    |   1 -
>  sysdeps/unix/sysv/linux/i386/libc.abilist     |   2 +
>  .../unix/sysv/linux/i386/libresolv.abilist    |   1 -
>  sysdeps/unix/sysv/linux/ia64/libc.abilist     |   2 +
>  .../unix/sysv/linux/ia64/libresolv.abilist    |   1 -
>  .../sysv/linux/m68k/coldfire/libc.abilist     |   2 +
>  .../linux/m68k/coldfire/libresolv.abilist     |   1 -
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  |   2 +
>  .../sysv/linux/m68k/m680x0/libresolv.abilist  |   1 -
>  .../sysv/linux/microblaze/be/libc.abilist     |   2 +
>  .../linux/microblaze/be/libresolv.abilist     |   1 -
>  .../sysv/linux/microblaze/le/libc.abilist     |   2 +
>  .../linux/microblaze/le/libresolv.abilist     |   1 -
>  .../sysv/linux/mips/mips32/fpu/libc.abilist   |   2 +
>  .../sysv/linux/mips/mips32/libresolv.abilist  |   1 -
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist |   2 +
>  .../sysv/linux/mips/mips64/n32/libc.abilist   |   2 +
>  .../linux/mips/mips64/n32/libresolv.abilist   |   1 -
>  .../sysv/linux/mips/mips64/n64/libc.abilist   |   2 +
>  .../linux/mips/mips64/n64/libresolv.abilist   |   1 -
>  sysdeps/unix/sysv/linux/nios2/libc.abilist    |   2 +
>  .../unix/sysv/linux/nios2/libresolv.abilist   |   1 -
>  .../linux/powerpc/powerpc32/fpu/libc.abilist  |   2 +
>  .../linux/powerpc/powerpc32/libresolv.abilist |   1 -
>  .../powerpc/powerpc32/nofpu/libc.abilist      |   2 +
>  .../linux/powerpc/powerpc64/be/libc.abilist   |   2 +
>  .../powerpc/powerpc64/be/libresolv.abilist    |   1 -
>  .../linux/powerpc/powerpc64/le/libc.abilist   |   2 +
>  .../powerpc/powerpc64/le/libresolv.abilist    |   1 -
>  .../unix/sysv/linux/riscv/rv32/libc.abilist   |   2 +
>  .../sysv/linux/riscv/rv32/libresolv.abilist   |   1 -
>  .../unix/sysv/linux/riscv/rv64/libc.abilist   |   2 +
>  .../sysv/linux/riscv/rv64/libresolv.abilist   |   1 -
>  .../unix/sysv/linux/s390/s390-32/libc.abilist |   2 +
>  .../sysv/linux/s390/s390-32/libresolv.abilist |   1 -
>  .../unix/sysv/linux/s390/s390-64/libc.abilist |   2 +
>  .../sysv/linux/s390/s390-64/libresolv.abilist |   1 -
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    |   2 +
>  .../unix/sysv/linux/sh/be/libresolv.abilist   |   1 -
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    |   2 +
>  .../unix/sysv/linux/sh/le/libresolv.abilist   |   1 -
>  .../sysv/linux/sparc/sparc32/libc.abilist     |   2 +
>  .../linux/sparc/sparc32/libresolv.abilist     |   1 -
>  .../sysv/linux/sparc/sparc64/libc.abilist     |   2 +
>  .../linux/sparc/sparc64/libresolv.abilist     |   1 -
>  .../unix/sysv/linux/x86_64/64/libc.abilist    |   2 +
>  .../sysv/linux/x86_64/64/libresolv.abilist    |   1 -
>  .../unix/sysv/linux/x86_64/x32/libc.abilist   |   2 +
>  .../sysv/linux/x86_64/x32/libresolv.abilist   |   1 -
>  69 files changed, 221 insertions(+), 161 deletions(-)
>  create mode 100644 resolv/ns_name_ntop.c
> 
> diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
> index 7a8290e1f2..f1a696514a 100644
> --- a/include/arpa/nameser.h
> +++ b/include/arpa/nameser.h
> @@ -65,7 +65,6 @@ libresolv_hidden_proto (ns_put32)
>  libresolv_hidden_proto (ns_initparse)
>  libresolv_hidden_proto (ns_skiprr)
>  libresolv_hidden_proto (ns_parserr)
> -libresolv_hidden_proto (ns_name_ntop)
>  libresolv_hidden_proto (ns_name_pton)
>  libresolv_hidden_proto (ns_name_pack)
>  libresolv_hidden_proto (ns_name_skip)
> @@ -79,5 +78,8 @@ libresolv_hidden_proto (ns_samename)
>  libresolv_hidden_proto (ns_makecanon)
>  libresolv_hidden_proto (ns_format_ttl)
>  
> +extern __typeof (ns_name_ntop) __ns_name_ntop;
> +libc_hidden_proto (__ns_name_ntop)

OK.

> +
>  # endif /* !_ISOMAC */
>  #endif
> diff --git a/resolv/Makefile b/resolv/Makefile
> index f14b149b31..bb16175654 100644
> --- a/resolv/Makefile
> +++ b/resolv/Makefile
> @@ -32,6 +32,7 @@ routines := \
>    inet_addr \
>    inet_ntop \
>    inet_pton \
> +  ns_name_ntop \

OK.

>    nsap_addr \
>    res-close \
>    res-state \
> diff --git a/resolv/Versions b/resolv/Versions
> index 3b5328301a..4bf1a13d48 100644
> --- a/resolv/Versions
> +++ b/resolv/Versions
> @@ -24,6 +24,9 @@ libc {
>      getaddrinfo_a;
>  %endif
>    }
> +  GLIBC_2.9 {
> +    ns_name_ntop;
> +  }
>    GLIBC_2.34 {
>  %if PTHREAD_IN_LIBC
>      gai_cancel;
> @@ -31,6 +34,7 @@ libc {
>      gai_suspend;
>      getaddrinfo_a;
>  %endif
> +    ns_name_ntop;
>    }
>    GLIBC_PRIVATE {
>  %if !PTHREAD_IN_LIBC
> @@ -40,6 +44,7 @@ libc {
>      __inet_aton_exact;
>      __inet_pton_length;
>      __res_iclose;
> +    __ns_name_ntop;
>      __resolv_context_get;
>      __resolv_context_get_override;
>      __resolv_context_get_preinit;
> @@ -137,7 +142,6 @@ libresolv {
>      ns_msg_getflag;
>      ns_name_compress;
>      ns_name_ntol;
> -    ns_name_ntop;
>      ns_name_pack;
>      ns_name_pton;
>      ns_name_rollback;
> @@ -158,7 +162,6 @@ libresolv {
>    GLIBC_PRIVATE {
>      __ns_get16;
>      __ns_get32;
> -    __ns_name_ntop;
>      __ns_name_unpack;
>      __res_context_hostalias;
>      __res_context_query;
> diff --git a/resolv/ns_name.c b/resolv/ns_name.c
> index 73213fee2d..4990003746 100644
> --- a/resolv/ns_name.c
> +++ b/resolv/ns_name.c
> @@ -35,8 +35,6 @@ static const char	digits[] = "0123456789";
>  
>  /* Forward. */
>  
> -static int		special(int);
> -static int		printable(int);

OK.

>  static int		dn_find(const u_char *, const u_char *,
>  				const u_char * const *,
>  				const u_char * const *);
> @@ -44,93 +42,6 @@ static int		labellen(const u_char *);
>  
>  /* Public. */
>  
> -/*%
> - *	Convert an encoded domain name to printable ascii as per RFC1035.
> -
> - * return:
> - *\li	Number of bytes written to buffer, or -1 (with errno set)
> - *
> - * notes:
> - *\li	The root is returned as "."
> - *\li	All other domains are returned in non absolute form
> - */
> -int
> -ns_name_ntop(const u_char *src, char *dst, size_t dstsiz)
> -{
> -	const u_char *cp;
> -	char *dn, *eom;
> -	u_char c;
> -	u_int n;
> -	int l;
> -
> -	cp = src;
> -	dn = dst;
> -	eom = dst + dstsiz;
> -
> -	while ((n = *cp++) != 0) {
> -		if ((n & NS_CMPRSFLGS) == NS_CMPRSFLGS) {
> -			/* Some kind of compression pointer. */
> -			__set_errno (EMSGSIZE);
> -			return (-1);
> -		}
> -		if (dn != dst) {
> -			if (dn >= eom) {
> -				__set_errno (EMSGSIZE);
> -				return (-1);
> -			}
> -			*dn++ = '.';
> -		}
> -		if ((l = labellen(cp - 1)) < 0) {
> -			__set_errno (EMSGSIZE);
> -			return(-1);
> -		}
> -		if (dn + l >= eom) {
> -			__set_errno (EMSGSIZE);
> -			return (-1);
> -		}
> -		for ((void)NULL; l > 0; l--) {
> -			c = *cp++;
> -			if (special(c)) {
> -				if (dn + 1 >= eom) {
> -					__set_errno (EMSGSIZE);
> -					return (-1);
> -				}
> -				*dn++ = '\\';
> -				*dn++ = (char)c;
> -			} else if (!printable(c)) {
> -				if (dn + 3 >= eom) {
> -					__set_errno (EMSGSIZE);
> -					return (-1);
> -				}
> -				*dn++ = '\\';
> -				*dn++ = digits[c / 100];
> -				*dn++ = digits[(c % 100) / 10];
> -				*dn++ = digits[c % 10];
> -			} else {
> -				if (dn >= eom) {
> -					__set_errno (EMSGSIZE);
> -					return (-1);
> -				}
> -				*dn++ = (char)c;
> -			}
> -		}
> -	}
> -	if (dn == dst) {
> -		if (dn >= eom) {
> -			__set_errno (EMSGSIZE);
> -			return (-1);
> -		}
> -		*dn++ = '.';
> -	}
> -	if (dn >= eom) {
> -		__set_errno (EMSGSIZE);
> -		return (-1);
> -	}
> -	*dn++ = '\0';
> -	return (dn - dst);
> -}
> -libresolv_hidden_def (ns_name_ntop)
> -strong_alias (ns_name_ntop, __ns_name_ntop)
>  
>  /*%
>   *	Convert an ascii string into an encoded domain name as per RFC1035.
> @@ -517,7 +428,7 @@ ns_name_uncompress(const u_char *msg, const u_char *eom, const u_char *src,
>  
>  	if ((n = ns_name_unpack(msg, eom, src, tmp, sizeof tmp)) == -1)
>  		return (-1);
> -	if (ns_name_ntop(tmp, dst, dstsiz) == -1)
> +	if (__ns_name_ntop (tmp, dst, dstsiz) == -1)

OK.

>  		return (-1);
>  	return (n);
>  }
> @@ -606,43 +517,6 @@ libresolv_hidden_def (ns_name_skip)
>  
>  /* Private. */
>  
> -/*%
> - *	Thinking in noninternationalized USASCII (per the DNS spec),
> - *	is this character special ("in need of quoting") ?
> - *
> - * return:
> - *\li	boolean.
> - */
> -static int
> -special(int ch) {
> -	switch (ch) {
> -	case 0x22: /*%< '"' */
> -	case 0x2E: /*%< '.' */
> -	case 0x3B: /*%< ';' */
> -	case 0x5C: /*%< '\\' */
> -	case 0x28: /*%< '(' */
> -	case 0x29: /*%< ')' */
> -	/* Special modifiers in zone files. */
> -	case 0x40: /*%< '@' */
> -	case 0x24: /*%< '$' */
> -		return (1);
> -	default:
> -		return (0);
> -	}
> -}
> -
> -/*%
> - *	Thinking in noninternationalized USASCII (per the DNS spec),
> - *	is this character visible and not a space when printed ?
> - *
> - * return:
> - *\li	boolean.
> - */
> -static int
> -printable(int ch) {
> -	return (ch > 0x20 && ch < 0x7f);
> -}
> -

OK.

>  /*%
>   *	Thinking in noninternationalized USASCII (per the DNS spec),
>   *	convert this character to lower case if it's upper case.
> diff --git a/resolv/ns_name_ntop.c b/resolv/ns_name_ntop.c
> new file mode 100644
> index 0000000000..4dab3a3ce0
> --- /dev/null
> +++ b/resolv/ns_name_ntop.c
> @@ -0,0 +1,145 @@
> +/* Convert DNS domain names from network format to textual presentation format.

OK.

> + * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
> + * Copyright (c) 1996,1999 by Internet Software Consortium.
> + *
> + * Permission to use, copy, modify, and distribute this software for any
> + * purpose with or without fee is hereby granted, provided that the above
> + * copyright notice and this permission notice appear in all copies.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
> + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
> + * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
> + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
> + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
> + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
> + * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
> + */
> +
> +#include <arpa/nameser.h>
> +#include <errno.h>
> +#include <shlib-compat.h>
> +#include <stdbool.h>
> +
> +/* Thinking in noninternationalized US-ASCII (per the DNS spec), is
> +   this character special ("in need of quoting")?  */
> +static inline bool
> +special (int ch)
> +{
> +  switch (ch)
> +    {
> +    case '"':
> +    case '.':
> +    case ';':
> +    case '\\':
> +    case '(':
> +    case ')':

OK. Matches.

> +      /* Special modifiers in zone files.  */
> +    case '@':
> +    case '$':

OK. Matches.

> +      return true;
> +    default:
> +      return false;

OK.

> +    }
> +}

OK.

> +
> +/* Thinking in noninternationalized US-ASCII (per the DNS spec), is
> +   this character visible and not a space when printed?  */
> +static inline bool
> +printable (int ch)
> +{
> +  return ch > 0x20 && ch < 0x7f;
> +}

OK.

> +
> +/* Converts an uncompressed, encoded domain name to printable ASCII as
> +   per RFC1035.  Returns the number of bytes written to buffer, or -1
> +   (with errno set).  The root is returned as "."  All other domains
> +   are returned in non absolute form.  */
> +int
> +___ns_name_ntop (const unsigned char *src, char *dst, size_t dstsiz)
> +{
> +  const unsigned char *cp;
> +  char *dn, *eom;
> +  unsigned char c;
> +  int l;
> +
> +  cp = src;
> +  dn = dst;
> +  eom = dst + dstsiz;
> +
> +  while ((l = *cp++) != 0)
> +    {
> +      if (l >= 64)
> +        {
> +          /* Some kind of compression pointer.  */
> +          __set_errno (EMSGSIZE);
> +          return -1;
> +        }

OK. Updated.

> +      if (dn != dst)
> +        {
> +          if (dn >= eom)
> +            {
> +              __set_errno (EMSGSIZE);
> +              return -1;
> +            }
> +          *dn++ = '.';
> +        }

OK. Match.

> +      for (; l > 0; l--)
> +        {
> +          c = *cp++;
> +          if (special (c))
> +            {
> +              if (eom - dn < 2)
> +                {
> +                  __set_errno (EMSGSIZE);
> +                  return -1;
> +                }
> +              *dn++ = '\\';
> +              *dn++ = c;
> +            }
> +          else if (!printable (c))
> +            {
> +              if (eom - dn < 4)
> +                {
> +                  __set_errno (EMSGSIZE);
> +                  return -1;
> +                }
> +              *dn++ = '\\';
> +              *dn++ = '0' + (c / 100);
> +              *dn++ = '0' + ((c % 100) / 10);
> +              *dn++ = '0' + (c % 10);
> +            }
> +          else
> +            {
> +              if (eom - dn < 2)

OK. Changed.

> +                {
> +                  __set_errno (EMSGSIZE);
> +                  return -1;
> +                }
> +              *dn++ = c;
> +            }
> +        }
> +    }
> +  if (dn == dst)
> +    {
> +      if (dn >= eom)
> +        {
> +          __set_errno (EMSGSIZE);
> +          return -1;
> +        }
> +      *dn++ = '.';
> +    }

OK. Match.

> +  if (dn >= eom)
> +    {
> +      __set_errno (EMSGSIZE);
> +      return -1;
> +    }

OK. Match.

> +  *dn++ = '\0';
> +  return dn - dst;
> +}

OK.

> +versioned_symbol (libc, ___ns_name_ntop, ns_name_ntop, GLIBC_2_34);
> +versioned_symbol (libc, ___ns_name_ntop, __ns_name_ntop, GLIBC_PRIVATE);
> +libc_hidden_ver (___ns_name_ntop, __ns_name_ntop)
> +
> +#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_9, GLIBC_2_34)
> +compat_symbol (libresolv, ___ns_name_ntop, ns_name_ntop, GLIBC_2_9);

OK.

> +#endif
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index fcfe64f26b..a2cb340469 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -2240,6 +2240,7 @@ GLIBC_2.34 login F
>  GLIBC_2.34 login_tty F
>  GLIBC_2.34 logout F
>  GLIBC_2.34 logwtmp F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 shm_open F
>  GLIBC_2.34 shm_unlink F
> @@ -2360,6 +2361,7 @@ GLIBC_2.8 __vasprintf_chk F
>  GLIBC_2.8 __vdprintf_chk F
>  GLIBC_2.8 qsort_r F
>  GLIBC_2.9 dup3 F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
>  HURD_CTHREADS_0.3 __cthread_getspecific F
>  HURD_CTHREADS_0.3 __cthread_keycreate F
> diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
> index e662651c8e..63a07a6073 100644
> --- a/sysdeps/mach/hurd/i386/libresolv.abilist
> +++ b/sysdeps/mach/hurd/i386/libresolv.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
> -GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 6f19b07b47..e263dca707 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1404,6 +1404,7 @@ GLIBC_2.17 nl_langinfo F
>  GLIBC_2.17 nl_langinfo_l F
>  GLIBC_2.17 nrand48 F
>  GLIBC_2.17 nrand48_r F
> +GLIBC_2.17 ns_name_ntop F
>  GLIBC_2.17 ntohl F
>  GLIBC_2.17 ntohs F
>  GLIBC_2.17 ntp_adjtime F
> @@ -2450,6 +2451,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
> index f7fdd26bd1..0a93c2cc44 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
> @@ -67,7 +67,6 @@ GLIBC_2.17 ns_makecanon F
>  GLIBC_2.17 ns_msg_getflag F
>  GLIBC_2.17 ns_name_compress F
>  GLIBC_2.17 ns_name_ntol F
> -GLIBC_2.17 ns_name_ntop F
>  GLIBC_2.17 ns_name_pack F
>  GLIBC_2.17 ns_name_pton F
>  GLIBC_2.17 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 6ece449d4b..6bdfc2dc34 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2549,6 +2549,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2982,4 +2983,5 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
> index 06f995151c..2eee410d23 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
> @@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
> -GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 3bf846349f..d129dd12ff 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1338,6 +1338,7 @@ GLIBC_2.32 nl_langinfo F
>  GLIBC_2.32 nl_langinfo_l F
>  GLIBC_2.32 nrand48 F
>  GLIBC_2.32 nrand48_r F
> +GLIBC_2.32 ns_name_ntop F
>  GLIBC_2.32 ntohl F
>  GLIBC_2.32 ntohs F
>  GLIBC_2.32 ntp_adjtime F
> @@ -2209,6 +2210,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
> index c5edf99ea9..232146e7db 100644
> --- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
> @@ -60,7 +60,6 @@ GLIBC_2.32 ns_makecanon F
>  GLIBC_2.32 ns_msg_getflag F
>  GLIBC_2.32 ns_name_compress F
>  GLIBC_2.32 ns_name_ntol F
> -GLIBC_2.32 ns_name_ntop F
>  GLIBC_2.32 ns_name_pack F
>  GLIBC_2.32 ns_name_pton F
>  GLIBC_2.32 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 08be998d35..c0c24b0772 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -343,6 +343,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2678,4 +2679,5 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
> index 2dd5094f76..1f2d60151f 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
> -GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index ebd767ed96..dc666f1cc1 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -340,6 +340,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2675,4 +2676,5 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
> index 2dd5094f76..1f2d60151f 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
> -GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 4a467e706e..403a84d1c6 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1395,6 +1395,7 @@ GLIBC_2.29 nl_langinfo F
>  GLIBC_2.29 nl_langinfo_l F
>  GLIBC_2.29 nrand48 F
>  GLIBC_2.29 nrand48_r F
> +GLIBC_2.29 ns_name_ntop F
>  GLIBC_2.29 ntohl F
>  GLIBC_2.29 ntohs F
>  GLIBC_2.29 ntp_adjtime F
> @@ -2475,6 +2476,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
> index 2830a7efd1..eca5d43340 100644
> --- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
> @@ -60,7 +60,6 @@ GLIBC_2.29 ns_makecanon F
>  GLIBC_2.29 ns_msg_getflag F
>  GLIBC_2.29 ns_name_compress F
>  GLIBC_2.29 ns_name_ntol F
> -GLIBC_2.29 ns_name_ntop F
>  GLIBC_2.29 ns_name_pack F
>  GLIBC_2.29 ns_name_pton F
>  GLIBC_2.29 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index bdef8d2a34..640fe27645 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2428,6 +2428,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2692,4 +2693,5 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
> index 157a33ce35..14c65c7a46 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
> @@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
> -GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index eba95a2cf0..0064e5c88a 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2612,6 +2612,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2876,4 +2877,5 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/i386/libresolv.abilist b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
> index 157a33ce35..14c65c7a46 100644
> --- a/sysdeps/unix/sysv/linux/i386/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
> @@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
> -GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 3fbc5ae978..f42d8294de 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2387,6 +2387,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2651,4 +2652,5 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
> index 06f995151c..2eee410d23 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
> @@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
> -GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 0aef2ec43a..53f45dc6a4 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -344,6 +344,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2657,4 +2658,5 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
> index 2dd5094f76..1f2d60151f 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
> -GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index a4704f7e96..8992fdb150 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2555,6 +2555,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2819,4 +2820,5 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
> index 157a33ce35..14c65c7a46 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
> @@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
> -GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 8f135f30c0..85651e5bfe 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1406,6 +1406,7 @@ GLIBC_2.18 nl_langinfo F
>  GLIBC_2.18 nl_langinfo_l F
>  GLIBC_2.18 nrand48 F
>  GLIBC_2.18 nrand48_r F
> +GLIBC_2.18 ns_name_ntop F
>  GLIBC_2.18 ntohl F
>  GLIBC_2.18 ntohs F
>  GLIBC_2.18 ntp_adjtime F
> @@ -2526,6 +2527,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
> index b04f0397c8..815672536e 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
> @@ -67,7 +67,6 @@ GLIBC_2.18 ns_makecanon F
>  GLIBC_2.18 ns_msg_getflag F
>  GLIBC_2.18 ns_name_compress F
>  GLIBC_2.18 ns_name_ntol F
> -GLIBC_2.18 ns_name_ntop F
>  GLIBC_2.18 ns_name_pack F
>  GLIBC_2.18 ns_name_pton F
>  GLIBC_2.18 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 719609ac10..be1f207863 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1406,6 +1406,7 @@ GLIBC_2.18 nl_langinfo F
>  GLIBC_2.18 nl_langinfo_l F
>  GLIBC_2.18 nrand48 F
>  GLIBC_2.18 nrand48_r F
> +GLIBC_2.18 ns_name_ntop F
>  GLIBC_2.18 ntohl F
>  GLIBC_2.18 ntohs F
>  GLIBC_2.18 ntp_adjtime F
> @@ -2523,6 +2524,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
> index b04f0397c8..815672536e 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
> @@ -67,7 +67,6 @@ GLIBC_2.18 ns_makecanon F
>  GLIBC_2.18 ns_msg_getflag F
>  GLIBC_2.18 ns_name_compress F
>  GLIBC_2.18 ns_name_ntol F
> -GLIBC_2.18 ns_name_ntop F
>  GLIBC_2.18 ns_name_pack F
>  GLIBC_2.18 ns_name_pton F
>  GLIBC_2.18 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index f9a6bccdc5..7bf0307887 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2520,6 +2520,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2780,4 +2781,5 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
> index 157a33ce35..14c65c7a46 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
> @@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
> -GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index cee02495c6..909b533575 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2518,6 +2518,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2778,4 +2779,5 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index c9fdfe3a55..ddeedf1dd9 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2526,6 +2526,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2786,4 +2787,5 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
> index 157a33ce35..14c65c7a46 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
> @@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
> -GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index d27c97094e..93036f5b60 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2438,6 +2438,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2698,4 +2699,5 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
> index 06f995151c..2eee410d23 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
> @@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
> -GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 25f270403f..da0f44c5e1 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1449,6 +1449,7 @@ GLIBC_2.21 nl_langinfo F
>  GLIBC_2.21 nl_langinfo_l F
>  GLIBC_2.21 nrand48 F
>  GLIBC_2.21 nrand48_r F
> +GLIBC_2.21 ns_name_ntop F
>  GLIBC_2.21 ntohl F
>  GLIBC_2.21 ntohs F
>  GLIBC_2.21 ntp_adjtime F
> @@ -2565,6 +2566,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
> index 2a2bec433f..b1b08bb486 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
> @@ -67,7 +67,6 @@ GLIBC_2.21 ns_makecanon F
>  GLIBC_2.21 ns_msg_getflag F
>  GLIBC_2.21 ns_name_compress F
>  GLIBC_2.21 ns_name_ntol F
> -GLIBC_2.21 ns_name_ntop F
>  GLIBC_2.21 ns_name_pack F
>  GLIBC_2.21 ns_name_pton F
>  GLIBC_2.21 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 0256a272dd..0e7944d5b7 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2582,6 +2582,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -3017,4 +3018,5 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
> index 157a33ce35..14c65c7a46 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
> @@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
> -GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 946f855c64..ea590ca43c 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2615,6 +2615,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -3062,4 +3063,5 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 602da17327..fde9d2e40d 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -2351,6 +2351,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2786,4 +2787,5 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
> index 15f30deb34..c998d17d81 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
> -GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 287285a21a..70eaf6b69b 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1492,6 +1492,7 @@ GLIBC_2.17 nl_langinfo F
>  GLIBC_2.17 nl_langinfo_l F
>  GLIBC_2.17 nrand48 F
>  GLIBC_2.17 nrand48_r F
> +GLIBC_2.17 ns_name_ntop F
>  GLIBC_2.17 ntohl F
>  GLIBC_2.17 ntohs F
>  GLIBC_2.17 ntp_adjtime F
> @@ -2646,6 +2647,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
> index f7fdd26bd1..0a93c2cc44 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
> @@ -67,7 +67,6 @@ GLIBC_2.17 ns_makecanon F
>  GLIBC_2.17 ns_msg_getflag F
>  GLIBC_2.17 ns_name_compress F
>  GLIBC_2.17 ns_name_ntol F
> -GLIBC_2.17 ns_name_ntop F
>  GLIBC_2.17 ns_name_pack F
>  GLIBC_2.17 ns_name_pton F
>  GLIBC_2.17 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index cdeee28d0f..f3a14d6efc 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1340,6 +1340,7 @@ GLIBC_2.33 nl_langinfo F
>  GLIBC_2.33 nl_langinfo_l F
>  GLIBC_2.33 nrand48 F
>  GLIBC_2.33 nrand48_r F
> +GLIBC_2.33 ns_name_ntop F
>  GLIBC_2.33 ntohl F
>  GLIBC_2.33 ntohs F
>  GLIBC_2.33 ntp_adjtime F
> @@ -2211,6 +2212,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
> index 43947f7e27..a3af26db78 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
> @@ -60,7 +60,6 @@ GLIBC_2.33 ns_makecanon F
>  GLIBC_2.33 ns_msg_getflag F
>  GLIBC_2.33 ns_name_compress F
>  GLIBC_2.33 ns_name_ntol F
> -GLIBC_2.33 ns_name_ntop F
>  GLIBC_2.33 ns_name_pack F
>  GLIBC_2.33 ns_name_pton F
>  GLIBC_2.33 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index a74b54d6bb..94ededbfb6 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1387,6 +1387,7 @@ GLIBC_2.27 nl_langinfo F
>  GLIBC_2.27 nl_langinfo_l F
>  GLIBC_2.27 nrand48 F
>  GLIBC_2.27 nrand48_r F
> +GLIBC_2.27 ns_name_ntop F
>  GLIBC_2.27 ntohl F
>  GLIBC_2.27 ntohs F
>  GLIBC_2.27 ntp_adjtime F
> @@ -2411,6 +2412,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
> index eb9c1cb747..0d4bd6855b 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
> @@ -60,7 +60,6 @@ GLIBC_2.27 ns_makecanon F
>  GLIBC_2.27 ns_msg_getflag F
>  GLIBC_2.27 ns_name_compress F
>  GLIBC_2.27 ns_name_ntol F
> -GLIBC_2.27 ns_name_ntop F
>  GLIBC_2.27 ns_name_pack F
>  GLIBC_2.27 ns_name_pton F
>  GLIBC_2.27 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index e96371317c..6a1a79c0cb 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2580,6 +2580,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -3025,6 +3026,7 @@ GLIBC_2.9 getutxid F
>  GLIBC_2.9 getutxline F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 login F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
>  GLIBC_2.9 pututline F
>  GLIBC_2.9 pututxline F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
> index 157a33ce35..14c65c7a46 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
> @@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
> -GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index aadc7c1d66..0ccda5fb5e 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2388,6 +2388,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2821,4 +2822,5 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
> index dcc4de5f55..548e92b846 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
> -GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index cc4a625cb4..0b2709d984 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2435,6 +2435,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2699,4 +2700,5 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
> index 157a33ce35..14c65c7a46 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
> @@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
> -GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 163d2cd613..3077a96068 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2432,6 +2432,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2696,4 +2697,5 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
> index 157a33ce35..14c65c7a46 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
> @@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
> -GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 6eceee6b88..1df94b2c6b 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2575,6 +2575,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -3034,4 +3035,5 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
> index 157a33ce35..14c65c7a46 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
> @@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
> -GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index e6bac469ba..8596cfbde9 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2410,6 +2410,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2674,4 +2675,5 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
> index 06f995151c..2eee410d23 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
> @@ -77,7 +77,6 @@ GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
> -GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index e90f3e54c0..7422e4dcd6 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2366,6 +2366,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2630,4 +2631,5 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
> index 61d6b2b853..954af66409 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
> -GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 792f681bba..dba3592fb9 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1411,6 +1411,7 @@ GLIBC_2.16 nl_langinfo F
>  GLIBC_2.16 nl_langinfo_l F
>  GLIBC_2.16 nrand48 F
>  GLIBC_2.16 nrand48_r F
> +GLIBC_2.16 ns_name_ntop F
>  GLIBC_2.16 ntohl F
>  GLIBC_2.16 ntohs F
>  GLIBC_2.16 ntp_adjtime F
> @@ -2465,6 +2466,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
> index 2457bc9d49..79b4bbdd98 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
> @@ -67,7 +67,6 @@ GLIBC_2.16 ns_makecanon F
>  GLIBC_2.16 ns_msg_getflag F
>  GLIBC_2.16 ns_name_compress F
>  GLIBC_2.16 ns_name_ntol F
> -GLIBC_2.16 ns_name_ntop F
>  GLIBC_2.16 ns_name_pack F
>  GLIBC_2.16 ns_name_pton F
>  GLIBC_2.16 ns_name_rollback F
> 

OK.

-- 
Cheers,
Carlos.


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

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

On 7/8/21 11:00 AM, Florian Weimer via Libc-alpha wrote:
> Reformat to GNU style. Avoid out-of-bounds buffer arithmetic.
> Eliminate the labellen function.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
 
> The symbol was moved using scripts/move-symbol-to-libc.py.
> ---
>  include/arpa/nameser.h                        |   3 +-
>  resolv/Makefile                               |   1 +
>  resolv/Versions                               |   5 +-
>  resolv/ns_name.c                              |  81 ------------
>  resolv/ns_name_unpack.c                       | 115 ++++++++++++++++++
>  sysdeps/mach/hurd/i386/libc.abilist           |   2 +
>  sysdeps/mach/hurd/i386/libresolv.abilist      |   1 -
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  |   2 +
>  .../unix/sysv/linux/aarch64/libresolv.abilist |   1 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist    |   2 +
>  .../unix/sysv/linux/alpha/libresolv.abilist   |   1 -
>  sysdeps/unix/sysv/linux/arc/libc.abilist      |   2 +
>  sysdeps/unix/sysv/linux/arc/libresolv.abilist |   1 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist   |   2 +
>  .../unix/sysv/linux/arm/be/libresolv.abilist  |   1 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   |   2 +
>  .../unix/sysv/linux/arm/le/libresolv.abilist  |   1 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist     |   2 +
>  .../unix/sysv/linux/csky/libresolv.abilist    |   1 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist     |   2 +
>  .../unix/sysv/linux/hppa/libresolv.abilist    |   1 -
>  sysdeps/unix/sysv/linux/i386/libc.abilist     |   2 +
>  .../unix/sysv/linux/i386/libresolv.abilist    |   1 -
>  sysdeps/unix/sysv/linux/ia64/libc.abilist     |   2 +
>  .../unix/sysv/linux/ia64/libresolv.abilist    |   1 -
>  .../sysv/linux/m68k/coldfire/libc.abilist     |   2 +
>  .../linux/m68k/coldfire/libresolv.abilist     |   1 -
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  |   2 +
>  .../sysv/linux/m68k/m680x0/libresolv.abilist  |   1 -
>  .../sysv/linux/microblaze/be/libc.abilist     |   2 +
>  .../linux/microblaze/be/libresolv.abilist     |   1 -
>  .../sysv/linux/microblaze/le/libc.abilist     |   2 +
>  .../linux/microblaze/le/libresolv.abilist     |   1 -
>  .../sysv/linux/mips/mips32/fpu/libc.abilist   |   2 +
>  .../sysv/linux/mips/mips32/libresolv.abilist  |   1 -
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist |   2 +
>  .../sysv/linux/mips/mips64/n32/libc.abilist   |   2 +
>  .../linux/mips/mips64/n32/libresolv.abilist   |   1 -
>  .../sysv/linux/mips/mips64/n64/libc.abilist   |   2 +
>  .../linux/mips/mips64/n64/libresolv.abilist   |   1 -
>  sysdeps/unix/sysv/linux/nios2/libc.abilist    |   2 +
>  .../unix/sysv/linux/nios2/libresolv.abilist   |   1 -
>  .../linux/powerpc/powerpc32/fpu/libc.abilist  |   2 +
>  .../linux/powerpc/powerpc32/libresolv.abilist |   1 -
>  .../powerpc/powerpc32/nofpu/libc.abilist      |   2 +
>  .../linux/powerpc/powerpc64/be/libc.abilist   |   2 +
>  .../powerpc/powerpc64/be/libresolv.abilist    |   1 -
>  .../linux/powerpc/powerpc64/le/libc.abilist   |   2 +
>  .../powerpc/powerpc64/le/libresolv.abilist    |   1 -
>  .../unix/sysv/linux/riscv/rv32/libc.abilist   |   2 +
>  .../sysv/linux/riscv/rv32/libresolv.abilist   |   1 -
>  .../unix/sysv/linux/riscv/rv64/libc.abilist   |   2 +
>  .../sysv/linux/riscv/rv64/libresolv.abilist   |   1 -
>  .../unix/sysv/linux/s390/s390-32/libc.abilist |   2 +
>  .../sysv/linux/s390/s390-32/libresolv.abilist |   1 -
>  .../unix/sysv/linux/s390/s390-64/libc.abilist |   2 +
>  .../sysv/linux/s390/s390-64/libresolv.abilist |   1 -
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    |   2 +
>  .../unix/sysv/linux/sh/be/libresolv.abilist   |   1 -
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    |   2 +
>  .../unix/sysv/linux/sh/le/libresolv.abilist   |   1 -
>  .../sysv/linux/sparc/sparc32/libc.abilist     |   2 +
>  .../linux/sparc/sparc32/libresolv.abilist     |   1 -
>  .../sysv/linux/sparc/sparc64/libc.abilist     |   2 +
>  .../linux/sparc/sparc64/libresolv.abilist     |   1 -
>  .../unix/sysv/linux/x86_64/64/libc.abilist    |   2 +
>  .../sysv/linux/x86_64/64/libresolv.abilist    |   1 -
>  .../unix/sysv/linux/x86_64/x32/libc.abilist   |   2 +
>  .../sysv/linux/x86_64/x32/libresolv.abilist   |   1 -
>  69 files changed, 187 insertions(+), 115 deletions(-)
>  create mode 100644 resolv/ns_name_unpack.c
> 
> diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
> index f1a696514a..2396a43030 100644
> --- a/include/arpa/nameser.h
> +++ b/include/arpa/nameser.h
> @@ -68,7 +68,6 @@ libresolv_hidden_proto (ns_parserr)
>  libresolv_hidden_proto (ns_name_pton)
>  libresolv_hidden_proto (ns_name_pack)
>  libresolv_hidden_proto (ns_name_skip)
> -libresolv_hidden_proto (ns_name_unpack)
>  libresolv_hidden_proto (ns_name_compress)
>  libresolv_hidden_proto (ns_name_uncompress)
>  libresolv_hidden_proto (ns_sprintrr)
> @@ -80,6 +79,8 @@ libresolv_hidden_proto (ns_format_ttl)
>  
>  extern __typeof (ns_name_ntop) __ns_name_ntop;
>  libc_hidden_proto (__ns_name_ntop)
> +extern __typeof (ns_name_unpack) __ns_name_unpack;
> +libc_hidden_proto (__ns_name_unpack)

OK.

>  
>  # endif /* !_ISOMAC */
>  #endif
> diff --git a/resolv/Makefile b/resolv/Makefile
> index bb16175654..469a9a55ae 100644
> --- a/resolv/Makefile
> +++ b/resolv/Makefile
> @@ -33,6 +33,7 @@ routines := \
>    inet_ntop \
>    inet_pton \
>    ns_name_ntop \
> +  ns_name_unpack \

OK.

>    nsap_addr \
>    res-close \
>    res-state \
> diff --git a/resolv/Versions b/resolv/Versions
> index 4bf1a13d48..9b5c4d9733 100644
> --- a/resolv/Versions
> +++ b/resolv/Versions
> @@ -26,6 +26,7 @@ libc {
>    }
>    GLIBC_2.9 {
>      ns_name_ntop;
> +    ns_name_unpack;

OK.

>    }
>    GLIBC_2.34 {
>  %if PTHREAD_IN_LIBC
> @@ -35,6 +36,7 @@ libc {
>      getaddrinfo_a;
>  %endif
>      ns_name_ntop;
> +    ns_name_unpack;

OK.

>    }
>    GLIBC_PRIVATE {
>  %if !PTHREAD_IN_LIBC
> @@ -45,6 +47,7 @@ libc {
>      __inet_pton_length;
>      __res_iclose;
>      __ns_name_ntop;
> +    __ns_name_unpack;

OK.

>      __resolv_context_get;
>      __resolv_context_get_override;
>      __resolv_context_get_preinit;
> @@ -147,7 +150,6 @@ libresolv {
>      ns_name_rollback;
>      ns_name_skip;
>      ns_name_uncompress;
> -    ns_name_unpack;
>      ns_parse_ttl;
>      ns_parserr;
>      ns_put16;
> @@ -162,7 +164,6 @@ libresolv {
>    GLIBC_PRIVATE {
>      __ns_get16;
>      __ns_get32;
> -    __ns_name_unpack;

OK.

>      __res_context_hostalias;
>      __res_context_query;
>      __res_context_search;
> diff --git a/resolv/ns_name.c b/resolv/ns_name.c
> index 4990003746..a0d541f110 100644
> --- a/resolv/ns_name.c
> +++ b/resolv/ns_name.c
> @@ -217,87 +217,6 @@ ns_name_ntol(const u_char *src, u_char *dst, size_t dstsiz)
>  	return (dn - dst);
>  }
>  
> -/*%
> - *	Unpack a domain name from a message, source may be compressed.
> - *
> - * return:
> - *\li	-1 if it fails, or consumed octets if it succeeds.
> - */
> -int
> -ns_name_unpack(const u_char *msg, const u_char *eom, const u_char *src,
> -	       u_char *dst, size_t dstsiz)
> -{
> -	const u_char *srcp, *dstlim;
> -	u_char *dstp;
> -	int n, len, checked, l;
> -
> -	len = -1;
> -	checked = 0;
> -	dstp = dst;
> -	srcp = src;
> -	dstlim = dst + dstsiz;
> -	if (srcp < msg || srcp >= eom) {
> -		__set_errno (EMSGSIZE);
> -		return (-1);
> -	}
> -	/* Fetch next label in domain name. */
> -	while ((n = *srcp++) != 0) {
> -		/* Check for indirection. */
> -		switch (n & NS_CMPRSFLGS) {
> -		case 0:
> -			/* Limit checks. */
> -			if ((l = labellen(srcp - 1)) < 0) {
> -				__set_errno (EMSGSIZE);
> -				return(-1);
> -			}
> -			if (dstp + l + 1 >= dstlim || srcp + l >= eom) {
> -				__set_errno (EMSGSIZE);
> -				return (-1);
> -			}
> -			checked += l + 1;
> -			*dstp++ = n;
> -			memcpy(dstp, srcp, l);
> -			dstp += l;
> -			srcp += l;
> -			break;
> -
> -		case NS_CMPRSFLGS:
> -			if (srcp >= eom) {
> -				__set_errno (EMSGSIZE);
> -				return (-1);
> -			}
> -			if (len < 0)
> -				len = srcp - src + 1;
> -			srcp = msg + (((n & 0x3f) << 8) | (*srcp & 0xff));
> -			if (srcp < msg || srcp >= eom) {  /*%< Out of range. */
> -				__set_errno (EMSGSIZE);
> -				return (-1);
> -			}
> -			checked += 2;
> -			/*
> -			 * Check for loops in the compressed name;
> -			 * if we've looked at the whole message,
> -			 * there must be a loop.
> -			 */
> -			if (checked >= eom - msg) {
> -				__set_errno (EMSGSIZE);
> -				return (-1);
> -			}
> -			break;
> -
> -		default:
> -			__set_errno (EMSGSIZE);
> -			return (-1);			/*%< flag error */
> -		}
> -	}
> -	*dstp = '\0';
> -	if (len < 0)
> -		len = srcp - src;
> -	return (len);
> -}
> -libresolv_hidden_def (ns_name_unpack)
> -strong_alias (ns_name_unpack, __ns_name_unpack)

OK.

> -
>  /*%
>   *	Pack domain name 'domain' into 'comp_dn'.
>   *
> diff --git a/resolv/ns_name_unpack.c b/resolv/ns_name_unpack.c
> new file mode 100644
> index 0000000000..1c1dd3ee8a
> --- /dev/null
> +++ b/resolv/ns_name_unpack.c
> @@ -0,0 +1,115 @@
> +/* De-compressing DNS domain names into binary-encoded uncompressed name.

OK.

> + * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
> + * Copyright (c) 1996,1999 by Internet Software Consortium.
> + *
> + * Permission to use, copy, modify, and distribute this software for any
> + * purpose with or without fee is hereby granted, provided that the above
> + * copyright notice and this permission notice appear in all copies.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
> + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
> + * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
> + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
> + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
> + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
> + * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
> + */
> +
> +#include <arpa/nameser.h>
> +#include <errno.h>
> +#include <shlib-compat.h>
> +#include <stddef.h>
> +#include <string.h>
> +
> +/* Unpack a domain name from a message, source may be compressed.
> +   Returns -1 if it fails, or consumed octets if it succeeds.  */
> +int
> +___ns_name_unpack (const unsigned char *msg, const unsigned char *eom,
> +                   const unsigned char *src, unsigned char *dst, size_t dstsiz)
> +{
> +  const unsigned char *srcp, *dstlim;
> +  unsigned char *dstp;
> +  int n, len, checked;

OK. Dropped l.

> +
> +  len = -1;
> +  checked = 0;
> +  dstp = dst;
> +  srcp = src;

OK.

> +  dstlim = dst + dstsiz;

OK.

> +  if (srcp < msg || srcp >= eom)
> +    {
> +      __set_errno (EMSGSIZE);
> +      return -1;
> +    }

OK. Match.

> +  /* Fetch next label in domain name.  */
> +  while ((n = *srcp++) != 0)
> +    {
> +      /* Check for indirection.  */
> +      switch (n & NS_CMPRSFLGS)
> +        {
> +        case 0:
> +          /* Limit checks.  */
> +          if (n >= 64)

OK. Fold labellen into this check.

> +            {
> +              __set_errno (EMSGSIZE);
> +              return -1;
> +            }
> +          /* NB: n + 1 and >= to cover the *dstp = '\0' assignment
> +             below.  */
> +          if (n + 1 >= dstlim - dstp || n >= eom - srcp)

OK. Refactor from 'dstp + l + 1 >= dstlim' (works). Refactor from 'srcp + l >= eom' (works).

> +            {
> +              __set_errno (EMSGSIZE);
> +              return -1;
> +            }
> +          checked += n + 1;
> +          *dstp++ = n;
> +          memcpy (dstp, srcp, n);
> +          dstp += n;
> +          srcp += n;
> +          break;

OK.

> +
> +        case NS_CMPRSFLGS:
> +          if (srcp >= eom)
> +            {
> +              __set_errno (EMSGSIZE);
> +              return -1;
> +            }
> +          if (len < 0)
> +            len = srcp - src + 1;
> +          {
> +            int target = ((n & 0x3f) << 8) | *srcp;
> +            if (target >= eom - msg)

OK. Rewrite to avoid overflow pointer aritmetic.

> +              {
> +              /* Out of range.  */
> +                __set_errno (EMSGSIZE);
> +                return -1;
> +            }
> +            srcp = msg + target;
> +          }
> +          checked += 2;
> +          /* Check for loops in the compressed name; if we've looked
> +             at the whole message, there must be a loop.  */
> +          if (checked >= eom - msg)
> +            {
> +              __set_errno (EMSGSIZE);
> +              return -1;
> +            }
> +          break;
> +
> +        default:
> +          __set_errno (EMSGSIZE);
> +          return -1;

OK.

> +        }
> +    }
> +  *dstp = '\0';
> +  if (len < 0)
> +    len = srcp - src;
> +  return len;

OK.

> +}
> +versioned_symbol (libc, ___ns_name_unpack, ns_name_unpack, GLIBC_2_34);
> +versioned_symbol (libc, ___ns_name_unpack, __ns_name_unpack, GLIBC_PRIVATE);
> +libc_hidden_ver (___ns_name_unpack, __ns_name_unpack)
> +
> +#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_9, GLIBC_2_34)
> +compat_symbol (libresolv, ___ns_name_unpack, ns_name_unpack, GLIBC_2_9);
> +#endif
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index a2cb340469..6576db7c4d 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -2241,6 +2241,7 @@ GLIBC_2.34 login_tty F
>  GLIBC_2.34 logout F
>  GLIBC_2.34 logwtmp F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 shm_open F
>  GLIBC_2.34 shm_unlink F
> @@ -2362,6 +2363,7 @@ GLIBC_2.8 __vdprintf_chk F
>  GLIBC_2.8 qsort_r F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
>  HURD_CTHREADS_0.3 __cthread_getspecific F
>  HURD_CTHREADS_0.3 __cthread_keycreate F
> diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
> index 63a07a6073..ac0ee33f74 100644
> --- a/sysdeps/mach/hurd/i386/libresolv.abilist
> +++ b/sysdeps/mach/hurd/i386/libresolv.abilist
> @@ -77,7 +77,6 @@ GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> -GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
>  GLIBC_2.9 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index e263dca707..740e3d74bc 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1405,6 +1405,7 @@ GLIBC_2.17 nl_langinfo_l F
>  GLIBC_2.17 nrand48 F
>  GLIBC_2.17 nrand48_r F
>  GLIBC_2.17 ns_name_ntop F
> +GLIBC_2.17 ns_name_unpack F
>  GLIBC_2.17 ntohl F
>  GLIBC_2.17 ntohs F
>  GLIBC_2.17 ntp_adjtime F
> @@ -2452,6 +2453,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
> index 0a93c2cc44..088a380288 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.17 ns_name_pton F
>  GLIBC_2.17 ns_name_rollback F
>  GLIBC_2.17 ns_name_skip F
>  GLIBC_2.17 ns_name_uncompress F
> -GLIBC_2.17 ns_name_unpack F
>  GLIBC_2.17 ns_parse_ttl F
>  GLIBC_2.17 ns_parserr F
>  GLIBC_2.17 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 6bdfc2dc34..2466effa31 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2550,6 +2550,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2984,4 +2985,5 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
> index 2eee410d23..96bfcda497 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
> @@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> -GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
>  GLIBC_2.9 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index d129dd12ff..4c5913ac9a 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1339,6 +1339,7 @@ GLIBC_2.32 nl_langinfo_l F
>  GLIBC_2.32 nrand48 F
>  GLIBC_2.32 nrand48_r F
>  GLIBC_2.32 ns_name_ntop F
> +GLIBC_2.32 ns_name_unpack F
>  GLIBC_2.32 ntohl F
>  GLIBC_2.32 ntohs F
>  GLIBC_2.32 ntp_adjtime F
> @@ -2211,6 +2212,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
> index 232146e7db..a2a3b33098 100644
> --- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
> @@ -65,7 +65,6 @@ GLIBC_2.32 ns_name_pton F
>  GLIBC_2.32 ns_name_rollback F
>  GLIBC_2.32 ns_name_skip F
>  GLIBC_2.32 ns_name_uncompress F
> -GLIBC_2.32 ns_name_unpack F
>  GLIBC_2.32 ns_parse_ttl F
>  GLIBC_2.32 ns_parserr F
>  GLIBC_2.32 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index c0c24b0772..c3ec2a2394 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -344,6 +344,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2680,4 +2681,5 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
> index 1f2d60151f..b65f928a24 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
> @@ -77,7 +77,6 @@ GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> -GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
>  GLIBC_2.9 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index dc666f1cc1..9a608b624c 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -341,6 +341,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2677,4 +2678,5 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
> index 1f2d60151f..b65f928a24 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
> @@ -77,7 +77,6 @@ GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> -GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
>  GLIBC_2.9 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 403a84d1c6..5c2fe19b5e 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1396,6 +1396,7 @@ GLIBC_2.29 nl_langinfo_l F
>  GLIBC_2.29 nrand48 F
>  GLIBC_2.29 nrand48_r F
>  GLIBC_2.29 ns_name_ntop F
> +GLIBC_2.29 ns_name_unpack F
>  GLIBC_2.29 ntohl F
>  GLIBC_2.29 ntohs F
>  GLIBC_2.29 ntp_adjtime F
> @@ -2477,6 +2478,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
> index eca5d43340..706af86332 100644
> --- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
> @@ -65,7 +65,6 @@ GLIBC_2.29 ns_name_pton F
>  GLIBC_2.29 ns_name_rollback F
>  GLIBC_2.29 ns_name_skip F
>  GLIBC_2.29 ns_name_uncompress F
> -GLIBC_2.29 ns_name_unpack F
>  GLIBC_2.29 ns_parse_ttl F
>  GLIBC_2.29 ns_parserr F
>  GLIBC_2.29 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 640fe27645..f76ae1034e 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2429,6 +2429,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2694,4 +2695,5 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
> index 14c65c7a46..65c4147299 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
> @@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> -GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
>  GLIBC_2.9 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 0064e5c88a..9d8a964e99 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2613,6 +2613,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2878,4 +2879,5 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/i386/libresolv.abilist b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
> index 14c65c7a46..65c4147299 100644
> --- a/sysdeps/unix/sysv/linux/i386/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
> @@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> -GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
>  GLIBC_2.9 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index f42d8294de..12af56217c 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2388,6 +2388,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2653,4 +2654,5 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
> index 2eee410d23..96bfcda497 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
> @@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> -GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
>  GLIBC_2.9 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 53f45dc6a4..a7e7db0d51 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -345,6 +345,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2659,4 +2660,5 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
> index 1f2d60151f..b65f928a24 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
> @@ -77,7 +77,6 @@ GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> -GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
>  GLIBC_2.9 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 8992fdb150..8e9523d2f2 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2556,6 +2556,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2821,4 +2822,5 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
> index 14c65c7a46..65c4147299 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
> @@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> -GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
>  GLIBC_2.9 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 85651e5bfe..3b080473e2 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1407,6 +1407,7 @@ GLIBC_2.18 nl_langinfo_l F
>  GLIBC_2.18 nrand48 F
>  GLIBC_2.18 nrand48_r F
>  GLIBC_2.18 ns_name_ntop F
> +GLIBC_2.18 ns_name_unpack F
>  GLIBC_2.18 ntohl F
>  GLIBC_2.18 ntohs F
>  GLIBC_2.18 ntp_adjtime F
> @@ -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_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
> index 815672536e..b37f89df02 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.18 ns_name_pton F
>  GLIBC_2.18 ns_name_rollback F
>  GLIBC_2.18 ns_name_skip F
>  GLIBC_2.18 ns_name_uncompress F
> -GLIBC_2.18 ns_name_unpack F
>  GLIBC_2.18 ns_parse_ttl F
>  GLIBC_2.18 ns_parserr F
>  GLIBC_2.18 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index be1f207863..8796b3bbfa 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1407,6 +1407,7 @@ GLIBC_2.18 nl_langinfo_l F
>  GLIBC_2.18 nrand48 F
>  GLIBC_2.18 nrand48_r F
>  GLIBC_2.18 ns_name_ntop F
> +GLIBC_2.18 ns_name_unpack F
>  GLIBC_2.18 ntohl F
>  GLIBC_2.18 ntohs F
>  GLIBC_2.18 ntp_adjtime F
> @@ -2525,6 +2526,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
> index 815672536e..b37f89df02 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.18 ns_name_pton F
>  GLIBC_2.18 ns_name_rollback F
>  GLIBC_2.18 ns_name_skip F
>  GLIBC_2.18 ns_name_uncompress F
> -GLIBC_2.18 ns_name_unpack F
>  GLIBC_2.18 ns_parse_ttl F
>  GLIBC_2.18 ns_parserr F
>  GLIBC_2.18 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 7bf0307887..68614db597 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2521,6 +2521,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2782,4 +2783,5 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
> index 14c65c7a46..65c4147299 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
> @@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> -GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
>  GLIBC_2.9 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 909b533575..9bbb7c5621 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2519,6 +2519,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2780,4 +2781,5 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index ddeedf1dd9..96bf68ec0f 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2527,6 +2527,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2788,4 +2789,5 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
> index 14c65c7a46..65c4147299 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
> @@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> -GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
>  GLIBC_2.9 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 93036f5b60..6d3036a673 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2439,6 +2439,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2700,4 +2701,5 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
> index 2eee410d23..96bfcda497 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
> @@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> -GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
>  GLIBC_2.9 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index da0f44c5e1..9bd7b364ee 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1450,6 +1450,7 @@ GLIBC_2.21 nl_langinfo_l F
>  GLIBC_2.21 nrand48 F
>  GLIBC_2.21 nrand48_r F
>  GLIBC_2.21 ns_name_ntop F
> +GLIBC_2.21 ns_name_unpack F
>  GLIBC_2.21 ntohl F
>  GLIBC_2.21 ntohs F
>  GLIBC_2.21 ntp_adjtime F
> @@ -2567,6 +2568,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
> index b1b08bb486..5440f128a1 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.21 ns_name_pton F
>  GLIBC_2.21 ns_name_rollback F
>  GLIBC_2.21 ns_name_skip F
>  GLIBC_2.21 ns_name_uncompress F
> -GLIBC_2.21 ns_name_unpack F
>  GLIBC_2.21 ns_parse_ttl F
>  GLIBC_2.21 ns_parserr F
>  GLIBC_2.21 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 0e7944d5b7..bc7c8d8b36 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2583,6 +2583,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -3019,4 +3020,5 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
> index 14c65c7a46..65c4147299 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
> @@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> -GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
>  GLIBC_2.9 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index ea590ca43c..a42f391d96 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2616,6 +2616,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -3064,4 +3065,5 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index fde9d2e40d..0a84e3dac2 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -2352,6 +2352,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2788,4 +2789,5 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
> index c998d17d81..f9615e3258 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
> @@ -77,7 +77,6 @@ GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> -GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
>  GLIBC_2.9 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 70eaf6b69b..702cc85b50 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1493,6 +1493,7 @@ GLIBC_2.17 nl_langinfo_l F
>  GLIBC_2.17 nrand48 F
>  GLIBC_2.17 nrand48_r F
>  GLIBC_2.17 ns_name_ntop F
> +GLIBC_2.17 ns_name_unpack F
>  GLIBC_2.17 ntohl F
>  GLIBC_2.17 ntohs F
>  GLIBC_2.17 ntp_adjtime F
> @@ -2648,6 +2649,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
> index 0a93c2cc44..088a380288 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.17 ns_name_pton F
>  GLIBC_2.17 ns_name_rollback F
>  GLIBC_2.17 ns_name_skip F
>  GLIBC_2.17 ns_name_uncompress F
> -GLIBC_2.17 ns_name_unpack F
>  GLIBC_2.17 ns_parse_ttl F
>  GLIBC_2.17 ns_parserr F
>  GLIBC_2.17 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index f3a14d6efc..38a7e94c89 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1341,6 +1341,7 @@ GLIBC_2.33 nl_langinfo_l F
>  GLIBC_2.33 nrand48 F
>  GLIBC_2.33 nrand48_r F
>  GLIBC_2.33 ns_name_ntop F
> +GLIBC_2.33 ns_name_unpack F
>  GLIBC_2.33 ntohl F
>  GLIBC_2.33 ntohs F
>  GLIBC_2.33 ntp_adjtime F
> @@ -2213,6 +2214,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
> index a3af26db78..e7595e5a28 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
> @@ -65,7 +65,6 @@ GLIBC_2.33 ns_name_pton F
>  GLIBC_2.33 ns_name_rollback F
>  GLIBC_2.33 ns_name_skip F
>  GLIBC_2.33 ns_name_uncompress F
> -GLIBC_2.33 ns_name_unpack F
>  GLIBC_2.33 ns_parse_ttl F
>  GLIBC_2.33 ns_parserr F
>  GLIBC_2.33 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 94ededbfb6..6ad1142be3 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1388,6 +1388,7 @@ GLIBC_2.27 nl_langinfo_l F
>  GLIBC_2.27 nrand48 F
>  GLIBC_2.27 nrand48_r F
>  GLIBC_2.27 ns_name_ntop F
> +GLIBC_2.27 ns_name_unpack F
>  GLIBC_2.27 ntohl F
>  GLIBC_2.27 ntohs F
>  GLIBC_2.27 ntp_adjtime F
> @@ -2413,6 +2414,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
> index 0d4bd6855b..ad3fd40f6d 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
> @@ -65,7 +65,6 @@ GLIBC_2.27 ns_name_pton F
>  GLIBC_2.27 ns_name_rollback F
>  GLIBC_2.27 ns_name_skip F
>  GLIBC_2.27 ns_name_uncompress F
> -GLIBC_2.27 ns_name_unpack F
>  GLIBC_2.27 ns_parse_ttl F
>  GLIBC_2.27 ns_parserr F
>  GLIBC_2.27 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 6a1a79c0cb..b02fc32c1f 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2581,6 +2581,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -3027,6 +3028,7 @@ GLIBC_2.9 getutxline F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 login F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
>  GLIBC_2.9 pututline F
>  GLIBC_2.9 pututxline F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
> index 14c65c7a46..65c4147299 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
> @@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> -GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
>  GLIBC_2.9 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 0ccda5fb5e..30792bcca7 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2389,6 +2389,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2823,4 +2824,5 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
> index 548e92b846..5f3cac884a 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
> @@ -77,7 +77,6 @@ GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> -GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
>  GLIBC_2.9 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 0b2709d984..c556603108 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2436,6 +2436,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2701,4 +2702,5 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
> index 14c65c7a46..65c4147299 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
> @@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> -GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
>  GLIBC_2.9 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 3077a96068..bc84cf6f5e 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2433,6 +2433,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2698,4 +2699,5 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
> index 14c65c7a46..65c4147299 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
> @@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> -GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
>  GLIBC_2.9 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 1df94b2c6b..2010492695 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2576,6 +2576,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -3036,4 +3037,5 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
> index 14c65c7a46..65c4147299 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
> @@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> -GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
>  GLIBC_2.9 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 8596cfbde9..46d2a55532 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2411,6 +2411,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2676,4 +2677,5 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
> index 2eee410d23..96bfcda497 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
> @@ -82,7 +82,6 @@ GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> -GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
>  GLIBC_2.9 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 7422e4dcd6..52ccfad228 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2367,6 +2367,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> @@ -2632,4 +2633,5 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
> index 954af66409..34277a3732 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
> @@ -77,7 +77,6 @@ GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> -GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
>  GLIBC_2.9 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index dba3592fb9..fe7f1661c0 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1412,6 +1412,7 @@ GLIBC_2.16 nl_langinfo_l F
>  GLIBC_2.16 nrand48 F
>  GLIBC_2.16 nrand48_r F
>  GLIBC_2.16 ns_name_ntop F
> +GLIBC_2.16 ns_name_unpack F
>  GLIBC_2.16 ntohl F
>  GLIBC_2.16 ntohs F
>  GLIBC_2.16 ntp_adjtime F
> @@ -2467,6 +2468,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
>  GLIBC_2.34 pthread_attr_getguardsize F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
> index 79b4bbdd98..16eca4411d 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.16 ns_name_pton F
>  GLIBC_2.16 ns_name_rollback F
>  GLIBC_2.16 ns_name_skip F
>  GLIBC_2.16 ns_name_uncompress F
> -GLIBC_2.16 ns_name_unpack F
>  GLIBC_2.16 ns_parse_ttl F
>  GLIBC_2.16 ns_parserr F
>  GLIBC_2.16 ns_put16 F
> 

OK.

-- 
Cheers,
Carlos.


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

* Re: [PATCH 07/30] resolv: Move ns_name_skip to its own file and into libc
  2021-07-08 15:00 ` [PATCH 07/30] resolv: Move ns_name_skip " Florian Weimer via Libc-alpha
@ 2021-07-15  5:00   ` Carlos O'Donell via Libc-alpha
  2021-07-15  6:53     ` Florian Weimer via Libc-alpha
  0 siblings, 1 reply; 70+ messages in thread
From: Carlos O'Donell via Libc-alpha @ 2021-07-15  5:00 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 7/8/21 11:00 AM, Florian Weimer via Libc-alpha wrote:
> And reformat to GNU style.
> 
> The symbol was moved using scripts/move-symbol-to-libc.py.

OK for glibc 2.34.

Optional: If you respin it might be nice to have a first line
description for resolv/ns_name_skip.c.

Tested without regression on x86_64 and i686.

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                               |  5 +-
>  resolv/ns_name.c                              | 37 -----------
>  resolv/ns_name_skip.c                         | 62 +++++++++++++++++++
>  sysdeps/mach/hurd/i386/libc.abilist           |  2 +
>  sysdeps/mach/hurd/i386/libresolv.abilist      |  1 -
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  2 +
>  .../unix/sysv/linux/aarch64/libresolv.abilist |  1 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist    |  2 +
>  .../unix/sysv/linux/alpha/libresolv.abilist   |  1 -
>  sysdeps/unix/sysv/linux/arc/libc.abilist      |  2 +
>  sysdeps/unix/sysv/linux/arc/libresolv.abilist |  1 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  2 +
>  .../unix/sysv/linux/arm/be/libresolv.abilist  |  1 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  2 +
>  .../unix/sysv/linux/arm/le/libresolv.abilist  |  1 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist     |  2 +
>  .../unix/sysv/linux/csky/libresolv.abilist    |  1 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist     |  2 +
>  .../unix/sysv/linux/hppa/libresolv.abilist    |  1 -
>  sysdeps/unix/sysv/linux/i386/libc.abilist     |  2 +
>  .../unix/sysv/linux/i386/libresolv.abilist    |  1 -
>  sysdeps/unix/sysv/linux/ia64/libc.abilist     |  2 +
>  .../unix/sysv/linux/ia64/libresolv.abilist    |  1 -
>  .../sysv/linux/m68k/coldfire/libc.abilist     |  2 +
>  .../linux/m68k/coldfire/libresolv.abilist     |  1 -
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  2 +
>  .../sysv/linux/m68k/m680x0/libresolv.abilist  |  1 -
>  .../sysv/linux/microblaze/be/libc.abilist     |  2 +
>  .../linux/microblaze/be/libresolv.abilist     |  1 -
>  .../sysv/linux/microblaze/le/libc.abilist     |  2 +
>  .../linux/microblaze/le/libresolv.abilist     |  1 -
>  .../sysv/linux/mips/mips32/fpu/libc.abilist   |  2 +
>  .../sysv/linux/mips/mips32/libresolv.abilist  |  1 -
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist |  2 +
>  .../sysv/linux/mips/mips64/n32/libc.abilist   |  2 +
>  .../linux/mips/mips64/n32/libresolv.abilist   |  1 -
>  .../sysv/linux/mips/mips64/n64/libc.abilist   |  2 +
>  .../linux/mips/mips64/n64/libresolv.abilist   |  1 -
>  sysdeps/unix/sysv/linux/nios2/libc.abilist    |  2 +
>  .../unix/sysv/linux/nios2/libresolv.abilist   |  1 -
>  .../linux/powerpc/powerpc32/fpu/libc.abilist  |  2 +
>  .../linux/powerpc/powerpc32/libresolv.abilist |  1 -
>  .../powerpc/powerpc32/nofpu/libc.abilist      |  2 +
>  .../linux/powerpc/powerpc64/be/libc.abilist   |  2 +
>  .../powerpc/powerpc64/be/libresolv.abilist    |  1 -
>  .../linux/powerpc/powerpc64/le/libc.abilist   |  2 +
>  .../powerpc/powerpc64/le/libresolv.abilist    |  1 -
>  .../unix/sysv/linux/riscv/rv32/libc.abilist   |  2 +
>  .../sysv/linux/riscv/rv32/libresolv.abilist   |  1 -
>  .../unix/sysv/linux/riscv/rv64/libc.abilist   |  2 +
>  .../sysv/linux/riscv/rv64/libresolv.abilist   |  1 -
>  .../unix/sysv/linux/s390/s390-32/libc.abilist |  2 +
>  .../sysv/linux/s390/s390-32/libresolv.abilist |  1 -
>  .../unix/sysv/linux/s390/s390-64/libc.abilist |  2 +
>  .../sysv/linux/s390/s390-64/libresolv.abilist |  1 -
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  2 +
>  .../unix/sysv/linux/sh/be/libresolv.abilist   |  1 -
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  2 +
>  .../unix/sysv/linux/sh/le/libresolv.abilist   |  1 -
>  .../sysv/linux/sparc/sparc32/libc.abilist     |  2 +
>  .../linux/sparc/sparc32/libresolv.abilist     |  1 -
>  .../sysv/linux/sparc/sparc64/libc.abilist     |  2 +
>  .../linux/sparc/sparc64/libresolv.abilist     |  1 -
>  .../unix/sysv/linux/x86_64/64/libc.abilist    |  2 +
>  .../sysv/linux/x86_64/64/libresolv.abilist    |  1 -
>  .../unix/sysv/linux/x86_64/x32/libc.abilist   |  2 +
>  .../sysv/linux/x86_64/x32/libresolv.abilist   |  1 -
>  69 files changed, 135 insertions(+), 70 deletions(-)
>  create mode 100644 resolv/ns_name_skip.c
> 
> diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
> index 2396a43030..c4ec0aaf7a 100644
> --- a/include/arpa/nameser.h
> +++ b/include/arpa/nameser.h
> @@ -67,7 +67,6 @@ libresolv_hidden_proto (ns_skiprr)
>  libresolv_hidden_proto (ns_parserr)
>  libresolv_hidden_proto (ns_name_pton)
>  libresolv_hidden_proto (ns_name_pack)
> -libresolv_hidden_proto (ns_name_skip)
>  libresolv_hidden_proto (ns_name_compress)
>  libresolv_hidden_proto (ns_name_uncompress)
>  libresolv_hidden_proto (ns_sprintrr)
> @@ -79,6 +78,8 @@ libresolv_hidden_proto (ns_format_ttl)
>  
>  extern __typeof (ns_name_ntop) __ns_name_ntop;
>  libc_hidden_proto (__ns_name_ntop)
> +extern __typeof (ns_name_skip) __ns_name_skip;
> +libc_hidden_proto (__ns_name_skip)
>  extern __typeof (ns_name_unpack) __ns_name_unpack;
>  libc_hidden_proto (__ns_name_unpack)
>  
> diff --git a/resolv/Makefile b/resolv/Makefile
> index 469a9a55ae..91ce46a3b9 100644
> --- a/resolv/Makefile
> +++ b/resolv/Makefile
> @@ -33,6 +33,7 @@ routines := \
>    inet_ntop \
>    inet_pton \
>    ns_name_ntop \
> +  ns_name_skip \

OK.

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

OK.

>      ns_name_unpack;
>    }
>    GLIBC_2.34 {
> @@ -36,6 +37,7 @@ libc {
>      getaddrinfo_a;
>  %endif
>      ns_name_ntop;
> +    ns_name_skip;

OK.

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

OK.

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

OK.

>  /* Private. */
>  
>  /*%
> diff --git a/resolv/ns_name_skip.c b/resolv/ns_name_skip.c
> new file mode 100644
> index 0000000000..66dd2b6334
> --- /dev/null
> +++ b/resolv/ns_name_skip.c
> @@ -0,0 +1,62 @@
> +/*

OK. Would be nice to have a description here for the file, but not required
for __ns_name_skip.

> + * 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 ((n = *cp++) != 0)

OK. This is different from the original code in that this new refactored
code will advance indefinately if n continues to be non-zero. The old code
terminated the while loop with 'cp >= eom' and that would happen as cp
was advanced by the case statements. Every valid message should have
ended before or at eom, so one can't say this change is wrong. The old
code would have exited the while loop after the first advance of cp
at or past eom. If we stopped at eom but *cp contained a non-zero value
then we should technically have kept processing, but we didn't, and
didn't return an error (EMSGSIZE). Therefore I think this change is more
accurate in that it catches this corner case.

> +    {
> +      /* Check for indirection.  */
> +      switch (n & NS_CMPRSFLGS)
> +        {
> +        case 0:                 /* Normal case, n == len.  */
> +          cp += n;
> +          continue;
> +        case NS_CMPRSFLGS:      /* Indirection.  */
> +          cp++;
> +          break;
> +        default:                /* Illegal type.  */
> +          __set_errno (EMSGSIZE);
> +          return -1;
> +        }
> +      break;
> +    }
> +  if (cp > eom)
> +    {
> +      __set_errno (EMSGSIZE);
> +      return -1;
> +    }
> +  *ptrptr = cp;
> +  return 0;
> +}
> +versioned_symbol (libc, ___ns_name_skip, ns_name_skip, GLIBC_2_34);
> +versioned_symbol (libc, ___ns_name_skip, __ns_name_skip, GLIBC_PRIVATE);
> +libc_hidden_ver (___ns_name_skip, __ns_name_skip)
> +
> +#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_9, GLIBC_2_34)
> +compat_symbol (libresolv, ___ns_name_skip, ns_name_skip, GLIBC_2_9);
> +#endif
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index 6576db7c4d..2d8ef7235e 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -2241,6 +2241,7 @@ GLIBC_2.34 login_tty F
>  GLIBC_2.34 logout F
>  GLIBC_2.34 logwtmp F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 shm_open F
> @@ -2363,6 +2364,7 @@ GLIBC_2.8 __vdprintf_chk F
>  GLIBC_2.8 qsort_r F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
>  HURD_CTHREADS_0.3 __cthread_getspecific F
> diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
> index ac0ee33f74..adb8afdfdb 100644
> --- a/sysdeps/mach/hurd/i386/libresolv.abilist
> +++ b/sysdeps/mach/hurd/i386/libresolv.abilist
> @@ -75,7 +75,6 @@ GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> -GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 740e3d74bc..eb990157f3 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
> @@ -2453,6 +2454,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
> index 088a380288..0c18a1077e 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
> @@ -70,7 +70,6 @@ GLIBC_2.17 ns_name_ntol F
>  GLIBC_2.17 ns_name_pack F
>  GLIBC_2.17 ns_name_pton F
>  GLIBC_2.17 ns_name_rollback F
> -GLIBC_2.17 ns_name_skip F
>  GLIBC_2.17 ns_name_uncompress F
>  GLIBC_2.17 ns_parse_ttl F
>  GLIBC_2.17 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 2466effa31..8f5309caad 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2550,6 +2550,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2985,5 +2986,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 4c5913ac9a..9d56883a7d 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
> @@ -2212,6 +2213,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
> index a2a3b33098..ebaa6c47e5 100644
> --- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
> @@ -63,7 +63,6 @@ GLIBC_2.32 ns_name_ntol F
>  GLIBC_2.32 ns_name_pack F
>  GLIBC_2.32 ns_name_pton F
>  GLIBC_2.32 ns_name_rollback F
> -GLIBC_2.32 ns_name_skip F
>  GLIBC_2.32 ns_name_uncompress F
>  GLIBC_2.32 ns_parse_ttl F
>  GLIBC_2.32 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index c3ec2a2394..4c2dccf268 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -344,6 +344,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -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/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 9a608b624c..0fd6428de8 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -341,6 +341,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2678,5 +2679,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 5c2fe19b5e..a0d5d97f56 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
> @@ -2478,6 +2479,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
> index 706af86332..d12b2546a3 100644
> --- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
> @@ -63,7 +63,6 @@ GLIBC_2.29 ns_name_ntol F
>  GLIBC_2.29 ns_name_pack F
>  GLIBC_2.29 ns_name_pton F
>  GLIBC_2.29 ns_name_rollback F
> -GLIBC_2.29 ns_name_skip F
>  GLIBC_2.29 ns_name_uncompress F
>  GLIBC_2.29 ns_parse_ttl F
>  GLIBC_2.29 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index f76ae1034e..a07fbd2078 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2429,6 +2429,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2695,5 +2696,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 9d8a964e99..0a1a45c4e7 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2613,6 +2613,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2879,5 +2880,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 12af56217c..2a28ef6086 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2388,6 +2388,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2654,5 +2655,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 a7e7db0d51..4388f3071d 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -345,6 +345,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2660,5 +2661,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 8e9523d2f2..99b4caae17 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2556,6 +2556,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2822,5 +2823,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 3b080473e2..d018943dbe 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
> @@ -2529,6 +2530,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
> index b37f89df02..36c1e1477d 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
> @@ -70,7 +70,6 @@ GLIBC_2.18 ns_name_ntol F
>  GLIBC_2.18 ns_name_pack F
>  GLIBC_2.18 ns_name_pton F
>  GLIBC_2.18 ns_name_rollback F
> -GLIBC_2.18 ns_name_skip F
>  GLIBC_2.18 ns_name_uncompress F
>  GLIBC_2.18 ns_parse_ttl F
>  GLIBC_2.18 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 8796b3bbfa..28552f1b80 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
> @@ -2526,6 +2527,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
> index b37f89df02..36c1e1477d 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
> @@ -70,7 +70,6 @@ GLIBC_2.18 ns_name_ntol F
>  GLIBC_2.18 ns_name_pack F
>  GLIBC_2.18 ns_name_pton F
>  GLIBC_2.18 ns_name_rollback F
> -GLIBC_2.18 ns_name_skip F
>  GLIBC_2.18 ns_name_uncompress F
>  GLIBC_2.18 ns_parse_ttl F
>  GLIBC_2.18 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 68614db597..08da0a9b24 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2521,6 +2521,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2783,5 +2784,6 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/mips/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 9bbb7c5621..d0f957a7b1 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2519,6 +2519,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2781,5 +2782,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 96bf68ec0f..d19ba7d186 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2527,6 +2527,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2789,5 +2790,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 6d3036a673..167b1ec1c1 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2439,6 +2439,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2701,5 +2702,6 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/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 9bd7b364ee..5d7723a22e 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
> @@ -2568,6 +2569,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
> index 5440f128a1..6a3ee63c15 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
> @@ -70,7 +70,6 @@ GLIBC_2.21 ns_name_ntol F
>  GLIBC_2.21 ns_name_pack F
>  GLIBC_2.21 ns_name_pton F
>  GLIBC_2.21 ns_name_rollback F
> -GLIBC_2.21 ns_name_skip F
>  GLIBC_2.21 ns_name_uncompress F
>  GLIBC_2.21 ns_parse_ttl F
>  GLIBC_2.21 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index bc7c8d8b36..31e50429c3 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2583,6 +2583,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -3020,5 +3021,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 a42f391d96..b03dde6df7 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2616,6 +2616,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -3065,5 +3066,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 0a84e3dac2..64ed6e1fdc 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -2352,6 +2352,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2789,5 +2790,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 702cc85b50..013aaad687 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
> @@ -2649,6 +2650,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
> index 088a380288..0c18a1077e 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
> @@ -70,7 +70,6 @@ GLIBC_2.17 ns_name_ntol F
>  GLIBC_2.17 ns_name_pack F
>  GLIBC_2.17 ns_name_pton F
>  GLIBC_2.17 ns_name_rollback F
> -GLIBC_2.17 ns_name_skip F
>  GLIBC_2.17 ns_name_uncompress F
>  GLIBC_2.17 ns_parse_ttl F
>  GLIBC_2.17 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 38a7e94c89..ea0919fd8f 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
> @@ -2214,6 +2215,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/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 6ad1142be3..aeb3a0eb69 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
> @@ -2414,6 +2415,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
> index ad3fd40f6d..1b0a9f7284 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
> @@ -63,7 +63,6 @@ GLIBC_2.27 ns_name_ntol F
>  GLIBC_2.27 ns_name_pack F
>  GLIBC_2.27 ns_name_pton F
>  GLIBC_2.27 ns_name_rollback F
> -GLIBC_2.27 ns_name_skip F
>  GLIBC_2.27 ns_name_uncompress F
>  GLIBC_2.27 ns_parse_ttl F
>  GLIBC_2.27 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index b02fc32c1f..82edac8485 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2581,6 +2581,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -3028,6 +3029,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 30792bcca7..0814fe77b4 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2389,6 +2389,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2824,5 +2825,6 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/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 c556603108..9895a607f3 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2436,6 +2436,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -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/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 bc84cf6f5e..bdce7c7e5e 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2433,6 +2433,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2699,5 +2700,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 2010492695..ed30903823 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2576,6 +2576,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -3037,5 +3038,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 46d2a55532..b19390184b 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2411,6 +2411,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2677,5 +2678,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 52ccfad228..b9a575986d 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2367,6 +2367,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2633,5 +2634,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 fe7f1661c0..86a0ee5323 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
> @@ -2468,6 +2469,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
> index 16eca4411d..db2942840e 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
> @@ -70,7 +70,6 @@ GLIBC_2.16 ns_name_ntol F
>  GLIBC_2.16 ns_name_pack F
>  GLIBC_2.16 ns_name_pton F
>  GLIBC_2.16 ns_name_rollback F
> -GLIBC_2.16 ns_name_skip F
>  GLIBC_2.16 ns_name_uncompress F
>  GLIBC_2.16 ns_parse_ttl F
>  GLIBC_2.16 ns_parserr F
> 

OK.

-- 
Cheers,
Carlos.


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

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

On 7/8/21 11:00 AM, Florian Weimer via Libc-alpha wrote:
> And reformat to GNU style.  Check for negative error returns
> (instead of -1).

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
 
> The symbol was moved using scripts/move-symbol-to-libc.py.
> ---
>  include/arpa/nameser.h                        |  3 +-
>  resolv/Makefile                               |  1 +
>  resolv/Versions                               |  4 +-
>  resolv/ns_name.c                              | 24 ----------
>  resolv/ns_name_uncompress.c                   | 45 +++++++++++++++++++
>  sysdeps/mach/hurd/i386/libc.abilist           |  2 +
>  sysdeps/mach/hurd/i386/libresolv.abilist      |  1 -
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  2 +
>  .../unix/sysv/linux/aarch64/libresolv.abilist |  1 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist    |  2 +
>  .../unix/sysv/linux/alpha/libresolv.abilist   |  1 -
>  sysdeps/unix/sysv/linux/arc/libc.abilist      |  2 +
>  sysdeps/unix/sysv/linux/arc/libresolv.abilist |  1 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  2 +
>  .../unix/sysv/linux/arm/be/libresolv.abilist  |  1 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  2 +
>  .../unix/sysv/linux/arm/le/libresolv.abilist  |  1 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist     |  2 +
>  .../unix/sysv/linux/csky/libresolv.abilist    |  1 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist     |  2 +
>  .../unix/sysv/linux/hppa/libresolv.abilist    |  1 -
>  sysdeps/unix/sysv/linux/i386/libc.abilist     |  2 +
>  .../unix/sysv/linux/i386/libresolv.abilist    |  1 -
>  sysdeps/unix/sysv/linux/ia64/libc.abilist     |  2 +
>  .../unix/sysv/linux/ia64/libresolv.abilist    |  1 -
>  .../sysv/linux/m68k/coldfire/libc.abilist     |  2 +
>  .../linux/m68k/coldfire/libresolv.abilist     |  1 -
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  2 +
>  .../sysv/linux/m68k/m680x0/libresolv.abilist  |  1 -
>  .../sysv/linux/microblaze/be/libc.abilist     |  2 +
>  .../linux/microblaze/be/libresolv.abilist     |  1 -
>  .../sysv/linux/microblaze/le/libc.abilist     |  2 +
>  .../linux/microblaze/le/libresolv.abilist     |  1 -
>  .../sysv/linux/mips/mips32/fpu/libc.abilist   |  2 +
>  .../sysv/linux/mips/mips32/libresolv.abilist  |  1 -
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist |  2 +
>  .../sysv/linux/mips/mips64/n32/libc.abilist   |  2 +
>  .../linux/mips/mips64/n32/libresolv.abilist   |  1 -
>  .../sysv/linux/mips/mips64/n64/libc.abilist   |  2 +
>  .../linux/mips/mips64/n64/libresolv.abilist   |  1 -
>  sysdeps/unix/sysv/linux/nios2/libc.abilist    |  2 +
>  .../unix/sysv/linux/nios2/libresolv.abilist   |  1 -
>  .../linux/powerpc/powerpc32/fpu/libc.abilist  |  2 +
>  .../linux/powerpc/powerpc32/libresolv.abilist |  1 -
>  .../powerpc/powerpc32/nofpu/libc.abilist      |  2 +
>  .../linux/powerpc/powerpc64/be/libc.abilist   |  2 +
>  .../powerpc/powerpc64/be/libresolv.abilist    |  1 -
>  .../linux/powerpc/powerpc64/le/libc.abilist   |  2 +
>  .../powerpc/powerpc64/le/libresolv.abilist    |  1 -
>  .../unix/sysv/linux/riscv/rv32/libc.abilist   |  2 +
>  .../sysv/linux/riscv/rv32/libresolv.abilist   |  1 -
>  .../unix/sysv/linux/riscv/rv64/libc.abilist   |  2 +
>  .../sysv/linux/riscv/rv64/libresolv.abilist   |  1 -
>  .../unix/sysv/linux/s390/s390-32/libc.abilist |  2 +
>  .../sysv/linux/s390/s390-32/libresolv.abilist |  1 -
>  .../unix/sysv/linux/s390/s390-64/libc.abilist |  2 +
>  .../sysv/linux/s390/s390-64/libresolv.abilist |  1 -
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  2 +
>  .../unix/sysv/linux/sh/be/libresolv.abilist   |  1 -
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  2 +
>  .../unix/sysv/linux/sh/le/libresolv.abilist   |  1 -
>  .../sysv/linux/sparc/sparc32/libc.abilist     |  2 +
>  .../linux/sparc/sparc32/libresolv.abilist     |  1 -
>  .../sysv/linux/sparc/sparc64/libc.abilist     |  2 +
>  .../linux/sparc/sparc64/libresolv.abilist     |  1 -
>  .../unix/sysv/linux/x86_64/64/libc.abilist    |  2 +
>  .../sysv/linux/x86_64/64/libresolv.abilist    |  1 -
>  .../unix/sysv/linux/x86_64/x32/libc.abilist   |  2 +
>  .../sysv/linux/x86_64/x32/libresolv.abilist   |  1 -
>  69 files changed, 117 insertions(+), 57 deletions(-)
>  create mode 100644 resolv/ns_name_uncompress.c
> 
> diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
> index c4ec0aaf7a..dcceff823d 100644
> --- a/include/arpa/nameser.h
> +++ b/include/arpa/nameser.h
> @@ -68,7 +68,6 @@ libresolv_hidden_proto (ns_parserr)
>  libresolv_hidden_proto (ns_name_pton)
>  libresolv_hidden_proto (ns_name_pack)
>  libresolv_hidden_proto (ns_name_compress)
> -libresolv_hidden_proto (ns_name_uncompress)
>  libresolv_hidden_proto (ns_sprintrr)
>  libresolv_hidden_proto (ns_sprintrrf)
>  libresolv_hidden_proto (ns_samedomain)
> @@ -80,6 +79,8 @@ extern __typeof (ns_name_ntop) __ns_name_ntop;
>  libc_hidden_proto (__ns_name_ntop)
>  extern __typeof (ns_name_skip) __ns_name_skip;
>  libc_hidden_proto (__ns_name_skip)
> +extern __typeof (ns_name_uncompress) __ns_name_uncompress;
> +libc_hidden_proto (__ns_name_uncompress)

OK.

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

OK.

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

OK.

>      ns_name_unpack;
>    }
>    GLIBC_2.34 {
> @@ -38,6 +39,7 @@ libc {
>  %endif
>      ns_name_ntop;
>      ns_name_skip;
> +    ns_name_uncompress;

OK.

>      ns_name_unpack;
>    }
>    GLIBC_PRIVATE {
> @@ -49,6 +51,7 @@ libc {
>      __inet_pton_length;
>      __ns_name_ntop;
>      __ns_name_skip;
> +    __ns_name_uncompress;

OK.

>      __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;

OK.

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

OK.

>  /*%
>   *	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.

OK.

> + * 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;

OK. Not quite the same conditional as the original code which returnd -1
when __ns_name_unpack returned -1, but this may result in better code
generation, and is functionally the same.

> +  if (__ns_name_ntop (tmp, dst, dstsiz) < 0)
> +    return -1;

OK. Likewise.

> +  return n;

OK. Same.

> +}
> +versioned_symbol (libc, ___ns_name_uncompress, ns_name_uncompress,
> +                  GLIBC_2_34);
> +versioned_symbol (libc, ___ns_name_uncompress, __ns_name_uncompress,
> +                  GLIBC_PRIVATE);
> +libc_hidden_ver (___ns_name_uncompress, __ns_name_uncompress)
> +
> +#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_9, GLIBC_2_34)
> +compat_symbol (libresolv, ___ns_name_uncompress, ns_name_uncompress,
> +               GLIBC_2_9);
> +#endif
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index 2d8ef7235e..970b28eac6 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -2242,6 +2242,7 @@ GLIBC_2.34 logout F
>  GLIBC_2.34 logwtmp F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 shm_open F
> @@ -2365,6 +2366,7 @@ GLIBC_2.8 qsort_r F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_skip F
> +GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
>  HURD_CTHREADS_0.3 __cthread_getspecific F
> diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
> index adb8afdfdb..ca2c547a81 100644
> --- a/sysdeps/mach/hurd/i386/libresolv.abilist
> +++ b/sysdeps/mach/hurd/i386/libresolv.abilist
> @@ -75,7 +75,6 @@ GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
> -GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
>  GLIBC_2.9 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index eb990157f3..fa4652a7df 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
> @@ -2455,6 +2456,7 @@ GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
> index 0c18a1077e..f72b307b99 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
> @@ -70,7 +70,6 @@ GLIBC_2.17 ns_name_ntol F
>  GLIBC_2.17 ns_name_pack F
>  GLIBC_2.17 ns_name_pton F
>  GLIBC_2.17 ns_name_rollback F
> -GLIBC_2.17 ns_name_uncompress F
>  GLIBC_2.17 ns_parse_ttl F
>  GLIBC_2.17 ns_parserr F
>  GLIBC_2.17 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 8f5309caad..36a577adc7 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_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2987,5 +2988,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 9d56883a7d..afc1278d6c 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
> @@ -2214,6 +2215,7 @@ GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
> index ebaa6c47e5..ed1aa0e9ed 100644
> --- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
> @@ -63,7 +63,6 @@ GLIBC_2.32 ns_name_ntol F
>  GLIBC_2.32 ns_name_pack F
>  GLIBC_2.32 ns_name_pton F
>  GLIBC_2.32 ns_name_rollback F
> -GLIBC_2.32 ns_name_uncompress F
>  GLIBC_2.32 ns_parse_ttl F
>  GLIBC_2.32 ns_parserr F
>  GLIBC_2.32 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 4c2dccf268..a7d135a4c2 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_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -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/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 0fd6428de8..7bced4102e 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_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2680,5 +2681,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 a0d5d97f56..40aca91bb5 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
> @@ -2480,6 +2481,7 @@ GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
> index d12b2546a3..b2a83ee8cc 100644
> --- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
> @@ -63,7 +63,6 @@ GLIBC_2.29 ns_name_ntol F
>  GLIBC_2.29 ns_name_pack F
>  GLIBC_2.29 ns_name_pton F
>  GLIBC_2.29 ns_name_rollback F
> -GLIBC_2.29 ns_name_uncompress F
>  GLIBC_2.29 ns_parse_ttl F
>  GLIBC_2.29 ns_parserr F
>  GLIBC_2.29 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index a07fbd2078..cb19800bde 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_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2697,5 +2698,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 0a1a45c4e7..c2d526dd2c 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_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2881,5 +2882,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 2a28ef6086..1276461181 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_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2656,5 +2657,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 4388f3071d..59147109e2 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_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2662,5 +2663,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 99b4caae17..1750e4818e 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_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2824,5 +2825,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 d018943dbe..5043550ec1 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
> @@ -2531,6 +2532,7 @@ GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
> index 36c1e1477d..cc9fea5f46 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
> @@ -70,7 +70,6 @@ GLIBC_2.18 ns_name_ntol F
>  GLIBC_2.18 ns_name_pack F
>  GLIBC_2.18 ns_name_pton F
>  GLIBC_2.18 ns_name_rollback F
> -GLIBC_2.18 ns_name_uncompress F
>  GLIBC_2.18 ns_parse_ttl F
>  GLIBC_2.18 ns_parserr F
>  GLIBC_2.18 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 28552f1b80..18de19bead 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
> @@ -2528,6 +2529,7 @@ GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
> index 36c1e1477d..cc9fea5f46 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
> @@ -70,7 +70,6 @@ GLIBC_2.18 ns_name_ntol F
>  GLIBC_2.18 ns_name_pack F
>  GLIBC_2.18 ns_name_pton F
>  GLIBC_2.18 ns_name_rollback F
> -GLIBC_2.18 ns_name_uncompress F
>  GLIBC_2.18 ns_parse_ttl F
>  GLIBC_2.18 ns_parserr F
>  GLIBC_2.18 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 08da0a9b24..464d196ae9 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_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2785,5 +2786,6 @@ GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_skip F
> +GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/mips/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 d0f957a7b1..87da9f5626 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_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2783,5 +2784,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 d19ba7d186..f3f0a6dc37 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_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2791,5 +2792,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 167b1ec1c1..dbbd9d782d 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_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2703,5 +2704,6 @@ GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_skip F
> +GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/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 5d7723a22e..ea1d641c79 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
> @@ -2570,6 +2571,7 @@ GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
> index 6a3ee63c15..111b8ac423 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
> @@ -70,7 +70,6 @@ GLIBC_2.21 ns_name_ntol F
>  GLIBC_2.21 ns_name_pack F
>  GLIBC_2.21 ns_name_pton F
>  GLIBC_2.21 ns_name_rollback F
> -GLIBC_2.21 ns_name_uncompress F
>  GLIBC_2.21 ns_parse_ttl F
>  GLIBC_2.21 ns_parserr F
>  GLIBC_2.21 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 31e50429c3..45b46c3ee1 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_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -3022,5 +3023,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 b03dde6df7..a252c6f7b2 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_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -3067,5 +3068,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 64ed6e1fdc..8e682bdb78 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_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2791,5 +2792,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 013aaad687..9e6f3d71d7 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
> @@ -2651,6 +2652,7 @@ GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
> index 0c18a1077e..f72b307b99 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
> @@ -70,7 +70,6 @@ GLIBC_2.17 ns_name_ntol F
>  GLIBC_2.17 ns_name_pack F
>  GLIBC_2.17 ns_name_pton F
>  GLIBC_2.17 ns_name_rollback F
> -GLIBC_2.17 ns_name_uncompress F
>  GLIBC_2.17 ns_parse_ttl F
>  GLIBC_2.17 ns_parserr F
>  GLIBC_2.17 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index ea0919fd8f..c95e4eeb6e 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
> @@ -2216,6 +2217,7 @@ GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/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 aeb3a0eb69..ea497cf7e0 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
> @@ -2416,6 +2417,7 @@ GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
> index 1b0a9f7284..3410dc454d 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
> @@ -63,7 +63,6 @@ GLIBC_2.27 ns_name_ntol F
>  GLIBC_2.27 ns_name_pack F
>  GLIBC_2.27 ns_name_pton F
>  GLIBC_2.27 ns_name_rollback F
> -GLIBC_2.27 ns_name_uncompress F
>  GLIBC_2.27 ns_parse_ttl F
>  GLIBC_2.27 ns_parserr F
>  GLIBC_2.27 ns_put16 F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 82edac8485..953db1c42c 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_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -3030,6 +3031,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 0814fe77b4..b41a6a9e33 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_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2826,5 +2827,6 @@ GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_skip F
> +GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
>  GLIBC_2.9 pipe2 F
> diff --git a/sysdeps/unix/sysv/linux/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 9895a607f3..3e0cf9b271 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_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -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/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 bdce7c7e5e..2cba575172 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_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2701,5 +2702,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 ed30903823..a78e41777e 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_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -3039,5 +3040,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 b19390184b..31f8359dac 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_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2679,5 +2680,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 b9a575986d..751b1e34be 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_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> @@ -2635,5 +2636,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 86a0ee5323..6f488a7638 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
> @@ -2470,6 +2471,7 @@ GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_skip F
> +GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
>  GLIBC_2.34 pthread_attr_getaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
> index db2942840e..b441069e4b 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
> @@ -70,7 +70,6 @@ GLIBC_2.16 ns_name_ntol F
>  GLIBC_2.16 ns_name_pack F
>  GLIBC_2.16 ns_name_pton F
>  GLIBC_2.16 ns_name_rollback F
> -GLIBC_2.16 ns_name_uncompress F
>  GLIBC_2.16 ns_parse_ttl F
>  GLIBC_2.16 ns_parserr F
>  GLIBC_2.16 ns_put16 F
> 

OK.

-- 
Cheers,
Carlos.


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

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

On 7/8/21 11:01 AM, Florian Weimer via Libc-alpha wrote:
> And reformat to GNU style, and eliminate the digits variable.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
 
> The symbol was moved using scripts/move-symbol-to-libc.py.
> ---
>  include/arpa/nameser.h                        |   3 +-
>  resolv/Makefile                               |   1 +
>  resolv/Versions                               |   3 +
>  resolv/ns_name.c                              | 125 --------------
>  resolv/ns_name_pton.c                         | 157 ++++++++++++++++++
>  sysdeps/mach/hurd/i386/libc.abilist           |   2 +
>  sysdeps/mach/hurd/i386/libresolv.abilist      |   1 -
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  |   2 +
>  .../unix/sysv/linux/aarch64/libresolv.abilist |   1 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist    |   2 +
>  .../unix/sysv/linux/alpha/libresolv.abilist   |   1 -
>  sysdeps/unix/sysv/linux/arc/libc.abilist      |   2 +
>  sysdeps/unix/sysv/linux/arc/libresolv.abilist |   1 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist   |   2 +
>  .../unix/sysv/linux/arm/be/libresolv.abilist  |   1 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   |   2 +
>  .../unix/sysv/linux/arm/le/libresolv.abilist  |   1 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist     |   2 +
>  .../unix/sysv/linux/csky/libresolv.abilist    |   1 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist     |   2 +
>  .../unix/sysv/linux/hppa/libresolv.abilist    |   1 -
>  sysdeps/unix/sysv/linux/i386/libc.abilist     |   2 +
>  .../unix/sysv/linux/i386/libresolv.abilist    |   1 -
>  sysdeps/unix/sysv/linux/ia64/libc.abilist     |   2 +
>  .../unix/sysv/linux/ia64/libresolv.abilist    |   1 -
>  .../sysv/linux/m68k/coldfire/libc.abilist     |   2 +
>  .../linux/m68k/coldfire/libresolv.abilist     |   1 -
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  |   2 +
>  .../sysv/linux/m68k/m680x0/libresolv.abilist  |   1 -
>  .../sysv/linux/microblaze/be/libc.abilist     |   2 +
>  .../linux/microblaze/be/libresolv.abilist     |   1 -
>  .../sysv/linux/microblaze/le/libc.abilist     |   2 +
>  .../linux/microblaze/le/libresolv.abilist     |   1 -
>  .../sysv/linux/mips/mips32/fpu/libc.abilist   |   2 +
>  .../sysv/linux/mips/mips32/libresolv.abilist  |   1 -
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist |   2 +
>  .../sysv/linux/mips/mips64/n32/libc.abilist   |   2 +
>  .../linux/mips/mips64/n32/libresolv.abilist   |   1 -
>  .../sysv/linux/mips/mips64/n64/libc.abilist   |   2 +
>  .../linux/mips/mips64/n64/libresolv.abilist   |   1 -
>  sysdeps/unix/sysv/linux/nios2/libc.abilist    |   2 +
>  .../unix/sysv/linux/nios2/libresolv.abilist   |   1 -
>  .../linux/powerpc/powerpc32/fpu/libc.abilist  |   2 +
>  .../linux/powerpc/powerpc32/libresolv.abilist |   1 -
>  .../powerpc/powerpc32/nofpu/libc.abilist      |   2 +
>  .../linux/powerpc/powerpc64/be/libc.abilist   |   2 +
>  .../powerpc/powerpc64/be/libresolv.abilist    |   1 -
>  .../linux/powerpc/powerpc64/le/libc.abilist   |   2 +
>  .../powerpc/powerpc64/le/libresolv.abilist    |   1 -
>  .../unix/sysv/linux/riscv/rv32/libc.abilist   |   2 +
>  .../sysv/linux/riscv/rv32/libresolv.abilist   |   1 -
>  .../unix/sysv/linux/riscv/rv64/libc.abilist   |   2 +
>  .../sysv/linux/riscv/rv64/libresolv.abilist   |   1 -
>  .../unix/sysv/linux/s390/s390-32/libc.abilist |   2 +
>  .../sysv/linux/s390/s390-32/libresolv.abilist |   1 -
>  .../unix/sysv/linux/s390/s390-64/libc.abilist |   2 +
>  .../sysv/linux/s390/s390-64/libresolv.abilist |   1 -
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    |   2 +
>  .../unix/sysv/linux/sh/be/libresolv.abilist   |   1 -
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    |   2 +
>  .../unix/sysv/linux/sh/le/libresolv.abilist   |   1 -
>  .../sysv/linux/sparc/sparc32/libc.abilist     |   2 +
>  .../linux/sparc/sparc32/libresolv.abilist     |   1 -
>  .../sysv/linux/sparc/sparc64/libc.abilist     |   2 +
>  .../linux/sparc/sparc64/libresolv.abilist     |   1 -
>  .../unix/sysv/linux/x86_64/64/libc.abilist    |   2 +
>  .../sysv/linux/x86_64/64/libresolv.abilist    |   1 -
>  .../unix/sysv/linux/x86_64/x32/libc.abilist   |   2 +
>  .../sysv/linux/x86_64/x32/libresolv.abilist   |   1 -
>  69 files changed, 229 insertions(+), 157 deletions(-)
>  create mode 100644 resolv/ns_name_pton.c
> 
> diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
> index dcceff823d..c27008b5ff 100644
> --- a/include/arpa/nameser.h
> +++ b/include/arpa/nameser.h
> @@ -65,7 +65,6 @@ libresolv_hidden_proto (ns_put32)
>  libresolv_hidden_proto (ns_initparse)
>  libresolv_hidden_proto (ns_skiprr)
>  libresolv_hidden_proto (ns_parserr)
> -libresolv_hidden_proto (ns_name_pton)

OK.

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

OK.

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

OK.

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

OK.

>      ns_name_skip;
>      ns_name_uncompress;
>      ns_name_unpack;
> @@ -38,6 +39,7 @@ libc {
>      getaddrinfo_a;
>  %endif
>      ns_name_ntop;
> +    ns_name_pton;

OK.

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

OK.

>      __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";
> -

OK.

>  /* 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)
> -

OK.

>  /*%
>   *	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.

OK.

> + * 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.  */

OK.

> +int
> +___ns_name_pton (const char *src, unsigned char *dst, size_t dstsiz)
> +{
> +  unsigned char *label, *bp, *eom;
> +  int c, n, escaped;

OK. Dropped char *cp.

> +
> +  escaped = 0;
> +  bp = dst;
> +  eom = dst + dstsiz;
> +  label = bp++;

OK.

> +
> +  while ((c = *src++) != 0)
> +    {
> +      if (escaped)

OK.

> +        {

OK. Removed digits, and just doing direct digit comparison without strchr.

> +          if ('0' <= c && c <= '9')
> +            {
> +              n = (c - '0') * 100;
> +              if ((c = *src++) == 0 || c < '0' || c > '9')
> +                {
> +                  __set_errno (EMSGSIZE);
> +                  return -1;
> +                }

OK. Convert strchr to check for c in range.

> +              n += (c - '0') * 10;
> +              if ((c = *src++) == 0 || c < '0' || c > '9')
> +                {
> +                  __set_errno (EMSGSIZE);
> +                  return -1;
> +                }

OK. Convert strchr to check for c in range.

> +              n += c - '0';
> +              if (n > 255)
> +                {
> +                  __set_errno (EMSGSIZE);
> +                  return -1;
> +                }
> +              c = n;
> +            }
> +          escaped = 0;

OK.

> +        }
> +      else if (c == '\\')
> +        {
> +          escaped = 1;
> +          continue;


OK.

> +        }
> +      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;

OK.

> +          /* 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;

OK.

> +            }
> +          if (c == 0 || *src == '.')
> +            {
> +              __set_errno (EMSGSIZE);
> +              return -1;
> +            }
> +          label = bp++;
> +          continue;

OK.

> +        }
> +      if (bp >= eom)
> +        {
> +          __set_errno (EMSGSIZE);
> +          return -1;
> +        }
> +      *bp++ = (unsigned char) c;

OK.

> +    }
> +  if (escaped)                  /* Trailing backslash.  */
> +    {
> +      __set_errno (EMSGSIZE);
> +      return -1;
> +    }

OK.

> +  c = (bp - label - 1);
> +  if ((c & NS_CMPRSFLGS) != 0)  /* Label too big.  */
> +    {
> +      __set_errno (EMSGSIZE);
> +      return -1;
> +    }

OK.

> +  if (label >= eom)
> +    {
> +      __set_errno (EMSGSIZE);
> +      return -1;
> +    }

OK.

> +  *label = c;
> +  if (c != 0)
> +    {
> +      if (bp >= eom)
> +        {
> +          __set_errno (EMSGSIZE);
> +          return -1;
> +        }
> +      *bp++ = 0;

OK.

> +    }
> +  if ((bp - dst) > MAXCDNAME)   /* src too big.  */
> +    {
> +      __set_errno (EMSGSIZE);
> +      return -1;
> +    }

OK.

> +  return 0;

OK.

> +}
> +versioned_symbol (libc, ___ns_name_pton, ns_name_pton, GLIBC_2_34);
> +versioned_symbol (libc, ___ns_name_pton, __ns_name_pton, GLIBC_PRIVATE);
> +libc_hidden_ver (___ns_name_pton, __ns_name_pton)
> +
> +#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_9, GLIBC_2_34)
> +compat_symbol (libresolv, ___ns_name_pton, ns_name_pton, GLIBC_2_9);
> +#endif
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index 970b28eac6..83b4e2a983 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -2241,6 +2241,7 @@ GLIBC_2.34 login_tty F
>  GLIBC_2.34 logout F
>  GLIBC_2.34 logwtmp F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2365,6 +2366,7 @@ GLIBC_2.8 __vdprintf_chk F
>  GLIBC_2.8 qsort_r F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
> index ca2c547a81..1e75aaa6d7 100644
> --- a/sysdeps/mach/hurd/i386/libresolv.abilist
> +++ b/sysdeps/mach/hurd/i386/libresolv.abilist
> @@ -73,7 +73,6 @@ GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
> -GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index fa4652a7df..1b6e962fe3 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
> @@ -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_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 36a577adc7..ef88aa8e36 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2550,6 +2550,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
> @@ -2987,6 +2988,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 afc1278d6c..94f9908585 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
> @@ -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_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 a7d135a4c2..7157111655 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -344,6 +344,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/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 7bced4102e..8f4e772481 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -341,6 +341,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
> @@ -2680,6 +2681,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 40aca91bb5..f4368cc20b 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
> @@ -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_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 cb19800bde..d5a661c221 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2429,6 +2429,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
> @@ -2697,6 +2698,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 c2d526dd2c..49c26a44a6 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2613,6 +2613,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
> @@ -2881,6 +2882,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 1276461181..bee668d6f7 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2388,6 +2388,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
> @@ -2656,6 +2657,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 59147109e2..45fca7a557 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -345,6 +345,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
> @@ -2662,6 +2663,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 1750e4818e..a1b316aa1c 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2556,6 +2556,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
> @@ -2824,6 +2825,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 5043550ec1..7a991b941a 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
> @@ -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_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 18de19bead..a3fae78187 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
> @@ -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_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 464d196ae9..84f9ab0af6 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2521,6 +2521,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2785,6 +2786,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/mips/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 87da9f5626..343c2925c3 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2519,6 +2519,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
> @@ -2783,6 +2784,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 f3f0a6dc37..cd01ef31f0 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2527,6 +2527,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
> @@ -2791,6 +2792,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 dbbd9d782d..1722ba6722 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2439,6 +2439,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2703,6 +2704,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/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 ea1d641c79..aaf4b25fe0 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
> @@ -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_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 45b46c3ee1..937d59759a 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/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
> @@ -3022,6 +3023,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 a252c6f7b2..186c59d401 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2616,6 +2616,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
> @@ -3067,6 +3068,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 8e682bdb78..c9ffbc9455 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -2352,6 +2352,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
> @@ -2791,6 +2792,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 9e6f3d71d7..0c7183ba10 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
> @@ -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_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 c95e4eeb6e..0f345ea431 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
> @@ -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/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 ea497cf7e0..613ad3332d 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
> @@ -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_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 953db1c42c..a4df94a8ed 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2581,6 +2581,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
> @@ -3030,6 +3031,7 @@ GLIBC_2.9 getutxline F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 login F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_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 b41a6a9e33..2002437627 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2389,6 +2389,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2826,6 +2827,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/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 3e0cf9b271..934a8af021 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2436,6 +2436,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/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 2cba575172..82f0b5e2e5 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2433,6 +2433,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
> @@ -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_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 a78e41777e..78b5667c51 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2576,6 +2576,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
> @@ -3039,6 +3040,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 31f8359dac..77076f51ec 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2411,6 +2411,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
> @@ -2679,6 +2680,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 751b1e34be..c060a7b027 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2367,6 +2367,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
> @@ -2635,6 +2636,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 6f488a7638..2baaf7af06 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
> @@ -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_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
> 

OK.

-- 
Cheers,
Carlos.


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

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

On 7/8/21 11:01 AM, Florian Weimer via Libc-alpha wrote:
> And reformat to GNU style, and eliminate the labellen function.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
 
> The symbol was moved using scripts/move-symbol-to-libc.py.
> ---
>  include/arpa/nameser.h                        |   3 +-
>  resolv/Makefile                               |   1 +
>  resolv/Versions                               |   4 +-
>  resolv/ns_name.c                              | 194 -----------------
>  resolv/ns_name_pack.c                         | 202 ++++++++++++++++++
>  sysdeps/mach/hurd/i386/libc.abilist           |   2 +
>  sysdeps/mach/hurd/i386/libresolv.abilist      |   1 -
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  |   2 +
>  .../unix/sysv/linux/aarch64/libresolv.abilist |   1 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist    |   2 +
>  .../unix/sysv/linux/alpha/libresolv.abilist   |   1 -
>  sysdeps/unix/sysv/linux/arc/libc.abilist      |   2 +
>  sysdeps/unix/sysv/linux/arc/libresolv.abilist |   1 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist   |   2 +
>  .../unix/sysv/linux/arm/be/libresolv.abilist  |   1 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   |   2 +
>  .../unix/sysv/linux/arm/le/libresolv.abilist  |   1 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist     |   2 +
>  .../unix/sysv/linux/csky/libresolv.abilist    |   1 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist     |   2 +
>  .../unix/sysv/linux/hppa/libresolv.abilist    |   1 -
>  sysdeps/unix/sysv/linux/i386/libc.abilist     |   2 +
>  .../unix/sysv/linux/i386/libresolv.abilist    |   1 -
>  sysdeps/unix/sysv/linux/ia64/libc.abilist     |   2 +
>  .../unix/sysv/linux/ia64/libresolv.abilist    |   1 -
>  .../sysv/linux/m68k/coldfire/libc.abilist     |   2 +
>  .../linux/m68k/coldfire/libresolv.abilist     |   1 -
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  |   2 +
>  .../sysv/linux/m68k/m680x0/libresolv.abilist  |   1 -
>  .../sysv/linux/microblaze/be/libc.abilist     |   2 +
>  .../linux/microblaze/be/libresolv.abilist     |   1 -
>  .../sysv/linux/microblaze/le/libc.abilist     |   2 +
>  .../linux/microblaze/le/libresolv.abilist     |   1 -
>  .../sysv/linux/mips/mips32/fpu/libc.abilist   |   2 +
>  .../sysv/linux/mips/mips32/libresolv.abilist  |   1 -
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist |   2 +
>  .../sysv/linux/mips/mips64/n32/libc.abilist   |   2 +
>  .../linux/mips/mips64/n32/libresolv.abilist   |   1 -
>  .../sysv/linux/mips/mips64/n64/libc.abilist   |   2 +
>  .../linux/mips/mips64/n64/libresolv.abilist   |   1 -
>  sysdeps/unix/sysv/linux/nios2/libc.abilist    |   2 +
>  .../unix/sysv/linux/nios2/libresolv.abilist   |   1 -
>  .../linux/powerpc/powerpc32/fpu/libc.abilist  |   2 +
>  .../linux/powerpc/powerpc32/libresolv.abilist |   1 -
>  .../powerpc/powerpc32/nofpu/libc.abilist      |   2 +
>  .../linux/powerpc/powerpc64/be/libc.abilist   |   2 +
>  .../powerpc/powerpc64/be/libresolv.abilist    |   1 -
>  .../linux/powerpc/powerpc64/le/libc.abilist   |   2 +
>  .../powerpc/powerpc64/le/libresolv.abilist    |   1 -
>  .../unix/sysv/linux/riscv/rv32/libc.abilist   |   2 +
>  .../sysv/linux/riscv/rv32/libresolv.abilist   |   1 -
>  .../unix/sysv/linux/riscv/rv64/libc.abilist   |   2 +
>  .../sysv/linux/riscv/rv64/libresolv.abilist   |   1 -
>  .../unix/sysv/linux/s390/s390-32/libc.abilist |   2 +
>  .../sysv/linux/s390/s390-32/libresolv.abilist |   1 -
>  .../unix/sysv/linux/s390/s390-64/libc.abilist |   2 +
>  .../sysv/linux/s390/s390-64/libresolv.abilist |   1 -
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    |   2 +
>  .../unix/sysv/linux/sh/be/libresolv.abilist   |   1 -
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    |   2 +
>  .../unix/sysv/linux/sh/le/libresolv.abilist   |   1 -
>  .../sysv/linux/sparc/sparc32/libc.abilist     |   2 +
>  .../linux/sparc/sparc32/libresolv.abilist     |   1 -
>  .../sysv/linux/sparc/sparc64/libc.abilist     |   2 +
>  .../linux/sparc/sparc64/libresolv.abilist     |   1 -
>  .../unix/sysv/linux/x86_64/64/libc.abilist    |   2 +
>  .../sysv/linux/x86_64/64/libresolv.abilist    |   1 -
>  .../unix/sysv/linux/x86_64/x32/libc.abilist   |   2 +
>  .../sysv/linux/x86_64/x32/libresolv.abilist   |   1 -
>  69 files changed, 274 insertions(+), 227 deletions(-)
>  create mode 100644 resolv/ns_name_pack.c
> 
> diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
> index c27008b5ff..02d7b0b553 100644
> --- a/include/arpa/nameser.h
> +++ b/include/arpa/nameser.h
> @@ -65,7 +65,6 @@ libresolv_hidden_proto (ns_put32)
>  libresolv_hidden_proto (ns_initparse)
>  libresolv_hidden_proto (ns_skiprr)
>  libresolv_hidden_proto (ns_parserr)
> -libresolv_hidden_proto (ns_name_pack)

OK.

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

OK.

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

OK.

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

OK.

>      ns_name_pton;
>      ns_name_skip;
>      ns_name_uncompress;
> @@ -39,6 +40,7 @@ libc {
>      getaddrinfo_a;
>  %endif
>      ns_name_ntop;
> +    ns_name_pack;

OK.

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

OK.

>      __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;

OK.

>      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 *);

OK.

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

OK.

>  /*%
>   *	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);
> -}

OK. mklower removed.

> -
> -/*%
> - *	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);
> -}
> -

OK. dn_find removed.

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

OK.

> + * 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';

OK. Match.

> +  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;

OK. No dropped variables.

> +
> +  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;

OK.

> +        while ((n = *cp++) != 0)
> +          {
> +            /* Check for indirection.  */
> +            switch (n & NS_CMPRSFLGS)
> +              {
> +              case 0:                 /* Normal case, n == len.  */

OK. Drop labellen use.

> +                if (n != *dn++)
> +                  goto next;

OK.

> +
> +                for (; n > 0; n--)

OK. In the old code n could have been -1 if it was >= 64, and we would
have skipped this, and it would have been wrong IMO. So the change to
drop labellen seems correct to me.

> +                  if (mklower (*dn++) != mklower (*cp++))
> +                    goto next;

OK.

> +                /* Is next root for both?  */
> +                if (*dn == '\0' && *cp == '\0')
> +                  return sp - msg;
> +                if (*dn)
> +                  continue;
> +                goto next;

OK. Match.

> +              case NS_CMPRSFLGS: /* Indirection.  */
> +                cp = msg + (((n & 0x3f) << 8) | *cp);
> +                break;

OK.

> +
> +              default:          /* Illegal type.  */
> +                __set_errno (EMSGSIZE);
> +                return -1;

OK.

> +              }
> +          }
> +      next: ;
> +        sp += *sp + 1;

OK.

> +      }
> +    }
> +  __set_errno (ENOENT);
> +  return -1;

OK.

> +}
> +
> +/* 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.  */

OK.

> +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;

OK. No dropped variables.

> +
> +  srcp = src;
> +  dstp = dst;
> +  eob = dstp + dstsiz;
> +  lpp = cpp = NULL;

OK.

> +  if (dnptrs != NULL)
> +    {
> +      if ((msg = *dnptrs++) != NULL)
> +        {
> +          for (cpp = dnptrs; *cpp != NULL; cpp++)
> +            ;
> +          lpp = cpp;            /* End of list to search.  */

OK.

> +        }
> +    }
> +  else
> +    msg = NULL;

OK.

> +
> +  /* Make sure the domain we are about to add is legal.  */
> +  l = 0;
> +  do
> +    {
> +      n = *srcp;

OK. Drop the check for NS_CMPRSFLGS since it should not happen.

> +      if (n >= 64)

OK. Fold labellen.

> +        {
> +          __set_errno (EMSGSIZE);
> +          return -1;
> +        }
> +      l += n + 1;
> +      if (l > MAXCDNAME)
> +        {
> +          __set_errno (EMSGSIZE);
> +          return -1;
> +        }
> +      srcp += n + 1;
> +    }
> +  while (n != 0);

OK.

> +
> +  /* 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;

OK.

> +              *dstp++ = (l >> 8) | NS_CMPRSFLGS;
> +              *dstp++ = l % 256;
> +              return dstp - dst;

OK.

> +            }
> +          /* Not found, save it.  */
> +          if (lastdnptr != NULL && cpp < lastdnptr - 1
> +              && (dstp - msg) < 0x4000 && first)
> +            {
> +              *cpp++ = dstp;
> +              *cpp = NULL;
> +              first = 0;
> +            }

OK.

> +        }
> +      /* Copy label to buffer.  */
> +      if (n >= 64)
> +        /* Should not happen.  */
> +        goto cleanup;

OK.

> +      if (n + 1 > eob - dstp)
> +        goto cleanup;

OK.

OK. Drop NS_CMPRSFLGS check since it should not happen.

> +      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;

OK

> +    }
> +  return dstp - dst;
> +}
> +versioned_symbol (libc, ___ns_name_pack, ns_name_pack, GLIBC_2_34);
> +versioned_symbol (libc, ___ns_name_pack, __ns_name_pack, GLIBC_PRIVATE);
> +libc_hidden_ver (___ns_name_pack, __ns_name_pack)
> +
> +#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_9, GLIBC_2_34)
> +compat_symbol (libresolv, ___ns_name_pack, ns_name_pack, GLIBC_2_9);
> +#endif
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index 83b4e2a983..b73d7d11a2 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -2241,6 +2241,7 @@ GLIBC_2.34 login_tty F
>  GLIBC_2.34 logout F
>  GLIBC_2.34 logwtmp F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pack F
>  GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
> @@ -2366,6 +2367,7 @@ GLIBC_2.8 __vdprintf_chk F
>  GLIBC_2.8 qsort_r F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
> index 1e75aaa6d7..533283afaa 100644
> --- a/sysdeps/mach/hurd/i386/libresolv.abilist
> +++ b/sysdeps/mach/hurd/i386/libresolv.abilist
> @@ -72,7 +72,6 @@ GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
> -GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 1b6e962fe3..7ae7506b0b 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
> @@ -2456,6 +2457,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 ef88aa8e36..47ab3bbcfb 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2550,6 +2550,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
> @@ -2988,6 +2989,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 94f9908585..5b387418ab 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
> @@ -2215,6 +2216,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_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 7157111655..2419fcbbb7 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -344,6 +344,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/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 8f4e772481..0010d1e86c 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -341,6 +341,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
> @@ -2681,6 +2682,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_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 f4368cc20b..27d8e165c1 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
> @@ -2481,6 +2482,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 d5a661c221..8c8bea67aa 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2429,6 +2429,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
> @@ -2698,6 +2699,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 49c26a44a6..3014ad7143 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2613,6 +2613,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
> @@ -2882,6 +2883,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 bee668d6f7..8d00eaf6b1 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2388,6 +2388,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
> @@ -2657,6 +2658,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 45fca7a557..19534dd36c 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -345,6 +345,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
> @@ -2663,6 +2664,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 a1b316aa1c..8c03c6797a 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2556,6 +2556,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
> @@ -2825,6 +2826,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 7a991b941a..28a03e9915 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
> @@ -2532,6 +2533,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 a3fae78187..5747e6f330 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
> @@ -2529,6 +2530,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 84f9ab0af6..bbfe63587c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2521,6 +2521,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pack F
>  GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
> @@ -2786,6 +2787,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> diff --git a/sysdeps/unix/sysv/linux/mips/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 343c2925c3..62d1219681 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2519,6 +2519,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
> @@ -2784,6 +2785,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 cd01ef31f0..a5da7c2236 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2527,6 +2527,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
> @@ -2792,6 +2793,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 1722ba6722..5957ca61e1 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2439,6 +2439,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pack F
>  GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
> @@ -2704,6 +2705,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> diff --git a/sysdeps/unix/sysv/linux/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 aaf4b25fe0..7b30702bc8 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
> @@ -2571,6 +2572,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 937d59759a..c6a6c3902b 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/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
> @@ -3023,6 +3024,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 186c59d401..c54fe04c21 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2616,6 +2616,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
> @@ -3068,6 +3069,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 c9ffbc9455..de407254a8 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -2352,6 +2352,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
> @@ -2792,6 +2793,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 0c7183ba10..73d7784b6f 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
> @@ -2652,6 +2653,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 0f345ea431..bd76b7f48c 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
> @@ -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/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 613ad3332d..ad0c74f1e8 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
> @@ -2417,6 +2418,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 a4df94a8ed..f8d5c15c8f 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2581,6 +2581,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
> @@ -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_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 2002437627..f8f387c8bc 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2389,6 +2389,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pack F
>  GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
> @@ -2827,6 +2828,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
> diff --git a/sysdeps/unix/sysv/linux/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 934a8af021..4ba1fca626 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2436,6 +2436,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/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 82f0b5e2e5..8b6f0df2a4 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2433,6 +2433,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
> @@ -2702,6 +2703,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 78b5667c51..40e5363a64 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2576,6 +2576,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
> @@ -3040,6 +3041,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 77076f51ec..794dfecaac 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2411,6 +2411,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
> @@ -2680,6 +2681,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 c060a7b027..b886a7d9af 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2367,6 +2367,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
> @@ -2636,6 +2637,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 2baaf7af06..d301782e21 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
> @@ -2471,6 +2472,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
> 

OK.

-- 
Cheers,
Carlos.


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

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

On 7/8/21 11:01 AM, Florian Weimer via Libc-alpha wrote:
> And reformat to GNU style.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
 
> The symbol was moved using scripts/move-symbol-to-libc.py.
> ---
>  include/arpa/nameser.h                        |  3 +-
>  resolv/Makefile                               |  1 +
>  resolv/Versions                               |  4 +-
>  resolv/ns_name.c                              | 27 ----------
>  resolv/ns_name_compress.c                     | 50 +++++++++++++++++++
>  sysdeps/mach/hurd/i386/libc.abilist           |  2 +
>  sysdeps/mach/hurd/i386/libresolv.abilist      |  1 -
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  2 +
>  .../unix/sysv/linux/aarch64/libresolv.abilist |  1 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist    |  2 +
>  .../unix/sysv/linux/alpha/libresolv.abilist   |  1 -
>  sysdeps/unix/sysv/linux/arc/libc.abilist      |  2 +
>  sysdeps/unix/sysv/linux/arc/libresolv.abilist |  1 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  2 +
>  .../unix/sysv/linux/arm/be/libresolv.abilist  |  1 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  2 +
>  .../unix/sysv/linux/arm/le/libresolv.abilist  |  1 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist     |  2 +
>  .../unix/sysv/linux/csky/libresolv.abilist    |  1 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist     |  2 +
>  .../unix/sysv/linux/hppa/libresolv.abilist    |  1 -
>  sysdeps/unix/sysv/linux/i386/libc.abilist     |  2 +
>  .../unix/sysv/linux/i386/libresolv.abilist    |  1 -
>  sysdeps/unix/sysv/linux/ia64/libc.abilist     |  2 +
>  .../unix/sysv/linux/ia64/libresolv.abilist    |  1 -
>  .../sysv/linux/m68k/coldfire/libc.abilist     |  2 +
>  .../linux/m68k/coldfire/libresolv.abilist     |  1 -
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  2 +
>  .../sysv/linux/m68k/m680x0/libresolv.abilist  |  1 -
>  .../sysv/linux/microblaze/be/libc.abilist     |  2 +
>  .../linux/microblaze/be/libresolv.abilist     |  1 -
>  .../sysv/linux/microblaze/le/libc.abilist     |  2 +
>  .../linux/microblaze/le/libresolv.abilist     |  1 -
>  .../sysv/linux/mips/mips32/fpu/libc.abilist   |  2 +
>  .../sysv/linux/mips/mips32/libresolv.abilist  |  1 -
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist |  2 +
>  .../sysv/linux/mips/mips64/n32/libc.abilist   |  2 +
>  .../linux/mips/mips64/n32/libresolv.abilist   |  1 -
>  .../sysv/linux/mips/mips64/n64/libc.abilist   |  2 +
>  .../linux/mips/mips64/n64/libresolv.abilist   |  1 -
>  sysdeps/unix/sysv/linux/nios2/libc.abilist    |  2 +
>  .../unix/sysv/linux/nios2/libresolv.abilist   |  1 -
>  .../linux/powerpc/powerpc32/fpu/libc.abilist  |  2 +
>  .../linux/powerpc/powerpc32/libresolv.abilist |  1 -
>  .../powerpc/powerpc32/nofpu/libc.abilist      |  2 +
>  .../linux/powerpc/powerpc64/be/libc.abilist   |  2 +
>  .../powerpc/powerpc64/be/libresolv.abilist    |  1 -
>  .../linux/powerpc/powerpc64/le/libc.abilist   |  2 +
>  .../powerpc/powerpc64/le/libresolv.abilist    |  1 -
>  .../unix/sysv/linux/riscv/rv32/libc.abilist   |  2 +
>  .../sysv/linux/riscv/rv32/libresolv.abilist   |  1 -
>  .../unix/sysv/linux/riscv/rv64/libc.abilist   |  2 +
>  .../sysv/linux/riscv/rv64/libresolv.abilist   |  1 -
>  .../unix/sysv/linux/s390/s390-32/libc.abilist |  2 +
>  .../sysv/linux/s390/s390-32/libresolv.abilist |  1 -
>  .../unix/sysv/linux/s390/s390-64/libc.abilist |  2 +
>  .../sysv/linux/s390/s390-64/libresolv.abilist |  1 -
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  2 +
>  .../unix/sysv/linux/sh/be/libresolv.abilist   |  1 -
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  2 +
>  .../unix/sysv/linux/sh/le/libresolv.abilist   |  1 -
>  .../sysv/linux/sparc/sparc32/libc.abilist     |  2 +
>  .../linux/sparc/sparc32/libresolv.abilist     |  1 -
>  .../sysv/linux/sparc/sparc64/libc.abilist     |  2 +
>  .../linux/sparc/sparc64/libresolv.abilist     |  1 -
>  .../unix/sysv/linux/x86_64/64/libc.abilist    |  2 +
>  .../sysv/linux/x86_64/64/libresolv.abilist    |  1 -
>  .../unix/sysv/linux/x86_64/x32/libc.abilist   |  2 +
>  .../sysv/linux/x86_64/x32/libresolv.abilist   |  1 -
>  69 files changed, 122 insertions(+), 60 deletions(-)
>  create mode 100644 resolv/ns_name_compress.c
> 
> diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
> index 02d7b0b553..eff25178c8 100644
> --- a/include/arpa/nameser.h
> +++ b/include/arpa/nameser.h
> @@ -65,7 +65,6 @@ libresolv_hidden_proto (ns_put32)
>  libresolv_hidden_proto (ns_initparse)
>  libresolv_hidden_proto (ns_skiprr)
>  libresolv_hidden_proto (ns_parserr)
> -libresolv_hidden_proto (ns_name_compress)

OK.

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

OK.

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

OK.

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

OK.

>      ns_name_ntop;
>      ns_name_pack;
>      ns_name_pton;
> @@ -39,6 +40,7 @@ libc {
>      gai_suspend;
>      getaddrinfo_a;
>  %endif
> +    ns_name_compress;

OK.

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

OK.

>      __ns_name_ntop;
>      __ns_name_pack;
>      __ns_name_pton;
> @@ -155,7 +158,6 @@ libresolv {
>      ns_initparse;
>      ns_makecanon;
>      ns_msg_getflag;
> -    ns_name_compress;

OK.

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

OK. Remove.

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

OK.

> + * 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;

OK.

> +  return __ns_name_pack (tmp, dst, dstsiz, dnptrs, lastdnptr);

OK.

> +}
> +versioned_symbol (libc, ___ns_name_compress, ns_name_compress, GLIBC_2_34);
> +versioned_symbol (libc, ___ns_name_compress, __ns_name_compress,
> +                  GLIBC_PRIVATE);
> +libc_hidden_ver (___ns_name_compress, __ns_name_compress)
> +
> +#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_9, GLIBC_2_34)
> +compat_symbol (libresolv, ___ns_name_compress, ns_name_compress, GLIBC_2_9);
> +#endif
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index b73d7d11a2..170c6aeaee 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -2240,6 +2240,7 @@ GLIBC_2.34 login F
>  GLIBC_2.34 login_tty F
>  GLIBC_2.34 logout F
>  GLIBC_2.34 logwtmp F
> +GLIBC_2.34 ns_name_compress F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_pack F
>  GLIBC_2.34 ns_name_pton F
> @@ -2366,6 +2367,7 @@ GLIBC_2.8 __vasprintf_chk F
>  GLIBC_2.8 __vdprintf_chk F
>  GLIBC_2.8 qsort_r F
>  GLIBC_2.9 dup3 F
> +GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
> diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
> index 533283afaa..6e77bc28c6 100644
> --- a/sysdeps/mach/hurd/i386/libresolv.abilist
> +++ b/sysdeps/mach/hurd/i386/libresolv.abilist
> @@ -70,7 +70,6 @@ GLIBC_2.9 ns_get32 F
>  GLIBC_2.9 ns_initparse F
>  GLIBC_2.9 ns_makecanon F
>  GLIBC_2.9 ns_msg_getflag F
> -GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 7ae7506b0b..16aa9b1803 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
> @@ -2456,6 +2457,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 47ab3bbcfb..cf52581228 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2549,6 +2549,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
> @@ -2988,6 +2989,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 5b387418ab..6ab308f822 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
> @@ -2215,6 +2216,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 2419fcbbb7..7f9c44838c 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -343,6 +343,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/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 0010d1e86c..fce812f258 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -340,6 +340,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
> @@ -2681,6 +2682,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 27d8e165c1..7962497b41 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
> @@ -2481,6 +2482,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 8c8bea67aa..502f7e5a22 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2428,6 +2428,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
> @@ -2698,6 +2699,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 3014ad7143..672ff49a8e 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2612,6 +2612,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
> @@ -2882,6 +2883,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 8d00eaf6b1..35bf700e2b 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2387,6 +2387,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
> @@ -2657,6 +2658,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 19534dd36c..f633a38f14 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -344,6 +344,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
> @@ -2663,6 +2664,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 8c03c6797a..370ccf6564 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2555,6 +2555,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
> @@ -2825,6 +2826,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 28a03e9915..e8378d068a 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
> @@ -2532,6 +2533,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 5747e6f330..a20719cad5 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
> @@ -2529,6 +2530,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 bbfe63587c..ee3721bdbb 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2520,6 +2520,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_compress F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_pack F
>  GLIBC_2.34 ns_name_pton F
> @@ -2786,6 +2787,7 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
> diff --git a/sysdeps/unix/sysv/linux/mips/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 62d1219681..5c3f2598d0 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2518,6 +2518,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
> @@ -2784,6 +2785,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 a5da7c2236..74ee08c389 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2526,6 +2526,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_compress F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_pack F
>  GLIBC_2.34 ns_name_pton F
> @@ -2792,6 +2793,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 5957ca61e1..78551cd239 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2438,6 +2438,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_compress F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_pack F
>  GLIBC_2.34 ns_name_pton F
> @@ -2704,6 +2705,7 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
> diff --git a/sysdeps/unix/sysv/linux/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 7b30702bc8..de7c57a5b2 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
> @@ -2571,6 +2572,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 c6a6c3902b..5b80d97e49 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/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
> @@ -3023,6 +3024,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 c54fe04c21..cffcccde96 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2615,6 +2615,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
> @@ -3068,6 +3069,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 de407254a8..05e0c32443 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -2351,6 +2351,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
> @@ -2792,6 +2793,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 73d7784b6f..0651e2e7f3 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
> @@ -2652,6 +2653,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 bd76b7f48c..da2b9d8501 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
> @@ -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/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 ad0c74f1e8..267d0d5d63 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
> @@ -2417,6 +2418,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 f8d5c15c8f..3f6f77a9d4 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2580,6 +2580,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
> @@ -3031,6 +3032,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 f8f387c8bc..7dd974d417 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2388,6 +2388,7 @@ GLIBC_2.34 mtx_lock F
>  GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
> +GLIBC_2.34 ns_name_compress F
>  GLIBC_2.34 ns_name_ntop F
>  GLIBC_2.34 ns_name_pack F
>  GLIBC_2.34 ns_name_pton F
> @@ -2827,6 +2828,7 @@ GLIBC_2.8 timerfd_settime F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
> +GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntop F
>  GLIBC_2.9 ns_name_pack F
>  GLIBC_2.9 ns_name_pton F
> diff --git a/sysdeps/unix/sysv/linux/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 4ba1fca626..2edaee2a59 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2435,6 +2435,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/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 8b6f0df2a4..98253e7329 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2432,6 +2432,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
> @@ -2702,6 +2703,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 40e5363a64..0e63ce7d44 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2575,6 +2575,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
> @@ -3040,6 +3041,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 794dfecaac..2362456d51 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2410,6 +2410,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
> @@ -2680,6 +2681,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 b886a7d9af..d97d38a27c 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2366,6 +2366,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
> @@ -2636,6 +2637,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 d301782e21..c94f90a591 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
> @@ -2471,6 +2472,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
> 

OK.

-- 
Cheers,
Carlos.


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

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

On 7/8/21 11:02 AM, Florian Weimer via Libc-alpha wrote:
> 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.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
 
> The symbols dn_expand, __dnexpand were moved using
> scripts/move-symbol-to-libc.py, followed by an adjustment to make
> dn_expand the only GLIBC_2.34 symbol.
> ---
>  include/resolv.h                              |   4 +-
>  resolv/Makefile                               |   1 +
>  resolv/Versions                               |   6 +-
>  resolv/compat-gethnamaddr.c                   |  13 +-
>  resolv/dn_expand.c                            | 112 ++++++++++++++++++
>  resolv/ns_parse.c                             |   4 +-
>  resolv/ns_print.c                             |   2 +-
>  resolv/nss_dns/dns-canon.c                    |   4 +-
>  resolv/res_comp.c                             |  27 -----
>  resolv/res_debug.c                            |   4 +-
>  resolv/res_send.c                             |   4 +-
>  resolv/resolv.h                               |   1 -
>  sysdeps/mach/hurd/i386/libc.abilist           |   2 +
>  sysdeps/mach/hurd/i386/libresolv.abilist      |   1 -
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  |   2 +
>  .../unix/sysv/linux/aarch64/libresolv.abilist |   1 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist    |   3 +
>  .../unix/sysv/linux/alpha/libresolv.abilist   |   2 -
>  sysdeps/unix/sysv/linux/arc/libc.abilist      |   2 +
>  sysdeps/unix/sysv/linux/arc/libresolv.abilist |   1 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist   |   2 +
>  .../unix/sysv/linux/arm/be/libresolv.abilist  |   1 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   |   2 +
>  .../unix/sysv/linux/arm/le/libresolv.abilist  |   1 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist     |   2 +
>  .../unix/sysv/linux/csky/libresolv.abilist    |   1 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist     |   3 +
>  .../unix/sysv/linux/hppa/libresolv.abilist    |   2 -
>  sysdeps/unix/sysv/linux/i386/libc.abilist     |   3 +
>  .../unix/sysv/linux/i386/libresolv.abilist    |   2 -
>  sysdeps/unix/sysv/linux/ia64/libc.abilist     |   3 +
>  .../unix/sysv/linux/ia64/libresolv.abilist    |   2 -
>  .../sysv/linux/m68k/coldfire/libc.abilist     |   2 +
>  .../linux/m68k/coldfire/libresolv.abilist     |   1 -
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  |   3 +
>  .../sysv/linux/m68k/m680x0/libresolv.abilist  |   2 -
>  .../sysv/linux/microblaze/be/libc.abilist     |   2 +
>  .../linux/microblaze/be/libresolv.abilist     |   1 -
>  .../sysv/linux/microblaze/le/libc.abilist     |   2 +
>  .../linux/microblaze/le/libresolv.abilist     |   1 -
>  .../sysv/linux/mips/mips32/fpu/libc.abilist   |   3 +
>  .../sysv/linux/mips/mips32/libresolv.abilist  |   2 -
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist |   3 +
>  .../sysv/linux/mips/mips64/n32/libc.abilist   |   3 +
>  .../linux/mips/mips64/n32/libresolv.abilist   |   2 -
>  .../sysv/linux/mips/mips64/n64/libc.abilist   |   3 +
>  .../linux/mips/mips64/n64/libresolv.abilist   |   2 -
>  sysdeps/unix/sysv/linux/nios2/libc.abilist    |   2 +
>  .../unix/sysv/linux/nios2/libresolv.abilist   |   1 -
>  .../linux/powerpc/powerpc32/fpu/libc.abilist  |   3 +
>  .../linux/powerpc/powerpc32/libresolv.abilist |   2 -
>  .../powerpc/powerpc32/nofpu/libc.abilist      |   3 +
>  .../linux/powerpc/powerpc64/be/libc.abilist   |   2 +
>  .../powerpc/powerpc64/be/libresolv.abilist    |   1 -
>  .../linux/powerpc/powerpc64/le/libc.abilist   |   2 +
>  .../powerpc/powerpc64/le/libresolv.abilist    |   1 -
>  .../unix/sysv/linux/riscv/rv32/libc.abilist   |   2 +
>  .../sysv/linux/riscv/rv32/libresolv.abilist   |   1 -
>  .../unix/sysv/linux/riscv/rv64/libc.abilist   |   2 +
>  .../sysv/linux/riscv/rv64/libresolv.abilist   |   1 -
>  .../unix/sysv/linux/s390/s390-32/libc.abilist |   3 +
>  .../sysv/linux/s390/s390-32/libresolv.abilist |   2 -
>  .../unix/sysv/linux/s390/s390-64/libc.abilist |   2 +
>  .../sysv/linux/s390/s390-64/libresolv.abilist |   1 -
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    |   3 +
>  .../unix/sysv/linux/sh/be/libresolv.abilist   |   2 -
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    |   3 +
>  .../unix/sysv/linux/sh/le/libresolv.abilist   |   2 -
>  .../sysv/linux/sparc/sparc32/libc.abilist     |   3 +
>  .../linux/sparc/sparc32/libresolv.abilist     |   2 -
>  .../sysv/linux/sparc/sparc64/libc.abilist     |   3 +
>  .../linux/sparc/sparc64/libresolv.abilist     |   2 -
>  .../unix/sysv/linux/x86_64/64/libc.abilist    |   2 +
>  .../sysv/linux/x86_64/64/libresolv.abilist    |   1 -
>  .../unix/sysv/linux/x86_64/x32/libc.abilist   |   2 +
>  .../sysv/linux/x86_64/x32/libresolv.abilist   |   1 -
>  76 files changed, 219 insertions(+), 90 deletions(-)
>  create mode 100644 resolv/dn_expand.c
> 
> diff --git a/include/resolv.h b/include/resolv.h
> index daf4a74777..44fc0c346f 100644
> --- a/include/resolv.h
> +++ b/include/resolv.h
> @@ -44,7 +44,6 @@ libresolv_hidden_proto (_sethtent)
>  libresolv_hidden_proto (_gethtent)
>  libresolv_hidden_proto (_gethtbyaddr)
>  libresolv_hidden_proto (_gethtbyname2)
> -libresolv_hidden_proto (__dn_expand)

OK.

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

OK.

> +
>  # 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 \

OK.

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

OK.

>      h_errlist;
>      h_nerr;
>      herror;
> @@ -10,6 +11,7 @@ libc {
>      res_init;
>    }
>    GLIBC_2.2 {
> +    __dn_expand;

OK.

>      __res_init;
>      __res_nclose;
>      __res_ninit;
> @@ -40,6 +42,7 @@ libc {
>      gai_suspend;
>      getaddrinfo_a;
>  %endif
> +    dn_expand;

OK.

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

OK. Good idea with __libc prefix.

>      __ns_name_compress;
>      __ns_name_ntop;
>      __ns_name_pack;
> @@ -120,7 +124,6 @@ libresolv {
>      _res_opcodes;
>      _res_resultcodes;
>      _sethtent;
> -    dn_expand;

OK.

>      inet_net_ntop;
>      inet_net_pton;
>      inet_neta;
> @@ -135,7 +138,6 @@ libresolv {
>      res_send_setrhook;
>    }
>    GLIBC_2.2 {
> -    __dn_expand;

OK.

>      __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);

OK.

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

OK.

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

OK.

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

OK.

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

OK.

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

OK.

> +   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;

OK. Match.

> +}
> +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);

OK.

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

OK.

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

OK.

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

OK. Remove.

>  /*
>   * 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

OK.

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

OK.

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

OK.

>  	newlen = strlen(name);
>  	if (newlen == 0 || name[newlen - 1] != '.') {
> diff --git a/resolv/res_send.c b/resolv/res_send.c
> index 9a3bc5804a..77d6835e1a 100644
> --- a/resolv/res_send.c
> +++ b/resolv/res_send.c
> @@ -268,7 +268,7 @@ res_nameinquery(const char *name, int type, int class,
>  		char tname[MAXDNAME+1];
>  		int n, ttype, tclass;
>  
> -		n = dn_expand(buf, eom, cp, tname, sizeof tname);
> +		n = __libc_dn_expand (buf, eom, cp, tname, sizeof tname);

OK.

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

OK.

>  		if (n < 0)
>  			return (-1);
>  		cp += n;
> diff --git a/resolv/resolv.h b/resolv/resolv.h
> index d55942a6b6..5216c1f48c 100644
> --- a/resolv/resolv.h
> +++ b/resolv/resolv.h
> @@ -212,7 +212,6 @@ __END_DECLS
>  #define b64_pton		__b64_pton
>  #define dn_comp			__dn_comp
>  #define dn_count_labels		__dn_count_labels
> -#define dn_expand		__dn_expand

OK.

>  #define dn_skipname		__dn_skipname
>  #define fp_resstat		__fp_resstat
>  #define loc_aton		__loc_aton
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index 170c6aeaee..f7e2541856 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -244,6 +244,7 @@ GLIBC_2.2.6 __dcgettext F
>  GLIBC_2.2.6 __default_morecore F
>  GLIBC_2.2.6 __dgettext F
>  GLIBC_2.2.6 __divdi3 F
> +GLIBC_2.2.6 __dn_expand F

OK.

>  GLIBC_2.2.6 __dup2 F
>  GLIBC_2.2.6 __duplocale F
>  GLIBC_2.2.6 __environ D 0x4
> @@ -2234,6 +2235,7 @@ GLIBC_2.34 dlmopen F
>  GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
> +GLIBC_2.34 dn_expand F

OK. New symbol without __ at GLIBC_2.34.

>  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 16aa9b1803..d7feaebd25 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
> @@ -2429,6 +2430,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 cf52581228..dcab48ea49 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
> @@ -2521,6 +2523,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 6ab308f822..f2c3d18a2b 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
> @@ -2188,6 +2189,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 7f9c44838c..89e94dc3ef 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -315,6 +315,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/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 fce812f258..912783d6b9 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -312,6 +312,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
> @@ -642,6 +643,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 7962497b41..bb15cf2f8a 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
> @@ -2454,6 +2455,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 502f7e5a22..8f189c1a85 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
> @@ -2400,6 +2402,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 672ff49a8e..9ab1d41cc1 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
> @@ -2584,6 +2586,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 35bf700e2b..5c3584516e 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
> @@ -2359,6 +2361,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 f633a38f14..8b1c4a8a0b 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -316,6 +316,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
> @@ -631,6 +632,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 370ccf6564..c354cc814d 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
> @@ -2527,6 +2529,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 e8378d068a..c6d85fe0bd 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
> @@ -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_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 a20719cad5..b57734b754 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
> @@ -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_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 ee3721bdbb..7598be5fdb 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
> @@ -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/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 5c3f2598d0..e072907b70 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
> @@ -2490,6 +2492,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 74ee08c389..52ce193faa 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
> @@ -2498,6 +2500,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 78551cd239..dc61c97f24 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
> @@ -2410,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_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 de7c57a5b2..3a866aea22 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
> @@ -2544,6 +2545,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 5b80d97e49..8cb8cf8c87 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
> @@ -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/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 cffcccde96..dfdba9e6ff 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
> @@ -2587,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_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 05e0c32443..512d13beba 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
> @@ -2323,6 +2324,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 0651e2e7f3..a4c73428fb 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
> @@ -2625,6 +2626,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 da2b9d8501..ef9a55a760 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
> @@ -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/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 267d0d5d63..5e3b73302d 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
> @@ -2390,6 +2391,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 3f6f77a9d4..b1a29b59ba 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
> @@ -2552,6 +2554,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 7dd974d417..e674a2b9fd 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
> @@ -2360,6 +2361,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 2edaee2a59..169e46d789 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
> @@ -2407,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_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 98253e7329..fbdb2d38a2 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
> @@ -2404,6 +2406,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 0e63ce7d44..186be324af 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
> @@ -2547,6 +2549,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 2362456d51..8d2df781c3 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
> @@ -2382,6 +2384,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 d97d38a27c..af478a0756 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
> @@ -2338,6 +2339,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 c94f90a591..151d2fa46e 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
> @@ -2444,6 +2445,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
> 

OK.

-- 
Cheers,
Carlos.


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

* Re: [PATCH 13/30] resolv: Move _getlong, _getshort, __putlong, __putshort to res-putget
  2021-07-08 15:02 ` [PATCH 13/30] resolv: Move _getlong, _getshort, __putlong, __putshort to res-putget Florian Weimer via Libc-alpha
@ 2021-07-15  5:01   ` Carlos O'Donell via Libc-alpha
  0 siblings, 0 replies; 70+ messages in thread
From: Carlos O'Donell via Libc-alpha @ 2021-07-15  5:01 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 7/8/21 11:02 AM, Florian Weimer via Libc-alpha wrote:
> And reformat to GNU style.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

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

> ---
>  resolv/Makefile     |   1 +
>  resolv/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 \

OK.

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

OK.

> +   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);

OK.

> +}
> +libresolv_hidden_def (__putlong)
> +
> +void
> +__putshort (uint16_t src, unsigned char *dst)
> +{
> +  ns_put16 (src, dst);

OK.

> +}
> +libresolv_hidden_def (__putshort)
> +
> +uint32_t
> +_getlong (const unsigned char *src)
> +{
> +  return ns_get32 (src);

OK.

> +}
> +
> +uint16_t
> +_getshort (const unsigned char *src)
> +{
> +  return ns_get16 (src);

OK.

> +}
> 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)); }

OK.

> 


-- 
Cheers,
Carlos.


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

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

On 7/8/21 11:03 AM, Florian Weimer via Libc-alpha wrote:
> 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.

Looks good.

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

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

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

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

OK.

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

OK.

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

OK.

>      __h_errno_location;
>      __res_randomid;
>      _res;
> @@ -42,6 +43,7 @@ libc {
>      gai_suspend;
>      getaddrinfo_a;
>  %endif
> +    dn_comp;

OK.

>      dn_expand;
>      ns_name_compress;
>      ns_name_ntop;
> @@ -79,7 +81,6 @@ libresolv {
>    GLIBC_2.0 {
>      __b64_ntop;
>      __b64_pton;
> -    __dn_comp;

OK.

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

OK.

> +   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);

OK.

> +}
> +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);

OK.

> +#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)
> -

OK. Remove.

>  /*
>   * Skip over a compressed domain name. Return the size or -1.
>   */
> diff --git a/resolv/resolv.h b/resolv/resolv.h
> index 5216c1f48c..78ad81577a 100644
> --- a/resolv/resolv.h
> +++ b/resolv/resolv.h
> @@ -210,7 +210,6 @@ __END_DECLS
>  
>  #define b64_ntop		__b64_ntop
>  #define b64_pton		__b64_pton
> -#define dn_comp			__dn_comp
>  #define dn_count_labels		__dn_count_labels
>  #define dn_skipname		__dn_skipname
>  #define fp_resstat		__fp_resstat
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index f7e2541856..5692245dbb 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -244,6 +244,7 @@ GLIBC_2.2.6 __dcgettext F
>  GLIBC_2.2.6 __default_morecore F
>  GLIBC_2.2.6 __dgettext F
>  GLIBC_2.2.6 __divdi3 F
> +GLIBC_2.2.6 __dn_comp F
>  GLIBC_2.2.6 __dn_expand F
>  GLIBC_2.2.6 __dup2 F
>  GLIBC_2.2.6 __duplocale F
> @@ -2235,6 +2236,7 @@ GLIBC_2.34 dlmopen F
>  GLIBC_2.34 dlopen F
>  GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
> +GLIBC_2.34 dn_comp F
>  GLIBC_2.34 dn_expand F
>  GLIBC_2.34 execveat F
>  GLIBC_2.34 forkpty F
> diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
> index 85460b7747..0132f6cef2 100644
> --- a/sysdeps/mach/hurd/i386/libresolv.abilist
> +++ b/sysdeps/mach/hurd/i386/libresolv.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.2.6 __b64_ntop F
>  GLIBC_2.2.6 __b64_pton F
> -GLIBC_2.2.6 __dn_comp F
>  GLIBC_2.2.6 __dn_count_labels F
>  GLIBC_2.2.6 __dn_skipname F
>  GLIBC_2.2.6 __fp_nquery F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index d7feaebd25..714de3bb0d 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
> @@ -2430,6 +2431,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 dcab48ea49..61c47275c3 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
> @@ -2523,6 +2524,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 f2c3d18a2b..4dca04958f 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
> @@ -2189,6 +2190,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 89e94dc3ef..6caf581b98 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -315,6 +315,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/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 912783d6b9..e0d0789930 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -312,6 +312,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
> @@ -643,6 +644,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 bb15cf2f8a..f259a65b82 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
> @@ -2455,6 +2456,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 8f189c1a85..83c9b2e5f6 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
> @@ -2402,6 +2403,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 9ab1d41cc1..62a140ecf3 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
> @@ -2586,6 +2587,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 5c3584516e..24ae204834 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
> @@ -2361,6 +2362,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 8b1c4a8a0b..162ef0bc36 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -316,6 +316,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
> @@ -632,6 +633,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 c354cc814d..2983e2a063 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
> @@ -2529,6 +2530,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 c6d85fe0bd..ebdeb8aefa 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
> @@ -2506,6 +2507,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 b57734b754..b564531dfe 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
> @@ -2503,6 +2504,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 7598be5fdb..30ed1ecb5a 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
> @@ -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/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 e072907b70..6288970497 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
> @@ -2492,6 +2493,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 52ce193faa..7f379f189b 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
> @@ -2500,6 +2501,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 dc61c97f24..adc8f70e9f 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
> @@ -2412,6 +2413,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 3a866aea22..e2f59dc3fa 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
> @@ -2545,6 +2546,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 8cb8cf8c87..dce5b10559 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
> @@ -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/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 dfdba9e6ff..b336af10c6 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
> @@ -2589,6 +2590,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 512d13beba..a072b8f50c 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
> @@ -2324,6 +2325,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 a4c73428fb..96aac6c2a7 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
> @@ -2626,6 +2627,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 ef9a55a760..766840ed64 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
> @@ -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/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 5e3b73302d..2330cc492e 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
> @@ -2391,6 +2392,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 b1a29b59ba..202748823f 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
> @@ -2554,6 +2555,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 e674a2b9fd..a9266ad20a 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
> @@ -2361,6 +2362,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 169e46d789..32a81a467c 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
> @@ -2409,6 +2410,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 fbdb2d38a2..884b53816e 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
> @@ -2406,6 +2407,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 186be324af..2bb890e734 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
> @@ -2549,6 +2550,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 8d2df781c3..5116c47b9f 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
> @@ -2384,6 +2385,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 af478a0756..6616970cf5 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
> @@ -2339,6 +2340,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 151d2fa46e..8fd921f505 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
> @@ -2445,6 +2446,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
> 

OK.

-- 
Cheers,
Carlos.


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

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

On 7/8/21 11:03 AM, Florian Weimer via Libc-alpha wrote:
> 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.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

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

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

OK.

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

OK.

>  
>  # 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 \

OK.

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

OK.

>      __h_errno_location;
>      __res_randomid;
>      _res;
> @@ -45,6 +46,7 @@ libc {
>  %endif
>      dn_comp;
>      dn_expand;
> +    dn_skipname;

OK.

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

OK.

>      __ns_name_compress;
>      __ns_name_ntop;
>      __ns_name_pack;
> @@ -82,7 +85,6 @@ libresolv {
>      __b64_ntop;
>      __b64_pton;
>      __dn_count_labels;
> -    __dn_skipname;

OK.

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

OK.

> +   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;

OK. Match.

> +}
> +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);

OK.

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

OK.

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

OK.

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

OK. Remove.

>  /* Return true if the string consists of printable ASCII characters
>     only.  */
>  static bool
> diff --git a/resolv/resolv.h b/resolv/resolv.h
> index 78ad81577a..3056e1aafe 100644
> --- a/resolv/resolv.h
> +++ b/resolv/resolv.h
> @@ -211,7 +211,6 @@ __END_DECLS
>  #define b64_ntop		__b64_ntop
>  #define b64_pton		__b64_pton
>  #define dn_count_labels		__dn_count_labels
> -#define dn_skipname		__dn_skipname

OK. Export as dn_skipname now.

>  #define fp_resstat		__fp_resstat
>  #define loc_aton		__loc_aton
>  #define loc_ntoa		__loc_ntoa
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index 5692245dbb..3e9d6345bb 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -246,6 +246,7 @@ GLIBC_2.2.6 __dgettext F
>  GLIBC_2.2.6 __divdi3 F
>  GLIBC_2.2.6 __dn_comp F
>  GLIBC_2.2.6 __dn_expand F
> +GLIBC_2.2.6 __dn_skipname F
>  GLIBC_2.2.6 __dup2 F
>  GLIBC_2.2.6 __duplocale F
>  GLIBC_2.2.6 __environ D 0x4
> @@ -2238,6 +2239,7 @@ GLIBC_2.34 dlsym F
>  GLIBC_2.34 dlvsym F
>  GLIBC_2.34 dn_comp F
>  GLIBC_2.34 dn_expand F
> +GLIBC_2.34 dn_skipname F
>  GLIBC_2.34 execveat F
>  GLIBC_2.34 forkpty F
>  GLIBC_2.34 login F
> diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
> index 0132f6cef2..0c8d828f26 100644
> --- a/sysdeps/mach/hurd/i386/libresolv.abilist
> +++ b/sysdeps/mach/hurd/i386/libresolv.abilist
> @@ -1,7 +1,6 @@
>  GLIBC_2.2.6 __b64_ntop F
>  GLIBC_2.2.6 __b64_pton F
>  GLIBC_2.2.6 __dn_count_labels F
> -GLIBC_2.2.6 __dn_skipname F
>  GLIBC_2.2.6 __fp_nquery F
>  GLIBC_2.2.6 __fp_query F
>  GLIBC_2.2.6 __fp_resstat F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 714de3bb0d..3745fe29eb 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
> @@ -2433,6 +2434,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 61c47275c3..55030a922a 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
> @@ -2526,6 +2527,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 4dca04958f..8211028280 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
> @@ -2192,6 +2193,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 6caf581b98..1f97005a6e 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 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/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 e0d0789930..a7ce26c5e1 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 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
> @@ -646,6 +647,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 f259a65b82..a9ada43f4f 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
> @@ -2458,6 +2459,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 83c9b2e5f6..a5c1ca11a7 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
> @@ -2405,6 +2406,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 62a140ecf3..8fa262b560 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
> @@ -2589,6 +2590,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 24ae204834..78dbe02b3b 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
> @@ -2364,6 +2365,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 162ef0bc36..125a40dc15 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 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
> @@ -635,6 +636,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 2983e2a063..3c31d4f442 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
> @@ -2532,6 +2533,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 ebdeb8aefa..30b5703ab6 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
> @@ -2509,6 +2510,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 b564531dfe..daaf5dbdee 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
> @@ -2506,6 +2507,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 30ed1ecb5a..72a0f54281 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
> @@ -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/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 6288970497..cf390ad8cc 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
> @@ -2495,6 +2496,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 7f379f189b..19d80bd992 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
> @@ -2503,6 +2504,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 adc8f70e9f..37add15070 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
> @@ -2415,6 +2416,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 e2f59dc3fa..9c16508db9 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
> @@ -2548,6 +2549,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 dce5b10559..c3370392f6 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
> @@ -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/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 b336af10c6..5ccb7785c1 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
> @@ -2592,6 +2593,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 a072b8f50c..7cbb47385c 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
> @@ -2327,6 +2328,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 96aac6c2a7..58d3c10e58 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
> @@ -2629,6 +2630,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 766840ed64..52f4d0a6c7 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
> @@ -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/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 2330cc492e..b2a5a4c31a 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
> @@ -2394,6 +2395,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 202748823f..2040feb493 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
> @@ -2557,6 +2558,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 a9266ad20a..483a29477b 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
> @@ -2364,6 +2365,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 32a81a467c..d38e23b612 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
> @@ -2412,6 +2413,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 884b53816e..4890dfbfe4 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
> @@ -2409,6 +2410,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 2bb890e734..bc737ffc66 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
> @@ -2552,6 +2553,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 5116c47b9f..a745ed2a70 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
> @@ -2387,6 +2388,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 6616970cf5..5d35b3bb7a 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
> @@ -2342,6 +2343,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 8fd921f505..bf06824cd4 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
> @@ -2448,6 +2449,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
> 

OK.

-- 
Cheers,
Carlos.


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

* Re: [PATCH 16/30] resolv: Rename res_comp.c to res-name-checking.c and move into libc
  2021-07-08 15:03 ` [PATCH 16/30] resolv: Rename res_comp.c to res-name-checking.c and move " Florian Weimer via Libc-alpha
@ 2021-07-15  5:01   ` Carlos O'Donell via Libc-alpha
  0 siblings, 0 replies; 70+ messages in thread
From: Carlos O'Donell via Libc-alpha @ 2021-07-15  5:01 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 7/8/21 11:03 AM, Florian Weimer via Libc-alpha wrote:
> This reflects what the remaining functions in the file do.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

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

OK.

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

OK.

>  
>  # 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 \

OK.

>    res-state \
>    res_hconf \
>    res_init \
> @@ -142,7 +143,6 @@ libresolv-routines := \
>    ns_samedomain \
>    ns_ttl \
>    res-putget \
> -  res_comp \

OK.

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

OK.

>      __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;

OK.

>    }
>    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;

OK.

>      __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;

OK.

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

OK. File rename.

> @@ -1,4 +1,4 @@
> -/* Domain name processing functions.
> +/* Syntax checking for DNS domain names.

OK.

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

OK. Cleanup includes.

>  
>  /* 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)

OK.

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

OK.

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

OK.

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

OK.

>  
>  /* 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)

OK.

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

OK.

>      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

OK.

>  
>  /* 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)

OK.

>  {
>    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;

OK.

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

OK.

> diff --git a/resolv/resolv.h b/resolv/resolv.h
> index 3056e1aafe..d4e401b580 100644
> --- a/resolv/resolv.h
> +++ b/resolv/resolv.h
> @@ -225,10 +225,7 @@ __END_DECLS
>  #define p_rcode			__p_rcode
>  #define putlong			__putlong
>  #define putshort		__putshort
> -#define res_dnok		__res_dnok
> -#define res_hnok		__res_hnok
>  #define res_hostalias		__res_hostalias
> -#define res_mailok		__res_mailok
>  #define res_nameinquery		__res_nameinquery
>  #define res_nclose		__res_nclose
>  #define res_ninit		__res_ninit
> @@ -237,7 +234,6 @@ __END_DECLS
>  #define res_nquerydomain	__res_nquerydomain
>  #define res_nsearch		__res_nsearch
>  #define res_nsend		__res_nsend
> -#define res_ownok		__res_ownok
>  #define res_queriesmatch	__res_queriesmatch
>  #define res_randomid		__res_randomid
>  #define sym_ntop		__sym_ntop

OK. Export symbols as their actual names.

> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index 3e9d6345bb..0c2b5983a8 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -401,9 +401,13 @@ GLIBC_2.2.6 __rawmemchr F
>  GLIBC_2.2.6 __rcmd_errstr D 0x4
>  GLIBC_2.2.6 __read F
>  GLIBC_2.2.6 __realloc_hook D 0x4
> +GLIBC_2.2.6 __res_dnok F
> +GLIBC_2.2.6 __res_hnok F
>  GLIBC_2.2.6 __res_init F
> +GLIBC_2.2.6 __res_mailok F
>  GLIBC_2.2.6 __res_nclose F
>  GLIBC_2.2.6 __res_ninit F
> +GLIBC_2.2.6 __res_ownok F
>  GLIBC_2.2.6 __res_randomid F
>  GLIBC_2.2.6 __res_state F
>  GLIBC_2.2.6 __rpc_thread_createerr F
> @@ -2254,6 +2258,10 @@ GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
>  GLIBC_2.34 openpty F
> +GLIBC_2.34 res_dnok F
> +GLIBC_2.34 res_hnok F
> +GLIBC_2.34 res_mailok F
> +GLIBC_2.34 res_ownok F
>  GLIBC_2.34 shm_open F
>  GLIBC_2.34 shm_unlink F
>  GLIBC_2.34 timespec_getres F
> diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
> index 0c8d828f26..8166e6af58 100644
> --- a/sysdeps/mach/hurd/i386/libresolv.abilist
> +++ b/sysdeps/mach/hurd/i386/libresolv.abilist
> @@ -22,11 +22,8 @@ GLIBC_2.2.6 __p_type_syms D 0x228
>  GLIBC_2.2.6 __putlong F
>  GLIBC_2.2.6 __putshort F
>  GLIBC_2.2.6 __res_close F
> -GLIBC_2.2.6 __res_dnok F
> -GLIBC_2.2.6 __res_hnok F
>  GLIBC_2.2.6 __res_hostalias F
>  GLIBC_2.2.6 __res_isourserver F
> -GLIBC_2.2.6 __res_mailok F
>  GLIBC_2.2.6 __res_mkquery F
>  GLIBC_2.2.6 __res_nameinquery F
>  GLIBC_2.2.6 __res_nmkquery F
> @@ -34,7 +31,6 @@ GLIBC_2.2.6 __res_nquery F
>  GLIBC_2.2.6 __res_nquerydomain F
>  GLIBC_2.2.6 __res_nsearch F
>  GLIBC_2.2.6 __res_nsend F
> -GLIBC_2.2.6 __res_ownok F
>  GLIBC_2.2.6 __res_queriesmatch F
>  GLIBC_2.2.6 __res_query F
>  GLIBC_2.2.6 __res_querydomain F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 3745fe29eb..5e5318d5bf 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
> @@ -2556,6 +2560,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 55030a922a..f0c4713a07 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
> @@ -2649,6 +2653,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 8211028280..4afdad0df4 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
> @@ -2315,6 +2319,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 1f97005a6e..b791356b77 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/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/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 a7ce26c5e1..76139809f0 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -436,6 +436,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
> @@ -830,9 +834,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 a9ada43f4f..6881141271 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
> @@ -2581,6 +2585,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 a5c1ca11a7..24f2fc27e1 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
> @@ -2528,6 +2532,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 8fa262b560..fd14a8f78c 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
> @@ -2712,6 +2716,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 78dbe02b3b..fa5119af99 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
> @@ -2487,6 +2491,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 125a40dc15..c823a34421 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -440,6 +440,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
> @@ -819,9 +823,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 3c31d4f442..be9c2c184a 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
> @@ -2655,6 +2659,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 30b5703ab6..d7d28be015 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
> @@ -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/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 daaf5dbdee..11eff3fab2 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
> @@ -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/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 72a0f54281..eda89ef343 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
> @@ -2620,6 +2624,10 @@ GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 pthread_timedjoin_np F
>  GLIBC_2.34 pthread_tryjoin_np F
> +GLIBC_2.34 res_dnok F
> +GLIBC_2.34 res_hnok F
> +GLIBC_2.34 res_mailok F
> +GLIBC_2.34 res_ownok F
>  GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/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 cf390ad8cc..cbf9c259d5 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
> @@ -2618,6 +2622,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 19d80bd992..43d62943b0 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
> @@ -2626,6 +2630,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 37add15070..56ac25092d 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
> @@ -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/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 9c16508db9..53fc8fecec 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
> @@ -2671,6 +2675,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 c3370392f6..4350d38067 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
> @@ -2682,6 +2686,10 @@ GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 pthread_timedjoin_np F
>  GLIBC_2.34 pthread_tryjoin_np F
> +GLIBC_2.34 res_dnok F
> +GLIBC_2.34 res_hnok F
> +GLIBC_2.34 res_mailok F
> +GLIBC_2.34 res_ownok F
>  GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
> diff --git a/sysdeps/unix/sysv/linux/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 5ccb7785c1..572a55e0c0 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
> @@ -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/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 7cbb47385c..1b235baf00 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
> @@ -2450,6 +2454,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 58d3c10e58..230c1af181 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
> @@ -2752,6 +2756,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 52f4d0a6c7..72c91e4932 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
> @@ -2317,6 +2321,10 @@ GLIBC_2.34 pthread_spin_unlock F
>  GLIBC_2.34 pthread_testcancel F
>  GLIBC_2.34 pthread_timedjoin_np F
>  GLIBC_2.34 pthread_tryjoin_np F
> +GLIBC_2.34 res_dnok F
> +GLIBC_2.34 res_hnok F
> +GLIBC_2.34 res_mailok F
> +GLIBC_2.34 res_ownok F
>  GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
> diff --git a/sysdeps/unix/sysv/linux/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 b2a5a4c31a..04db64bbe2 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
> @@ -2517,6 +2521,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 2040feb493..9430d6f772 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
> @@ -2680,6 +2684,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 483a29477b..3ea1627bae 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
> @@ -2487,6 +2491,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 d38e23b612..11cf290e0a 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
> @@ -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/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 4890dfbfe4..a9ea1c1793 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
> @@ -2532,6 +2536,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 bc737ffc66..b98e9cb77c 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
> @@ -2675,6 +2679,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 a745ed2a70..f94e1b4b99 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
> @@ -2510,6 +2514,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 5d35b3bb7a..286b66f2eb 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
> @@ -2465,6 +2469,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 bf06824cd4..a82a766ca6 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
> @@ -2571,6 +2575,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
> 

OK.

-- 
Cheers,
Carlos.


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

* Re: [PATCH 17/30] resolv: Remove unnecessary res_isourserver_p call from send_dg
  2021-07-08 15:04 ` [PATCH 17/30] resolv: Remove unnecessary res_isourserver_p call from send_dg Florian Weimer via Libc-alpha
@ 2021-07-15  5:01   ` Carlos O'Donell via Libc-alpha
  0 siblings, 0 replies; 70+ messages in thread
From: Carlos O'Donell via Libc-alpha @ 2021-07-15  5:01 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 7/8/21 11:04 AM, Florian Weimer via Libc-alpha wrote:
> As the comment indicates, the check is unnecessary due to the way the
> UDP socket is set up.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

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

> ---
>  resolv/res_send.c | 6 ------
>  1 file changed, 6 deletions(-)
> 
> diff --git a/resolv/res_send.c b/resolv/res_send.c
> index 77d6835e1a..b6139c7d62 100644
> --- a/resolv/res_send.c
> +++ b/resolv/res_send.c
> @@ -1343,12 +1343,6 @@ send_dg(res_state statp,
>  			return close_and_return_error (statp, resplen2);
>  		}
>  
> -		/* Paranoia check.  Due to the connected UDP socket,
> -		   the kernel has already filtered invalid addresses
> -		   for us.  */
> -		if (!res_ourserver_p(statp, &from))
> -		  goto wait;

OK.

> -
>  		/* Check for the correct header layout and a matching
>  		   question.  */
>  		int matching_query = 0; /* Default to no matching query.  */
> 


-- 
Cheers,
Carlos.


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

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

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

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

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

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

OK.

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

OK.

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

OK.

> +   Copyright (C) 2015-2021 Free Software Foundation, Inc.
> +   This file is part of the GNU C Library.
> +
> +   The GNU C Library is free software; you can redistribute it and/or
> +   modify it under the terms of the GNU Lesser General Public
> +   License as published by the Free Software Foundation; either
> +   version 2.1 of the License, or (at your option) any later version.
> +
> +   The GNU C Library is distributed in the hope that it will be useful,
> +   but WITHOUT ANY WARRANTY; without even the implied warranty of
> +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> +   Lesser General Public License for more details.
> +
> +   You should have received a copy of the GNU Lesser General Public
> +   License along with the GNU C Library; if not, see
> +   <https://www.gnu.org/licenses/>.  */
> +
> +#include <assert.h>
> +#include <resolv.h>
> +#include <resolv-internal.h>
> +
> +struct sockaddr *
> +__res_get_nsaddr (res_state statp, unsigned int n)
> +{
> +  assert (n < statp->nscount);
> +
> +  if (statp->nsaddr_list[n].sin_family == 0
> +      && statp->_u._ext.nsaddrs[n] != NULL)
> +    /* statp->_u._ext.nsaddrs[n] holds an address that is larger than
> +       struct sockaddr, and user code did not update
> +       statp->nsaddr_list[n].  */
> +    return (struct sockaddr *) statp->_u._ext.nsaddrs[n];

OK.

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

OK.

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

OK.

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

OK.

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

OK.

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

OK. Remove.

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

OK.

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

OK.

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

OK.

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


-- 
Cheers,
Carlos.


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

* Re: [PATCH 19/30] resolv: Move res_isourserver to its own file and reformat to GNU style
  2021-07-08 15:05 ` [PATCH 19/30] resolv: Move res_isourserver to its own file and reformat to GNU style Florian Weimer via Libc-alpha
@ 2021-07-15  5:01   ` Carlos O'Donell via Libc-alpha
  0 siblings, 0 replies; 70+ messages in thread
From: Carlos O'Donell via Libc-alpha @ 2021-07-15  5:01 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 7/8/21 11:05 AM, Florian Weimer via Libc-alpha wrote:

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

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

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

OK.

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

OK.

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

OK.

> +   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;

OK.

> +
> +  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;

OK.

> +
> +      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;

OK.

> +        }
> +    } 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;

OK.

> +}
> +
> +int
> +res_isourserver (const struct sockaddr_in *inp)
> +{
> +  return res_ourserver_p (&_res, (const struct sockaddr_in6 *) inp);
> +}

OK.

> 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);
> -}
> -

OK. Remove.

>  /* int
>   * res_nameinquery(name, type, class, buf, eom)
>   *	look for (name,type,class) in the query section of packet (buf,eom)
> 


-- 
Cheers,
Carlos.


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

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

On 7/8/21 11:05 AM, Florian Weimer via Libc-alpha wrote:
> 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.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
 
> Also reformat the implementation to GNU style.
> ---
>  include/arpa/nameser.h     |  3 ++-
>  resolv/Makefile            |  2 ++
>  resolv/Versions            |  1 +
>  resolv/ns_makecanon.c      | 50 ++++++++++++++++++++++++++++++++++++++
>  resolv/ns_samedomain.c     | 38 ++---------------------------
>  resolv/resolv-deprecated.c | 35 ++++++++++++++++++++++++++
>  6 files changed, 92 insertions(+), 37 deletions(-)
>  create mode 100644 resolv/ns_makecanon.c
>  create mode 100644 resolv/resolv-deprecated.c
> 
> diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
> index eff25178c8..a529cc86d3 100644
> --- a/include/arpa/nameser.h
> +++ b/include/arpa/nameser.h
> @@ -69,9 +69,10 @@ libresolv_hidden_proto (ns_sprintrr)
>  libresolv_hidden_proto (ns_sprintrrf)
>  libresolv_hidden_proto (ns_samedomain)
>  libresolv_hidden_proto (ns_samename)
> -libresolv_hidden_proto (ns_makecanon)

OK.

>  libresolv_hidden_proto (ns_format_ttl)
>  
> +extern __typeof (ns_makecanon) __libc_ns_makecanon;
> +libc_hidden_proto (__libc_ns_makecanon)

OK.

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

OK.

>    ns_name_compress \
>    ns_name_ntop \
>    ns_name_pack \
> @@ -151,6 +152,7 @@ libresolv-routines := \
>    res_mkquery \
>    res_query \
>    res_send \
> +  resolv-deprecated \

OK.

>    # 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;

OK.

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

OK.

> + * 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\\.  */

OK.

> +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';

OK.

> +  dst[n++] = '.';
> +  dst[n] = '\0';
> +  return 0;

OK.

> +}
> +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)
> -

OK. Remove.

>  /*%
>   *	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)

OK.

>  		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);
> +}

OK.

> 


-- 
Cheers,
Carlos.


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

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

On 7/8/21 11:05 AM, Florian Weimer via Libc-alpha wrote:
> 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.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
 
> Also reformat the implementation to GNU style.
> ---
>  include/arpa/nameser.h     |  3 ++-
>  resolv/Makefile            |  1 +
>  resolv/Versions            |  1 +
>  resolv/ns_print.c          |  6 +++---
>  resolv/ns_samedomain.c     | 28 +++-------------------------
>  resolv/ns_samename.c       | 38 ++++++++++++++++++++++++++++++++++++++
>  resolv/res_query.c         |  2 +-
>  resolv/res_send.c          |  4 ++--
>  resolv/resolv-deprecated.c |  6 ++++++
>  9 files changed, 57 insertions(+), 32 deletions(-)
>  create mode 100644 resolv/ns_samename.c
> 
> diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
> index a529cc86d3..53f1dbc7c3 100644
> --- a/include/arpa/nameser.h
> +++ b/include/arpa/nameser.h
> @@ -68,7 +68,6 @@ libresolv_hidden_proto (ns_parserr)
>  libresolv_hidden_proto (ns_sprintrr)
>  libresolv_hidden_proto (ns_sprintrrf)
>  libresolv_hidden_proto (ns_samedomain)
> -libresolv_hidden_proto (ns_samename)

OK.

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

OK.

>  
>  # 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 \

OK.

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

OK.

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

OK.

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

OK.

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

OK.

>  }
>  
> -/*%
> - *	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)

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

OK.

> + * 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];

OK.

> +
> +  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;

OK. Match.

> +}
> +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) {

OK.

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

OK.

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

OK. Forwarder.

> +}
> 


-- 
Cheers,
Carlos.


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

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

On 7/8/21 11:05 AM, Florian Weimer via Libc-alpha wrote:
> And reformat to GNU style.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
 
> This deprecated function is used in the implementation of the stub
> resolver (for now).  Keep the public symbol in libresolv for now
> (so that no new symbol version is needed), and add a forwarder to
> libresolv.
> ---
>  include/resolv.h           |   3 +-
>  resolv/Makefile            |   1 +
>  resolv/Versions            |   1 +
>  resolv/res_nameinquery.c   | 115 +++++++++++++++++++++++++++++++++++++
>  resolv/res_send.c          |  43 +-------------
>  resolv/resolv-deprecated.c |   8 +++
>  6 files changed, 128 insertions(+), 43 deletions(-)
>  create mode 100644 resolv/res_nameinquery.c
> 
> diff --git a/include/resolv.h b/include/resolv.h
> index a70e9e5723..4d328fe914 100644
> --- a/include/resolv.h
> +++ b/include/resolv.h
> @@ -54,7 +54,6 @@ libresolv_hidden_proto (__p_type)
>  libresolv_hidden_proto (__loc_ntoa)
>  libresolv_hidden_proto (__fp_nquery)
>  libresolv_hidden_proto (__fp_query)
> -libresolv_hidden_proto (__res_nameinquery)

OK.

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

OK.

>  
>  # 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 \

OK.

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

OK.

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

OK.

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

OK.

> +{
> +  const unsigned char *cp = buf + HFIXEDSZ;
> +  int qdcount = ntohs (((HEADER *) buf)->qdcount);

OK.

> +
> +  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;

OK. Match.

> +    }
> +  return 0;

OK.

> +}
> +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)
> -

OK. Remove.

>  /* 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))

OK.

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

OK. Add forwarder.

> +}
> 


-- 
Cheers,
Carlos.


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

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

On 7/8/21 11:06 AM, Florian Weimer via Libc-alpha wrote:
> And reformat it to GNU style.
> 
> The treatment of this function matches res_nameinquery, for the
> reasons stated there.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

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

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

OK.

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

OK.

>  
>  # 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 \

OK.

>    res_randomid \
>    resolv_conf \
>    resolv_context \
> diff --git a/resolv/zs 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;

OK.

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

OK.

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

OK.

> +{
> +  if (eom1 - buf1 < HFIXEDSZ || eom2 - buf2 < HFIXEDSZ)
> +    return -1;

OK. Rewrite. Looks correct.

> +
> +  /* 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;

OK.

> +
> +  /* 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;

OK.

> +
> +  qdcount = htons (qdcount);
> +  const unsigned char *cp = buf1 + HFIXEDSZ;

OK.

> +
> +  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;

OK. Rewrite and expand. Looks correct.

> +      NS_GET16 (ttype, cp);
> +      NS_GET16 (tclass, cp);
> +      if (!__libc_res_nameinquery (tname, ttype, tclass, buf2, eom2))
> +        return 0;

OK.

> +    }
> +  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)
> -

OK. Remove.

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

OK.

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

OK.

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

OK. Add forwarder.

> +}
> 


-- 
Cheers,
Carlos.


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

* Re: [PATCH 24/30] resolv: Move __res_context_hostalias into its own file and into libc
  2021-07-08 15:06 ` [PATCH 24/30] resolv: Move __res_context_hostalias into " Florian Weimer via Libc-alpha
@ 2021-07-15  5:02   ` Carlos O'Donell via Libc-alpha
  0 siblings, 0 replies; 70+ messages in thread
From: Carlos O'Donell via Libc-alpha @ 2021-07-15  5:02 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 7/8/21 11:06 AM, Florian Weimer via Libc-alpha wrote:
> And reformat it to GNU style.  Remove the unecessary setbuf call.
> Use __fgets_unlocked for PLT avoidance; no locking is required here.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

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

> ---
>  resolv/Makefile                |   1 +
>  resolv/Versions                |   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 \

OK.

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

OK.

>      __res_get_nsaddr;
>      __res_iclose;
>      __resolv_context_get;
> @@ -192,7 +193,6 @@ libresolv {
>    GLIBC_PRIVATE {
>      __ns_get16;
>      __ns_get32;
> -    __res_context_hostalias;

OK.

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

OK.

> +   Copyright (C) 2015-2021 Free Software Foundation, Inc.
> +   This file is part of the GNU C Library.
> +
> +   The GNU C Library is free software; you can redistribute it and/or
> +   modify it under the terms of the GNU Lesser General Public
> +   License as published by the Free Software Foundation; either
> +   version 2.1 of the License, or (at your option) any later version.
> +
> +   The GNU C Library is distributed in the hope that it will be useful,
> +   but WITHOUT ANY WARRANTY; without even the implied warranty of
> +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> +   Lesser General Public License for more details.
> +
> +   You should have received a copy of the GNU Lesser General Public
> +   License along with the GNU C Library; if not, see
> +   <https://www.gnu.org/licenses/>.  */
> +
> +/*
> + * 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;

OK. Drop setbuf as not required.

> +  buf[sizeof (buf) - 1] = '\0';

OK. Terminate.

> +  while (__fgets_unlocked (buf, sizeof (buf), fp))

OK.

> +    {
> +      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;

OK.

> +        }
> +    }
> +  fclose (fp);
> +  return NULL;

OK.

> +}
> +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)

OK. Remove.

> -
>  /* 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);

OK.

>  
>  /* Add an OPT record to a DNS query.  */
>  int __res_nopt (struct resolv_context *, int n0,
> 


-- 
Cheers,
Carlos.


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

* Re: [PATCH 25/30] resolv: Move res_hostalias into its own file, along with hostalias
  2021-07-08 15:06 ` [PATCH 25/30] resolv: Move res_hostalias into its own file, along with hostalias Florian Weimer via Libc-alpha
@ 2021-07-15  5:02   ` Carlos O'Donell via Libc-alpha
  0 siblings, 0 replies; 70+ messages in thread
From: Carlos O'Donell via Libc-alpha @ 2021-07-15  5:02 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 7/8/21 11:06 AM, Florian Weimer via Libc-alpha wrote:
> These deprecated symbols continue to be exported from libresolv.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

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

> ---
>  resolv/Makefile        |  1 +
>  resolv/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 \

OK.

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

OK.

> +   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;

OK.

> +}
> +
> +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);

OK.

> +}
> +
> +const char *
> +hostalias (const char *name)
> +{
> +  static char abuf[MAXDNAME];
> +  return context_hostalias_common
> +    (__resolv_context_get (), name, abuf, sizeof (abuf));

OK.

> +}
> 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;
> -}

OK. Remove.

> -
> -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);
> -}

OK. Remove.

> -
> -const char *
> -hostalias (const char *name)
> -{
> -  static char abuf[MAXDNAME];
> -  return context_hostalias_common
> -    (__resolv_context_get (), name, abuf, sizeof (abuf));
> -}
> -

OK. Remove.

>  #if SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_2)
>  # undef res_query
>  # undef res_querydomain
> 


-- 
Cheers,
Carlos.


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

* Re: [PATCH 26/30] resolv: Move res_send, res_nsend into libc
  2021-07-08 15:06 ` [PATCH 26/30] resolv: Move res_send, res_nsend into libc Florian Weimer via Libc-alpha
@ 2021-07-15  5:02   ` Carlos O'Donell via Libc-alpha
  0 siblings, 0 replies; 70+ messages in thread
From: Carlos O'Donell via Libc-alpha @ 2021-07-15  5:02 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 7/8/21 11:06 AM, Florian Weimer via Libc-alpha wrote:
> Switch to public symbols without __ prefix (due to improved
> namespace management).

Please post v3 without duplicate function definition of
__res_context_send in Versions.

Tested without regression on x86_64 and i686.

Tested-by: Carlos O'Donell <carlos@redhat.com>
 
> __res_send, __res_nsend were moved using the script (with
> --no-new-version).  res_send@@GLIBC_2.34 and res_nsend@@GLIBC_2.34
> were added using make update-all-abi.
> ---
>  resolv/Makefile                               |  4 +-
>  resolv/Versions                               |  9 +++-
>  resolv/res_enable_icmp.c                      |  4 +-
>  resolv/res_send.c                             | 54 +++++++++++--------
>  resolv/resolv-internal.h                      |  3 +-
>  resolv/resolv.h                               |  2 -
>  sysdeps/mach/hurd/i386/libc.abilist           |  4 ++
>  sysdeps/mach/hurd/i386/libresolv.abilist      |  2 -
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  4 ++
>  .../unix/sysv/linux/aarch64/libresolv.abilist |  2 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist    |  4 ++
>  .../unix/sysv/linux/alpha/libresolv.abilist   |  2 -
>  sysdeps/unix/sysv/linux/arc/libc.abilist      |  4 ++
>  sysdeps/unix/sysv/linux/arc/libresolv.abilist |  2 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  4 ++
>  .../unix/sysv/linux/arm/be/libresolv.abilist  |  2 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  4 ++
>  .../unix/sysv/linux/arm/le/libresolv.abilist  |  2 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist     |  4 ++
>  .../unix/sysv/linux/csky/libresolv.abilist    |  2 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist     |  4 ++
>  .../unix/sysv/linux/hppa/libresolv.abilist    |  2 -
>  sysdeps/unix/sysv/linux/i386/libc.abilist     |  4 ++
>  .../unix/sysv/linux/i386/libresolv.abilist    |  2 -
>  sysdeps/unix/sysv/linux/ia64/libc.abilist     |  4 ++
>  .../unix/sysv/linux/ia64/libresolv.abilist    |  2 -
>  .../sysv/linux/m68k/coldfire/libc.abilist     |  4 ++
>  .../linux/m68k/coldfire/libresolv.abilist     |  2 -
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  4 ++
>  .../sysv/linux/m68k/m680x0/libresolv.abilist  |  2 -
>  .../sysv/linux/microblaze/be/libc.abilist     |  4 ++
>  .../linux/microblaze/be/libresolv.abilist     |  2 -
>  .../sysv/linux/microblaze/le/libc.abilist     |  4 ++
>  .../linux/microblaze/le/libresolv.abilist     |  2 -
>  .../sysv/linux/mips/mips32/fpu/libc.abilist   |  4 ++
>  .../sysv/linux/mips/mips32/libresolv.abilist  |  2 -
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist |  4 ++
>  .../sysv/linux/mips/mips64/n32/libc.abilist   |  4 ++
>  .../linux/mips/mips64/n32/libresolv.abilist   |  2 -
>  .../sysv/linux/mips/mips64/n64/libc.abilist   |  4 ++
>  .../linux/mips/mips64/n64/libresolv.abilist   |  2 -
>  sysdeps/unix/sysv/linux/nios2/libc.abilist    |  4 ++
>  .../unix/sysv/linux/nios2/libresolv.abilist   |  2 -
>  .../linux/powerpc/powerpc32/fpu/libc.abilist  |  4 ++
>  .../linux/powerpc/powerpc32/libresolv.abilist |  2 -
>  .../powerpc/powerpc32/nofpu/libc.abilist      |  4 ++
>  .../linux/powerpc/powerpc64/be/libc.abilist   |  4 ++
>  .../powerpc/powerpc64/be/libresolv.abilist    |  2 -
>  .../linux/powerpc/powerpc64/le/libc.abilist   |  4 ++
>  .../powerpc/powerpc64/le/libresolv.abilist    |  2 -
>  .../unix/sysv/linux/riscv/rv32/libc.abilist   |  4 ++
>  .../sysv/linux/riscv/rv32/libresolv.abilist   |  2 -
>  .../unix/sysv/linux/riscv/rv64/libc.abilist   |  4 ++
>  .../sysv/linux/riscv/rv64/libresolv.abilist   |  2 -
>  .../unix/sysv/linux/s390/s390-32/libc.abilist |  4 ++
>  .../sysv/linux/s390/s390-32/libresolv.abilist |  2 -
>  .../unix/sysv/linux/s390/s390-64/libc.abilist |  4 ++
>  .../sysv/linux/s390/s390-64/libresolv.abilist |  2 -
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  4 ++
>  .../unix/sysv/linux/sh/be/libresolv.abilist   |  2 -
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  4 ++
>  .../unix/sysv/linux/sh/le/libresolv.abilist   |  2 -
>  .../sysv/linux/sparc/sparc32/libc.abilist     |  4 ++
>  .../linux/sparc/sparc32/libresolv.abilist     |  2 -
>  .../sysv/linux/sparc/sparc64/libc.abilist     |  4 ++
>  .../linux/sparc/sparc64/libresolv.abilist     |  2 -
>  .../unix/sysv/linux/x86_64/64/libc.abilist    |  4 ++
>  .../sysv/linux/x86_64/64/libresolv.abilist    |  2 -
>  .../unix/sysv/linux/x86_64/x32/libc.abilist   |  4 ++
>  .../sysv/linux/x86_64/x32/libresolv.abilist   |  2 -
>  70 files changed, 178 insertions(+), 92 deletions(-)
> 
> diff --git a/resolv/Makefile b/resolv/Makefile
> index 8c28afe5c4..e9689f7e2c 100644
> --- a/resolv/Makefile
> +++ b/resolv/Makefile
> @@ -49,6 +49,7 @@ routines := \
>    res-name-checking \
>    res-state \
>    res_context_hostalias \
> +  res_enable_icmp \

OK.

>    res_get_nsaddr \
>    res_hconf \
>    res_init \
> @@ -56,6 +57,7 @@ routines := \
>    res_nameinquery \
>    res_queriesmatch \
>    res_randomid \
> +  res_send \

OK.

>    resolv_conf \
>    resolv_context \
>    # routines
> @@ -151,12 +153,10 @@ libresolv-routines := \
>    res-putget \
>    res_data \
>    res_debug \> -  res_enable_icmp \

OK.

>    res_hostalias \
>    res_isourserver \
>    res_mkquery \
>    res_query \
> -  res_send \

OK.

>    resolv-deprecated \
>    # libresolv-routines
>  
> diff --git a/resolv/Versions b/resolv/Versions
> index b084660dde..21b7af73c5 100644
> --- a/resolv/Versions
> +++ b/resolv/Versions
> @@ -6,8 +6,10 @@ libc {
>      __res_dnok;
>      __res_hnok;
>      __res_mailok;
> +    __res_nsend;

OK.

>      __res_ownok;
>      __res_randomid;
> +    __res_send;

OK.

>      _res;
>      dn_expand;
>      h_errlist;
> @@ -21,6 +23,7 @@ libc {
>      __res_init;
>      __res_nclose;
>      __res_ninit;
> +    __res_nsend;

OK.

>      __res_state;
>      _res_hconf;
>    }
> @@ -61,7 +64,9 @@ libc {
>      res_dnok;
>      res_hnok;
>      res_mailok;
> +    res_nsend;

OK.

>      res_ownok;
> +    res_send;

OK.

>    }
>    GLIBC_PRIVATE {
>  %if !PTHREAD_IN_LIBC
> @@ -86,6 +91,8 @@ libc {
>      __ns_name_uncompress;
>      __ns_name_unpack;
>      __res_context_hostalias;
> +    __res_context_send;
> +    __res_context_send;

Typo. Duplicate function names.

>      __res_get_nsaddr;
>      __res_iclose;
>      __resolv_context_get;
> @@ -126,7 +133,6 @@ libresolv {
>      __res_isourserver;
>      __res_nameinquery;
>      __res_queriesmatch;
> -    __res_send;

OK.

>      __sym_ntop;
>      __sym_ntos;
>      __sym_ston;
> @@ -159,7 +165,6 @@ libresolv {
>      __res_nquery;
>      __res_nquerydomain;
>      __res_nsearch;
> -    __res_nsend;

OK.

>      __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));

OK.

>      case AF_INET6:
> -      return setsockopt (fd, SOL_IPV6, IPV6_RECVERR, &one, sizeof (one));
> +      return __setsockopt (fd, SOL_IPV6, IPV6_RECVERR, &one, sizeof (one));

OK.

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

OK.

>  
>  /* 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

OK.

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

OK.

>  
>  /* 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)) {

OK.

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

OK.

>  		  (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) {

OK.

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

OK.

> +	    != 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

OK.

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

OK.

>  			  (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) {

OK.

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

OK.

>  		    else
> -		      sr = send (pfd[0].fd, buf, buflen, MSG_NOSIGNAL);
> +		      sr = __send (pfd[0].fd, buf, buflen, MSG_NOSIGNAL);

OK.

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

OK.

>  			|| *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);

OK. Wow, lots of cleanup to use internal versions.

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

OK.

>  
>  /* Internal function similar to res_hostalias.  */
>  const char *__res_context_hostalias (struct resolv_context *,
> diff --git a/resolv/resolv.h b/resolv/resolv.h
> index d4e401b580..66944008fd 100644
> --- a/resolv/resolv.h
> +++ b/resolv/resolv.h
> @@ -172,7 +172,6 @@ __END_DECLS
>  #define res_query		__res_query
>  #define res_querydomain		__res_querydomain
>  #define res_search		__res_search
> -#define res_send		__res_send

OK.

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

OK.

>  #define res_queriesmatch	__res_queriesmatch
>  #define res_randomid		__res_randomid
>  #define sym_ntop		__sym_ntop
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index 0c2b5983a8..956c92182b 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -407,8 +407,10 @@ GLIBC_2.2.6 __res_init F
>  GLIBC_2.2.6 __res_mailok F
>  GLIBC_2.2.6 __res_nclose F
>  GLIBC_2.2.6 __res_ninit F
> +GLIBC_2.2.6 __res_nsend F
>  GLIBC_2.2.6 __res_ownok F
>  GLIBC_2.2.6 __res_randomid F
> +GLIBC_2.2.6 __res_send F
>  GLIBC_2.2.6 __res_state F
>  GLIBC_2.2.6 __rpc_thread_createerr F
>  GLIBC_2.2.6 __rpc_thread_svc_fdset F
> @@ -2261,7 +2263,9 @@ GLIBC_2.34 openpty F
>  GLIBC_2.34 res_dnok F
>  GLIBC_2.34 res_hnok F
>  GLIBC_2.34 res_mailok F
> +GLIBC_2.34 res_nsend F
>  GLIBC_2.34 res_ownok F
> +GLIBC_2.34 res_send F
>  GLIBC_2.34 shm_open F
>  GLIBC_2.34 shm_unlink F
>  GLIBC_2.34 timespec_getres F
> diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
> index 8166e6af58..2e772ae4e1 100644
> --- a/sysdeps/mach/hurd/i386/libresolv.abilist
> +++ b/sysdeps/mach/hurd/i386/libresolv.abilist
> @@ -30,12 +30,10 @@ GLIBC_2.2.6 __res_nmkquery F
>  GLIBC_2.2.6 __res_nquery F
>  GLIBC_2.2.6 __res_nquerydomain F
>  GLIBC_2.2.6 __res_nsearch F
> -GLIBC_2.2.6 __res_nsend F
>  GLIBC_2.2.6 __res_queriesmatch F
>  GLIBC_2.2.6 __res_query F
>  GLIBC_2.2.6 __res_querydomain F
>  GLIBC_2.2.6 __res_search F
> -GLIBC_2.2.6 __res_send F
>  GLIBC_2.2.6 __sym_ntop F
>  GLIBC_2.2.6 __sym_ntos F
>  GLIBC_2.2.6 __sym_ston F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 5e5318d5bf..21e768c926 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
> @@ -2563,7 +2565,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 f0c4713a07..b0a70022dd 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
> @@ -2656,7 +2658,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 4afdad0df4..66620e2f33 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
> @@ -2322,7 +2324,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 b791356b77..571dc4fcc0 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/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/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 76139809f0..fdeb5940bb 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -439,7 +439,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
> @@ -840,8 +842,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 6881141271..4c0e79592e 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
> @@ -2588,7 +2590,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 24f2fc27e1..813fb7cdda 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
> @@ -2535,7 +2537,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 fd14a8f78c..f09c7af651 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
> @@ -2719,7 +2721,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 fa5119af99..8fa8b1094e 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
> @@ -2494,7 +2496,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 c823a34421..dd5d58b386 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -443,7 +443,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
> @@ -829,8 +831,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 be9c2c184a..7feb85b86d 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
> @@ -2662,7 +2664,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 d7d28be015..469153ade3 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
> @@ -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/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 11eff3fab2..99d43fe009 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
> @@ -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/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 eda89ef343..96edb00531 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
> @@ -2627,7 +2629,9 @@ GLIBC_2.34 pthread_tryjoin_np F
>  GLIBC_2.34 res_dnok F
>  GLIBC_2.34 res_hnok F
>  GLIBC_2.34 res_mailok F
> +GLIBC_2.34 res_nsend F
>  GLIBC_2.34 res_ownok F
> +GLIBC_2.34 res_send F
>  GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
> diff --git a/sysdeps/unix/sysv/linux/mips/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 cbf9c259d5..bfb2cec7f6 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
> @@ -2625,7 +2627,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 43d62943b0..aad391e36c 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
> @@ -2633,7 +2635,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 56ac25092d..9bf9d868ce 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
> @@ -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/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 53fc8fecec..e6304726fd 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
> @@ -2678,7 +2680,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 4350d38067..3ade7dce04 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
> @@ -2689,7 +2691,9 @@ GLIBC_2.34 pthread_tryjoin_np F
>  GLIBC_2.34 res_dnok F
>  GLIBC_2.34 res_hnok F
>  GLIBC_2.34 res_mailok F
> +GLIBC_2.34 res_nsend F
>  GLIBC_2.34 res_ownok F
> +GLIBC_2.34 res_send F
>  GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
> diff --git a/sysdeps/unix/sysv/linux/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 572a55e0c0..3c68153771 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
> @@ -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/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 1b235baf00..0c8d700ed8 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
> @@ -2457,7 +2459,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 230c1af181..37c7b53452 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
> @@ -2759,7 +2761,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 72c91e4932..2f00ab943c 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
> @@ -2324,7 +2326,9 @@ GLIBC_2.34 pthread_tryjoin_np F
>  GLIBC_2.34 res_dnok F
>  GLIBC_2.34 res_hnok F
>  GLIBC_2.34 res_mailok F
> +GLIBC_2.34 res_nsend F
>  GLIBC_2.34 res_ownok F
> +GLIBC_2.34 res_send F
>  GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
>  GLIBC_2.34 sem_destroy F
> diff --git a/sysdeps/unix/sysv/linux/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 04db64bbe2..02e82a02c3 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
> @@ -2524,7 +2526,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 9430d6f772..dcb20fbe4f 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
> @@ -2687,7 +2689,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 3ea1627bae..2c12049d08 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
> @@ -2494,7 +2496,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 11cf290e0a..b11d407e33 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
> @@ -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/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 a9ea1c1793..5dc2d54de1 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
> @@ -2539,7 +2541,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 b98e9cb77c..96a26a42b9 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
> @@ -2682,7 +2684,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 f94e1b4b99..ed5c95f089 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
> @@ -2517,7 +2519,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 286b66f2eb..8d1eff33d9 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
> @@ -2472,7 +2474,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 a82a766ca6..d6855e3690 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
> @@ -2578,7 +2580,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.

-- 
Cheers,
Carlos.


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

* Re: [PATCH 27/30] resolv: Move res_mkquery, res_nmkquery into libc
  2021-07-08 15:06 ` [PATCH 27/30] resolv: Move res_mkquery, res_nmkquery " Florian Weimer via Libc-alpha
@ 2021-07-15  5:02   ` Carlos O'Donell via Libc-alpha
  0 siblings, 0 replies; 70+ messages in thread
From: Carlos O'Donell via Libc-alpha @ 2021-07-15  5:02 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 7/8/21 11:06 AM, Florian Weimer via Libc-alpha wrote:
> This switches to public symbols without __ prefixes, due to improved
> namespace management in glibc.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
 
> The symbols res_mkquery, __res_mkquery, __res_nmkquery were
> moved with the script (using --no-new-version).
> res_mkquery@@GLIBC_2.34, res_nmkquery@@GLIBC_2.34 were added using
> make update-all-abi.
> ---
>  resolv/Makefile                               |  2 +-
>  resolv/Versions                               | 10 ++--
>  resolv/res_mkquery.c                          | 48 +++++++++++--------
>  resolv/resolv-internal.h                      |  6 ++-
>  resolv/resolv.h                               |  2 -
>  sysdeps/mach/hurd/i386/libc.abilist           |  4 ++
>  sysdeps/mach/hurd/i386/libresolv.abilist      |  2 -
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  4 ++
>  .../unix/sysv/linux/aarch64/libresolv.abilist |  2 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist    |  5 ++
>  .../unix/sysv/linux/alpha/libresolv.abilist   |  3 --
>  sysdeps/unix/sysv/linux/arc/libc.abilist      |  4 ++
>  sysdeps/unix/sysv/linux/arc/libresolv.abilist |  2 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  4 ++
>  .../unix/sysv/linux/arm/be/libresolv.abilist  |  2 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  4 ++
>  .../unix/sysv/linux/arm/le/libresolv.abilist  |  2 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist     |  4 ++
>  .../unix/sysv/linux/csky/libresolv.abilist    |  2 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist     |  5 ++
>  .../unix/sysv/linux/hppa/libresolv.abilist    |  3 --
>  sysdeps/unix/sysv/linux/i386/libc.abilist     |  5 ++
>  .../unix/sysv/linux/i386/libresolv.abilist    |  3 --
>  sysdeps/unix/sysv/linux/ia64/libc.abilist     |  5 ++
>  .../unix/sysv/linux/ia64/libresolv.abilist    |  3 --
>  .../sysv/linux/m68k/coldfire/libc.abilist     |  4 ++
>  .../linux/m68k/coldfire/libresolv.abilist     |  2 -
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  5 ++
>  .../sysv/linux/m68k/m680x0/libresolv.abilist  |  3 --
>  .../sysv/linux/microblaze/be/libc.abilist     |  4 ++
>  .../linux/microblaze/be/libresolv.abilist     |  2 -
>  .../sysv/linux/microblaze/le/libc.abilist     |  4 ++
>  .../linux/microblaze/le/libresolv.abilist     |  2 -
>  .../sysv/linux/mips/mips32/fpu/libc.abilist   |  5 ++
>  .../sysv/linux/mips/mips32/libresolv.abilist  |  3 --
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist |  5 ++
>  .../sysv/linux/mips/mips64/n32/libc.abilist   |  5 ++
>  .../linux/mips/mips64/n32/libresolv.abilist   |  3 --
>  .../sysv/linux/mips/mips64/n64/libc.abilist   |  5 ++
>  .../linux/mips/mips64/n64/libresolv.abilist   |  3 --
>  sysdeps/unix/sysv/linux/nios2/libc.abilist    |  4 ++
>  .../unix/sysv/linux/nios2/libresolv.abilist   |  2 -
>  .../linux/powerpc/powerpc32/fpu/libc.abilist  |  5 ++
>  .../linux/powerpc/powerpc32/libresolv.abilist |  3 --
>  .../powerpc/powerpc32/nofpu/libc.abilist      |  5 ++
>  .../linux/powerpc/powerpc64/be/libc.abilist   |  4 ++
>  .../powerpc/powerpc64/be/libresolv.abilist    |  2 -
>  .../linux/powerpc/powerpc64/le/libc.abilist   |  4 ++
>  .../powerpc/powerpc64/le/libresolv.abilist    |  2 -
>  .../unix/sysv/linux/riscv/rv32/libc.abilist   |  4 ++
>  .../sysv/linux/riscv/rv32/libresolv.abilist   |  2 -
>  .../unix/sysv/linux/riscv/rv64/libc.abilist   |  4 ++
>  .../sysv/linux/riscv/rv64/libresolv.abilist   |  2 -
>  .../unix/sysv/linux/s390/s390-32/libc.abilist |  5 ++
>  .../sysv/linux/s390/s390-32/libresolv.abilist |  3 --
>  .../unix/sysv/linux/s390/s390-64/libc.abilist |  4 ++
>  .../sysv/linux/s390/s390-64/libresolv.abilist |  2 -
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  5 ++
>  .../unix/sysv/linux/sh/be/libresolv.abilist   |  3 --
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  5 ++
>  .../unix/sysv/linux/sh/le/libresolv.abilist   |  3 --
>  .../sysv/linux/sparc/sparc32/libc.abilist     |  5 ++
>  .../linux/sparc/sparc32/libresolv.abilist     |  3 --
>  .../sysv/linux/sparc/sparc64/libc.abilist     |  5 ++
>  .../linux/sparc/sparc64/libresolv.abilist     |  3 --
>  .../unix/sysv/linux/x86_64/64/libc.abilist    |  4 ++
>  .../sysv/linux/x86_64/64/libresolv.abilist    |  2 -
>  .../unix/sysv/linux/x86_64/x32/libc.abilist   |  4 ++
>  .../sysv/linux/x86_64/x32/libresolv.abilist   |  2 -
>  69 files changed, 188 insertions(+), 104 deletions(-)
> 
> diff --git a/resolv/Makefile b/resolv/Makefile
> index e9689f7e2c..31658202d3 100644
> --- a/resolv/Makefile
> +++ b/resolv/Makefile
> @@ -54,6 +54,7 @@ routines := \
>    res_hconf \
>    res_init \
>    res_libc \
> +  res_mkquery \

OK.

>    res_nameinquery \
>    res_queriesmatch \
>    res_randomid \
> @@ -155,7 +156,6 @@ libresolv-routines := \
>    res_debug \
>    res_hostalias \
>    res_isourserver \
> -  res_mkquery \

OK.

>    res_query \
>    resolv-deprecated \
>    # libresolv-routines
> diff --git a/resolv/Versions b/resolv/Versions
> index 21b7af73c5..fcaf9fada7 100644
> --- a/resolv/Versions
> +++ b/resolv/Versions
> @@ -17,12 +17,15 @@ libc {
>      herror;
>      hstrerror;
>      res_init;
> +    res_mkquery;

OK.

>    }
>    GLIBC_2.2 {
>      __dn_expand;
>      __res_init;
> +    __res_mkquery;
>      __res_nclose;
>      __res_ninit;
> +    __res_nmkquery;

OK.

>      __res_nsend;
>      __res_state;
>      _res_hconf;
> @@ -64,6 +67,8 @@ libc {
>      res_dnok;
>      res_hnok;
>      res_mailok;
> +    res_mkquery;
> +    res_nmkquery;

OK.

>      res_nsend;
>      res_ownok;
>      res_send;
> @@ -91,10 +96,12 @@ libc {
>      __ns_name_uncompress;
>      __ns_name_unpack;
>      __res_context_hostalias;
> +    __res_context_mkquery;
>      __res_context_send;
>      __res_context_send;
>      __res_get_nsaddr;
>      __res_iclose;
> +    __res_nopt;

OK.

>      __resolv_context_get;
>      __resolv_context_get_override;
>      __resolv_context_get_preinit;
> @@ -151,7 +158,6 @@ libresolv {
>      res_gethostbyaddr;
>      res_gethostbyname2;
>      res_gethostbyname;
> -    res_mkquery;

OK.

>      res_query;
>      res_querydomain;
>      res_search;
> @@ -160,8 +166,6 @@ libresolv {
>    }
>    GLIBC_2.2 {
>      __res_hostalias;
> -    __res_mkquery;
> -    __res_nmkquery;

OK.

>      __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);

OK.

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

OK.

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

OK.

>  
>  /* 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)

OK.

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

OK.

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

OK.

>  
>  /* 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)

OK.

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

OK.

>  
>  /* 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)

OK.

>  
>  /* Convert from presentation format (which usually means ASCII
>     printable) to network format (which is usually some kind of binary
> diff --git a/resolv/resolv.h b/resolv/resolv.h
> index 66944008fd..e50b8d08d7 100644
> --- a/resolv/resolv.h
> +++ b/resolv/resolv.h
> @@ -168,7 +168,6 @@ __END_DECLS
>  #define res_close		__res_close
>  #define res_init		__res_init
>  #define res_isourserver		__res_isourserver
> -#define res_mkquery		__res_mkquery

OK.

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

OK.

>  #define res_nquery		__res_nquery
>  #define res_nquerydomain	__res_nquerydomain
>  #define res_nsearch		__res_nsearch
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index 956c92182b..092f1b8ffb 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -405,8 +405,10 @@ GLIBC_2.2.6 __res_dnok F
>  GLIBC_2.2.6 __res_hnok F
>  GLIBC_2.2.6 __res_init F
>  GLIBC_2.2.6 __res_mailok F
> +GLIBC_2.2.6 __res_mkquery F
>  GLIBC_2.2.6 __res_nclose F
>  GLIBC_2.2.6 __res_ninit F
> +GLIBC_2.2.6 __res_nmkquery F
>  GLIBC_2.2.6 __res_nsend F
>  GLIBC_2.2.6 __res_ownok F
>  GLIBC_2.2.6 __res_randomid F
> @@ -2263,6 +2265,8 @@ GLIBC_2.34 openpty F
>  GLIBC_2.34 res_dnok F
>  GLIBC_2.34 res_hnok F
>  GLIBC_2.34 res_mailok F
> +GLIBC_2.34 res_mkquery F
> +GLIBC_2.34 res_nmkquery F
>  GLIBC_2.34 res_nsend F
>  GLIBC_2.34 res_ownok F
>  GLIBC_2.34 res_send F
> diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
> index 2e772ae4e1..3ef54cc28e 100644
> --- a/sysdeps/mach/hurd/i386/libresolv.abilist
> +++ b/sysdeps/mach/hurd/i386/libresolv.abilist
> @@ -24,9 +24,7 @@ GLIBC_2.2.6 __putshort F
>  GLIBC_2.2.6 __res_close F
>  GLIBC_2.2.6 __res_hostalias F
>  GLIBC_2.2.6 __res_isourserver F
> -GLIBC_2.2.6 __res_mkquery F
>  GLIBC_2.2.6 __res_nameinquery F
> -GLIBC_2.2.6 __res_nmkquery F
>  GLIBC_2.2.6 __res_nquery F
>  GLIBC_2.2.6 __res_nquerydomain F
>  GLIBC_2.2.6 __res_nsearch F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 21e768c926..7e1529bd90 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
> @@ -2565,6 +2567,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 b0a70022dd..89ee2ed645 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
> @@ -2658,6 +2661,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 66620e2f33..cf320c4bce 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
> @@ -2324,6 +2326,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 571dc4fcc0..7b395d2683 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/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/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 fdeb5940bb..9a2aefac45 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -439,6 +439,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
> @@ -840,8 +842,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 4c0e79592e..eb8efa378b 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
> @@ -2590,6 +2592,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 813fb7cdda..4c3d7674ff 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
> @@ -2537,6 +2540,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 f09c7af651..9f44807e02 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
> @@ -2721,6 +2724,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 8fa8b1094e..63a3fa22ef 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
> @@ -2496,6 +2499,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 dd5d58b386..37bbdde23b 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -443,6 +443,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
> @@ -829,8 +831,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 7feb85b86d..bf0eb6e976 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
> @@ -2664,6 +2667,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 469153ade3..d5d5771708 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
> @@ -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/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 99d43fe009..2f05d61c21 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
> @@ -2638,6 +2640,8 @@ GLIBC_2.34 pthread_tryjoin_np F
>  GLIBC_2.34 res_dnok F
>  GLIBC_2.34 res_hnok F
>  GLIBC_2.34 res_mailok F
> +GLIBC_2.34 res_mkquery F
> +GLIBC_2.34 res_nmkquery F
>  GLIBC_2.34 res_nsend F
>  GLIBC_2.34 res_ownok F
>  GLIBC_2.34 res_send F
> diff --git a/sysdeps/unix/sysv/linux/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 96edb00531..8d62d76ca5 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
> @@ -2629,6 +2632,8 @@ GLIBC_2.34 pthread_tryjoin_np F
>  GLIBC_2.34 res_dnok F
>  GLIBC_2.34 res_hnok F
>  GLIBC_2.34 res_mailok F
> +GLIBC_2.34 res_mkquery F
> +GLIBC_2.34 res_nmkquery F
>  GLIBC_2.34 res_nsend F
>  GLIBC_2.34 res_ownok F
>  GLIBC_2.34 res_send F
> diff --git a/sysdeps/unix/sysv/linux/mips/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 bfb2cec7f6..68e086d203 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
> @@ -2627,6 +2630,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 aad391e36c..14c19658c6 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
> @@ -2635,6 +2638,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 9bf9d868ce..479115297c 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
> @@ -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/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 e6304726fd..b98437e5fc 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
> @@ -2680,6 +2682,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 3ade7dce04..6c311d2a5f 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
> @@ -2691,6 +2694,8 @@ GLIBC_2.34 pthread_tryjoin_np F
>  GLIBC_2.34 res_dnok F
>  GLIBC_2.34 res_hnok F
>  GLIBC_2.34 res_mailok F
> +GLIBC_2.34 res_mkquery F
> +GLIBC_2.34 res_nmkquery F
>  GLIBC_2.34 res_nsend F
>  GLIBC_2.34 res_ownok F
>  GLIBC_2.34 res_send F
> diff --git a/sysdeps/unix/sysv/linux/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 3c68153771..c6d7f1cff4 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
> @@ -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/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 0c8d700ed8..f8e69c7fd3 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
> @@ -2459,6 +2461,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 37c7b53452..6b0a84c8f6 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
> @@ -2761,6 +2763,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 2f00ab943c..080d87a80b 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
> @@ -2326,6 +2328,8 @@ GLIBC_2.34 pthread_tryjoin_np F
>  GLIBC_2.34 res_dnok F
>  GLIBC_2.34 res_hnok F
>  GLIBC_2.34 res_mailok F
> +GLIBC_2.34 res_mkquery F
> +GLIBC_2.34 res_nmkquery F
>  GLIBC_2.34 res_nsend F
>  GLIBC_2.34 res_ownok F
>  GLIBC_2.34 res_send F
> diff --git a/sysdeps/unix/sysv/linux/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 02e82a02c3..53b33d1504 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
> @@ -2526,6 +2528,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 dcb20fbe4f..d1d59f0021 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
> @@ -2689,6 +2692,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 2c12049d08..ca3e7ebc6d 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
> @@ -2496,6 +2498,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 b11d407e33..fcde356a18 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
> @@ -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/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 5dc2d54de1..18dffb1d62 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
> @@ -2541,6 +2544,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 96a26a42b9..61fd09d562 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
> @@ -2684,6 +2687,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 ed5c95f089..fa300e44d6 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
> @@ -2519,6 +2522,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 8d1eff33d9..3160273a6f 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
> @@ -2474,6 +2476,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 d6855e3690..886414793c 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
> @@ -2580,6 +2582,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
 
OK.

-- 
Cheers,
Carlos.


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

* Re: [PATCH 28/30] resolv: Move res_query functions into libc
  2021-07-08 15:07 ` [PATCH 28/30] resolv: Move res_query functions " Florian Weimer via Libc-alpha
@ 2021-07-15  5:02   ` Carlos O'Donell via Libc-alpha
  0 siblings, 0 replies; 70+ messages in thread
From: Carlos O'Donell via Libc-alpha @ 2021-07-15  5:02 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 7/8/21 11:07 AM, Florian Weimer via Libc-alpha wrote:
> This switches to public symbols without __ prefixes, due to improved
> namespace management in glibc.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
 
> The script was used with --no-new-version to move the symbols
> __res_nquery, __res_nquerydomain, __res_nsearch, __res_query,
> __res_querydomain, __res_search, res_query, res_querydomain,
> res_search.  The public symbols res_nquery, res_nquerydomain,
> res_nsearch, res_ownok, res_query, res_querydomain, res_search
> were added with make update-all-abi.
> ---
>  resolv/Makefile                               |  2 +-
>  resolv/Versions                               | 28 +++---
>  resolv/res_query.c                            | 88 ++++++++++++-------
>  resolv/resolv-internal.h                      |  4 +-
>  resolv/resolv.h                               |  6 --
>  sysdeps/mach/hurd/i386/libc.abilist           | 12 +++
>  sysdeps/mach/hurd/i386/libresolv.abilist      |  6 --
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  | 12 +++
>  .../unix/sysv/linux/aarch64/libresolv.abilist |  6 --
>  sysdeps/unix/sysv/linux/alpha/libc.abilist    | 15 ++++
>  .../unix/sysv/linux/alpha/libresolv.abilist   |  9 --
>  sysdeps/unix/sysv/linux/arc/libc.abilist      | 12 +++
>  sysdeps/unix/sysv/linux/arc/libresolv.abilist |  6 --
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist   | 12 +++
>  .../unix/sysv/linux/arm/be/libresolv.abilist  |  6 --
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   | 12 +++
>  .../unix/sysv/linux/arm/le/libresolv.abilist  |  6 --
>  sysdeps/unix/sysv/linux/csky/libc.abilist     | 12 +++
>  .../unix/sysv/linux/csky/libresolv.abilist    |  6 --
>  sysdeps/unix/sysv/linux/hppa/libc.abilist     | 15 ++++
>  .../unix/sysv/linux/hppa/libresolv.abilist    |  9 --
>  sysdeps/unix/sysv/linux/i386/libc.abilist     | 15 ++++
>  .../unix/sysv/linux/i386/libresolv.abilist    |  9 --
>  sysdeps/unix/sysv/linux/ia64/libc.abilist     | 15 ++++
>  .../unix/sysv/linux/ia64/libresolv.abilist    |  9 --
>  .../sysv/linux/m68k/coldfire/libc.abilist     | 12 +++
>  .../linux/m68k/coldfire/libresolv.abilist     |  6 --
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  | 15 ++++
>  .../sysv/linux/m68k/m680x0/libresolv.abilist  |  9 --
>  .../sysv/linux/microblaze/be/libc.abilist     | 12 +++
>  .../linux/microblaze/be/libresolv.abilist     |  6 --
>  .../sysv/linux/microblaze/le/libc.abilist     | 12 +++
>  .../linux/microblaze/le/libresolv.abilist     |  6 --
>  .../sysv/linux/mips/mips32/fpu/libc.abilist   | 15 ++++
>  .../sysv/linux/mips/mips32/libresolv.abilist  |  9 --
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist | 15 ++++
>  .../sysv/linux/mips/mips64/n32/libc.abilist   | 15 ++++
>  .../linux/mips/mips64/n32/libresolv.abilist   |  9 --
>  .../sysv/linux/mips/mips64/n64/libc.abilist   | 15 ++++
>  .../linux/mips/mips64/n64/libresolv.abilist   |  9 --
>  sysdeps/unix/sysv/linux/nios2/libc.abilist    | 12 +++
>  .../unix/sysv/linux/nios2/libresolv.abilist   |  6 --
>  .../linux/powerpc/powerpc32/fpu/libc.abilist  | 15 ++++
>  .../linux/powerpc/powerpc32/libresolv.abilist |  9 --
>  .../powerpc/powerpc32/nofpu/libc.abilist      | 15 ++++
>  .../linux/powerpc/powerpc64/be/libc.abilist   | 12 +++
>  .../powerpc/powerpc64/be/libresolv.abilist    |  6 --
>  .../linux/powerpc/powerpc64/le/libc.abilist   | 12 +++
>  .../powerpc/powerpc64/le/libresolv.abilist    |  6 --
>  .../unix/sysv/linux/riscv/rv32/libc.abilist   | 12 +++
>  .../sysv/linux/riscv/rv32/libresolv.abilist   |  6 --
>  .../unix/sysv/linux/riscv/rv64/libc.abilist   | 12 +++
>  .../sysv/linux/riscv/rv64/libresolv.abilist   |  6 --
>  .../unix/sysv/linux/s390/s390-32/libc.abilist | 15 ++++
>  .../sysv/linux/s390/s390-32/libresolv.abilist |  9 --
>  .../unix/sysv/linux/s390/s390-64/libc.abilist | 12 +++
>  .../sysv/linux/s390/s390-64/libresolv.abilist |  6 --
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    | 15 ++++
>  .../unix/sysv/linux/sh/be/libresolv.abilist   |  9 --
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    | 15 ++++
>  .../unix/sysv/linux/sh/le/libresolv.abilist   |  9 --
>  .../sysv/linux/sparc/sparc32/libc.abilist     | 15 ++++
>  .../linux/sparc/sparc32/libresolv.abilist     |  9 --
>  .../sysv/linux/sparc/sparc64/libc.abilist     | 15 ++++
>  .../linux/sparc/sparc64/libresolv.abilist     |  9 --
>  .../unix/sysv/linux/x86_64/64/libc.abilist    | 12 +++
>  .../sysv/linux/x86_64/64/libresolv.abilist    |  6 --
>  .../unix/sysv/linux/x86_64/x32/libc.abilist   | 12 +++
>  .../sysv/linux/x86_64/x32/libresolv.abilist   |  6 --
>  69 files changed, 520 insertions(+), 280 deletions(-)
> 
> diff --git a/resolv/Makefile b/resolv/Makefile
> index 31658202d3..4ba58dfa96 100644
> --- a/resolv/Makefile
> +++ b/resolv/Makefile
> @@ -57,6 +57,7 @@ routines := \
>    res_mkquery \
>    res_nameinquery \
>    res_queriesmatch \
> +  res_query \

OK.

>    res_randomid \
>    res_send \
>    resolv_conf \
> @@ -156,7 +157,6 @@ libresolv-routines := \
>    res_debug \
>    res_hostalias \
>    res_isourserver \
> -  res_query \

OK.

>    resolv-deprecated \
>    # libresolv-routines
>  
> diff --git a/resolv/Versions b/resolv/Versions
> index fcaf9fada7..f8b7700a1e 100644
> --- a/resolv/Versions
> +++ b/resolv/Versions
> @@ -18,6 +18,9 @@ libc {
>      hstrerror;
>      res_init;
>      res_mkquery;
> +    res_query;
> +    res_querydomain;
> +    res_search;

OK.

>    }
>    GLIBC_2.2 {
>      __dn_expand;
> @@ -26,7 +29,13 @@ libc {
>      __res_nclose;
>      __res_ninit;
>      __res_nmkquery;
> +    __res_nquery;
> +    __res_nquerydomain;
> +    __res_nsearch;

OK.

>      __res_nsend;
> +    __res_query;
> +    __res_querydomain;
> +    __res_search;

OK.

>      __res_state;
>      _res_hconf;
>    }
> @@ -69,8 +78,14 @@ libc {
>      res_mailok;
>      res_mkquery;
>      res_nmkquery;
> +    res_nquery;
> +    res_nquerydomain;
> +    res_nsearch;

OK.

>      res_nsend;
>      res_ownok;
> +    res_query;
> +    res_querydomain;
> +    res_search;

OK.

>      res_send;
>    }
>    GLIBC_PRIVATE {
> @@ -97,6 +112,8 @@ libc {
>      __ns_name_unpack;
>      __res_context_hostalias;
>      __res_context_mkquery;
> +    __res_context_query;
> +    __res_context_search;

OK.

>      __res_context_send;
>      __res_context_send;

Note: Duplicate here from previous patch.

>      __res_get_nsaddr;
> @@ -158,20 +175,11 @@ libresolv {
>      res_gethostbyaddr;
>      res_gethostbyname2;
>      res_gethostbyname;
> -    res_query;
> -    res_querydomain;
> -    res_search;

OK.

>      res_send_setqhook;
>      res_send_setrhook;
>    }
>    GLIBC_2.2 {
>      __res_hostalias;
> -    __res_nquery;
> -    __res_nquerydomain;
> -    __res_nsearch;
> -    __res_query;
> -    __res_querydomain;
> -    __res_search;

OK.

>    }
>    GLIBC_2.3.2 {
>      __p_rcode;
> @@ -202,8 +210,6 @@ libresolv {
>    GLIBC_PRIVATE {
>      __ns_get16;
>      __ns_get32;
> -    __res_context_query;
> -    __res_context_search;

OK.

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

OK. 1/2

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

OK.

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

OK.

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

OK.

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

OK.

>  
>  /* 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)

OK. 2/2

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

OK.

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

OK.

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

OK.

>  {
>    return context_search_common
>      (__resolv_context_get (), name, class, type, answer, anslen);
>  }

OK.

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

OK.

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

OK.

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

OK.

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

OK.

>  {
>    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);

OK. Good cleanup.

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

OK 1/2

>  
>  /* 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)

OK. 2/2

>  
>  /* Internal function used to implement the query and search
>     functions.  */
> diff --git a/resolv/resolv.h b/resolv/resolv.h
> index e50b8d08d7..f2a8641e82 100644
> --- a/resolv/resolv.h
> +++ b/resolv/resolv.h
> @@ -168,9 +168,6 @@ __END_DECLS
>  #define res_close		__res_close
>  #define res_init		__res_init
>  #define res_isourserver		__res_isourserver
> -#define res_query		__res_query
> -#define res_querydomain		__res_querydomain
> -#define res_search		__res_search

OK.

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

OK.

>  #define res_queriesmatch	__res_queriesmatch
>  #define res_randomid		__res_randomid
>  #define sym_ntop		__sym_ntop
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index 092f1b8ffb..db955bd396 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -409,9 +409,15 @@ GLIBC_2.2.6 __res_mkquery F
>  GLIBC_2.2.6 __res_nclose F
>  GLIBC_2.2.6 __res_ninit F
>  GLIBC_2.2.6 __res_nmkquery F
> +GLIBC_2.2.6 __res_nquery F
> +GLIBC_2.2.6 __res_nquerydomain F
> +GLIBC_2.2.6 __res_nsearch F
>  GLIBC_2.2.6 __res_nsend F
>  GLIBC_2.2.6 __res_ownok F
> +GLIBC_2.2.6 __res_query F
> +GLIBC_2.2.6 __res_querydomain F
>  GLIBC_2.2.6 __res_randomid F
> +GLIBC_2.2.6 __res_search F

OK. All 6 moved functions added.

>  GLIBC_2.2.6 __res_send F
>  GLIBC_2.2.6 __res_state F
>  GLIBC_2.2.6 __rpc_thread_createerr F
> @@ -2267,8 +2273,14 @@ GLIBC_2.34 res_hnok F
>  GLIBC_2.34 res_mailok F
>  GLIBC_2.34 res_mkquery F
>  GLIBC_2.34 res_nmkquery F
> +GLIBC_2.34 res_nquery F
> +GLIBC_2.34 res_nquerydomain F
> +GLIBC_2.34 res_nsearch F
>  GLIBC_2.34 res_nsend F
>  GLIBC_2.34 res_ownok F
> +GLIBC_2.34 res_query F
> +GLIBC_2.34 res_querydomain F
> +GLIBC_2.34 res_search F
>  GLIBC_2.34 res_send F
>  GLIBC_2.34 shm_open F
>  GLIBC_2.34 shm_unlink F
> diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
> index 3ef54cc28e..8b633891cf 100644
> --- a/sysdeps/mach/hurd/i386/libresolv.abilist
> +++ b/sysdeps/mach/hurd/i386/libresolv.abilist
> @@ -25,13 +25,7 @@ GLIBC_2.2.6 __res_close F
>  GLIBC_2.2.6 __res_hostalias F
>  GLIBC_2.2.6 __res_isourserver F
>  GLIBC_2.2.6 __res_nameinquery F
> -GLIBC_2.2.6 __res_nquery F
> -GLIBC_2.2.6 __res_nquerydomain F
> -GLIBC_2.2.6 __res_nsearch F
>  GLIBC_2.2.6 __res_queriesmatch F
> -GLIBC_2.2.6 __res_query F
> -GLIBC_2.2.6 __res_querydomain F
> -GLIBC_2.2.6 __res_search F
>  GLIBC_2.2.6 __sym_ntop F
>  GLIBC_2.2.6 __sym_ntos F
>  GLIBC_2.2.6 __sym_ston F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 7e1529bd90..afa6a526ac 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
> @@ -2569,8 +2575,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 89ee2ed645..66688182b1 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
> @@ -2663,8 +2672,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 cf320c4bce..cd935c4015 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
> @@ -2328,8 +2334,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 7b395d2683..e1026b6077 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/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/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 9a2aefac45..aa45c60686 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -441,8 +441,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
> @@ -846,9 +852,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 eb8efa378b..f385a7cb66 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
> @@ -2594,8 +2600,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 4c3d7674ff..6ed506e5ec 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
> @@ -2542,8 +2551,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 9f44807e02..8f28ecbb9c 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
> @@ -2726,8 +2735,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 63a3fa22ef..1acdafd19b 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
> @@ -2501,8 +2510,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 37bbdde23b..125f2cfbca 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -445,8 +445,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
> @@ -835,9 +841,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 bf0eb6e976..0e5d7c1b48 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
> @@ -2669,8 +2678,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 d5d5771708..c44b106449 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
> @@ -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/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 2f05d61c21..3c2edae799 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
> @@ -2642,8 +2648,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 8d62d76ca5..41d8b812c6 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
> @@ -2634,8 +2643,14 @@ GLIBC_2.34 res_hnok F
>  GLIBC_2.34 res_mailok F
>  GLIBC_2.34 res_mkquery F
>  GLIBC_2.34 res_nmkquery F
> +GLIBC_2.34 res_nquery F
> +GLIBC_2.34 res_nquerydomain F
> +GLIBC_2.34 res_nsearch F
>  GLIBC_2.34 res_nsend F
>  GLIBC_2.34 res_ownok F
> +GLIBC_2.34 res_query F
> +GLIBC_2.34 res_querydomain F
> +GLIBC_2.34 res_search F
>  GLIBC_2.34 res_send F
>  GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
> diff --git a/sysdeps/unix/sysv/linux/mips/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 68e086d203..875f68199a 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
> @@ -2632,8 +2641,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 14c19658c6..bca901db65 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
> @@ -2640,8 +2649,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 479115297c..29ddd75b77 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
> @@ -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/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 b98437e5fc..dfb14647d2 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
> @@ -2684,8 +2690,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 6c311d2a5f..930dccea8e 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
> @@ -2696,8 +2705,14 @@ GLIBC_2.34 res_hnok F
>  GLIBC_2.34 res_mailok F
>  GLIBC_2.34 res_mkquery F
>  GLIBC_2.34 res_nmkquery F
> +GLIBC_2.34 res_nquery F
> +GLIBC_2.34 res_nquerydomain F
> +GLIBC_2.34 res_nsearch F
>  GLIBC_2.34 res_nsend F
>  GLIBC_2.34 res_ownok F
> +GLIBC_2.34 res_query F
> +GLIBC_2.34 res_querydomain F
> +GLIBC_2.34 res_search F
>  GLIBC_2.34 res_send F
>  GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
> diff --git a/sysdeps/unix/sysv/linux/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 c6d7f1cff4..29bb3ddc35 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
> @@ -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/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index f8e69c7fd3..5d0b01d486 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
> @@ -2463,8 +2469,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 6b0a84c8f6..b82e3af690 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
> @@ -2765,8 +2771,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 080d87a80b..03a9a617b8 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
> @@ -2330,8 +2336,14 @@ GLIBC_2.34 res_hnok F
>  GLIBC_2.34 res_mailok F
>  GLIBC_2.34 res_mkquery F
>  GLIBC_2.34 res_nmkquery F
> +GLIBC_2.34 res_nquery F
> +GLIBC_2.34 res_nquerydomain F
> +GLIBC_2.34 res_nsearch F
>  GLIBC_2.34 res_nsend F
>  GLIBC_2.34 res_ownok F
> +GLIBC_2.34 res_query F
> +GLIBC_2.34 res_querydomain F
> +GLIBC_2.34 res_search F
>  GLIBC_2.34 res_send F
>  GLIBC_2.34 sem_clockwait F
>  GLIBC_2.34 sem_close F
> diff --git a/sysdeps/unix/sysv/linux/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 53b33d1504..42c0f86aaa 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
> @@ -2530,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/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 d1d59f0021..3f15b3edc5 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
> @@ -2694,8 +2703,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 ca3e7ebc6d..c24face132 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
> @@ -2500,8 +2506,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 fcde356a18..ddcf105058 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
> @@ -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/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 18dffb1d62..916630a82c 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
> @@ -2546,8 +2555,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 61fd09d562..c411653766 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
> @@ -2689,8 +2698,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 fa300e44d6..8421b56ac5 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
> @@ -2524,8 +2533,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 3160273a6f..04720305d4 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
> @@ -2478,8 +2484,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 886414793c..3981f2eb31 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
> @@ -2584,8 +2590,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
> 

OK.

-- 
Cheers,
Carlos.


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

* Re: [PATCH 29/30] resolv: Move nss_dns into libc
  2021-07-08 15:07 ` [PATCH 29/30] resolv: Move nss_dns " Florian Weimer via Libc-alpha
@ 2021-07-15  5:02   ` Carlos O'Donell via Libc-alpha
  0 siblings, 0 replies; 70+ messages in thread
From: Carlos O'Donell via Libc-alpha @ 2021-07-15  5:02 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 7/8/21 11:07 AM, Florian Weimer via Libc-alpha wrote:
> No abilist updates are needed because the symbols were GLIBC_PRIVATE.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

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

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

OK.

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

OK.

> +
> +#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 \

OK. Pull into libc.

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

OK. Remove libnss_dns-routines.

>  ifeq ($(run-built-tests),yes)
>  ifneq (no,$(PERL))
>  tests-special += $(objpfx)mtrace-tst-leaks.out $(objpfx)mtrace-tst-leaks2.out \
> diff --git a/resolv/Versions b/resolv/Versions
> index f8b7700a1e..0e878d1421 100644
> --- a/resolv/Versions
> +++ b/resolv/Versions
> @@ -124,6 +124,15 @@ libc {
>      __resolv_context_get_preinit;
>      __resolv_context_put;
>      __resp;
> +    _nss_dns_getcanonname_r;
> +    _nss_dns_gethostbyaddr2_r;
> +    _nss_dns_gethostbyaddr_r;
> +    _nss_dns_gethostbyname2_r;
> +    _nss_dns_gethostbyname3_r;
> +    _nss_dns_gethostbyname4_r;
> +    _nss_dns_gethostbyname_r;
> +    _nss_dns_getnetbyaddr_r;
> +    _nss_dns_getnetbyname_r;

OK. New functions.

>    }
>  }
>  
> @@ -215,15 +224,9 @@ libresolv {
>  
>  libnss_dns {
>    GLIBC_PRIVATE {
> -    _nss_dns_getcanonname_r;
> -    _nss_dns_gethostbyaddr2_r;
> -    _nss_dns_gethostbyaddr_r;
> -    _nss_dns_gethostbyname2_r;
> -    _nss_dns_gethostbyname3_r;
> -    _nss_dns_gethostbyname4_r;
> -    _nss_dns_gethostbyname_r;
> -    _nss_dns_getnetbyaddr_r;
> -    _nss_dns_getnetbyname_r;

OK.

> +    # Keep a version node (with a synthesized local: * directive) so that
> +    # __bss_* symbols are hidden on targets that need it.
> +    __libnss_dns_version_placeholder;

OK.

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

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

OK.

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

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

OK.

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

OK.

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

OK.

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

OK.

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

OK.

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

OK.

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

OK.

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

OK.

>        break;
>      case T_PTR:
> -      name_ok = res_dnok;
> +      name_ok = __libc_res_dnok;

OK.

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

OK.

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

OK.

>  	    {
>  	      ++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))

OK.

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

OK.

>  	    {
>  	      ++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))

OK.

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

OK.

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

OK.

>  	{
>  	  ++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))

OK.

>  	    {
>  	      ++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>

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

OK.

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

OK.

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

OK.

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

OK.

>  	    {
>  	      /* 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"))

OK.

>  		      {
>  			result->n_net = val;
>  			return NSS_STATUS_SUCCESS;
> 


-- 
Cheers,
Carlos.


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

* Re: [PATCH 30/30] nss: Directly load nss_dns, without going through dlsym/dlopen
  2021-07-08 15:07 ` [PATCH 30/30] nss: Directly load nss_dns, without going through dlsym/dlopen Florian Weimer via Libc-alpha
  2021-07-08 15:42   ` Florian Weimer via Libc-alpha
@ 2021-07-15  5:02   ` Carlos O'Donell via Libc-alpha
  2021-07-15  7:09     ` Florian Weimer via Libc-alpha
  1 sibling, 1 reply; 70+ messages in thread
From: Carlos O'Donell via Libc-alpha @ 2021-07-15  5:02 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha

On 7/8/21 11:07 AM, Florian Weimer via Libc-alpha wrote:
> This partially fixes static-only NSS support (bug 27959): The dns
> module no longer needs dlopen.  Support for the files module remains
> to be added, and also support for disabling dlopen altogher.

Noted that files is already included and commit message is adjusted.

The design here looks good, we split out files and dns and handle
them as builtins with only a handful of functions to initialize
them without too much abstraction.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
 
> 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.
> ---
>  include/nss_dns.h          | 13 +++++----
>  nss/nss_files_functions.c  |  6 -----
>  nss/nss_module.c           | 55 +++++++++++++++++++++++++++++---------
>  nss/nss_module.h           | 10 +++++--
>  resolv/Makefile            |  1 +
>  resolv/nss_dns_functions.c | 40 +++++++++++++++++++++++++++
>  6 files changed, 99 insertions(+), 26 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)

OK.

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

OK. Sort.

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

OK.

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

OK. No more PTR_MANGLE handling required because we are not loaded.

>  }
> diff --git a/nss/nss_module.c b/nss/nss_module.c
> index 7b42c585a4..a4a66866fb 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>

OK.

>  #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,18 +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))
>  {
> -  if (is_nscd)
> -    {
> -      void (*cb) (size_t, struct traced_file *) = nscd_init_cb;
> -#  ifdef PTR_DEMANGLE
> -      PTR_DEMANGLE (cb);
> -#  endif
> -      _nss_files_init (cb);
> -    }
> -
>    /* Initialize the function pointers, following the double-checked
>       locking idiom.  */
>    __libc_lock_lock (nss_module_list_lock);
> @@ -130,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);
> @@ -143,12 +145,37 @@ 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)
> +{
> +  if (is_nscd)
> +    {
> +      void (*cb) (size_t, struct traced_file *) = nscd_init_cb;
> +#  ifdef PTR_DEMANGLE
> +      PTR_DEMANGLE (cb);
> +#  endif
> +      _nss_files_init (cb);
> +    }
> +  return module_load_builtin (module, __nss_files_functions);
> +}

OK.

> +
> +/* 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);
> +}

OK.

> +
> +
>  /* 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);

OK. Handle specifically.

>  
>    void *handle;
>    {
> @@ -396,7 +423,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)

OK.

>          __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 *))
> +  };

OK.

> +
>  /* 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];

OK.

>  
>  /* 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 \

OK.

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

OK.

> +   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));

OK.

> +}
> 


-- 
Cheers,
Carlos.


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

* Re: [PATCH 07/30] resolv: Move ns_name_skip to its own file and into libc
  2021-07-15  5:00   ` Carlos O'Donell via Libc-alpha
@ 2021-07-15  6:53     ` Florian Weimer via Libc-alpha
  0 siblings, 0 replies; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  6:53 UTC (permalink / raw)
  To: Carlos O'Donell; +Cc: libc-alpha

* Carlos O'Donell:

> OK. This is different from the original code in that this new refactored
> code will advance indefinately if n continues to be non-zero. The old code
> terminated the while loop with 'cp >= eom' and that would happen as cp
> was advanced by the case statements. Every valid message should have
> ended before or at eom, so one can't say this change is wrong. The old
> code would have exited the while loop after the first advance of cp
> at or past eom. If we stopped at eom but *cp contained a non-zero value
> then we should technically have kept processing, but we didn't, and
> didn't return an error (EMSGSIZE). Therefore I think this change is more
> accurate in that it catches this corner case.

Uh-oh, I think you have just caught a security vulnerability.

This needs to be fixed, I will repost.

Thanks,
Florian


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

* Re: [PATCH 30/30] nss: Directly load nss_dns, without going through dlsym/dlopen
  2021-07-15  5:02   ` Carlos O'Donell via Libc-alpha
@ 2021-07-15  7:09     ` Florian Weimer via Libc-alpha
  2021-07-15 12:21       ` Carlos O'Donell via Libc-alpha
  0 siblings, 1 reply; 70+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-07-15  7:09 UTC (permalink / raw)
  To: Carlos O'Donell; +Cc: libc-alpha

* Carlos O'Donell:

>> 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
>
> OK. No more PTR_MANGLE handling required because we are not loaded.

Acutually the PTR_MANGLE is moved into the caller because it is common
between nss_dns and nss_files.

Thanks,
Florian


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

* Re: [PATCH 30/30] nss: Directly load nss_dns, without going through dlsym/dlopen
  2021-07-15  7:09     ` Florian Weimer via Libc-alpha
@ 2021-07-15 12:21       ` Carlos O'Donell via Libc-alpha
  0 siblings, 0 replies; 70+ messages in thread
From: Carlos O'Donell via Libc-alpha @ 2021-07-15 12:21 UTC (permalink / raw)
  To: Florian Weimer; +Cc: libc-alpha

On 7/15/21 3:09 AM, Florian Weimer wrote:
> * Carlos O'Donell:
> 
>>> 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
>>
>> OK. No more PTR_MANGLE handling required because we are not loaded.
> 
> Acutually the PTR_MANGLE is moved into the caller because it is common
> between nss_dns and nss_files.

Agreed, I noticed the refactoring later, but didn't cleanup my comment.

-- 
Cheers,
Carlos.


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

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

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