about summary refs log tree commit diff
path: root/inet
diff options
context:
space:
mode:
authorZack Weinberg <zackw@panix.com>2017-06-08 15:39:03 -0400
committerZack Weinberg <zackw@panix.com>2017-06-08 15:39:03 -0400
commit5046dbb4a7eba5eccfd258f92f4735c9ffc8d069 (patch)
tree4470480d904b65cf14ca524f96f79eca818c3eaf /inet
parent199fc19d3aaaf57944ef036e15904febe877fc93 (diff)
downloadglibc-zack/build-layout-experiment.tar.gz
glibc-zack/build-layout-experiment.tar.xz
glibc-zack/build-layout-experiment.zip
Prepare for radical source tree reorganization. zack/build-layout-experiment
All top-level files and directories are moved into a temporary storage
directory, REORG.TODO, except for files that will certainly still
exist in their current form at top level when we're done (COPYING,
COPYING.LIB, LICENSES, NEWS, README), all old ChangeLog files (which
are moved to the new directory OldChangeLogs, instead), and the
generated file INSTALL (which is just deleted; in the new order, there
will be no generated files checked into version control).
Diffstat (limited to 'inet')
-rw-r--r--inet/Makefile105
-rw-r--r--inet/Versions92
-rw-r--r--inet/aliases.h63
-rw-r--r--inet/arpa/ftp.h105
-rw-r--r--inet/arpa/inet.h105
-rw-r--r--inet/arpa/telnet.h316
-rw-r--r--inet/arpa/tftp.h82
-rw-r--r--inet/bug-if1.c53
-rw-r--r--inet/check_native.c27
-rw-r--r--inet/check_pf.c71
-rw-r--r--inet/deadline.c122
-rw-r--r--inet/ether_aton.c28
-rw-r--r--inet/ether_aton_r.c63
-rw-r--r--inet/ether_hton.c81
-rw-r--r--inet/ether_line.c76
-rw-r--r--inet/ether_ntoa.c29
-rw-r--r--inet/ether_ntoa_r.c33
-rw-r--r--inet/ether_ntoh.c84
-rw-r--r--inet/getaliasent.c28
-rw-r--r--inet/getaliasent_r.c31
-rw-r--r--inet/getaliasname.c32
-rw-r--r--inet/getaliasname_r.c31
-rw-r--r--inet/gethstbyad.c30
-rw-r--r--inet/gethstbyad_r.c52
-rw-r--r--inet/gethstbynm.c37
-rw-r--r--inet/gethstbynm2.c38
-rw-r--r--inet/gethstbynm2_r.c45
-rw-r--r--inet/gethstbynm_r.c44
-rw-r--r--inet/gethstent.c26
-rw-r--r--inet/gethstent_r.c34
-rw-r--r--inet/getipv4sourcefilter.c32
-rw-r--r--inet/getnameinfo.c563
-rw-r--r--inet/getnetbyad.c34
-rw-r--r--inet/getnetbyad_r.c34
-rw-r--r--inet/getnetbynm.c33
-rw-r--r--inet/getnetbynm_r.c33
-rw-r--r--inet/getnetent.c29
-rw-r--r--inet/getnetent_r.c34
-rw-r--r--inet/getnetgrent.c49
-rw-r--r--inet/getnetgrent_r.c535
-rw-r--r--inet/getproto.c32
-rw-r--r--inet/getproto_r.c31
-rw-r--r--inet/getprtent.c28
-rw-r--r--inet/getprtent_r.c32
-rw-r--r--inet/getprtname.c32
-rw-r--r--inet/getprtname_r.c31
-rw-r--r--inet/getservent.c25
-rw-r--r--inet/getservent_r.c29
-rw-r--r--inet/getsourcefilter.c32
-rw-r--r--inet/getsrvbynm.c29
-rw-r--r--inet/getsrvbynm_r.c28
-rw-r--r--inet/getsrvbypt.c29
-rw-r--r--inet/getsrvbypt_r.c28
-rw-r--r--inet/herrno-loc.c29
-rw-r--r--inet/herrno.c30
-rw-r--r--inet/htonl.c35
-rw-r--r--inet/htons.c34
-rw-r--r--inet/htontest.c70
-rw-r--r--inet/if_index.c60
-rw-r--r--inet/ifaddrs.c47
-rw-r--r--inet/ifaddrs.h73
-rw-r--r--inet/ifreq.c26
-rw-r--r--inet/in6_addr.c30
-rw-r--r--inet/inet6_opt.c281
-rw-r--r--inet/inet6_option.c349
-rw-r--r--inet/inet6_rth.c196
-rw-r--r--inet/inet6_scopeid_pton.c63
-rw-r--r--inet/inet_lnaof.c50
-rw-r--r--inet/inet_mkadr.c55
-rw-r--r--inet/inet_net.c109
-rw-r--r--inet/inet_netof.c50
-rw-r--r--inet/inet_ntoa.c38
-rw-r--r--inet/net-internal.h119
-rw-r--r--inet/netgroup.h85
-rw-r--r--inet/netinet/ether.h55
-rw-r--r--inet/netinet/icmp6.h345
-rw-r--r--inet/netinet/igmp.h125
-rw-r--r--inet/netinet/in.h632
-rw-r--r--inet/netinet/ip6.h188
-rw-r--r--inet/protocols/routed.h101
-rw-r--r--inet/protocols/rwhod.h67
-rw-r--r--inet/protocols/talkd.h115
-rw-r--r--inet/protocols/timed.h99
-rw-r--r--inet/rcmd.c827
-rw-r--r--inet/rexec.c198
-rw-r--r--inet/ruserpass.c250
-rw-r--r--inet/setipv4sourcefilter.c33
-rw-r--r--inet/setsourcefilter.c33
-rw-r--r--inet/test-hnto-types.c39
-rw-r--r--inet/test-ifaddrs.c99
-rw-r--r--inet/test-inet6_opt.c211
-rw-r--r--inet/test_ifindex.c67
-rw-r--r--inet/tst-checks-posix.c23
-rw-r--r--inet/tst-checks.c172
-rw-r--r--inet/tst-deadline.c188
-rw-r--r--inet/tst-ether_aton.c60
-rw-r--r--inet/tst-ether_line.c38
-rw-r--r--inet/tst-gethnm.c67
-rw-r--r--inet/tst-getni1.c36
-rw-r--r--inet/tst-getni2.c41
-rw-r--r--inet/tst-inet6_rth.c192
-rw-r--r--inet/tst-inet6_scopeid_pton.c131
-rw-r--r--inet/tst-network.c81
-rw-r--r--inet/tst-ntoa.c39
-rw-r--r--inet/tst-sockaddr.c125
105 files changed, 0 insertions, 10231 deletions
diff --git a/inet/Makefile b/inet/Makefile
deleted file mode 100644
index 38c61bdc61..0000000000
--- a/inet/Makefile
+++ /dev/null
@@ -1,105 +0,0 @@
-# Copyright (C) 1991-2017 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
-
-#
-#	Sub-makefile for inet portion of the library.
-#
-subdir	:= inet
-
-include ../Makeconfig
-
-headers	:= netinet/ether.h netinet/in.h netinet/in_systm.h \
-	   netinet/if_ether.h netinet/igmp.h \
-	   netinet/tcp.h netinet/ip.h $(wildcard arpa/*.h protocols/*.h) \
-	   aliases.h ifaddrs.h netinet/ip6.h netinet/icmp6.h bits/in.h
-
-routines := htonl htons		\
-	    inet_lnaof inet_mkadr	\
-	    inet_netof inet_ntoa inet_net herrno herrno-loc \
-	    gethstbyad gethstbyad_r gethstbynm gethstbynm2 gethstbynm2_r \
-	    gethstbynm_r gethstent gethstent_r \
-	    getnetbyad getnetbyad_r getnetbynm getnetent getnetent_r \
-	    getnetbynm_r \
-	    getproto getproto_r getprtent getprtent_r getprtname getprtname_r \
-	    getsrvbynm getsrvbynm_r getsrvbypt getsrvbypt_r getservent \
-	    getservent_r	\
-	    ether_aton ether_aton_r ether_hton ether_line \
-	    ether_ntoa ether_ntoa_r ether_ntoh \
-	    rcmd rexec ruserpass \
-	    getnetgrent_r getnetgrent \
-	    getaliasent_r getaliasent getaliasname getaliasname_r \
-	    in6_addr getnameinfo if_index ifaddrs inet6_option \
-	    getipv4sourcefilter setipv4sourcefilter \
-	    getsourcefilter setsourcefilter inet6_opt inet6_rth \
-	    inet6_scopeid_pton deadline
-
-aux := check_pf check_native ifreq
-
-tests := htontest test_ifindex tst-ntoa tst-ether_aton tst-network \
-	 tst-gethnm test-ifaddrs bug-if1 test-inet6_opt tst-ether_line \
-	 tst-getni1 tst-getni2 tst-inet6_rth tst-checks tst-checks-posix \
-	 tst-sockaddr test-hnto-types
-
-# tst-deadline must be linked statically so that we can access
-# internal functions.
-tests-static += tst-deadline
-tests-static-internal := tst-deadline
-
-# tst-inet6_scopeid_pton also needs internal functions but does not
-# need to be linked statically.
-tests-internal := tst-inet6_scopeid_pton
-
-include ../Rules
-
-ifeq ($(have-thread-library),yes)
-
-CFLAGS-gethstbyad_r.c = -fexceptions
-CFLAGS-gethstbyad.c = -fexceptions
-CFLAGS-gethstbynm_r.c = -fexceptions
-CFLAGS-gethstbynm.c = -fexceptions
-CFLAGS-gethstbynm2_r.c = -fexceptions
-CFLAGS-gethstbynm2.c = -fexceptions
-CFLAGS-gethstent_r.c = -fexceptions
-CFLAGS-gethstent.c = -fexceptions
-CFLAGS-rcmd.c = -fexceptions
-CFLAGS-getnetbynm_r.c = -fexceptions
-CFLAGS-getnetbynm.c = -fexceptions
-CFLAGS-getnetbyad_r.c = -fexceptions
-CFLAGS-getnetbyad.c = -fexceptions
-CFLAGS-getnetent_r.c = -fexceptions
-CFLAGS-getnetent.c = -fexceptions
-CFLAGS-getaliasent_r.c = -fexceptions
-CFLAGS-getaliasent.c = -fexceptions
-CFLAGS-getrpcent_r.c = -fexceptions
-CFLAGS-getrpcent.c = -fexceptions
-CFLAGS-getservent_r.c = -fexceptions
-CFLAGS-getservent.c = -fexceptions
-CFLAGS-getprtent_r.c = -fexceptions
-CFLAGS-getprtent.c = -fexceptions
-CFLAGS-either_ntoh.c = -fexceptions
-CFLAGS-either_hton.c = -fexceptions
-CFLAGS-getnetgrent.c = -fexceptions
-CFLAGS-getnetgrent_r.c = -fexceptions
-
-CFLAGS-tst-checks-posix.c = -std=c99
-CFLAGS-tst-sockaddr.c = -fno-strict-aliasing
-
-endif
-
-ifeq ($(build-static-nss),yes)
-CFLAGS += -DSTATIC_NSS
-endif
diff --git a/inet/Versions b/inet/Versions
deleted file mode 100644
index 6f663f3648..0000000000
--- a/inet/Versions
+++ /dev/null
@@ -1,92 +0,0 @@
-libc {
-  GLIBC_2.0 {
-    # functions with required interface outside normal name space
-    __ivaliduser; __check_rhosts_file; __rcmd_errstr;
-
-    # variables in normal name space
-    rexecoptions;
-
-    # e*
-    endaliasent; endhostent; endnetent; endnetgrent; endprotoent; endservent;
-
-    # e*
-    ether_aton; ether_aton_r; ether_hostton; ether_line; ether_ntoa;
-    ether_ntoa_r; ether_ntohost;
-
-    # g*
-    getaliasbyname; getaliasbyname_r; getaliasent; getaliasent_r;
-    getdomainname; gethostbyaddr; gethostbyaddr_r; gethostbyname;
-    gethostbyname2; gethostbyname2_r; gethostbyname_r; gethostent;
-    gethostent_r; getnetbyaddr; getnetbyaddr_r; getnetbyname;
-    getnetbyname_r; getnetent; getnetent_r; getnetgrent; getnetgrent_r;
-    getprotobyname; getprotobyname_r; getprotobynumber;
-    getprotobynumber_r; getprotoent; getprotoent_r;
-    getservbyname; getservbyname_r; getservbyport;
-    getservbyport_r; getservent; getservent_r;
-
-    # h*
-    htonl; htons;
-
-    # i*
-    inet_addr; inet_aton; inet_lnaof; inet_makeaddr; inet_netof; inet_network;
-    inet_nsap_addr; inet_nsap_ntoa; inet_ntoa; inet_ntop; inet_pton; innetgr;
-    iruserok;
-
-    # n*
-    ntohl; ntohs;
-
-    # r*
-    rcmd; rexec; rresvport; ruserok; ruserpass;
-
-    # s*
-    setaliasent; setnetent; setnetgrent; setprotoent; setservent;
-  }
-  GLIBC_2.1 {
-    # variables in normal name space
-    in6addr_any; in6addr_loopback;
-
-    # i*
-    if_freenameindex; if_indextoname; if_nameindex; if_nametoindex;
-  }
-  GLIBC_2.1.2 {
-    # g*
-    getaliasbyname_r; getaliasent_r; gethostbyaddr_r; gethostbyname2_r;
-    gethostbyname_r; gethostent_r; getnetbyaddr_r; getnetbyname_r;
-    getnetent_r; getnetgrent_r; getprotobyname_r; getprotobynumber_r;
-    getprotoent_r; getservbyname_r;
-  }
-  GLIBC_2.2 {
-    # i*
-    iruserok_af;
-    # r*
-    rcmd_af; rexec_af; rresvport_af; ruserok_af;
-  }
-  GLIBC_2.3 {
-    # f*
-    freeifaddrs;
-    # g*
-    getifaddrs;
-  }
-  GLIBC_2.3.3 {
-    inet6_option_space; inet6_option_init; inet6_option_append;
-    inet6_option_alloc; inet6_option_next; inet6_option_find;
-  }
-  GLIBC_2.3.4 {
-    getipv4sourcefilter; setipv4sourcefilter;
-    getsourcefilter; setsourcefilter;
-  }
-  GLIBC_2.5 {
-    inet6_opt_init; inet6_opt_append; inet6_opt_finish; inet6_opt_set_val;
-    inet6_opt_next; inet6_opt_find; inet6_opt_get_val;
-    inet6_rth_space; inet6_rth_init; inet6_rth_add; inet6_rth_reverse;
-    inet6_rth_segments; inet6_rth_getaddr;
-  }
-  GLIBC_PRIVATE {
-    # functions used in other libraries
-    __internal_endnetgrent; __internal_getnetgrent_r;
-    __internal_setnetgrent;
-
-    # Used from nscd.
-    __inet6_scopeid_pton;
-  }
-}
diff --git a/inet/aliases.h b/inet/aliases.h
deleted file mode 100644
index 76b43cd96a..0000000000
--- a/inet/aliases.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _ALIASES_H
-#define _ALIASES_H	1
-
-#include <features.h>
-
-#include <sys/types.h>
-
-
-__BEGIN_DECLS
-
-/* Structure to represent one entry of the alias data base.  */
-struct aliasent
-  {
-    char *alias_name;
-    size_t alias_members_len;
-    char **alias_members;
-    int alias_local;
-  };
-
-
-/* Open alias data base files.  */
-extern void setaliasent (void) __THROW;
-
-/* Close alias data base files.  */
-extern void endaliasent (void) __THROW;
-
-/* Get the next entry from the alias data base.  */
-extern struct aliasent *getaliasent (void) __THROW;
-
-/* Get the next entry from the alias data base and put it in RESULT_BUF.  */
-extern int getaliasent_r (struct aliasent *__restrict __result_buf,
-			  char *__restrict __buffer, size_t __buflen,
-			  struct aliasent **__restrict __result) __THROW;
-
-/* Get alias entry corresponding to NAME.  */
-extern struct aliasent *getaliasbyname (const char *__name) __THROW;
-
-/* Get alias entry corresponding to NAME and put it in RESULT_BUF.  */
-extern int getaliasbyname_r (const char *__restrict __name,
-			     struct aliasent *__restrict __result_buf,
-			     char *__restrict __buffer, size_t __buflen,
-			     struct aliasent **__restrict __result) __THROW;
-
-__END_DECLS
-
-#endif /* aliases.h */
diff --git a/inet/arpa/ftp.h b/inet/arpa/ftp.h
deleted file mode 100644
index e5b340db12..0000000000
--- a/inet/arpa/ftp.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (c) 1983, 1989, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	@(#)ftp.h	8.1 (Berkeley) 6/2/93
- */
-
-#ifndef _ARPA_FTP_H
-#define	_ARPA_FTP_H 1
-
-/* Definitions for FTP; see RFC-765. */
-
-/*
- * Reply codes.
- */
-#define PRELIM		1	/* positive preliminary */
-#define COMPLETE	2	/* positive completion */
-#define CONTINUE	3	/* positive intermediate */
-#define TRANSIENT	4	/* transient negative completion */
-#define ERROR		5	/* permanent negative completion */
-
-/*
- * Type codes
- */
-#define	TYPE_A		1	/* ASCII */
-#define	TYPE_E		2	/* EBCDIC */
-#define	TYPE_I		3	/* image */
-#define	TYPE_L		4	/* local byte size */
-
-#ifdef FTP_NAMES
-char *typenames[] =  {"0", "ASCII", "EBCDIC", "Image", "Local" };
-#endif
-
-/*
- * Form codes
- */
-#define	FORM_N		1	/* non-print */
-#define	FORM_T		2	/* telnet format effectors */
-#define	FORM_C		3	/* carriage control (ASA) */
-#ifdef FTP_NAMES
-char *formnames[] =  {"0", "Nonprint", "Telnet", "Carriage-control" };
-#endif
-
-/*
- * Structure codes
- */
-#define	STRU_F		1	/* file (no record structure) */
-#define	STRU_R		2	/* record structure */
-#define	STRU_P		3	/* page structure */
-#ifdef FTP_NAMES
-char *strunames[] =  {"0", "File", "Record", "Page" };
-#endif
-
-/*
- * Mode types
- */
-#define	MODE_S		1	/* stream */
-#define	MODE_B		2	/* block */
-#define	MODE_C		3	/* compressed */
-#ifdef FTP_NAMES
-char *modenames[] =  {"0", "Stream", "Block", "Compressed" };
-#endif
-
-/*
- * Record Tokens
- */
-#define	REC_ESC		'\377'	/* Record-mode Escape */
-#define	REC_EOR		'\001'	/* Record-mode End-of-Record */
-#define REC_EOF		'\002'	/* Record-mode End-of-File */
-
-/*
- * Block Header
- */
-#define	BLK_EOR		0x80	/* Block is End-of-Record */
-#define	BLK_EOF		0x40	/* Block is End-of-File */
-#define BLK_ERRORS	0x20	/* Block is suspected of containing errors */
-#define	BLK_RESTART	0x10	/* Block is Restart Marker */
-
-#define	BLK_BYTECOUNT	2	/* Bytes in this block */
-
-#endif /* arpa/ftp.h */
diff --git a/inet/arpa/inet.h b/inet/arpa/inet.h
deleted file mode 100644
index 17c777bae2..0000000000
--- a/inet/arpa/inet.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _ARPA_INET_H
-#define	_ARPA_INET_H	1
-
-#include <features.h>
-#include <netinet/in.h>		/* To define `struct in_addr'.  */
-
-/* Type for length arguments in socket calls.  */
-#ifndef __socklen_t_defined
-typedef __socklen_t socklen_t;
-# define __socklen_t_defined
-#endif
-
-__BEGIN_DECLS
-
-/* Convert Internet host address from numbers-and-dots notation in CP
-   into binary data in network byte order.  */
-extern in_addr_t inet_addr (const char *__cp) __THROW;
-
-/* Return the local host address part of the Internet address in IN.  */
-extern in_addr_t inet_lnaof (struct in_addr __in) __THROW;
-
-/* Make Internet host address in network byte order by combining the
-   network number NET with the local address HOST.  */
-extern struct in_addr inet_makeaddr (in_addr_t __net, in_addr_t __host)
-     __THROW;
-
-/* Return network number part of the Internet address IN.  */
-extern in_addr_t inet_netof (struct in_addr __in) __THROW;
-
-/* Extract the network number in network byte order from the address
-   in numbers-and-dots natation starting at CP.  */
-extern in_addr_t inet_network (const char *__cp) __THROW;
-
-/* Convert Internet number in IN to ASCII representation.  The return value
-   is a pointer to an internal array containing the string.  */
-extern char *inet_ntoa (struct in_addr __in) __THROW;
-
-/* Convert from presentation format of an Internet number in buffer
-   starting at CP to the binary network format and store result for
-   interface type AF in buffer starting at BUF.  */
-extern int inet_pton (int __af, const char *__restrict __cp,
-		      void *__restrict __buf) __THROW;
-
-/* Convert a Internet address in binary network format for interface
-   type AF in buffer starting at CP to presentation form and place
-   result in buffer of length LEN astarting at BUF.  */
-extern const char *inet_ntop (int __af, const void *__restrict __cp,
-			      char *__restrict __buf, socklen_t __len)
-     __THROW;
-
-
-/* The following functions are not part of XNS 5.2.  */
-#ifdef __USE_MISC
-/* Convert Internet host address from numbers-and-dots notation in CP
-   into binary data and store the result in the structure INP.  */
-extern int inet_aton (const char *__cp, struct in_addr *__inp) __THROW;
-
-/* Format a network number NET into presentation format and place result
-   in buffer starting at BUF with length of LEN bytes.  */
-extern char *inet_neta (in_addr_t __net, char *__buf, size_t __len) __THROW;
-
-/* Convert network number for interface type AF in buffer starting at
-   CP to presentation format.  The result will specifiy BITS bits of
-   the number.  */
-extern char *inet_net_ntop (int __af, const void *__cp, int __bits,
-			    char *__buf, size_t __len) __THROW;
-
-/* Convert network number for interface type AF from presentation in
-   buffer starting at CP to network format and store result int
-   buffer starting at BUF of size LEN.  */
-extern int inet_net_pton (int __af, const char *__cp,
-			  void *__buf, size_t __len) __THROW;
-
-/* Convert ASCII representation in hexadecimal form of the Internet
-   address to binary form and place result in buffer of length LEN
-   starting at BUF.  */
-extern unsigned int inet_nsap_addr (const char *__cp,
-				    unsigned char *__buf, int __len) __THROW;
-
-/* Convert internet address in binary form in LEN bytes starting at CP
-   a presentation form and place result in BUF.  */
-extern char *inet_nsap_ntoa (int __len, const unsigned char *__cp,
-			     char *__buf) __THROW;
-#endif
-
-__END_DECLS
-
-#endif /* arpa/inet.h */
diff --git a/inet/arpa/telnet.h b/inet/arpa/telnet.h
deleted file mode 100644
index 3774c89285..0000000000
--- a/inet/arpa/telnet.h
+++ /dev/null
@@ -1,316 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	@(#)telnet.h	8.2 (Berkeley) 12/15/93
- */
-
-#ifndef _ARPA_TELNET_H
-#define	_ARPA_TELNET_H 1
-
-/*
- * Definitions for the TELNET protocol.
- */
-#define	IAC	255		/* interpret as command: */
-#define	DONT	254		/* you are not to use option */
-#define	DO	253		/* please, you use option */
-#define	WONT	252		/* I won't use option */
-#define	WILL	251		/* I will use option */
-#define	SB	250		/* interpret as subnegotiation */
-#define	GA	249		/* you may reverse the line */
-#define	EL	248		/* erase the current line */
-#define	EC	247		/* erase the current character */
-#define	AYT	246		/* are you there */
-#define	AO	245		/* abort output--but let prog finish */
-#define	IP	244		/* interrupt process--permanently */
-#define	BREAK	243		/* break */
-#define	DM	242		/* data mark--for connect. cleaning */
-#define	NOP	241		/* nop */
-#define	SE	240		/* end sub negotiation */
-#define EOR     239             /* end of record (transparent mode) */
-#define	ABORT	238		/* Abort process */
-#define	SUSP	237		/* Suspend process */
-#define	xEOF	236		/* End of file: EOF is already used... */
-
-#define SYNCH	242		/* for telfunc calls */
-
-#ifdef TELCMDS
-char *telcmds[] = {
-	"EOF", "SUSP", "ABORT", "EOR",
-	"SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC",
-	"EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 0,
-};
-#else
-extern char *telcmds[];
-#endif
-
-#define	TELCMD_FIRST	xEOF
-#define	TELCMD_LAST	IAC
-#define	TELCMD_OK(x)	((unsigned int)(x) <= TELCMD_LAST && \
-			 (unsigned int)(x) >= TELCMD_FIRST)
-#define	TELCMD(x)	telcmds[(x)-TELCMD_FIRST]
-
-/* telnet options */
-#define TELOPT_BINARY	0	/* 8-bit data path */
-#define TELOPT_ECHO	1	/* echo */
-#define	TELOPT_RCP	2	/* prepare to reconnect */
-#define	TELOPT_SGA	3	/* suppress go ahead */
-#define	TELOPT_NAMS	4	/* approximate message size */
-#define	TELOPT_STATUS	5	/* give status */
-#define	TELOPT_TM	6	/* timing mark */
-#define	TELOPT_RCTE	7	/* remote controlled transmission and echo */
-#define TELOPT_NAOL 	8	/* negotiate about output line width */
-#define TELOPT_NAOP 	9	/* negotiate about output page size */
-#define TELOPT_NAOCRD	10	/* negotiate about CR disposition */
-#define TELOPT_NAOHTS	11	/* negotiate about horizontal tabstops */
-#define TELOPT_NAOHTD	12	/* negotiate about horizontal tab disposition */
-#define TELOPT_NAOFFD	13	/* negotiate about formfeed disposition */
-#define TELOPT_NAOVTS	14	/* negotiate about vertical tab stops */
-#define TELOPT_NAOVTD	15	/* negotiate about vertical tab disposition */
-#define TELOPT_NAOLFD	16	/* negotiate about output LF disposition */
-#define TELOPT_XASCII	17	/* extended ascii character set */
-#define	TELOPT_LOGOUT	18	/* force logout */
-#define	TELOPT_BM	19	/* byte macro */
-#define	TELOPT_DET	20	/* data entry terminal */
-#define	TELOPT_SUPDUP	21	/* supdup protocol */
-#define	TELOPT_SUPDUPOUTPUT 22	/* supdup output */
-#define	TELOPT_SNDLOC	23	/* send location */
-#define	TELOPT_TTYPE	24	/* terminal type */
-#define	TELOPT_EOR	25	/* end or record */
-#define	TELOPT_TUID	26	/* TACACS user identification */
-#define	TELOPT_OUTMRK	27	/* output marking */
-#define	TELOPT_TTYLOC	28	/* terminal location number */
-#define	TELOPT_3270REGIME 29	/* 3270 regime */
-#define	TELOPT_X3PAD	30	/* X.3 PAD */
-#define	TELOPT_NAWS	31	/* window size */
-#define	TELOPT_TSPEED	32	/* terminal speed */
-#define	TELOPT_LFLOW	33	/* remote flow control */
-#define TELOPT_LINEMODE	34	/* Linemode option */
-#define TELOPT_XDISPLOC	35	/* X Display Location */
-#define TELOPT_OLD_ENVIRON 36	/* Old - Environment variables */
-#define	TELOPT_AUTHENTICATION 37/* Authenticate */
-#define	TELOPT_ENCRYPT	38	/* Encryption option */
-#define TELOPT_NEW_ENVIRON 39	/* New - Environment variables */
-#define	TELOPT_EXOPL	255	/* extended-options-list */
-
-
-#define	NTELOPTS	(1+TELOPT_NEW_ENVIRON)
-#ifdef TELOPTS
-char *telopts[NTELOPTS+1] = {
-	"BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME",
-	"STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP",
-	"NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS",
-	"NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO",
-	"DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT",
-	"SEND LOCATION", "TERMINAL TYPE", "END OF RECORD",
-	"TACACS UID", "OUTPUT MARKING", "TTYLOC",
-	"3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW",
-	"LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION",
-	"ENCRYPT", "NEW-ENVIRON",
-	0,
-};
-#define	TELOPT_FIRST	TELOPT_BINARY
-#define	TELOPT_LAST	TELOPT_NEW_ENVIRON
-#define	TELOPT_OK(x)	((unsigned int)(x) <= TELOPT_LAST)
-#define	TELOPT(x)	telopts[(x)-TELOPT_FIRST]
-#endif
-
-/* sub-option qualifiers */
-#define	TELQUAL_IS	0	/* option is... */
-#define	TELQUAL_SEND	1	/* send option */
-#define	TELQUAL_INFO	2	/* ENVIRON: informational version of IS */
-#define	TELQUAL_REPLY	2	/* AUTHENTICATION: client version of IS */
-#define	TELQUAL_NAME	3	/* AUTHENTICATION: client version of IS */
-
-#define	LFLOW_OFF		0	/* Disable remote flow control */
-#define	LFLOW_ON		1	/* Enable remote flow control */
-#define	LFLOW_RESTART_ANY	2	/* Restart output on any char */
-#define	LFLOW_RESTART_XON	3	/* Restart output only on XON */
-
-/*
- * LINEMODE suboptions
- */
-
-#define	LM_MODE		1
-#define	LM_FORWARDMASK	2
-#define	LM_SLC		3
-
-#define	MODE_EDIT	0x01
-#define	MODE_TRAPSIG	0x02
-#define	MODE_ACK	0x04
-#define MODE_SOFT_TAB	0x08
-#define MODE_LIT_ECHO	0x10
-
-#define	MODE_MASK	0x1f
-
-/* Not part of protocol, but needed to simplify things... */
-#define MODE_FLOW		0x0100
-#define MODE_ECHO		0x0200
-#define MODE_INBIN		0x0400
-#define MODE_OUTBIN		0x0800
-#define MODE_FORCE		0x1000
-
-#define	SLC_SYNCH	1
-#define	SLC_BRK		2
-#define	SLC_IP		3
-#define	SLC_AO		4
-#define	SLC_AYT		5
-#define	SLC_EOR		6
-#define	SLC_ABORT	7
-#define	SLC_EOF		8
-#define	SLC_SUSP	9
-#define	SLC_EC		10
-#define	SLC_EL		11
-#define	SLC_EW		12
-#define	SLC_RP		13
-#define	SLC_LNEXT	14
-#define	SLC_XON		15
-#define	SLC_XOFF	16
-#define	SLC_FORW1	17
-#define	SLC_FORW2	18
-
-#define	NSLC		18
-
-/*
- * For backwards compatibility, we define SLC_NAMES to be the
- * list of names if SLC_NAMES is not defined.
- */
-#define	SLC_NAMELIST	"0", "SYNCH", "BRK", "IP", "AO", "AYT", "EOR", \
-			"ABORT", "EOF", "SUSP", "EC", "EL", "EW", "RP", \
-			"LNEXT", "XON", "XOFF", "FORW1", "FORW2", 0,
-#ifdef	SLC_NAMES
-char *slc_names[] = {
-	SLC_NAMELIST
-};
-#else
-extern char *slc_names[];
-#define	SLC_NAMES SLC_NAMELIST
-#endif
-
-#define	SLC_NAME_OK(x)	((unsigned int)(x) <= NSLC)
-#define SLC_NAME(x)	slc_names[x]
-
-#define	SLC_NOSUPPORT	0
-#define	SLC_CANTCHANGE	1
-#define	SLC_VARIABLE	2
-#define	SLC_DEFAULT	3
-#define	SLC_LEVELBITS	0x03
-
-#define	SLC_FUNC	0
-#define	SLC_FLAGS	1
-#define	SLC_VALUE	2
-
-#define	SLC_ACK		0x80
-#define	SLC_FLUSHIN	0x40
-#define	SLC_FLUSHOUT	0x20
-
-#define	OLD_ENV_VAR	1
-#define	OLD_ENV_VALUE	0
-#define	NEW_ENV_VAR	0
-#define	NEW_ENV_VALUE	1
-#define	ENV_ESC		2
-#define ENV_USERVAR	3
-
-/*
- * AUTHENTICATION suboptions
- */
-
-/*
- * Who is authenticating who ...
- */
-#define	AUTH_WHO_CLIENT		0	/* Client authenticating server */
-#define	AUTH_WHO_SERVER		1	/* Server authenticating client */
-#define	AUTH_WHO_MASK		1
-
-/*
- * amount of authentication done
- */
-#define	AUTH_HOW_ONE_WAY	0
-#define	AUTH_HOW_MUTUAL		2
-#define	AUTH_HOW_MASK		2
-
-#define	AUTHTYPE_NULL		0
-#define	AUTHTYPE_KERBEROS_V4	1
-#define	AUTHTYPE_KERBEROS_V5	2
-#define	AUTHTYPE_SPX		3
-#define	AUTHTYPE_MINK		4
-#define	AUTHTYPE_CNT		5
-
-#define	AUTHTYPE_TEST		99
-
-#ifdef	AUTH_NAMES
-char *authtype_names[] = {
-	"NULL", "KERBEROS_V4", "KERBEROS_V5", "SPX", "MINK", 0,
-};
-#else
-extern char *authtype_names[];
-#endif
-
-#define	AUTHTYPE_NAME_OK(x)	((unsigned int)(x) < AUTHTYPE_CNT)
-#define	AUTHTYPE_NAME(x)	authtype_names[x]
-
-/*
- * ENCRYPTion suboptions
- */
-#define	ENCRYPT_IS		0	/* I pick encryption type ... */
-#define	ENCRYPT_SUPPORT		1	/* I support encryption types ... */
-#define	ENCRYPT_REPLY		2	/* Initial setup response */
-#define	ENCRYPT_START		3	/* Am starting to send encrypted */
-#define	ENCRYPT_END		4	/* Am ending encrypted */
-#define	ENCRYPT_REQSTART	5	/* Request you start encrypting */
-#define	ENCRYPT_REQEND		6	/* Request you send encrypting */
-#define	ENCRYPT_ENC_KEYID	7
-#define	ENCRYPT_DEC_KEYID	8
-#define	ENCRYPT_CNT		9
-
-#define	ENCTYPE_ANY		0
-#define	ENCTYPE_DES_CFB64	1
-#define	ENCTYPE_DES_OFB64	2
-#define	ENCTYPE_CNT		3
-
-#ifdef	ENCRYPT_NAMES
-char *encrypt_names[] = {
-	"IS", "SUPPORT", "REPLY", "START", "END",
-	"REQUEST-START", "REQUEST-END", "ENC-KEYID", "DEC-KEYID",
-	0,
-};
-char *enctype_names[] = {
-	"ANY", "DES_CFB64",  "DES_OFB64",  0,
-};
-#else
-extern char *encrypt_names[];
-extern char *enctype_names[];
-#endif
-
-
-#define	ENCRYPT_NAME_OK(x)	((unsigned int)(x) < ENCRYPT_CNT)
-#define	ENCRYPT_NAME(x)		encrypt_names[x]
-
-#define	ENCTYPE_NAME_OK(x)	((unsigned int)(x) < ENCTYPE_CNT)
-#define	ENCTYPE_NAME(x)		enctype_names[x]
-
-#endif /* arpa/telnet.h */
diff --git a/inet/arpa/tftp.h b/inet/arpa/tftp.h
deleted file mode 100644
index 86e0b6e814..0000000000
--- a/inet/arpa/tftp.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	@(#)tftp.h	8.1 (Berkeley) 6/2/93
- */
-
-#ifndef _ARPA_TFTP_H
-#define	_ARPA_TFTP_H 1
-
-/*
- * Trivial File Transfer Protocol (IEN-133)
- */
-#define	SEGSIZE		512		/* data segment size */
-
-/*
- * Packet types.
- */
-#define	RRQ	01				/* read request */
-#define	WRQ	02				/* write request */
-#define	DATA	03				/* data packet */
-#define	ACK	04				/* acknowledgement */
-#define	ERROR	05				/* error code */
-
-struct	tftphdr {
-	short	th_opcode;			/* packet type */
-	union {
-		char	tu_padding[3];		/* sizeof() compat */
-		struct {
-			union {
-				unsigned short	tu_block;	/* block # */
-				short	tu_code;		/* error code */
-			} __attribute__ ((__packed__)) th_u3;
-			char tu_data[0];	/* data or error string */
-		} __attribute__ ((__packed__)) th_u2;
-		char	tu_stuff[0];		/* request packet stuff */
-	} __attribute__ ((__packed__)) th_u1;
-} __attribute__ ((__packed__));
-
-#define	th_block	th_u1.th_u2.th_u3.tu_block
-#define	th_code		th_u1.th_u2.th_u3.tu_code
-#define	th_stuff	th_u1.tu_stuff
-#define	th_data		th_u1.th_u2.tu_data
-#define	th_msg		th_u1.th_u2.tu_data
-
-/*
- * Error codes.
- */
-#define	EUNDEF		0		/* not defined */
-#define	ENOTFOUND	1		/* file not found */
-#define	EACCESS		2		/* access violation */
-#define	ENOSPACE	3		/* disk full or allocation exceeded */
-#define	EBADOP		4		/* illegal TFTP operation */
-#define	EBADID		5		/* unknown transfer ID */
-#define	EEXISTS		6		/* file already exists */
-#define	ENOUSER		7		/* no such user */
-
-#endif /* arpa/tftp.h */
diff --git a/inet/bug-if1.c b/inet/bug-if1.c
deleted file mode 100644
index b70a19d571..0000000000
--- a/inet/bug-if1.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <limits.h>
-#include <stdio.h>
-#include <string.h>
-#include <net/if.h>
-
-
-static int
-do_test (void)
-{
-  char buf[IF_NAMESIZE];
-  /* Index 0 is always invalid (see RFC 3493).  */
-  char *cp = if_indextoname (0, buf);
-  if (cp != NULL)
-    {
-      printf ("invalid index returned result \"%s\"\n", cp);
-      return 1;
-    }
-  else if (errno != ENXIO)
-    {
-      int err = errno;
-      char errbuf1[256];
-      char errbuf2[256];
-
-      printf ("errno = %d (%s), expected %d (%s)\n",
-	      err, strerror_r (err, errbuf1, sizeof (errbuf1)),
-	      ENXIO, strerror_r (ENXIO, errbuf2, sizeof (errbuf2)));
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/check_native.c b/inet/check_native.c
deleted file mode 100644
index 3fc40536a3..0000000000
--- a/inet/check_native.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Determine whether interfaces use native transport.  Generic version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <ifaddrs.h>
-#include <stdint.h>
-
-void
-attribute_hidden
-__check_native (uint32_t a1_index, int *a1_native,
-		uint32_t a2_index, int *a2_native)
-{
-}
diff --git a/inet/check_pf.c b/inet/check_pf.c
deleted file mode 100644
index a56723a7df..0000000000
--- a/inet/check_pf.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Determine protocol families for which interfaces exist.  Generic version.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <ifaddrs.h>
-#include <netdb.h>
-#include <stdint.h>
-
-void
-attribute_hidden
-__check_pf (bool *seen_ipv4, bool *seen_ipv6,
-	    struct in6addrinfo **in6ai, size_t *in6ailen)
-{
-  /* By default we have no way to determine information about
-     deprecated and temporary addresses.  */
-  *in6ai = NULL;
-  *in6ailen = 0;
-
-  /* Get the interface list via getifaddrs.  */
-  struct ifaddrs *ifa = NULL;
-  if (getifaddrs (&ifa) != 0)
-    {
-      /* We cannot determine what interfaces are available.  Be
-	 pessimistic.  */
-      *seen_ipv4 = true;
-      *seen_ipv6 = true;
-      return;
-    }
-
-  *seen_ipv4 = false;
-  *seen_ipv6 = false;
-
-  struct ifaddrs *runp;
-  for (runp = ifa; runp != NULL; runp = runp->ifa_next)
-    if (runp->ifa_addr->sa_family == PF_INET)
-      *seen_ipv4 = true;
-    else if (runp->ifa_addr->sa_family == PF_INET6)
-      *seen_ipv6 = true;
-
-  (void) freeifaddrs (ifa);
-}
-
-
-void
-__free_in6ai (struct in6addrinfo *in6ai)
-{
-  /* Nothing to do.  */
-}
-
-
-#if IS_IN (nscd)
-uint32_t
-__bump_nl_timestamp (void)
-{
-  return 0;
-}
-#endif
diff --git a/inet/deadline.c b/inet/deadline.c
deleted file mode 100644
index c1fa415a39..0000000000
--- a/inet/deadline.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/* Computing deadlines for timeouts.
-   Copyright (C) 2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <net-internal.h>
-
-#include <assert.h>
-#include <limits.h>
-#include <stdio.h>
-#include <stdint.h>
-#include <time.h>
-
-struct deadline_current_time internal_function
-__deadline_current_time (void)
-{
-  struct deadline_current_time result;
-  if (__clock_gettime (CLOCK_MONOTONIC, &result.current) != 0)
-    {
-      struct timeval current_tv;
-      if (__gettimeofday (&current_tv, NULL) == 0)
-        __libc_fatal ("Fatal error: gettimeofday system call failed\n");
-      result.current.tv_sec = current_tv.tv_sec;
-      result.current.tv_nsec = current_tv.tv_usec * 1000;
-    }
-  assert (result.current.tv_sec >= 0);
-  return result;
-}
-
-/* A special deadline value for which __deadline_is_infinite is
-   true.  */
-static inline struct deadline
-infinite_deadline (void)
-{
-  return (struct deadline) { { -1, -1 } };
-}
-
-struct deadline internal_function
-__deadline_from_timeval (struct deadline_current_time current,
-                         struct timeval tv)
-{
-  assert (__is_timeval_valid_timeout (tv));
-
-  /* Compute second-based deadline.  Perform the addition in
-     uintmax_t, which is unsigned, to simply overflow detection.  */
-  uintmax_t sec = current.current.tv_sec;
-  sec += tv.tv_sec;
-  if (sec < (uintmax_t) tv.tv_sec)
-    return infinite_deadline ();
-
-  /* Compute nanosecond deadline.  */
-  int nsec = current.current.tv_nsec + tv.tv_usec * 1000;
-  if (nsec >= 1000 * 1000 * 1000)
-    {
-      /* Carry nanosecond overflow to seconds.  */
-      nsec -= 1000 * 1000 * 1000;
-      if (sec + 1 < sec)
-        return infinite_deadline ();
-      ++sec;
-    }
-  /* This uses a GCC extension, otherwise these casts for detecting
-     overflow would not be defined.  */
-  if ((time_t) sec < 0 || sec != (uintmax_t) (time_t) sec)
-    return infinite_deadline ();
-
-  return (struct deadline) { { sec, nsec } };
-}
-
-int internal_function
-__deadline_to_ms (struct deadline_current_time current,
-                  struct deadline deadline)
-{
-  if (__deadline_is_infinite (deadline))
-    return INT_MAX;
-
-  if (current.current.tv_sec > deadline.absolute.tv_sec
-      || (current.current.tv_sec == deadline.absolute.tv_sec
-          && current.current.tv_nsec >= deadline.absolute.tv_nsec))
-    return 0;
-  time_t sec = deadline.absolute.tv_sec - current.current.tv_sec;
-  if (sec >= INT_MAX)
-    /* This value will overflow below.  */
-    return INT_MAX;
-  int nsec = deadline.absolute.tv_nsec - current.current.tv_nsec;
-  if (nsec < 0)
-    {
-      /* Borrow from the seconds field.  */
-      assert (sec > 0);
-      --sec;
-      nsec += 1000 * 1000 * 1000;
-    }
-
-  /* Prepare for rounding up to milliseconds.  */
-  nsec += 999999;
-  if (nsec > 1000 * 1000 * 1000)
-    {
-      assert (sec < INT_MAX);
-      ++sec;
-      nsec -= 1000 * 1000 * 1000;
-    }
-
-  unsigned int msec = nsec / (1000 * 1000);
-  if (sec > INT_MAX / 1000)
-    return INT_MAX;
-  msec += sec * 1000;
-  if (msec > INT_MAX)
-    return INT_MAX;
-  return msec;
-}
diff --git a/inet/ether_aton.c b/inet/ether_aton.c
deleted file mode 100644
index 830389e395..0000000000
--- a/inet/ether_aton.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netinet/ether.h>
-
-
-struct ether_addr *
-ether_aton (const char *asc)
-{
-  static struct ether_addr result;
-
-  return ether_aton_r (asc, &result);
-}
diff --git a/inet/ether_aton_r.c b/inet/ether_aton_r.c
deleted file mode 100644
index 7b558325ea..0000000000
--- a/inet/ether_aton_r.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <ctype.h>
-#include <stdlib.h>
-#include <netinet/ether.h>
-#include <netinet/if_ether.h>
-
-
-struct ether_addr *
-ether_aton_r (const char *asc, struct ether_addr *addr)
-{
-  size_t cnt;
-
-  for (cnt = 0; cnt < 6; ++cnt)
-    {
-      unsigned int number;
-      char ch;
-
-      ch = _tolower (*asc++);
-      if ((ch < '0' || ch > '9') && (ch < 'a' || ch > 'f'))
-	return NULL;
-      number = isdigit (ch) ? (ch - '0') : (ch - 'a' + 10);
-
-      ch = _tolower (*asc);
-      if ((cnt < 5 && ch != ':') || (cnt == 5 && ch != '\0' && !isspace (ch)))
-	{
-	  ++asc;
-	  if ((ch < '0' || ch > '9') && (ch < 'a' || ch > 'f'))
-	    return NULL;
-	  number <<= 4;
-	  number += isdigit (ch) ? (ch - '0') : (ch - 'a' + 10);
-
-	  ch = *asc;
-	  if (cnt < 5 && ch != ':')
-	    return NULL;
-	}
-
-      /* Store result.  */
-      addr->ether_addr_octet[cnt] = (unsigned char) number;
-
-      /* Skip ':'.  */
-      ++asc;
-    }
-
-  return addr;
-}
-libc_hidden_def (ether_aton_r)
diff --git a/inet/ether_hton.c b/inet/ether_hton.c
deleted file mode 100644
index a5523986c9..0000000000
--- a/inet/ether_hton.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <netinet/ether.h>
-#include <netinet/if_ether.h>
-#include <string.h>
-
-#include "../nss/nsswitch.h"
-
-/* Type of the lookup function we need here.  */
-typedef int (*lookup_function) (const char *, struct etherent *, char *, int,
-				int *);
-
-/* The lookup function for the first entry of this service.  */
-extern int __nss_ethers_lookup (service_user **nip, const char *name,
-				void **fctp) internal_function;
-
-
-int
-ether_hostton (const char *hostname, struct ether_addr *addr)
-{
-  static service_user *startp;
-  static lookup_function start_fct;
-  service_user *nip;
-  union
-  {
-    lookup_function f;
-    void *ptr;
-  } fct;
-  int no_more;
-  enum nss_status status = NSS_STATUS_UNAVAIL;
-  struct etherent etherent;
-
-  if (startp == NULL)
-    {
-      no_more = __nss_ethers_lookup (&nip, "gethostton_r", &fct.ptr);
-      if (no_more)
-	startp = (service_user *) -1;
-      else
-	{
-	  startp = nip;
-	  start_fct = fct.f;
-	}
-    }
-  else
-    {
-      fct.f = start_fct;
-      no_more = (nip = startp) == (service_user *) -1;
-    }
-
-  while (no_more == 0)
-    {
-      char buffer[1024];
-
-      status = (*fct.f) (hostname, &etherent, buffer, sizeof buffer, &errno);
-
-      no_more = __nss_next2 (&nip, "gethostton_r", NULL, &fct.ptr, status, 0);
-    }
-
-  if (status == NSS_STATUS_SUCCESS)
-    memcpy (addr, etherent.e_addr.ether_addr_octet,
-	    sizeof (struct ether_addr));
-
-  return status == NSS_STATUS_SUCCESS ? 0 : -1;
-}
diff --git a/inet/ether_line.c b/inet/ether_line.c
deleted file mode 100644
index 0e2cbbbac6..0000000000
--- a/inet/ether_line.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-#include <netinet/ether.h>
-#include <netinet/if_ether.h>
-
-
-int
-ether_line (const char *line, struct ether_addr *addr, char *hostname)
-{
-  for (size_t cnt = 0; cnt < 6; ++cnt)
-    {
-      unsigned int number;
-      char ch;
-
-      ch = _tolower (*line++);
-      if ((ch < '0' || ch > '9') && (ch < 'a' || ch > 'f'))
-	return -1;
-      number = isdigit (ch) ? (ch - '0') : (ch - 'a' + 10);
-
-      ch = _tolower (*line);
-      if ((cnt < 5 && ch != ':') || (cnt == 5 && ch != '\0' && !isspace (ch)))
-	{
-	  ++line;
-	  if ((ch < '0' || ch > '9') && (ch < 'a' || ch > 'f'))
-	    return -1;
-	  number <<= 4;
-	  number += isdigit (ch) ? (ch - '0') : (ch - 'a' + 10);
-
-	  ch = *line;
-	  if (cnt < 5 && ch != ':')
-	    return -1;
-	}
-
-      /* Store result.  */
-      addr->ether_addr_octet[cnt] = (unsigned char) number;
-
-      /* Skip ':'.  */
-      if (ch != '\0')
-	++line;
-    }
-
-  /* Skip initial whitespace.  */
-  while (isspace (*line))
-    ++line;
-
-  if (*line == '#' || *line == '\0')
-    /* No hostname.  */
-    return -1;
-
-  /* The hostname is up to the next non-space character.  */
-  /* XXX This can cause trouble because the hostname might be too long
-     but we have no possibility to check it here.  */
-  while (*line != '\0' && *line != '#' && !isspace (*line))
-    *hostname++ = *line++;
-  *hostname = '\0';
-
-  return 0;
-}
diff --git a/inet/ether_ntoa.c b/inet/ether_ntoa.c
deleted file mode 100644
index 1e061bae73..0000000000
--- a/inet/ether_ntoa.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netinet/ether.h>
-#include <netinet/if_ether.h>
-
-
-char *
-ether_ntoa (const struct ether_addr *addr)
-{
-  static char asc[18];
-
-  return ether_ntoa_r (addr, asc);
-}
diff --git a/inet/ether_ntoa_r.c b/inet/ether_ntoa_r.c
deleted file mode 100644
index 0d735a98b5..0000000000
--- a/inet/ether_ntoa_r.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdio.h>
-#include <netinet/ether.h>
-#include <netinet/if_ether.h>
-
-
-char *
-ether_ntoa_r (const struct ether_addr *addr, char *buf)
-{
-  sprintf (buf, "%x:%x:%x:%x:%x:%x",
-	   addr->ether_addr_octet[0], addr->ether_addr_octet[1],
-	   addr->ether_addr_octet[2], addr->ether_addr_octet[3],
-	   addr->ether_addr_octet[4], addr->ether_addr_octet[5]);
-  return buf;
-}
-libc_hidden_def (ether_ntoa_r)
diff --git a/inet/ether_ntoh.c b/inet/ether_ntoh.c
deleted file mode 100644
index b2f7422ace..0000000000
--- a/inet/ether_ntoh.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <netinet/ether.h>
-#include <netinet/if_ether.h>
-#include <string.h>
-
-#include <nss/nsswitch.h>
-
-
-/* Type of the lookup function we need here.  */
-typedef int (*lookup_function) (const struct ether_addr *, struct etherent *,
-				char *, size_t, int *);
-
-/* The lookup function for the first entry of this service.  */
-extern int __nss_ethers_lookup (service_user **nip, const char *name,
-				void **fctp) internal_function;
-
-
-int
-ether_ntohost (char *hostname, const struct ether_addr *addr)
-{
-  static service_user *startp;
-  static lookup_function start_fct;
-  service_user *nip;
-  union
-  {
-    lookup_function f;
-    void *ptr;
-  } fct;
-  int no_more;
-  enum nss_status status = NSS_STATUS_UNAVAIL;
-  struct etherent etherent;
-
-  if (startp == NULL)
-    {
-      no_more = __nss_ethers_lookup (&nip, "getntohost_r", &fct.ptr);
-      if (no_more)
-	startp = (service_user *) -1;
-      else
-	{
-	  startp = nip;
-	  start_fct = fct.f;
-	}
-    }
-  else
-    {
-      fct.f = start_fct;
-      no_more = (nip = startp) == (service_user *) -1;
-    }
-
-  while (no_more == 0)
-    {
-      char buffer[1024];
-
-      status = (*fct.f) (addr, &etherent, buffer, sizeof buffer, &errno);
-
-      no_more = __nss_next2 (&nip, "getntohost_r", NULL, &fct.ptr, status, 0);
-    }
-
-  if (status == NSS_STATUS_SUCCESS)
-    /* XXX This is a potential cause of trouble because the size of
-       the HOSTNAME buffer is not known but the interface does not
-       provide this information.  */
-    strcpy (hostname, etherent.e_name);
-
-  return status == NSS_STATUS_SUCCESS ? 0 : -1;
-}
diff --git a/inet/getaliasent.c b/inet/getaliasent.c
deleted file mode 100644
index f5bb4f6732..0000000000
--- a/inet/getaliasent.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <aliases.h>
-
-
-#define LOOKUP_TYPE	struct aliasent
-#define	GETFUNC_NAME	getaliasent
-#define BUFLEN		1024
-
-/* There is no nscd support for the aliases file.  */
-#undef	USE_NSCD
-
-#include "../nss/getXXent.c"
diff --git a/inet/getaliasent_r.c b/inet/getaliasent_r.c
deleted file mode 100644
index c018c52730..0000000000
--- a/inet/getaliasent_r.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <aliases.h>
-
-
-#define LOOKUP_TYPE		struct aliasent
-#define SETFUNC_NAME		setaliasent
-#define	GETFUNC_NAME		getaliasent
-#define	ENDFUNC_NAME		endaliasent
-#define DATABASE_NAME		aliases
-
-/* There is no nscd support for the aliases file.  */
-#undef	USE_NSCD
-
-#include "../nss/getXXent_r.c"
diff --git a/inet/getaliasname.c b/inet/getaliasname.c
deleted file mode 100644
index fad022cc35..0000000000
--- a/inet/getaliasname.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <aliases.h>
-
-
-#define LOOKUP_TYPE	struct aliasent
-#define FUNCTION_NAME	getaliasbyname
-#define DATABASE_NAME	aliases
-#define ADD_PARAMS	const char *name
-#define ADD_VARIABLES	name
-#define BUFLEN		1024
-
-/* There is no nscd support for the aliases file.  */
-#undef	USE_NSCD
-
-#include "../nss/getXXbyYY.c"
diff --git a/inet/getaliasname_r.c b/inet/getaliasname_r.c
deleted file mode 100644
index 20d5be6883..0000000000
--- a/inet/getaliasname_r.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <aliases.h>
-
-
-#define LOOKUP_TYPE		struct aliasent
-#define FUNCTION_NAME		getaliasbyname
-#define DATABASE_NAME		aliases
-#define ADD_PARAMS		const char *name
-#define ADD_VARIABLES		name
-
-/* There is no nscd support for the aliases file.  */
-#undef	USE_NSCD
-
-#include "../nss/getXXbyYY_r.c"
diff --git a/inet/gethstbyad.c b/inet/gethstbyad.c
deleted file mode 100644
index 9604c4b593..0000000000
--- a/inet/gethstbyad.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE	struct hostent
-#define FUNCTION_NAME	gethostbyaddr
-#define DATABASE_NAME	hosts
-#define ADD_PARAMS	const void *addr, socklen_t len, int type
-#define ADD_VARIABLES	addr, len, type
-#define BUFLEN		1024
-#define NEED_H_ERRNO	1
-
-#include "../nss/getXXbyYY.c"
diff --git a/inet/gethstbyad_r.c b/inet/gethstbyad_r.c
deleted file mode 100644
index 88f428c1db..0000000000
--- a/inet/gethstbyad_r.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-#include <string.h>
-
-
-#define LOOKUP_TYPE	struct hostent
-#define FUNCTION_NAME	gethostbyaddr
-#define DATABASE_NAME	hosts
-#define ADD_PARAMS	const void *addr, socklen_t len, int type
-#define ADD_VARIABLES	addr, len, type
-#define NEED_H_ERRNO	1
-#define NEED__RES	1
-#define NEED__RES_HCONF	1
-/* If the addr parameter is the IPv6 unspecified address no query must
-   be performed.  */
-#define PREPROCESS \
-  if (len == sizeof (struct in6_addr)					      \
-      && __builtin_expect (memcmp (&__in6addr_any, addr,		      \
-				   sizeof (struct in6_addr)), 1) == 0)	      \
-    {									      \
-      *h_errnop = HOST_NOT_FOUND;					      \
-      *result = NULL;							      \
-      return ENOENT;							      \
-    }
-#define POSTPROCESS \
-  if (status == NSS_STATUS_SUCCESS)					      \
-    {									      \
-      _res_hconf_reorder_addrs (resbuf);				      \
-      _res_hconf_trim_domains (resbuf);					      \
-    }
-
-/* Special name for the lookup function.  */
-#define DB_LOOKUP_FCT __nss_hosts_lookup2
-
-#include "../nss/getXXbyYY_r.c"
diff --git a/inet/gethstbynm.c b/inet/gethstbynm.c
deleted file mode 100644
index 57125fc7f6..0000000000
--- a/inet/gethstbynm.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <ctype.h>
-#include <errno.h>
-#include <netdb.h>
-#include <string.h>
-#include <arpa/inet.h>
-#include <netinet/in.h>
-
-
-#define LOOKUP_TYPE	struct hostent
-#define FUNCTION_NAME	gethostbyname
-#define DATABASE_NAME	hosts
-#define ADD_PARAMS	const char *name
-#define ADD_VARIABLES	name
-#define BUFLEN		1024
-#define NEED_H_ERRNO	1
-
-#define HANDLE_DIGITS_DOTS	1
-
-#include <nss/getXXbyYY.c>
diff --git a/inet/gethstbynm2.c b/inet/gethstbynm2.c
deleted file mode 100644
index 5aac4d7dad..0000000000
--- a/inet/gethstbynm2.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <ctype.h>
-#include <errno.h>
-#include <netdb.h>
-#include <string.h>
-#include <arpa/inet.h>
-#include <netinet/in.h>
-
-
-#define LOOKUP_TYPE	struct hostent
-#define FUNCTION_NAME	gethostbyname2
-#define DATABASE_NAME	hosts
-#define ADD_PARAMS	const char *name, int af
-#define ADD_VARIABLES	name, af
-#define BUFLEN		1024
-#define NEED_H_ERRNO	1
-
-#define HANDLE_DIGITS_DOTS	1
-#define HAVE_AF			1
-
-#include "../nss/getXXbyYY.c"
diff --git a/inet/gethstbynm2_r.c b/inet/gethstbynm2_r.c
deleted file mode 100644
index 5704797990..0000000000
--- a/inet/gethstbynm2_r.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <ctype.h>
-#include <errno.h>
-#include <netdb.h>
-#include <string.h>
-#include <arpa/inet.h>
-#include <netinet/in.h>
-
-
-#define LOOKUP_TYPE	struct hostent
-#define FUNCTION_NAME	gethostbyname2
-#define DATABASE_NAME	hosts
-#define ADD_PARAMS	const char *name, int af
-#define ADD_VARIABLES	name, af
-#define NEED_H_ERRNO	1
-#define NEED__RES_HCONF	1
-#define POSTPROCESS \
-  if (status == NSS_STATUS_SUCCESS)					      \
-    _res_hconf_reorder_addrs (resbuf);
-
-#define HANDLE_DIGITS_DOTS	1
-#define HAVE_LOOKUP_BUFFER	1
-#define HAVE_AF			1
-
-/* Special name for the lookup function.  */
-#define DB_LOOKUP_FCT __nss_hosts_lookup2
-
-#include "../nss/getXXbyYY_r.c"
diff --git a/inet/gethstbynm_r.c b/inet/gethstbynm_r.c
deleted file mode 100644
index 3758a9dde8..0000000000
--- a/inet/gethstbynm_r.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <ctype.h>
-#include <errno.h>
-#include <netdb.h>
-#include <string.h>
-#include <arpa/inet.h>
-#include <netinet/in.h>
-
-
-#define LOOKUP_TYPE	struct hostent
-#define FUNCTION_NAME	gethostbyname
-#define DATABASE_NAME	hosts
-#define ADD_PARAMS	const char *name
-#define ADD_VARIABLES	name
-#define NEED_H_ERRNO	1
-#define NEED__RES_HCONF	1
-#define POSTPROCESS \
-  if (status == NSS_STATUS_SUCCESS)					      \
-    _res_hconf_reorder_addrs (resbuf);
-
-#define HANDLE_DIGITS_DOTS	1
-#define HAVE_LOOKUP_BUFFER	1
-
-/* Special name for the lookup function.  */
-#define DB_LOOKUP_FCT __nss_hosts_lookup2
-
-#include "../nss/getXXbyYY_r.c"
diff --git a/inet/gethstent.c b/inet/gethstent.c
deleted file mode 100644
index b7faf9f72c..0000000000
--- a/inet/gethstent.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE	struct hostent
-#define	GETFUNC_NAME	gethostent
-#define BUFLEN		1024
-#define NEED_H_ERRNO	1
-
-#include "../nss/getXXent.c"
diff --git a/inet/gethstent_r.c b/inet/gethstent_r.c
deleted file mode 100644
index dacbbc99f8..0000000000
--- a/inet/gethstent_r.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE	struct hostent
-#define SETFUNC_NAME	sethostent
-#define	GETFUNC_NAME	gethostent
-#define	ENDFUNC_NAME	endhostent
-#define DATABASE_NAME	hosts
-#define STAYOPEN	int stayopen
-#define STAYOPEN_VAR	stayopen
-#define NEED_H_ERRNO	1
-#define NEED__RES	1
-
-/* Special name for the lookup function.  */
-#define DB_LOOKUP_FCT __nss_hosts_lookup2
-
-#include "../nss/getXXent_r.c"
diff --git a/inet/getipv4sourcefilter.c b/inet/getipv4sourcefilter.c
deleted file mode 100644
index 5b1734ccfe..0000000000
--- a/inet/getipv4sourcefilter.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Get source filter.  Stub version.
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stdint.h>
-#include <netinet/in.h>
-
-
-int
-getipv4sourcefilter (int s, struct in_addr interface, struct in_addr group,
-		     uint32_t *fmode, uint32_t *numsrc, struct in_addr *slist)
-{
-  __set_errno (ENOSYS);
-  return -1;
-}
-stub_warning (getipv4sourcefilter)
diff --git a/inet/getnameinfo.c b/inet/getnameinfo.c
deleted file mode 100644
index 5d2b9b7559..0000000000
--- a/inet/getnameinfo.c
+++ /dev/null
@@ -1,563 +0,0 @@
-/* Convert socket address to string using Name Service Switch modules.
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* The Inner Net License, Version 2.00
-
-  The author(s) grant permission for redistribution and use in source and
-binary forms, with or without modification, of the software and documentation
-provided that the following conditions are met:
-
-0. If you receive a version of the software that is specifically labelled
-   as not being for redistribution (check the version message and/or README),
-   you are not permitted to redistribute that version of the software in any
-   way or form.
-1. All terms of the all other applicable copyrights and licenses must be
-   followed.
-2. Redistributions of source code must retain the authors' copyright
-   notice(s), this list of conditions, and the following disclaimer.
-3. Redistributions in binary form must reproduce the authors' copyright
-   notice(s), this list of conditions, and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-4. [The copyright holder has authorized the removal of this clause.]
-5. Neither the name(s) of the author(s) nor the names of its contributors
-   may be used to endorse or promote products derived from this software
-   without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY ITS AUTHORS AND CONTRIBUTORS ``AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-  If these license terms cause you a real problem, contact the author.  */
-
-/* This software is Copyright 1996 by Craig Metz, All Rights Reserved.  */
-
-#include <errno.h>
-#include <netdb.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <stdint.h>
-#include <arpa/inet.h>
-#include <net/if.h>
-#include <netinet/in.h>
-#include <sys/param.h>
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <sys/un.h>
-#include <sys/utsname.h>
-#include <libc-lock.h>
-#include <scratch_buffer.h>
-
-#ifdef HAVE_LIBIDN
-# include <libidn/idna.h>
-extern int __idna_to_unicode_lzlz (const char *input, char **output,
-				   int flags);
-#endif
-
-#ifndef min
-# define min(x,y) (((x) > (y)) ? (y) : (x))
-#endif /* min */
-
-libc_freeres_ptr (static char *domain);
-
-
-static char *
-internal_function
-nrl_domainname (void)
-{
-  static int not_first;
-
-  if (! not_first)
-    {
-      __libc_lock_define_initialized (static, lock);
-      __libc_lock_lock (lock);
-
-      if (! not_first)
-	{
-	  char *c;
-	  struct hostent *h, th;
-	  int herror;
-	  struct scratch_buffer tmpbuf;
-
-	  scratch_buffer_init (&tmpbuf);
-	  not_first = 1;
-
-	  while (__gethostbyname_r ("localhost", &th,
-				    tmpbuf.data, tmpbuf.length,
-				    &h, &herror))
-	    {
-	      if (herror == NETDB_INTERNAL && errno == ERANGE)
-		{
-		  if (!scratch_buffer_grow (&tmpbuf))
-		    goto done;
-		}
-	      else
-		break;
-	    }
-
-	  if (h && (c = strchr (h->h_name, '.')))
-	    domain = __strdup (++c);
-	  else
-	    {
-	      /* The name contains no domain information.  Use the name
-		 now to get more information.  */
-	      while (__gethostname (tmpbuf.data, tmpbuf.length))
-		if (!scratch_buffer_grow (&tmpbuf))
-		  goto done;
-
-	      if ((c = strchr (tmpbuf.data, '.')))
-		domain = __strdup (++c);
-	      else
-		{
-		  /* We need to preserve the hostname.  */
-		  const char *hstname = strdupa (tmpbuf.data);
-
-		  while (__gethostbyname_r (hstname, &th,
-					    tmpbuf.data, tmpbuf.length,
-					    &h, &herror))
-		    {
-		      if (herror == NETDB_INTERNAL && errno == ERANGE)
-			{
-			  if (!scratch_buffer_grow (&tmpbuf))
-			    goto done;
-			}
-		      else
-			break;
-		    }
-
-		  if (h && (c = strchr(h->h_name, '.')))
-		    domain = __strdup (++c);
-		  else
-		    {
-		      struct in_addr in_addr;
-
-		      in_addr.s_addr = htonl (INADDR_LOOPBACK);
-
-		      while (__gethostbyaddr_r ((const char *) &in_addr,
-						sizeof (struct in_addr),
-						AF_INET, &th,
-						tmpbuf.data, tmpbuf.length,
-						&h, &herror))
-			{
-			  if (herror == NETDB_INTERNAL && errno == ERANGE)
-			    {
-			      if (!scratch_buffer_grow (&tmpbuf))
-				goto done;
-			    }
-			  else
-			    break;
-			}
-
-		      if (h && (c = strchr (h->h_name, '.')))
-			domain = __strdup (++c);
-		    }
-		}
-	    }
-	done:
-	  scratch_buffer_free (&tmpbuf);
-	}
-
-      __libc_lock_unlock (lock);
-    }
-
-  return domain;
-};
-
-/* Copy a string to a destination buffer with length checking.  Return
-   EAI_OVERFLOW if the buffer is not large enough, and 0 on
-   success.  */
-static int
-checked_copy (char *dest, size_t destlen, const char *source)
-{
-  size_t source_length = strlen (source);
-  if (source_length + 1 > destlen)
-    return EAI_OVERFLOW;
-  memcpy (dest, source, source_length + 1);
-  return 0;
-}
-
-/* Helper function for CHECKED_SNPRINTF below.  */
-static int
-check_sprintf_result (int result, size_t destlen)
-{
-  if (result < 0)
-    return EAI_SYSTEM;
-  if ((size_t) result >= destlen)
-    /* If ret == destlen, there was no room for the terminating NUL
-       character.  */
-    return EAI_OVERFLOW;
-  return 0;
-}
-
-/* Format a string in the destination buffer.  Return 0 on success,
-   EAI_OVERFLOW in case the buffer is too small, or EAI_SYSTEM on any
-   other error.  */
-#define CHECKED_SNPRINTF(dest, destlen, format, ...)			\
-  check_sprintf_result							\
-    (__snprintf (dest, destlen, format, __VA_ARGS__), destlen)
-
-/* Convert host name, AF_INET/AF_INET6 case, name only.  */
-static int
-gni_host_inet_name (struct scratch_buffer *tmpbuf,
-		    const struct sockaddr *sa, socklen_t addrlen,
-		    char *host, socklen_t hostlen, int flags)
-{
-  int herrno;
-  struct hostent th;
-  struct hostent *h = NULL;
-  if (sa->sa_family == AF_INET6)
-    {
-      const struct sockaddr_in6 *sin6p = (const struct sockaddr_in6 *) sa;
-      while (__gethostbyaddr_r (&sin6p->sin6_addr, sizeof(struct in6_addr),
-				AF_INET6, &th, tmpbuf->data, tmpbuf->length,
-				&h, &herrno))
-	if (herrno == NETDB_INTERNAL && errno == ERANGE)
-	  {
-	    if (!scratch_buffer_grow (tmpbuf))
-	      {
-		__set_h_errno (herrno);
-		return EAI_MEMORY;
-	      }
-	  }
-	else
-	  break;
-    }
-  else
-    {
-      const struct sockaddr_in *sinp = (const struct sockaddr_in *) sa;
-      while (__gethostbyaddr_r (&sinp->sin_addr, sizeof(struct in_addr),
-				AF_INET, &th, tmpbuf->data, tmpbuf->length,
-				&h, &herrno))
-	if (herrno == NETDB_INTERNAL && errno == ERANGE)
-	    {
-	      if (!scratch_buffer_grow (tmpbuf))
-		{
-		  __set_h_errno (herrno);
-		  return EAI_MEMORY;
-		}
-	    }
-	else
-	  break;
-    }
-
-  if (h == NULL)
-    {
-      if (herrno == NETDB_INTERNAL)
-	{
-	  __set_h_errno (herrno);
-	  return EAI_SYSTEM;
-	}
-      if (herrno == TRY_AGAIN)
-	{
-	  __set_h_errno (herrno);
-	  return EAI_AGAIN;
-	}
-    }
-
-  if (h)
-    {
-      char *c;
-      if ((flags & NI_NOFQDN)
-	  && (c = nrl_domainname ())
-	  && (c = strstr (h->h_name, c))
-	  && (c != h->h_name) && (*(--c) == '.'))
-	/* Terminate the string after the prefix.  */
-	*c = '\0';
-
-#ifdef HAVE_LIBIDN
-      /* If requested, convert from the IDN format.  */
-      if (flags & NI_IDN)
-	{
-	  int idn_flags = 0;
-	  if  (flags & NI_IDN_ALLOW_UNASSIGNED)
-	    idn_flags |= IDNA_ALLOW_UNASSIGNED;
-	  if (flags & NI_IDN_USE_STD3_ASCII_RULES)
-	    idn_flags |= IDNA_USE_STD3_ASCII_RULES;
-
-	  char *out;
-	  int rc = __idna_to_unicode_lzlz (h->h_name, &out,
-					   idn_flags);
-	  if (rc != IDNA_SUCCESS)
-	    {
-	      if (rc == IDNA_MALLOC_ERROR)
-		return EAI_MEMORY;
-	      if (rc == IDNA_DLOPEN_ERROR)
-		return EAI_SYSTEM;
-	      return EAI_IDN_ENCODE;
-	    }
-
-	  if (out != h->h_name)
-	    {
-	      h->h_name = strdupa (out);
-	      free (out);
-	    }
-	}
-#endif
-
-      size_t len = strlen (h->h_name) + 1;
-      if (len > hostlen)
-	return EAI_OVERFLOW;
-
-      memcpy (host, h->h_name, len);
-
-      return 0;
-    }
-
-  return EAI_NONAME;
-}
-
-/* Convert host name, AF_INET/AF_INET6 case, numeric conversion.  */
-static int
-gni_host_inet_numeric (struct scratch_buffer *tmpbuf,
-		       const struct sockaddr *sa, socklen_t addrlen,
-		       char *host, socklen_t hostlen, int flags)
-{
-  if (sa->sa_family == AF_INET6)
-    {
-      const struct sockaddr_in6 *sin6p = (const struct sockaddr_in6 *) sa;
-      if (inet_ntop (AF_INET6, &sin6p->sin6_addr, host, hostlen) == NULL)
-	return EAI_OVERFLOW;
-
-      uint32_t scopeid = sin6p->sin6_scope_id;
-      if (scopeid != 0)
-	{
-	  size_t used_hostlen = __strnlen (host, hostlen);
-	  /* Location of the scope string in the host buffer.  */
-	  char *scope_start = host + used_hostlen;
-	  size_t scope_length = hostlen - used_hostlen;
-
-	  if (IN6_IS_ADDR_LINKLOCAL (&sin6p->sin6_addr)
-	      || IN6_IS_ADDR_MC_LINKLOCAL (&sin6p->sin6_addr))
-	    {
-	      char scopebuf[IFNAMSIZ];
-	      if (if_indextoname (scopeid, scopebuf) != NULL)
-		return CHECKED_SNPRINTF
-		  (scope_start, scope_length,
-		   "%c%s", SCOPE_DELIMITER, scopebuf);
-	    }
-	  return CHECKED_SNPRINTF
-	    (scope_start, scope_length, "%c%u", SCOPE_DELIMITER, scopeid);
-	}
-    }
-  else
-    {
-      const struct sockaddr_in *sinp = (const struct sockaddr_in *) sa;
-      if (inet_ntop (AF_INET, &sinp->sin_addr, host, hostlen) == NULL)
-	return EAI_OVERFLOW;
-    }
-  return 0;
-}
-
-/* Convert AF_INET or AF_INET6 socket address, host part.  */
-static int
-gni_host_inet (struct scratch_buffer *tmpbuf,
-	       const struct sockaddr *sa, socklen_t addrlen,
-	       char *host, socklen_t hostlen, int flags)
-{
-  if (!(flags & NI_NUMERICHOST))
-    {
-      int result = gni_host_inet_name
-	(tmpbuf, sa, addrlen, host, hostlen, flags);
-      if (result != EAI_NONAME)
-	return result;
-    }
-
-  if (flags & NI_NAMEREQD)
-    return EAI_NONAME;
-  else
-    return gni_host_inet_numeric
-      (tmpbuf, sa, addrlen, host, hostlen, flags);
-}
-
-/* Convert AF_LOCAL socket address, host part.   */
-static int
-gni_host_local (struct scratch_buffer *tmpbuf,
-		const struct sockaddr *sa, socklen_t addrlen,
-		char *host, socklen_t hostlen, int flags)
-{
-  if (!(flags & NI_NUMERICHOST))
-    {
-      struct utsname utsname;
-      if (uname (&utsname) == 0)
-	return checked_copy (host, hostlen, utsname.nodename);
-    }
-
-  if (flags & NI_NAMEREQD)
-    return EAI_NONAME;
-
-  return checked_copy (host, hostlen, "localhost");
-}
-
-/* Convert the host part of an AF_LOCAK socket address.   */
-static int
-gni_host (struct scratch_buffer *tmpbuf,
-	  const struct sockaddr *sa, socklen_t addrlen,
-	  char *host, socklen_t hostlen, int flags)
-{
-  switch (sa->sa_family)
-    {
-    case AF_INET:
-    case AF_INET6:
-      return gni_host_inet (tmpbuf, sa, addrlen, host, hostlen, flags);
-
-    case AF_LOCAL:
-      return gni_host_local (tmpbuf, sa, addrlen, host, hostlen, flags);
-
-    default:
-      return EAI_FAMILY;
-    }
-}
-
-/* Convert service to string, AF_INET and AF_INET6 variant.  */
-static int
-gni_serv_inet (struct scratch_buffer *tmpbuf,
-	       const struct sockaddr *sa, socklen_t addrlen,
-	       char *serv, socklen_t servlen, int flags)
-{
-  _Static_assert
-    (offsetof (struct sockaddr_in, sin_port)
-     == offsetof (struct sockaddr_in6, sin6_port)
-     && sizeof (((struct sockaddr_in) {}).sin_port) == sizeof (in_port_t)
-     && sizeof (((struct sockaddr_in6) {}).sin6_port) == sizeof (in_port_t),
-     "AF_INET and AF_INET6 port consistency");
-  const struct sockaddr_in *sinp = (const struct sockaddr_in *) sa;
-  if (!(flags & NI_NUMERICSERV))
-    {
-      struct servent *s, ts;
-      int e;
-      while ((e = __getservbyport_r (sinp->sin_port,
-				     ((flags & NI_DGRAM)
-				      ? "udp" : "tcp"), &ts,
-				     tmpbuf->data, tmpbuf->length, &s)))
-	{
-	  if (e == ERANGE)
-	    {
-	      if (!scratch_buffer_grow (tmpbuf))
-		return EAI_MEMORY;
-	    }
-	  else
-	    break;
-	}
-      if (s)
-	return checked_copy (serv, servlen, s->s_name);
-      /* Fall through to numeric conversion.  */
-    }
-  return CHECKED_SNPRINTF (serv, servlen, "%d", ntohs (sinp->sin_port));
-}
-
-/* Convert service to string, AF_LOCAL variant.  */
-static int
-gni_serv_local (struct scratch_buffer *tmpbuf,
-	       const struct sockaddr *sa, socklen_t addrlen,
-	       char *serv, socklen_t servlen, int flags)
-{
-  return checked_copy
-    (serv, servlen, ((const struct sockaddr_un *) sa)->sun_path);
-}
-
-/* Convert service to string, dispatching to the implementations
-   above.  */
-static int
-gni_serv (struct scratch_buffer *tmpbuf,
-	  const struct sockaddr *sa, socklen_t addrlen,
-	  char *serv, socklen_t servlen, int flags)
-{
-  switch (sa->sa_family)
-    {
-    case AF_INET:
-    case AF_INET6:
-      return gni_serv_inet (tmpbuf, sa, addrlen, serv, servlen, flags);
-    case AF_LOCAL:
-      return gni_serv_local (tmpbuf, sa, addrlen, serv, servlen, flags);
-    default:
-      return EAI_FAMILY;
-    }
-}
-
-int
-getnameinfo (const struct sockaddr *sa, socklen_t addrlen, char *host,
-	     socklen_t hostlen, char *serv, socklen_t servlen,
-	     int flags)
-{
-  if (flags & ~(NI_NUMERICHOST|NI_NUMERICSERV|NI_NOFQDN|NI_NAMEREQD|NI_DGRAM
-#ifdef HAVE_LIBIDN
-		|NI_IDN|NI_IDN_ALLOW_UNASSIGNED|NI_IDN_USE_STD3_ASCII_RULES
-#endif
-		))
-    return EAI_BADFLAGS;
-
-  if (sa == NULL || addrlen < sizeof (sa_family_t))
-    return EAI_FAMILY;
-
-  if ((flags & NI_NAMEREQD) && host == NULL && serv == NULL)
-    return EAI_NONAME;
-
-  switch (sa->sa_family)
-    {
-    case AF_LOCAL:
-      if (addrlen < (socklen_t) offsetof (struct sockaddr_un, sun_path))
-	return EAI_FAMILY;
-      break;
-    case AF_INET:
-      if (addrlen < sizeof (struct sockaddr_in))
-	return EAI_FAMILY;
-      break;
-    case AF_INET6:
-      if (addrlen < sizeof (struct sockaddr_in6))
-	return EAI_FAMILY;
-      break;
-    default:
-      return EAI_FAMILY;
-    }
-
-  struct scratch_buffer tmpbuf;
-  scratch_buffer_init (&tmpbuf);
-
-  if (host != NULL && hostlen > 0)
-    {
-      int result = gni_host (&tmpbuf, sa, addrlen, host, hostlen, flags);
-      if (result != 0)
-	{
-	  scratch_buffer_free (&tmpbuf);
-	  return result;
-	}
-    }
-
-  if (serv && (servlen > 0))
-    {
-      int result = gni_serv (&tmpbuf, sa, addrlen, serv, servlen, flags);
-      if (result != 0)
-	{
-	  scratch_buffer_free (&tmpbuf);
-	  return result;
-	}
-    }
-
-  scratch_buffer_free (&tmpbuf);
-  return 0;
-}
-libc_hidden_def (getnameinfo)
diff --git a/inet/getnetbyad.c b/inet/getnetbyad.c
deleted file mode 100644
index 7a713a6d53..0000000000
--- a/inet/getnetbyad.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-#include <stdint.h>
-
-
-#define LOOKUP_TYPE	struct netent
-#define FUNCTION_NAME	getnetbyaddr
-#define DATABASE_NAME	networks
-#define ADD_PARAMS	uint32_t net, int type
-#define ADD_VARIABLES	net, type
-#define BUFLEN		1024
-#define NEED_H_ERRNO	1
-
-/* There is no nscd support for the networks file.  */
-#undef	USE_NSCD
-
-#include "../nss/getXXbyYY.c"
diff --git a/inet/getnetbyad_r.c b/inet/getnetbyad_r.c
deleted file mode 100644
index 608b838516..0000000000
--- a/inet/getnetbyad_r.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-#include <stdint.h>
-
-
-#define LOOKUP_TYPE		struct netent
-#define FUNCTION_NAME		getnetbyaddr
-#define DATABASE_NAME		networks
-#define ADD_PARAMS		uint32_t net, int type
-#define ADD_VARIABLES		net, type
-#define NEED__RES		1
-#define NEED_H_ERRNO		1
-
-/* There is no nscd support for the networks file.  */
-#undef	USE_NSCD
-
-#include "../nss/getXXbyYY_r.c"
diff --git a/inet/getnetbynm.c b/inet/getnetbynm.c
deleted file mode 100644
index 5a6e144017..0000000000
--- a/inet/getnetbynm.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE	struct netent
-#define FUNCTION_NAME	getnetbyname
-#define DATABASE_NAME	networks
-#define ADD_PARAMS	const char *name
-#define ADD_VARIABLES	name
-#define BUFLEN		1024
-#define NEED_H_ERRNO	1
-
-/* There is no nscd support for the networks file.  */
-#undef	USE_NSCD
-
-#include "../nss/getXXbyYY.c"
diff --git a/inet/getnetbynm_r.c b/inet/getnetbynm_r.c
deleted file mode 100644
index 90fb7141a7..0000000000
--- a/inet/getnetbynm_r.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE		struct netent
-#define FUNCTION_NAME		getnetbyname
-#define DATABASE_NAME		networks
-#define ADD_PARAMS		const char *name
-#define ADD_VARIABLES		name
-#define NEED__RES		1
-#define NEED_H_ERRNO		1
-
-/* There is no nscd support for the networks file.  */
-#undef	USE_NSCD
-
-#include "../nss/getXXbyYY_r.c"
diff --git a/inet/getnetent.c b/inet/getnetent.c
deleted file mode 100644
index 03fe497184..0000000000
--- a/inet/getnetent.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE	struct netent
-#define	GETFUNC_NAME	getnetent
-#define BUFLEN		1024
-#define NEED_H_ERRNO	1
-
-/* There is no nscd support for the networks file.  */
-#undef	USE_NSCD
-
-#include "../nss/getXXent.c"
diff --git a/inet/getnetent_r.c b/inet/getnetent_r.c
deleted file mode 100644
index ee832e2aa4..0000000000
--- a/inet/getnetent_r.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE		struct netent
-#define SETFUNC_NAME		setnetent
-#define	GETFUNC_NAME		getnetent
-#define	ENDFUNC_NAME		endnetent
-#define DATABASE_NAME		networks
-#define STAYOPEN		int stayopen
-#define STAYOPEN_VAR		stayopen
-#define NEED__RES		1
-#define NEED_H_ERRNO		1
-
-/* There is no nscd support for the networks file.  */
-#undef	USE_NSCD
-
-#include "../nss/getXXent_r.c"
diff --git a/inet/getnetgrent.c b/inet/getnetgrent.c
deleted file mode 100644
index 4064edcb61..0000000000
--- a/inet/getnetgrent.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <netdb.h>
-#include <stdlib.h>
-#include <libc-lock.h>
-
-/* Static buffer for return value.  We allocate it when needed.  */
-libc_freeres_ptr (static char *buffer);
-/* All three strings should fit in a block of 1kB size.  */
-#define BUFSIZE 1024
-
-
-
-static void
-allocate (void)
-{
-  buffer = (char *) malloc (BUFSIZE);
-}
-
-int
-getnetgrent (char **hostp, char **userp, char **domainp)
-{
-  __libc_once_define (static, once);
-  __libc_once (once, allocate);
-
-  if (buffer == NULL)
-    {
-      __set_errno (ENOMEM);
-      return -1;
-    }
-
-  return __getnetgrent_r (hostp, userp, domainp, buffer, BUFSIZE);
-}
diff --git a/inet/getnetgrent_r.c b/inet/getnetgrent_r.c
deleted file mode 100644
index 1b4eb65b89..0000000000
--- a/inet/getnetgrent_r.c
+++ /dev/null
@@ -1,535 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <atomic.h>
-#include <libc-lock.h>
-#include <errno.h>
-#include <netdb.h>
-#include <stdbool.h>
-#include <stdlib.h>
-#include <string.h>
-#include "netgroup.h"
-#include "nsswitch.h"
-#include <sysdep.h>
-#include <nscd/nscd_proto.h>
-
-
-/* Protect above variable against multiple uses at the same time.  */
-__libc_lock_define_initialized (static, lock)
-
-/* The whole information for the set/get/endnetgrent functions are
-   kept in this structure.  */
-static struct __netgrent dataset;
-
-/* The lookup function for the first entry of this service.  */
-extern int __nss_netgroup_lookup (service_user **nipp, const char *name,
-				  void **fctp) internal_function;
-
-/* Set up NIP to run through the services.  Return nonzero if there are no
-   services (left).  */
-static int
-setup (void **fctp, service_user **nipp)
-{
-  /* Remember the first service_entry, it's always the same.  */
-  static bool startp_initialized;
-  static service_user *startp;
-  int no_more;
-
-  if (!startp_initialized)
-    {
-      /* Executing this more than once at the same time must yield the
-	 same result every time.  So we need no locking.  */
-      no_more = __nss_netgroup_lookup (nipp, "setnetgrent", fctp);
-      startp = no_more ? (service_user *) -1 : *nipp;
-#ifdef PTR_MANGLE
-      PTR_MANGLE (startp);
-#endif
-      atomic_write_barrier ();
-      startp_initialized = true;
-    }
-  else
-    {
-      service_user *nip = startp;
-#ifdef PTR_DEMANGLE
-      PTR_DEMANGLE (nip);
-#endif
-      if (nip == (service_user *) -1)
-	/* No services at all.  */
-	return 1;
-
-      /* Reset to the beginning of the service list.  */
-      *nipp = nip;
-      /* Look up the first function.  */
-      no_more = __nss_lookup (nipp, "setnetgrent", NULL, fctp);
-    }
-  return no_more;
-}
-
-/* Free used memory.  */
-static void
-free_memory (struct __netgrent *data)
-{
-  while (data->known_groups != NULL)
-    {
-      struct name_list *tmp = data->known_groups;
-      data->known_groups = data->known_groups->next;
-      free (tmp);
-    }
-
-  while (data->needed_groups != NULL)
-    {
-      struct name_list *tmp = data->needed_groups;
-      data->needed_groups = data->needed_groups->next;
-      free (tmp);
-    }
-}
-
-static void
-endnetgrent_hook (struct __netgrent *datap)
-{
-  enum nss_status (*endfct) (struct __netgrent *);
-
-  if (datap->nip == NULL || datap->nip == (service_user *) -1l)
-    return;
-
-  endfct = __nss_lookup_function (datap->nip, "endnetgrent");
-  if (endfct != NULL)
-    (void) (*endfct) (datap);
-  datap->nip = NULL;
-}
-
-static int
-internal_function
-__internal_setnetgrent_reuse (const char *group, struct __netgrent *datap,
-			      int *errnop)
-{
-  union
-  {
-    enum nss_status (*f) (const char *, struct __netgrent *);
-    void *ptr;
-  } fct;
-  enum nss_status status = NSS_STATUS_UNAVAIL;
-  struct name_list *new_elem;
-
-  /* Free data from previous service.  */
-  endnetgrent_hook (datap);
-
-  /* Cycle through all the services and run their setnetgrent functions.  */
-  int no_more = setup (&fct.ptr, &datap->nip);
-  while (! no_more)
-    {
-      assert (datap->data == NULL);
-
-      /* Ignore status, we force check in `__nss_next2'.  */
-      status = DL_CALL_FCT (*fct.f, (group, datap));
-
-      service_user *old_nip = datap->nip;
-      no_more = __nss_next2 (&datap->nip, "setnetgrent", NULL, &fct.ptr,
-			     status, 0);
-
-      if (status == NSS_STATUS_SUCCESS && ! no_more)
-	{
-	  enum nss_status (*endfct) (struct __netgrent *);
-
-	  endfct = __nss_lookup_function (old_nip, "endnetgrent");
-	  if (endfct != NULL)
-	    (void) DL_CALL_FCT (*endfct, (datap));
-	}
-    }
-
-  /* Add the current group to the list of known groups.  */
-  size_t group_len = strlen (group) + 1;
-  new_elem = (struct name_list *) malloc (sizeof (struct name_list)
-					  + group_len);
-  if (new_elem == NULL)
-    {
-      *errnop = errno;
-      status = NSS_STATUS_TRYAGAIN;
-    }
-  else
-    {
-      new_elem->next = datap->known_groups;
-      memcpy (new_elem->name, group, group_len);
-      datap->known_groups = new_elem;
-    }
-
-  return status == NSS_STATUS_SUCCESS;
-}
-
-int
-internal_function
-__internal_setnetgrent (const char *group, struct __netgrent *datap)
-{
-  /* Free list of all netgroup names from last run.  */
-  free_memory (datap);
-
-  return __internal_setnetgrent_reuse (group, datap, &errno);
-}
-libc_hidden_def (__internal_setnetgrent)
-
-static int
-nscd_setnetgrent (const char *group)
-{
-#ifdef USE_NSCD
-  if (__nss_not_use_nscd_netgroup > 0
-      && ++__nss_not_use_nscd_netgroup > NSS_NSCD_RETRY)
-    __nss_not_use_nscd_netgroup = 0;
-
-  if (!__nss_not_use_nscd_netgroup
-      && !__nss_database_custom[NSS_DBSIDX_netgroup])
-    return __nscd_setnetgrent (group, &dataset);
-#endif
-  return -1;
-}
-
-int
-setnetgrent (const char *group)
-{
-  int result;
-
-  __libc_lock_lock (lock);
-
-  result = nscd_setnetgrent (group);
-  if (result < 0)
-    result = __internal_setnetgrent (group, &dataset);
-
-  __libc_lock_unlock (lock);
-
-  return result;
-}
-
-void
-internal_function
-__internal_endnetgrent (struct __netgrent *datap)
-{
-  endnetgrent_hook (datap);
-  /* Now free list of all netgroup names from last run.  */
-  free_memory (datap);
-}
-libc_hidden_def (__internal_endnetgrent)
-
-
-void
-endnetgrent (void)
-{
-  __libc_lock_lock (lock);
-
-  __internal_endnetgrent (&dataset);
-
-  __libc_lock_unlock (lock);
-}
-
-#ifdef USE_NSCD
-static const char *
-get_nonempty_val (const char *in)
-{
-  if (*in == '\0')
-    return NULL;
-  return in;
-}
-
-static enum nss_status
-nscd_getnetgrent (struct __netgrent *datap, char *buffer, size_t buflen,
-		  int *errnop)
-{
-  if (datap->cursor >= datap->data + datap->data_size)
-    return NSS_STATUS_UNAVAIL;
-
-  datap->type = triple_val;
-  datap->val.triple.host = get_nonempty_val (datap->cursor);
-  datap->cursor = (char *) __rawmemchr (datap->cursor, '\0') + 1;
-  datap->val.triple.user = get_nonempty_val (datap->cursor);
-  datap->cursor = (char *) __rawmemchr (datap->cursor, '\0') + 1;
-  datap->val.triple.domain = get_nonempty_val (datap->cursor);
-  datap->cursor = (char *) __rawmemchr (datap->cursor, '\0') + 1;
-
-  return NSS_STATUS_SUCCESS;
-}
-#endif
-
-int
-internal_function
-__internal_getnetgrent_r (char **hostp, char **userp, char **domainp,
-			  struct __netgrent *datap,
-			  char *buffer, size_t buflen, int *errnop)
-{
-  enum nss_status (*fct) (struct __netgrent *, char *, size_t, int *);
-
-  /* Initialize status to return if no more functions are found.  */
-  enum nss_status status = NSS_STATUS_NOTFOUND;
-
-  /* Run through available functions, starting with the same function last
-     run.  We will repeat each function as long as it succeeds, and then go
-     on to the next service action.  */
-  int no_more = datap->nip == NULL;
-  if (! no_more)
-    {
-#ifdef USE_NSCD
-      /* This bogus function pointer is a special marker left by
-	 __nscd_setnetgrent to tell us to use the data it left
-	 before considering any modules.  */
-      if (datap->nip == (service_user *) -1l)
-	fct = nscd_getnetgrent;
-      else
-#endif
-	{
-	  fct = __nss_lookup_function (datap->nip, "getnetgrent_r");
-	  no_more = fct == NULL;
-	}
-
-      while (! no_more)
-	{
-	  status = DL_CALL_FCT (*fct, (datap, buffer, buflen, &errno));
-
-	  if (status == NSS_STATUS_RETURN
-	      /* The service returned a NOTFOUND, but there are more groups that
-		 we need to resolve before we give up.  */
-	      || (status == NSS_STATUS_NOTFOUND && datap->needed_groups != NULL))
-	    {
-	      /* This was the last one for this group.  Look at next group
-		 if available.  */
-	      int found = 0;
-	      while (datap->needed_groups != NULL && ! found)
-		{
-		  struct name_list *tmp = datap->needed_groups;
-		  datap->needed_groups = datap->needed_groups->next;
-		  tmp->next = datap->known_groups;
-		  datap->known_groups = tmp;
-
-		  found = __internal_setnetgrent_reuse (datap->known_groups->name,
-							datap, errnop);
-		}
-
-	      if (found && datap->nip != NULL)
-		{
-		  fct = __nss_lookup_function (datap->nip, "getnetgrent_r");
-		  if (fct != NULL)
-		    continue;
-		}
-	    }
-	  else if (status == NSS_STATUS_SUCCESS && datap->type == group_val)
-	    {
-	      /* The last entry was a name of another netgroup.  */
-	      struct name_list *namep;
-
-	      /* Ignore if we've seen the name before.  */
-	      for (namep = datap->known_groups; namep != NULL;
-		   namep = namep->next)
-		if (strcmp (datap->val.group, namep->name) == 0)
-		  break;
-	      if (namep == NULL)
-		for (namep = datap->needed_groups; namep != NULL;
-		     namep = namep->next)
-		  if (strcmp (datap->val.group, namep->name) == 0)
-		    break;
-	      if (namep != NULL)
-		/* Really ignore.  */
-		continue;
-
-	      size_t group_len = strlen (datap->val.group) + 1;
-	      namep = (struct name_list *) malloc (sizeof (struct name_list)
-						  + group_len);
-	      if (namep == NULL)
-		/* We are out of memory.  */
-		status = NSS_STATUS_RETURN;
-	      else
-		{
-		  namep->next = datap->needed_groups;
-		  memcpy (namep->name, datap->val.group, group_len);
-		  datap->needed_groups = namep;
-		  /* And get the next entry.  */
-		  continue;
-		}
-	    }
-	  break;
-	}
-    }
-
-  if (status == NSS_STATUS_SUCCESS)
-    {
-      *hostp = (char *) datap->val.triple.host;
-      *userp = (char *) datap->val.triple.user;
-      *domainp = (char *) datap->val.triple.domain;
-    }
-
-  return status == NSS_STATUS_SUCCESS ? 1 : 0;
-}
-libc_hidden_def (__internal_getnetgrent_r)
-
-/* The real entry point.  */
-int
-__getnetgrent_r (char **hostp, char **userp, char **domainp,
-		 char *buffer, size_t buflen)
-{
-  enum nss_status status;
-
-  __libc_lock_lock (lock);
-
-  status = __internal_getnetgrent_r (hostp, userp, domainp, &dataset,
-				     buffer, buflen, &errno);
-
-  __libc_lock_unlock (lock);
-
-  return status;
-}
-weak_alias (__getnetgrent_r, getnetgrent_r)
-
-/* Test whether given (host,user,domain) triple is in NETGROUP.  */
-int
-innetgr (const char *netgroup, const char *host, const char *user,
-	 const char *domain)
-{
-#ifdef USE_NSCD
-  if (__nss_not_use_nscd_netgroup > 0
-      && ++__nss_not_use_nscd_netgroup > NSS_NSCD_RETRY)
-    __nss_not_use_nscd_netgroup = 0;
-
-  if (!__nss_not_use_nscd_netgroup
-      && !__nss_database_custom[NSS_DBSIDX_netgroup])
-    {
-      int result = __nscd_innetgr (netgroup, host, user, domain);
-      if (result >= 0)
-	return result;
-    }
-#endif
-
-  union
-  {
-    enum nss_status (*f) (const char *, struct __netgrent *);
-    void *ptr;
-  } setfct;
-  void (*endfct) (struct __netgrent *);
-  int (*getfct) (struct __netgrent *, char *, size_t, int *);
-  struct __netgrent entry;
-  int result = 0;
-  const char *current_group = netgroup;
-
-  memset (&entry, '\0', sizeof (entry));
-
-  /* Walk through the services until we found an answer or we shall
-     not work further.  We can do some optimization here.  Since all
-     services must provide the `setnetgrent' function we can do all
-     the work during one walk through the service list.  */
-  while (1)
-    {
-      int no_more = setup (&setfct.ptr, &entry.nip);
-      while (! no_more)
-	{
-	  assert (entry.data == NULL);
-
-	  /* Open netgroup.  */
-	  enum nss_status status = DL_CALL_FCT (*setfct.f,
-						(current_group, &entry));
-
-	  if (status == NSS_STATUS_SUCCESS
-	      && (getfct = __nss_lookup_function (entry.nip, "getnetgrent_r"))
-		 != NULL)
-	    {
-	      char buffer[1024];
-
-	      while (DL_CALL_FCT (*getfct,
-				  (&entry, buffer, sizeof buffer, &errno))
-		     == NSS_STATUS_SUCCESS)
-		{
-		  if (entry.type == group_val)
-		    {
-		      /* Make sure we haven't seen the name before.  */
-		      struct name_list *namep;
-
-		      for (namep = entry.known_groups; namep != NULL;
-			   namep = namep->next)
-			if (strcmp (entry.val.group, namep->name) == 0)
-			  break;
-		      if (namep == NULL)
-			for (namep = entry.needed_groups; namep != NULL;
-			     namep = namep->next)
-			  if (strcmp (entry.val.group, namep->name) == 0)
-			    break;
-		      if (namep == NULL
-			  && strcmp (netgroup, entry.val.group) != 0)
-			{
-			  size_t group_len = strlen (entry.val.group) + 1;
-			  namep =
-			    (struct name_list *) malloc (sizeof (*namep)
-							 + group_len);
-			  if (namep == NULL)
-			    {
-			      /* Out of memory, simply return.  */
-			      result = -1;
-			      break;
-			    }
-
-			  namep->next = entry.needed_groups;
-			  memcpy (namep->name, entry.val.group, group_len);
-			  entry.needed_groups = namep;
-			}
-		    }
-		  else
-		    {
-		      if ((entry.val.triple.host == NULL || host == NULL
-			   || __strcasecmp (entry.val.triple.host, host) == 0)
-			  && (entry.val.triple.user == NULL || user == NULL
-			      || strcmp (entry.val.triple.user, user) == 0)
-			  && (entry.val.triple.domain == NULL || domain == NULL
-			      || __strcasecmp (entry.val.triple.domain,
-					       domain) == 0))
-			{
-			  result = 1;
-			  break;
-			}
-		    }
-		}
-
-	      /* If we found one service which does know the given
-		 netgroup we don't try further.  */
-	      status = NSS_STATUS_RETURN;
-	    }
-
-	  /* Free all resources of the service.  */
-	  endfct = __nss_lookup_function (entry.nip, "endnetgrent");
-	  if (endfct != NULL)
-	    DL_CALL_FCT (*endfct, (&entry));
-
-	  if (result != 0)
-	    break;
-
-	  /* Look for the next service.  */
-	  no_more = __nss_next2 (&entry.nip, "setnetgrent", NULL,
-				 &setfct.ptr, status, 0);
-	}
-
-      if (result == 0 && entry.needed_groups != NULL)
-	{
-	  struct name_list *tmp = entry.needed_groups;
-	  entry.needed_groups = tmp->next;
-	  tmp->next = entry.known_groups;
-	  entry.known_groups = tmp;
-	  current_group = tmp->name;
-	  continue;
-	}
-
-      /* No way out.  */
-      break;
-    }
-
-  /* Free the memory.  */
-  free_memory (&entry);
-
-  return result == 1;
-}
-libc_hidden_def (innetgr)
diff --git a/inet/getproto.c b/inet/getproto.c
deleted file mode 100644
index ba1ef6d0af..0000000000
--- a/inet/getproto.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE	struct protoent
-#define FUNCTION_NAME	getprotobynumber
-#define DATABASE_NAME	protocols
-#define ADD_PARAMS	int proto
-#define ADD_VARIABLES	proto
-#define BUFLEN		1024
-
-/* There is no nscd support for the protocols file.  */
-#undef	USE_NSCD
-
-#include "../nss/getXXbyYY.c"
diff --git a/inet/getproto_r.c b/inet/getproto_r.c
deleted file mode 100644
index 7f61605511..0000000000
--- a/inet/getproto_r.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE		struct protoent
-#define FUNCTION_NAME		getprotobynumber
-#define DATABASE_NAME		protocols
-#define ADD_PARAMS		int proto
-#define ADD_VARIABLES		proto
-
-/* There is no nscd support for the protocols file.  */
-#undef	USE_NSCD
-
-#include "../nss/getXXbyYY_r.c"
diff --git a/inet/getprtent.c b/inet/getprtent.c
deleted file mode 100644
index 40ac5f992f..0000000000
--- a/inet/getprtent.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE	struct protoent
-#define	GETFUNC_NAME	getprotoent
-#define BUFLEN		1024
-
-/* There is no nscd support for the protocols file.  */
-#undef	USE_NSCD
-
-#include "../nss/getXXent.c"
diff --git a/inet/getprtent_r.c b/inet/getprtent_r.c
deleted file mode 100644
index 5d3bd1f3b9..0000000000
--- a/inet/getprtent_r.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE		struct protoent
-#define SETFUNC_NAME		setprotoent
-#define	GETFUNC_NAME		getprotoent
-#define	ENDFUNC_NAME		endprotoent
-#define DATABASE_NAME		protocols
-#define STAYOPEN		int stayopen
-#define STAYOPEN_VAR		stayopen
-
-/* There is no nscd support for the protocols file.  */
-#undef	USE_NSCD
-
-#include "../nss/getXXent_r.c"
diff --git a/inet/getprtname.c b/inet/getprtname.c
deleted file mode 100644
index 714eaf437d..0000000000
--- a/inet/getprtname.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE	struct protoent
-#define FUNCTION_NAME	getprotobyname
-#define DATABASE_NAME	protocols
-#define ADD_PARAMS	const char *name
-#define ADD_VARIABLES	name
-#define BUFLEN		1024
-
-/* There is no nscd support for the protocols file.  */
-#undef	USE_NSCD
-
-#include "../nss/getXXbyYY.c"
diff --git a/inet/getprtname_r.c b/inet/getprtname_r.c
deleted file mode 100644
index 88d723d737..0000000000
--- a/inet/getprtname_r.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE		struct protoent
-#define FUNCTION_NAME		getprotobyname
-#define DATABASE_NAME		protocols
-#define ADD_PARAMS		const char *name
-#define ADD_VARIABLES		name
-
-/* There is no nscd support for the protocols file.  */
-#undef	USE_NSCD
-
-#include "../nss/getXXbyYY_r.c"
diff --git a/inet/getservent.c b/inet/getservent.c
deleted file mode 100644
index ac2a037bda..0000000000
--- a/inet/getservent.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE	struct servent
-#define	GETFUNC_NAME	getservent
-#define BUFLEN		1024
-
-#include "../nss/getXXent.c"
diff --git a/inet/getservent_r.c b/inet/getservent_r.c
deleted file mode 100644
index 22366e6135..0000000000
--- a/inet/getservent_r.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE		struct servent
-#define SETFUNC_NAME		setservent
-#define	GETFUNC_NAME		getservent
-#define	ENDFUNC_NAME		endservent
-#define DATABASE_NAME		services
-#define STAYOPEN		int stayopen
-#define STAYOPEN_VAR		stayopen
-
-#include "../nss/getXXent_r.c"
diff --git a/inet/getsourcefilter.c b/inet/getsourcefilter.c
deleted file mode 100644
index 8696b176ce..0000000000
--- a/inet/getsourcefilter.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Get source filter.  Stub version.
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <netinet/in.h>
-#include <stdint.h>
-
-int
-getsourcefilter (int s, uint32_t interface, const struct sockaddr *group,
-		 socklen_t grouplen, uint32_t *fmode, uint32_t *numsrc,
-		 struct sockaddr_storage *slist)
-{
-  __set_errno (ENOSYS);
-  return -1;
-}
-stub_warning (getsourcefilter)
diff --git a/inet/getsrvbynm.c b/inet/getsrvbynm.c
deleted file mode 100644
index edddacb20d..0000000000
--- a/inet/getsrvbynm.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE	struct servent
-#define FUNCTION_NAME	getservbyname
-#define DATABASE_NAME	services
-#define ADD_PARAMS	const char *name, const char *proto
-#define ADD_VARIABLES	name, proto
-#define BUFLEN		1024
-
-#include "../nss/getXXbyYY.c"
diff --git a/inet/getsrvbynm_r.c b/inet/getsrvbynm_r.c
deleted file mode 100644
index faa45f2f50..0000000000
--- a/inet/getsrvbynm_r.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE		struct servent
-#define FUNCTION_NAME		getservbyname
-#define DATABASE_NAME		services
-#define ADD_PARAMS		const char *name, const char *proto
-#define ADD_VARIABLES		name, proto
-
-#include "../nss/getXXbyYY_r.c"
diff --git a/inet/getsrvbypt.c b/inet/getsrvbypt.c
deleted file mode 100644
index b82d91cd1b..0000000000
--- a/inet/getsrvbypt.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE	struct servent
-#define FUNCTION_NAME	getservbyport
-#define DATABASE_NAME	services
-#define ADD_PARAMS	int port, const char *proto
-#define ADD_VARIABLES	port, proto
-#define BUFLEN		1024
-
-#include "../nss/getXXbyYY.c"
diff --git a/inet/getsrvbypt_r.c b/inet/getsrvbypt_r.c
deleted file mode 100644
index 555c2a9cfc..0000000000
--- a/inet/getsrvbypt_r.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE		struct servent
-#define FUNCTION_NAME		getservbyport
-#define DATABASE_NAME		services
-#define ADD_PARAMS		int port, const char *proto
-#define ADD_VARIABLES		port, proto
-
-#include "../nss/getXXbyYY_r.c"
diff --git a/inet/herrno-loc.c b/inet/herrno-loc.c
deleted file mode 100644
index 7dc661a7ba..0000000000
--- a/inet/herrno-loc.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netdb.h>
-#include <tls.h>
-
-
-/* When threaded, h_errno may be a per-thread variable.  */
-int *
-weak_const_function
-__h_errno_location (void)
-{
-  return &h_errno;
-}
-libc_hidden_def (__h_errno_location)
diff --git a/inet/herrno.c b/inet/herrno.c
deleted file mode 100644
index 44ec0210f3..0000000000
--- a/inet/herrno.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <features.h>
-#include <netdb.h>
-#undef h_errno
-
-#include <tls.h>
-
-/* We need to have the error status variable of the resolver
-   accessible in the libc.  */
-
-__thread int __h_errno;
-extern __thread int __libc_h_errno __attribute__ ((alias ("__h_errno")))
-  attribute_hidden;
-#define h_errno __libc_h_errno
diff --git a/inet/htonl.c b/inet/htonl.c
deleted file mode 100644
index 06efe2c5f3..0000000000
--- a/inet/htonl.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 1993-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdint.h>
-#include <netinet/in.h>
-
-#undef	htonl
-#undef	ntohl
-
-uint32_t
-htonl (uint32_t x)
-{
-#if BYTE_ORDER == BIG_ENDIAN
-  return x;
-#elif BYTE_ORDER == LITTLE_ENDIAN
-  return __bswap_32 (x);
-#else
-# error "What kind of system is this?"
-#endif
-}
-weak_alias (htonl, ntohl)
diff --git a/inet/htons.c b/inet/htons.c
deleted file mode 100644
index 0b7159bb2e..0000000000
--- a/inet/htons.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 1993-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netinet/in.h>
-
-#undef	htons
-#undef	ntohs
-
-uint16_t
-htons (uint16_t x)
-{
-#if BYTE_ORDER == BIG_ENDIAN
-  return x;
-#elif BYTE_ORDER == LITTLE_ENDIAN
-  return __bswap_16 (x);
-#else
-# error "What kind of system is this?"
-#endif
-}
-weak_alias (htons, ntohs)
diff --git a/inet/htontest.c b/inet/htontest.c
deleted file mode 100644
index 9bc006396d..0000000000
--- a/inet/htontest.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Test hton/ntoh functions.
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <endian.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
-#if BYTE_ORDER == BIG_ENDIAN
-# define TEST(orig, swapped, fct) \
-  if ((fct (orig)) != (orig)) {						      \
-    printf ("Failed for %s -> %#x\n", #fct "(" #orig ")", fct (orig));	      \
-    result = 1;								      \
-  }
-#elif BYTE_ORDER == LITTLE_ENDIAN
-# define TEST(orig, swapped, fct) \
-  if ((fct (orig)) != (swapped)) {					      \
-    printf ("Failed for %s -> %#x\n", #fct "(" #orig ")", fct (orig));	      \
-    result = 1;								      \
-  }
-#else
-# error "Bah, what kind of system do you use?"
-#endif
-
-u_int32_t lo = 0x67452301;
-u_int16_t foo = 0x1234;
-
-int
-main (void)
-{
-  int result = 0;
-
-  TEST (0x67452301, 0x01234567, htonl);
-  TEST (0x67452301, 0x01234567, (htonl));
-  TEST (0x67452301, 0x01234567, ntohl);
-  TEST (0x67452301, 0x01234567, (ntohl));
-
-  TEST (lo, 0x01234567, htonl);
-  TEST (lo, 0x01234567, (htonl));
-  TEST (lo, 0x01234567, ntohl);
-  TEST (lo, 0x01234567, (ntohl));
-
-  TEST (0x1234, 0x3412, htons);
-  TEST (0x1234, 0x3412, (htons));
-  TEST (0x1234, 0x3412, ntohs);
-  TEST (0x1234, 0x3412, (ntohs));
-
-  TEST (foo, 0x3412, htons);
-  TEST (foo, 0x3412, (htons));
-  TEST (foo, 0x3412, ntohs);
-  TEST (foo, 0x3412, (ntohs));
-
-  return result;
-}
diff --git a/inet/if_index.c b/inet/if_index.c
deleted file mode 100644
index 4604e0a35b..0000000000
--- a/inet/if_index.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <net/if.h>
-#include <errno.h>
-#include <stddef.h>
-
-unsigned int
-__if_nametoindex (const char *ifname)
-{
-  __set_errno (ENOSYS);
-  return 0;
-}
-libc_hidden_def (__if_nametoindex)
-weak_alias (__if_nametoindex, if_nametoindex)
-libc_hidden_weak (if_nametoindex)
-stub_warning (if_nametoindex)
-
-char *
-__if_indextoname (unsigned int ifindex, char *ifname)
-{
-  __set_errno (ENOSYS);
-  return NULL;
-}
-weak_alias (__if_indextoname, if_indextoname)
-libc_hidden_weak (if_indextoname)
-stub_warning (if_indextoname)
-
-void
-__if_freenameindex (struct if_nameindex *ifn)
-{
-}
-libc_hidden_def (__if_freenameindex)
-weak_alias (__if_freenameindex, if_freenameindex)
-libc_hidden_weak (if_freenameindex)
-stub_warning (if_freenameindex)
-
-struct if_nameindex *
-__if_nameindex (void)
-{
-  __set_errno (ENOSYS);
-  return NULL;
-}
-weak_alias (__if_nameindex, if_nameindex)
-libc_hidden_weak (if_nameindex)
-stub_warning (if_nameindex)
diff --git a/inet/ifaddrs.c b/inet/ifaddrs.c
deleted file mode 100644
index 35cc277225..0000000000
--- a/inet/ifaddrs.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* getifaddrs -- get names and addresses of all network interfaces
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <ifaddrs.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/* Create a linked list of `struct ifaddrs' structures, one for each
-   network interface on the host machine.  If successful, store the
-   list in *IFAP and return 0.  On errors, return -1 and set `errno'.  */
-int
-__getifaddrs (struct ifaddrs **ifap)
-{
-  __set_errno (ENOSYS);
-  return -1;
-}
-weak_alias (__getifaddrs, getifaddrs)
-libc_hidden_weak (getifaddrs)
-stub_warning (getifaddrs)
-
-void
-__freeifaddrs (struct ifaddrs *ifa)
-{
-  if (ifa == NULL)
-    return;			/* a la free, why not? */
-
-  /* Can't be called properly if getifaddrs never succeeded.  */
-  abort ();
-}
-weak_alias (__freeifaddrs, freeifaddrs)
-libc_hidden_weak (freeifaddrs)
-stub_warning (freeifaddrs)
diff --git a/inet/ifaddrs.h b/inet/ifaddrs.h
deleted file mode 100644
index f850269061..0000000000
--- a/inet/ifaddrs.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* ifaddrs.h -- declarations for getting network interface addresses
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _IFADDRS_H
-#define _IFADDRS_H	1
-
-#include <features.h>
-#include <sys/socket.h>
-
-__BEGIN_DECLS
-
-/* The `getifaddrs' function generates a linked list of these structures.
-   Each element of the list describes one network interface.  */
-struct ifaddrs
-{
-  struct ifaddrs *ifa_next;	/* Pointer to the next structure.  */
-
-  char *ifa_name;		/* Name of this network interface.  */
-  unsigned int ifa_flags;	/* Flags as from SIOCGIFFLAGS ioctl.  */
-
-  struct sockaddr *ifa_addr;	/* Network address of this interface.  */
-  struct sockaddr *ifa_netmask; /* Netmask of this interface.  */
-  union
-  {
-    /* At most one of the following two is valid.  If the IFF_BROADCAST
-       bit is set in `ifa_flags', then `ifa_broadaddr' is valid.  If the
-       IFF_POINTOPOINT bit is set, then `ifa_dstaddr' is valid.
-       It is never the case that both these bits are set at once.  */
-    struct sockaddr *ifu_broadaddr; /* Broadcast address of this interface. */
-    struct sockaddr *ifu_dstaddr; /* Point-to-point destination address.  */
-  } ifa_ifu;
-  /* These very same macros are defined by <net/if.h> for `struct ifaddr'.
-     So if they are defined already, the existing definitions will be fine.  */
-# ifndef ifa_broadaddr
-#  define ifa_broadaddr	ifa_ifu.ifu_broadaddr
-# endif
-# ifndef ifa_dstaddr
-#  define ifa_dstaddr	ifa_ifu.ifu_dstaddr
-# endif
-
-  void *ifa_data;		/* Address-specific data (may be unused).  */
-};
-
-
-/* Create a linked list of `struct ifaddrs' structures, one for each
-   network interface on the host machine.  If successful, store the
-   list in *IFAP and return 0.  On errors, return -1 and set `errno'.
-
-   The storage returned in *IFAP is allocated dynamically and can
-   only be properly freed by passing it to `freeifaddrs'.  */
-extern int getifaddrs (struct ifaddrs **__ifap) __THROW;
-
-/* Reclaim the storage allocated by a previous `getifaddrs' call.  */
-extern void freeifaddrs (struct ifaddrs *__ifa)  __THROW;
-
-__END_DECLS
-
-#endif /* ifaddrs.h */
diff --git a/inet/ifreq.c b/inet/ifreq.c
deleted file mode 100644
index 18aacb17ac..0000000000
--- a/inet/ifreq.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Collect network interface list.  Stub version.
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "ifreq.h"
-
-void
-__ifreq (struct ifreq **ifreqs, int *num_ifs, int sockfd)
-{
-  *num_ifs = 0;
-  *ifreqs = NULL;
-}
diff --git a/inet/in6_addr.c b/inet/in6_addr.c
deleted file mode 100644
index cacc177006..0000000000
--- a/inet/in6_addr.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Philip Blundell <pjb27@cam.ac.uk>, 1997.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netinet/in.h>
-
-const struct in6_addr __in6addr_any =
-{ { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } };
-libc_hidden_data_def (__in6addr_any)
-weak_alias (__in6addr_any, in6addr_any)
-libc_hidden_data_weak (in6addr_any)
-const struct in6_addr __in6addr_loopback =
-{ { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } };
-libc_hidden_data_def (__in6addr_loopback)
-weak_alias (__in6addr_loopback, in6addr_loopback)
-libc_hidden_data_weak (in6addr_loopback)
diff --git a/inet/inet6_opt.c b/inet/inet6_opt.c
deleted file mode 100644
index 4581532a12..0000000000
--- a/inet/inet6_opt.c
+++ /dev/null
@@ -1,281 +0,0 @@
-/* Copyright (C) 2006-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2006.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <string.h>
-#include <netinet/in.h>
-#include <netinet/ip6.h>
-
-
-/* RFC 3542, 10.1
-
-   This function returns the number of bytes needed for the empty
-   extension header i.e., without any options.  If EXTBUF is not NULL it
-   also initializes the extension header to have the correct length
-   field.  In that case if the EXTLEN value is not a positive (i.e.,
-   non-zero) multiple of 8 the function fails and returns -1.  */
-int
-inet6_opt_init (void *extbuf, socklen_t extlen)
-{
-  if (extbuf != NULL)
-    {
-      if (extlen <= 0 || (extlen % 8) != 0 || extlen > 256 * 8)
-	return -1;
-
-      /* Fill in the length in units of 8 octets.  */
-      struct ip6_hbh *extp = (struct ip6_hbh *) extbuf;
-
-      /* RFC 2460 requires that the header extension length is the
-	 length of the option header in 8-byte units, not including
-	 the first 8 bytes.  Hence we have to subtract one.  */
-      extp->ip6h_len = extlen / 8 - 1;
-    }
-
-  return sizeof (struct ip6_hbh);
-}
-
-
-static void
-add_padding (uint8_t *extbuf, int offset, int npad)
-{
-  if (npad == 1)
-    extbuf[offset] = IP6OPT_PAD1;
-  else if (npad > 0)
-    {
-      struct ip6_opt *pad_opt = (struct ip6_opt *) (extbuf + offset);
-
-      pad_opt->ip6o_type = IP6OPT_PADN;
-      pad_opt->ip6o_len = npad - sizeof (struct ip6_opt);
-      /* Clear the memory used by the padding.  */
-      memset (pad_opt + 1, '\0', pad_opt->ip6o_len);
-    }
-}
-
-
-
-/* RFC 3542, 10.2
-
-   This function returns the updated total length taking into account
-   adding an option with length 'len' and alignment 'align'.  If
-   EXTBUF is not NULL then, in addition to returning the length, the
-   function inserts any needed pad option, initializes the option
-   (setting the type and length fields) and returns a pointer to the
-   location for the option content in databufp.  If the option does
-   not fit in the extension header buffer the function returns -1.  */
-int
-inet6_opt_append (void *extbuf, socklen_t extlen, int offset, uint8_t type,
-		  socklen_t len, uint8_t align, void **databufp)
-{
-  /* Check minimum offset.  */
-  if (offset < sizeof (struct ip6_hbh))
-    return -1;
-
-  /* One cannot add padding options.  */
-  if (type == IP6OPT_PAD1 || type == IP6OPT_PADN)
-    return -1;
-
-  /* The option length must fit in one octet.  */
-  if (len > 255)
-    return -1;
-
-  /* The alignment can only by 1, 2, 4, or 8 and must not exceed the
-     option length.  */
-  if (align == 0 || align > 8 || (align & (align - 1)) != 0 || align > len)
-    return -1;
-
-  /* Determine the needed padding for alignment.  Following the
-     current content of the buffer we have the is the IPv6 option type
-     and length, followed immediately by the data.  The data has the
-     alignment constraints.  Therefore padding must be inserted in the
-     form of padding options before the new option. */
-  int data_offset = offset + sizeof (struct ip6_opt);
-  int npad = (align - data_offset % align) & (align - 1);
-
-  if (extbuf != NULL)
-    {
-      /* Now we can check whether the buffer is large enough.  */
-      if (data_offset + npad + len > extlen)
-	return -1;
-
-      add_padding (extbuf, offset, npad);
-
-      offset += npad;
-
-      /* Now prepare the option itself.  */
-      struct ip6_opt *opt = (struct ip6_opt *) ((uint8_t *) extbuf + offset);
-
-      opt->ip6o_type = type;
-      opt->ip6o_len = len;
-
-      *databufp = opt + 1;
-    }
-  else
-    offset += npad;
-
-  return offset + sizeof (struct ip6_opt) + len;
-}
-
-
-/* RFC 3542, 10.3
-
-   This function returns the updated total length taking into account
-   the final padding of the extension header to make it a multiple of
-   8 bytes.  If EXTBUF is not NULL the function also initializes the
-   option by inserting a Pad1 or PadN option of the proper length.  */
-int
-inet6_opt_finish (void *extbuf, socklen_t extlen, int offset)
-{
-  /* Check minimum offset.  */
-  if (offset < sizeof (struct ip6_hbh))
-    return -1;
-
-  /* Required padding at the end.  */
-  int npad = (8 - (offset & 7)) & 7;
-
-  if (extbuf != NULL)
-    {
-      /* Make sure the buffer is large enough.  */
-      if (offset + npad > extlen)
-	return -1;
-
-      add_padding (extbuf, offset, npad);
-    }
-
-  return offset + npad;
-}
-
-
-/* RFC 3542, 10.4
-
-   This function inserts data items of various sizes in the data
-   portion of the option.  VAL should point to the data to be
-   inserted.  OFFSET specifies where in the data portion of the option
-   the value should be inserted; the first byte after the option type
-   and length is accessed by specifying an offset of zero.  */
-int
-inet6_opt_set_val (void *databuf, int offset, void *val, socklen_t vallen)
-{
-  memcpy ((uint8_t *) databuf + offset, val, vallen);
-
-  return offset + vallen;
-}
-
-
-/* RFC 3542, 10.5
-
-   This function parses received option extension headers returning
-   the next option.  EXTBUF and EXTLEN specifies the extension header.
-   OFFSET should either be zero (for the first option) or the length
-   returned by a previous call to 'inet6_opt_next' or
-   'inet6_opt_find'.  It specifies the position where to continue
-   scanning the extension buffer.  */
-int
-inet6_opt_next (void *extbuf, socklen_t extlen, int offset, uint8_t *typep,
-		socklen_t *lenp, void **databufp)
-{
-  if (offset == 0)
-    offset = sizeof (struct ip6_hbh);
-  else if (offset < sizeof (struct ip6_hbh))
-    return -1;
-
-  while (offset < extlen)
-    {
-      struct ip6_opt *opt = (struct ip6_opt *) ((uint8_t *) extbuf + offset);
-
-      if (opt->ip6o_type == IP6OPT_PAD1)
-	/* Single byte padding.  */
-	++offset;
-      else if (opt->ip6o_type == IP6OPT_PADN)
-	offset += sizeof (struct ip6_opt) + opt->ip6o_len;
-      else
-	{
-	  /* Check whether the option is valid.  */
-	  offset += sizeof (struct ip6_opt) + opt->ip6o_len;
-	  if (offset > extlen)
-	    return -1;
-
-	  *typep = opt->ip6o_type;
-	  *lenp = opt->ip6o_len;
-	  *databufp = opt + 1;
-	  return offset;
-	}
-    }
-
-  return -1;
-}
-
-
-/* RFC 3542, 10.6
-
-   This function is similar to the previously described
-   'inet6_opt_next' function, except this function lets the caller
-   specify the option type to be searched for, instead of always
-   returning the next option in the extension header.  */
-int
-inet6_opt_find (void *extbuf, socklen_t extlen, int offset, uint8_t type,
-		socklen_t *lenp, void **databufp)
-{
-  if (offset == 0)
-    offset = sizeof (struct ip6_hbh);
-  else if (offset < sizeof (struct ip6_hbh))
-    return -1;
-
-  while (offset < extlen)
-    {
-      struct ip6_opt *opt = (struct ip6_opt *) ((uint8_t *) extbuf + offset);
-
-      if (opt->ip6o_type == IP6OPT_PAD1)
-	{
-	  /* Single byte padding.  */
-	  ++offset;
-	  if (type == IP6OPT_PAD1)
-	    {
-	      *lenp = 0;
-	      *databufp = (uint8_t *) extbuf + offset;
-	      return offset;
-	    }
-	}
-      else if (opt->ip6o_type != type)
-	offset += sizeof (struct ip6_opt) + opt->ip6o_len;
-      else
-	{
-	  /* Check whether the option is valid.  */
-	  offset += sizeof (struct ip6_opt) + opt->ip6o_len;
-	  if (offset > extlen)
-	    return -1;
-
-	  *lenp = opt->ip6o_len;
-	  *databufp = opt + 1;
-	  return offset;
-	}
-    }
-
-  return -1;
-}
-
-
-/* RFC 3542, 10.7
-
-   This function extracts data items of various sizes in the data
-   portion of the option.  */
-int
-inet6_opt_get_val (void *databuf, int offset, void *val, socklen_t vallen)
-{
-  memcpy (val, (uint8_t *) databuf + offset, vallen);
-
-  return offset + vallen;
-}
diff --git a/inet/inet6_option.c b/inet/inet6_option.c
deleted file mode 100644
index f6d9b5dffe..0000000000
--- a/inet/inet6_option.c
+++ /dev/null
@@ -1,349 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <string.h>
-#include <netinet/in.h>
-#include <netinet/ip6.h>
-#include <sys/param.h>
-
-
-static void
-internal_function
-add_pad (struct cmsghdr *cmsg, int len)
-{
-  unsigned char *p = CMSG_DATA (cmsg) + cmsg->cmsg_len - CMSG_LEN (0);
-
-  if (len == 1)
-    /* Special handling for 1, a one-byte solution.  */
-    *p++ = IP6OPT_PAD1;
-  else if (len != 0)
-    {
-      /* Multibyte padding.  */
-      *p++ = IP6OPT_PADN;
-      *p++ = len - 2;	/* Discount the two header bytes.  */
-      /* The rest is filled with zero.  */
-      memset (p, '\0', len - 2);
-      p += len - 2;
-    }
-
-  /* Account for the bytes.  */
-  cmsg->cmsg_len += len;
-}
-
-
-static int
-get_opt_end (const uint8_t **result, const uint8_t *startp,
-	     const uint8_t *endp)
-{
-  if (startp >= endp)
-    /* Out of bounds.  */
-    return -1;
-
-  if (*startp == IP6OPT_PAD1)
-    {
-      /* Just this one byte.  */
-      *result = startp + 1;
-      return 0;
-    }
-
-  /* Now we know there must be at least two bytes.  */
-  if (startp + 2 > endp
-      /* Now we can get the length byte.  */
-      || startp + startp[1] + 2 > endp)
-    return -1;
-
-  *result = startp + startp[1] + 2;
-
-  return 0;
-}
-
-
-static uint8_t *option_alloc (struct cmsghdr *cmsg, int datalen, int multx,
-			      int plusy);
-
-
-/* RFC 2292, 6.3.1
-
-   This function returns the number of bytes required to hold an option
-   when it is stored as ancillary data, including the cmsghdr structure
-   at the beginning, and any padding at the end (to make its size a
-   multiple of 8 bytes).  The argument is the size of the structure
-   defining the option, which must include any pad bytes at the
-   beginning (the value y in the alignment term "xn + y"), the type
-   byte, the length byte, and the option data.  */
-int
-inet6_option_space (int nbytes)
-{
-  /* Add room for the extension header.  */
-  nbytes += sizeof (struct ip6_ext);
-
-  return CMSG_SPACE (roundup (nbytes, 8));
-}
-link_warning (inet6_option_space,
-	      "inet6_option_space is obsolete, use the RFC 3542 interfaces")
-
-
-/* RFC 2292, 6.3.2
-
-   This function is called once per ancillary data object that will
-   contain either Hop-by-Hop or Destination options.  It returns 0 on
-   success or -1 on an error.  */
-int
-inet6_option_init (void *bp, struct cmsghdr **cmsgp, int type)
-{
-  /* Only Hop-by-Hop or Destination options allowed.  */
-  if (type != IPV6_HOPOPTS && type != IPV6_DSTOPTS)
-    return -1;
-
-  /* BP is a pointer to the previously allocated space.  */
-  struct cmsghdr *newp = (struct cmsghdr *) bp;
-
-  /* Initialize the message header.
-
-     Length: No data yet, only the cmsghdr struct.  */
-  newp->cmsg_len = CMSG_LEN (0);
-  /* Originating protocol: obviously IPv6.  */
-  newp->cmsg_level = IPPROTO_IPV6;
-  /* Message type.  */
-  newp->cmsg_type = type;
-
-  /* Pass up the result.  */
-  *cmsgp = newp;
-
-  return 0;
-}
-link_warning (inet6_option_init,
-	      "inet6_option_init is obsolete, use the RFC 3542 interfaces")
-
-
-/* RFC 2292, 6.3.3
-
-   This function appends a Hop-by-Hop option or a Destination option
-   into an ancillary data object that has been initialized by
-   inet6_option_init().  This function returns 0 if it succeeds or -1 on
-   an error.  */
-int
-inet6_option_append (struct cmsghdr *cmsg, const uint8_t *typep, int multx,
-		     int plusy)
-{
-  /* typep is a pointer to the 8-bit option type.  It is assumed that this
-     field is immediately followed by the 8-bit option data length field,
-     which is then followed immediately by the option data.
-
-     The option types IP6OPT_PAD1 and IP6OPT_PADN also must be handled.  */
-  int len = typep[0] == IP6OPT_PAD1 ? 1 : typep[1] + 2;
-
-  /* Get the pointer to the space in the message.  */
-  uint8_t *ptr = option_alloc (cmsg, len, multx, plusy);
-  if (ptr == NULL)
-    /* Some problem with the parameters.  */
-    return -1;
-
-  /* Copy the content.  */
-  memcpy (ptr, typep, len);
-
-  return 0;
-}
-link_warning (inet6_option_append,
-	      "inet6_option_append is obsolete, use the RFC 3542 interfaces")
-
-
-/* RFC 2292, 6.3.4
-
-   This function appends a Hop-by-Hop option or a Destination option
-   into an ancillary data object that has been initialized by
-   inet6_option_init().  This function returns a pointer to the 8-bit
-   option type field that starts the option on success, or NULL on an
-   error.  */
-static uint8_t *
-option_alloc (struct cmsghdr *cmsg, int datalen, int multx, int plusy)
-{
-  /* The RFC limits the value of the alignment values.  */
-  if ((multx != 1 && multx != 2 && multx != 4 && multx != 8)
-      || ! (plusy >= 0 && plusy <= 7))
-    return NULL;
-
-  /* Current data size.  */
-  int dsize = cmsg->cmsg_len - CMSG_LEN (0);
-
-  /* The first two bytes of the option are for the extended header.  */
-  if (__glibc_unlikely (dsize == 0))
-    {
-      cmsg->cmsg_len += sizeof (struct ip6_ext);
-      dsize = sizeof (struct ip6_ext);
-    }
-
-  /* First add padding.  */
-  add_pad (cmsg, ((multx - (dsize & (multx - 1))) & (multx - 1)) + plusy);
-
-  /* Return the pointer to the start of the option space.  */
-  uint8_t *result = CMSG_DATA (cmsg) + cmsg->cmsg_len - CMSG_LEN (0);
-  cmsg->cmsg_len += datalen;
-
-  /* The extended option header length is measured in 8-byte groups.
-     To represent the current length we might have to add padding.  */
-  dsize = cmsg->cmsg_len - CMSG_LEN (0);
-  add_pad (cmsg, (8 - (dsize & (8 - 1))) & (8 - 1));
-
-  /* Record the new length of the option.  */
-  assert (((cmsg->cmsg_len - CMSG_LEN (0)) % 8) == 0);
-  int len8b = (cmsg->cmsg_len - CMSG_LEN (0)) / 8 - 1;
-  if (len8b >= 256)
-    /* Too long.  */
-    return NULL;
-
-  struct ip6_ext *ie = (void *) CMSG_DATA (cmsg);
-  ie->ip6e_len = len8b;
-
-  return result;
-}
-
-
-uint8_t *
-inet6_option_alloc (struct cmsghdr *cmsg, int datalen, int multx, int plusy)
-{
-  return option_alloc (cmsg, datalen, multx, plusy);
-}
-link_warning (inet6_option_alloc,
-	      "inet6_option_alloc is obsolete, use the RFC 3542 interfaces")
-
-
-/* RFC 2292, 6.3.5
-
-   This function processes the next Hop-by-Hop option or Destination
-   option in an ancillary data object.  If another option remains to be
-   processed, the return value of the function is 0 and *tptrp points to
-   the 8-bit option type field (which is followed by the 8-bit option
-   data length, followed by the option data).  If no more options remain
-   to be processed, the return value is -1 and *tptrp is NULL.  If an
-   error occurs, the return value is -1 and *tptrp is not NULL.  */
-int
-inet6_option_next (const struct cmsghdr *cmsg, uint8_t **tptrp)
-{
-  /* Make sure it is an option of the right type.  */
-  if (cmsg->cmsg_level != IPPROTO_IPV6
-      || (cmsg->cmsg_type != IPV6_HOPOPTS && cmsg->cmsg_type != IPV6_DSTOPTS))
-    return -1;
-
-  /* Pointer to the extension header.  We only compute the address, we
-     don't access anything yet.  */
-  const struct ip6_ext *ip6e = (const struct ip6_ext *) CMSG_DATA (cmsg);
-
-  /* Make sure the message is long enough.  */
-  if (cmsg->cmsg_len < CMSG_LEN (sizeof (struct ip6_ext))
-      /* Now we can access the extension header.  */
-      || cmsg->cmsg_len < CMSG_LEN ((ip6e->ip6e_len + 1) * 8))
-    /* Too small.  */
-    return -1;
-
-  /* Determine the address of the byte past the message.  */
-  const uint8_t *endp = CMSG_DATA (cmsg) + (ip6e->ip6e_len + 1) * 8;
-
-  const uint8_t *result;
-  if (*tptrp == NULL)
-    /* This is the first call, return the first option if there is one.  */
-    result = (const uint8_t *) (ip6e + 1);
-  else
-    {
-      /* Make sure *TPTRP points to a beginning of a new option in
-	 the message.  The upper limit is checked in get_opt_end.  */
-      if (*tptrp < (const uint8_t *) (ip6e + 1))
-	return -1;
-
-      /* Get the beginning of the next option.  */
-      if (get_opt_end (&result, *tptrp, endp) != 0)
-	return -1;
-    }
-
-  /* We know where the next option starts.  */
-  *tptrp = (uint8_t *) result;
-
-  /* Check the option is fully represented in the message.  */
-  return get_opt_end (&result, result, endp);
-}
-link_warning (inet6_option_next,
-	      "inet6_option_next is obsolete, use the RFC 3542 interfaces")
-
-
-/* RFC 2292, 6.3.6
-
-   This function is similar to the previously described
-   inet6_option_next() function, except this function lets the caller
-   specify the option type to be searched for, instead of always
-   returning the next option in the ancillary data object.  cmsg is a
-   pointer to cmsghdr structure of which cmsg_level equals IPPROTO_IPV6
-   and cmsg_type equals either IPV6_HOPOPTS or IPV6_DSTOPTS.  */
-int
-inet6_option_find (const struct cmsghdr *cmsg, uint8_t **tptrp, int type)
-{
-  /* Make sure it is an option of the right type.  */
-  if (cmsg->cmsg_level != IPPROTO_IPV6
-      || (cmsg->cmsg_type != IPV6_HOPOPTS && cmsg->cmsg_type != IPV6_DSTOPTS))
-    return -1;
-
-  /* Pointer to the extension header.  We only compute the address, we
-     don't access anything yet.  */
-  const struct ip6_ext *ip6e = (const struct ip6_ext *) CMSG_DATA (cmsg);
-
-  /* Make sure the message is long enough.  */
-  if (cmsg->cmsg_len < CMSG_LEN (sizeof (struct ip6_ext))
-      /* Now we can access the extension header.  */
-      || cmsg->cmsg_len < CMSG_LEN ((ip6e->ip6e_len + 1) * 8))
-    /* Too small.  */
-    return -1;
-
-  /* Determine the address of the byte past the message.  */
-  const uint8_t *endp = CMSG_DATA (cmsg) + (ip6e->ip6e_len + 1) * 8;
-
-  const uint8_t *next;
-  if (*tptrp == NULL)
-    /* This is the first call, return the first option if there is one.  */
-    next = (const uint8_t *) (ip6e + 1);
-  else
-    {
-      /* Make sure *TPTRP points to a beginning of a new option in
-	 the message.  The upper limit is checked in get_opt_end.  */
-      if (*tptrp < (const uint8_t *) (ip6e + 1))
-	return -1;
-
-      /* Get the beginning of the next option.  */
-      if (get_opt_end (&next, *tptrp, endp) != 0)
-	return -1;
-    }
-
-  /* Now search for the appropriate typed entry.  */
-  const uint8_t *result;
-  do
-    {
-      result = next;
-
-      /* Get the end of this entry.  */
-      if (get_opt_end (&next, result, endp) != 0)
-	return -1;
-    }
-  while (*result != type);
-
-  /* We know where the next option starts.  */
-  *tptrp = (uint8_t *) result;
-
-  /* Success.  */
-  return 0;
-}
-link_warning (inet6_option_find,
-	      "inet6_option_find is obsolete, use the RFC 3542 interfaces")
diff --git a/inet/inet6_rth.c b/inet/inet6_rth.c
deleted file mode 100644
index 917753da09..0000000000
--- a/inet/inet6_rth.c
+++ /dev/null
@@ -1,196 +0,0 @@
-/* Copyright (C) 2006-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2006.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <string.h>
-#include <netinet/in.h>
-#include <netinet/ip6.h>
-
-
-/* RFC 3542, 7.1
-
-   This function returns the number of bytes required to hold a
-   Routing header of the specified type containing the specified
-   number of segments (addresses).  For an IPv6 Type 0 Routing header,
-   the number of segments must be between 0 and 127, inclusive.  */
-socklen_t
-inet6_rth_space (int type, int segments)
-{
-  switch (type)
-    {
-    case IPV6_RTHDR_TYPE_0:
-      if (segments < 0 || segments > 127)
-	return 0;
-
-      return sizeof (struct ip6_rthdr0) + segments * sizeof (struct in6_addr);
-    }
-
-  return 0;
-}
-
-
-/* RFC 3542, 7.2
-
-   This function initializes the buffer pointed to by BP to contain a
-   Routing header of the specified type and sets ip6r_len based on the
-   segments parameter.  */
-void *
-inet6_rth_init (void *bp, socklen_t bp_len, int type, int segments)
-{
-  struct ip6_rthdr *rthdr = (struct ip6_rthdr *) bp;
-
-  switch (type)
-    {
-    case IPV6_RTHDR_TYPE_0:
-      /* Make sure the parameters are valid and the buffer is large enough.  */
-      if (segments < 0 || segments > 127)
-	break;
-
-      socklen_t len = (sizeof (struct ip6_rthdr0)
-		       + segments * sizeof (struct in6_addr));
-      if (len > bp_len)
-	break;
-
-      /* Some implementations seem to initialize the whole memory area.  */
-      memset (bp, '\0', len);
-
-      /* Length in units of 8 octets.  */
-      rthdr->ip6r_len = segments * sizeof (struct in6_addr) / 8;
-      rthdr->ip6r_type = IPV6_RTHDR_TYPE_0;
-      return bp;
-    }
-
-  return NULL;
-}
-
-
-/* RFC 3542, 7.3
-
-   This function adds the IPv6 address pointed to by addr to the end of
-   the Routing header being constructed.  */
-int
-inet6_rth_add (void *bp, const struct in6_addr *addr)
-{
-  struct ip6_rthdr *rthdr = (struct ip6_rthdr *) bp;
-
-  switch (rthdr->ip6r_type)
-    {
-      struct ip6_rthdr0 *rthdr0;
-    case IPV6_RTHDR_TYPE_0:
-      rthdr0 = (struct ip6_rthdr0 *) rthdr;
-      if (rthdr0->ip6r0_len * 8 / sizeof (struct in6_addr)
-	  - rthdr0->ip6r0_segleft < 1)
-        return -1;
-
-      memcpy (&rthdr0->ip6r0_addr[rthdr0->ip6r0_segleft++],
-	      addr, sizeof (struct in6_addr));
-
-      return 0;
-    }
-
-  return -1;
-}
-
-
-/* RFC 3542, 7.4
-
-   This function takes a Routing header extension header (pointed to by
-   the first argument) and writes a new Routing header that sends
-   datagrams along the reverse of that route.  The function reverses the
-   order of the addresses and sets the segleft member in the new Routing
-   header to the number of segments.  */
-int
-inet6_rth_reverse (const void *in, void *out)
-{
-  struct ip6_rthdr *in_rthdr = (struct ip6_rthdr *) in;
-
-  switch (in_rthdr->ip6r_type)
-    {
-      struct ip6_rthdr0 *in_rthdr0;
-      struct ip6_rthdr0 *out_rthdr0;
-    case IPV6_RTHDR_TYPE_0:
-      in_rthdr0 = (struct ip6_rthdr0 *) in;
-      out_rthdr0 = (struct ip6_rthdr0 *) out;
-
-      /* Copy header, not the addresses.  The memory regions can overlap.  */
-      memmove (out_rthdr0, in_rthdr0, sizeof (struct ip6_rthdr0));
-
-      int total = in_rthdr0->ip6r0_len * 8 / sizeof (struct in6_addr);
-      for (int i = 0; i < total / 2; ++i)
-	{
-	  /* Remember, IN_RTHDR0 and OUT_RTHDR0 might overlap.  */
-	  struct in6_addr temp = in_rthdr0->ip6r0_addr[i];
-	  out_rthdr0->ip6r0_addr[i] = in_rthdr0->ip6r0_addr[total - 1 - i];
-	  out_rthdr0->ip6r0_addr[total - 1 - i] = temp;
-	}
-      if (total % 2 != 0 && in != out)
-	out_rthdr0->ip6r0_addr[total / 2] = in_rthdr0->ip6r0_addr[total / 2];
-
-      out_rthdr0->ip6r0_segleft = total;
-
-      return 0;
-    }
-
-  return -1;
-}
-
-
-/* RFC 3542, 7.5
-
-   This function returns the number of segments (addresses) contained in
-   the Routing header described by BP.  */
-int
-inet6_rth_segments (const void *bp)
-{
-  struct ip6_rthdr *rthdr = (struct ip6_rthdr *) bp;
-
-  switch (rthdr->ip6r_type)
-    {
-    case IPV6_RTHDR_TYPE_0:
-
-      return rthdr->ip6r_len * 8 / sizeof (struct in6_addr);
-    }
-
-  return -1;
-}
-
-
-/* RFC 3542, 7.6
-
-   This function returns a pointer to the IPv6 address specified by
-   index (which must have a value between 0 and one less than the
-   value returned by 'inet6_rth_segments') in the Routing header
-   described by BP.  */
-struct in6_addr *
-inet6_rth_getaddr (const void *bp, int index)
-{
-  struct ip6_rthdr *rthdr = (struct ip6_rthdr *) bp;
-
-  switch (rthdr->ip6r_type)
-    {
-       struct ip6_rthdr0 *rthdr0;
-    case IPV6_RTHDR_TYPE_0:
-      rthdr0 = (struct ip6_rthdr0 *) rthdr;
-
-      if (index >= rthdr0->ip6r0_len * 8 / sizeof (struct in6_addr))
-	break;
-
-      return &rthdr0->ip6r0_addr[index];
-    }
-
-  return NULL;
-}
diff --git a/inet/inet6_scopeid_pton.c b/inet/inet6_scopeid_pton.c
deleted file mode 100644
index f842ffcadb..0000000000
--- a/inet/inet6_scopeid_pton.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Convert an IPv6 scope ID from text to the internal representation.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <net-internal.h>
-
-#include <ctype.h>
-#include <errno.h>
-#include <locale.h>
-#include <net/if.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdlib.h>
-
-/* Parse SOURCE as a scope ID for ADDRESS.  Return 0 on success and -1
-   on error.  */
-internal_function int
-__inet6_scopeid_pton (const struct in6_addr *address, const char *scope,
-                      uint32_t *result)
-{
-  if (IN6_IS_ADDR_LINKLOCAL (address)
-      || IN6_IS_ADDR_MC_LINKLOCAL (address))
-    {
-      uint32_t number = __if_nametoindex (scope);
-      if (number != 0)
-        {
-          *result = number;
-          return 0;
-        }
-    }
-
-  if (isdigit_l (scope[0], _nl_C_locobj_ptr))
-    {
-      char *end;
-      unsigned long long number
-        = ____strtoull_l_internal (scope, &end, /*base */ 10, /* group */ 0,
-                                   _nl_C_locobj_ptr);
-      if (*end == '\0' && number <= UINT32_MAX)
-        {
-          *result = number;
-          return 0;
-        }
-    }
-
-  __set_errno (EINVAL);
-  return -1;
-}
-
-libc_hidden_def (__inet6_scopeid_pton)
diff --git a/inet/inet_lnaof.c b/inet/inet_lnaof.c
deleted file mode 100644
index fc8196b709..0000000000
--- a/inet/inet_lnaof.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/param.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-/*
- * Return the local network address portion of an
- * internet address; handles class a/b/c network
- * number formats.
- */
-in_addr_t
-inet_lnaof (struct in_addr in)
-{
-	u_int32_t i = ntohl(in.s_addr);
-
-	if (IN_CLASSA(i))
-		return ((i)&IN_CLASSA_HOST);
-	else if (IN_CLASSB(i))
-		return ((i)&IN_CLASSB_HOST);
-	else
-		return ((i)&IN_CLASSC_HOST);
-}
diff --git a/inet/inet_mkadr.c b/inet/inet_mkadr.c
deleted file mode 100644
index 88faef74cf..0000000000
--- a/inet/inet_mkadr.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/param.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-/*
- * Formulate an Internet address from network + host.  Used in
- * building addresses stored in the ifnet structure.
- */
-struct in_addr
-__inet_makeaddr (in_addr_t net, in_addr_t host)
-{
-	struct in_addr in;
-
-	if (net < 128)
-		in.s_addr = (net << IN_CLASSA_NSHIFT) | (host & IN_CLASSA_HOST);
-	else if (net < 65536)
-		in.s_addr = (net << IN_CLASSB_NSHIFT) | (host & IN_CLASSB_HOST);
-	else if (net < 16777216L)
-		in.s_addr = (net << IN_CLASSC_NSHIFT) | (host & IN_CLASSC_HOST);
-	else
-		in.s_addr = net | host;
-	in.s_addr = htonl(in.s_addr);
-	return in;
-}
-libc_hidden_def (__inet_makeaddr)
-weak_alias (__inet_makeaddr, inet_makeaddr)
diff --git a/inet/inet_net.c b/inet/inet_net.c
deleted file mode 100644
index 434d716854..0000000000
--- a/inet/inet_net.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/* Copyright (C) 2013-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <ctype.h>
-
-/*
- * Internet network address interpretation routine.
- * The library routines call this routine to interpret
- * network numbers.
- */
-u_int32_t
-inet_network (const char *cp)
-{
-	u_int32_t val, base, n, i;
-	char c;
-	u_int32_t parts[4], *pp = parts;
-	int digit;
-
-again:
-	val = 0; base = 10; digit = 0;
-	if (*cp == '0')
-		digit = 1, base = 8, cp++;
-	if (*cp == 'x' || *cp == 'X')
-		digit = 0, base = 16, cp++;
-	while ((c = *cp) != 0) {
-		if (isdigit(c)) {
-			if (base == 8 && (c == '8' || c == '9'))
-				return (INADDR_NONE);
-			val = (val * base) + (c - '0');
-			cp++;
-			digit = 1;
-			continue;
-		}
-		if (base == 16 && isxdigit(c)) {
-			val = (val << 4) + (tolower (c) + 10 - 'a');
-			cp++;
-			digit = 1;
-			continue;
-		}
-		break;
-	}
-	if (!digit)
-		return (INADDR_NONE);
-	if (pp >= parts + 4 || val > 0xff)
-		return (INADDR_NONE);
-	if (*cp == '.') {
-		*pp++ = val, cp++;
-		goto again;
-	}
-	while (isspace(*cp))
-		cp++;
-	if (*cp)
-		return (INADDR_NONE);
-	if (pp >= parts + 4 || val > 0xff)
-		return (INADDR_NONE);
-	*pp++ = val;
-	n = pp - parts;
-	for (val = 0, i = 0; i < n; i++) {
-		val <<= 8;
-		val |= parts[i] & 0xff;
-	}
-	return (val);
-}
diff --git a/inet/inet_netof.c b/inet/inet_netof.c
deleted file mode 100644
index ef6281d29f..0000000000
--- a/inet/inet_netof.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/param.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-/*
- * Return the network number from an internet
- * address; handles class a/b/c network #'s.
- */
-in_addr_t
-inet_netof (struct in_addr in)
-{
-	u_int32_t i = ntohl(in.s_addr);
-
-	if (IN_CLASSA(i))
-		return (((i)&IN_CLASSA_NET) >> IN_CLASSA_NSHIFT);
-	else if (IN_CLASSB(i))
-		return (((i)&IN_CLASSB_NET) >> IN_CLASSB_NSHIFT);
-	else
-		return (((i)&IN_CLASSC_NET) >> IN_CLASSC_NSHIFT);
-}
-libc_hidden_def (inet_netof)
diff --git a/inet/inet_ntoa.c b/inet/inet_ntoa.c
deleted file mode 100644
index 513d22c75e..0000000000
--- a/inet/inet_ntoa.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Convert Inet number to ASCII representation.
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <arpa/inet.h>
-
-/* The interface of this function is completely stupid, it requires a
-   static buffer.  We relax this a bit in that we allow one buffer for
-   each thread.  */
-static __thread char buffer[18];
-
-
-char *
-inet_ntoa (struct in_addr in)
-{
-  unsigned char *bytes = (unsigned char *) &in;
-  __snprintf (buffer, sizeof (buffer), "%d.%d.%d.%d",
-	      bytes[0], bytes[1], bytes[2], bytes[3]);
-
-  return buffer;
-}
diff --git a/inet/net-internal.h b/inet/net-internal.h
deleted file mode 100644
index 2b2632c7ba..0000000000
--- a/inet/net-internal.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Network-related functions for internal library use.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _NET_INTERNAL_H
-#define _NET_INTERNAL_H 1
-
-#include <arpa/inet.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <sys/time.h>
-
-int __inet6_scopeid_pton (const struct in6_addr *address,
-                          const char *scope, uint32_t *result)
-  internal_function attribute_hidden;
-libc_hidden_proto (__inet6_scopeid_pton)
-
-
-/* Deadline handling for enforcing timeouts.
-
-   Code should call __deadline_current_time to obtain the current time
-   and cache it locally.  The cache needs updating after every
-   long-running or potentially blocking operation.  Deadlines relative
-   to the current time can be computed using __deadline_from_timeval.
-   The deadlines may have to be recomputed in response to certain
-   events (such as an incoming packet), but they are absolute (not
-   relative to the current time).  A timeout suitable for use with the
-   poll function can be computed from such a deadline using
-   __deadline_to_ms.
-
-   The fields in the structs defined belowed should only be used
-   within the implementation.  */
-
-/* Cache of the current time.  Used to compute deadlines from relative
-   timeouts and vice versa.  */
-struct deadline_current_time
-{
-  struct timespec current;
-};
-
-/* Return the current time.  Terminates the process if the current
-   time is not available.  */
-struct deadline_current_time __deadline_current_time (void)
-  internal_function attribute_hidden;
-
-/* Computed absolute deadline.  */
-struct deadline
-{
-  struct timespec absolute;
-};
-
-
-/* For internal use only.  */
-static inline bool
-__deadline_is_infinite (struct deadline deadline)
-{
-  return deadline.absolute.tv_nsec < 0;
-}
-
-/* Return true if the current time is at the deadline or past it.  */
-static inline bool
-__deadline_elapsed (struct deadline_current_time current,
-                    struct deadline deadline)
-{
-  return !__deadline_is_infinite (deadline)
-    && (current.current.tv_sec > deadline.absolute.tv_sec
-        || (current.current.tv_sec == deadline.absolute.tv_sec
-            && current.current.tv_nsec >= deadline.absolute.tv_nsec));
-}
-
-/* Return the deadline which occurs first.  */
-static inline struct deadline
-__deadline_first (struct deadline left, struct deadline right)
-{
-  if (__deadline_is_infinite (right)
-      || left.absolute.tv_sec < right.absolute.tv_sec
-      || (left.absolute.tv_sec == right.absolute.tv_sec
-          && left.absolute.tv_nsec < right.absolute.tv_nsec))
-    return left;
-  else
-    return right;
-}
-
-/* Add TV to the current time and return it.  Returns a special
-   infinite absolute deadline on overflow.  */
-struct deadline __deadline_from_timeval (struct deadline_current_time,
-                                         struct timeval tv)
-  internal_function attribute_hidden;
-
-/* Compute the number of milliseconds until the specified deadline,
-   from the current time in the argument.  The result is mainly for
-   use with poll.  If the deadline has already passed, return 0.  If
-   the result would overflow an int, return INT_MAX.  */
-int __deadline_to_ms (struct deadline_current_time, struct deadline)
-  internal_function attribute_hidden;
-
-/* Return true if TV.tv_sec is non-negative and TV.tv_usec is in the
-   interval [0, 999999].  */
-static inline bool
-__is_timeval_valid_timeout (struct timeval tv)
-{
-  return tv.tv_sec >= 0 && tv.tv_usec >= 0 && tv.tv_usec < 1000 * 1000;
-}
-
-#endif /* _NET_INTERNAL_H */
diff --git a/inet/netgroup.h b/inet/netgroup.h
deleted file mode 100644
index 9ad9dfe144..0000000000
--- a/inet/netgroup.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Internal header for netgroup related functions.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _NETGROUP_H
-#define _NETGROUP_H	1
-
-#include <nsswitch.h>
-
-/* A netgroup can consist of names of other netgroups.  We have to
-   track which netgroups were read and which still have to be read.  */
-struct name_list
-{
-  struct name_list *next;
-  char name[];
-};
-
-
-/* Dataset for iterating netgroups.  */
-struct __netgrent
-{
-  enum { triple_val, group_val } type;
-
-  union
-  {
-    struct
-    {
-      const char *host;
-      const char *user;
-      const char *domain;
-    }
-    triple;
-
-    const char *group;
-  } val;
-
-  /* Room for the data kept between the calls to the netgroup
-     functions.  We must avoid global variables.  */
-  char *data;
-  size_t data_size;
-  union
-  {
-    char *cursor;
-    unsigned long int position;
-  };
-  int first;
-
-  struct name_list *known_groups;
-  struct name_list *needed_groups;
-
-  /* This handle for the NSS data base is shared between all
-     set/get/endXXXent functions.  */
-  service_user *nip;
-};
-
-
-/* The internal netgroup handling functions might be called from outside.  */
-extern int __internal_setnetgrent (const char *group,
-				   struct __netgrent *datap)
-  internal_function;
-libc_hidden_proto (__internal_setnetgrent)
-extern void __internal_endnetgrent (struct __netgrent *datap)
-  internal_function;
-libc_hidden_proto (__internal_endnetgrent)
-extern int __internal_getnetgrent_r (char **hostp, char **userp,
-				     char **domainp, struct __netgrent *datap,
-				     char *buffer, size_t buflen, int *errnop)
-  internal_function;
-libc_hidden_proto (__internal_getnetgrent_r)
-
-#endif /* netgroup.h */
diff --git a/inet/netinet/ether.h b/inet/netinet/ether.h
deleted file mode 100644
index 966ec8aec1..0000000000
--- a/inet/netinet/ether.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Functions for storing Ethernet addresses in ASCII and mapping to hostnames.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _NETINET_ETHER_H
-#define _NETINET_ETHER_H	1
-
-#include <features.h>
-
-/* Get definition of `struct ether_addr'.  */
-#include <netinet/if_ether.h>
-
-#ifdef __USE_MISC
-__BEGIN_DECLS
-
-/* Convert 48 bit Ethernet ADDRess to ASCII.  */
-extern char *ether_ntoa (const struct ether_addr *__addr) __THROW;
-extern char *ether_ntoa_r (const struct ether_addr *__addr, char *__buf)
-     __THROW;
-
-/* Convert ASCII string S to 48 bit Ethernet address.  */
-extern struct ether_addr *ether_aton (const char *__asc) __THROW;
-extern struct ether_addr *ether_aton_r (const char *__asc,
-					struct ether_addr *__addr) __THROW;
-
-/* Map 48 bit Ethernet number ADDR to HOSTNAME.  */
-extern int ether_ntohost (char *__hostname, const struct ether_addr *__addr)
-     __THROW;
-
-/* Map HOSTNAME to 48 bit Ethernet address.  */
-extern int ether_hostton (const char *__hostname, struct ether_addr *__addr)
-     __THROW;
-
-/* Scan LINE and set ADDR and HOSTNAME.  */
-extern int ether_line (const char *__line, struct ether_addr *__addr,
-		       char *__hostname) __THROW;
-
-__END_DECLS
-#endif /* Use misc.  */
-
-#endif /* netinet/ether.h */
diff --git a/inet/netinet/icmp6.h b/inet/netinet/icmp6.h
deleted file mode 100644
index fc5d09ecac..0000000000
--- a/inet/netinet/icmp6.h
+++ /dev/null
@@ -1,345 +0,0 @@
-/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _NETINET_ICMP6_H
-#define _NETINET_ICMP6_H 1
-
-#include <inttypes.h>
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
-#define ICMP6_FILTER 1
-
-#define ICMP6_FILTER_BLOCK		1
-#define ICMP6_FILTER_PASS		2
-#define ICMP6_FILTER_BLOCKOTHERS	3
-#define ICMP6_FILTER_PASSONLY		4
-
-struct icmp6_filter
-  {
-    uint32_t icmp6_filt[8];
-  };
-
-struct icmp6_hdr
-  {
-    uint8_t     icmp6_type;   /* type field */
-    uint8_t     icmp6_code;   /* code field */
-    uint16_t    icmp6_cksum;  /* checksum field */
-    union
-      {
-	uint32_t  icmp6_un_data32[1]; /* type-specific field */
-	uint16_t  icmp6_un_data16[2]; /* type-specific field */
-	uint8_t   icmp6_un_data8[4];  /* type-specific field */
-      } icmp6_dataun;
-  };
-
-#define icmp6_data32    icmp6_dataun.icmp6_un_data32
-#define icmp6_data16    icmp6_dataun.icmp6_un_data16
-#define icmp6_data8     icmp6_dataun.icmp6_un_data8
-#define icmp6_pptr      icmp6_data32[0]  /* parameter prob */
-#define icmp6_mtu       icmp6_data32[0]  /* packet too big */
-#define icmp6_id        icmp6_data16[0]  /* echo request/reply */
-#define icmp6_seq       icmp6_data16[1]  /* echo request/reply */
-#define icmp6_maxdelay  icmp6_data16[0]  /* mcast group membership */
-
-#define ICMP6_DST_UNREACH             1
-#define ICMP6_PACKET_TOO_BIG          2
-#define ICMP6_TIME_EXCEEDED           3
-#define ICMP6_PARAM_PROB              4
-
-#define ICMP6_INFOMSG_MASK  0x80    /* all informational messages */
-
-#define ICMP6_ECHO_REQUEST          128
-#define ICMP6_ECHO_REPLY            129
-#define MLD_LISTENER_QUERY          130
-#define MLD_LISTENER_REPORT         131
-#define MLD_LISTENER_REDUCTION      132
-
-#define ICMP6_DST_UNREACH_NOROUTE     0 /* no route to destination */
-#define ICMP6_DST_UNREACH_ADMIN       1 /* communication with destination */
-                                        /* administratively prohibited */
-#define ICMP6_DST_UNREACH_BEYONDSCOPE 2 /* beyond scope of source address */
-#define ICMP6_DST_UNREACH_ADDR        3 /* address unreachable */
-#define ICMP6_DST_UNREACH_NOPORT      4 /* bad port */
-
-#define ICMP6_TIME_EXCEED_TRANSIT     0 /* Hop Limit == 0 in transit */
-#define ICMP6_TIME_EXCEED_REASSEMBLY  1 /* Reassembly time out */
-
-#define ICMP6_PARAMPROB_HEADER        0 /* erroneous header field */
-#define ICMP6_PARAMPROB_NEXTHEADER    1 /* unrecognized Next Header */
-#define ICMP6_PARAMPROB_OPTION        2 /* unrecognized IPv6 option */
-
-#define ICMP6_FILTER_WILLPASS(type, filterp) \
-	((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) == 0)
-
-#define ICMP6_FILTER_WILLBLOCK(type, filterp) \
-	((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) != 0)
-
-#define ICMP6_FILTER_SETPASS(type, filterp) \
-	((((filterp)->icmp6_filt[(type) >> 5]) &= ~(1 << ((type) & 31))))
-
-#define ICMP6_FILTER_SETBLOCK(type, filterp) \
-	((((filterp)->icmp6_filt[(type) >> 5]) |=  (1 << ((type) & 31))))
-
-#define ICMP6_FILTER_SETPASSALL(filterp) \
-	memset (filterp, 0, sizeof (struct icmp6_filter));
-
-#define ICMP6_FILTER_SETBLOCKALL(filterp) \
-	memset (filterp, 0xFF, sizeof (struct icmp6_filter));
-
-#define ND_ROUTER_SOLICIT           133
-#define ND_ROUTER_ADVERT            134
-#define ND_NEIGHBOR_SOLICIT         135
-#define ND_NEIGHBOR_ADVERT          136
-#define ND_REDIRECT                 137
-
-struct nd_router_solicit      /* router solicitation */
-  {
-    struct icmp6_hdr  nd_rs_hdr;
-    /* could be followed by options */
-  };
-
-#define nd_rs_type               nd_rs_hdr.icmp6_type
-#define nd_rs_code               nd_rs_hdr.icmp6_code
-#define nd_rs_cksum              nd_rs_hdr.icmp6_cksum
-#define nd_rs_reserved           nd_rs_hdr.icmp6_data32[0]
-
-struct nd_router_advert       /* router advertisement */
-  {
-    struct icmp6_hdr  nd_ra_hdr;
-    uint32_t   nd_ra_reachable;   /* reachable time */
-    uint32_t   nd_ra_retransmit;  /* retransmit timer */
-    /* could be followed by options */
-  };
-
-#define nd_ra_type               nd_ra_hdr.icmp6_type
-#define nd_ra_code               nd_ra_hdr.icmp6_code
-#define nd_ra_cksum              nd_ra_hdr.icmp6_cksum
-#define nd_ra_curhoplimit        nd_ra_hdr.icmp6_data8[0]
-#define nd_ra_flags_reserved     nd_ra_hdr.icmp6_data8[1]
-#define ND_RA_FLAG_MANAGED       0x80
-#define ND_RA_FLAG_OTHER         0x40
-#define ND_RA_FLAG_HOME_AGENT    0x20
-#define nd_ra_router_lifetime    nd_ra_hdr.icmp6_data16[1]
-
-struct nd_neighbor_solicit    /* neighbor solicitation */
-  {
-    struct icmp6_hdr  nd_ns_hdr;
-    struct in6_addr   nd_ns_target; /* target address */
-    /* could be followed by options */
-  };
-
-#define nd_ns_type               nd_ns_hdr.icmp6_type
-#define nd_ns_code               nd_ns_hdr.icmp6_code
-#define nd_ns_cksum              nd_ns_hdr.icmp6_cksum
-#define nd_ns_reserved           nd_ns_hdr.icmp6_data32[0]
-
-struct nd_neighbor_advert     /* neighbor advertisement */
-  {
-    struct icmp6_hdr  nd_na_hdr;
-    struct in6_addr   nd_na_target; /* target address */
-    /* could be followed by options */
-  };
-
-#define nd_na_type               nd_na_hdr.icmp6_type
-#define nd_na_code               nd_na_hdr.icmp6_code
-#define nd_na_cksum              nd_na_hdr.icmp6_cksum
-#define nd_na_flags_reserved     nd_na_hdr.icmp6_data32[0]
-#if     __BYTE_ORDER == __BIG_ENDIAN
-#define ND_NA_FLAG_ROUTER        0x80000000
-#define ND_NA_FLAG_SOLICITED     0x40000000
-#define ND_NA_FLAG_OVERRIDE      0x20000000
-#else   /* __BYTE_ORDER == __LITTLE_ENDIAN */
-#define ND_NA_FLAG_ROUTER        0x00000080
-#define ND_NA_FLAG_SOLICITED     0x00000040
-#define ND_NA_FLAG_OVERRIDE      0x00000020
-#endif
-
-struct nd_redirect            /* redirect */
-  {
-    struct icmp6_hdr  nd_rd_hdr;
-    struct in6_addr   nd_rd_target; /* target address */
-    struct in6_addr   nd_rd_dst;    /* destination address */
-    /* could be followed by options */
-  };
-
-#define nd_rd_type               nd_rd_hdr.icmp6_type
-#define nd_rd_code               nd_rd_hdr.icmp6_code
-#define nd_rd_cksum              nd_rd_hdr.icmp6_cksum
-#define nd_rd_reserved           nd_rd_hdr.icmp6_data32[0]
-
-struct nd_opt_hdr             /* Neighbor discovery option header */
-  {
-    uint8_t  nd_opt_type;
-    uint8_t  nd_opt_len;        /* in units of 8 octets */
-    /* followed by option specific data */
-  };
-
-#define ND_OPT_SOURCE_LINKADDR		1
-#define ND_OPT_TARGET_LINKADDR		2
-#define ND_OPT_PREFIX_INFORMATION	3
-#define ND_OPT_REDIRECTED_HEADER	4
-#define ND_OPT_MTU			5
-#define ND_OPT_RTR_ADV_INTERVAL		7
-#define ND_OPT_HOME_AGENT_INFO		8
-
-struct nd_opt_prefix_info     /* prefix information */
-  {
-    uint8_t   nd_opt_pi_type;
-    uint8_t   nd_opt_pi_len;
-    uint8_t   nd_opt_pi_prefix_len;
-    uint8_t   nd_opt_pi_flags_reserved;
-    uint32_t  nd_opt_pi_valid_time;
-    uint32_t  nd_opt_pi_preferred_time;
-    uint32_t  nd_opt_pi_reserved2;
-    struct in6_addr  nd_opt_pi_prefix;
-  };
-
-#define ND_OPT_PI_FLAG_ONLINK	0x80
-#define ND_OPT_PI_FLAG_AUTO	0x40
-#define ND_OPT_PI_FLAG_RADDR	0x20
-
-struct nd_opt_rd_hdr          /* redirected header */
-  {
-    uint8_t   nd_opt_rh_type;
-    uint8_t   nd_opt_rh_len;
-    uint16_t  nd_opt_rh_reserved1;
-    uint32_t  nd_opt_rh_reserved2;
-    /* followed by IP header and data */
-  };
-
-struct nd_opt_mtu             /* MTU option */
-  {
-    uint8_t   nd_opt_mtu_type;
-    uint8_t   nd_opt_mtu_len;
-    uint16_t  nd_opt_mtu_reserved;
-    uint32_t  nd_opt_mtu_mtu;
-  };
-
-struct mld_hdr
-  {
-    struct icmp6_hdr    mld_icmp6_hdr;
-    struct in6_addr     mld_addr; /* multicast address */
-  };
-
-#define mld_type        mld_icmp6_hdr.icmp6_type
-#define mld_code        mld_icmp6_hdr.icmp6_code
-#define mld_cksum       mld_icmp6_hdr.icmp6_cksum
-#define mld_maxdelay    mld_icmp6_hdr.icmp6_data16[0]
-#define mld_reserved    mld_icmp6_hdr.icmp6_data16[1]
-
-#define ICMP6_ROUTER_RENUMBERING    138
-
-struct icmp6_router_renum    /* router renumbering header */
-  {
-    struct icmp6_hdr    rr_hdr;
-    uint8_t             rr_segnum;
-    uint8_t             rr_flags;
-    uint16_t            rr_maxdelay;
-    uint32_t            rr_reserved;
-  };
-
-#define rr_type		rr_hdr.icmp6_type
-#define rr_code         rr_hdr.icmp6_code
-#define rr_cksum        rr_hdr.icmp6_cksum
-#define rr_seqnum       rr_hdr.icmp6_data32[0]
-
-/* Router renumbering flags */
-#define ICMP6_RR_FLAGS_TEST             0x80
-#define ICMP6_RR_FLAGS_REQRESULT        0x40
-#define ICMP6_RR_FLAGS_FORCEAPPLY       0x20
-#define ICMP6_RR_FLAGS_SPECSITE         0x10
-#define ICMP6_RR_FLAGS_PREVDONE         0x08
-
-struct rr_pco_match    /* match prefix part */
-  {
-    uint8_t             rpm_code;
-    uint8_t             rpm_len;
-    uint8_t             rpm_ordinal;
-    uint8_t             rpm_matchlen;
-    uint8_t             rpm_minlen;
-    uint8_t             rpm_maxlen;
-    uint16_t            rpm_reserved;
-    struct in6_addr     rpm_prefix;
-  };
-
-/* PCO code values */
-#define RPM_PCO_ADD             1
-#define RPM_PCO_CHANGE          2
-#define RPM_PCO_SETGLOBAL       3
-
-struct rr_pco_use      /* use prefix part */
-  {
-    uint8_t             rpu_uselen;
-    uint8_t             rpu_keeplen;
-    uint8_t             rpu_ramask;
-    uint8_t             rpu_raflags;
-    uint32_t            rpu_vltime;
-    uint32_t            rpu_pltime;
-    uint32_t            rpu_flags;
-    struct in6_addr     rpu_prefix;
-  };
-
-#define ICMP6_RR_PCOUSE_RAFLAGS_ONLINK  0x20
-#define ICMP6_RR_PCOUSE_RAFLAGS_AUTO    0x10
-
-#if __BYTE_ORDER == __BIG_ENDIAN
-# define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80000000
-# define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40000000
-#elif __BYTE_ORDER == __LITTLE_ENDIAN
-# define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80
-# define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40
-#endif
-
-struct rr_result       /* router renumbering result message */
-  {
-    uint16_t            rrr_flags;
-    uint8_t             rrr_ordinal;
-    uint8_t             rrr_matchedlen;
-    uint32_t            rrr_ifid;
-    struct in6_addr     rrr_prefix;
-  };
-
-#if __BYTE_ORDER == __BIG_ENDIAN
-# define ICMP6_RR_RESULT_FLAGS_OOB       0x0002
-# define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0001
-#elif __BYTE_ORDER == __LITTLE_ENDIAN
-# define ICMP6_RR_RESULT_FLAGS_OOB       0x0200
-# define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0100
-#endif
-
-/* Mobile IPv6 extension: Advertisement Interval.  */
-struct nd_opt_adv_interval
-  {
-    uint8_t   nd_opt_adv_interval_type;
-    uint8_t   nd_opt_adv_interval_len;
-    uint16_t  nd_opt_adv_interval_reserved;
-    uint32_t  nd_opt_adv_interval_ival;
-  };
-
-/* Mobile IPv6 extension: Home Agent Info.  */
-struct nd_opt_home_agent_info
-  {
-    uint8_t   nd_opt_home_agent_info_type;
-    uint8_t   nd_opt_home_agent_info_len;
-    uint16_t  nd_opt_home_agent_info_reserved;
-    uint16_t  nd_opt_home_agent_info_preference;
-    uint16_t  nd_opt_home_agent_info_lifetime;
-  };
-
-#endif /* netinet/icmpv6.h */
diff --git a/inet/netinet/igmp.h b/inet/netinet/igmp.h
deleted file mode 100644
index 292ced4a95..0000000000
--- a/inet/netinet/igmp.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _NETINET_IGMP_H
-#define	_NETINET_IGMP_H 1
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-#ifdef __USE_MISC
-
-#include <netinet/in.h>
-
-__BEGIN_DECLS
-
-/*
- * Copyright (c) 1988 Stephen Deering.
- * Copyright (c) 1992, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Stephen Deering of Stanford University.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	@(#)igmp.h	8.1 (Berkeley) 6/10/93
- *	$FreeBSD$
- */
-
-struct igmp {
-  uint8_t igmp_type;             /* IGMP type */
-  uint8_t igmp_code;             /* routing code */
-  uint16_t igmp_cksum;           /* checksum */
-  struct in_addr igmp_group;     /* group address */
-};
-
-#define IGMP_MINLEN			8
-
-/*
- * Message types, including version number.
- */
-#define IGMP_MEMBERSHIP_QUERY   	0x11	/* membership query         */
-#define IGMP_V1_MEMBERSHIP_REPORT	0x12	/* Ver. 1 membership report */
-#define IGMP_V2_MEMBERSHIP_REPORT	0x16	/* Ver. 2 membership report */
-#define IGMP_V2_LEAVE_GROUP		0x17	/* Leave-group message	    */
-
-#define IGMP_DVMRP			0x13	/* DVMRP routing message    */
-#define IGMP_PIM			0x14	/* PIM routing message      */
-#define IGMP_TRACE			0x15
-
-#define IGMP_MTRACE_RESP		0x1e	/* traceroute resp.(to sender)*/
-#define IGMP_MTRACE			0x1f	/* mcast traceroute messages  */
-
-#define IGMP_MAX_HOST_REPORT_DELAY	10	/* max delay for response to     */
-						/*  query (in seconds) according */
-						/*  to RFC1112                   */
-#define IGMP_TIMER_SCALE		10	/* denotes that the igmp code field */
-						/* specifies time in 10th of seconds*/
-
-/*
- * States for the IGMP v2 state table.
- */
-#define IGMP_DELAYING_MEMBER	1
-#define IGMP_IDLE_MEMBER	2
-#define IGMP_LAZY_MEMBER	3
-#define IGMP_SLEEPING_MEMBER	4
-#define IGMP_AWAKENING_MEMBER	5
-
-/*
- * States for IGMP router version cache.
- */
-#define IGMP_v1_ROUTER		1
-#define IGMP_v2_ROUTER		2
-
-/*
- * The following four defininitions are for backwards compatibility.
- * They should be removed as soon as all applications are updated to
- * use the new constant names.
- */
-#define IGMP_HOST_MEMBERSHIP_QUERY	IGMP_MEMBERSHIP_QUERY
-#define IGMP_HOST_MEMBERSHIP_REPORT	IGMP_V1_MEMBERSHIP_REPORT
-#define IGMP_HOST_NEW_MEMBERSHIP_REPORT	IGMP_V2_MEMBERSHIP_REPORT
-#define IGMP_HOST_LEAVE_MESSAGE		IGMP_V2_LEAVE_GROUP
-
-__END_DECLS
-
-#endif
-
-#endif	/* netinet/igmp.h */
diff --git a/inet/netinet/in.h b/inet/netinet/in.h
deleted file mode 100644
index f94b4b4e1c..0000000000
--- a/inet/netinet/in.h
+++ /dev/null
@@ -1,632 +0,0 @@
-/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef	_NETINET_IN_H
-#define	_NETINET_IN_H	1
-
-#include <features.h>
-#include <bits/stdint-uintn.h>
-#include <sys/socket.h>
-#include <bits/types.h>
-
-
-__BEGIN_DECLS
-
-/* Internet address.  */
-typedef uint32_t in_addr_t;
-struct in_addr
-  {
-    in_addr_t s_addr;
-  };
-
-/* Get system-specific definitions.  */
-#include <bits/in.h>
-
-/* Standard well-defined IP protocols.  */
-enum
-  {
-    IPPROTO_IP = 0,	   /* Dummy protocol for TCP.  */
-#define IPPROTO_IP		IPPROTO_IP
-    IPPROTO_ICMP = 1,	   /* Internet Control Message Protocol.  */
-#define IPPROTO_ICMP		IPPROTO_ICMP
-    IPPROTO_IGMP = 2,	   /* Internet Group Management Protocol. */
-#define IPPROTO_IGMP		IPPROTO_IGMP
-    IPPROTO_IPIP = 4,	   /* IPIP tunnels (older KA9Q tunnels use 94).  */
-#define IPPROTO_IPIP		IPPROTO_IPIP
-    IPPROTO_TCP = 6,	   /* Transmission Control Protocol.  */
-#define IPPROTO_TCP		IPPROTO_TCP
-    IPPROTO_EGP = 8,	   /* Exterior Gateway Protocol.  */
-#define IPPROTO_EGP		IPPROTO_EGP
-    IPPROTO_PUP = 12,	   /* PUP protocol.  */
-#define IPPROTO_PUP		IPPROTO_PUP
-    IPPROTO_UDP = 17,	   /* User Datagram Protocol.  */
-#define IPPROTO_UDP		IPPROTO_UDP
-    IPPROTO_IDP = 22,	   /* XNS IDP protocol.  */
-#define IPPROTO_IDP		IPPROTO_IDP
-    IPPROTO_TP = 29,	   /* SO Transport Protocol Class 4.  */
-#define IPPROTO_TP		IPPROTO_TP
-    IPPROTO_DCCP = 33,	   /* Datagram Congestion Control Protocol.  */
-#define IPPROTO_DCCP		IPPROTO_DCCP
-    IPPROTO_IPV6 = 41,     /* IPv6 header.  */
-#define IPPROTO_IPV6		IPPROTO_IPV6
-    IPPROTO_RSVP = 46,	   /* Reservation Protocol.  */
-#define IPPROTO_RSVP		IPPROTO_RSVP
-    IPPROTO_GRE = 47,	   /* General Routing Encapsulation.  */
-#define IPPROTO_GRE		IPPROTO_GRE
-    IPPROTO_ESP = 50,      /* encapsulating security payload.  */
-#define IPPROTO_ESP		IPPROTO_ESP
-    IPPROTO_AH = 51,       /* authentication header.  */
-#define IPPROTO_AH		IPPROTO_AH
-    IPPROTO_MTP = 92,	   /* Multicast Transport Protocol.  */
-#define IPPROTO_MTP		IPPROTO_MTP
-    IPPROTO_BEETPH = 94,   /* IP option pseudo header for BEET.  */
-#define IPPROTO_BEETPH		IPPROTO_BEETPH
-    IPPROTO_ENCAP = 98,	   /* Encapsulation Header.  */
-#define IPPROTO_ENCAP		IPPROTO_ENCAP
-    IPPROTO_PIM = 103,	   /* Protocol Independent Multicast.  */
-#define IPPROTO_PIM		IPPROTO_PIM
-    IPPROTO_COMP = 108,	   /* Compression Header Protocol.  */
-#define IPPROTO_COMP		IPPROTO_COMP
-    IPPROTO_SCTP = 132,	   /* Stream Control Transmission Protocol.  */
-#define IPPROTO_SCTP		IPPROTO_SCTP
-    IPPROTO_UDPLITE = 136, /* UDP-Lite protocol.  */
-#define IPPROTO_UDPLITE		IPPROTO_UDPLITE
-    IPPROTO_MPLS = 137,    /* MPLS in IP.  */
-#define IPPROTO_MPLS		IPPROTO_MPLS
-    IPPROTO_RAW = 255,	   /* Raw IP packets.  */
-#define IPPROTO_RAW		IPPROTO_RAW
-    IPPROTO_MAX
-  };
-
-/* If __USE_KERNEL_IPV6_DEFS is 1 then the user has included the kernel
-   network headers first and we should use those ABI-identical definitions
-   instead of our own, otherwise 0.  */
-#if !__USE_KERNEL_IPV6_DEFS
-enum
-  {
-    IPPROTO_HOPOPTS = 0,   /* IPv6 Hop-by-Hop options.  */
-#define IPPROTO_HOPOPTS		IPPROTO_HOPOPTS
-    IPPROTO_ROUTING = 43,  /* IPv6 routing header.  */
-#define IPPROTO_ROUTING		IPPROTO_ROUTING
-    IPPROTO_FRAGMENT = 44, /* IPv6 fragmentation header.  */
-#define IPPROTO_FRAGMENT	IPPROTO_FRAGMENT
-    IPPROTO_ICMPV6 = 58,   /* ICMPv6.  */
-#define IPPROTO_ICMPV6		IPPROTO_ICMPV6
-    IPPROTO_NONE = 59,     /* IPv6 no next header.  */
-#define IPPROTO_NONE		IPPROTO_NONE
-    IPPROTO_DSTOPTS = 60,  /* IPv6 destination options.  */
-#define IPPROTO_DSTOPTS		IPPROTO_DSTOPTS
-    IPPROTO_MH = 135       /* IPv6 mobility header.  */
-#define IPPROTO_MH		IPPROTO_MH
-  };
-#endif /* !__USE_KERNEL_IPV6_DEFS */
-
-/* Type to represent a port.  */
-typedef uint16_t in_port_t;
-
-/* Standard well-known ports.  */
-enum
-  {
-    IPPORT_ECHO = 7,		/* Echo service.  */
-    IPPORT_DISCARD = 9,		/* Discard transmissions service.  */
-    IPPORT_SYSTAT = 11,		/* System status service.  */
-    IPPORT_DAYTIME = 13,	/* Time of day service.  */
-    IPPORT_NETSTAT = 15,	/* Network status service.  */
-    IPPORT_FTP = 21,		/* File Transfer Protocol.  */
-    IPPORT_TELNET = 23,		/* Telnet protocol.  */
-    IPPORT_SMTP = 25,		/* Simple Mail Transfer Protocol.  */
-    IPPORT_TIMESERVER = 37,	/* Timeserver service.  */
-    IPPORT_NAMESERVER = 42,	/* Domain Name Service.  */
-    IPPORT_WHOIS = 43,		/* Internet Whois service.  */
-    IPPORT_MTP = 57,
-
-    IPPORT_TFTP = 69,		/* Trivial File Transfer Protocol.  */
-    IPPORT_RJE = 77,
-    IPPORT_FINGER = 79,		/* Finger service.  */
-    IPPORT_TTYLINK = 87,
-    IPPORT_SUPDUP = 95,		/* SUPDUP protocol.  */
-
-
-    IPPORT_EXECSERVER = 512,	/* execd service.  */
-    IPPORT_LOGINSERVER = 513,	/* rlogind service.  */
-    IPPORT_CMDSERVER = 514,
-    IPPORT_EFSSERVER = 520,
-
-    /* UDP ports.  */
-    IPPORT_BIFFUDP = 512,
-    IPPORT_WHOSERVER = 513,
-    IPPORT_ROUTESERVER = 520,
-
-    /* Ports less than this value are reserved for privileged processes.  */
-    IPPORT_RESERVED = 1024,
-
-    /* Ports greater this value are reserved for (non-privileged) servers.  */
-    IPPORT_USERRESERVED = 5000
-  };
-
-/* Definitions of the bits in an Internet address integer.
-
-   On subnets, host and network parts are found according to
-   the subnet mask, not these masks.  */
-
-#define	IN_CLASSA(a)		((((in_addr_t)(a)) & 0x80000000) == 0)
-#define	IN_CLASSA_NET		0xff000000
-#define	IN_CLASSA_NSHIFT	24
-#define	IN_CLASSA_HOST		(0xffffffff & ~IN_CLASSA_NET)
-#define	IN_CLASSA_MAX		128
-
-#define	IN_CLASSB(a)		((((in_addr_t)(a)) & 0xc0000000) == 0x80000000)
-#define	IN_CLASSB_NET		0xffff0000
-#define	IN_CLASSB_NSHIFT	16
-#define	IN_CLASSB_HOST		(0xffffffff & ~IN_CLASSB_NET)
-#define	IN_CLASSB_MAX		65536
-
-#define	IN_CLASSC(a)		((((in_addr_t)(a)) & 0xe0000000) == 0xc0000000)
-#define	IN_CLASSC_NET		0xffffff00
-#define	IN_CLASSC_NSHIFT	8
-#define	IN_CLASSC_HOST		(0xffffffff & ~IN_CLASSC_NET)
-
-#define	IN_CLASSD(a)		((((in_addr_t)(a)) & 0xf0000000) == 0xe0000000)
-#define	IN_MULTICAST(a)		IN_CLASSD(a)
-
-#define	IN_EXPERIMENTAL(a)	((((in_addr_t)(a)) & 0xe0000000) == 0xe0000000)
-#define	IN_BADCLASS(a)		((((in_addr_t)(a)) & 0xf0000000) == 0xf0000000)
-
-/* Address to accept any incoming messages.  */
-#define	INADDR_ANY		((in_addr_t) 0x00000000)
-/* Address to send to all hosts.  */
-#define	INADDR_BROADCAST	((in_addr_t) 0xffffffff)
-/* Address indicating an error return.  */
-#define	INADDR_NONE		((in_addr_t) 0xffffffff)
-
-/* Network number for local host loopback.  */
-#define	IN_LOOPBACKNET		127
-/* Address to loopback in software to local host.  */
-#ifndef INADDR_LOOPBACK
-# define INADDR_LOOPBACK	((in_addr_t) 0x7f000001) /* Inet 127.0.0.1.  */
-#endif
-
-/* Defines for Multicast INADDR.  */
-#define INADDR_UNSPEC_GROUP	((in_addr_t) 0xe0000000) /* 224.0.0.0 */
-#define INADDR_ALLHOSTS_GROUP	((in_addr_t) 0xe0000001) /* 224.0.0.1 */
-#define INADDR_ALLRTRS_GROUP    ((in_addr_t) 0xe0000002) /* 224.0.0.2 */
-#define INADDR_MAX_LOCAL_GROUP  ((in_addr_t) 0xe00000ff) /* 224.0.0.255 */
-
-#if !__USE_KERNEL_IPV6_DEFS
-/* IPv6 address */
-struct in6_addr
-  {
-    union
-      {
-	uint8_t	__u6_addr8[16];
-	uint16_t __u6_addr16[8];
-	uint32_t __u6_addr32[4];
-      } __in6_u;
-#define s6_addr			__in6_u.__u6_addr8
-#ifdef __USE_MISC
-# define s6_addr16		__in6_u.__u6_addr16
-# define s6_addr32		__in6_u.__u6_addr32
-#endif
-  };
-#endif /* !__USE_KERNEL_IPV6_DEFS */
-
-extern const struct in6_addr in6addr_any;        /* :: */
-extern const struct in6_addr in6addr_loopback;   /* ::1 */
-#define IN6ADDR_ANY_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } }
-#define IN6ADDR_LOOPBACK_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } }
-
-#define INET_ADDRSTRLEN 16
-#define INET6_ADDRSTRLEN 46
-
-
-/* Structure describing an Internet socket address.  */
-struct sockaddr_in
-  {
-    __SOCKADDR_COMMON (sin_);
-    in_port_t sin_port;			/* Port number.  */
-    struct in_addr sin_addr;		/* Internet address.  */
-
-    /* Pad to size of `struct sockaddr'.  */
-    unsigned char sin_zero[sizeof (struct sockaddr) -
-			   __SOCKADDR_COMMON_SIZE -
-			   sizeof (in_port_t) -
-			   sizeof (struct in_addr)];
-  };
-
-#if !__USE_KERNEL_IPV6_DEFS
-/* Ditto, for IPv6.  */
-struct sockaddr_in6
-  {
-    __SOCKADDR_COMMON (sin6_);
-    in_port_t sin6_port;	/* Transport layer port # */
-    uint32_t sin6_flowinfo;	/* IPv6 flow information */
-    struct in6_addr sin6_addr;	/* IPv6 address */
-    uint32_t sin6_scope_id;	/* IPv6 scope-id */
-  };
-#endif /* !__USE_KERNEL_IPV6_DEFS */
-
-#ifdef __USE_MISC
-/* IPv4 multicast request.  */
-struct ip_mreq
-  {
-    /* IP multicast address of group.  */
-    struct in_addr imr_multiaddr;
-
-    /* Local IP address of interface.  */
-    struct in_addr imr_interface;
-  };
-
-struct ip_mreq_source
-  {
-    /* IP multicast address of group.  */
-    struct in_addr imr_multiaddr;
-
-    /* IP address of interface.  */
-    struct in_addr imr_interface;
-
-    /* IP address of source.  */
-    struct in_addr imr_sourceaddr;
-  };
-#endif
-
-#if !__USE_KERNEL_IPV6_DEFS
-/* Likewise, for IPv6.  */
-struct ipv6_mreq
-  {
-    /* IPv6 multicast address of group */
-    struct in6_addr ipv6mr_multiaddr;
-
-    /* local interface */
-    unsigned int ipv6mr_interface;
-  };
-#endif /* !__USE_KERNEL_IPV6_DEFS */
-
-#ifdef __USE_MISC
-/* Multicast group request.  */
-struct group_req
-  {
-    /* Interface index.  */
-    uint32_t gr_interface;
-
-    /* Group address.  */
-    struct sockaddr_storage gr_group;
-  };
-
-struct group_source_req
-  {
-    /* Interface index.  */
-    uint32_t gsr_interface;
-
-    /* Group address.  */
-    struct sockaddr_storage gsr_group;
-
-    /* Source address.  */
-    struct sockaddr_storage gsr_source;
-  };
-
-
-/* Full-state filter operations.  */
-struct ip_msfilter
-  {
-    /* IP multicast address of group.  */
-    struct in_addr imsf_multiaddr;
-
-    /* Local IP address of interface.  */
-    struct in_addr imsf_interface;
-
-    /* Filter mode.  */
-    uint32_t imsf_fmode;
-
-    /* Number of source addresses.  */
-    uint32_t imsf_numsrc;
-    /* Source addresses.  */
-    struct in_addr imsf_slist[1];
-  };
-
-#define IP_MSFILTER_SIZE(numsrc) (sizeof (struct ip_msfilter) \
-				  - sizeof (struct in_addr)		      \
-				  + (numsrc) * sizeof (struct in_addr))
-
-struct group_filter
-  {
-    /* Interface index.  */
-    uint32_t gf_interface;
-
-    /* Group address.  */
-    struct sockaddr_storage gf_group;
-
-    /* Filter mode.  */
-    uint32_t gf_fmode;
-
-    /* Number of source addresses.  */
-    uint32_t gf_numsrc;
-    /* Source addresses.  */
-    struct sockaddr_storage gf_slist[1];
-};
-
-#define GROUP_FILTER_SIZE(numsrc) (sizeof (struct group_filter) \
-				   - sizeof (struct sockaddr_storage)	      \
-				   + ((numsrc)				      \
-				      * sizeof (struct sockaddr_storage)))
-#endif
-
-/* Functions to convert between host and network byte order.
-
-   Please note that these functions normally take `unsigned long int' or
-   `unsigned short int' values as arguments and also return them.  But
-   this was a short-sighted decision since on different systems the types
-   may have different representations but the values are always the same.  */
-
-extern uint32_t ntohl (uint32_t __netlong) __THROW __attribute__ ((__const__));
-extern uint16_t ntohs (uint16_t __netshort)
-     __THROW __attribute__ ((__const__));
-extern uint32_t htonl (uint32_t __hostlong)
-     __THROW __attribute__ ((__const__));
-extern uint16_t htons (uint16_t __hostshort)
-     __THROW __attribute__ ((__const__));
-
-#include <endian.h>
-
-/* Get machine dependent optimized versions of byte swapping functions.  */
-#include <bits/byteswap.h>
-#include <bits/uintn-identity.h>
-
-#ifdef __OPTIMIZE__
-/* We can optimize calls to the conversion functions.  Either nothing has
-   to be done or we are using directly the byte-swapping functions which
-   often can be inlined.  */
-# if __BYTE_ORDER == __BIG_ENDIAN
-/* The host byte order is the same as network byte order,
-   so these functions are all just identity.  */
-# define ntohl(x)	__uint32_identity (x)
-# define ntohs(x)	__uint16_identity (x)
-# define htonl(x)	__uint32_identity (x)
-# define htons(x)	__uint16_identity (x)
-# else
-#  if __BYTE_ORDER == __LITTLE_ENDIAN
-#   define ntohl(x)	__bswap_32 (x)
-#   define ntohs(x)	__bswap_16 (x)
-#   define htonl(x)	__bswap_32 (x)
-#   define htons(x)	__bswap_16 (x)
-#  endif
-# endif
-#endif
-
-#ifdef __GNUC__
-# define IN6_IS_ADDR_UNSPECIFIED(a) \
-  (__extension__							      \
-   ({ const struct in6_addr *__a = (const struct in6_addr *) (a);	      \
-      __a->__in6_u.__u6_addr32[0] == 0					      \
-      && __a->__in6_u.__u6_addr32[1] == 0				      \
-      && __a->__in6_u.__u6_addr32[2] == 0				      \
-      && __a->__in6_u.__u6_addr32[3] == 0; }))
-
-# define IN6_IS_ADDR_LOOPBACK(a) \
-  (__extension__							      \
-   ({ const struct in6_addr *__a = (const struct in6_addr *) (a);	      \
-      __a->__in6_u.__u6_addr32[0] == 0					      \
-      && __a->__in6_u.__u6_addr32[1] == 0				      \
-      && __a->__in6_u.__u6_addr32[2] == 0				      \
-      && __a->__in6_u.__u6_addr32[3] == htonl (1); }))
-
-# define IN6_IS_ADDR_LINKLOCAL(a) \
-  (__extension__							      \
-   ({ const struct in6_addr *__a = (const struct in6_addr *) (a);	      \
-      (__a->__in6_u.__u6_addr32[0] & htonl (0xffc00000)) == htonl (0xfe800000); }))
-
-# define IN6_IS_ADDR_SITELOCAL(a) \
-  (__extension__							      \
-   ({ const struct in6_addr *__a = (const struct in6_addr *) (a);	      \
-      (__a->__in6_u.__u6_addr32[0] & htonl (0xffc00000)) == htonl (0xfec00000); }))
-
-# define IN6_IS_ADDR_V4MAPPED(a) \
-  (__extension__							      \
-   ({ const struct in6_addr *__a = (const struct in6_addr *) (a);	      \
-      __a->__in6_u.__u6_addr32[0] == 0					      \
-      && __a->__in6_u.__u6_addr32[1] == 0				      \
-      && __a->__in6_u.__u6_addr32[2] == htonl (0xffff); }))
-
-# define IN6_IS_ADDR_V4COMPAT(a) \
-  (__extension__							      \
-   ({ const struct in6_addr *__a = (const struct in6_addr *) (a);	      \
-      __a->__in6_u.__u6_addr32[0] == 0					      \
-      && __a->__in6_u.__u6_addr32[1] == 0				      \
-      && __a->__in6_u.__u6_addr32[2] == 0				      \
-      && ntohl (__a->__in6_u.__u6_addr32[3]) > 1; }))
-
-# define IN6_ARE_ADDR_EQUAL(a,b) \
-  (__extension__							      \
-   ({ const struct in6_addr *__a = (const struct in6_addr *) (a);	      \
-      const struct in6_addr *__b = (const struct in6_addr *) (b);	      \
-      __a->__in6_u.__u6_addr32[0] == __b->__in6_u.__u6_addr32[0]	      \
-      && __a->__in6_u.__u6_addr32[1] == __b->__in6_u.__u6_addr32[1]	      \
-      && __a->__in6_u.__u6_addr32[2] == __b->__in6_u.__u6_addr32[2]	      \
-      && __a->__in6_u.__u6_addr32[3] == __b->__in6_u.__u6_addr32[3]; }))
-#else
-# define IN6_IS_ADDR_UNSPECIFIED(a) \
-	(((const uint32_t *) (a))[0] == 0				      \
-	 && ((const uint32_t *) (a))[1] == 0				      \
-	 && ((const uint32_t *) (a))[2] == 0				      \
-	 && ((const uint32_t *) (a))[3] == 0)
-
-# define IN6_IS_ADDR_LOOPBACK(a) \
-	(((const uint32_t *) (a))[0] == 0				      \
-	 && ((const uint32_t *) (a))[1] == 0				      \
-	 && ((const uint32_t *) (a))[2] == 0				      \
-	 && ((const uint32_t *) (a))[3] == htonl (1))
-
-# define IN6_IS_ADDR_LINKLOCAL(a) \
-	((((const uint32_t *) (a))[0] & htonl (0xffc00000))		      \
-	 == htonl (0xfe800000))
-
-# define IN6_IS_ADDR_SITELOCAL(a) \
-	((((const uint32_t *) (a))[0] & htonl (0xffc00000))		      \
-	 == htonl (0xfec00000))
-
-# define IN6_IS_ADDR_V4MAPPED(a) \
-	((((const uint32_t *) (a))[0] == 0)				      \
-	 && (((const uint32_t *) (a))[1] == 0)				      \
-	 && (((const uint32_t *) (a))[2] == htonl (0xffff)))
-
-# define IN6_IS_ADDR_V4COMPAT(a) \
-	((((const uint32_t *) (a))[0] == 0)				      \
-	 && (((const uint32_t *) (a))[1] == 0)				      \
-	 && (((const uint32_t *) (a))[2] == 0)				      \
-	 && (ntohl (((const uint32_t *) (a))[3]) > 1))
-
-# define IN6_ARE_ADDR_EQUAL(a,b) \
-	((((const uint32_t *) (a))[0] == ((const uint32_t *) (b))[0])	      \
-	 && (((const uint32_t *) (a))[1] == ((const uint32_t *) (b))[1])      \
-	 && (((const uint32_t *) (a))[2] == ((const uint32_t *) (b))[2])      \
-	 && (((const uint32_t *) (a))[3] == ((const uint32_t *) (b))[3]))
-#endif
-
-#define IN6_IS_ADDR_MULTICAST(a) (((const uint8_t *) (a))[0] == 0xff)
-
-#ifdef __USE_MISC
-/* Bind socket to a privileged IP port.  */
-extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) __THROW;
-
-/* The IPv6 version of this function.  */
-extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in)
-     __THROW;
-#endif
-
-
-#define IN6_IS_ADDR_MC_NODELOCAL(a) \
-	(IN6_IS_ADDR_MULTICAST(a)					      \
-	 && ((((const uint8_t *) (a))[1] & 0xf) == 0x1))
-
-#define IN6_IS_ADDR_MC_LINKLOCAL(a) \
-	(IN6_IS_ADDR_MULTICAST(a)					      \
-	 && ((((const uint8_t *) (a))[1] & 0xf) == 0x2))
-
-#define IN6_IS_ADDR_MC_SITELOCAL(a) \
-	(IN6_IS_ADDR_MULTICAST(a)					      \
-	 && ((((const uint8_t *) (a))[1] & 0xf) == 0x5))
-
-#define IN6_IS_ADDR_MC_ORGLOCAL(a) \
-	(IN6_IS_ADDR_MULTICAST(a)					      \
-	 && ((((const uint8_t *) (a))[1] & 0xf) == 0x8))
-
-#define IN6_IS_ADDR_MC_GLOBAL(a) \
-	(IN6_IS_ADDR_MULTICAST(a)					      \
-	 && ((((const uint8_t *) (a))[1] & 0xf) == 0xe))
-
-
-#ifdef __USE_GNU
-struct cmsghdr;			/* Forward declaration.  */
-
-#if !__USE_KERNEL_IPV6_DEFS
-/* IPv6 packet information.  */
-struct in6_pktinfo
-  {
-    struct in6_addr ipi6_addr;	/* src/dst IPv6 address */
-    unsigned int ipi6_ifindex;	/* send/recv interface index */
-  };
-
-/* IPv6 MTU information.  */
-struct ip6_mtuinfo
-  {
-    struct sockaddr_in6 ip6m_addr; /* dst address including zone ID */
-    uint32_t ip6m_mtu;		   /* path MTU in host byte order */
-  };
-#endif /* !__USE_KERNEL_IPV6_DEFS */
-
-/* Obsolete hop-by-hop and Destination Options Processing (RFC 2292).  */
-extern int inet6_option_space (int __nbytes)
-     __THROW __attribute_deprecated__;
-extern int inet6_option_init (void *__bp, struct cmsghdr **__cmsgp,
-			      int __type) __THROW __attribute_deprecated__;
-extern int inet6_option_append (struct cmsghdr *__cmsg,
-				const uint8_t *__typep, int __multx,
-				int __plusy) __THROW __attribute_deprecated__;
-extern uint8_t *inet6_option_alloc (struct cmsghdr *__cmsg, int __datalen,
-				    int __multx, int __plusy)
-     __THROW __attribute_deprecated__;
-extern int inet6_option_next (const struct cmsghdr *__cmsg,
-			      uint8_t **__tptrp)
-     __THROW __attribute_deprecated__;
-extern int inet6_option_find (const struct cmsghdr *__cmsg,
-			      uint8_t **__tptrp, int __type)
-     __THROW __attribute_deprecated__;
-
-
-/* Hop-by-Hop and Destination Options Processing (RFC 3542).  */
-extern int inet6_opt_init (void *__extbuf, socklen_t __extlen) __THROW;
-extern int inet6_opt_append (void *__extbuf, socklen_t __extlen, int __offset,
-			     uint8_t __type, socklen_t __len, uint8_t __align,
-			     void **__databufp) __THROW;
-extern int inet6_opt_finish (void *__extbuf, socklen_t __extlen, int __offset)
-     __THROW;
-extern int inet6_opt_set_val (void *__databuf, int __offset, void *__val,
-			      socklen_t __vallen) __THROW;
-extern int inet6_opt_next (void *__extbuf, socklen_t __extlen, int __offset,
-			   uint8_t *__typep, socklen_t *__lenp,
-			   void **__databufp) __THROW;
-extern int inet6_opt_find (void *__extbuf, socklen_t __extlen, int __offset,
-			   uint8_t __type, socklen_t *__lenp,
-			   void **__databufp) __THROW;
-extern int inet6_opt_get_val (void *__databuf, int __offset, void *__val,
-			      socklen_t __vallen) __THROW;
-
-
-/* Routing Header Option (RFC 3542).  */
-extern socklen_t inet6_rth_space (int __type, int __segments) __THROW;
-extern void *inet6_rth_init (void *__bp, socklen_t __bp_len, int __type,
-			     int __segments) __THROW;
-extern int inet6_rth_add (void *__bp, const struct in6_addr *__addr) __THROW;
-extern int inet6_rth_reverse (const void *__in, void *__out) __THROW;
-extern int inet6_rth_segments (const void *__bp) __THROW;
-extern struct in6_addr *inet6_rth_getaddr (const void *__bp, int __index)
-     __THROW;
-
-
-/* Multicast source filter support.  */
-
-/* Get IPv4 source filter.  */
-extern int getipv4sourcefilter (int __s, struct in_addr __interface_addr,
-				struct in_addr __group, uint32_t *__fmode,
-				uint32_t *__numsrc, struct in_addr *__slist)
-     __THROW;
-
-/* Set IPv4 source filter.  */
-extern int setipv4sourcefilter (int __s, struct in_addr __interface_addr,
-				struct in_addr __group, uint32_t __fmode,
-				uint32_t __numsrc,
-				const struct in_addr *__slist)
-     __THROW;
-
-
-/* Get source filter.  */
-extern int getsourcefilter (int __s, uint32_t __interface_addr,
-			    const struct sockaddr *__group,
-			    socklen_t __grouplen, uint32_t *__fmode,
-			    uint32_t *__numsrc,
-			    struct sockaddr_storage *__slist) __THROW;
-
-/* Set source filter.  */
-extern int setsourcefilter (int __s, uint32_t __interface_addr,
-			    const struct sockaddr *__group,
-			    socklen_t __grouplen, uint32_t __fmode,
-			    uint32_t __numsrc,
-			    const struct sockaddr_storage *__slist) __THROW;
-#endif	/* use GNU */
-
-__END_DECLS
-
-#endif	/* netinet/in.h */
diff --git a/inet/netinet/ip6.h b/inet/netinet/ip6.h
deleted file mode 100644
index dbced70502..0000000000
--- a/inet/netinet/ip6.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _NETINET_IP6_H
-#define _NETINET_IP6_H 1
-
-#include <inttypes.h>
-#include <netinet/in.h>
-
-struct ip6_hdr
-  {
-    union
-      {
-	struct ip6_hdrctl
-	  {
-	    uint32_t ip6_un1_flow;   /* 4 bits version, 8 bits TC,
-					20 bits flow-ID */
-	    uint16_t ip6_un1_plen;   /* payload length */
-	    uint8_t  ip6_un1_nxt;    /* next header */
-	    uint8_t  ip6_un1_hlim;   /* hop limit */
-	  } ip6_un1;
-	uint8_t ip6_un2_vfc;       /* 4 bits version, top 4 bits tclass */
-      } ip6_ctlun;
-    struct in6_addr ip6_src;      /* source address */
-    struct in6_addr ip6_dst;      /* destination address */
-  };
-
-#define ip6_vfc   ip6_ctlun.ip6_un2_vfc
-#define ip6_flow  ip6_ctlun.ip6_un1.ip6_un1_flow
-#define ip6_plen  ip6_ctlun.ip6_un1.ip6_un1_plen
-#define ip6_nxt   ip6_ctlun.ip6_un1.ip6_un1_nxt
-#define ip6_hlim  ip6_ctlun.ip6_un1.ip6_un1_hlim
-#define ip6_hops  ip6_ctlun.ip6_un1.ip6_un1_hlim
-
-/* Generic extension header.  */
-struct ip6_ext
-  {
-    uint8_t  ip6e_nxt;		/* next header.  */
-    uint8_t  ip6e_len;		/* length in units of 8 octets.  */
-  };
-
-/* Hop-by-Hop options header.  */
-struct ip6_hbh
-  {
-    uint8_t  ip6h_nxt;		/* next header.  */
-    uint8_t  ip6h_len;		/* length in units of 8 octets.  */
-    /* followed by options */
-  };
-
-/* Destination options header */
-struct ip6_dest
-  {
-    uint8_t  ip6d_nxt;		/* next header */
-    uint8_t  ip6d_len;		/* length in units of 8 octets */
-    /* followed by options */
-  };
-
-/* Routing header */
-struct ip6_rthdr
-  {
-    uint8_t  ip6r_nxt;		/* next header */
-    uint8_t  ip6r_len;		/* length in units of 8 octets */
-    uint8_t  ip6r_type;		/* routing type */
-    uint8_t  ip6r_segleft;	/* segments left */
-    /* followed by routing type specific data */
-  };
-
-/* Type 0 Routing header */
-struct ip6_rthdr0
-  {
-    uint8_t  ip6r0_nxt;		/* next header */
-    uint8_t  ip6r0_len;		/* length in units of 8 octets */
-    uint8_t  ip6r0_type;	/* always zero */
-    uint8_t  ip6r0_segleft;	/* segments left */
-    uint8_t  ip6r0_reserved;	/* reserved field */
-    uint8_t  ip6r0_slmap[3];	/* strict/loose bit map */
-    /* followed by up to 127 struct in6_addr */
-    struct in6_addr ip6r0_addr[0];
-  };
-
-/* Fragment header */
-struct ip6_frag
-  {
-    uint8_t   ip6f_nxt;		/* next header */
-    uint8_t   ip6f_reserved;	/* reserved field */
-    uint16_t  ip6f_offlg;	/* offset, reserved, and flag */
-    uint32_t  ip6f_ident;	/* identification */
-  };
-
-#if __BYTE_ORDER == __BIG_ENDIAN
-# define IP6F_OFF_MASK       0xfff8  /* mask out offset from _offlg */
-# define IP6F_RESERVED_MASK  0x0006  /* reserved bits in ip6f_offlg */
-# define IP6F_MORE_FRAG      0x0001  /* more-fragments flag */
-#else   /* __BYTE_ORDER == __LITTLE_ENDIAN */
-# define IP6F_OFF_MASK       0xf8ff  /* mask out offset from _offlg */
-# define IP6F_RESERVED_MASK  0x0600  /* reserved bits in ip6f_offlg */
-# define IP6F_MORE_FRAG      0x0100  /* more-fragments flag */
-#endif
-
-/* IPv6 options */
-struct ip6_opt
-  {
-    uint8_t  ip6o_type;
-    uint8_t  ip6o_len;
-  };
-
-/* The high-order 3 bits of the option type define the behavior
- * when processing an unknown option and whether or not the option
- * content changes in flight.
- */
-#define IP6OPT_TYPE(o)		((o) & 0xc0)
-#define IP6OPT_TYPE_SKIP	0x00
-#define IP6OPT_TYPE_DISCARD	0x40
-#define IP6OPT_TYPE_FORCEICMP	0x80
-#define IP6OPT_TYPE_ICMP	0xc0
-#define IP6OPT_TYPE_MUTABLE	0x20
-
-/* Special option types for padding.  */
-#define IP6OPT_PAD1	0
-#define IP6OPT_PADN	1
-
-#define IP6OPT_JUMBO		0xc2
-#define IP6OPT_NSAP_ADDR	0xc3
-#define IP6OPT_TUNNEL_LIMIT	0x04
-#define IP6OPT_ROUTER_ALERT	0x05
-
-/* Jumbo Payload Option */
-struct ip6_opt_jumbo
-  {
-    uint8_t  ip6oj_type;
-    uint8_t  ip6oj_len;
-    uint8_t  ip6oj_jumbo_len[4];
-  };
-#define IP6OPT_JUMBO_LEN	6
-
-/* NSAP Address Option */
-struct ip6_opt_nsap
-  {
-    uint8_t  ip6on_type;
-    uint8_t  ip6on_len;
-    uint8_t  ip6on_src_nsap_len;
-    uint8_t  ip6on_dst_nsap_len;
-      /* followed by source NSAP */
-      /* followed by destination NSAP */
-  };
-
-/* Tunnel Limit Option */
-struct ip6_opt_tunnel
-  {
-    uint8_t  ip6ot_type;
-    uint8_t  ip6ot_len;
-    uint8_t  ip6ot_encap_limit;
-  };
-
-/* Router Alert Option */
-struct ip6_opt_router
-  {
-    uint8_t  ip6or_type;
-    uint8_t  ip6or_len;
-    uint8_t  ip6or_value[2];
-  };
-
-/* Router alert values (in network byte order) */
-#if __BYTE_ORDER == __BIG_ENDIAN
-# define IP6_ALERT_MLD	0x0000
-# define IP6_ALERT_RSVP	0x0001
-# define IP6_ALERT_AN	0x0002
-#else /* __BYTE_ORDER == __LITTLE_ENDIAN */
-# define IP6_ALERT_MLD	0x0000
-# define IP6_ALERT_RSVP	0x0100
-# define IP6_ALERT_AN	0x0200
-#endif
-
-#endif /* netinet/ip6.h */
diff --git a/inet/protocols/routed.h b/inet/protocols/routed.h
deleted file mode 100644
index adb1767dca..0000000000
--- a/inet/protocols/routed.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*-
- * Copyright (c) 1983, 1989, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	@(#)routed.h	8.1 (Berkeley) 6/2/93
- */
-
-#ifndef _PROTOCOLS_ROUTED_H
-#define	_PROTOCOLS_ROUTED_H 1
-
-#include <sys/socket.h>
-/*
- * Routing Information Protocol
- *
- * Derived from Xerox NS Routing Information Protocol
- * by changing 32-bit net numbers to sockaddr's and
- * padding stuff to 32-bit boundaries.
- */
-#define	RIPVERSION	1
-
-struct netinfo {
-	struct	sockaddr rip_dst;	/* destination net/host */
-	int	rip_metric;		/* cost of route */
-};
-
-struct rip {
-	unsigned char	rip_cmd;		/* request/response */
-	unsigned char	rip_vers;		/* protocol version # */
-	unsigned char	rip_res1[2];		/* pad to 32-bit boundary */
-	union {
-		struct	netinfo ru_nets[1];	/* variable length... */
-		char	ru_tracefile[1];	/* ditto ... */
-	} ripun;
-#define	rip_nets	ripun.ru_nets
-#define	rip_tracefile	ripun.ru_tracefile
-};
-
-/*
- * Packet types.
- */
-#define	RIPCMD_REQUEST		1	/* want info */
-#define	RIPCMD_RESPONSE		2	/* responding to request */
-#define	RIPCMD_TRACEON		3	/* turn tracing on */
-#define	RIPCMD_TRACEOFF		4	/* turn it off */
-
-#define	RIPCMD_MAX		5
-#ifdef RIPCMDS
-char *ripcmds[RIPCMD_MAX] =
-  { "#0", "REQUEST", "RESPONSE", "TRACEON", "TRACEOFF" };
-#endif
-
-#define	HOPCNT_INFINITY		16	/* per Xerox NS */
-#define	MAXPACKETSIZE		512	/* max broadcast size */
-
-/*
- * Timer values used in managing the routing table.
- * Complete tables are broadcast every SUPPLY_INTERVAL seconds.
- * If changes occur between updates, dynamic updates containing only changes
- * may be sent.  When these are sent, a timer is set for a random value
- * between MIN_WAITTIME and MAX_WAITTIME, and no additional dynamic updates
- * are sent until the timer expires.
- *
- * Every update of a routing entry forces an entry's timer to be reset.
- * After EXPIRE_TIME without updates, the entry is marked invalid,
- * but held onto until GARBAGE_TIME so that others may
- * see it "be deleted".
- */
-#define	TIMER_RATE		30	/* alarm clocks every 30 seconds */
-
-#define	SUPPLY_INTERVAL		30	/* time to supply tables */
-#define	MIN_WAITTIME		2	/* min. interval to broadcast changes */
-#define	MAX_WAITTIME		5	/* max. time to delay changes */
-
-#define	EXPIRE_TIME		180	/* time to mark entry invalid */
-#define	GARBAGE_TIME		240	/* time to garbage collect */
-
-#endif /* protocols/routed.h */
diff --git a/inet/protocols/rwhod.h b/inet/protocols/rwhod.h
deleted file mode 100644
index 446d6f97b8..0000000000
--- a/inet/protocols/rwhod.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	@(#)rwhod.h	8.1 (Berkeley) 6/2/93
- */
-
-#ifndef _PROTOCOLS_RWHOD_H
-#define	_PROTOCOLS_RWHOD_H 1
-
-#include <sys/types.h>
-
-/*
- * rwho protocol packet format.
- */
-struct	outmp {
-	char	out_line[8];		/* tty name */
-	char	out_name[8];		/* user id */
-	int32_t	out_time;		/* time on */
-};
-
-struct	whod {
-	char	wd_vers;		/* protocol version # */
-	char	wd_type;		/* packet type, see below */
-	char	wd_pad[2];
-	int	wd_sendtime;		/* time stamp by sender */
-	int	wd_recvtime;		/* time stamp applied by receiver */
-	char	wd_hostname[32];	/* hosts's name */
-	int	wd_loadav[3];		/* load average as in uptime */
-	int	wd_boottime;		/* time system booted */
-	struct	whoent {
-		struct	outmp we_utmp;	/* active tty info */
-		int	we_idle;	/* tty idle time */
-	} wd_we[1024 / sizeof (struct whoent)];
-};
-
-#define	WHODVERSION	1
-#define	WHODTYPE_STATUS	1		/* host status */
-
-/* We used to define _PATH_RWHODIR here but it's now in <paths.h>.  */
-#include <paths.h>
-
-#endif /* protocols/rwhod.h */
diff --git a/inet/protocols/talkd.h b/inet/protocols/talkd.h
deleted file mode 100644
index 09bd8a90ba..0000000000
--- a/inet/protocols/talkd.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	@(#)talkd.h	8.1 (Berkeley) 6/2/93
- */
-
-#ifndef _PROTOCOLS_TALKD_H
-#define	_PROTOCOLS_TALKD_H 1
-
-/*
- * This describes the protocol used by the talk server and clients.
- *
- * The talk server acts a repository of invitations, responding to
- * requests by clients wishing to rendezvous for the purpose of
- * holding a conversation.  In normal operation, a client, the caller,
- * initiates a rendezvous by sending a CTL_MSG to the server of
- * type LOOK_UP.  This causes the server to search its invitation
- * tables to check if an invitation currently exists for the caller
- * (to speak to the callee specified in the message).  If the lookup
- * fails, the caller then sends an ANNOUNCE message causing the server
- * to broadcast an announcement on the callee's login ports requesting
- * contact.  When the callee responds, the local server uses the
- * recorded invitation to respond with the appropriate rendezvous
- * address and the caller and callee client programs establish a
- * stream connection through which the conversation takes place.
- */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <stdint.h>
-#include <bits/types/struct_osockaddr.h>
-
-/*
- * Client->server request message format.
- */
-typedef struct {
-	unsigned char	vers;	/* protocol version */
-	unsigned char	type;	/* request type, see below */
-	unsigned char	answer;	/* not used */
-	unsigned char	pad;
-	uint32_t id_num;	/* message id */
-	struct	osockaddr addr;		/* old (4.3) style */
-	struct	osockaddr ctl_addr;	/* old (4.3) style */
-	int32_t	pid;		/* caller's process id */
-#define	NAME_SIZE	12
-	char	l_name[NAME_SIZE];/* caller's name */
-	char	r_name[NAME_SIZE];/* callee's name */
-#define	TTY_SIZE	16
-	char	r_tty[TTY_SIZE];/* callee's tty name */
-} CTL_MSG;
-
-/*
- * Server->client response message format.
- */
-typedef struct {
-	unsigned char	vers;	/* protocol version */
-	unsigned char	type;	/* type of request message, see below */
-	unsigned char	answer;	/* response to request message, see below */
-	unsigned char	pad;
-	uint32_t	id_num;	/* message id */
-	struct	osockaddr addr;	/* address for establishing conversation */
-} CTL_RESPONSE;
-
-#define	TALK_VERSION	1		/* protocol version */
-
-/* message type values */
-#define LEAVE_INVITE	0	/* leave invitation with server */
-#define LOOK_UP		1	/* check for invitation by callee */
-#define DELETE		2	/* delete invitation by caller */
-#define ANNOUNCE	3	/* announce invitation by caller */
-
-/* answer values */
-#define SUCCESS		0	/* operation completed properly */
-#define NOT_HERE	1	/* callee not logged in */
-#define FAILED		2	/* operation failed for unexplained reason */
-#define MACHINE_UNKNOWN	3	/* caller's machine name unknown */
-#define PERMISSION_DENIED 4	/* callee's tty doesn't permit announce */
-#define UNKNOWN_REQUEST	5	/* request has invalid type value */
-#define	BADVERSION	6	/* request has invalid protocol version */
-#define	BADADDR		7	/* request has invalid addr value */
-#define	BADCTLADDR	8	/* request has invalid ctl_addr value */
-
-/*
- * Operational parameters.
- */
-#define MAX_LIFE	60	/* max time daemon saves invitations */
-/* RING_WAIT should be 10's of seconds less than MAX_LIFE */
-#define RING_WAIT	30	/* time to wait before resending invitation */
-
-#endif /* protocols/talkd.h */
diff --git a/inet/protocols/timed.h b/inet/protocols/timed.h
deleted file mode 100644
index cabdce44a6..0000000000
--- a/inet/protocols/timed.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	@(#)timed.h	8.1 (Berkeley) 6/2/93
- */
-
-#ifndef	_PROTOCOLS_TIMED_H
-#define	_PROTOCOLS_TIMED_H 1
-
-#include <sys/types.h>
-#include <sys/time.h>
-
-/*
- * Time Synchronization Protocol
- */
-
-#define	TSPVERSION	1
-#define ANYADDR 	NULL
-#define MAXHOSTNAMELEN	64
-
-struct tsp {
-	unsigned char	tsp_type;
-	unsigned char	tsp_vers;
-	unsigned short	tsp_seq;
-	union {
-		struct timeval tspu_time;
-		char tspu_hopcnt;
-	} tsp_u;
-	char tsp_name[MAXHOSTNAMELEN];
-};
-
-#define	tsp_time	tsp_u.tspu_time
-#define	tsp_hopcnt	tsp_u.tspu_hopcnt
-
-/*
- * Command types.
- */
-#define	TSP_ANY			0	/* match any types */
-#define	TSP_ADJTIME		1	/* send adjtime */
-#define	TSP_ACK			2	/* generic acknowledgement */
-#define	TSP_MASTERREQ		3	/* ask for master's name */
-#define	TSP_MASTERACK		4	/* acknowledge master request */
-#define	TSP_SETTIME		5	/* send network time */
-#define	TSP_MASTERUP		6	/* inform slaves that master is up */
-#define	TSP_SLAVEUP		7	/* slave is up but not polled */
-#define	TSP_ELECTION		8	/* advance candidature for master */
-#define	TSP_ACCEPT		9	/* support candidature of master */
-#define	TSP_REFUSE		10	/* reject candidature of master */
-#define	TSP_CONFLICT		11	/* two or more masters present */
-#define	TSP_RESOLVE		12	/* masters' conflict resolution */
-#define	TSP_QUIT		13	/* reject candidature if master is up */
-#define	TSP_DATE		14	/* reset the time (date command) */
-#define	TSP_DATEREQ		15	/* remote request to reset the time */
-#define	TSP_DATEACK		16	/* acknowledge time setting  */
-#define	TSP_TRACEON		17	/* turn tracing on */
-#define	TSP_TRACEOFF		18	/* turn tracing off */
-#define	TSP_MSITE		19	/* find out master's site */
-#define	TSP_MSITEREQ		20	/* remote master's site request */
-#define	TSP_TEST		21	/* for testing election algo */
-#define	TSP_SETDATE		22	/* New from date command */
-#define	TSP_SETDATEREQ		23	/* New remote for above */
-#define	TSP_LOOP		24	/* loop detection packet */
-
-#define	TSPTYPENUMBER		25
-
-#ifdef TSPTYPES
-char *tsptype[TSPTYPENUMBER] =
-  { "ANY", "ADJTIME", "ACK", "MASTERREQ", "MASTERACK", "SETTIME", "MASTERUP",
-  "SLAVEUP", "ELECTION", "ACCEPT", "REFUSE", "CONFLICT", "RESOLVE", "QUIT",
-  "DATE", "DATEREQ", "DATEACK", "TRACEON", "TRACEOFF", "MSITE", "MSITEREQ",
-  "TEST", "SETDATE", "SETDATEREQ", "LOOP" };
-#endif
-
-#endif /* protocols/timed.h */
diff --git a/inet/rcmd.c b/inet/rcmd.c
deleted file mode 100644
index e970123a9a..0000000000
--- a/inet/rcmd.c
+++ /dev/null
@@ -1,827 +0,0 @@
-/*
- * Copyright (C) 1998 WIDE Project.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the project nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-/*
- * Copyright (c) 1983, 1993, 1994
- *	The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/param.h>
-#include <sys/poll.h>
-#include <sys/socket.h>
-#include <sys/stat.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include <alloca.h>
-#include <signal.h>
-#include <fcntl.h>
-#include <netdb.h>
-#include <unistd.h>
-#include <pwd.h>
-#include <errno.h>
-#include <stdio.h>
-#include <stdio_ext.h>
-#include <ctype.h>
-#include <string.h>
-#include <libintl.h>
-#include <stdlib.h>
-#include <wchar.h>
-#include <sys/uio.h>
-#include <sigsetops.h>
-
-
-int __ivaliduser (FILE *, u_int32_t, const char *, const char *);
-static int __validuser2_sa (FILE *, struct sockaddr *, size_t,
-			    const char *, const char *, const char *);
-static int ruserok2_sa (struct sockaddr *ra, size_t ralen,
-			int superuser, const char *ruser,
-			const char *luser, const char *rhost);
-static int ruserok_sa (struct sockaddr *ra, size_t ralen,
-			int superuser, const char *ruser,
-			const char *luser);
-int iruserok_af (const void *raddr, int superuser, const char *ruser,
-		 const char *luser, sa_family_t af);
-int iruserok (u_int32_t raddr, int superuser, const char *ruser,
-	      const char *luser);
-
-libc_hidden_proto (iruserok_af)
-
-libc_freeres_ptr(static char *ahostbuf);
-
-int
-rcmd_af (char **ahost, u_short rport, const char *locuser, const char *remuser,
-	 const char *cmd, int *fd2p, sa_family_t af)
-{
-	char paddr[INET6_ADDRSTRLEN];
-	struct addrinfo hints, *res, *ai;
-	union
-	{
-		struct sockaddr sa;
-		struct sockaddr_storage ss;
-		struct sockaddr_in sin;
-		struct sockaddr_in6 sin6;
-	} from;
-	struct pollfd pfd[2];
-	sigset_t mask, omask;
-
-	pid_t pid;
-	int s, lport, timo, error;
-	char c;
-	int refused;
-	char num[8];
-	ssize_t n;
-
-	if (af != AF_INET && af != AF_INET6 && af != AF_UNSPEC)
-	  {
-	    __set_errno (EAFNOSUPPORT);
-	    return -1;
-	  }
-
-	pid = __getpid();
-
-	memset(&hints, '\0', sizeof(hints));
-	hints.ai_flags = AI_CANONNAME;
-	hints.ai_family = af;
-	hints.ai_socktype = SOCK_STREAM;
-	(void)__snprintf(num, sizeof(num), "%d", ntohs(rport));
-	error = getaddrinfo(*ahost, num, &hints, &res);
-	if (error) {
-		if (error == EAI_NONAME && *ahost != NULL)
-			__fxprintf(NULL, "%s: Unknown host\n", *ahost);
-		else
-			__fxprintf(NULL, "rcmd: getaddrinfo: %s\n",
-				   gai_strerror(error));
-
-		return -1;
-	}
-
-	pfd[0].events = POLLIN;
-	pfd[1].events = POLLIN;
-
-	if (res->ai_canonname){
-		free (ahostbuf);
-		ahostbuf = __strdup (res->ai_canonname);
-		if (ahostbuf == NULL) {
-			__fxprintf(NULL, "%s",
-				   _("rcmd: Cannot allocate memory\n"));
-			return -1;
-		}
-		*ahost = ahostbuf;
-	} else
-		*ahost = NULL;
-	ai = res;
-	refused = 0;
-	__sigemptyset(&mask);
-	__sigaddset(&mask, SIGURG);
-	__sigprocmask (SIG_BLOCK, &mask, &omask);
-	for (timo = 1, lport = IPPORT_RESERVED - 1;;) {
-		char errbuf[200];
-
-		s = rresvport_af(&lport, ai->ai_family);
-		if (s < 0) {
-			if (errno == EAGAIN)
-				__fxprintf(NULL, "%s", _("\
-rcmd: socket: All ports in use\n"));
-			else
-				__fxprintf(NULL, "rcmd: socket: %m\n");
-
-			__sigprocmask (SIG_SETMASK, &omask, 0);
-			freeaddrinfo(res);
-			return -1;
-		}
-		__fcntl(s, F_SETOWN, pid);
-		if (__connect(s, ai->ai_addr, ai->ai_addrlen) >= 0)
-			break;
-		(void)__close(s);
-		if (errno == EADDRINUSE) {
-			lport--;
-			continue;
-		}
-		if (errno == ECONNREFUSED)
-			refused = 1;
-		if (ai->ai_next != NULL) {
-			int oerrno = errno;
-			char *buf = NULL;
-
-			getnameinfo(ai->ai_addr, ai->ai_addrlen,
-				    paddr, sizeof(paddr),
-				    NULL, 0,
-				    NI_NUMERICHOST);
-
-			if (__asprintf (&buf, _("connect to address %s: "),
-					paddr) >= 0)
-			  {
-			    __fxprintf(NULL, "%s", buf);
-			    free (buf);
-			  }
-			__set_errno (oerrno);
-			perror(0);
-			ai = ai->ai_next;
-			getnameinfo(ai->ai_addr, ai->ai_addrlen,
-				    paddr, sizeof(paddr),
-				    NULL, 0,
-				    NI_NUMERICHOST);
-			if (__asprintf (&buf, _("Trying %s...\n"), paddr) >= 0)
-			  {
-			    __fxprintf (NULL, "%s", buf);
-			    free (buf);
-			  }
-			continue;
-		}
-		if (refused && timo <= 16) {
-			(void)__sleep(timo);
-			timo *= 2;
-			ai = res;
-			refused = 0;
-			continue;
-		}
-		freeaddrinfo(res);
-		(void)__fxprintf(NULL, "%s: %s\n", *ahost,
-				 __strerror_r(errno, errbuf, sizeof (errbuf)));
-		__sigprocmask (SIG_SETMASK, &omask, 0);
-		return -1;
-	}
-	lport--;
-	if (fd2p == 0) {
-		__write(s, "", 1);
-		lport = 0;
-	} else {
-		char num[8];
-		int s2 = rresvport_af(&lport, ai->ai_family), s3;
-		socklen_t len = ai->ai_addrlen;
-
-		if (s2 < 0)
-			goto bad;
-		__listen(s2, 1);
-		(void)__snprintf(num, sizeof(num), "%d", lport);
-		if (__write(s, num, strlen(num)+1) != (ssize_t)strlen(num)+1) {
-			char *buf = NULL;
-
-			if (__asprintf (&buf, _("\
-rcmd: write (setting up stderr): %m\n")) >= 0)
-			  {
-			    __fxprintf(NULL, "%s", buf);
-			    free (buf);
-			  }
-			(void)__close(s2);
-			goto bad;
-		}
-		pfd[0].fd = s;
-		pfd[1].fd = s2;
-		__set_errno (0);
-		if (__poll (pfd, 2, -1) < 1 || (pfd[1].revents & POLLIN) == 0){
-			char *buf = NULL;
-
-			if ((errno != 0
-			     && __asprintf(&buf, _("\
-rcmd: poll (setting up stderr): %m\n")) >= 0)
-			    || (errno == 0
-				&& __asprintf(&buf, _("\
-poll: protocol failure in circuit setup\n")) >= 0))
-			  {
-			    __fxprintf (NULL, "%s", buf);
-			    free  (buf);
-			  }
-			(void)__close(s2);
-			goto bad;
-		}
-		s3 = TEMP_FAILURE_RETRY (accept(s2, &from.sa, &len));
-		switch (from.sa.sa_family) {
-		case AF_INET:
-			rport = ntohs(from.sin.sin_port);
-			break;
-		case AF_INET6:
-			rport = ntohs(from.sin6.sin6_port);
-			break;
-		default:
-			rport = 0;
-			break;
-		}
-		(void)__close(s2);
-		if (s3 < 0) {
-			(void)__fxprintf(NULL, "rcmd: accept: %m\n");
-			lport = 0;
-			goto bad;
-		}
-		*fd2p = s3;
-
-		if (rport >= IPPORT_RESERVED || rport < IPPORT_RESERVED / 2){
-			char *buf = NULL;
-
-			if (__asprintf(&buf, _("\
-socket: protocol failure in circuit setup\n")) >= 0)
-			  {
-			    __fxprintf (NULL, "%s", buf);
-			    free (buf);
-			  }
-			goto bad2;
-		}
-	}
-	struct iovec iov[3] =
-	  {
-	    [0] = { .iov_base = (void *) locuser,
-		    .iov_len = strlen (locuser) + 1 },
-	    [1] = { .iov_base = (void *) remuser,
-		    .iov_len = strlen (remuser) + 1 },
-	    [2] = { .iov_base = (void *) cmd,
-		    .iov_len = strlen (cmd) + 1 }
-	  };
-	(void) TEMP_FAILURE_RETRY (__writev (s, iov, 3));
-	n = TEMP_FAILURE_RETRY (__read(s, &c, 1));
-	if (n != 1) {
-		char *buf = NULL;
-
-		if ((n == 0
-		     && __asprintf(&buf, _("rcmd: %s: short read"),
-				   *ahost) >= 0)
-		    || (n != 0
-			&& __asprintf(&buf, "rcmd: %s: %m\n", *ahost) >= 0))
-		  {
-		    __fxprintf (NULL, "%s", buf);
-		    free (buf);
-		  }
-		goto bad2;
-	}
-	if (c != 0) {
-		while (__read(s, &c, 1) == 1) {
-			(void)__write(STDERR_FILENO, &c, 1);
-			if (c == '\n')
-				break;
-		}
-		goto bad2;
-	}
-	__sigprocmask (SIG_SETMASK, &omask, 0);
-	freeaddrinfo(res);
-	return s;
-bad2:
-	if (lport)
-		(void)__close(*fd2p);
-bad:
-	(void)__close(s);
-	__sigprocmask (SIG_SETMASK, &omask, 0);
-	freeaddrinfo(res);
-	return -1;
-}
-libc_hidden_def (rcmd_af)
-
-int
-rcmd (char **ahost, u_short rport, const char *locuser, const char *remuser,
-      const char *cmd, int *fd2p)
-{
-  return rcmd_af (ahost, rport, locuser, remuser, cmd, fd2p, AF_INET);
-}
-
-int
-rresvport_af (int *alport, sa_family_t family)
-{
-	union {
-		struct sockaddr generic;
-		struct sockaddr_in in;
-		struct sockaddr_in6 in6;
-	} ss;
-	int s;
-	size_t len;
-	uint16_t *sport;
-
-	switch(family){
-	case AF_INET:
-		len = sizeof(struct sockaddr_in);
-		sport = &ss.in.sin_port;
-		break;
-	case AF_INET6:
-		len = sizeof(struct sockaddr_in6);
-		sport = &ss.in6.sin6_port;
-		break;
-	default:
-		__set_errno (EAFNOSUPPORT);
-		return -1;
-	}
-	/* NB: No SOCK_CLOEXEC for backwards compatibility.  */
-	s = __socket(family, SOCK_STREAM, 0);
-	if (s < 0)
-		return -1;
-
-	memset (&ss, '\0', sizeof(ss));
-#ifdef SALEN
-	ss.generic.__ss_len = len;
-#endif
-	ss.generic.sa_family = family;
-
-	/* Ignore invalid values.  */
-	if (*alport < IPPORT_RESERVED / 2)
-		*alport = IPPORT_RESERVED / 2;
-	else if (*alport >= IPPORT_RESERVED)
-		*alport = IPPORT_RESERVED - 1;
-
-	int start = *alport;
-	do {
-		*sport = htons((uint16_t) *alport);
-		if (__bind(s, &ss.generic, len) >= 0)
-			return s;
-		if (errno != EADDRINUSE) {
-			(void)__close(s);
-			return -1;
-		}
-		if ((*alport)-- == IPPORT_RESERVED/2)
-			*alport = IPPORT_RESERVED - 1;
-	} while (*alport != start);
-	(void)__close(s);
-	__set_errno (EAGAIN);
-	return -1;
-}
-libc_hidden_def (rresvport_af)
-
-int
-rresvport (int *alport)
-{
-	return rresvport_af(alport, AF_INET);
-}
-
-int	__check_rhosts_file = 1;
-char	*__rcmd_errstr;
-
-int
-ruserok_af (const char *rhost, int superuser, const char *ruser,
-	    const char *luser, sa_family_t af)
-{
-	struct addrinfo hints, *res, *res0;
-	int gai;
-	int ret;
-
-	memset (&hints, '\0', sizeof(hints));
-	hints.ai_family = af;
-	gai = getaddrinfo(rhost, NULL, &hints, &res0);
-	if (gai)
-		return -1;
-	ret = -1;
-	for (res=res0; res; res=res->ai_next)
-		if (ruserok2_sa(res->ai_addr, res->ai_addrlen,
-				superuser, ruser, luser, rhost) == 0){
-			ret = 0;
-			break;
-		}
-	freeaddrinfo(res0);
-	return (ret);
-}
-libc_hidden_def (ruserok_af)
-
-int
-ruserok (const char *rhost, int superuser, const char *ruser,
-	 const char *luser)
-{
-	return ruserok_af(rhost, superuser, ruser, luser, AF_INET);
-}
-
-/* Extremely paranoid file open function. */
-static FILE *
-iruserfopen (const char *file, uid_t okuser)
-{
-  struct stat64 st;
-  char *cp = NULL;
-  FILE *res = NULL;
-
-  /* If not a regular file, if owned by someone other than user or
-     root, if writeable by anyone but the owner, or if hardlinked
-     anywhere, quit.  */
-  if (__lxstat64 (_STAT_VER, file, &st))
-    cp = _("lstat failed");
-  else if (!S_ISREG (st.st_mode))
-    cp = _("not regular file");
-  else
-    {
-      res = fopen (file, "rce");
-      if (!res)
-	cp = _("cannot open");
-      else if (__fxstat64 (_STAT_VER, fileno (res), &st) < 0)
-	cp = _("fstat failed");
-      else if (st.st_uid && st.st_uid != okuser)
-	cp = _("bad owner");
-      else if (st.st_mode & (S_IWGRP|S_IWOTH))
-	cp = _("writeable by other than owner");
-      else if (st.st_nlink > 1)
-	cp = _("hard linked somewhere");
-    }
-
-  /* If there were any problems, quit.  */
-  if (cp != NULL)
-    {
-      __rcmd_errstr = cp;
-      if (res)
-	fclose (res);
-      return NULL;
-    }
-
-  /* No threads use this stream.  */
-  __fsetlocking (res, FSETLOCKING_BYCALLER);
-
-  return res;
-}
-
-/*
- * New .rhosts strategy: We are passed an ip address. We spin through
- * hosts.equiv and .rhosts looking for a match. When the .rhosts only
- * has ip addresses, we don't have to trust a nameserver.  When it
- * contains hostnames, we spin through the list of addresses the nameserver
- * gives us and look for a match.
- *
- * Returns 0 if ok, -1 if not ok.
- */
-static int
-ruserok2_sa (struct sockaddr *ra, size_t ralen, int superuser,
-	     const char *ruser, const char *luser, const char *rhost)
-{
-  FILE *hostf = NULL;
-  int isbad = -1;
-
-  if (!superuser)
-    hostf = iruserfopen (_PATH_HEQUIV, 0);
-
-  if (hostf)
-    {
-      isbad = __validuser2_sa (hostf, ra, ralen, luser, ruser, rhost);
-      fclose (hostf);
-
-      if (!isbad)
-	return 0;
-    }
-
-  if (__check_rhosts_file || superuser)
-    {
-      char *pbuf;
-      struct passwd pwdbuf, *pwd;
-      size_t dirlen;
-      size_t buflen = __sysconf (_SC_GETPW_R_SIZE_MAX);
-      char *buffer = __alloca (buflen);
-      uid_t uid;
-
-      if (__getpwnam_r (luser, &pwdbuf, buffer, buflen, &pwd) != 0
-	  || pwd == NULL)
-	return -1;
-
-      dirlen = strlen (pwd->pw_dir);
-      pbuf = alloca (dirlen + sizeof "/.rhosts");
-      __mempcpy (__mempcpy (pbuf, pwd->pw_dir, dirlen),
-		 "/.rhosts", sizeof "/.rhosts");
-
-       /* Change effective uid while reading .rhosts.  If root and
-	  reading an NFS mounted file system, can't read files that
-	  are protected read/write owner only.  */
-       uid = __geteuid ();
-       seteuid (pwd->pw_uid);
-       hostf = iruserfopen (pbuf, pwd->pw_uid);
-
-       if (hostf != NULL)
-	 {
-	   isbad = __validuser2_sa (hostf, ra, ralen, luser, ruser, rhost);
-	   fclose (hostf);
-	 }
-
-       seteuid (uid);
-       return isbad;
-    }
-  return -1;
-}
-/*
- * ruserok_sa() is now discussed on ipng, so
- * currently disabled for external use
- */
-static int
-ruserok_sa (struct sockaddr *ra, size_t ralen, int superuser,
-	    const char *ruser, const char *luser)
-{
-  return ruserok2_sa(ra, ralen, superuser, ruser, luser, "-");
-}
-
-/* This is the exported version.  */
-int
-iruserok_af (const void *raddr, int superuser, const char *ruser,
-	     const char *luser, sa_family_t af)
-{
-  union {
-    struct sockaddr generic;
-    struct sockaddr_in in;
-    struct sockaddr_in6 in6;
-  } ra;
-  size_t ralen;
-
-  memset (&ra, '\0', sizeof(ra));
-  switch (af){
-  case AF_INET:
-    ra.in.sin_family = AF_INET;
-    memcpy (&ra.in.sin_addr, raddr, sizeof(struct in_addr));
-    ralen = sizeof(struct sockaddr_in);
-    break;
-  case AF_INET6:
-    ra.in6.sin6_family = AF_INET6;
-    memcpy (&ra.in6.sin6_addr, raddr, sizeof(struct in6_addr));
-    ralen = sizeof(struct sockaddr_in6);
-    break;
-  default:
-    return 0;
-  }
-  return ruserok_sa (&ra.generic, ralen, superuser, ruser, luser);
-}
-libc_hidden_def (iruserok_af)
-
-int
-iruserok (u_int32_t raddr, int superuser, const char *ruser, const char *luser)
-{
-  return iruserok_af (&raddr, superuser, ruser, luser, AF_INET);
-}
-
-/*
- * XXX
- * Don't make static, used by lpd(8).
- *
- * This function is not used anymore. It is only present because lpd(8)
- * calls it (!?!). We simply call __invaliduser2() with an illegal rhost
- * argument. This means that netgroups won't work in .rhost/hosts.equiv
- * files. If you want lpd to work with netgroups, fix lpd to use ruserok()
- * or PAM.
- * Returns 0 if ok, -1 if not ok.
- */
-int
-__ivaliduser (FILE *hostf, u_int32_t raddr, const char *luser,
-	      const char *ruser)
-{
-	struct sockaddr_in ra;
-	memset(&ra, '\0', sizeof(ra));
-	ra.sin_family = AF_INET;
-	ra.sin_addr.s_addr = raddr;
-	return __validuser2_sa(hostf, (struct sockaddr *)&ra, sizeof(ra),
-			       luser, ruser, "-");
-}
-
-
-/* Returns 1 on positive match, 0 on no match, -1 on negative match.  */
-static int
-internal_function
-__checkhost_sa (struct sockaddr *ra, size_t ralen, char *lhost,
-		const char *rhost)
-{
-	struct addrinfo hints, *res0, *res;
-	char raddr[INET6_ADDRSTRLEN];
-	int match;
-	int negate=1;    /* Multiply return with this to get -1 instead of 1 */
-
-	/* Check nis netgroup.  */
-	if (strncmp ("+@", lhost, 2) == 0)
-		return innetgr (&lhost[2], rhost, NULL, NULL);
-
-	if (strncmp ("-@", lhost, 2) == 0)
-		return -innetgr (&lhost[2], rhost, NULL, NULL);
-
-	/* -host */
-	if (strncmp ("-", lhost,1) == 0) {
-		negate = -1;
-		lhost++;
-	} else if (strcmp ("+",lhost) == 0) {
-		return 1;                    /* asking for trouble, but ok.. */
-	}
-
-	/* Try for raw ip address first. */
-	/* XXX */
-	if (getnameinfo(ra, ralen,
-			raddr, sizeof(raddr), NULL, 0,
-			NI_NUMERICHOST) == 0
-	    && strcmp(raddr, lhost) == 0)
-		return negate;
-
-	/* Better be a hostname. */
-	match = 0;
-	memset(&hints, '\0', sizeof(hints));
-	hints.ai_family = ra->sa_family;
-	if (getaddrinfo(lhost, NULL, &hints, &res0) == 0){
-		/* Spin through ip addresses. */
-		for (res = res0; res; res = res->ai_next)
-		  {
-		    if (res->ai_family == ra->sa_family
-			&& !memcmp(res->ai_addr, ra, res->ai_addrlen))
-		      {
-			match = 1;
-			break;
-		      }
-		  }
-		freeaddrinfo (res0);
-	}
-	return negate * match;
-}
-
-/* Returns 1 on positive match, 0 on no match, -1 on negative match.  */
-static int
-internal_function
-__icheckuser (const char *luser, const char *ruser)
-{
-    /*
-      luser is user entry from .rhosts/hosts.equiv file
-      ruser is user id on remote host
-      */
-
-    /* [-+]@netgroup */
-    if (strncmp ("+@", luser, 2) == 0)
-	return innetgr (&luser[2], NULL, ruser, NULL);
-
-    if (strncmp ("-@", luser,2) == 0)
-	return -innetgr (&luser[2], NULL, ruser, NULL);
-
-    /* -user */
-    if (strncmp ("-", luser, 1) == 0)
-	return -(strcmp (&luser[1], ruser) == 0);
-
-    /* + */
-    if (strcmp ("+", luser) == 0)
-	return 1;
-
-    /* simple string match */
-    return strcmp (ruser, luser) == 0;
-}
-
-/*
- * Returns 1 for blank lines (or only comment lines) and 0 otherwise
- */
-static int
-__isempty (char *p)
-{
-    while (*p && isspace (*p)) {
-	++p;
-    }
-
-    return (*p == '\0' || *p == '#') ? 1 : 0 ;
-}
-
-/*
- * Returns 0 if positive match, -1 if _not_ ok.
- */
-static int
-__validuser2_sa (FILE *hostf, struct sockaddr *ra, size_t ralen,
-		 const char *luser, const char *ruser, const char *rhost)
-{
-    const char *user;
-    char *p;
-    int hcheck, ucheck;
-    char *buf = NULL;
-    size_t bufsize = 0;
-    int retval = -1;
-
-    while (__getline (&buf, &bufsize, hostf) > 0) {
-	buf[bufsize - 1] = '\0'; /* Make sure it's terminated.  */
-	p = buf;
-
-	/* Skip empty or comment lines */
-	if (__isempty (p)) {
-	    continue;
-	}
-
-	for (;*p && !isspace(*p); ++p) {
-	    *p = _tolower (*p);
-	}
-
-	/* Next we want to find the permitted name for the remote user.  */
-	if (*p == ' ' || *p == '\t') {
-	    /* <nul> terminate hostname and skip spaces */
-	    for (*p++='\0'; *p && isspace (*p); ++p);
-
-	    user = p;                   /* this is the user's name */
-	    while (*p && !isspace (*p))
-		++p;                    /* find end of user's name */
-	} else
-	    user = p;
-
-	*p = '\0';              /* <nul> terminate username (+host?) */
-
-	/* buf -> host(?) ; user -> username(?) */
-	if (*buf == '\0')
-	  break;
-	if (*user == '\0')
-	  user = luser;
-
-	/* First check the user part.  In a naive implementation we
-	   would check the host part first, then the user.  However,
-	   if we check the user first and reject the entry we will
-	   have saved doing any host lookups to normalize the comparison
-	   and that likely saves several DNS queries.  Therefore we
-	   check the user first.  */
-	ucheck = __icheckuser (user, ruser);
-
-	/* Either we found the user, or we didn't and this is a
-	   negative host check.  We must do the negative host lookup
-	   in order to preserve the semantics of stopping on this line
-	   before processing others.  */
-	if (ucheck != 0 || *buf == '-') {
-
-	    /* Next check host part.  */
-	    hcheck = __checkhost_sa (ra, ralen, buf, rhost);
-
-	    /* Negative '-host user(?)' match?  */
-	    if (hcheck < 0)
-		break;
-
-	    /* Positive 'host user' match?  */
-	    if (hcheck > 0 && ucheck > 0) {
-		retval = 0;
-		break;
-	    }
-
-	    /* Negative 'host -user' match?  */
-	    if (hcheck > 0 && ucheck < 0)
-	      break;
-
-	    /* Neither, go on looking for match.  */
-	}
-    }
-
-    free (buf);
-
-    return retval;
-}
diff --git a/inet/rexec.c b/inet/rexec.c
deleted file mode 100644
index bda536723b..0000000000
--- a/inet/rexec.c
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Copyright (c) 1980, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-
-#include <alloca.h>
-#include <stdio.h>
-#include <netdb.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/uio.h>
-
-int	rexecoptions;
-libc_freeres_ptr (static char *ahostbuf);
-
-int
-rexec_af (char **ahost, int rport, const char *name, const char *pass,
-	  const char *cmd, int *fd2p, sa_family_t af)
-{
-	struct sockaddr_storage from;
-	struct addrinfo hints, *res0;
-	const char *orig_name = name;
-	const char *orig_pass = pass;
-	u_short port = 0;
-	int s, timo = 1, s3;
-	char c;
-	int gai;
-	char servbuff[NI_MAXSERV];
-
-	__snprintf(servbuff, sizeof(servbuff), "%d", ntohs(rport));
-	servbuff[sizeof(servbuff) - 1] = '\0';
-
-	memset(&hints, '\0', sizeof(hints));
-	hints.ai_family = af;
-	hints.ai_socktype = SOCK_STREAM;
-	hints.ai_flags = AI_CANONNAME;
-	gai = getaddrinfo(*ahost, servbuff, &hints, &res0);
-	if (gai){
-		/* XXX: set errno? */
-		return -1;
-	}
-
-	if (res0->ai_canonname){
-		free (ahostbuf);
-		ahostbuf = __strdup (res0->ai_canonname);
-		if (ahostbuf == NULL) {
-			perror ("rexec: strdup");
-			return (-1);
-		}
-		*ahost = ahostbuf;
-	} else {
-		*ahost = NULL;
-		__set_errno (ENOENT);
-		return -1;
-	}
-	ruserpass(res0->ai_canonname, &name, &pass);
-retry:
-	/* NB: No SOCK_CLOEXEC for backwards compatibility.  */
-	s = __socket(res0->ai_family, res0->ai_socktype, 0);
-	if (s < 0) {
-		perror("rexec: socket");
-		return (-1);
-	}
-	if (__connect(s, res0->ai_addr, res0->ai_addrlen) < 0) {
-		if (errno == ECONNREFUSED && timo <= 16) {
-			(void) __close(s);
-			__sleep(timo);
-			timo *= 2;
-			goto retry;
-		}
-		perror(res0->ai_canonname);
-		return (-1);
-	}
-	if (fd2p == 0) {
-		(void) __write(s, "", 1);
-		port = 0;
-	} else {
-		char num[32];
-		int s2;
-		union
-		{
-		  struct sockaddr_storage ss;
-		  struct sockaddr sa;
-		} sa2;
-		socklen_t sa2len;
-
-		s2 = __socket(res0->ai_family, res0->ai_socktype, 0);
-		if (s2 < 0) {
-			(void) __close(s);
-			return (-1);
-		}
-		__listen(s2, 1);
-		sa2len = sizeof (sa2);
-		if (__getsockname(s2, &sa2.sa, &sa2len) < 0) {
-			perror("getsockname");
-			(void) __close(s2);
-			goto bad;
-		} else if (sa2len != SA_LEN(&sa2.sa)) {
-			__set_errno(EINVAL);
-			(void) __close(s2);
-			goto bad;
-		}
-		port = 0;
-		if (!getnameinfo(&sa2.sa, sa2len,
-				 NULL, 0, servbuff, sizeof(servbuff),
-				 NI_NUMERICSERV))
-			port = atoi(servbuff);
-		(void) sprintf(num, "%u", port);
-		(void) __write(s, num, strlen(num)+1);
-		{ socklen_t len = sizeof (from);
-		  s3 = TEMP_FAILURE_RETRY (accept(s2, (struct sockaddr *)&from,
-						  &len));
-		  __close(s2);
-		  if (s3 < 0) {
-			perror("accept");
-			port = 0;
-			goto bad;
-		  }
-		}
-		*fd2p = s3;
-	}
-
-	struct iovec iov[3] =
-	  {
-	    [0] = { .iov_base = (void *) name, .iov_len = strlen (name) + 1 },
-	    /* should public key encypt the password here */
-	    [1] = { .iov_base = (void *) pass, .iov_len = strlen (pass) + 1 },
-	    [2] = { .iov_base = (void *) cmd, .iov_len = strlen (cmd) + 1 }
-	  };
-	(void) TEMP_FAILURE_RETRY (__writev (s, iov, 3));
-
-	/* We don't need the memory allocated for the name and the password
-	   in ruserpass anymore.  */
-	if (name != orig_name)
-	  free ((char *) name);
-	if (pass != orig_pass)
-	  free ((char *) pass);
-
-	if (__read(s, &c, 1) != 1) {
-		perror(*ahost);
-		goto bad;
-	}
-	if (c != 0) {
-		while (__read(s, &c, 1) == 1) {
-			(void) __write(2, &c, 1);
-			if (c == '\n')
-				break;
-		}
-		goto bad;
-	}
-	freeaddrinfo(res0);
-	return (s);
-bad:
-	if (port)
-		(void) __close(*fd2p);
-	(void) __close(s);
-	freeaddrinfo(res0);
-	return (-1);
-}
-libc_hidden_def (rexec_af)
-
-int
-rexec (char **ahost, int rport, const char *name, const char *pass,
-       const char *cmd, int *fd2p)
-{
-	return rexec_af(ahost, rport, name, pass, cmd, fd2p, AF_INET);
-}
diff --git a/inet/ruserpass.c b/inet/ruserpass.c
deleted file mode 100644
index 5b2747bc50..0000000000
--- a/inet/ruserpass.c
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- * Copyright (c) 1985, 1993, 1994
- *	The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include <ctype.h>
-#include <err.h>
-#include <errno.h>
-#include <netdb.h>
-#include <stdio.h>
-#include <stdio_ext.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <libintl.h>
-
-/* #include "ftp_var.h" */
-
-static	int token (void);
-static	FILE *cfile;
-
-#define	DEFAULT	1
-#define	LOGIN	2
-#define	PASSWD	3
-#define	ACCOUNT 4
-#define MACDEF  5
-#define	ID	10
-#define	MACHINE	11
-
-static char tokval[100];
-
-static const char tokstr[] =
-{
-#define TOK_DEFAULT_IDX	0
-  "default\0"
-#define TOK_LOGIN_IDX	(TOK_DEFAULT_IDX + sizeof "default")
-  "login\0"
-#define TOK_PASSWORD_IDX (TOK_LOGIN_IDX + sizeof "login")
-  "password\0"
-#define TOK_PASSWD_IDX	(TOK_PASSWORD_IDX + sizeof "password")
-  "passwd\0"
-#define TOK_ACCOUNT_IDX	(TOK_PASSWD_IDX + sizeof "passwd")
-  "account\0"
-#define TOK_MACHINE_IDX	(TOK_ACCOUNT_IDX + sizeof "account")
-  "machine\0"
-#define TOK_MACDEF_IDX	(TOK_MACHINE_IDX + sizeof "machine")
-  "macdef"
-};
-
-static const struct toktab {
-	int tokstr_off;
-	int tval;
-} toktab[]= {
-	{ TOK_DEFAULT_IDX,	DEFAULT },
-	{ TOK_LOGIN_IDX,	LOGIN },
-	{ TOK_PASSWORD_IDX,	PASSWD },
-	{ TOK_PASSWD_IDX,	PASSWD },
-	{ TOK_ACCOUNT_IDX,	ACCOUNT },
-	{ TOK_MACHINE_IDX,	MACHINE },
-	{ TOK_MACDEF_IDX,	MACDEF }
-};
-
-
-
-int
-ruserpass (const char *host, const char **aname, const char **apass)
-{
-	char *hdir, *buf, *tmp;
-	char myname[1024], *mydomain;
-	int t, usedefault = 0;
-	struct stat64 stb;
-
-	hdir = __libc_secure_getenv("HOME");
-	if (hdir == NULL) {
-		/* If we can't get HOME, fail instead of trying ".",
-		   which is no improvement. This really should call
-		   getpwuid(getuid()).  */
-		/*hdir = ".";*/
-		return -1;
-	}
-
-	buf = alloca (strlen (hdir) + 8);
-
-	__stpcpy (__stpcpy (buf, hdir), "/.netrc");
-	cfile = fopen(buf, "rce");
-	if (cfile == NULL) {
-		if (errno != ENOENT)
-			warn("%s", buf);
-		return (0);
-	}
-	/* No threads use this stream.  */
-	__fsetlocking (cfile, FSETLOCKING_BYCALLER);
-	if (__gethostname(myname, sizeof(myname)) < 0)
-		myname[0] = '\0';
-	mydomain = __strchrnul(myname, '.');
-next:
-	while ((t = token())) switch(t) {
-
-	case DEFAULT:
-		usedefault = 1;
-		/* FALL THROUGH */
-
-	case MACHINE:
-		if (!usedefault) {
-			if (token() != ID)
-				continue;
-			/*
-			 * Allow match either for user's input host name
-			 * or official hostname.  Also allow match of
-			 * incompletely-specified host in local domain.
-			 */
-			if (__strcasecmp(host, tokval) == 0)
-				goto match;
-/*			if (__strcasecmp(hostname, tokval) == 0)
-				goto match;
-			if ((tmp = strchr(hostname, '.')) != NULL &&
-			    __strcasecmp(tmp, mydomain) == 0 &&
-			    __strncasecmp(hostname, tokval, tmp-hostname) == 0 &&
-			    tokval[tmp - hostname] == '\0')
-				goto match; */
-			if ((tmp = strchr(host, '.')) != NULL &&
-			    __strcasecmp(tmp, mydomain) == 0 &&
-			    __strncasecmp(host, tokval, tmp - host) == 0 &&
-			    tokval[tmp - host] == '\0')
-				goto match;
-			continue;
-		}
-	match:
-		while ((t = token()) && t != MACHINE && t != DEFAULT) switch(t) {
-
-		case LOGIN:
-			if (token()) {
-				if (*aname == 0) {
-				  char *newp;
-				  newp = malloc((unsigned) strlen(tokval) + 1);
-				  if (newp == NULL)
-				    {
-				      warnx(_("out of memory"));
-				      goto bad;
-				    }
-				  *aname = strcpy(newp, tokval);
-				} else {
-					if (strcmp(*aname, tokval))
-						goto next;
-				}
-			}
-			break;
-		case PASSWD:
-			if (strcmp(*aname, "anonymous") &&
-			    fstat64(fileno(cfile), &stb) >= 0 &&
-			    (stb.st_mode & 077) != 0) {
-	warnx(_("Error: .netrc file is readable by others."));
-	warnx(_("Remove password or make file unreadable by others."));
-				goto bad;
-			}
-			if (token() && *apass == 0) {
-				char *newp;
-				newp = malloc((unsigned) strlen(tokval) + 1);
-				if (newp == NULL)
-				  {
-				    warnx(_("out of memory"));
-				    goto bad;
-				  }
-				*apass = strcpy(newp, tokval);
-			}
-			break;
-		case ACCOUNT:
-			break;
-		case MACDEF:
-			break;
-		default:
-			warnx(_("Unknown .netrc keyword %s"), tokval);
-			break;
-		}
-		goto done;
-	}
-done:
-	(void) fclose(cfile);
-	return (0);
-bad:
-	(void) fclose(cfile);
-	return (-1);
-}
-libc_hidden_def (ruserpass)
-
-static int
-token (void)
-{
-	char *cp;
-	int c;
-	int i;
-
-	if (feof_unlocked(cfile) || ferror_unlocked(cfile))
-		return (0);
-	while ((c = getc_unlocked(cfile)) != EOF &&
-	    (c == '\n' || c == '\t' || c == ' ' || c == ','))
-		continue;
-	if (c == EOF)
-		return (0);
-	cp = tokval;
-	if (c == '"') {
-		while ((c = getc_unlocked(cfile)) != EOF && c != '"') {
-			if (c == '\\')
-				c = getc_unlocked(cfile);
-			*cp++ = c;
-		}
-	} else {
-		*cp++ = c;
-		while ((c = getc_unlocked(cfile)) != EOF
-		    && c != '\n' && c != '\t' && c != ' ' && c != ',') {
-			if (c == '\\')
-				c = getc_unlocked(cfile);
-			*cp++ = c;
-		}
-	}
-	*cp = 0;
-	if (tokval[0] == 0)
-		return (0);
-	for (i = 0; i < (int) (sizeof (toktab) / sizeof (toktab[0])); ++i)
-		if (!strcmp(&tokstr[toktab[i].tokstr_off], tokval))
-			return toktab[i].tval;
-	return (ID);
-}
diff --git a/inet/setipv4sourcefilter.c b/inet/setipv4sourcefilter.c
deleted file mode 100644
index 08e8300c12..0000000000
--- a/inet/setipv4sourcefilter.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Set source filter.  Stub version.
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stdint.h>
-#include <netinet/in.h>
-
-
-int
-setipv4sourcefilter (int s, struct in_addr interface, struct in_addr group,
-		     uint32_t fmode, uint32_t numsrc,
-		     const struct in_addr *slist)
-{
-  __set_errno (ENOSYS);
-  return -1;
-}
-stub_warning (setipv4sourcefilter)
diff --git a/inet/setsourcefilter.c b/inet/setsourcefilter.c
deleted file mode 100644
index e65674737f..0000000000
--- a/inet/setsourcefilter.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Set source filter.  Stub version.
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stdint.h>
-#include <netinet/in.h>
-
-
-int
-setsourcefilter (int s, uint32_t interface, const struct sockaddr *group,
-		 socklen_t grouplen, uint32_t fmode, uint32_t numsrc,
-		 const struct sockaddr_storage *slist)
-{
-  __set_errno (ENOSYS);
-  return -1;
-}
-stub_warning (setsourcefilter)
diff --git a/inet/test-hnto-types.c b/inet/test-hnto-types.c
deleted file mode 100644
index b9770352ca..0000000000
--- a/inet/test-hnto-types.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Test netinet/in.h endian-conversion macros always return the correct type.
-   Copyright (C) 2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <netinet/in.h>
-#include <stdint.h>
-
-int i;
-uint16_t u16;
-uint32_t u32;
-
-int
-do_test (void)
-{
-  /* This is a compilation test.  */
-  extern __typeof (htons (i)) u16;
-  extern __typeof (ntohs (i)) u16;
-  extern __typeof (htonl (i)) u32;
-  extern __typeof (ntohl (i)) u32;
-  (void) u16;
-  (void) u32;
-  return 0;
-}
-
-#include <support/test-driver.c>
diff --git a/inet/test-ifaddrs.c b/inet/test-ifaddrs.c
deleted file mode 100644
index 2baf9ad3a3..0000000000
--- a/inet/test-ifaddrs.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Test listing of network interface addresses.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ifaddrs.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-static int failures;
-
-static const char *
-addr_string (struct sockaddr *sa, char *buf, size_t size)
-{
-  if (sa == NULL)
-    return "<none>";
-
-  switch (sa->sa_family)
-    {
-    case AF_INET:
-      return inet_ntop (AF_INET, &((struct sockaddr_in *) sa)->sin_addr,
-			buf, size);
-    case AF_INET6:
-      return inet_ntop (AF_INET6, &((struct sockaddr_in6 *) sa)->sin6_addr,
-			buf, size);
-#ifdef AF_LINK
-    case AF_LINK:
-      return "<link>";
-#endif
-    case AF_UNSPEC:
-      return "---";
-
-#ifdef AF_PACKET
-    case AF_PACKET:
-      return "<packet>";
-#endif
-
-    default:
-      ++failures;
-      printf ("sa_family=%d %08x\n", sa->sa_family,
-	      *(int*)&((struct sockaddr_in *) sa)->sin_addr.s_addr);
-      return "<unexpected sockaddr family>";
-    }
-}
-
-
-static int
-do_test (void)
-{
-  struct ifaddrs *ifaces, *ifa;
-
-  if (getifaddrs (&ifaces) < 0)
-    {
-      if (errno != ENOSYS)
-	{
-	  printf ("Couldn't get any interfaces: %s.\n", strerror (errno));
-	  exit (1);
-	}
-      /* The function is simply not implemented.  */
-      exit (0);
-    }
-
-  puts ("\
-Name           Flags   Address         Netmask         Broadcast/Destination");
-
-  for (ifa = ifaces; ifa != NULL; ifa = ifa->ifa_next)
-    {
-      char abuf[64], mbuf[64], dbuf[64];
-      printf ("%-15s%#.4x  %-15s %-15s %-15s\n",
-	      ifa->ifa_name, ifa->ifa_flags,
-	      addr_string (ifa->ifa_addr, abuf, sizeof (abuf)),
-	      addr_string (ifa->ifa_netmask, mbuf, sizeof (mbuf)),
-	      addr_string (ifa->ifa_broadaddr, dbuf, sizeof (dbuf)));
-    }
-
-  freeifaddrs (ifaces);
-
-  return failures ? 1 : 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/test-inet6_opt.c b/inet/test-inet6_opt.c
deleted file mode 100644
index a7ebf006c6..0000000000
--- a/inet/test-inet6_opt.c
+++ /dev/null
@@ -1,211 +0,0 @@
-#include <netinet/in.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdint.h>
-
-#define OPT_X	42
-#define OPT_Y	43
-#define OPT_Z	44
-
-static void *
-encode_inet6_opt (socklen_t *elp)
-{
-  void *eb = NULL;
-  socklen_t el;
-  int cl;
-  void *db;
-  int offset;
-  uint8_t val1;
-  uint16_t val2;
-  uint32_t val4;
-  uint64_t val8;
-
-  *elp = 0;
-#define CHECK() \
-  if (cl == -1)						\
-    {							\
-      printf ("cl == -1 on line %d\n", __LINE__);	\
-      free (eb);					\
-      return NULL;					\
-    }
-
-  /* Estimate the length */
-  cl = inet6_opt_init (NULL, 0);
-  CHECK ();
-  cl = inet6_opt_append (NULL, 0, cl, OPT_X, 12, 8, NULL);
-  CHECK ();
-  cl = inet6_opt_append (NULL, 0, cl, OPT_Y, 7, 4, NULL);
-  CHECK ();
-  cl = inet6_opt_append (NULL, 0, cl, OPT_Z, 7, 1, NULL);
-  CHECK ();
-  cl = inet6_opt_finish (NULL, 0, cl);
-  CHECK ();
-  el = cl;
-
-  eb = malloc (el + 8);
-  if (eb == NULL)
-    {
-      puts ("malloc failed");
-      return NULL;
-    }
-  /* Canary.  */
-  memcpy (eb + el, "deadbeef", 8);
-
-  cl = inet6_opt_init (eb, el);
-  CHECK ();
-
-  cl = inet6_opt_append (eb, el, cl, OPT_X, 12, 8, &db);
-  CHECK ();
-  val4 = 0x12345678;
-  offset = inet6_opt_set_val (db, 0, &val4, sizeof  (val4));
-  val8 = 0x0102030405060708LL;
-  inet6_opt_set_val (db, offset, &val8, sizeof  (val8));
-
-  cl = inet6_opt_append (eb, el, cl, OPT_Y, 7, 4, &db);
-  CHECK ();
-  val1 = 0x01;
-  offset = inet6_opt_set_val (db, 0, &val1, sizeof  (val1));
-  val2 = 0x1331;
-  offset = inet6_opt_set_val (db, offset, &val2, sizeof  (val2));
-  val4 = 0x01020304;
-  inet6_opt_set_val (db, offset, &val4, sizeof  (val4));
-
-  cl = inet6_opt_append (eb, el, cl, OPT_Z, 7, 1, &db);
-  CHECK ();
-  inet6_opt_set_val (db, 0, (void *) "abcdefg", 7);
-
-  cl = inet6_opt_finish (eb, el, cl);
-  CHECK ();
-
-  if (memcmp (eb + el, "deadbeef", 8) != 0)
-    {
-      puts ("Canary corrupted");
-      free (eb);
-      return NULL;
-    }
-  *elp = el;
-  return eb;
-}
-
-int
-decode_inet6_opt (void *eb, socklen_t el)
-{
-  int ret = 0;
-  int seq = 0;
-  int cl = 0;
-  int offset;
-  uint8_t type;
-  socklen_t len;
-  uint8_t val1;
-  uint16_t val2;
-  uint32_t val4;
-  uint64_t val8;
-  void *db;
-  char buf[8];
-
-  while ((cl = inet6_opt_next (eb, el, cl, &type, &len, &db)) != -1)
-    switch (type)
-      {
-      case OPT_X:
-	if (seq++ != 0)
-	  {
-	    puts ("OPT_X is not first");
-	    ret = 1;
-	  }
-	if (len != 12)
-	  {
-	    printf ("OPT_X's length %d != 12\n", len);
-	    ret = 1;
-	  }
-	offset = inet6_opt_get_val (db, 0, &val4, sizeof (val4));
-	if (val4 != 0x12345678)
-	  {
-	    printf ("OPT_X's val4 %x != 0x12345678\n", val4);
-	    ret = 1;
-	  }
-	offset = inet6_opt_get_val (db, offset, &val8, sizeof (val8));
-	if (offset != len || val8 != 0x0102030405060708LL)
-	  {
-	    printf ("OPT_X's val8 %llx != 0x0102030405060708\n",
-		    (long long) val8);
-	    ret = 1;
-	  }
-	break;
-      case OPT_Y:
-	if (seq++ != 1)
-	  {
-	    puts ("OPT_Y is not second");
-	    ret = 1;
-	  }
-	if (len != 7)
-	  {
-	    printf ("OPT_Y's length %d != 7\n", len);
-	    ret = 1;
-	  }
-	offset = inet6_opt_get_val (db, 0, &val1, sizeof (val1));
-	if (val1 != 0x01)
-	  {
-	    printf ("OPT_Y's val1 %x != 0x01\n", val1);
-	    ret = 1;
-	  }
-	offset = inet6_opt_get_val (db, offset, &val2, sizeof (val2));
-	if (val2 != 0x1331)
-	  {
-	    printf ("OPT_Y's val2 %x != 0x1331\n", val2);
-	    ret = 1;
-	  }
-	offset = inet6_opt_get_val (db, offset, &val4, sizeof (val4));
-	if (offset != len || val4 != 0x01020304)
-	  {
-	    printf ("OPT_Y's val4 %x != 0x01020304\n", val4);
-	    ret = 1;
-	  }
-	break;
-      case OPT_Z:
-	if (seq++ != 2)
-	  {
-	    puts ("OPT_Z is not third");
-	    ret = 1;
-	  }
-	if (len != 7)
-	  {
-	    printf ("OPT_Z's length %d != 7\n", len);
-	    ret = 1;
-	  }
-	offset = inet6_opt_get_val (db, 0, buf, 7);
-	if (offset != len || memcmp (buf, "abcdefg", 7) != 0)
-	  {
-	    buf[7] = '\0';
-	    printf ("OPT_Z's buf \"%s\" != \"abcdefg\"\n", buf);
-	    ret = 1;
-	  }
-	break;
-      default:
-	printf ("Unknown option %d\n", type);
-	ret = 1;
-	break;
-      }
-  if (seq != 3)
-    {
-      puts ("Didn't see all of OPT_X, OPT_Y and OPT_Z");
-      ret = 1;
-    }
-  return ret;
-}
-
-static int
-do_test (void)
-{
-  void *eb;
-  socklen_t el;
-  eb = encode_inet6_opt (&el);
-  if (eb == NULL)
-    return 1;
-  if (decode_inet6_opt (eb, el))
-    return 1;
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/test_ifindex.c b/inet/test_ifindex.c
deleted file mode 100644
index 06cdb78ef5..0000000000
--- a/inet/test_ifindex.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Test interface name <-> index conversions.
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Philip Blundell <Philip.Blundell@pobox.com>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <net/if.h>
-
-static int
-do_test (void)
-{
-  int failures = 0;
-  struct if_nameindex *idx = if_nameindex (), *p;
-  if (idx == NULL)
-    {
-      if (errno != ENOSYS)
-	{
-	  printf ("Couldn't get any interfaces.\n");
-	  exit (1);
-	}
-      /* The function is simply not implemented.  */
-      exit (0);
-    }
-
-  printf ("Idx            Name | Idx           Name\n");
-
-  for (p = idx; p->if_index || p->if_name; ++p)
-    {
-      char buf[IFNAMSIZ];
-      unsigned int ni;
-      int result;
-      printf ("%3d %15s | ", p->if_index, p->if_name);
-      printf ("%3d", ni = if_nametoindex (p->if_name));
-      printf ("%15s", if_indextoname (p->if_index, buf));
-      result = (ni != p->if_index || (strcmp (buf, p->if_name)));
-      if (ni == p->if_index)
-	/* We have to make sure that this is not an alias with the
-	   same interface number.  */
-	if (p->if_index == if_nametoindex (buf))
-	  result = 0;
-      printf ("%10s", result ? "fail" : "okay");
-      printf ("\n");
-      failures += result;
-    }
-  if_freenameindex (idx);
-  return failures ? 1 : 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/tst-checks-posix.c b/inet/tst-checks-posix.c
deleted file mode 100644
index cdcb5cb3aa..0000000000
--- a/inet/tst-checks-posix.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Test IPv6 classification macros in POSIX mode.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* Process tst-checks.c in POSIX mode.  */
-#undef _GNU_SOURCE
-#define _POSIX_C_SOURCE 200112L
-
-#include "tst-checks.c"
diff --git a/inet/tst-checks.c b/inet/tst-checks.c
deleted file mode 100644
index 1a4785d96e..0000000000
--- a/inet/tst-checks.c
+++ /dev/null
@@ -1,172 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <netinet/in.h>
-
-
-static int
-do_test (void)
-{
-  int result = 0;
-  char buf[16];
-  memset (buf, '\0', 16);
-
-  if (! IN6_IS_ADDR_UNSPECIFIED (buf))
-    {
-      puts ("positive IN6_IS_ADDR_UNSPECIFIED failed");
-      result = 1;
-    }
-  for (size_t i = 0; i < 16; ++i)
-    {
-      buf[i] = 1;
-      if (IN6_IS_ADDR_UNSPECIFIED (buf))
-	{
-	  printf ("negative IN6_IS_ADDR_UNSPECIFIED with byte %zu failed\n",
-		  i);
-	  result = 1;
-	}
-      buf[i] = 0;
-    }
-
-  if (IN6_IS_ADDR_LOOPBACK (buf))
-    {
-      puts ("negative IN6_IS_ADDR_UNSPECIFIED failed");
-      result = 1;
-    }
-  buf[15] = 1;
-  if (! IN6_IS_ADDR_LOOPBACK (buf))
-    {
-      puts ("positive IN6_IS_ADDR_UNSPECIFIED failed");
-      result = 1;
-    }
-  buf[15] = 0;
-
-  buf[0] = 0xfe;
-  buf[1] = 0x80;
-  if (! IN6_IS_ADDR_LINKLOCAL (buf))
-    {
-      puts ("positive IN6_IS_ADDR_LINKLOCAL failed");
-      result = 1;
-    }
-  for (size_t i = 1; i < 16; ++i)
-    {
-      buf[i] ^= 1;
-      if (! IN6_IS_ADDR_LINKLOCAL (buf))
-	{
-	  printf ("positive IN6_IS_ADDR_LINKLOCAL byte %zu failed\n", i);
-	  result = 1;
-	}
-      buf[i] ^= 1;
-    }
-  buf[0] = 0xff;
-  buf[1] = 0x80;
-  if (IN6_IS_ADDR_LINKLOCAL (buf))
-    {
-      puts ("negative IN6_IS_ADDR_LINKLOCAL failed");
-      result = 1;
-    }
-  buf[0] = 0xfe;
-  buf[1] = 0xc0;
-  if (IN6_IS_ADDR_LINKLOCAL (buf))
-    {
-      puts ("negative IN6_IS_ADDR_LINKLOCAL #2 failed");
-      result = 1;
-    }
-
-  buf[0] = 0xfe;
-  buf[1] = 0xc0;
-  if (! IN6_IS_ADDR_SITELOCAL (buf))
-    {
-      puts ("positive IN6_IS_ADDR_SITELOCAL failed");
-      result = 1;
-    }
-  for (size_t i = 1; i < 16; ++i)
-    {
-      buf[i] ^= 1;
-      if (! IN6_IS_ADDR_SITELOCAL (buf))
-	{
-	  printf ("positive IN6_IS_ADDR_SITELOCAL byte %zu failed\n", i);
-	  result = 1;
-	}
-      buf[i] ^= 1;
-    }
-  buf[0] = 0xff;
-  buf[1] = 0x80;
-  if (IN6_IS_ADDR_SITELOCAL (buf))
-    {
-      puts ("negative IN6_IS_ADDR_SITELOCAL failed");
-      result = 1;
-    }
-  buf[0] = 0xf8;
-  buf[1] = 0xc0;
-  if (IN6_IS_ADDR_SITELOCAL (buf))
-    {
-      puts ("negative IN6_IS_ADDR_SITELOCAL #2 failed");
-      result = 1;
-    }
-
-  memset (buf, '\0', 16);
-  buf[10] = 0xff;
-  buf[11] = 0xff;
-  if (! IN6_IS_ADDR_V4MAPPED (buf))
-    {
-      puts ("positive IN6_IS_ADDR_V4MAPPED failed");
-      result = 1;
-    }
-  for (size_t i = 12; i < 16; ++i)
-    {
-      buf[i] ^= 1;
-      if (! IN6_IS_ADDR_V4MAPPED (buf))
-	{
-	  printf ("positive IN6_IS_ADDR_V4MAPPED byte %zu failed\n", i);
-	  result = 1;
-	}
-      buf[i] ^= 1;
-    }
-  for (size_t i = 0; i < 12; ++i)
-    {
-      buf[i] ^= 1;
-      if (IN6_IS_ADDR_V4MAPPED (buf))
-	{
-	  printf ("negative IN6_IS_ADDR_V4MAPPED byte %zu failed\n", i);
-	  result = 1;
-	}
-      buf[i] ^= 1;
-    }
-
-  memset (buf, '\0', 16);
-  for (size_t i = 12; i < 16; ++i)
-    {
-      buf[i] ^= 2;
-      if (! IN6_IS_ADDR_V4COMPAT (buf))
-	{
-	  printf ("positive IN6_IS_ADDR_V4COMPAT byte %zu failed\n", i);
-	  result = 1;
-	}
-      buf[i] ^= 2;
-    }
-  for (size_t i = 0; i < 12; ++i)
-    {
-      buf[i] ^= 1;
-      if (IN6_IS_ADDR_V4COMPAT (buf))
-	{
-	  printf ("negative IN6_IS_ADDR_V4COMPAT byte %zu failed\n", i);
-	  result = 1;
-	}
-      buf[i] ^= 1;
-    }
-  if (IN6_IS_ADDR_V4COMPAT (buf))
-    {
-      puts ("negative IN6_IS_ADDR_V4COMPAT #2 failed");
-      result = 1;
-    }
-  buf[15] = 1;
-  if (IN6_IS_ADDR_V4COMPAT (buf))
-    {
-      puts ("negative IN6_IS_ADDR_V4COMPAT #3 failed");
-      result = 1;
-    }
-
-  return result;
-}
-
-#include <support/test-driver.c>
diff --git a/inet/tst-deadline.c b/inet/tst-deadline.c
deleted file mode 100644
index ed04345c35..0000000000
--- a/inet/tst-deadline.c
+++ /dev/null
@@ -1,188 +0,0 @@
-/* Tests for computing deadlines for timeouts.
-   Copyright (C) 2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <inet/net-internal.h>
-#include <limits.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <support/check.h>
-
-/* Find the maximum value which can be represented in a time_t.  */
-static time_t
-time_t_max (void)
-{
-  _Static_assert (0 > (time_t) -1, "time_t is signed");
-  uintmax_t current = 1;
-  while (true)
-    {
-      uintmax_t next = current * 2;
-      /* This cannot happen because time_t is signed.  */
-      TEST_VERIFY_EXIT (next > current);
-      ++next;
-      if ((time_t) next < 0 || next != (uintmax_t) (time_t) next)
-        /* Value cannot be represented in time_t.  Return the previous
-           value. */
-        return current;
-      current = next;
-    }
-}
-
-static int
-do_test (void)
-{
-  {
-    struct deadline_current_time current_time = __deadline_current_time ();
-    TEST_VERIFY (current_time.current.tv_sec >= 0);
-    current_time = __deadline_current_time ();
-    /* Due to CLOCK_MONOTONIC, either seconds or nanoseconds are
-       greater than zero.  This is also true for the gettimeofday
-       fallback.  */
-    TEST_VERIFY (current_time.current.tv_sec >= 0);
-    TEST_VERIFY (current_time.current.tv_sec > 0
-                 || current_time.current.tv_nsec > 0);
-  }
-
-  /* Check basic computations of deadlines.  */
-  struct deadline_current_time current_time = { { 1, 123456789 } };
-  struct deadline deadline = __deadline_from_timeval
-    (current_time, (struct timeval) { 0, 1 });
-  TEST_VERIFY (deadline.absolute.tv_sec == 1);
-  TEST_VERIFY (deadline.absolute.tv_nsec == 123457789);
-  TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 1);
-
-  deadline = __deadline_from_timeval
-    (current_time, ((struct timeval) { 0, 2 }));
-  TEST_VERIFY (deadline.absolute.tv_sec == 1);
-  TEST_VERIFY (deadline.absolute.tv_nsec == 123458789);
-  TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 1);
-
-  deadline = __deadline_from_timeval
-    (current_time, ((struct timeval) { 1, 0 }));
-  TEST_VERIFY (deadline.absolute.tv_sec == 2);
-  TEST_VERIFY (deadline.absolute.tv_nsec == 123456789);
-  TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 1000);
-
-  /* Check if timeouts are correctly rounded up to the next
-     millisecond.  */
-  for (int i = 0; i < 999999; ++i)
-    {
-      ++current_time.current.tv_nsec;
-      TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 1000);
-    }
-
-  /* A full millisecond has elapsed, so the time to the deadline is
-     now less than 1000.  */
-  ++current_time.current.tv_nsec;
-  TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 999);
-
-  /* Check __deadline_to_ms carry-over.  */
-  current_time = (struct deadline_current_time) { { 9, 123456789 } };
-  deadline = (struct deadline) { { 10, 122456789 } };
-  TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 999);
-  deadline = (struct deadline) { { 10, 122456790 } };
-  TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 1000);
-  deadline = (struct deadline) { { 10, 123456788 } };
-  TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 1000);
-  deadline = (struct deadline) { { 10, 123456789 } };
-  TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 1000);
-
-  /* Check __deadline_to_ms overflow.  */
-  deadline = (struct deadline) { { INT_MAX - 1, 1 } };
-  TEST_VERIFY (__deadline_to_ms (current_time, deadline) == INT_MAX);
-
-  /* Check __deadline_to_ms for elapsed deadlines.  */
-  current_time = (struct deadline_current_time) { { 9, 123456789 } };
-  deadline.absolute = current_time.current;
-  TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 0);
-  current_time = (struct deadline_current_time) { { 9, 123456790 } };
-  TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 0);
-  current_time = (struct deadline_current_time) { { 10, 0 } };
-  TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 0);
-  current_time = (struct deadline_current_time) { { 10, 123456788 } };
-  TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 0);
-  current_time = (struct deadline_current_time) { { 10, 123456789 } };
-  TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 0);
-
-  /* Check carry-over in __deadline_from_timeval.  */
-  current_time = (struct deadline_current_time) { { 9, 998000001 } };
-  for (int i = 0; i < 2000; ++i)
-    {
-      deadline = __deadline_from_timeval
-        (current_time, (struct timeval) { 1, i });
-      TEST_VERIFY (deadline.absolute.tv_sec == 10);
-      TEST_VERIFY (deadline.absolute.tv_nsec == 998000001 + i * 1000);
-    }
-  for (int i = 2000; i < 3000; ++i)
-    {
-      deadline = __deadline_from_timeval
-        (current_time, (struct timeval) { 2, i });
-      TEST_VERIFY (deadline.absolute.tv_sec == 12);
-      TEST_VERIFY (deadline.absolute.tv_nsec == 1 + (i - 2000) * 1000);
-    }
-
-  /* Check infinite deadlines.  */
-  deadline = __deadline_from_timeval
-    ((struct deadline_current_time) { { 0, 1000 * 1000 * 1000 - 1000 } },
-     (struct timeval) { time_t_max (), 1 });
-  TEST_VERIFY (__deadline_is_infinite (deadline));
-  deadline = __deadline_from_timeval
-    ((struct deadline_current_time) { { 0, 1000 * 1000 * 1000 - 1001 } },
-     (struct timeval) { time_t_max (), 1 });
-  TEST_VERIFY (!__deadline_is_infinite (deadline));
-  deadline = __deadline_from_timeval
-    ((struct deadline_current_time)
-       { { time_t_max (), 1000 * 1000 * 1000 - 1000 } },
-     (struct timeval) { 0, 1 });
-  TEST_VERIFY (__deadline_is_infinite (deadline));
-  deadline = __deadline_from_timeval
-    ((struct deadline_current_time)
-       { { time_t_max () / 2 + 1, 0 } },
-     (struct timeval) { time_t_max () / 2 + 1, 0 });
-  TEST_VERIFY (__deadline_is_infinite (deadline));
-
-  /* Check __deadline_first behavior.  */
-  deadline = __deadline_first
-    ((struct deadline) { { 1, 2 } },
-     (struct deadline) { { 1, 3 } });
-  TEST_VERIFY (deadline.absolute.tv_sec == 1);
-  TEST_VERIFY (deadline.absolute.tv_nsec == 2);
-  deadline = __deadline_first
-    ((struct deadline) { { 1, 3 } },
-     (struct deadline) { { 1, 2 } });
-  TEST_VERIFY (deadline.absolute.tv_sec == 1);
-  TEST_VERIFY (deadline.absolute.tv_nsec == 2);
-  deadline = __deadline_first
-    ((struct deadline) { { 1, 2 } },
-     (struct deadline) { { 2, 1 } });
-  TEST_VERIFY (deadline.absolute.tv_sec == 1);
-  TEST_VERIFY (deadline.absolute.tv_nsec == 2);
-  deadline = __deadline_first
-    ((struct deadline) { { 1, 2 } },
-     (struct deadline) { { 2, 4 } });
-  TEST_VERIFY (deadline.absolute.tv_sec == 1);
-  TEST_VERIFY (deadline.absolute.tv_nsec == 2);
-  deadline = __deadline_first
-    ((struct deadline) { { 2, 4 } },
-     (struct deadline) { { 1, 2 } });
-  TEST_VERIFY (deadline.absolute.tv_sec == 1);
-  TEST_VERIFY (deadline.absolute.tv_nsec == 2);
-
-  return 0;
-}
-
-#include <support/test-driver.c>
diff --git a/inet/tst-ether_aton.c b/inet/tst-ether_aton.c
deleted file mode 100644
index eba350ed3a..0000000000
--- a/inet/tst-ether_aton.c
+++ /dev/null
@@ -1,60 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <netinet/ether.h>
-
-static int
-do_test (void)
-{
-  struct ether_addr *valp, val;
-  int result, r;
-  char hostname[32], buf[64], *p;
-
-  valp = ether_aton ("12:34:56:78:9a:bc");
-
-  printf ("ether_aton (\"12:34:56:78:9a:bc\") = %hhx:%hhx:%hhx:%hhx:%hhx:%hhx\n",
-	  valp->ether_addr_octet[0],
-	  valp->ether_addr_octet[1],
-	  valp->ether_addr_octet[2],
-	  valp->ether_addr_octet[3],
-	  valp->ether_addr_octet[4],
-	  valp->ether_addr_octet[5]);
-
-  result = (valp->ether_addr_octet[0] != 0x12
-	    || valp->ether_addr_octet[1] != 0x34
-	    || valp->ether_addr_octet[2] != 0x56
-	    || valp->ether_addr_octet[3] != 0x78
-	    || valp->ether_addr_octet[4] != 0x9a
-	    || valp->ether_addr_octet[5] != 0xbc);
-
-  if ((r = ether_line ("0:c0:f0:46:5f:97 host.ether.com \t# comment",
-		       &val, hostname)) == 0)
-    {
-      ether_ntoa_r (&val, buf);
-      p = strchr (buf, '\0');
-      *p++ = ' ';
-      strcpy (p, hostname);
-
-      printf ("ether_line (\"0:c0:f0:46:5f:97 host.ether.com\") = \"%s\"\n",
-	      buf);
-
-      result |= strcmp ("0:c0:f0:46:5f:97 host.ether.com", buf) != 0;
-    }
-  else
-    {
-      printf ("ether_line (\"0:c0:f0:46:5f:97 host.ether.com\") = %d\n", r);
-      result |= 1;
-    }
-
-  r = ether_line ("0:c0:2:d0 foo.bar   ", &val, hostname);
-  printf ("ether_line (\"0:c0:2:d0 foo.bar   \") = %d\n", r);
-  result |= r != -1;
-
-  r = ether_line ("0:c0:2:d0:1a:2a  ", &val, hostname);
-  printf ("ether_line (\"0:c0:2:d0:1a:2a  \") = %d\n", r);
-  result |= r != -1;
-
-  return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/tst-ether_line.c b/inet/tst-ether_line.c
deleted file mode 100644
index ff0560b16a..0000000000
--- a/inet/tst-ether_line.c
+++ /dev/null
@@ -1,38 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <netinet/ether.h>
-
-
-static int
-do_test (void)
-{
-  struct ether_addr a;
-  char buf[1000];
-  if (ether_line ("00:01:02:03:04:05       aaaaa   \n", &a, buf) != 0)
-    {
-      puts ("ether_line failed");
-      return 1;
-    }
-
-  int res = 0;
-  int i;
-  for (i = 0; i < ETH_ALEN; ++i)
-    {
-      printf ("%02x%s",
-	      (int) a.ether_addr_octet[i], i + 1 == ETH_ALEN ? "" : ":");
-      if (a.ether_addr_octet[i] != i)
-	{
-	  printf ("octet %d is %d, expected %d\n",
-		  i, (int) a.ether_addr_octet[i], i);
-	  res = 1;
-	}
-    }
-
-  printf (" \"%s\"\n", buf);
-  res |= strcmp (buf, "aaaaa") != 0;
-
-  return res;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/tst-gethnm.c b/inet/tst-gethnm.c
deleted file mode 100644
index dd3a547811..0000000000
--- a/inet/tst-gethnm.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Based on a test case by grd@algonet.se.  */
-
-#include <netdb.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/param.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-static int
-do_test (void)
-{
-  struct hostent *ent;
-  struct in_addr hostaddr;
-  int result = 0;
-
-  inet_aton ("127.0.0.1", (struct in_addr *) &hostaddr.s_addr);
-  ent = gethostbyaddr (&hostaddr, sizeof (hostaddr), AF_INET);
-  if (ent == NULL)
-    puts ("gethostbyaddr (...) == NULL");
-  else
-    {
-      puts ("Using gethostbyaddr(..):");
-      printf ("h_name: %s\n", ent->h_name);
-
-      if (ent->h_aliases == NULL)
-	puts ("ent->h_aliases == NULL");
-      else
-	printf ("h_aliases[0]: %s\n", ent->h_aliases[0]);
-    }
-
-  ent = gethostbyname ("127.0.0.1");
-  if (ent == NULL)
-    {
-      puts ("gethostbyname (\"127.0.0.1\") == NULL");
-      result = 1;
-    }
-  else
-    {
-      printf ("\nNow using gethostbyname(..):\n");
-      printf ("h_name: %s\n", ent->h_name);
-      if (strcmp (ent->h_name, "127.0.0.1") != 0)
-	{
-	  puts ("ent->h_name != \"127.0.0.1\"");
-	  result = 1;
-	}
-
-      if (ent->h_aliases == NULL)
-	{
-	  puts ("ent->h_aliases == NULL");
-	  result = 1;
-	}
-      else
-	{
-	  printf ("h_aliases[0]: %s\n", ent->h_aliases[0]);
-	  result |= ent->h_aliases[0] != NULL;
-	}
-    }
-
-  return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/tst-getni1.c b/inet/tst-getni1.c
deleted file mode 100644
index 3960f7112e..0000000000
--- a/inet/tst-getni1.c
+++ /dev/null
@@ -1,36 +0,0 @@
-#include <netdb.h>
-#include <stdio.h>
-#include <sys/socket.h>
-
-static int
-do_test (void)
-{
-  int retval = 0;
-
-  struct sockaddr_in s;
-  s.sin_family = AF_INET;
-  s.sin_port = 80;
-  s.sin_addr.s_addr = INADDR_LOOPBACK;
-  int r = getnameinfo((struct sockaddr *) &s, sizeof (s), NULL, 0, NULL, 0,
-		      NI_NUMERICHOST | NI_NUMERICSERV);
-  printf("r = %d\n", r);
-  if (r != 0)
-    {
-      puts ("failed without NI_NAMEREQD");
-      retval = 1;
-    }
-
-  r = getnameinfo((struct sockaddr *) &s, sizeof (s), NULL, 0, NULL, 0,
-		  NI_NUMERICHOST | NI_NUMERICSERV | NI_NAMEREQD);
-  printf("r = %d\n", r);
-  if (r != EAI_NONAME)
-    {
-      puts ("did not fail with EAI_NONAME with NI_NAMEREQD set");
-      retval = 1;
-    }
-
-  return retval;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/tst-getni2.c b/inet/tst-getni2.c
deleted file mode 100644
index 66e78062ba..0000000000
--- a/inet/tst-getni2.c
+++ /dev/null
@@ -1,41 +0,0 @@
-#include <netdb.h>
-#include <stdio.h>
-#include <sys/socket.h>
-
-static int
-do_test (void)
-{
-  int retval = 0;
-
-  struct sockaddr_in6 s;
-  s.sin6_family = AF_INET6;
-  s.sin6_port = htons (80);
-  s.sin6_flowinfo = 0;
-  s.sin6_addr = (struct in6_addr) IN6ADDR_ANY_INIT;
-  s.sin6_scope_id = 0;
-  char buf[1000];
-  buf[0] = '\0';
-  int r = getnameinfo((struct sockaddr *) &s, sizeof (s), buf, sizeof (buf),
-		      NULL, 0, NI_NUMERICSERV);
-  printf("r = %d, buf = \"%s\"\n", r, buf);
-  if (r != 0)
-    {
-      puts ("failed without NI_NAMEREQD");
-      retval = 1;
-    }
-
-  buf[0] = '\0';
-  r = getnameinfo((struct sockaddr *) &s, sizeof (s), buf, sizeof (buf),
-		  NULL, 0, NI_NUMERICSERV | NI_NAMEREQD);
-  printf("r = %d, buf = \"%s\"\n", r, buf);
-  if (r != EAI_NONAME)
-    {
-      puts ("did not fail with EAI_NONAME with NI_NAMEREQD set");
-      retval = 1;
-    }
-
-  return retval;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/tst-inet6_rth.c b/inet/tst-inet6_rth.c
deleted file mode 100644
index 549d717c7d..0000000000
--- a/inet/tst-inet6_rth.c
+++ /dev/null
@@ -1,192 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <arpa/inet.h>
-#include <netinet/ip6.h>
-
-static int
-do_test (void)
-{
-  int res = 0;
-  char buf[1000];
-  void *p = inet6_rth_init (buf, 24, IPV6_RTHDR_TYPE_0, 0);
-  if (p == NULL)
-    {
-      puts ("first inet6_rth_init failed");
-      res = 1;
-    }
-  else if (inet6_rth_add (p, &in6addr_any) == 0)
-    {
-      puts ("first inet6_rth_add succeeded");
-      res = 1;
-    }
-
-  p = inet6_rth_init (buf, 24, IPV6_RTHDR_TYPE_0, 1);
-  if (p == NULL)
-    {
-      puts ("second inet6_rth_init failed");
-      res = 1;
-    }
-  else if (inet6_rth_add (p, &in6addr_any) != 0)
-    {
-      puts ("second inet6_rth_add failed");
-      res = 1;
-    }
-
-  for (int nseg = 4; nseg < 6; ++nseg)
-    {
-      printf ("nseg = %d\n", nseg);
-
-      p = inet6_rth_init (buf, sizeof (buf), IPV6_RTHDR_TYPE_0, nseg);
-      if (p == NULL)
-	{
-	  puts ("third inet6_rth_init failed");
-	  res = 1;
-	}
-      else
-	{
-	  struct in6_addr tmp;
-	  memset (&tmp, '\0', sizeof (tmp));
-
-	  for (int i = 0; i < nseg; ++i)
-	    {
-	      tmp.s6_addr[0] = i;
-	      if (inet6_rth_add (p, &tmp) != 0)
-		{
-		  printf ("call %d of third inet6_rth_add failed\n", i + 1);
-		  res = 1;
-		  goto out;
-		}
-	    }
-	  ((struct ip6_rthdr0 *) p)->ip6r0_segleft = 0;
-	  if (inet6_rth_segments (p) != nseg)
-	    {
-	      puts ("\
-inet6_rth_segments returned wrong value after loop with third inet6_rth_add");
-	      res = 1;
-	      goto out;
-	    }
-
-          union
-          {
-            char buffer[1000];
-            struct ip6_rthdr0 rthdr0;
-          } buf2;
-	  if (inet6_rth_reverse (p, buf2.buffer) != 0)
-	    {
-	      puts ("first inet6_rth_reverse call failed");
-	      res = 1;
-	      goto out;
-	    }
-	  if (buf2.rthdr0.ip6r0_segleft != nseg)
-	    {
-	      puts ("segleft after first inet6_rth_reverse wrong");
-	      res = 1;
-	    }
-
-	  if (inet6_rth_segments (p) != inet6_rth_segments (buf2.buffer))
-	    {
-	      puts ("number of seconds after first inet6_rth_reverse differs");
-	      res = 1;
-	      goto out;
-	    }
-
-	  for (int i = 0; i < nseg; ++i)
-	    {
-	      struct in6_addr *addr = inet6_rth_getaddr (buf2.buffer, i);
-	      if (addr == NULL)
-		{
-		  printf ("call %d of first inet6_rth_getaddr failed\n",
-			  i + 1);
-		  res = 1;
-		}
-	      else if (addr->s6_addr[0] != nseg - 1 - i
-		       || memcmp (&addr->s6_addr[1], &in6addr_any.s6_addr[1],
-				  sizeof (in6addr_any)
-				  - sizeof (in6addr_any.s6_addr[0])) != 0)
-		{
-		  char addrbuf[100];
-		  inet_ntop (AF_INET6, addr, addrbuf, sizeof (addrbuf));
-		  printf ("\
-address %d after first inet6_rth_reverse wrong (%s)\n",
-			  i + 1, addrbuf);
-		  res = 1;
-		}
-	    }
-	out:
-	  ;
-	}
-
-      p = inet6_rth_init (buf, sizeof (buf), IPV6_RTHDR_TYPE_0, nseg);
-      if (p == NULL)
-	{
-	  puts ("fourth inet6_rth_init failed");
-	  res = 1;
-	}
-      else
-	{
-	  struct in6_addr tmp;
-	  memset (&tmp, '\0', sizeof (tmp));
-
-	  for (int i = 0; i < nseg; ++i)
-	    {
-	      tmp.s6_addr[0] = i;
-	      if (inet6_rth_add (p, &tmp) != 0)
-		{
-		  printf ("call %d of fourth inet6_rth_add failed\n", i + 1);
-		  res = 1;
-		  goto out2;
-		}
-	    }
-	  ((struct ip6_rthdr0 *) p)->ip6r0_segleft = 0;
-	  if (inet6_rth_segments (p) != nseg)
-	    {
-	      puts ("\
-inet6_rth_segments returned wrong value after loop with fourth inet6_rth_add");
-	      res = 1;
-	      goto out2;
-	    }
-
-	  if (inet6_rth_reverse (p, p) != 0)
-	    {
-	      puts ("second inet6_rth_reverse call failed");
-	      res = 1;
-	      goto out2;
-	    }
-	  if (((struct ip6_rthdr0 *) p)->ip6r0_segleft != nseg)
-	    {
-	      puts ("segleft after second inet6_rth_reverse wrong");
-	      res = 1;
-	    }
-
-	  for (int i = 0; i < nseg; ++i)
-	    {
-	      struct in6_addr *addr = inet6_rth_getaddr (p, i);
-	      if (addr == NULL)
-		{
-		  printf ("call %d of second inet6_rth_getaddr failed\n",
-			  i + 1);
-		  res = 1;
-		}
-	      else if (addr->s6_addr[0] != nseg - 1 - i
-		       || memcmp (&addr->s6_addr[1], &in6addr_any.s6_addr[1],
-				  sizeof (in6addr_any)
-				  - sizeof (in6addr_any.s6_addr[0])) != 0)
-		{
-		  char addrbuf[100];
-		  inet_ntop (AF_INET6, addr, addrbuf, sizeof (addrbuf));
-		  printf ("\
-address %d after second inet6_rth_reverse wrong (%s)\n",
-			  i + 1, addrbuf);
-		  res = 1;
-		}
-	    }
-	out2:
-	  ;
-	}
-    }
-
-  return res;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/tst-inet6_scopeid_pton.c b/inet/tst-inet6_scopeid_pton.c
deleted file mode 100644
index 2178c5b4d2..0000000000
--- a/inet/tst-inet6_scopeid_pton.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/* Tests for __inet6_scopeid_pton.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <arpa/inet.h>
-#include <inttypes.h>
-#include <net-internal.h>
-#include <net/if.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-/* An interface which is known to the system.  */
-static const char *interface_name;
-static uint32_t interface_index;
-
-/* Initiale the variables above.  */
-static void
-setup_interface (void)
-{
-  struct if_nameindex *list = if_nameindex ();
-  if (list != NULL && list[0].if_index != 0 && list[0].if_name[0] != '\0')
-    {
-      interface_name = list[0].if_name;
-      interface_index = list[0].if_index;
-    }
-}
-
-/* Convert ADDRESS to struct in6_addr.  */
-static struct in6_addr
-from_string (const char *address)
-{
-  struct in6_addr addr;
-  if (inet_pton (AF_INET6, address, &addr) != 1)
-    {
-      printf ("error: inet_pton (\"%s\") failed\n", address);
-      exit (1);
-    }
-  return addr;
-}
-
-/* Check a single address were we expected a failure.  */
-static void
-expect_failure (const char *address, const char *scope)
-{
-  struct in6_addr addr = from_string (address);
-  uint32_t result = 1234;
-  if (__inet6_scopeid_pton (&addr, scope, &result) == 0)
-    {
-      printf ("error: unexpected success for %s%%%s\n",
-              address, scope);
-      exit (1);
-    }
-  if (result != 1234)
-    {
-      printf ("error: unexpected result update for %s%%%s\n",
-              address, scope);
-      exit (1);
-    }
-}
-
-/* Check a single address were we expected a success.  */
-static void
-expect_success (const char *address, const char *scope, uint32_t expected)
-{
-  struct in6_addr addr = from_string (address);
-  uint32_t actual = expected + 1;
-  if (__inet6_scopeid_pton (&addr, scope, &actual) != 0)
-    {
-      printf ("error: unexpected failure for %s%%%s\n",
-              address, scope);
-      exit (1);
-    }
-  if (actual != expected)
-    {
-      printf ("error: unexpected result for for %s%%%s\n",
-              address, scope);
-      printf ("  expected: %" PRIu32 "\n", expected);
-      printf ("  actual:   %" PRIu32 "\n", actual);
-      exit (1);
-    }
-}
-
-static int
-do_test (void)
-{
-  setup_interface ();
-
-  static const char *test_addresses[]
-    = { "::", "::1", "2001:db8::1", NULL };
-  for (int i = 0; test_addresses[i] != NULL; ++i)
-    {
-      expect_success (test_addresses[i], "0", 0);
-      expect_success (test_addresses[i], "5555", 5555);
-
-      expect_failure (test_addresses[i], "");
-      expect_failure (test_addresses[i], "-1");
-      expect_failure (test_addresses[i], "-99");
-      expect_failure (test_addresses[i], "037777777777");
-      expect_failure (test_addresses[i], "0x");
-      expect_failure (test_addresses[i], "0x1");
-    }
-
-  if (interface_name != NULL)
-    {
-      expect_success ("fe80::1", interface_name, interface_index);
-      expect_success ("ff02::1", interface_name, interface_index);
-      expect_failure ("::", interface_name);
-      expect_failure ("::1", interface_name);
-      expect_failure ("ff01::1", interface_name);
-      expect_failure ("2001:db8::1", interface_name);
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/tst-network.c b/inet/tst-network.c
deleted file mode 100644
index 825b0cbc48..0000000000
--- a/inet/tst-network.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Test for inet_network.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Andreas Jaeger <aj@suse.de>, 2000.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdio.h>
-#include <stdint.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-struct
-{
-  const char *network;
-  uint32_t number;
-} tests [] =
-{
-  {"1.0.0.0", 0x1000000},
-  {"1.0.0", 0x10000},
-  {"1.0", 0x100},
-  {"1", 0x1},
-  {"192.168.0.0", 0xC0A80000},
-  {"0", 0},
-  {"0x0", 0},
-  /* Now some invalid addresses.  */
-  {"0x", INADDR_NONE},
-  {"1 bar", INADDR_NONE}, /* Bug 15277.  */
-  {"141.30.225.2800", INADDR_NONE},
-  {"141.76.1.1.1", INADDR_NONE},
-  {"141.76.1.11.", INADDR_NONE},
-  {"1410", INADDR_NONE},
-  {"1.1410", INADDR_NONE},
-  {"1.1410.", INADDR_NONE},
-  {"1.1410", INADDR_NONE},
-  {"141.76.1111", INADDR_NONE},
-  {"141.76.1111.", INADDR_NONE}
-};
-
-
-static int
-do_test (void)
-{
-  int errors = 0;
-  size_t i;
-  uint32_t res;
-
-  for (i = 0; i < sizeof (tests) / sizeof (tests[0]); ++i)
-    {
-      printf ("Testing: %s\n", tests[i].network);
-      res = inet_network (tests[i].network);
-
-      if (res != tests[i].number)
-	{
-	  ++errors;
-	  printf ("Test failed for inet_network (\"%s\"):\n",
-		  tests[i].network);
-	  printf ("Expected return value %u (0x%x) but got %u (0x%x).\n",
-		  tests[i].number, tests[i].number, res, res);
-	}
-
-    }
-
-  return errors != 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/tst-ntoa.c b/inet/tst-ntoa.c
deleted file mode 100644
index ef82d4d537..0000000000
--- a/inet/tst-ntoa.c
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <arpa/inet.h>
-#include <netinet/in.h>
-
-
-static int
-test (unsigned int inaddr, const char *expected)
-{
-  struct in_addr addr;
-  char *res;
-  int fail;
-
-  addr.s_addr = htonl (inaddr);
-  res = inet_ntoa (addr);
-  fail = strcmp (res, expected);
-
-  printf ("%#010x -> \"%s\" -> %s%s\n", inaddr, res,
-	  fail ? "fail, expected" : "ok", fail ? expected : "");
-
-  return fail;
-}
-
-
-static int
-do_test (void)
-{
-  int result = 0;
-
-  result |= test (INADDR_LOOPBACK, "127.0.0.1");
-  result |= test (INADDR_BROADCAST, "255.255.255.255");
-  result |= test (INADDR_ANY, "0.0.0.0");
-  result |= test (0xc0060746, "192.6.7.70");
-
-  return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/tst-sockaddr.c b/inet/tst-sockaddr.c
deleted file mode 100644
index dccc3dac0c..0000000000
--- a/inet/tst-sockaddr.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Tests for socket address type definitions.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <netinet/in.h>
-#include <stdbool.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-
-/* This is a copy of the previous definition of struct
-   sockaddr_storage.  It is not equal to the old value of _SS_SIZE
-   (128) on all architectures.  We must stay compatible with the old
-   definition.  */
-
-#define OLD_REFERENCE_SIZE 128
-#define OLD_PADSIZE (OLD_REFERENCE_SIZE - (2 * sizeof (__ss_aligntype)))
-struct sockaddr_storage_old
-  {
-    __SOCKADDR_COMMON (old_);
-    __ss_aligntype old_align;
-    char old_padding[OLD_PADSIZE];
-  };
-
-static bool errors;
-
-static void
-check (bool ok, const char *message)
-{
-  if (!ok)
-    {
-      printf ("error: failed check: %s\n", message);
-      errors = true;
-    }
-}
-
-static int
-do_test (void)
-{
-  check (OLD_REFERENCE_SIZE >= _SS_SIZE,
-         "old target size is not smaller than actual size");
-  check (sizeof (struct sockaddr_storage_old)
-         == sizeof (struct sockaddr_storage),
-         "old and new sizes match");
-  check (__alignof (struct sockaddr_storage_old)
-         == __alignof (struct sockaddr_storage),
-         "old and new alignment matches");
-  check (offsetof (struct sockaddr_storage_old, old_family)
-         == offsetof (struct sockaddr_storage, ss_family),
-         "old and new family offsets match");
-  check (sizeof (struct sockaddr_storage) == _SS_SIZE,
-         "struct sockaddr_storage size");
-
-  /* Check for lack of holes in the struct definition.   */
-  check (offsetof (struct sockaddr_storage, __ss_padding)
-         == __SOCKADDR_COMMON_SIZE,
-         "implicit padding before explicit padding");
-  check (offsetof (struct sockaddr_storage, __ss_align)
-         == __SOCKADDR_COMMON_SIZE
-           + sizeof (((struct sockaddr_storage) {}).__ss_padding),
-         "implicit padding before explicit padding");
-
-  /* Check for POSIX compatibility requirements between struct
-     sockaddr_storage and struct sockaddr_un.  */
-  check (sizeof (struct sockaddr_storage) >= sizeof (struct sockaddr_un),
-         "sockaddr_storage is at least as large as sockaddr_un");
-  check (__alignof (struct sockaddr_storage)
-         >= __alignof (struct sockaddr_un),
-         "sockaddr_storage is at least as aligned as sockaddr_un");
-  check (offsetof (struct sockaddr_storage, ss_family)
-         == offsetof (struct sockaddr_un, sun_family),
-         "family offsets match");
-
-  /* Check that the compiler preserves bit patterns in aggregate
-     copies.  Based on <https://gcc.gnu.org/PR71120>.  */
-  check (sizeof (struct sockaddr_storage) >= sizeof (struct sockaddr_in),
-         "sockaddr_storage is at least as large as sockaddr_in");
-  {
-    struct sockaddr_storage addr;
-    memset (&addr, 0, sizeof (addr));
-    {
-      struct sockaddr_in *sinp = (struct sockaddr_in *)&addr;
-      sinp->sin_family = AF_INET;
-      sinp->sin_addr.s_addr = htonl (INADDR_LOOPBACK);
-      sinp->sin_port = htons (80);
-    }
-    struct sockaddr_storage copy;
-    copy = addr;
-
-    struct sockaddr_storage *p = malloc (sizeof (*p));
-    if (p == NULL)
-      {
-        printf ("error: malloc: %m\n");
-        return 1;
-      }
-    *p = copy;
-    const struct sockaddr_in *sinp = (const struct sockaddr_in *)p;
-    check (sinp->sin_family == AF_INET, "sin_family");
-    check (sinp->sin_addr.s_addr == htonl (INADDR_LOOPBACK), "sin_addr");
-    check (sinp->sin_port == htons (80), "sin_port");
-    free (p);
-  }
-
-  return errors;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"