[06/30] resolv: Move ns_name_unpack to its own file and into libc

Message ID 4e964f8a017385676d07b8c933f3068c09578cdc.1625755445.git.fweimer@redhat.com
State Committed
Headers
Series nss_dns move into libc |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent

Commit Message

Florian Weimer July 8, 2021, 3 p.m. UTC
  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
  

Comments

Carlos O'Donell July 15, 2021, 5 a.m. UTC | #1
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.
  

Patch

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