[09/30] resolv: Move ns_name_pton into its own file and into libc

Message ID 91fb8df6edc74bfa72cc8ac2077486ee803ef0b9.1625755445.git.fweimer@redhat.com
State Superseded
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:01 p.m. UTC
  And reformat to GNU style, and eliminate the digits variable.

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

Comments

Carlos O'Donell July 15, 2021, 5 a.m. UTC | #1
On 7/8/21 11:01 AM, Florian Weimer via Libc-alpha wrote:
> And reformat to GNU style, and eliminate the digits variable.

OK for glibc 2.34.

Tested without regression on x86_64 and i686.

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

OK.

>  libresolv_hidden_proto (ns_name_pack)
>  libresolv_hidden_proto (ns_name_compress)
>  libresolv_hidden_proto (ns_sprintrr)
> @@ -77,6 +76,8 @@ libresolv_hidden_proto (ns_format_ttl)
>  
>  extern __typeof (ns_name_ntop) __ns_name_ntop;
>  libc_hidden_proto (__ns_name_ntop)
> +extern __typeof (ns_name_pton) __ns_name_pton;
> +libc_hidden_proto (__ns_name_pton)

OK.

>  extern __typeof (ns_name_skip) __ns_name_skip;
>  libc_hidden_proto (__ns_name_skip)
>  extern __typeof (ns_name_uncompress) __ns_name_uncompress;
> diff --git a/resolv/Makefile b/resolv/Makefile
> index 3145ddebb7..7839e1fb3c 100644
> --- a/resolv/Makefile
> +++ b/resolv/Makefile
> @@ -33,6 +33,7 @@ routines := \
>    inet_ntop \
>    inet_pton \
>    ns_name_ntop \
> +  ns_name_pton \

OK.

