[PATCH 26/30] resolv: Move res_send, res_nsend into libc

Carlos O'Donell carlos@redhat.com
Thu Jul 15 05:02:23 GMT 2021


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.



More information about the Libc-alpha mailing list