>    ns_name_skip \
>    ns_name_uncompress \
>    ns_name_unpack \
> diff --git a/resolv/Versions b/resolv/Versions
> index 9e8762f984..770a2b8d6b 100644
> --- a/resolv/Versions
> +++ b/resolv/Versions
> @@ -26,6 +26,7 @@ libc {
>    }
>    GLIBC_2.9 {
>      ns_name_ntop;
> +    ns_name_pton;

OK.

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

OK.

>      ns_name_skip;
>      ns_name_uncompress;
>      ns_name_unpack;
> @@ -50,6 +52,7 @@ libc {
>      __inet_aton_exact;
>      __inet_pton_length;
>      __ns_name_ntop;
> +    __ns_name_pton;

OK.

>      __ns_name_skip;
>      __ns_name_uncompress;
>      __ns_name_unpack;
> diff --git a/resolv/ns_name.c b/resolv/ns_name.c
> index 35e25cbd83..9f7ca4a506 100644
> --- a/resolv/ns_name.c
> +++ b/resolv/ns_name.c
> @@ -29,10 +29,6 @@
>  
>  # define SPRINTF(x) ((size_t)sprintf x)
>  
> -/* Data. */
> -
> -static const char	digits[] = "0123456789";
> -

OK.

>  /* Forward. */
>  
>  static int		dn_find(const u_char *, const u_char *,
> @@ -42,127 +38,6 @@ static int		labellen(const u_char *);
>  
>  /* Public. */
>  
> -
> -/*%
> - *	Convert an ascii string into an encoded domain name as per RFC1035.
> - *
> - * return:
> - *
> - *\li	-1 if it fails
> - *\li	1 if string was fully qualified
> - *\li	0 is string was not fully qualified
> - *
> - * notes:
> - *\li	Enforces label and domain length limits.
> - */
> -
> -int
> -ns_name_pton(const char *src, u_char *dst, size_t dstsiz)
> -{
> -	u_char *label, *bp, *eom;
> -	int c, n, escaped;
> -	char *cp;
> -
> -	escaped = 0;
> -	bp = dst;
> -	eom = dst + dstsiz;
> -	label = bp++;
> -
> -	while ((c = *src++) != 0) {
> -		if (escaped) {
> -			if ((cp = strchr(digits, c)) != NULL) {
> -				n = (cp - digits) * 100;
> -				if ((c = *src++) == 0 ||
> -				    (cp = strchr(digits, c)) == NULL) {
> -					__set_errno (EMSGSIZE);
> -					return (-1);
> -				}
> -				n += (cp - digits) * 10;
> -				if ((c = *src++) == 0 ||
> -				    (cp = strchr(digits, c)) == NULL) {
> -					__set_errno (EMSGSIZE);
> -					return (-1);
> -				}
> -				n += (cp - digits);
> -				if (n > 255) {
> -					__set_errno (EMSGSIZE);
> -					return (-1);
> -				}
> -				c = n;
> -			}
> -			escaped = 0;
> -		} else if (c == '\\') {
> -			escaped = 1;
> -			continue;
> -		} else if (c == '.') {
> -			c = (bp - label - 1);
> -			if ((c & NS_CMPRSFLGS) != 0) {	/*%< Label too big. */
> -				__set_errno (EMSGSIZE);
> -				return (-1);
> -			}
> -			if (label >= eom) {
> -				__set_errno (EMSGSIZE);
> -				return (-1);
> -			}
> -			*label = c;
> -			/* Fully qualified ? */
> -			if (*src == '\0') {
> -				if (c != 0) {
> -					if (bp >= eom) {
> -						__set_errno (EMSGSIZE);
> -						return (-1);
> -					}
> -					*bp++ = '\0';
> -				}
> -				if ((bp - dst) > MAXCDNAME) {
> -					__set_errno (EMSGSIZE);
> -					return (-1);
> -				}
> -				return (1);
> -			}
> -			if (c == 0 || *src == '.') {
> -				__set_errno (EMSGSIZE);
> -				return (-1);
> -			}
> -			label = bp++;
> -			continue;
> -		}
> -		if (bp >= eom) {
> -			__set_errno (EMSGSIZE);
> -			return (-1);
> -		}
> -		*bp++ = (u_char)c;
> -	}
> -	if (escaped) {
> -		/* Trailing backslash.  */
> -		__set_errno (EMSGSIZE);
> -		return -1;
> -	}
> -	c = (bp - label - 1);
> -	if ((c & NS_CMPRSFLGS) != 0) {		/*%< Label too big. */
> -		__set_errno (EMSGSIZE);
> -		return (-1);
> -	}
> -	if (label >= eom) {
> -		__set_errno (EMSGSIZE);
> -		return (-1);
> -	}
> -	*label = c;
> -	if (c != 0) {
> -		if (bp >= eom) {
> -			__set_errno (EMSGSIZE);
> -			return (-1);
> -		}
> -		*bp++ = 0;
> -	}
> -	if ((bp - dst) > MAXCDNAME) {	/*%< src too big */
> -		__set_errno (EMSGSIZE);
> -		return (-1);
> -	}
> -	return (0);
> -}
> -libresolv_hidden_def (ns_name_pton)
> -

OK.

>  /*%
>   *	Convert a network strings labels into all lowercase.
>   *
> diff --git a/resolv/ns_name_pton.c b/resolv/ns_name_pton.c
> new file mode 100644
> index 0000000000..16f8ec8303
> --- /dev/null
> +++ b/resolv/ns_name_pton.c
> @@ -0,0 +1,157 @@
> +/* Convert a DNS domain name from presentation to wire format.

OK.

> + * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
> + * Copyright (c) 1996,1999 by Internet Software Consortium.
> + *
> + * Permission to use, copy, modify, and distribute this software for any
> + * purpose with or without fee is hereby granted, provided that the above
> + * copyright notice and this permission notice appear in all copies.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
> + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
> + * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
> + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
> + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
> + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
> + * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
> + */
> +
> +#include <arpa/nameser.h>
> +#include <errno.h>
> +#include <shlib-compat.h>
> +
> +/* Converts an ASCII string into an encoded domain name as per
> +   RFC1035.  Returns -1 if it fails, 1 if string was fully qualified,
> +   0 is string was not fully qualified.  Enforces label and domain
> +   length limits.  */

OK.

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

OK. Dropped char *cp.

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

OK.

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

OK.

> +        {

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

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

OK. Convert strchr to check for c in range.

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

OK. Convert strchr to check for c in range.

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

OK.

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


OK.

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

OK.

> +          /* Fully qualified ? */
> +          if (*src == '\0')
> +            {
> +              if (c != 0)
> +                {
> +                  if (bp >= eom)
> +                    {
> +                      __set_errno (EMSGSIZE);
> +                      return -1;
> +                    }
> +                  *bp++ = '\0';
> +                }
> +              if ((bp - dst) > MAXCDNAME)
> +                {
> +                  __set_errno (EMSGSIZE);
> +                  return -1;
> +                }
> +              return 1;

OK.

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

OK.

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

OK.

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

OK.

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

OK.

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

OK.

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

OK.

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

OK.

> +  return 0;

OK.

> +}
> +versioned_symbol (libc, ___ns_name_pton, ns_name_pton, GLIBC_2_34);
> +versioned_symbol (libc, ___ns_name_pton, __ns_name_pton, GLIBC_PRIVATE);
> +libc_hidden_ver (___ns_name_pton, __ns_name_pton)
> +
> +#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_9, GLIBC_2_34)
> +compat_symbol (libresolv, ___ns_name_pton, ns_name_pton, GLIBC_2_9);
> +#endif
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index 970b28eac6..83b4e2a983 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -2241,6 +2241,7 @@ GLIBC_2.34 login_tty F
>  GLIBC_2.34 logout F
>  GLIBC_2.34 logwtmp F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2365,6 +2366,7 @@ GLIBC_2.8 __vdprintf_chk F
>  GLIBC_2.8 qsort_r F
>  GLIBC_2.9 dup3 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist
> index ca2c547a81..1e75aaa6d7 100644
> --- a/sysdeps/mach/hurd/i386/libresolv.abilist
> +++ b/sysdeps/mach/hurd/i386/libresolv.abilist
> @@ -73,7 +73,6 @@ GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
> -GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index fa4652a7df..1b6e962fe3 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1405,6 +1405,7 @@ GLIBC_2.17 nl_langinfo_l F
>  GLIBC_2.17 nrand48 F
>  GLIBC_2.17 nrand48_r F
>  GLIBC_2.17 ns_name_ntop F
> +GLIBC_2.17 ns_name_pton F
>  GLIBC_2.17 ns_name_skip F
>  GLIBC_2.17 ns_name_uncompress F
>  GLIBC_2.17 ns_name_unpack F
> @@ -2455,6 +2456,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
> index f72b307b99..9594f13195 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
> @@ -68,7 +68,6 @@ GLIBC_2.17 ns_msg_getflag F
>  GLIBC_2.17 ns_name_compress F
>  GLIBC_2.17 ns_name_ntol F
>  GLIBC_2.17 ns_name_pack F
> -GLIBC_2.17 ns_name_pton F
>  GLIBC_2.17 ns_name_rollback F
>  GLIBC_2.17 ns_parse_ttl F
>  GLIBC_2.17 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 36a577adc7..ef88aa8e36 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2550,6 +2550,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2987,6 +2988,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
> index 250a73e764..b70366bcb8 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
> @@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
> -GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index afc1278d6c..94f9908585 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1339,6 +1339,7 @@ GLIBC_2.32 nl_langinfo_l F
>  GLIBC_2.32 nrand48 F
>  GLIBC_2.32 nrand48_r F
>  GLIBC_2.32 ns_name_ntop F
> +GLIBC_2.32 ns_name_pton F
>  GLIBC_2.32 ns_name_skip F
>  GLIBC_2.32 ns_name_uncompress F
>  GLIBC_2.32 ns_name_unpack F
> @@ -2214,6 +2215,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
> index ed1aa0e9ed..8a29165fa5 100644
> --- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist
> @@ -61,7 +61,6 @@ GLIBC_2.32 ns_msg_getflag F
>  GLIBC_2.32 ns_name_compress F
>  GLIBC_2.32 ns_name_ntol F
>  GLIBC_2.32 ns_name_pack F
> -GLIBC_2.32 ns_name_pton F
>  GLIBC_2.32 ns_name_rollback F
>  GLIBC_2.32 ns_parse_ttl F
>  GLIBC_2.32 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index a7d135a4c2..7157111655 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -344,6 +344,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2683,6 +2684,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
> index ec74162ea6..473a4e7a31 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
> @@ -73,7 +73,6 @@ GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
> -GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 7bced4102e..8f4e772481 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -341,6 +341,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2680,6 +2681,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
> index ec74162ea6..473a4e7a31 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
> @@ -73,7 +73,6 @@ GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
> -GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 40aca91bb5..f4368cc20b 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1396,6 +1396,7 @@ GLIBC_2.29 nl_langinfo_l F
>  GLIBC_2.29 nrand48 F
>  GLIBC_2.29 nrand48_r F
>  GLIBC_2.29 ns_name_ntop F
> +GLIBC_2.29 ns_name_pton F
>  GLIBC_2.29 ns_name_skip F
>  GLIBC_2.29 ns_name_uncompress F
>  GLIBC_2.29 ns_name_unpack F
> @@ -2480,6 +2481,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
> index b2a83ee8cc..a88aaf06f0 100644
> --- a/sysdeps/unix/sysv/linux/csky/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
> @@ -61,7 +61,6 @@ GLIBC_2.29 ns_msg_getflag F
>  GLIBC_2.29 ns_name_compress F
>  GLIBC_2.29 ns_name_ntol F
>  GLIBC_2.29 ns_name_pack F
> -GLIBC_2.29 ns_name_pton F
>  GLIBC_2.29 ns_name_rollback F
>  GLIBC_2.29 ns_parse_ttl F
>  GLIBC_2.29 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index cb19800bde..d5a661c221 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2429,6 +2429,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2697,6 +2698,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
> index 3df1ec5e98..2bf26b6a56 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
> @@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
> -GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index c2d526dd2c..49c26a44a6 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2613,6 +2613,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2881,6 +2882,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/i386/libresolv.abilist b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
> index 3df1ec5e98..2bf26b6a56 100644
> --- a/sysdeps/unix/sysv/linux/i386/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libresolv.abilist
> @@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
> -GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 1276461181..bee668d6f7 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2388,6 +2388,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2656,6 +2657,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
> index 250a73e764..b70366bcb8 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
> @@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
> -GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 59147109e2..45fca7a557 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -345,6 +345,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2662,6 +2663,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
> index ec74162ea6..473a4e7a31 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
> @@ -73,7 +73,6 @@ GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
> -GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 1750e4818e..a1b316aa1c 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2556,6 +2556,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2824,6 +2825,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
> index 3df1ec5e98..2bf26b6a56 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
> @@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
> -GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 5043550ec1..7a991b941a 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1407,6 +1407,7 @@ GLIBC_2.18 nl_langinfo_l F
>  GLIBC_2.18 nrand48 F
>  GLIBC_2.18 nrand48_r F
>  GLIBC_2.18 ns_name_ntop F
> +GLIBC_2.18 ns_name_pton F
>  GLIBC_2.18 ns_name_skip F
>  GLIBC_2.18 ns_name_uncompress F
>  GLIBC_2.18 ns_name_unpack F
> @@ -2531,6 +2532,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
> index cc9fea5f46..600e164088 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
> @@ -68,7 +68,6 @@ GLIBC_2.18 ns_msg_getflag F
>  GLIBC_2.18 ns_name_compress F
>  GLIBC_2.18 ns_name_ntol F
>  GLIBC_2.18 ns_name_pack F
> -GLIBC_2.18 ns_name_pton F
>  GLIBC_2.18 ns_name_rollback F
>  GLIBC_2.18 ns_parse_ttl F
>  GLIBC_2.18 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 18de19bead..a3fae78187 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1407,6 +1407,7 @@ GLIBC_2.18 nl_langinfo_l F
>  GLIBC_2.18 nrand48 F
>  GLIBC_2.18 nrand48_r F
>  GLIBC_2.18 ns_name_ntop F
> +GLIBC_2.18 ns_name_pton F
>  GLIBC_2.18 ns_name_skip F
>  GLIBC_2.18 ns_name_uncompress F
>  GLIBC_2.18 ns_name_unpack F
> @@ -2528,6 +2529,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
> index cc9fea5f46..600e164088 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
> @@ -68,7 +68,6 @@ GLIBC_2.18 ns_msg_getflag F
>  GLIBC_2.18 ns_name_compress F
>  GLIBC_2.18 ns_name_ntol F
>  GLIBC_2.18 ns_name_pack F
> -GLIBC_2.18 ns_name_pton F
>  GLIBC_2.18 ns_name_rollback F
>  GLIBC_2.18 ns_parse_ttl F
>  GLIBC_2.18 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 464d196ae9..84f9ab0af6 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2521,6 +2521,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2785,6 +2786,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
> index 3df1ec5e98..2bf26b6a56 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
> @@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
> -GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 87da9f5626..343c2925c3 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2519,6 +2519,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2783,6 +2784,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index f3f0a6dc37..cd01ef31f0 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2527,6 +2527,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2791,6 +2792,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
> index 3df1ec5e98..2bf26b6a56 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
> @@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
> -GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index dbbd9d782d..1722ba6722 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2439,6 +2439,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2703,6 +2704,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
> index 250a73e764..b70366bcb8 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
> @@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
> -GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index ea1d641c79..aaf4b25fe0 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1450,6 +1450,7 @@ GLIBC_2.21 nl_langinfo_l F
>  GLIBC_2.21 nrand48 F
>  GLIBC_2.21 nrand48_r F
>  GLIBC_2.21 ns_name_ntop F
> +GLIBC_2.21 ns_name_pton F
>  GLIBC_2.21 ns_name_skip F
>  GLIBC_2.21 ns_name_uncompress F
>  GLIBC_2.21 ns_name_unpack F
> @@ -2570,6 +2571,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
> index 111b8ac423..704da254df 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
> @@ -68,7 +68,6 @@ GLIBC_2.21 ns_msg_getflag F
>  GLIBC_2.21 ns_name_compress F
>  GLIBC_2.21 ns_name_ntol F
>  GLIBC_2.21 ns_name_pack F
> -GLIBC_2.21 ns_name_pton F
>  GLIBC_2.21 ns_name_rollback F
>  GLIBC_2.21 ns_parse_ttl F
>  GLIBC_2.21 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 45b46c3ee1..937d59759a 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2583,6 +2583,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -3022,6 +3023,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
> index 3df1ec5e98..2bf26b6a56 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
> @@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
> -GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index a252c6f7b2..186c59d401 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2616,6 +2616,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -3067,6 +3068,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 8e682bdb78..c9ffbc9455 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -2352,6 +2352,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2791,6 +2792,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
> index 2981f2a954..2c34859a4a 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
> @@ -73,7 +73,6 @@ GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
> -GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 9e6f3d71d7..0c7183ba10 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1493,6 +1493,7 @@ GLIBC_2.17 nl_langinfo_l F
>  GLIBC_2.17 nrand48 F
>  GLIBC_2.17 nrand48_r F
>  GLIBC_2.17 ns_name_ntop F
> +GLIBC_2.17 ns_name_pton F
>  GLIBC_2.17 ns_name_skip F
>  GLIBC_2.17 ns_name_uncompress F
>  GLIBC_2.17 ns_name_unpack F
> @@ -2651,6 +2652,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
> index f72b307b99..9594f13195 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
> @@ -68,7 +68,6 @@ GLIBC_2.17 ns_msg_getflag F
>  GLIBC_2.17 ns_name_compress F
>  GLIBC_2.17 ns_name_ntol F
>  GLIBC_2.17 ns_name_pack F
> -GLIBC_2.17 ns_name_pton F
>  GLIBC_2.17 ns_name_rollback F
>  GLIBC_2.17 ns_parse_ttl F
>  GLIBC_2.17 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index c95e4eeb6e..0f345ea431 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1341,6 +1341,7 @@ GLIBC_2.33 nl_langinfo_l F
>  GLIBC_2.33 nrand48 F
>  GLIBC_2.33 nrand48_r F
>  GLIBC_2.33 ns_name_ntop F
> +GLIBC_2.33 ns_name_pton F
>  GLIBC_2.33 ns_name_skip F
>  GLIBC_2.33 ns_name_uncompress F
>  GLIBC_2.33 ns_name_unpack F
> @@ -2216,6 +2217,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
> index 335ce8f16d..3f04c43022 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libresolv.abilist
> @@ -61,7 +61,6 @@ GLIBC_2.33 ns_msg_getflag F
>  GLIBC_2.33 ns_name_compress F
>  GLIBC_2.33 ns_name_ntol F
>  GLIBC_2.33 ns_name_pack F
> -GLIBC_2.33 ns_name_pton F
>  GLIBC_2.33 ns_name_rollback F
>  GLIBC_2.33 ns_parse_ttl F
>  GLIBC_2.33 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index ea497cf7e0..613ad3332d 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1388,6 +1388,7 @@ GLIBC_2.27 nl_langinfo_l F
>  GLIBC_2.27 nrand48 F
>  GLIBC_2.27 nrand48_r F
>  GLIBC_2.27 ns_name_ntop F
> +GLIBC_2.27 ns_name_pton F
>  GLIBC_2.27 ns_name_skip F
>  GLIBC_2.27 ns_name_uncompress F
>  GLIBC_2.27 ns_name_unpack F
> @@ -2416,6 +2417,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
> index 3410dc454d..b546012c1b 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist
> @@ -61,7 +61,6 @@ GLIBC_2.27 ns_msg_getflag F
>  GLIBC_2.27 ns_name_compress F
>  GLIBC_2.27 ns_name_ntol F
>  GLIBC_2.27 ns_name_pack F
> -GLIBC_2.27 ns_name_pton F
>  GLIBC_2.27 ns_name_rollback F
>  GLIBC_2.27 ns_parse_ttl F
>  GLIBC_2.27 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 953db1c42c..a4df94a8ed 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2581,6 +2581,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -3030,6 +3031,7 @@ GLIBC_2.9 getutxline F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 login F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
> index 3df1ec5e98..2bf26b6a56 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
> @@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
> -GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index b41a6a9e33..2002437627 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2389,6 +2389,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2826,6 +2827,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
> index 1a5b09ba65..ef165535ce 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
> @@ -73,7 +73,6 @@ GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
> -GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 3e0cf9b271..934a8af021 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2436,6 +2436,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2704,6 +2705,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
> index 3df1ec5e98..2bf26b6a56 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
> @@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
> -GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 2cba575172..82f0b5e2e5 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2433,6 +2433,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2701,6 +2702,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
> index 3df1ec5e98..2bf26b6a56 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
> @@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
> -GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index a78e41777e..78b5667c51 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2576,6 +2576,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -3039,6 +3040,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
> index 3df1ec5e98..2bf26b6a56 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
> @@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
> -GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 31f8359dac..77076f51ec 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2411,6 +2411,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2679,6 +2680,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
> index 250a73e764..b70366bcb8 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
> @@ -78,7 +78,6 @@ GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
> -GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 751b1e34be..c060a7b027 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2367,6 +2367,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> @@ -2635,6 +2636,7 @@ GLIBC_2.9 dup3 F
>  GLIBC_2.9 epoll_create1 F
>  GLIBC_2.9 inotify_init1 F
>  GLIBC_2.9 ns_name_ntop F
> +GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_skip F
>  GLIBC_2.9 ns_name_uncompress F
>  GLIBC_2.9 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
> index 9920dff1a8..2fced73187 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
> @@ -73,7 +73,6 @@ GLIBC_2.9 ns_msg_getflag F
>  GLIBC_2.9 ns_name_compress F
>  GLIBC_2.9 ns_name_ntol F
>  GLIBC_2.9 ns_name_pack F
> -GLIBC_2.9 ns_name_pton F
>  GLIBC_2.9 ns_name_rollback F
>  GLIBC_2.9 ns_parse_ttl F
>  GLIBC_2.9 ns_parserr F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 6f488a7638..2baaf7af06 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1412,6 +1412,7 @@ GLIBC_2.16 nl_langinfo_l F
>  GLIBC_2.16 nrand48 F
>  GLIBC_2.16 nrand48_r F
>  GLIBC_2.16 ns_name_ntop F
> +GLIBC_2.16 ns_name_pton F
>  GLIBC_2.16 ns_name_skip F
>  GLIBC_2.16 ns_name_uncompress F
>  GLIBC_2.16 ns_name_unpack F
> @@ -2470,6 +2471,7 @@ GLIBC_2.34 mtx_timedlock F
>  GLIBC_2.34 mtx_trylock F
>  GLIBC_2.34 mtx_unlock F
>  GLIBC_2.34 ns_name_ntop F
> +GLIBC_2.34 ns_name_pton F
>  GLIBC_2.34 ns_name_skip F
>  GLIBC_2.34 ns_name_uncompress F
>  GLIBC_2.34 ns_name_unpack F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
> index b441069e4b..2f70944024 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
> @@ -68,7 +68,6 @@ GLIBC_2.16 ns_msg_getflag F
>  GLIBC_2.16 ns_name_compress F
>  GLIBC_2.16 ns_name_ntol F
>  GLIBC_2.16 ns_name_pack F
> -GLIBC_2.16 ns_name_pton F
>  GLIBC_2.16 ns_name_rollback F
>  GLIBC_2.16 ns_parse_ttl F
>  GLIBC_2.16 ns_parserr F
> 

OK.
  

Patch

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