about summary refs log tree commit diff
path: root/REORG.TODO/include
diff options
context:
space:
mode:
Diffstat (limited to 'REORG.TODO/include')
-rw-r--r--REORG.TODO/include/aio.h14
-rw-r--r--REORG.TODO/include/aliases.h40
-rw-r--r--REORG.TODO/include/alloca.h80
-rw-r--r--REORG.TODO/include/argp.h1
-rw-r--r--REORG.TODO/include/argz.h12
-rw-r--r--REORG.TODO/include/arpa/ftp.h1
-rw-r--r--REORG.TODO/include/arpa/inet.h15
-rw-r--r--REORG.TODO/include/arpa/nameser.h83
-rw-r--r--REORG.TODO/include/arpa/nameser_compat.h11
-rw-r--r--REORG.TODO/include/arpa/telnet.h1
-rw-r--r--REORG.TODO/include/arpa/tftp.h1
-rw-r--r--REORG.TODO/include/assert.h27
-rw-r--r--REORG.TODO/include/atomic.h829
-rw-r--r--REORG.TODO/include/bits/cmathcalls.h1
-rw-r--r--REORG.TODO/include/bits/dlfcn.h5
-rw-r--r--REORG.TODO/include/bits/error.h1
-rw-r--r--REORG.TODO/include/bits/fcntl2.h1
-rw-r--r--REORG.TODO/include/bits/getopt_core.h1
-rw-r--r--REORG.TODO/include/bits/getopt_ext.h1
-rw-r--r--REORG.TODO/include/bits/getopt_posix.h1
-rw-r--r--REORG.TODO/include/bits/locale.h1
-rw-r--r--REORG.TODO/include/bits/mathcalls-helper-functions.h1
-rw-r--r--REORG.TODO/include/bits/mathcalls.h1
-rw-r--r--REORG.TODO/include/bits/poll2.h1
-rw-r--r--REORG.TODO/include/bits/posix1_lim.h1
-rw-r--r--REORG.TODO/include/bits/posix2_lim.h1
-rw-r--r--REORG.TODO/include/bits/select2.h1
-rw-r--r--REORG.TODO/include/bits/setjmp2.h1
-rw-r--r--REORG.TODO/include/bits/socket2.h1
-rw-r--r--REORG.TODO/include/bits/stab.def1
-rw-r--r--REORG.TODO/include/bits/stdlib-float.h8
-rw-r--r--REORG.TODO/include/bits/stdlib.h1
-rw-r--r--REORG.TODO/include/bits/string2.h1
-rw-r--r--REORG.TODO/include/bits/string3.h1
-rw-r--r--REORG.TODO/include/bits/strings_fortified.h1
-rw-r--r--REORG.TODO/include/bits/syslog.h1
-rw-r--r--REORG.TODO/include/bits/types.h1
-rw-r--r--REORG.TODO/include/bits/types/FILE.h1
-rw-r--r--REORG.TODO/include/bits/types/__FILE.h1
-rw-r--r--REORG.TODO/include/bits/types/__mbstate_t.h1
-rw-r--r--REORG.TODO/include/bits/types/clock_t.h1
-rw-r--r--REORG.TODO/include/bits/types/clockid_t.h1
-rw-r--r--REORG.TODO/include/bits/types/mbstate_t.h1
-rw-r--r--REORG.TODO/include/bits/types/res_state.h1
-rw-r--r--REORG.TODO/include/bits/types/sig_atomic_t.h1
-rw-r--r--REORG.TODO/include/bits/types/sigset_t.h1
-rw-r--r--REORG.TODO/include/bits/types/sigval_t.h1
-rw-r--r--REORG.TODO/include/bits/types/struct_iovec.h1
-rw-r--r--REORG.TODO/include/bits/types/struct_itimerspec.h1
-rw-r--r--REORG.TODO/include/bits/types/struct_osockaddr.h1
-rw-r--r--REORG.TODO/include/bits/types/struct_sigstack.h1
-rw-r--r--REORG.TODO/include/bits/types/struct_timespec.h1
-rw-r--r--REORG.TODO/include/bits/types/struct_timeval.h1
-rw-r--r--REORG.TODO/include/bits/types/struct_tm.h1
-rw-r--r--REORG.TODO/include/bits/types/time_t.h1
-rw-r--r--REORG.TODO/include/bits/types/timer_t.h1
-rw-r--r--REORG.TODO/include/bits/types/wint_t.h1
-rw-r--r--REORG.TODO/include/bits/unistd.h1
-rw-r--r--REORG.TODO/include/bits/wchar2.h1
-rw-r--r--REORG.TODO/include/bits/wctype-wchar.h1
-rw-r--r--REORG.TODO/include/bits/xopen_lim.h145
-rw-r--r--REORG.TODO/include/byteswap.h1
-rw-r--r--REORG.TODO/include/caller.h31
-rw-r--r--REORG.TODO/include/complex.h16
-rw-r--r--REORG.TODO/include/cpio.h1
-rw-r--r--REORG.TODO/include/crypt.h3
-rw-r--r--REORG.TODO/include/ctype.h67
-rw-r--r--REORG.TODO/include/des.h1
-rw-r--r--REORG.TODO/include/dirent.h88
-rw-r--r--REORG.TODO/include/dlfcn.h140
-rw-r--r--REORG.TODO/include/elf.h17
-rw-r--r--REORG.TODO/include/endian.h17
-rw-r--r--REORG.TODO/include/envz.h11
-rw-r--r--REORG.TODO/include/err.h14
-rw-r--r--REORG.TODO/include/errno.h52
-rw-r--r--REORG.TODO/include/error.h1
-rw-r--r--REORG.TODO/include/execinfo.h16
-rw-r--r--REORG.TODO/include/fcntl.h41
-rw-r--r--REORG.TODO/include/features.h450
-rw-r--r--REORG.TODO/include/fenv.h47
-rw-r--r--REORG.TODO/include/float.h31
-rw-r--r--REORG.TODO/include/fmtmsg.h1
-rw-r--r--REORG.TODO/include/fnmatch.h9
-rw-r--r--REORG.TODO/include/fpu_control.h10
-rw-r--r--REORG.TODO/include/ftw.h1
-rw-r--r--REORG.TODO/include/gconv.h1
-rw-r--r--REORG.TODO/include/getopt.h1
-rw-r--r--REORG.TODO/include/getopt_int.h1
-rw-r--r--REORG.TODO/include/glob.h17
-rw-r--r--REORG.TODO/include/gmp.h35
-rw-r--r--REORG.TODO/include/gnu-versions.h52
-rw-r--r--REORG.TODO/include/gnu/libc-version.h34
-rw-r--r--REORG.TODO/include/gnu/stubs.h2
-rw-r--r--REORG.TODO/include/grp-merge.h7
-rw-r--r--REORG.TODO/include/grp.h64
-rw-r--r--REORG.TODO/include/gshadow.h18
-rw-r--r--REORG.TODO/include/iconv.h1
-rw-r--r--REORG.TODO/include/ifaddrs.h37
-rw-r--r--REORG.TODO/include/ifunc-impl-list.h56
-rw-r--r--REORG.TODO/include/inline-hashtab.h234
-rw-r--r--REORG.TODO/include/langinfo.h12
-rw-r--r--REORG.TODO/include/libc-diag.h74
-rw-r--r--REORG.TODO/include/libc-internal.h56
-rw-r--r--REORG.TODO/include/libc-pointer-arith.h60
-rw-r--r--REORG.TODO/include/libc-symbols.h969
-rw-r--r--REORG.TODO/include/libgen.h1
-rw-r--r--REORG.TODO/include/libintl.h53
-rw-r--r--REORG.TODO/include/libio.h45
-rw-r--r--REORG.TODO/include/limits.h192
-rw-r--r--REORG.TODO/include/link.h351
-rw-r--r--REORG.TODO/include/list.h99
-rw-r--r--REORG.TODO/include/list_t.h31
-rw-r--r--REORG.TODO/include/locale.h26
-rw-r--r--REORG.TODO/include/malloc.h16
-rw-r--r--REORG.TODO/include/math.h60
-rw-r--r--REORG.TODO/include/mcheck.h11
-rw-r--r--REORG.TODO/include/memory.h1
-rw-r--r--REORG.TODO/include/mntent.h20
-rw-r--r--REORG.TODO/include/monetary.h7
-rw-r--r--REORG.TODO/include/mqueue.h13
-rw-r--r--REORG.TODO/include/net/if.h16
-rw-r--r--REORG.TODO/include/netdb.h284
-rw-r--r--REORG.TODO/include/netgroup.h1
-rw-r--r--REORG.TODO/include/netinet/ether.h45
-rw-r--r--REORG.TODO/include/netinet/in.h15
-rw-r--r--REORG.TODO/include/nl_types.h1
-rw-r--r--REORG.TODO/include/nss.h17
-rw-r--r--REORG.TODO/include/nsswitch.h1
-rw-r--r--REORG.TODO/include/obstack.h9
-rw-r--r--REORG.TODO/include/poll.h1
-rw-r--r--REORG.TODO/include/printf.h20
-rw-r--r--REORG.TODO/include/programs/xmalloc.h33
-rw-r--r--REORG.TODO/include/protocols/routed.h1
-rw-r--r--REORG.TODO/include/protocols/rwhod.h1
-rw-r--r--REORG.TODO/include/protocols/talkd.h1
-rw-r--r--REORG.TODO/include/protocols/timed.h1
-rw-r--r--REORG.TODO/include/pthread.h16
-rw-r--r--REORG.TODO/include/pty.h9
-rw-r--r--REORG.TODO/include/pwd.h57
-rw-r--r--REORG.TODO/include/regex.h45
-rw-r--r--REORG.TODO/include/resolv.h99
-rw-r--r--REORG.TODO/include/rounding-mode.h65
-rw-r--r--REORG.TODO/include/rpc/auth.h47
-rw-r--r--REORG.TODO/include/rpc/auth_des.h38
-rw-r--r--REORG.TODO/include/rpc/auth_unix.h9
-rw-r--r--REORG.TODO/include/rpc/clnt.h33
-rw-r--r--REORG.TODO/include/rpc/des_crypt.h18
-rw-r--r--REORG.TODO/include/rpc/key_prot.h18
-rw-r--r--REORG.TODO/include/rpc/netdb.h54
-rw-r--r--REORG.TODO/include/rpc/pmap_clnt.h24
-rw-r--r--REORG.TODO/include/rpc/pmap_prot.h10
-rw-r--r--REORG.TODO/include/rpc/pmap_rmt.h10
-rw-r--r--REORG.TODO/include/rpc/rpc.h69
-rw-r--r--REORG.TODO/include/rpc/rpc_msg.h20
-rw-r--r--REORG.TODO/include/rpc/svc.h43
-rw-r--r--REORG.TODO/include/rpc/svc_auth.h15
-rw-r--r--REORG.TODO/include/rpc/types.h1
-rw-r--r--REORG.TODO/include/rpc/xdr.h53
-rw-r--r--REORG.TODO/include/rpcsvc/nis.h1
-rw-r--r--REORG.TODO/include/rpcsvc/nis_callback.h10
-rw-r--r--REORG.TODO/include/rpcsvc/nis_tags.h1
-rw-r--r--REORG.TODO/include/rpcsvc/nislib.h83
-rw-r--r--REORG.TODO/include/rpcsvc/yp.h33
-rw-r--r--REORG.TODO/include/rpcsvc/ypclnt.h22
-rw-r--r--REORG.TODO/include/rpcsvc/ypupd.h11
-rw-r--r--REORG.TODO/include/sched.h27
-rw-r--r--REORG.TODO/include/scratch_buffer.h136
-rw-r--r--REORG.TODO/include/search.h28
-rw-r--r--REORG.TODO/include/set-hooks.h70
-rw-r--r--REORG.TODO/include/setjmp.h33
-rw-r--r--REORG.TODO/include/sgtty.h1
-rw-r--r--REORG.TODO/include/shadow.h53
-rw-r--r--REORG.TODO/include/shlib-compat.h100
-rw-r--r--REORG.TODO/include/signal.h62
-rw-r--r--REORG.TODO/include/spawn.h1
-rw-r--r--REORG.TODO/include/stab.h1
-rw-r--r--REORG.TODO/include/stackinfo.h42
-rw-r--r--REORG.TODO/include/stap-probe.h77
-rw-r--r--REORG.TODO/include/stdc-predef.h62
-rw-r--r--REORG.TODO/include/stdio.h185
-rw-r--r--REORG.TODO/include/stdio_ext.h23
-rw-r--r--REORG.TODO/include/stdlib.h268
-rw-r--r--REORG.TODO/include/string.h192
-rw-r--r--REORG.TODO/include/strings.h1
-rw-r--r--REORG.TODO/include/stropts.h1
-rw-r--r--REORG.TODO/include/stubs-prologue.h14
-rw-r--r--REORG.TODO/include/sys/auxv.h1
-rw-r--r--REORG.TODO/include/sys/bitypes.h1
-rw-r--r--REORG.TODO/include/sys/cdefs.h18
-rw-r--r--REORG.TODO/include/sys/dir.h1
-rw-r--r--REORG.TODO/include/sys/epoll.h9
-rw-r--r--REORG.TODO/include/sys/errno.h1
-rw-r--r--REORG.TODO/include/sys/fcntl.h1
-rw-r--r--REORG.TODO/include/sys/file.h10
-rw-r--r--REORG.TODO/include/sys/gmon.h19
-rw-r--r--REORG.TODO/include/sys/gmon_out.h1
-rw-r--r--REORG.TODO/include/sys/ioctl.h10
-rw-r--r--REORG.TODO/include/sys/ipc.h1
-rw-r--r--REORG.TODO/include/sys/mman.h25
-rw-r--r--REORG.TODO/include/sys/msg.h11
-rw-r--r--REORG.TODO/include/sys/param.h1
-rw-r--r--REORG.TODO/include/sys/poll.h11
-rw-r--r--REORG.TODO/include/sys/prctl.h9
-rw-r--r--REORG.TODO/include/sys/profil.h12
-rw-r--r--REORG.TODO/include/sys/queue.h1
-rw-r--r--REORG.TODO/include/sys/resource.h27
-rw-r--r--REORG.TODO/include/sys/select.h18
-rw-r--r--REORG.TODO/include/sys/sem.h1
-rw-r--r--REORG.TODO/include/sys/sendfile.h1
-rw-r--r--REORG.TODO/include/sys/shm.h1
-rw-r--r--REORG.TODO/include/sys/signal.h1
-rw-r--r--REORG.TODO/include/sys/socket.h158
-rw-r--r--REORG.TODO/include/sys/stat.h62
-rw-r--r--REORG.TODO/include/sys/statfs.h14
-rw-r--r--REORG.TODO/include/sys/statvfs.h12
-rw-r--r--REORG.TODO/include/sys/sysctl.h13
-rw-r--r--REORG.TODO/include/sys/sysinfo.h24
-rw-r--r--REORG.TODO/include/sys/syslog.h11
-rw-r--r--REORG.TODO/include/sys/sysmacros.h1
-rw-r--r--REORG.TODO/include/sys/termios.h1
-rw-r--r--REORG.TODO/include/sys/time.h43
-rw-r--r--REORG.TODO/include/sys/timeb.h1
-rw-r--r--REORG.TODO/include/sys/times.h8
-rw-r--r--REORG.TODO/include/sys/types.h1
-rw-r--r--REORG.TODO/include/sys/uio.h17
-rw-r--r--REORG.TODO/include/sys/un.h1
-rw-r--r--REORG.TODO/include/sys/unistd.h1
-rw-r--r--REORG.TODO/include/sys/utsname.h14
-rw-r--r--REORG.TODO/include/sys/vlimit.h1
-rw-r--r--REORG.TODO/include/sys/vtimes.h1
-rw-r--r--REORG.TODO/include/sys/wait.h19
-rw-r--r--REORG.TODO/include/sys/xattr.h1
-rw-r--r--REORG.TODO/include/syscall.h1
-rw-r--r--REORG.TODO/include/sysexits.h1
-rw-r--r--REORG.TODO/include/syslog.h1
-rw-r--r--REORG.TODO/include/tar.h1
-rw-r--r--REORG.TODO/include/termios.h15
-rw-r--r--REORG.TODO/include/tgmath.h1
-rw-r--r--REORG.TODO/include/time.h106
-rw-r--r--REORG.TODO/include/ttyent.h14
-rw-r--r--REORG.TODO/include/uchar.h1
-rw-r--r--REORG.TODO/include/ucontext.h1
-rw-r--r--REORG.TODO/include/ulimit.h8
-rw-r--r--REORG.TODO/include/unistd.h193
-rw-r--r--REORG.TODO/include/utime.h9
-rw-r--r--REORG.TODO/include/utmp.h24
-rw-r--r--REORG.TODO/include/values.h68
-rw-r--r--REORG.TODO/include/wchar.h220
-rw-r--r--REORG.TODO/include/wctype.h74
-rw-r--r--REORG.TODO/include/wordexp.h9
-rw-r--r--REORG.TODO/include/xlocale.h1
251 files changed, 9123 insertions, 0 deletions
diff --git a/REORG.TODO/include/aio.h b/REORG.TODO/include/aio.h
new file mode 100644
index 0000000000..90c74f9951
--- /dev/null
+++ b/REORG.TODO/include/aio.h
@@ -0,0 +1,14 @@
+#ifndef _AIO_H
+#include <rt/aio.h>
+
+#ifndef _ISOMAC
+/* Now define the internal interfaces.  */
+extern void __aio_init (const struct aioinit *__init);
+
+/* Flag to signal we need to be compatible with glibc < 2.4 in
+   lio_listio and we do not issue events for each individual list
+   element.  */
+#define LIO_NO_INDIVIDUAL_EVENT	128
+#endif
+
+#endif
diff --git a/REORG.TODO/include/aliases.h b/REORG.TODO/include/aliases.h
new file mode 100644
index 0000000000..ece69ebe43
--- /dev/null
+++ b/REORG.TODO/include/aliases.h
@@ -0,0 +1,40 @@
+#ifndef _ALIASES_H
+#include <inet/aliases.h>
+
+# ifndef _ISOMAC
+
+extern int __getaliasent_r (struct aliasent *__restrict __result_buf,
+			    char *__restrict __buffer, size_t __buflen,
+			    struct aliasent **__restrict __result)
+     attribute_hidden;
+extern int __old_getaliasent_r (struct aliasent *__restrict __result_buf,
+				char *__restrict __buffer, size_t __buflen,
+				struct aliasent **__restrict __result);
+
+extern int __getaliasbyname_r (const char *__restrict __name,
+			       struct aliasent *__restrict __result_buf,
+			       char *__restrict __buffer, size_t __buflen,
+			       struct aliasent **__restrict __result);
+extern int __old_getaliasbyname_r (const char *__restrict __name,
+				   struct aliasent *__restrict __result_buf,
+				   char *__restrict __buffer, size_t __buflen,
+				   struct aliasent **__restrict __result);
+
+#define DECLARE_NSS_PROTOTYPES(service)					     \
+extern enum nss_status _nss_ ## service ## _setaliasent (void);		     \
+extern enum nss_status _nss_ ## service ## _endaliasent (void);		     \
+extern enum nss_status _nss_ ## service ## _getaliasent_r		     \
+		       (struct aliasent *alias, char *buffer, size_t buflen, \
+			int *errnop);					     \
+extern enum nss_status _nss_ ## service ## _getaliasbyname_r		     \
+		       (const char *name, struct aliasent *alias,	     \
+			char *buffer, size_t buflen, int *errnop);
+
+
+DECLARE_NSS_PROTOTYPES (files)
+DECLARE_NSS_PROTOTYPES (nis)
+DECLARE_NSS_PROTOTYPES (nisplus)
+#undef DECLARE_NSS_PROTOTYPES
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/alloca.h b/REORG.TODO/include/alloca.h
new file mode 100644
index 0000000000..fd90664f0a
--- /dev/null
+++ b/REORG.TODO/include/alloca.h
@@ -0,0 +1,80 @@
+#ifndef _ALLOCA_H
+
+#include <stdlib/alloca.h>
+
+# ifndef _ISOMAC
+
+#include <stackinfo.h>
+
+#undef	__alloca
+
+/* Now define the internal interfaces.  */
+extern void *__alloca (size_t __size);
+
+#ifdef	__GNUC__
+# define __alloca(size)	__builtin_alloca (size)
+#endif /* GCC.  */
+
+extern int __libc_use_alloca (size_t size) __attribute__ ((const));
+extern int __libc_alloca_cutoff (size_t size) __attribute__ ((const));
+libc_hidden_proto (__libc_alloca_cutoff)
+
+#define __MAX_ALLOCA_CUTOFF	65536
+
+#include <allocalim.h>
+
+#ifndef stackinfo_alloca_round
+# define stackinfo_alloca_round(l) (((l) + 15) & -16)
+#endif
+
+#if _STACK_GROWS_DOWN
+# define extend_alloca(buf, len, newlen) \
+  (__typeof (buf)) ({ size_t __newlen = stackinfo_alloca_round (newlen);      \
+		      char *__newbuf = __alloca (__newlen);		      \
+		      if (__newbuf + __newlen == (char *) (buf))	      \
+			len += __newlen;				      \
+		      else						      \
+			len = __newlen;					      \
+		      __newbuf; })
+#elif _STACK_GROWS_UP
+# define extend_alloca(buf, len, newlen) \
+  (__typeof (buf)) ({ size_t __newlen = stackinfo_alloca_round (newlen);      \
+		      char *__newbuf = __alloca (__newlen);		      \
+		      char *__buf = (char *) (buf);			      \
+		      if (__buf + len == __newbuf)			      \
+			{						      \
+			  len += __newlen;				      \
+			  __newbuf = __buf;				      \
+			}						      \
+		      else						      \
+			len = __newlen;					      \
+		      __newbuf; })
+#else
+# define extend_alloca(buf, len, newlen) \
+  __alloca (((len) = (newlen)))
+#endif
+
+#if defined stackinfo_get_sp && defined stackinfo_sub_sp
+# define alloca_account(size, avar) \
+  ({ void *old__ = stackinfo_get_sp ();					      \
+     void *m__ = __alloca (size);					      \
+     avar += stackinfo_sub_sp (old__);					      \
+     m__; })
+# define extend_alloca_account(buf, len, newlen, avar) \
+  ({ void *old__ = stackinfo_get_sp ();					      \
+     void *m__ = extend_alloca (buf, len, newlen);			      \
+     avar += stackinfo_sub_sp (old__);					      \
+     m__; })
+#else
+# define alloca_account(size, avar) \
+  ({ size_t s__ = (size);						      \
+     avar += s__;							      \
+     __alloca (s__); })
+# define extend_alloca_account(buf, len, newlen, avar) \
+  ({ size_t s__ = (newlen);						      \
+     avar += s__;							      \
+     extend_alloca (buf, len, s__); })
+#endif
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/argp.h b/REORG.TODO/include/argp.h
new file mode 100644
index 0000000000..92be5f90f1
--- /dev/null
+++ b/REORG.TODO/include/argp.h
@@ -0,0 +1 @@
+#include <argp/argp.h>
diff --git a/REORG.TODO/include/argz.h b/REORG.TODO/include/argz.h
new file mode 100644
index 0000000000..0388c23277
--- /dev/null
+++ b/REORG.TODO/include/argz.h
@@ -0,0 +1,12 @@
+#ifndef _ARGZ_H
+
+#include <string/argz.h>
+
+# ifndef _ISOMAC
+
+libc_hidden_proto (argz_delete)
+libc_hidden_proto (__argz_count)
+libc_hidden_proto (__argz_stringify)
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/arpa/ftp.h b/REORG.TODO/include/arpa/ftp.h
new file mode 100644
index 0000000000..c716d68156
--- /dev/null
+++ b/REORG.TODO/include/arpa/ftp.h
@@ -0,0 +1 @@
+#include <inet/arpa/ftp.h>
diff --git a/REORG.TODO/include/arpa/inet.h b/REORG.TODO/include/arpa/inet.h
new file mode 100644
index 0000000000..c3f28f2baa
--- /dev/null
+++ b/REORG.TODO/include/arpa/inet.h
@@ -0,0 +1,15 @@
+#include <inet/arpa/inet.h>
+
+#ifndef _ISOMAC
+extern int __inet_aton (const char *__cp, struct in_addr *__inp);
+libc_hidden_proto (__inet_aton)
+
+libc_hidden_proto (inet_aton)
+libc_hidden_proto (inet_ntop)
+libc_hidden_proto (inet_pton)
+extern __typeof (inet_pton) __inet_pton;
+libc_hidden_proto (__inet_pton)
+extern __typeof (inet_makeaddr) __inet_makeaddr;
+libc_hidden_proto (__inet_makeaddr)
+libc_hidden_proto (inet_netof)
+#endif
diff --git a/REORG.TODO/include/arpa/nameser.h b/REORG.TODO/include/arpa/nameser.h
new file mode 100644
index 0000000000..7a8290e1f2
--- /dev/null
+++ b/REORG.TODO/include/arpa/nameser.h
@@ -0,0 +1,83 @@
+#ifndef _ARPA_NAMESER_H_
+
+#include <resolv/arpa/nameser.h>
+
+# ifndef _ISOMAC
+
+/* If the machine allows unaligned access we can do better than using
+   the NS_GET16, NS_GET32, NS_PUT16, and NS_PUT32 macros from the
+   installed header.  */
+#include <string.h>
+#include <stdint.h>
+#include <netinet/in.h>
+
+extern const struct _ns_flagdata _ns_flagdata[] attribute_hidden;
+
+#if _STRING_ARCH_unaligned
+
+# undef NS_GET16
+# define NS_GET16(s, cp) \
+  do {									      \
+    const uint16_t *t_cp = (const uint16_t *) (cp);			      \
+    (s) = ntohs (*t_cp);						      \
+    (cp) += NS_INT16SZ;							      \
+  } while (0)
+
+# undef NS_GET32
+# define NS_GET32(l, cp) \
+  do {									      \
+    const uint32_t *t_cp = (const uint32_t *) (cp);			      \
+    (l) = ntohl (*t_cp);						      \
+    (cp) += NS_INT32SZ;							      \
+  } while (0)
+
+# undef NS_PUT16
+# define NS_PUT16(s, cp) \
+  do {									      \
+    uint16_t *t_cp = (uint16_t *) (cp);					      \
+    *t_cp = htons (s);							      \
+    (cp) += NS_INT16SZ;							      \
+  } while (0)
+
+# undef NS_PUT32
+# define NS_PUT32(l, cp) \
+  do {									      \
+    uint32_t *t_cp = (uint32_t *) (cp);					      \
+    *t_cp = htonl (l);							      \
+    (cp) += NS_INT32SZ;							      \
+  } while (0)
+
+#endif
+
+extern unsigned int	__ns_get16 (const unsigned char *) __THROW;
+extern unsigned long	__ns_get32 (const unsigned char *) __THROW;
+int __ns_name_ntop (const unsigned char *, char *, size_t) __THROW;
+int __ns_name_unpack (const unsigned char *, const unsigned char *,
+		      const unsigned char *, unsigned char *, size_t) __THROW;
+
+#define ns_msg_getflag(handle, flag) \
+  (((handle)._flags & _ns_flagdata[flag].mask) >> _ns_flagdata[flag].shift)
+
+libresolv_hidden_proto (ns_get16)
+libresolv_hidden_proto (ns_get32)
+libresolv_hidden_proto (ns_put16)
+libresolv_hidden_proto (ns_put32)
+libresolv_hidden_proto (ns_initparse)
+libresolv_hidden_proto (ns_skiprr)
+libresolv_hidden_proto (ns_parserr)
+libresolv_hidden_proto (ns_name_ntop)
+libresolv_hidden_proto (ns_name_pton)
+libresolv_hidden_proto (ns_name_pack)
+libresolv_hidden_proto (ns_name_skip)
+libresolv_hidden_proto (ns_name_unpack)
+libresolv_hidden_proto (ns_name_compress)
+libresolv_hidden_proto (ns_name_uncompress)
+libresolv_hidden_proto (ns_sprintrr)
+libresolv_hidden_proto (ns_sprintrrf)
+libresolv_hidden_proto (ns_samedomain)
+libresolv_hidden_proto (ns_samename)
+libresolv_hidden_proto (ns_makecanon)
+libresolv_hidden_proto (ns_format_ttl)
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/arpa/nameser_compat.h b/REORG.TODO/include/arpa/nameser_compat.h
new file mode 100644
index 0000000000..f7d0e043c6
--- /dev/null
+++ b/REORG.TODO/include/arpa/nameser_compat.h
@@ -0,0 +1,11 @@
+#ifndef _ARPA_NAMESER_COMPAT_
+#include <resolv/arpa/nameser_compat.h>
+
+# ifndef _ISOMAC
+
+/* The number is outside the 16-bit RR type range and is used
+   internally by the implementation.  */
+#define T_QUERY_A_AND_AAAA 439963904
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/arpa/telnet.h b/REORG.TODO/include/arpa/telnet.h
new file mode 100644
index 0000000000..742c04cfe3
--- /dev/null
+++ b/REORG.TODO/include/arpa/telnet.h
@@ -0,0 +1 @@
+#include <inet/arpa/telnet.h>
diff --git a/REORG.TODO/include/arpa/tftp.h b/REORG.TODO/include/arpa/tftp.h
new file mode 100644
index 0000000000..21d5197f24
--- /dev/null
+++ b/REORG.TODO/include/arpa/tftp.h
@@ -0,0 +1 @@
+#include <inet/arpa/tftp.h>
diff --git a/REORG.TODO/include/assert.h b/REORG.TODO/include/assert.h
new file mode 100644
index 0000000000..c452667956
--- /dev/null
+++ b/REORG.TODO/include/assert.h
@@ -0,0 +1,27 @@
+#include <assert/assert.h>
+
+#ifndef _ISOMAC
+/* This prints an "Assertion failed" message and aborts.
+   In installed assert.h this is only conditionally declared,
+   so it has to be repeated here.  */
+extern void __assert_fail (const char *__assertion, const char *__file,
+			   unsigned int __line, const char *__function)
+     __THROW __attribute__ ((__noreturn__));
+
+/* Likewise, but prints the error text for ERRNUM.  */
+extern void __assert_perror_fail (int __errnum, const char *__file,
+				  unsigned int __line,
+				  const char *__function)
+     __THROW __attribute__ ((__noreturn__));
+
+/* The real implementation of the two functions above.  */
+extern void __assert_fail_base (const char *fmt, const char *assertion,
+				const char *file, unsigned int line,
+				const char *function)
+     __THROW  __attribute__ ((__noreturn__));
+
+# if IS_IN (libc) || IS_IN (rtld)
+hidden_proto (__assert_fail)
+hidden_proto (__assert_perror_fail)
+# endif
+#endif
diff --git a/REORG.TODO/include/atomic.h b/REORG.TODO/include/atomic.h
new file mode 100644
index 0000000000..d002b117bf
--- /dev/null
+++ b/REORG.TODO/include/atomic.h
@@ -0,0 +1,829 @@
+/* Internal macros for atomic operations for GNU C Library.
+   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+
+   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 _ATOMIC_H
+#define _ATOMIC_H	1
+
+/* This header defines three types of macros:
+
+   - atomic arithmetic and logic operation on memory.  They all
+     have the prefix "atomic_".
+
+   - conditionally atomic operations of the same kinds.  These
+     always behave identical but can be faster when atomicity
+     is not really needed since only one thread has access to
+     the memory location.  In that case the code is slower in
+     the multi-thread case.  The interfaces have the prefix
+     "catomic_".
+
+   - support functions like barriers.  They also have the prefix
+     "atomic_".
+
+   Architectures must provide a few lowlevel macros (the compare
+   and exchange definitions).  All others are optional.  They
+   should only be provided if the architecture has specific
+   support for the operation.
+
+   As <atomic.h> macros are usually heavily nested and often use local
+   variables to make sure side-effects are evaluated properly, use for
+   macro local variables a per-macro unique prefix.  This file uses
+   __atgN_ prefix where N is different in each macro.  */
+
+#include <stdlib.h>
+
+#include <atomic-machine.h>
+
+/* Wrapper macros to call pre_NN_post (mem, ...) where NN is the
+   bit width of *MEM.  The calling macro puts parens around MEM
+   and following args.  */
+#define __atomic_val_bysize(pre, post, mem, ...)			      \
+  ({									      \
+    __typeof ((__typeof (*(mem))) *(mem)) __atg1_result;		      \
+    if (sizeof (*mem) == 1)						      \
+      __atg1_result = pre##_8_##post (mem, __VA_ARGS__);		      \
+    else if (sizeof (*mem) == 2)					      \
+      __atg1_result = pre##_16_##post (mem, __VA_ARGS__);		      \
+    else if (sizeof (*mem) == 4)					      \
+      __atg1_result = pre##_32_##post (mem, __VA_ARGS__);		      \
+    else if (sizeof (*mem) == 8)					      \
+      __atg1_result = pre##_64_##post (mem, __VA_ARGS__);		      \
+    else								      \
+      abort ();								      \
+    __atg1_result;							      \
+  })
+#define __atomic_bool_bysize(pre, post, mem, ...)			      \
+  ({									      \
+    int __atg2_result;							      \
+    if (sizeof (*mem) == 1)						      \
+      __atg2_result = pre##_8_##post (mem, __VA_ARGS__);		      \
+    else if (sizeof (*mem) == 2)					      \
+      __atg2_result = pre##_16_##post (mem, __VA_ARGS__);		      \
+    else if (sizeof (*mem) == 4)					      \
+      __atg2_result = pre##_32_##post (mem, __VA_ARGS__);		      \
+    else if (sizeof (*mem) == 8)					      \
+      __atg2_result = pre##_64_##post (mem, __VA_ARGS__);		      \
+    else								      \
+      abort ();								      \
+    __atg2_result;							      \
+  })
+
+
+/* Atomically store NEWVAL in *MEM if *MEM is equal to OLDVAL.
+   Return the old *MEM value.  */
+#if !defined atomic_compare_and_exchange_val_acq \
+    && defined __arch_compare_and_exchange_val_32_acq
+# define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
+  __atomic_val_bysize (__arch_compare_and_exchange_val,acq,		      \
+		       mem, newval, oldval)
+#endif
+
+
+#ifndef catomic_compare_and_exchange_val_acq
+# ifdef __arch_c_compare_and_exchange_val_32_acq
+#  define catomic_compare_and_exchange_val_acq(mem, newval, oldval) \
+  __atomic_val_bysize (__arch_c_compare_and_exchange_val,acq,		      \
+		       mem, newval, oldval)
+# else
+#  define catomic_compare_and_exchange_val_acq(mem, newval, oldval) \
+  atomic_compare_and_exchange_val_acq (mem, newval, oldval)
+# endif
+#endif
+
+
+#ifndef catomic_compare_and_exchange_val_rel
+# ifndef atomic_compare_and_exchange_val_rel
+#  define catomic_compare_and_exchange_val_rel(mem, newval, oldval)	      \
+  catomic_compare_and_exchange_val_acq (mem, newval, oldval)
+# else
+#  define catomic_compare_and_exchange_val_rel(mem, newval, oldval)	      \
+  atomic_compare_and_exchange_val_rel (mem, newval, oldval)
+# endif
+#endif
+
+
+#ifndef atomic_compare_and_exchange_val_rel
+# define atomic_compare_and_exchange_val_rel(mem, newval, oldval)	      \
+  atomic_compare_and_exchange_val_acq (mem, newval, oldval)
+#endif
+
+
+/* Atomically store NEWVAL in *MEM if *MEM is equal to OLDVAL.
+   Return zero if *MEM was changed or non-zero if no exchange happened.  */
+#ifndef atomic_compare_and_exchange_bool_acq
+# ifdef __arch_compare_and_exchange_bool_32_acq
+#  define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
+  __atomic_bool_bysize (__arch_compare_and_exchange_bool,acq,		      \
+		        mem, newval, oldval)
+# else
+#  define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
+  ({ /* Cannot use __oldval here, because macros later in this file might     \
+	call this macro with __oldval argument.	 */			      \
+     __typeof (oldval) __atg3_old = (oldval);				      \
+     atomic_compare_and_exchange_val_acq (mem, newval, __atg3_old)	      \
+       != __atg3_old;							      \
+  })
+# endif
+#endif
+
+
+#ifndef catomic_compare_and_exchange_bool_acq
+# ifdef __arch_c_compare_and_exchange_bool_32_acq
+#  define catomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
+  __atomic_bool_bysize (__arch_c_compare_and_exchange_bool,acq,		      \
+		        mem, newval, oldval)
+# else
+#  define catomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
+  ({ /* Cannot use __oldval here, because macros later in this file might     \
+	call this macro with __oldval argument.	 */			      \
+     __typeof (oldval) __atg4_old = (oldval);				      \
+     catomic_compare_and_exchange_val_acq (mem, newval, __atg4_old)	      \
+       != __atg4_old;							      \
+  })
+# endif
+#endif
+
+
+/* Store NEWVALUE in *MEM and return the old value.  */
+#ifndef atomic_exchange_acq
+# define atomic_exchange_acq(mem, newvalue) \
+  ({ __typeof ((__typeof (*(mem))) *(mem)) __atg5_oldval;		      \
+     __typeof (mem) __atg5_memp = (mem);				      \
+     __typeof ((__typeof (*(mem))) *(mem)) __atg5_value = (newvalue);	      \
+									      \
+     do									      \
+       __atg5_oldval = *__atg5_memp;					      \
+     while (__builtin_expect						      \
+	    (atomic_compare_and_exchange_bool_acq (__atg5_memp, __atg5_value, \
+						   __atg5_oldval), 0));	      \
+									      \
+     __atg5_oldval; })
+#endif
+
+#ifndef atomic_exchange_rel
+# define atomic_exchange_rel(mem, newvalue) atomic_exchange_acq (mem, newvalue)
+#endif
+
+
+/* Add VALUE to *MEM and return the old value of *MEM.  */
+#ifndef atomic_exchange_and_add_acq
+# ifdef atomic_exchange_and_add
+#  define atomic_exchange_and_add_acq(mem, value) \
+  atomic_exchange_and_add (mem, value)
+# else
+#  define atomic_exchange_and_add_acq(mem, value) \
+  ({ __typeof (*(mem)) __atg6_oldval;					      \
+     __typeof (mem) __atg6_memp = (mem);				      \
+     __typeof (*(mem)) __atg6_value = (value);				      \
+									      \
+     do									      \
+       __atg6_oldval = *__atg6_memp;					      \
+     while (__builtin_expect						      \
+	    (atomic_compare_and_exchange_bool_acq (__atg6_memp,		      \
+						   __atg6_oldval	      \
+						   + __atg6_value,	      \
+						   __atg6_oldval), 0));	      \
+									      \
+     __atg6_oldval; })
+# endif
+#endif
+
+#ifndef atomic_exchange_and_add_rel
+# define atomic_exchange_and_add_rel(mem, value) \
+  atomic_exchange_and_add_acq(mem, value)
+#endif
+
+#ifndef atomic_exchange_and_add
+# define atomic_exchange_and_add(mem, value) \
+  atomic_exchange_and_add_acq(mem, value)
+#endif
+
+#ifndef catomic_exchange_and_add
+# define catomic_exchange_and_add(mem, value) \
+  ({ __typeof (*(mem)) __atg7_oldv;					      \
+     __typeof (mem) __atg7_memp = (mem);				      \
+     __typeof (*(mem)) __atg7_value = (value);				      \
+									      \
+     do									      \
+       __atg7_oldv = *__atg7_memp;					      \
+     while (__builtin_expect						      \
+	    (catomic_compare_and_exchange_bool_acq (__atg7_memp,	      \
+						    __atg7_oldv		      \
+						    + __atg7_value,	      \
+						    __atg7_oldv), 0));	      \
+									      \
+     __atg7_oldv; })
+#endif
+
+
+#ifndef atomic_max
+# define atomic_max(mem, value) \
+  do {									      \
+    __typeof (*(mem)) __atg8_oldval;					      \
+    __typeof (mem) __atg8_memp = (mem);					      \
+    __typeof (*(mem)) __atg8_value = (value);				      \
+    do {								      \
+      __atg8_oldval = *__atg8_memp;					      \
+      if (__atg8_oldval >= __atg8_value)				      \
+	break;								      \
+    } while (__builtin_expect						      \
+	     (atomic_compare_and_exchange_bool_acq (__atg8_memp, __atg8_value,\
+						    __atg8_oldval), 0));      \
+  } while (0)
+#endif
+
+
+#ifndef catomic_max
+# define catomic_max(mem, value) \
+  do {									      \
+    __typeof (*(mem)) __atg9_oldv;					      \
+    __typeof (mem) __atg9_memp = (mem);					      \
+    __typeof (*(mem)) __atg9_value = (value);				      \
+    do {								      \
+      __atg9_oldv = *__atg9_memp;					      \
+      if (__atg9_oldv >= __atg9_value)					      \
+	break;								      \
+    } while (__builtin_expect						      \
+	     (catomic_compare_and_exchange_bool_acq (__atg9_memp,	      \
+						     __atg9_value,	      \
+						     __atg9_oldv), 0));	      \
+  } while (0)
+#endif
+
+
+#ifndef atomic_min
+# define atomic_min(mem, value) \
+  do {									      \
+    __typeof (*(mem)) __atg10_oldval;					      \
+    __typeof (mem) __atg10_memp = (mem);				      \
+    __typeof (*(mem)) __atg10_value = (value);				      \
+    do {								      \
+      __atg10_oldval = *__atg10_memp;					      \
+      if (__atg10_oldval <= __atg10_value)				      \
+	break;								      \
+    } while (__builtin_expect						      \
+	     (atomic_compare_and_exchange_bool_acq (__atg10_memp,	      \
+						    __atg10_value,	      \
+						    __atg10_oldval), 0));     \
+  } while (0)
+#endif
+
+
+#ifndef atomic_add
+# define atomic_add(mem, value) (void) atomic_exchange_and_add ((mem), (value))
+#endif
+
+
+#ifndef catomic_add
+# define catomic_add(mem, value) \
+  (void) catomic_exchange_and_add ((mem), (value))
+#endif
+
+
+#ifndef atomic_increment
+# define atomic_increment(mem) atomic_add ((mem), 1)
+#endif
+
+
+#ifndef catomic_increment
+# define catomic_increment(mem) catomic_add ((mem), 1)
+#endif
+
+
+#ifndef atomic_increment_val
+# define atomic_increment_val(mem) (atomic_exchange_and_add ((mem), 1) + 1)
+#endif
+
+
+#ifndef catomic_increment_val
+# define catomic_increment_val(mem) (catomic_exchange_and_add ((mem), 1) + 1)
+#endif
+
+
+/* Add one to *MEM and return true iff it's now zero.  */
+#ifndef atomic_increment_and_test
+# define atomic_increment_and_test(mem) \
+  (atomic_exchange_and_add ((mem), 1) + 1 == 0)
+#endif
+
+
+#ifndef atomic_decrement
+# define atomic_decrement(mem) atomic_add ((mem), -1)
+#endif
+
+
+#ifndef catomic_decrement
+# define catomic_decrement(mem) catomic_add ((mem), -1)
+#endif
+
+
+#ifndef atomic_decrement_val
+# define atomic_decrement_val(mem) (atomic_exchange_and_add ((mem), -1) - 1)
+#endif
+
+
+#ifndef catomic_decrement_val
+# define catomic_decrement_val(mem) (catomic_exchange_and_add ((mem), -1) - 1)
+#endif
+
+
+/* Subtract 1 from *MEM and return true iff it's now zero.  */
+#ifndef atomic_decrement_and_test
+# define atomic_decrement_and_test(mem) \
+  (atomic_exchange_and_add ((mem), -1) == 1)
+#endif
+
+
+/* Decrement *MEM if it is > 0, and return the old value.  */
+#ifndef atomic_decrement_if_positive
+# define atomic_decrement_if_positive(mem) \
+  ({ __typeof (*(mem)) __atg11_oldval;					      \
+     __typeof (mem) __atg11_memp = (mem);				      \
+									      \
+     do									      \
+       {								      \
+	 __atg11_oldval = *__atg11_memp;				      \
+	 if (__glibc_unlikely (__atg11_oldval <= 0))			      \
+	   break;							      \
+       }								      \
+     while (__builtin_expect						      \
+	    (atomic_compare_and_exchange_bool_acq (__atg11_memp,	      \
+						   __atg11_oldval - 1,	      \
+						   __atg11_oldval), 0));      \
+     __atg11_oldval; })
+#endif
+
+
+#ifndef atomic_add_negative
+# define atomic_add_negative(mem, value)				      \
+  ({ __typeof (value) __atg12_value = (value);				      \
+     atomic_exchange_and_add (mem, __atg12_value) < -__atg12_value; })
+#endif
+
+
+#ifndef atomic_add_zero
+# define atomic_add_zero(mem, value)					      \
+  ({ __typeof (value) __atg13_value = (value);				      \
+     atomic_exchange_and_add (mem, __atg13_value) == -__atg13_value; })
+#endif
+
+
+#ifndef atomic_bit_set
+# define atomic_bit_set(mem, bit) \
+  (void) atomic_bit_test_set(mem, bit)
+#endif
+
+
+#ifndef atomic_bit_test_set
+# define atomic_bit_test_set(mem, bit) \
+  ({ __typeof (*(mem)) __atg14_old;					      \
+     __typeof (mem) __atg14_memp = (mem);				      \
+     __typeof (*(mem)) __atg14_mask = ((__typeof (*(mem))) 1 << (bit));	      \
+									      \
+     do									      \
+       __atg14_old = (*__atg14_memp);					      \
+     while (__builtin_expect						      \
+	    (atomic_compare_and_exchange_bool_acq (__atg14_memp,	      \
+						   __atg14_old | __atg14_mask,\
+						   __atg14_old), 0));	      \
+									      \
+     __atg14_old & __atg14_mask; })
+#endif
+
+/* Atomically *mem &= mask.  */
+#ifndef atomic_and
+# define atomic_and(mem, mask) \
+  do {									      \
+    __typeof (*(mem)) __atg15_old;					      \
+    __typeof (mem) __atg15_memp = (mem);				      \
+    __typeof (*(mem)) __atg15_mask = (mask);				      \
+									      \
+    do									      \
+      __atg15_old = (*__atg15_memp);					      \
+    while (__builtin_expect						      \
+	   (atomic_compare_and_exchange_bool_acq (__atg15_memp,		      \
+						  __atg15_old & __atg15_mask, \
+						  __atg15_old), 0));	      \
+  } while (0)
+#endif
+
+#ifndef catomic_and
+# define catomic_and(mem, mask) \
+  do {									      \
+    __typeof (*(mem)) __atg20_old;					      \
+    __typeof (mem) __atg20_memp = (mem);				      \
+    __typeof (*(mem)) __atg20_mask = (mask);				      \
+									      \
+    do									      \
+      __atg20_old = (*__atg20_memp);					      \
+    while (__builtin_expect						      \
+	   (catomic_compare_and_exchange_bool_acq (__atg20_memp,	      \
+						   __atg20_old & __atg20_mask,\
+						   __atg20_old), 0));	      \
+  } while (0)
+#endif
+
+/* Atomically *mem &= mask and return the old value of *mem.  */
+#ifndef atomic_and_val
+# define atomic_and_val(mem, mask) \
+  ({ __typeof (*(mem)) __atg16_old;					      \
+     __typeof (mem) __atg16_memp = (mem);				      \
+     __typeof (*(mem)) __atg16_mask = (mask);				      \
+									      \
+     do									      \
+       __atg16_old = (*__atg16_memp);					      \
+     while (__builtin_expect						      \
+	    (atomic_compare_and_exchange_bool_acq (__atg16_memp,	      \
+						   __atg16_old & __atg16_mask,\
+						   __atg16_old), 0));	      \
+									      \
+     __atg16_old; })
+#endif
+
+/* Atomically *mem |= mask and return the old value of *mem.  */
+#ifndef atomic_or
+# define atomic_or(mem, mask) \
+  do {									      \
+    __typeof (*(mem)) __atg17_old;					      \
+    __typeof (mem) __atg17_memp = (mem);				      \
+    __typeof (*(mem)) __atg17_mask = (mask);				      \
+									      \
+    do									      \
+      __atg17_old = (*__atg17_memp);					      \
+    while (__builtin_expect						      \
+	   (atomic_compare_and_exchange_bool_acq (__atg17_memp,		      \
+						  __atg17_old | __atg17_mask, \
+						  __atg17_old), 0));	      \
+  } while (0)
+#endif
+
+#ifndef catomic_or
+# define catomic_or(mem, mask) \
+  do {									      \
+    __typeof (*(mem)) __atg18_old;					      \
+    __typeof (mem) __atg18_memp = (mem);				      \
+    __typeof (*(mem)) __atg18_mask = (mask);				      \
+									      \
+    do									      \
+      __atg18_old = (*__atg18_memp);					      \
+    while (__builtin_expect						      \
+	   (catomic_compare_and_exchange_bool_acq (__atg18_memp,	      \
+						   __atg18_old | __atg18_mask,\
+						   __atg18_old), 0));	      \
+  } while (0)
+#endif
+
+/* Atomically *mem |= mask and return the old value of *mem.  */
+#ifndef atomic_or_val
+# define atomic_or_val(mem, mask) \
+  ({ __typeof (*(mem)) __atg19_old;					      \
+     __typeof (mem) __atg19_memp = (mem);				      \
+     __typeof (*(mem)) __atg19_mask = (mask);				      \
+									      \
+     do									      \
+       __atg19_old = (*__atg19_memp);					      \
+     while (__builtin_expect						      \
+	    (atomic_compare_and_exchange_bool_acq (__atg19_memp,	      \
+						   __atg19_old | __atg19_mask,\
+						   __atg19_old), 0));	      \
+									      \
+     __atg19_old; })
+#endif
+
+#ifndef atomic_full_barrier
+# define atomic_full_barrier() __asm ("" ::: "memory")
+#endif
+
+
+#ifndef atomic_read_barrier
+# define atomic_read_barrier() atomic_full_barrier ()
+#endif
+
+
+#ifndef atomic_write_barrier
+# define atomic_write_barrier() atomic_full_barrier ()
+#endif
+
+
+#ifndef atomic_forced_read
+# define atomic_forced_read(x) \
+  ({ __typeof (x) __x; __asm ("" : "=r" (__x) : "0" (x)); __x; })
+#endif
+
+/* This is equal to 1 iff the architecture supports 64b atomic operations.  */
+#ifndef __HAVE_64B_ATOMICS
+#error Unable to determine if 64-bit atomics are present.
+#endif
+
+/* The following functions are a subset of the atomic operations provided by
+   C11.  Usually, a function named atomic_OP_MO(args) is equivalent to C11's
+   atomic_OP_explicit(args, memory_order_MO); exceptions noted below.  */
+
+/* Each arch can request to use compiler built-ins for C11 atomics.  If it
+   does, all atomics will be based on these.  */
+#if USE_ATOMIC_COMPILER_BUILTINS
+
+/* We require 32b atomic operations; some archs also support 64b atomic
+   operations.  */
+void __atomic_link_error (void);
+# if __HAVE_64B_ATOMICS == 1
+#  define __atomic_check_size(mem) \
+   if ((sizeof (*mem) != 4) && (sizeof (*mem) != 8))			      \
+     __atomic_link_error ();
+# else
+#  define __atomic_check_size(mem) \
+   if (sizeof (*mem) != 4)						      \
+     __atomic_link_error ();
+# endif
+/* We additionally provide 8b and 16b atomic loads and stores; we do not yet
+   need other atomic operations of such sizes, and restricting the support to
+   loads and stores makes this easier for archs that do not have native
+   support for atomic operations to less-than-word-sized data.  */
+# if __HAVE_64B_ATOMICS == 1
+#  define __atomic_check_size_ls(mem) \
+   if ((sizeof (*mem) != 1) && (sizeof (*mem) != 2) && (sizeof (*mem) != 4)   \
+       && (sizeof (*mem) != 8))						      \
+     __atomic_link_error ();
+# else
+#  define __atomic_check_size_ls(mem) \
+   if ((sizeof (*mem) != 1) && (sizeof (*mem) != 2) && sizeof (*mem) != 4)    \
+     __atomic_link_error ();
+# endif
+
+# define atomic_thread_fence_acquire() \
+  __atomic_thread_fence (__ATOMIC_ACQUIRE)
+# define atomic_thread_fence_release() \
+  __atomic_thread_fence (__ATOMIC_RELEASE)
+# define atomic_thread_fence_seq_cst() \
+  __atomic_thread_fence (__ATOMIC_SEQ_CST)
+
+# define atomic_load_relaxed(mem) \
+  ({ __atomic_check_size_ls((mem));					      \
+     __atomic_load_n ((mem), __ATOMIC_RELAXED); })
+# define atomic_load_acquire(mem) \
+  ({ __atomic_check_size_ls((mem));					      \
+     __atomic_load_n ((mem), __ATOMIC_ACQUIRE); })
+
+# define atomic_store_relaxed(mem, val) \
+  do {									      \
+    __atomic_check_size_ls((mem));					      \
+    __atomic_store_n ((mem), (val), __ATOMIC_RELAXED);			      \
+  } while (0)
+# define atomic_store_release(mem, val) \
+  do {									      \
+    __atomic_check_size_ls((mem));					      \
+    __atomic_store_n ((mem), (val), __ATOMIC_RELEASE);			      \
+  } while (0)
+
+/* On failure, this CAS has memory_order_relaxed semantics.  */
+# define atomic_compare_exchange_weak_relaxed(mem, expected, desired) \
+  ({ __atomic_check_size((mem));					      \
+  __atomic_compare_exchange_n ((mem), (expected), (desired), 1,		      \
+    __ATOMIC_RELAXED, __ATOMIC_RELAXED); })
+# define atomic_compare_exchange_weak_acquire(mem, expected, desired) \
+  ({ __atomic_check_size((mem));					      \
+  __atomic_compare_exchange_n ((mem), (expected), (desired), 1,		      \
+    __ATOMIC_ACQUIRE, __ATOMIC_RELAXED); })
+# define atomic_compare_exchange_weak_release(mem, expected, desired) \
+  ({ __atomic_check_size((mem));					      \
+  __atomic_compare_exchange_n ((mem), (expected), (desired), 1,		      \
+    __ATOMIC_RELEASE, __ATOMIC_RELAXED); })
+
+# define atomic_exchange_relaxed(mem, desired) \
+  ({ __atomic_check_size((mem));					      \
+  __atomic_exchange_n ((mem), (desired), __ATOMIC_RELAXED); })
+# define atomic_exchange_acquire(mem, desired) \
+  ({ __atomic_check_size((mem));					      \
+  __atomic_exchange_n ((mem), (desired), __ATOMIC_ACQUIRE); })
+# define atomic_exchange_release(mem, desired) \
+  ({ __atomic_check_size((mem));					      \
+  __atomic_exchange_n ((mem), (desired), __ATOMIC_RELEASE); })
+
+# define atomic_fetch_add_relaxed(mem, operand) \
+  ({ __atomic_check_size((mem));					      \
+  __atomic_fetch_add ((mem), (operand), __ATOMIC_RELAXED); })
+# define atomic_fetch_add_acquire(mem, operand) \
+  ({ __atomic_check_size((mem));					      \
+  __atomic_fetch_add ((mem), (operand), __ATOMIC_ACQUIRE); })
+# define atomic_fetch_add_release(mem, operand) \
+  ({ __atomic_check_size((mem));					      \
+  __atomic_fetch_add ((mem), (operand), __ATOMIC_RELEASE); })
+# define atomic_fetch_add_acq_rel(mem, operand) \
+  ({ __atomic_check_size((mem));					      \
+  __atomic_fetch_add ((mem), (operand), __ATOMIC_ACQ_REL); })
+
+# define atomic_fetch_and_relaxed(mem, operand) \
+  ({ __atomic_check_size((mem));					      \
+  __atomic_fetch_and ((mem), (operand), __ATOMIC_RELAXED); })
+# define atomic_fetch_and_acquire(mem, operand) \
+  ({ __atomic_check_size((mem));					      \
+  __atomic_fetch_and ((mem), (operand), __ATOMIC_ACQUIRE); })
+# define atomic_fetch_and_release(mem, operand) \
+  ({ __atomic_check_size((mem));					      \
+  __atomic_fetch_and ((mem), (operand), __ATOMIC_RELEASE); })
+
+# define atomic_fetch_or_relaxed(mem, operand) \
+  ({ __atomic_check_size((mem));					      \
+  __atomic_fetch_or ((mem), (operand), __ATOMIC_RELAXED); })
+# define atomic_fetch_or_acquire(mem, operand) \
+  ({ __atomic_check_size((mem));					      \
+  __atomic_fetch_or ((mem), (operand), __ATOMIC_ACQUIRE); })
+# define atomic_fetch_or_release(mem, operand) \
+  ({ __atomic_check_size((mem));					      \
+  __atomic_fetch_or ((mem), (operand), __ATOMIC_RELEASE); })
+
+# define atomic_fetch_xor_release(mem, operand) \
+  ({ __atomic_check_size((mem));					      \
+  __atomic_fetch_xor ((mem), (operand), __ATOMIC_RELEASE); })
+
+#else /* !USE_ATOMIC_COMPILER_BUILTINS  */
+
+/* By default, we assume that read, write, and full barriers are equivalent
+   to acquire, release, and seq_cst barriers.  Archs for which this does not
+   hold have to provide custom definitions of the fences.  */
+# ifndef atomic_thread_fence_acquire
+#  define atomic_thread_fence_acquire() atomic_read_barrier ()
+# endif
+# ifndef atomic_thread_fence_release
+#  define atomic_thread_fence_release() atomic_write_barrier ()
+# endif
+# ifndef atomic_thread_fence_seq_cst
+#  define atomic_thread_fence_seq_cst() atomic_full_barrier ()
+# endif
+
+# ifndef atomic_load_relaxed
+#  define atomic_load_relaxed(mem) \
+   ({ __typeof ((__typeof (*(mem))) *(mem)) __atg100_val;		      \
+   __asm ("" : "=r" (__atg100_val) : "0" (*(mem)));			      \
+   __atg100_val; })
+# endif
+# ifndef atomic_load_acquire
+#  define atomic_load_acquire(mem) \
+   ({ __typeof (*(mem)) __atg101_val = atomic_load_relaxed (mem);	      \
+   atomic_thread_fence_acquire ();					      \
+   __atg101_val; })
+# endif
+
+# ifndef atomic_store_relaxed
+/* XXX Use inline asm here?  */
+#  define atomic_store_relaxed(mem, val) do { *(mem) = (val); } while (0)
+# endif
+# ifndef atomic_store_release
+#  define atomic_store_release(mem, val) \
+   do {									      \
+     atomic_thread_fence_release ();					      \
+     atomic_store_relaxed ((mem), (val));				      \
+   } while (0)
+# endif
+
+/* On failure, this CAS has memory_order_relaxed semantics.  */
+/* XXX This potentially has one branch more than necessary, but archs
+   currently do not define a CAS that returns both the previous value and
+   the success flag.  */
+# ifndef atomic_compare_exchange_weak_acquire
+#  define atomic_compare_exchange_weak_acquire(mem, expected, desired) \
+   ({ typeof (*(expected)) __atg102_expected = *(expected);		      \
+   *(expected) =							      \
+     atomic_compare_and_exchange_val_acq ((mem), (desired), *(expected));     \
+   *(expected) == __atg102_expected; })
+# endif
+# ifndef atomic_compare_exchange_weak_relaxed
+/* XXX Fall back to CAS with acquire MO because archs do not define a weaker
+   CAS.  */
+#  define atomic_compare_exchange_weak_relaxed(mem, expected, desired) \
+   atomic_compare_exchange_weak_acquire ((mem), (expected), (desired))
+# endif
+# ifndef atomic_compare_exchange_weak_release
+#  define atomic_compare_exchange_weak_release(mem, expected, desired) \
+   ({ typeof (*(expected)) __atg103_expected = *(expected);		      \
+   *(expected) =							      \
+     atomic_compare_and_exchange_val_rel ((mem), (desired), *(expected));     \
+   *(expected) == __atg103_expected; })
+# endif
+
+/* XXX Fall back to acquire MO because archs do not define a weaker
+   atomic_exchange.  */
+# ifndef atomic_exchange_relaxed
+#  define atomic_exchange_relaxed(mem, val) \
+   atomic_exchange_acq ((mem), (val))
+# endif
+# ifndef atomic_exchange_acquire
+#  define atomic_exchange_acquire(mem, val) \
+   atomic_exchange_acq ((mem), (val))
+# endif
+# ifndef atomic_exchange_release
+#  define atomic_exchange_release(mem, val) \
+   atomic_exchange_rel ((mem), (val))
+# endif
+
+# ifndef atomic_fetch_add_acquire
+#  define atomic_fetch_add_acquire(mem, operand) \
+   atomic_exchange_and_add_acq ((mem), (operand))
+# endif
+# ifndef atomic_fetch_add_relaxed
+/* XXX Fall back to acquire MO because the MO semantics of
+   atomic_exchange_and_add are not documented; the generic version falls back
+   to atomic_exchange_and_add_acq if atomic_exchange_and_add is not defined,
+   and vice versa.  */
+#  define atomic_fetch_add_relaxed(mem, operand) \
+   atomic_fetch_add_acquire ((mem), (operand))
+# endif
+# ifndef atomic_fetch_add_release
+#  define atomic_fetch_add_release(mem, operand) \
+   atomic_exchange_and_add_rel ((mem), (operand))
+# endif
+# ifndef atomic_fetch_add_acq_rel
+#  define atomic_fetch_add_acq_rel(mem, operand) \
+   ({ atomic_thread_fence_release ();					      \
+   atomic_exchange_and_add_acq ((mem), (operand)); })
+# endif
+
+/* XXX Fall back to acquire MO because archs do not define a weaker
+   atomic_and_val.  */
+# ifndef atomic_fetch_and_relaxed
+#  define atomic_fetch_and_relaxed(mem, operand) \
+   atomic_fetch_and_acquire ((mem), (operand))
+# endif
+/* XXX The default for atomic_and_val has acquire semantics, but this is not
+   documented.  */
+# ifndef atomic_fetch_and_acquire
+#  define atomic_fetch_and_acquire(mem, operand) \
+   atomic_and_val ((mem), (operand))
+# endif
+# ifndef atomic_fetch_and_release
+/* XXX This unnecessarily has acquire MO.  */
+#  define atomic_fetch_and_release(mem, operand) \
+   ({ atomic_thread_fence_release ();					      \
+   atomic_and_val ((mem), (operand)); })
+# endif
+
+/* XXX The default for atomic_or_val has acquire semantics, but this is not
+   documented.  */
+# ifndef atomic_fetch_or_acquire
+#  define atomic_fetch_or_acquire(mem, operand) \
+   atomic_or_val ((mem), (operand))
+# endif
+/* XXX Fall back to acquire MO because archs do not define a weaker
+   atomic_or_val.  */
+# ifndef atomic_fetch_or_relaxed
+#  define atomic_fetch_or_relaxed(mem, operand) \
+   atomic_fetch_or_acquire ((mem), (operand))
+# endif
+/* XXX Contains an unnecessary acquire MO because archs do not define a weaker
+   atomic_or_val.  */
+# ifndef atomic_fetch_or_release
+#  define atomic_fetch_or_release(mem, operand) \
+   ({ atomic_thread_fence_release ();					      \
+   atomic_fetch_or_acquire ((mem), (operand)); })
+# endif
+
+# ifndef atomic_fetch_xor_release
+/* Failing the atomic_compare_exchange_weak_release reloads the value in
+   __atg104_expected, so we need only do the XOR again and retry.  */
+# define atomic_fetch_xor_release(mem, operand) \
+  ({ __typeof (mem) __atg104_memp = (mem);				      \
+     __typeof (*(mem)) __atg104_expected = (*__atg104_memp);		      \
+     __typeof (*(mem)) __atg104_desired;				      \
+     __typeof (*(mem)) __atg104_op = (operand);				      \
+									      \
+     do									      \
+       __atg104_desired = __atg104_expected ^ __atg104_op;		      \
+     while (__glibc_unlikely						      \
+	    (atomic_compare_exchange_weak_release (			      \
+	       __atg104_memp, &__atg104_expected, __atg104_desired)	      \
+	     == 0));							      \
+     __atg104_expected; })
+#endif
+
+#endif /* !USE_ATOMIC_COMPILER_BUILTINS  */
+
+/* This operation does not affect synchronization semantics but can be used
+   in the body of a spin loop to potentially improve its efficiency.  */
+#ifndef atomic_spin_nop
+# define atomic_spin_nop() do { /* nothing */ } while (0)
+#endif
+
+/* ATOMIC_EXCHANGE_USES_CAS is non-zero if atomic_exchange operations
+   are implemented based on a CAS loop; otherwise, this is zero and we assume
+   that the atomic_exchange operations could provide better performance
+   than a CAS loop.  */
+#ifndef ATOMIC_EXCHANGE_USES_CAS
+# error ATOMIC_EXCHANGE_USES_CAS has to be defined.
+#endif
+
+#endif	/* atomic.h */
diff --git a/REORG.TODO/include/bits/cmathcalls.h b/REORG.TODO/include/bits/cmathcalls.h
new file mode 100644
index 0000000000..dd029602f9
--- /dev/null
+++ b/REORG.TODO/include/bits/cmathcalls.h
@@ -0,0 +1 @@
+#include <math/bits/cmathcalls.h>
diff --git a/REORG.TODO/include/bits/dlfcn.h b/REORG.TODO/include/bits/dlfcn.h
new file mode 100644
index 0000000000..47652a11a2
--- /dev/null
+++ b/REORG.TODO/include/bits/dlfcn.h
@@ -0,0 +1,5 @@
+#include_next <bits/dlfcn.h>
+
+#ifndef _ISOMAC
+libc_hidden_proto (_dl_mcount_wrapper_check)
+#endif
diff --git a/REORG.TODO/include/bits/error.h b/REORG.TODO/include/bits/error.h
new file mode 100644
index 0000000000..c2c7c9b710
--- /dev/null
+++ b/REORG.TODO/include/bits/error.h
@@ -0,0 +1 @@
+#include "../../misc/bits/error.h"
diff --git a/REORG.TODO/include/bits/fcntl2.h b/REORG.TODO/include/bits/fcntl2.h
new file mode 100644
index 0000000000..832b2c9abb
--- /dev/null
+++ b/REORG.TODO/include/bits/fcntl2.h
@@ -0,0 +1 @@
+#include "../../io/bits/fcntl2.h"
diff --git a/REORG.TODO/include/bits/getopt_core.h b/REORG.TODO/include/bits/getopt_core.h
new file mode 100644
index 0000000000..1200de81b6
--- /dev/null
+++ b/REORG.TODO/include/bits/getopt_core.h
@@ -0,0 +1 @@
+#include <posix/bits/getopt_core.h>
diff --git a/REORG.TODO/include/bits/getopt_ext.h b/REORG.TODO/include/bits/getopt_ext.h
new file mode 100644
index 0000000000..31b99834ea
--- /dev/null
+++ b/REORG.TODO/include/bits/getopt_ext.h
@@ -0,0 +1 @@
+#include <posix/bits/getopt_ext.h>
diff --git a/REORG.TODO/include/bits/getopt_posix.h b/REORG.TODO/include/bits/getopt_posix.h
new file mode 100644
index 0000000000..e3b70c816c
--- /dev/null
+++ b/REORG.TODO/include/bits/getopt_posix.h
@@ -0,0 +1 @@
+#include <posix/bits/getopt_posix.h>
diff --git a/REORG.TODO/include/bits/locale.h b/REORG.TODO/include/bits/locale.h
new file mode 100644
index 0000000000..1f1557a1b8
--- /dev/null
+++ b/REORG.TODO/include/bits/locale.h
@@ -0,0 +1 @@
+#include <locale/bits/locale.h>
diff --git a/REORG.TODO/include/bits/mathcalls-helper-functions.h b/REORG.TODO/include/bits/mathcalls-helper-functions.h
new file mode 100644
index 0000000000..bb71f7fb18
--- /dev/null
+++ b/REORG.TODO/include/bits/mathcalls-helper-functions.h
@@ -0,0 +1 @@
+#include <math/bits/mathcalls-helper-functions.h>
diff --git a/REORG.TODO/include/bits/mathcalls.h b/REORG.TODO/include/bits/mathcalls.h
new file mode 100644
index 0000000000..d75b598cc7
--- /dev/null
+++ b/REORG.TODO/include/bits/mathcalls.h
@@ -0,0 +1 @@
+#include <math/bits/mathcalls.h>
diff --git a/REORG.TODO/include/bits/poll2.h b/REORG.TODO/include/bits/poll2.h
new file mode 100644
index 0000000000..51a0812c1e
--- /dev/null
+++ b/REORG.TODO/include/bits/poll2.h
@@ -0,0 +1 @@
+#include "../../io/bits/poll2.h"
diff --git a/REORG.TODO/include/bits/posix1_lim.h b/REORG.TODO/include/bits/posix1_lim.h
new file mode 100644
index 0000000000..c3c67d1c84
--- /dev/null
+++ b/REORG.TODO/include/bits/posix1_lim.h
@@ -0,0 +1 @@
+#include <posix/bits/posix1_lim.h>
diff --git a/REORG.TODO/include/bits/posix2_lim.h b/REORG.TODO/include/bits/posix2_lim.h
new file mode 100644
index 0000000000..49a539438c
--- /dev/null
+++ b/REORG.TODO/include/bits/posix2_lim.h
@@ -0,0 +1 @@
+#include <posix/bits/posix2_lim.h>
diff --git a/REORG.TODO/include/bits/select2.h b/REORG.TODO/include/bits/select2.h
new file mode 100644
index 0000000000..08f7259647
--- /dev/null
+++ b/REORG.TODO/include/bits/select2.h
@@ -0,0 +1 @@
+#include "../../misc/bits/select2.h"
diff --git a/REORG.TODO/include/bits/setjmp2.h b/REORG.TODO/include/bits/setjmp2.h
new file mode 100644
index 0000000000..bdb222cd2c
--- /dev/null
+++ b/REORG.TODO/include/bits/setjmp2.h
@@ -0,0 +1 @@
+#include <setjmp/bits/setjmp2.h>
diff --git a/REORG.TODO/include/bits/socket2.h b/REORG.TODO/include/bits/socket2.h
new file mode 100644
index 0000000000..a81fd9fa78
--- /dev/null
+++ b/REORG.TODO/include/bits/socket2.h
@@ -0,0 +1 @@
+#include <socket/bits/socket2.h>
diff --git a/REORG.TODO/include/bits/stab.def b/REORG.TODO/include/bits/stab.def
new file mode 100644
index 0000000000..d153eba4de
--- /dev/null
+++ b/REORG.TODO/include/bits/stab.def
@@ -0,0 +1 @@
+#include <misc/bits/stab.def>
diff --git a/REORG.TODO/include/bits/stdlib-float.h b/REORG.TODO/include/bits/stdlib-float.h
new file mode 100644
index 0000000000..54ab571981
--- /dev/null
+++ b/REORG.TODO/include/bits/stdlib-float.h
@@ -0,0 +1,8 @@
+/* No floating-point inline functions in rtld and for the conform tests.  */
+#ifdef _ISOMAC
+# include <stdlib/bits/stdlib-float.h>
+#else
+# if !IS_IN (rtld)
+#  include <stdlib/bits/stdlib-float.h>
+# endif
+#endif
diff --git a/REORG.TODO/include/bits/stdlib.h b/REORG.TODO/include/bits/stdlib.h
new file mode 100644
index 0000000000..8541e278c7
--- /dev/null
+++ b/REORG.TODO/include/bits/stdlib.h
@@ -0,0 +1 @@
+#include <stdlib/bits/stdlib.h>
diff --git a/REORG.TODO/include/bits/string2.h b/REORG.TODO/include/bits/string2.h
new file mode 100644
index 0000000000..e4c4c709b5
--- /dev/null
+++ b/REORG.TODO/include/bits/string2.h
@@ -0,0 +1 @@
+#include <string/bits/string2.h>
diff --git a/REORG.TODO/include/bits/string3.h b/REORG.TODO/include/bits/string3.h
new file mode 100644
index 0000000000..1ddd981a90
--- /dev/null
+++ b/REORG.TODO/include/bits/string3.h
@@ -0,0 +1 @@
+#include <string/bits/string3.h>
diff --git a/REORG.TODO/include/bits/strings_fortified.h b/REORG.TODO/include/bits/strings_fortified.h
new file mode 100644
index 0000000000..77219c162c
--- /dev/null
+++ b/REORG.TODO/include/bits/strings_fortified.h
@@ -0,0 +1 @@
+#include <string/bits/strings_fortified.h>
diff --git a/REORG.TODO/include/bits/syslog.h b/REORG.TODO/include/bits/syslog.h
new file mode 100644
index 0000000000..060b893482
--- /dev/null
+++ b/REORG.TODO/include/bits/syslog.h
@@ -0,0 +1 @@
+#include <misc/bits/syslog.h>
diff --git a/REORG.TODO/include/bits/types.h b/REORG.TODO/include/bits/types.h
new file mode 100644
index 0000000000..1c47910607
--- /dev/null
+++ b/REORG.TODO/include/bits/types.h
@@ -0,0 +1 @@
+#include <posix/bits/types.h>
diff --git a/REORG.TODO/include/bits/types/FILE.h b/REORG.TODO/include/bits/types/FILE.h
new file mode 100644
index 0000000000..09b599baa0
--- /dev/null
+++ b/REORG.TODO/include/bits/types/FILE.h
@@ -0,0 +1 @@
+#include <libio/bits/types/FILE.h>
diff --git a/REORG.TODO/include/bits/types/__FILE.h b/REORG.TODO/include/bits/types/__FILE.h
new file mode 100644
index 0000000000..236f60bacd
--- /dev/null
+++ b/REORG.TODO/include/bits/types/__FILE.h
@@ -0,0 +1 @@
+#include <libio/bits/types/__FILE.h>
diff --git a/REORG.TODO/include/bits/types/__mbstate_t.h b/REORG.TODO/include/bits/types/__mbstate_t.h
new file mode 100644
index 0000000000..13e764e8c9
--- /dev/null
+++ b/REORG.TODO/include/bits/types/__mbstate_t.h
@@ -0,0 +1 @@
+#include <wcsmbs/bits/types/__mbstate_t.h>
diff --git a/REORG.TODO/include/bits/types/clock_t.h b/REORG.TODO/include/bits/types/clock_t.h
new file mode 100644
index 0000000000..4cfe8e7e8b
--- /dev/null
+++ b/REORG.TODO/include/bits/types/clock_t.h
@@ -0,0 +1 @@
+#include <time/bits/types/clock_t.h>
diff --git a/REORG.TODO/include/bits/types/clockid_t.h b/REORG.TODO/include/bits/types/clockid_t.h
new file mode 100644
index 0000000000..ff7290bb1d
--- /dev/null
+++ b/REORG.TODO/include/bits/types/clockid_t.h
@@ -0,0 +1 @@
+#include <time/bits/types/clockid_t.h>
diff --git a/REORG.TODO/include/bits/types/mbstate_t.h b/REORG.TODO/include/bits/types/mbstate_t.h
new file mode 100644
index 0000000000..99ec08a91a
--- /dev/null
+++ b/REORG.TODO/include/bits/types/mbstate_t.h
@@ -0,0 +1 @@
+#include <wcsmbs/bits/types/mbstate_t.h>
diff --git a/REORG.TODO/include/bits/types/res_state.h b/REORG.TODO/include/bits/types/res_state.h
new file mode 100644
index 0000000000..4b99b68da9
--- /dev/null
+++ b/REORG.TODO/include/bits/types/res_state.h
@@ -0,0 +1 @@
+#include <resolv/bits/types/res_state.h>
diff --git a/REORG.TODO/include/bits/types/sig_atomic_t.h b/REORG.TODO/include/bits/types/sig_atomic_t.h
new file mode 100644
index 0000000000..783693f71c
--- /dev/null
+++ b/REORG.TODO/include/bits/types/sig_atomic_t.h
@@ -0,0 +1 @@
+#include <signal/bits/types/sig_atomic_t.h>
diff --git a/REORG.TODO/include/bits/types/sigset_t.h b/REORG.TODO/include/bits/types/sigset_t.h
new file mode 100644
index 0000000000..20c3dc2095
--- /dev/null
+++ b/REORG.TODO/include/bits/types/sigset_t.h
@@ -0,0 +1 @@
+#include <signal/bits/types/sigset_t.h>
diff --git a/REORG.TODO/include/bits/types/sigval_t.h b/REORG.TODO/include/bits/types/sigval_t.h
new file mode 100644
index 0000000000..296734e827
--- /dev/null
+++ b/REORG.TODO/include/bits/types/sigval_t.h
@@ -0,0 +1 @@
+#include <signal/bits/types/sigval_t.h>
diff --git a/REORG.TODO/include/bits/types/struct_iovec.h b/REORG.TODO/include/bits/types/struct_iovec.h
new file mode 100644
index 0000000000..f8f163f648
--- /dev/null
+++ b/REORG.TODO/include/bits/types/struct_iovec.h
@@ -0,0 +1 @@
+#include <misc/bits/types/struct_iovec.h>
diff --git a/REORG.TODO/include/bits/types/struct_itimerspec.h b/REORG.TODO/include/bits/types/struct_itimerspec.h
new file mode 100644
index 0000000000..19a3fa3cb8
--- /dev/null
+++ b/REORG.TODO/include/bits/types/struct_itimerspec.h
@@ -0,0 +1 @@
+#include <time/bits/types/struct_itimerspec.h>
diff --git a/REORG.TODO/include/bits/types/struct_osockaddr.h b/REORG.TODO/include/bits/types/struct_osockaddr.h
new file mode 100644
index 0000000000..fe2561bb1f
--- /dev/null
+++ b/REORG.TODO/include/bits/types/struct_osockaddr.h
@@ -0,0 +1 @@
+#include <socket/bits/types/struct_osockaddr.h>
diff --git a/REORG.TODO/include/bits/types/struct_sigstack.h b/REORG.TODO/include/bits/types/struct_sigstack.h
new file mode 100644
index 0000000000..2b23fb2837
--- /dev/null
+++ b/REORG.TODO/include/bits/types/struct_sigstack.h
@@ -0,0 +1 @@
+#include <signal/bits/types/struct_sigstack.h>
diff --git a/REORG.TODO/include/bits/types/struct_timespec.h b/REORG.TODO/include/bits/types/struct_timespec.h
new file mode 100644
index 0000000000..c27417cfd5
--- /dev/null
+++ b/REORG.TODO/include/bits/types/struct_timespec.h
@@ -0,0 +1 @@
+#include <time/bits/types/struct_timespec.h>
diff --git a/REORG.TODO/include/bits/types/struct_timeval.h b/REORG.TODO/include/bits/types/struct_timeval.h
new file mode 100644
index 0000000000..a5549cbae3
--- /dev/null
+++ b/REORG.TODO/include/bits/types/struct_timeval.h
@@ -0,0 +1 @@
+#include <time/bits/types/struct_timeval.h>
diff --git a/REORG.TODO/include/bits/types/struct_tm.h b/REORG.TODO/include/bits/types/struct_tm.h
new file mode 100644
index 0000000000..412dd8683a
--- /dev/null
+++ b/REORG.TODO/include/bits/types/struct_tm.h
@@ -0,0 +1 @@
+#include <time/bits/types/struct_tm.h>
diff --git a/REORG.TODO/include/bits/types/time_t.h b/REORG.TODO/include/bits/types/time_t.h
new file mode 100644
index 0000000000..70490c6d05
--- /dev/null
+++ b/REORG.TODO/include/bits/types/time_t.h
@@ -0,0 +1 @@
+#include <time/bits/types/time_t.h>
diff --git a/REORG.TODO/include/bits/types/timer_t.h b/REORG.TODO/include/bits/types/timer_t.h
new file mode 100644
index 0000000000..5a33fa40a4
--- /dev/null
+++ b/REORG.TODO/include/bits/types/timer_t.h
@@ -0,0 +1 @@
+#include <time/bits/types/timer_t.h>
diff --git a/REORG.TODO/include/bits/types/wint_t.h b/REORG.TODO/include/bits/types/wint_t.h
new file mode 100644
index 0000000000..f1e373d294
--- /dev/null
+++ b/REORG.TODO/include/bits/types/wint_t.h
@@ -0,0 +1 @@
+#include <wcsmbs/bits/types/wint_t.h>
diff --git a/REORG.TODO/include/bits/unistd.h b/REORG.TODO/include/bits/unistd.h
new file mode 100644
index 0000000000..1a91dcc72e
--- /dev/null
+++ b/REORG.TODO/include/bits/unistd.h
@@ -0,0 +1 @@
+#include <posix/bits/unistd.h>
diff --git a/REORG.TODO/include/bits/wchar2.h b/REORG.TODO/include/bits/wchar2.h
new file mode 100644
index 0000000000..a18dccfc55
--- /dev/null
+++ b/REORG.TODO/include/bits/wchar2.h
@@ -0,0 +1 @@
+#include <wcsmbs/bits/wchar2.h>
diff --git a/REORG.TODO/include/bits/wctype-wchar.h b/REORG.TODO/include/bits/wctype-wchar.h
new file mode 100644
index 0000000000..8273cd743e
--- /dev/null
+++ b/REORG.TODO/include/bits/wctype-wchar.h
@@ -0,0 +1 @@
+#include <wctype/bits/wctype-wchar.h>
diff --git a/REORG.TODO/include/bits/xopen_lim.h b/REORG.TODO/include/bits/xopen_lim.h
new file mode 100644
index 0000000000..2ae7cb3652
--- /dev/null
+++ b/REORG.TODO/include/bits/xopen_lim.h
@@ -0,0 +1,145 @@
+/* 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/>.  */
+
+/*
+ * Never include this file directly; use <limits.h> instead.
+ */
+
+/* Additional definitions from X/Open Portability Guide, Issue 4, Version 2
+   System Interfaces and Headers, 4.16 <limits.h>
+
+   Please note only the values which are not greater than the minimum
+   stated in the standard document are listed.  The `sysconf' functions
+   should be used to obtain the actual value.  */
+
+#ifndef _XOPEN_LIM_H
+#define _XOPEN_LIM_H	1
+
+#define __need_IOV_MAX
+#include <bits/stdio_lim.h>
+
+/* We do not provide fixed values for
+
+   ARG_MAX	Maximum length of argument to the `exec' function
+		including environment data.
+
+   ATEXIT_MAX	Maximum number of functions that may be registered
+		with `atexit'.
+
+   CHILD_MAX	Maximum number of simultaneous processes per real
+		user ID.
+
+   OPEN_MAX	Maximum number of files that one process can have open
+		at anyone time.
+
+   PAGESIZE
+   PAGE_SIZE	Size of bytes of a page.
+
+   PASS_MAX	Maximum number of significant bytes in a password.
+
+   We only provide a fixed limit for
+
+   IOV_MAX	Maximum number of `iovec' structures that one process has
+		available for use with `readv' or writev'.
+
+   if this is indeed fixed by the underlying system.
+*/
+
+
+/* Maximum number of `iovec' structures that one process has available
+   for use with `readv' or writev'.  */
+#define	_XOPEN_IOV_MAX	_POSIX_UIO_MAXIOV
+
+
+/* Maximum value of `digit' in calls to the `printf' and `scanf'
+   functions.  We have no limit, so return a reasonable value.  */
+#define NL_ARGMAX	_POSIX_ARG_MAX
+
+/* Maximum number of bytes in a `LANG' name.  We have no limit.  */
+#define NL_LANGMAX	_POSIX2_LINE_MAX
+
+/* Maximum message number.  We have no limit.  */
+#define NL_MSGMAX	INT_MAX
+
+/* Maximum number of bytes in N-to-1 collation mapping.  We have no
+   limit.  */
+#if defined __USE_GNU || !defined __USE_XOPEN2K8
+# define NL_NMAX	INT_MAX
+#endif
+
+/* Maximum set number.  We have no limit.  */
+#define NL_SETMAX	INT_MAX
+
+/* Maximum number of bytes in a message.  We have no limit.  */
+#define NL_TEXTMAX	INT_MAX
+
+/* Default process priority.  */
+#define NZERO		20
+
+
+/* Number of bits in a word of type `int'.  */
+#ifdef INT_MAX
+# if INT_MAX == 32767
+#  define WORD_BIT	16
+# else
+#  if INT_MAX == 2147483647
+#   define WORD_BIT	32
+#  else
+/* Safe assumption.  */
+#   define WORD_BIT	64
+#  endif
+# endif
+#elif defined __INT_MAX__
+# if __INT_MAX__ == 32767
+#  define WORD_BIT	16
+# else
+#  if __INT_MAX__ == 2147483647
+#   define WORD_BIT	32
+#  else
+/* Safe assumption.  */
+#   define WORD_BIT	64
+#  endif
+# endif
+#else
+# define WORD_BIT	32
+#endif
+
+/* Number of bits in a word of type `long int'.  */
+#ifdef LONG_MAX
+# if LONG_MAX == 2147483647
+#  define LONG_BIT	32
+# else
+/* Safe assumption.  */
+#  define LONG_BIT	64
+# endif
+#elif defined __LONG_MAX__
+# if __LONG_MAX__ == 2147483647
+#  define LONG_BIT	32
+# else
+/* Safe assumption.  */
+#  define LONG_BIT	64
+# endif
+#else
+# include <bits/wordsize.h>
+# if __WORDSIZE == 64
+#  define LONG_BIT	64
+# else
+#  define LONG_BIT	32
+# endif
+#endif
+
+#endif /* bits/xopen_lim.h */
diff --git a/REORG.TODO/include/byteswap.h b/REORG.TODO/include/byteswap.h
new file mode 100644
index 0000000000..44507de954
--- /dev/null
+++ b/REORG.TODO/include/byteswap.h
@@ -0,0 +1 @@
+#include <string/byteswap.h>
diff --git a/REORG.TODO/include/caller.h b/REORG.TODO/include/caller.h
new file mode 100644
index 0000000000..64715e0487
--- /dev/null
+++ b/REORG.TODO/include/caller.h
@@ -0,0 +1,31 @@
+/* Copyright (C) 2004-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 _CALLER_H
+#define _CALLER_H 1
+
+#include <ldsodefs.h>
+
+/* _dl_check_caller only works in DSOs.  */
+#ifdef SHARED
+# define __check_caller(caller, mask) \
+  GLRO(dl_check_caller) (caller, mask)
+#else
+# define __check_caller(caller, mask) (0)
+#endif
+
+#endif /* caller.h */
diff --git a/REORG.TODO/include/complex.h b/REORG.TODO/include/complex.h
new file mode 100644
index 0000000000..2c86709ced
--- /dev/null
+++ b/REORG.TODO/include/complex.h
@@ -0,0 +1,16 @@
+#ifndef _COMPLEX_H
+# include <math/complex.h>
+
+# ifndef _ISOMAC
+/* Return the complex inverse hyperbolic sine of finite nonzero Z,
+   with the imaginary part of the result subtracted from pi/2 if ADJ
+   is nonzero.  */
+extern complex float __kernel_casinhf (complex float z, int adj);
+extern complex double __kernel_casinh (complex double z, int adj);
+extern complex long double __kernel_casinhl (complex long double z, int adj);
+#  if __HAVE_DISTINCT_FLOAT128
+extern __CFLOAT128 __kernel_casinhf128 (__CFLOAT128 z, int adj);
+#  endif
+# endif
+
+#endif
diff --git a/REORG.TODO/include/cpio.h b/REORG.TODO/include/cpio.h
new file mode 100644
index 0000000000..38e2ed1b62
--- /dev/null
+++ b/REORG.TODO/include/cpio.h
@@ -0,0 +1 @@
+#include <posix/cpio.h>
diff --git a/REORG.TODO/include/crypt.h b/REORG.TODO/include/crypt.h
new file mode 100644
index 0000000000..544551da21
--- /dev/null
+++ b/REORG.TODO/include/crypt.h
@@ -0,0 +1,3 @@
+#ifndef _CRYPT_H
+# include <crypt/crypt.h>
+#endif /* _CRYPT_H */
diff --git a/REORG.TODO/include/ctype.h b/REORG.TODO/include/ctype.h
new file mode 100644
index 0000000000..ac6db790b7
--- /dev/null
+++ b/REORG.TODO/include/ctype.h
@@ -0,0 +1,67 @@
+#ifndef _CTYPE_H
+
+#include <ctype/ctype.h>
+
+#ifndef _ISOMAC
+/* Initialize ctype locale data.  */
+extern void __ctype_init (void);
+libc_hidden_proto (__ctype_init)
+
+/* ctype/ctype.h defined this as a macro and we don't want to #undef it.
+   So defeat macro expansion with parens for this declaration.  */
+extern int (__isctype) (int __c, int __mask);
+
+# if IS_IN (libc)
+
+/* These accessors are used by the optimized macros to find the
+   thread-local cache of ctype information from the current thread's
+   locale.  For inside libc, define them as inlines using the _NL_CURRENT
+   accessors.  We don't use _NL_CURRENT_LOCALE->__ctype_b here because we
+   want to cause a link-time ref to _nl_current_LC_CTYPE under
+   NL_CURRENT_INDIRECT.  */
+
+#  include "../locale/localeinfo.h"
+#  include <libc-tsd.h>
+
+#  ifndef CTYPE_EXTERN_INLINE	/* Used by ctype/ctype-info.c, which see.  */
+#   define CTYPE_EXTERN_INLINE extern inline
+#  endif
+
+__libc_tsd_define (extern, const uint16_t *, CTYPE_B)
+__libc_tsd_define (extern, const int32_t *, CTYPE_TOUPPER)
+__libc_tsd_define (extern, const int32_t *, CTYPE_TOLOWER)
+
+
+CTYPE_EXTERN_INLINE const uint16_t ** __attribute__ ((const))
+__ctype_b_loc (void)
+{
+  return __libc_tsd_address (const uint16_t *, CTYPE_B);
+}
+
+CTYPE_EXTERN_INLINE const int32_t ** __attribute__ ((const))
+__ctype_toupper_loc (void)
+{
+  return __libc_tsd_address (const int32_t *, CTYPE_TOUPPER);
+}
+
+CTYPE_EXTERN_INLINE const int32_t ** __attribute__ ((const))
+__ctype_tolower_loc (void)
+{
+  return __libc_tsd_address (const int32_t *, CTYPE_TOLOWER);
+}
+
+#  ifndef __NO_CTYPE
+/* The spec says that isdigit must only match the decimal digits.  We
+   can check this without a memory access.  */
+#   undef isdigit
+#   define isdigit(c) ({ int __c = (c); __c >= '0' && __c <= '9'; })
+#   undef isdigit_l
+#   define isdigit_l(c, l) ({ int __c = (c); __c >= '0' && __c <= '9'; })
+#   undef __isdigit_l
+#   define __isdigit_l(c, l) ({ int __c = (c); __c >= '0' && __c <= '9'; })
+#  endif  /* Not __NO_CTYPE.  */
+
+# endif	/* IS_IN (libc).  */
+#endif  /* Not _ISOMAC.  */
+
+#endif /* ctype.h */
diff --git a/REORG.TODO/include/des.h b/REORG.TODO/include/des.h
new file mode 100644
index 0000000000..a519b6f681
--- /dev/null
+++ b/REORG.TODO/include/des.h
@@ -0,0 +1 @@
+#include <sunrpc/rpc/rpc_des.h>
diff --git a/REORG.TODO/include/dirent.h b/REORG.TODO/include/dirent.h
new file mode 100644
index 0000000000..c792e53c96
--- /dev/null
+++ b/REORG.TODO/include/dirent.h
@@ -0,0 +1,88 @@
+#ifndef _DIRENT_H
+# ifndef _ISOMAC
+#  include <dirstream.h>
+# endif
+# include <dirent/dirent.h>
+# ifndef _ISOMAC
+# include <sys/stat.h>
+# include <stdbool.h>
+
+struct scandir_cancel_struct
+{
+  DIR *dp;
+  void *v;
+  size_t cnt;
+};
+
+/* Now define the internal interfaces.  */
+extern DIR *__opendir (const char *__name);
+extern DIR *__opendirat (int dfd, const char *__name)
+     internal_function attribute_hidden;
+extern DIR *__fdopendir (int __fd);
+extern int __closedir (DIR *__dirp);
+extern struct dirent *__readdir (DIR *__dirp);
+extern struct dirent64 *__readdir64 (DIR *__dirp);
+extern int __readdir_r (DIR *__dirp, struct dirent *__entry,
+			struct dirent **__result);
+extern int __readdir64_r (DIR *__dirp, struct dirent64 *__entry,
+			  struct dirent64 **__result);
+extern int __scandir64 (const char * __dir,
+			struct dirent64 *** __namelist,
+			int (*__selector) (const struct dirent64 *),
+			int (*__cmp) (const struct dirent64 **,
+				      const struct dirent64 **));
+extern __ssize_t __getdirentries (int __fd, char *__restrict __buf,
+				size_t __nbytes,
+				__off_t *__restrict __basep)
+     __THROW __nonnull ((2, 4));
+extern __ssize_t __getdents (int __fd, char *__buf, size_t __nbytes)
+     internal_function attribute_hidden;
+extern __ssize_t __getdents64 (int __fd, char *__buf, size_t __nbytes)
+     internal_function attribute_hidden;
+extern int __alphasort64 (const struct dirent64 **a, const struct dirent64 **b)
+     __attribute_pure__;
+extern int __versionsort64 (const struct dirent64 **a,
+			    const struct dirent64 **b)
+     __attribute_pure__;
+extern DIR *__alloc_dir (int fd, bool close_fd, int flags,
+			 const struct stat64 *statp)
+     internal_function attribute_hidden;
+extern __typeof (rewinddir) __rewinddir;
+
+extern void __scandir_cancel_handler (void *arg) attribute_hidden;
+extern int __scandir_tail (DIR *dp,
+			   struct dirent ***namelist,
+			   int (*select) (const struct dirent *),
+			   int (*cmp) (const struct dirent **,
+				       const struct dirent **))
+  internal_function attribute_hidden;
+#  ifdef _DIRENT_MATCHES_DIRENT64
+#   define __scandir64_tail (dp, namelist, select, cmp)         \
+  __scandir_tail (dp, (struct dirent ***) (namelist),           \
+		  (int (*) (const struct dirent *)) (select),   \
+		  (int (*) (const struct dirent **,             \
+			    const struct dirent **)) (cmp))
+#  else
+extern int __scandir64_tail (DIR *dp,
+			     struct dirent64 ***namelist,
+			     int (*select) (const struct dirent64 *),
+			     int (*cmp) (const struct dirent64 **,
+					 const struct dirent64 **))
+  internal_function attribute_hidden;
+#  endif
+
+libc_hidden_proto (__rewinddir)
+extern __typeof (scandirat) __scandirat;
+libc_hidden_proto (__scandirat)
+libc_hidden_proto (scandirat64)
+
+#  if IS_IN (rtld)
+extern __typeof (__closedir) __closedir attribute_hidden;
+extern __typeof (__fdopendir) __fdopendir attribute_hidden;
+extern __typeof (__readdir) __readdir attribute_hidden;
+extern __typeof (__readdir64) __readdir64 attribute_hidden;
+extern __typeof (__rewinddir) __rewinddir attribute_hidden;
+#  endif
+# endif
+
+#endif
diff --git a/REORG.TODO/include/dlfcn.h b/REORG.TODO/include/dlfcn.h
new file mode 100644
index 0000000000..2524292ebc
--- /dev/null
+++ b/REORG.TODO/include/dlfcn.h
@@ -0,0 +1,140 @@
+#ifndef _DLFCN_H
+#include <dlfcn/dlfcn.h>
+#ifndef _ISOMAC
+#include <link.h>		/* For ElfW.  */
+#include <stdbool.h>
+
+/* Internally used flag.  */
+#define __RTLD_DLOPEN	0x80000000
+#define __RTLD_SPROF	0x40000000
+#define __RTLD_OPENEXEC	0x20000000
+#define __RTLD_CALLMAP	0x10000000
+#define __RTLD_AUDIT	0x08000000
+#define __RTLD_SECURE	0x04000000 /* Apply additional security checks.  */
+#define __RTLD_NOIFUNC	0x02000000 /* Suppress calling ifunc functions.  */
+
+#define __LM_ID_CALLER	-2
+
+#ifdef SHARED
+/* Locally stored program arguments.  */
+extern int __dlfcn_argc attribute_hidden;
+extern char **__dlfcn_argv attribute_hidden;
+#else
+/* These variables are defined and initialized in the startup code.  */
+extern int __libc_argc attribute_hidden;
+extern char **__libc_argv attribute_hidden;
+
+# define __dlfcn_argc __libc_argc
+# define __dlfcn_argv __libc_argv
+#endif
+
+
+/* Now define the internal interfaces.  */
+
+#define __libc_dlopen(name) \
+  __libc_dlopen_mode (name, RTLD_LAZY | __RTLD_DLOPEN)
+extern void *__libc_dlopen_mode  (const char *__name, int __mode);
+extern void *__libc_dlsym   (void *__map, const char *__name);
+extern int   __libc_dlclose (void *__map);
+libc_hidden_proto (__libc_dlopen_mode)
+libc_hidden_proto (__libc_dlsym)
+libc_hidden_proto (__libc_dlclose)
+
+/* Locate shared object containing the given address.  */
+#ifdef ElfW
+extern int _dl_addr (const void *address, Dl_info *info,
+		     struct link_map **mapp, const ElfW(Sym) **symbolp)
+     internal_function;
+libc_hidden_proto (_dl_addr)
+#endif
+
+struct link_map;
+
+/* Close an object previously opened by _dl_open.  */
+extern void _dl_close (void *map) attribute_hidden;
+/* Same as above, but without locking and safety checks for user
+   provided map arguments.  */
+extern void _dl_close_worker (struct link_map *map, bool force)
+    attribute_hidden;
+
+/* Look up NAME in shared object HANDLE (which may be RTLD_DEFAULT or
+   RTLD_NEXT).  WHO is the calling function, for RTLD_NEXT.  Returns
+   the symbol value, which may be NULL.  */
+extern void *_dl_sym (void *handle, const char *name, void *who)
+    internal_function;
+
+/* Look up version VERSION of symbol NAME in shared object HANDLE
+   (which may be RTLD_DEFAULT or RTLD_NEXT).  WHO is the calling
+   function, for RTLD_NEXT.  Returns the symbol value, which may be
+   NULL.  */
+extern void *_dl_vsym (void *handle, const char *name, const char *version,
+		       void *who)
+    internal_function;
+
+/* Helper function for <dlfcn.h> functions.  Runs the OPERATE function via
+   _dl_catch_error.  Returns zero for success, nonzero for failure; and
+   arranges for `dlerror' to return the error details.
+   ARGS is passed as argument to OPERATE.  */
+extern int _dlerror_run (void (*operate) (void *), void *args)
+     internal_function;
+
+#ifdef SHARED
+# define DL_CALLER_DECL /* Nothing */
+# define DL_CALLER RETURN_ADDRESS (0)
+#else
+# define DL_CALLER_DECL , void *dl_caller
+# define DL_CALLER dl_caller
+#endif
+
+struct dlfcn_hook
+{
+  void *(*dlopen) (const char *file, int mode, void *dl_caller);
+  int (*dlclose) (void *handle);
+  void *(*dlsym) (void *handle, const char *name, void *dl_caller);
+  void *(*dlvsym) (void *handle, const char *name, const char *version,
+		   void *dl_caller);
+  char *(*dlerror) (void);
+  int (*dladdr) (const void *address, Dl_info *info);
+  int (*dladdr1) (const void *address, Dl_info *info,
+		  void **extra_info, int flags);
+  int (*dlinfo) (void *handle, int request, void *arg, void *dl_caller);
+  void *(*dlmopen) (Lmid_t nsid, const char *file, int mode, void *dl_caller);
+  void *pad[4];
+};
+
+extern struct dlfcn_hook *_dlfcn_hook;
+libdl_hidden_proto (_dlfcn_hook)
+
+extern void *__dlopen (const char *file, int mode DL_CALLER_DECL)
+     attribute_hidden;
+extern void *__dlmopen (Lmid_t nsid, const char *file, int mode DL_CALLER_DECL)
+     attribute_hidden;
+extern int __dlclose (void *handle)
+     attribute_hidden;
+extern void *__dlsym (void *handle, const char *name DL_CALLER_DECL)
+     attribute_hidden;
+extern void *__dlvsym (void *handle, const char *name, const char *version
+		       DL_CALLER_DECL)
+     attribute_hidden;
+extern char *__dlerror (void)
+     attribute_hidden;
+extern int __dladdr (const void *address, Dl_info *info)
+     attribute_hidden;
+extern int __dladdr1 (const void *address, Dl_info *info,
+		      void **extra_info, int flags)
+     attribute_hidden;
+extern int __dlinfo (void *handle, int request, void *arg DL_CALLER_DECL)
+     attribute_hidden;
+
+#ifndef SHARED
+struct link_map;
+extern void * __libc_dlsym_private (struct link_map *map, const char *name)
+     attribute_hidden;
+extern void __libc_register_dl_open_hook (struct link_map *map)
+     attribute_hidden;
+extern void __libc_register_dlfcn_hook (struct link_map *map)
+     attribute_hidden;
+#endif
+#endif
+
+#endif
diff --git a/REORG.TODO/include/elf.h b/REORG.TODO/include/elf.h
new file mode 100644
index 0000000000..f06a33f256
--- /dev/null
+++ b/REORG.TODO/include/elf.h
@@ -0,0 +1,17 @@
+#ifndef _ELF_H
+#include <elf/elf.h>
+
+# ifndef _ISOMAC
+
+/* Some information which is not meant for the public and therefore not
+   in <elf.h>.  */
+# include <dl-dtprocnum.h>
+# ifdef DT_1_SUPPORTED_MASK
+#  error DT_1_SUPPORTED_MASK is defined!
+# endif
+# define DT_1_SUPPORTED_MASK \
+   (DF_1_NOW | DF_1_NODELETE | DF_1_INITFIRST | DF_1_NOOPEN \
+    | DF_1_ORIGIN | DF_1_NODEFLIB)
+
+# endif /* !_ISOMAC */
+#endif /* elf.h */
diff --git a/REORG.TODO/include/endian.h b/REORG.TODO/include/endian.h
new file mode 100644
index 0000000000..e6313ba994
--- /dev/null
+++ b/REORG.TODO/include/endian.h
@@ -0,0 +1,17 @@
+#include <string/endian.h>
+
+#if defined _LIBC && !defined _ISOMAC
+# if __FLOAT_WORD_ORDER == __BIG_ENDIAN
+#  define BIG_ENDI 1
+#  undef LITTLE_ENDI
+#  define HIGH_HALF 0
+#  define  LOW_HALF 1
+# else
+#  if __FLOAT_WORD_ORDER == __LITTLE_ENDIAN
+#   undef BIG_ENDI
+#   define LITTLE_ENDI 1
+#   define HIGH_HALF 1
+#   define  LOW_HALF 0
+#  endif
+# endif
+#endif
diff --git a/REORG.TODO/include/envz.h b/REORG.TODO/include/envz.h
new file mode 100644
index 0000000000..633fcc6f40
--- /dev/null
+++ b/REORG.TODO/include/envz.h
@@ -0,0 +1,11 @@
+#ifndef _ENVZ_H
+
+#include <string/envz.h>
+
+# ifndef _ISOMAC
+
+libc_hidden_proto (envz_entry)
+libc_hidden_proto (envz_remove)
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/err.h b/REORG.TODO/include/err.h
new file mode 100644
index 0000000000..382855938e
--- /dev/null
+++ b/REORG.TODO/include/err.h
@@ -0,0 +1,14 @@
+#ifndef _ERR_H
+#include <misc/err.h>
+
+# ifndef _ISOMAC
+
+libc_hidden_proto (warn)
+libc_hidden_proto (warnx)
+libc_hidden_proto (vwarn)
+libc_hidden_proto (vwarnx)
+libc_hidden_proto (verr)
+libc_hidden_proto (verrx)
+
+# endif /* !_ISOMAC */
+#endif /* err.h */
diff --git a/REORG.TODO/include/errno.h b/REORG.TODO/include/errno.h
new file mode 100644
index 0000000000..73fc32e5e0
--- /dev/null
+++ b/REORG.TODO/include/errno.h
@@ -0,0 +1,52 @@
+#ifndef _ERRNO_H
+
+#include <stdlib/errno.h>
+
+#if defined _ERRNO_H && !defined _ISOMAC
+
+# if IS_IN (rtld)
+#  include <dl-sysdep.h>
+#  ifndef RTLD_PRIVATE_ERRNO
+#   error "dl-sysdep.h must define RTLD_PRIVATE_ERRNO!"
+#  endif
+# else
+#  define RTLD_PRIVATE_ERRNO	0
+# endif
+
+# if RTLD_PRIVATE_ERRNO
+/* The dynamic linker uses its own private errno variable.
+   All access to errno inside the dynamic linker is serialized,
+   so a single (hidden) global variable is all it needs.  */
+
+#  undef  errno
+#  define errno rtld_errno
+extern int rtld_errno attribute_hidden;
+
+# elif IS_IN_LIB
+
+#  include <tls.h>
+
+#  undef  errno
+#  if IS_IN (libc)
+#   define errno __libc_errno
+#  else
+#   define errno errno		/* For #ifndef errno tests.  */
+#  endif
+extern __thread int errno attribute_tls_model_ie;
+
+# endif	/* IS_IN_LIB */
+
+# define __set_errno(val) (errno = (val))
+
+# ifndef __ASSEMBLER__
+extern int *__errno_location (void) __THROW __attribute__ ((__const__))
+#  if RTLD_PRIVATE_ERRNO
+     attribute_hidden
+#  endif
+;
+libc_hidden_proto (__errno_location)
+# endif
+
+#endif /* _ERRNO_H */
+
+#endif /* ! _ERRNO_H */
diff --git a/REORG.TODO/include/error.h b/REORG.TODO/include/error.h
new file mode 100644
index 0000000000..70f3192fa6
--- /dev/null
+++ b/REORG.TODO/include/error.h
@@ -0,0 +1 @@
+#include <misc/error.h>
diff --git a/REORG.TODO/include/execinfo.h b/REORG.TODO/include/execinfo.h
new file mode 100644
index 0000000000..0b132b089f
--- /dev/null
+++ b/REORG.TODO/include/execinfo.h
@@ -0,0 +1,16 @@
+#ifndef _EXECINFO_H
+#include <debug/execinfo.h>
+
+# ifndef _ISOMAC
+
+extern int __backtrace (void **__array, int __size);
+libc_hidden_proto (__backtrace)
+
+extern char **__backtrace_symbols (void *const *__array, int __size);
+
+extern void __backtrace_symbols_fd (void *const *__array, int __size,
+				    int __fd);
+libc_hidden_proto (__backtrace_symbols_fd)
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/fcntl.h b/REORG.TODO/include/fcntl.h
new file mode 100644
index 0000000000..9a007c358c
--- /dev/null
+++ b/REORG.TODO/include/fcntl.h
@@ -0,0 +1,41 @@
+#ifndef _FCNTL_H
+#include <io/fcntl.h>
+
+#ifndef _ISOMAC
+/* Now define the internal interfaces.  */
+extern int __open64 (const char *__file, int __oflag, ...);
+libc_hidden_proto (__open64)
+extern int __libc_open64 (const char *file, int oflag, ...);
+extern int __libc_open (const char *file, int oflag, ...);
+libc_hidden_proto (__libc_open)
+extern int __libc_fcntl (int fd, int cmd, ...) attribute_hidden;
+#ifndef NO_CANCELLATION
+extern int __fcntl_nocancel (int fd, int cmd, ...) attribute_hidden;
+libc_hidden_proto (__libc_fcntl)
+#endif
+extern int __open (const char *__file, int __oflag, ...);
+libc_hidden_proto (__open)
+extern int __fcntl (int __fd, int __cmd, ...);
+libc_hidden_proto (__fcntl)
+extern int __openat (int __fd, const char *__file, int __oflag, ...)
+  __nonnull ((2));
+libc_hidden_proto (__openat)
+extern int __openat64 (int __fd, const char *__file, int __oflag, ...)
+  __nonnull ((2));
+libc_hidden_proto (__openat64)
+
+extern int __open_2 (const char *__path, int __oflag);
+extern int __open64_2 (const char *__path, int __oflag);
+extern int __openat_2 (int __fd, const char *__path, int __oflag);
+extern int __openat64_2 (int __fd, const char *__path, int __oflag);
+
+
+#if IS_IN (rtld)
+#  include <dl-fcntl.h>
+#endif
+
+/* Flag determining whether the *at system calls are available.  */
+extern int __have_atfcts attribute_hidden;
+#endif
+
+#endif
diff --git a/REORG.TODO/include/features.h b/REORG.TODO/include/features.h
new file mode 100644
index 0000000000..972cbd2b5d
--- /dev/null
+++ b/REORG.TODO/include/features.h
@@ -0,0 +1,450 @@
+/* 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	_FEATURES_H
+#define	_FEATURES_H	1
+
+/* These are defined by the user (or the compiler)
+   to specify the desired environment:
+
+   __STRICT_ANSI__	ISO Standard C.
+   _ISOC99_SOURCE	Extensions to ISO C89 from ISO C99.
+   _ISOC11_SOURCE	Extensions to ISO C99 from ISO C11.
+   __STDC_WANT_LIB_EXT2__
+			Extensions to ISO C99 from TR 27431-2:2010.
+   __STDC_WANT_IEC_60559_BFP_EXT__
+			Extensions to ISO C11 from TS 18661-1:2014.
+   __STDC_WANT_IEC_60559_FUNCS_EXT__
+			Extensions to ISO C11 from TS 18661-4:2015.
+   __STDC_WANT_IEC_60559_TYPES_EXT__
+			Extensions to ISO C11 from TS 18661-3:2015.
+
+   _POSIX_SOURCE	IEEE Std 1003.1.
+   _POSIX_C_SOURCE	If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
+			if >=199309L, add IEEE Std 1003.1b-1993;
+			if >=199506L, add IEEE Std 1003.1c-1995;
+			if >=200112L, all of IEEE 1003.1-2004
+			if >=200809L, all of IEEE 1003.1-2008
+   _XOPEN_SOURCE	Includes POSIX and XPG things.  Set to 500 if
+			Single Unix conformance is wanted, to 600 for the
+			sixth revision, to 700 for the seventh revision.
+   _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
+   _LARGEFILE_SOURCE	Some more functions for correct standard I/O.
+   _LARGEFILE64_SOURCE	Additional functionality from LFS for large files.
+   _FILE_OFFSET_BITS=N	Select default filesystem interface.
+   _ATFILE_SOURCE	Additional *at interfaces.
+   _GNU_SOURCE		All of the above, plus GNU extensions.
+   _DEFAULT_SOURCE	The default set of features (taking precedence over
+			__STRICT_ANSI__).
+
+   _FORTIFY_SOURCE	Add security hardening to many library functions.
+			Set to 1 or 2; 2 performs stricter checks than 1.
+
+   _REENTRANT, _THREAD_SAFE
+			Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
+
+   The `-ansi' switch to the GNU C compiler, and standards conformance
+   options such as `-std=c99', define __STRICT_ANSI__.  If none of
+   these are defined, or if _DEFAULT_SOURCE is defined, the default is
+   to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+   200809L, as well as enabling miscellaneous functions from BSD and
+   SVID.  If more than one of these are defined, they accumulate.  For
+   example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+   give you ISO C, 1003.1, and 1003.2, but nothing else.
+
+   These are defined by this file and are used by the
+   header files to decide what to declare or define:
+
+   __GLIBC_USE (F)	Define things from feature set F.  This is defined
+			to 1 or 0; the subsequent macros are either defined
+			or undefined, and those tests should be moved to
+			__GLIBC_USE.
+   __USE_ISOC11		Define ISO C11 things.
+   __USE_ISOC99		Define ISO C99 things.
+   __USE_ISOC95		Define ISO C90 AMD1 (C95) things.
+   __USE_POSIX		Define IEEE Std 1003.1 things.
+   __USE_POSIX2		Define IEEE Std 1003.2 things.
+   __USE_POSIX199309	Define IEEE Std 1003.1, and .1b things.
+   __USE_POSIX199506	Define IEEE Std 1003.1, .1b, .1c and .1i things.
+   __USE_XOPEN		Define XPG things.
+   __USE_XOPEN_EXTENDED	Define X/Open Unix things.
+   __USE_UNIX98		Define Single Unix V2 things.
+   __USE_XOPEN2K        Define XPG6 things.
+   __USE_XOPEN2KXSI     Define XPG6 XSI things.
+   __USE_XOPEN2K8       Define XPG7 things.
+   __USE_XOPEN2K8XSI    Define XPG7 XSI things.
+   __USE_LARGEFILE	Define correct standard I/O things.
+   __USE_LARGEFILE64	Define LFS things with separate names.
+   __USE_FILE_OFFSET64	Define 64bit interface as default.
+   __USE_MISC		Define things from 4.3BSD or System V Unix.
+   __USE_ATFILE		Define *at interfaces and AT_* constants for them.
+   __USE_GNU		Define GNU extensions.
+   __USE_FORTIFY_LEVEL	Additional security measures used, according to level.
+
+   The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
+   defined by this file unconditionally.  `__GNU_LIBRARY__' is provided
+   only for compatibility.  All new code should use the other symbols
+   to test for features.
+
+   All macros listed above as possibly being defined by this file are
+   explicitly undefined if they are not explicitly defined.
+   Feature-test macros that are not defined by the user or compiler
+   but are implied by the other feature-test macros defined (or by the
+   lack of any definitions) are defined by the file.
+
+   ISO C feature test macros depend on the definition of the macro
+   when an affected header is included, not when the first system
+   header is included, and so they are handled in
+   <bits/libc-header-start.h>, which does not have a multiple include
+   guard.  Feature test macros that can be handled from the first
+   system header included are handled here.  */
+
+
+/* Undefine everything, so we get a clean slate.  */
+#undef	__USE_ISOC11
+#undef	__USE_ISOC99
+#undef	__USE_ISOC95
+#undef	__USE_ISOCXX11
+#undef	__USE_POSIX
+#undef	__USE_POSIX2
+#undef	__USE_POSIX199309
+#undef	__USE_POSIX199506
+#undef	__USE_XOPEN
+#undef	__USE_XOPEN_EXTENDED
+#undef	__USE_UNIX98
+#undef	__USE_XOPEN2K
+#undef	__USE_XOPEN2KXSI
+#undef	__USE_XOPEN2K8
+#undef	__USE_XOPEN2K8XSI
+#undef	__USE_LARGEFILE
+#undef	__USE_LARGEFILE64
+#undef	__USE_FILE_OFFSET64
+#undef	__USE_MISC
+#undef	__USE_ATFILE
+#undef	__USE_GNU
+#undef	__USE_FORTIFY_LEVEL
+#undef	__KERNEL_STRICT_NAMES
+#undef	__GLIBC_USE_DEPRECATED_GETS
+
+/* Suppress kernel-name space pollution unless user expressedly asks
+   for it.  */
+#ifndef _LOOSE_KERNEL_NAMES
+# define __KERNEL_STRICT_NAMES
+#endif
+
+/* Convenience macro to test the version of gcc.
+   Use like this:
+   #if __GNUC_PREREQ (2,8)
+   ... code requiring gcc 2.8 or later ...
+   #endif
+   Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
+   added in 2.0.  */
+#if defined __GNUC__ && defined __GNUC_MINOR__
+# define __GNUC_PREREQ(maj, min) \
+	((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
+#else
+# define __GNUC_PREREQ(maj, min) 0
+#endif
+
+/* Similarly for clang.  Features added to GCC after version 4.2 may
+   or may not also be available in clang, and clang's definitions of
+   __GNUC(_MINOR)__ are fixed at 4 and 2 respectively.  Not all such
+   features can be queried via __has_extension/__has_feature.  */
+#if defined __clang_major__ && defined __clang_minor__
+# define __glibc_clang_prereq(maj, min) \
+  ((__clang_major__ << 16) + __clang_minor__ >= ((maj) << 16) + (min))
+#else
+# define __glibc_clang_prereq(maj, min) 0
+#endif
+
+/* Whether to use feature set F.  */
+#define __GLIBC_USE(F)	__GLIBC_USE_ ## F
+
+/* _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+   _DEFAULT_SOURCE.  If _DEFAULT_SOURCE is present we do not
+   issue a warning; the expectation is that the source is being
+   transitioned to use the new macro.  */
+#if (defined _BSD_SOURCE || defined _SVID_SOURCE) \
+    && !defined _DEFAULT_SOURCE
+# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
+# undef  _DEFAULT_SOURCE
+# define _DEFAULT_SOURCE	1
+#endif
+
+/* If _GNU_SOURCE was defined by the user, turn on all the other features.  */
+#ifdef _GNU_SOURCE
+# undef  _ISOC95_SOURCE
+# define _ISOC95_SOURCE	1
+# undef  _ISOC99_SOURCE
+# define _ISOC99_SOURCE	1
+# undef  _ISOC11_SOURCE
+# define _ISOC11_SOURCE	1
+# undef  _POSIX_SOURCE
+# define _POSIX_SOURCE	1
+# undef  _POSIX_C_SOURCE
+# define _POSIX_C_SOURCE	200809L
+# undef  _XOPEN_SOURCE
+# define _XOPEN_SOURCE	700
+# undef  _XOPEN_SOURCE_EXTENDED
+# define _XOPEN_SOURCE_EXTENDED	1
+# undef	 _LARGEFILE64_SOURCE
+# define _LARGEFILE64_SOURCE	1
+# undef  _DEFAULT_SOURCE
+# define _DEFAULT_SOURCE	1
+# undef  _ATFILE_SOURCE
+# define _ATFILE_SOURCE	1
+#endif
+
+/* If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
+   define _DEFAULT_SOURCE.  */
+#if (defined _DEFAULT_SOURCE					\
+     || (!defined __STRICT_ANSI__				\
+	 && !defined _ISOC99_SOURCE				\
+	 && !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE	\
+	 && !defined _XOPEN_SOURCE))
+# undef  _DEFAULT_SOURCE
+# define _DEFAULT_SOURCE	1
+#endif
+
+/* This is to enable the ISO C11 extension.  */
+#if (defined _ISOC11_SOURCE \
+     || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L))
+# define __USE_ISOC11	1
+#endif
+
+/* This is to enable the ISO C99 extension.  */
+#if (defined _ISOC99_SOURCE || defined _ISOC11_SOURCE \
+     || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L))
+# define __USE_ISOC99	1
+#endif
+
+/* This is to enable the ISO C90 Amendment 1:1995 extension.  */
+#if (defined _ISOC99_SOURCE || defined _ISOC11_SOURCE \
+     || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199409L))
+# define __USE_ISOC95	1
+#endif
+
+/* This is to enable compatibility for ISO C++11.
+
+   So far g++ does not provide a macro.  Check the temporary macro for
+   now, too.  */
+#if ((defined __cplusplus && __cplusplus >= 201103L)			      \
+     || defined __GXX_EXPERIMENTAL_CXX0X__)
+# define __USE_ISOCXX11	1
+#endif
+
+/* If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
+   is defined, use POSIX.1-2008 (or another version depending on
+   _XOPEN_SOURCE).  */
+#ifdef _DEFAULT_SOURCE
+# if !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE
+#  define __USE_POSIX_IMPLICITLY	1
+# endif
+# undef  _POSIX_SOURCE
+# define _POSIX_SOURCE	1
+# undef  _POSIX_C_SOURCE
+# define _POSIX_C_SOURCE	200809L
+#endif
+
+#if ((!defined __STRICT_ANSI__					\
+      || (defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 500))	\
+     && !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE)
+# define _POSIX_SOURCE	1
+# if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 500
+#  define _POSIX_C_SOURCE	2
+# elif defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 600
+#  define _POSIX_C_SOURCE	199506L
+# elif defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 700
+#  define _POSIX_C_SOURCE	200112L
+# else
+#  define _POSIX_C_SOURCE	200809L
+# endif
+# define __USE_POSIX_IMPLICITLY	1
+#endif
+
+/* Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
+   defined in all multithreaded code.  GNU libc has not required this
+   for many years.  We now treat them as compatibility synonyms for
+   _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
+   comprehensive support for multithreaded code.  Using them never
+   lowers the selected level of POSIX conformance, only raises it.  */
+#if ((!defined _POSIX_C_SOURCE || (_POSIX_C_SOURCE - 0) < 199506L) \
+     && (defined _REENTRANT || defined _THREAD_SAFE))
+# define _POSIX_SOURCE   1
+# undef  _POSIX_C_SOURCE
+# define _POSIX_C_SOURCE 199506L
+#endif
+
+#if (defined _POSIX_SOURCE					\
+     || (defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 1)	\
+     || defined _XOPEN_SOURCE)
+# define __USE_POSIX	1
+#endif
+
+#if defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 2 || defined _XOPEN_SOURCE
+# define __USE_POSIX2	1
+#endif
+
+#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 199309L
+# define __USE_POSIX199309	1
+#endif
+
+#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 199506L
+# define __USE_POSIX199506	1
+#endif
+
+#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 200112L
+# define __USE_XOPEN2K		1
+# undef __USE_ISOC95
+# define __USE_ISOC95		1
+# undef __USE_ISOC99
+# define __USE_ISOC99		1
+#endif
+
+#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 200809L
+# define __USE_XOPEN2K8		1
+# undef  _ATFILE_SOURCE
+# define _ATFILE_SOURCE	1
+#endif
+
+#ifdef	_XOPEN_SOURCE
+# define __USE_XOPEN	1
+# if (_XOPEN_SOURCE - 0) >= 500
+#  define __USE_XOPEN_EXTENDED	1
+#  define __USE_UNIX98	1
+#  undef _LARGEFILE_SOURCE
+#  define _LARGEFILE_SOURCE	1
+#  if (_XOPEN_SOURCE - 0) >= 600
+#   if (_XOPEN_SOURCE - 0) >= 700
+#    define __USE_XOPEN2K8	1
+#    define __USE_XOPEN2K8XSI	1
+#   endif
+#   define __USE_XOPEN2K	1
+#   define __USE_XOPEN2KXSI	1
+#   undef __USE_ISOC95
+#   define __USE_ISOC95		1
+#   undef __USE_ISOC99
+#   define __USE_ISOC99		1
+#  endif
+# else
+#  ifdef _XOPEN_SOURCE_EXTENDED
+#   define __USE_XOPEN_EXTENDED	1
+#  endif
+# endif
+#endif
+
+#ifdef _LARGEFILE_SOURCE
+# define __USE_LARGEFILE	1
+#endif
+
+#ifdef _LARGEFILE64_SOURCE
+# define __USE_LARGEFILE64	1
+#endif
+
+#if defined _FILE_OFFSET_BITS && _FILE_OFFSET_BITS == 64
+# define __USE_FILE_OFFSET64	1
+#endif
+
+#if defined _DEFAULT_SOURCE
+# define __USE_MISC	1
+#endif
+
+#ifdef	_ATFILE_SOURCE
+# define __USE_ATFILE	1
+#endif
+
+#ifdef	_GNU_SOURCE
+# define __USE_GNU	1
+#endif
+
+#if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0
+# if !defined __OPTIMIZE__ || __OPTIMIZE__ <= 0
+#  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
+# elif !__GNUC_PREREQ (4, 1)
+#  warning _FORTIFY_SOURCE requires GCC 4.1 or later
+# elif _FORTIFY_SOURCE > 1
+#  define __USE_FORTIFY_LEVEL 2
+# else
+#  define __USE_FORTIFY_LEVEL 1
+# endif
+#endif
+#ifndef __USE_FORTIFY_LEVEL
+# define __USE_FORTIFY_LEVEL 0
+#endif
+
+/* The function 'gets' existed in C89, but is impossible to use
+   safely.  It has been removed from ISO C11 and ISO C++14.  Note: for
+   compatibility with various implementations of <cstdio>, this test
+   must consider only the value of __cplusplus when compiling C++.  */
+#if defined __cplusplus ? __cplusplus >= 201402L : defined __USE_ISOC11
+# define __GLIBC_USE_DEPRECATED_GETS 0
+#else
+# define __GLIBC_USE_DEPRECATED_GETS 1
+#endif
+
+/* Get definitions of __STDC_* predefined macros, if the compiler has
+   not preincluded this header automatically.  */
+#include <stdc-predef.h>
+
+/* This macro indicates that the installed library is the GNU C Library.
+   For historic reasons the value now is 6 and this will stay from now
+   on.  The use of this variable is deprecated.  Use __GLIBC__ and
+   __GLIBC_MINOR__ now (see below) when you want to test for a specific
+   GNU C library version and use the values in <gnu/lib-names.h> to get
+   the sonames of the shared libraries.  */
+#undef  __GNU_LIBRARY__
+#define __GNU_LIBRARY__ 6
+
+/* Major and minor version number of the GNU C library package.  Use
+   these macros to test for features in specific releases.  */
+#define	__GLIBC__	2
+#define	__GLIBC_MINOR__	25
+
+#define __GLIBC_PREREQ(maj, min) \
+	((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min))
+
+/* This is here only because every header file already includes this one.  */
+#ifndef __ASSEMBLER__
+# ifndef _SYS_CDEFS_H
+#  include <sys/cdefs.h>
+# endif
+
+/* If we don't have __REDIRECT, prototypes will be missing if
+   __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. */
+# if defined __USE_FILE_OFFSET64 && !defined __REDIRECT
+#  define __USE_LARGEFILE	1
+#  define __USE_LARGEFILE64	1
+# endif
+
+#endif	/* !ASSEMBLER */
+
+/* Decide whether we can define 'extern inline' functions in headers.  */
+#if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ \
+    && !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__ \
+    && defined __extern_inline
+# define __USE_EXTERN_INLINES	1
+#endif
+
+
+/* This is here only because every header file already includes this one.
+   Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
+   <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
+   that will always return failure (and set errno to ENOSYS).  */
+#include <gnu/stubs.h>
+
+
+#endif	/* features.h  */
diff --git a/REORG.TODO/include/fenv.h b/REORG.TODO/include/fenv.h
new file mode 100644
index 0000000000..de4d46f8b7
--- /dev/null
+++ b/REORG.TODO/include/fenv.h
@@ -0,0 +1,47 @@
+#ifndef _FENV_H
+#include <math/fenv.h>
+
+#ifndef _ISOMAC
+# include <stdbool.h>
+/* Now define the internal interfaces.  */
+
+extern int __feclearexcept (int __excepts);
+extern int __fegetexcept (void);
+extern int __fegetexceptflag (fexcept_t *__flagp, int __excepts);
+extern int __feraiseexcept (int __excepts);
+extern int __fesetexceptflag (const fexcept_t *__flagp, int __excepts);
+extern int __fegetenv (fenv_t *__envp);
+extern int __fesetenv (const fenv_t *__envp);
+extern int __feupdateenv (const fenv_t *__envp);
+extern __typeof (fegetround) __fegetround __attribute_pure__;
+extern __typeof (feholdexcept) __feholdexcept;
+extern __typeof (fesetround) __fesetround;
+
+libm_hidden_proto (feraiseexcept)
+libm_hidden_proto (__feraiseexcept)
+libm_hidden_proto (fegetenv)
+libm_hidden_proto (__fegetenv)
+libm_hidden_proto (fegetround)
+libm_hidden_proto (__fegetround)
+libm_hidden_proto (fesetenv)
+libm_hidden_proto (__fesetenv)
+libm_hidden_proto (fesetround)
+libm_hidden_proto (__fesetround)
+libm_hidden_proto (feholdexcept)
+libm_hidden_proto (__feholdexcept)
+libm_hidden_proto (feupdateenv)
+libm_hidden_proto (__feupdateenv)
+libm_hidden_proto (fetestexcept)
+libm_hidden_proto (feclearexcept)
+
+/* Rounding mode context.  This allows functions to set/restore rounding mode
+   only when the desired rounding mode is different from the current rounding
+   mode.  */
+struct rm_ctx
+{
+  fenv_t env;
+  bool updated_status;
+};
+#endif
+
+#endif
diff --git a/REORG.TODO/include/float.h b/REORG.TODO/include/float.h
new file mode 100644
index 0000000000..20c4acbf78
--- /dev/null
+++ b/REORG.TODO/include/float.h
@@ -0,0 +1,31 @@
+#ifndef _LIBC_FLOAT_H
+#define _LIBC_FLOAT_H
+
+#ifndef _ISOMAC
+# define __STDC_WANT_IEC_60559_TYPES_EXT__
+#endif
+
+#include_next <float.h>
+
+/* Supplement float.h macros for _Float128 for older compilers
+   which do not yet support the type.  These are described in
+   TS 18661-3.  */
+#ifndef _ISOMAC
+# include <features.h>
+# include <bits/floatn.h>
+# if !__GNUC_PREREQ (7, 0) && __HAVE_DISTINCT_FLOAT128
+#  define FLT128_MANT_DIG	113
+#  define FLT128_DECIMAL_DIG	36
+#  define FLT128_DIG		33
+#  define FLT128_MIN_EXP	(-16381)
+#  define FLT128_MIN_10_EXP	(-4931)
+#  define FLT128_MAX_EXP	16384
+#  define FLT128_MAX_10_EXP	4932
+#  define FLT128_MAX		1.18973149535723176508575932662800702e+4932Q
+#  define FLT128_EPSILON	1.92592994438723585305597794258492732e-34Q
+#  define FLT128_MIN		3.36210314311209350626267781732175260e-4932Q
+#  define FLT128_TRUE_MIN	6.47517511943802511092443895822764655e-4966Q
+# endif
+#endif
+
+#endif /* _LIBC_FLOAT_H */
diff --git a/REORG.TODO/include/fmtmsg.h b/REORG.TODO/include/fmtmsg.h
new file mode 100644
index 0000000000..6ac606df2b
--- /dev/null
+++ b/REORG.TODO/include/fmtmsg.h
@@ -0,0 +1 @@
+#include <stdlib/fmtmsg.h>
diff --git a/REORG.TODO/include/fnmatch.h b/REORG.TODO/include/fnmatch.h
new file mode 100644
index 0000000000..9ef8150eda
--- /dev/null
+++ b/REORG.TODO/include/fnmatch.h
@@ -0,0 +1,9 @@
+#ifndef _FNMATCH_H
+
+#include <posix/fnmatch.h>
+
+#ifndef _ISOMAC
+libc_hidden_proto (fnmatch)
+#endif
+
+#endif
diff --git a/REORG.TODO/include/fpu_control.h b/REORG.TODO/include/fpu_control.h
new file mode 100644
index 0000000000..4498a83b87
--- /dev/null
+++ b/REORG.TODO/include/fpu_control.h
@@ -0,0 +1,10 @@
+#ifndef _FPU_CONTROL_H
+#include_next <fpu_control.h>
+
+# ifndef _ISOMAC
+
+/* Called at startup.  It can be used to manipulate fpu control register.  */
+extern void __setfpucw (fpu_control_t);
+
+# endif /* !_ISOMAC */
+#endif /* fpu_control.h */
diff --git a/REORG.TODO/include/ftw.h b/REORG.TODO/include/ftw.h
new file mode 100644
index 0000000000..4fb654cf22
--- /dev/null
+++ b/REORG.TODO/include/ftw.h
@@ -0,0 +1 @@
+#include <io/ftw.h>
diff --git a/REORG.TODO/include/gconv.h b/REORG.TODO/include/gconv.h
new file mode 100644
index 0000000000..2bcf6c6821
--- /dev/null
+++ b/REORG.TODO/include/gconv.h
@@ -0,0 +1 @@
+#include <iconv/gconv.h>
diff --git a/REORG.TODO/include/getopt.h b/REORG.TODO/include/getopt.h
new file mode 100644
index 0000000000..74ca6d453a
--- /dev/null
+++ b/REORG.TODO/include/getopt.h
@@ -0,0 +1 @@
+#include <posix/getopt.h>
diff --git a/REORG.TODO/include/getopt_int.h b/REORG.TODO/include/getopt_int.h
new file mode 100644
index 0000000000..9f7ced8519
--- /dev/null
+++ b/REORG.TODO/include/getopt_int.h
@@ -0,0 +1 @@
+#include <posix/getopt_int.h>
diff --git a/REORG.TODO/include/glob.h b/REORG.TODO/include/glob.h
new file mode 100644
index 0000000000..228fe30ca8
--- /dev/null
+++ b/REORG.TODO/include/glob.h
@@ -0,0 +1,17 @@
+#ifndef	_GLOB_H
+#include <posix/glob.h>
+
+#ifndef _ISOMAC
+libc_hidden_proto (glob)
+libc_hidden_proto (glob64)
+libc_hidden_proto (globfree)
+libc_hidden_proto (globfree64)
+
+/* Now define the internal interfaces.  */
+extern int __glob_pattern_p (const char *__pattern, int __quote);
+extern int __glob64 (const char *__pattern, int __flags,
+		     int (*__errfunc) (const char *, int),
+		     glob64_t *__pglob);
+#endif
+
+#endif
diff --git a/REORG.TODO/include/gmp.h b/REORG.TODO/include/gmp.h
new file mode 100644
index 0000000000..e6f635e8d5
--- /dev/null
+++ b/REORG.TODO/include/gmp.h
@@ -0,0 +1,35 @@
+/* Include gmp-mparam.h first, such that definitions of _SHORT_LIMB
+   and _LONG_LONG_LIMB in it can take effect into gmp.h.  */
+#include <gmp-mparam.h>
+
+#ifndef __GMP_H__
+
+#include <stdlib/gmp.h>
+
+#include <bits/floatn.h>
+
+/* Now define the internal interfaces.  */
+extern mp_size_t __mpn_extract_double (mp_ptr res_ptr, mp_size_t size,
+				       int *expt, int *is_neg,
+				       double value);
+
+extern mp_size_t __mpn_extract_long_double (mp_ptr res_ptr, mp_size_t size,
+					    int *expt, int *is_neg,
+					    long double value);
+
+#if __HAVE_DISTINCT_FLOAT128
+extern mp_size_t __mpn_extract_float128 (mp_ptr res_ptr, mp_size_t size,
+					 int *expt, int *is_neg,
+					 _Float128 value);
+#endif
+
+extern float __mpn_construct_float (mp_srcptr frac_ptr, int expt, int sign);
+
+extern double __mpn_construct_double (mp_srcptr frac_ptr, int expt,
+				      int negative);
+
+extern long double __mpn_construct_long_double (mp_srcptr frac_ptr, int expt,
+						int sign);
+
+
+#endif
diff --git a/REORG.TODO/include/gnu-versions.h b/REORG.TODO/include/gnu-versions.h
new file mode 100644
index 0000000000..40f2bfcc79
--- /dev/null
+++ b/REORG.TODO/include/gnu-versions.h
@@ -0,0 +1,52 @@
+/* Header with interface version macros for library pieces copied elsewhere.
+   Copyright (C) 1995-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 _GNU_VERSIONS_H
+#define	_GNU_VERSIONS_H	1
+
+/* This file exists to define these few macros.  Each specifies a version
+   number associated with the library interface of a piece of the C library
+   which is also distributed with other GNU packages.  These pieces are
+   both part of the GNU C library and also distributed with other GNU
+   packages so those packages may use their facilities on systems lacking
+   the GNU C library.  The source files for each piece surround all their
+   code with `#ifndef ELIDE_CODE' after defining it with this:
+
+   #define OBSTACK_INTERFACE_VERSION 1
+   #if !defined (_LIBC) && defined (__GNU_LIBRARY__) && __GNU_LIBRARY__ > 1
+   #include <gnu-versions.h>
+   #if _GNU_OBSTACK_INTERFACE_VERSION == OBSTACK_INTERFACE_VERSION
+   #define ELIDE_CODE
+   #endif
+   #endif
+
+   This allows those one to avoid compiling those files when part of a GNU
+   package not libc, on a system using a GNU C library that supports the
+   same interface.
+
+   Please preserve the format of the comments after each macro.  And
+   remember, if any of these versions change, the libc.so major version
+   number must change too (so avoid it)!  */
+
+#define _GNU_OBSTACK_INTERFACE_VERSION	1 /* vs malloc/obstack.c */
+#define _GNU_REGEX_INTERFACE_VERSION	1 /* vs posix/regex.c */
+#define _GNU_GLOB_INTERFACE_VERSION	1 /* vs posix/glob.c */
+#define _GNU_GETOPT_INTERFACE_VERSION	2 /* vs posix/getopt.c and
+					     posix/getopt1.c */
+
+#endif	/* gnu-versions.h */
diff --git a/REORG.TODO/include/gnu/libc-version.h b/REORG.TODO/include/gnu/libc-version.h
new file mode 100644
index 0000000000..02e02884f1
--- /dev/null
+++ b/REORG.TODO/include/gnu/libc-version.h
@@ -0,0 +1,34 @@
+/* Interface to GNU libc specific functions for version information.
+   Copyright (C) 1998-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 _GNU_LIBC_VERSION_H
+#define	_GNU_LIBC_VERSION_H	1
+
+#include <features.h>
+
+__BEGIN_DECLS
+
+/* Return string describing release status of currently running GNU libc.  */
+extern const char *gnu_get_libc_release (void) __THROW;
+
+/* Return string describing version of currently running GNU libc.  */
+extern const char *gnu_get_libc_version (void) __THROW;
+
+__END_DECLS
+
+#endif	/* gnu/libc-version.h */
diff --git a/REORG.TODO/include/gnu/stubs.h b/REORG.TODO/include/gnu/stubs.h
new file mode 100644
index 0000000000..6308e4e0e0
--- /dev/null
+++ b/REORG.TODO/include/gnu/stubs.h
@@ -0,0 +1,2 @@
+/* This is a placeholder used only while compiling libc.
+   The installed gnu/stubs.h file is created by make install.  */
diff --git a/REORG.TODO/include/grp-merge.h b/REORG.TODO/include/grp-merge.h
new file mode 100644
index 0000000000..331ac20ea9
--- /dev/null
+++ b/REORG.TODO/include/grp-merge.h
@@ -0,0 +1,7 @@
+#ifndef _GRP_MERGE_H
+#include <grp/grp-merge.h>
+
+libc_hidden_proto (__copy_grp)
+libc_hidden_proto (__merge_grp)
+
+#endif /* _GRP_MERGE_H */
diff --git a/REORG.TODO/include/grp.h b/REORG.TODO/include/grp.h
new file mode 100644
index 0000000000..0fb5c9a574
--- /dev/null
+++ b/REORG.TODO/include/grp.h
@@ -0,0 +1,64 @@
+#ifndef _GRP_H
+#include <grp/grp.h>
+
+#ifndef _ISOMAC
+libc_hidden_proto (setgroups)
+
+/* Now define the internal interfaces.  */
+extern int __getgrent_r (struct group *__resultbuf, char *buffer,
+			 size_t __buflen, struct group **__result)
+     attribute_hidden;
+extern int __old_getgrent_r (struct group *__resultbuf, char *buffer,
+			     size_t __buflen, struct group **__result);
+extern int __fgetgrent_r (FILE * __stream, struct group *__resultbuf,
+			  char *buffer, size_t __buflen,
+			  struct group **__result);
+
+/* Search for an entry with a matching group ID.  */
+extern int __getgrgid_r (__gid_t __gid, struct group *__resultbuf,
+			 char *__buffer, size_t __buflen,
+			 struct group **__result);
+extern int __old_getgrgid_r (__gid_t __gid, struct group *__resultbuf,
+			     char *__buffer, size_t __buflen,
+			     struct group **__result);
+
+/* Search for an entry with a matching group name.  */
+extern int __getgrnam_r (const char *__name, struct group *__resultbuf,
+			 char *__buffer, size_t __buflen,
+			 struct group **__result);
+extern int __old_getgrnam_r (const char *__name, struct group *__resultbuf,
+			     char *__buffer, size_t __buflen,
+			     struct group **__result);
+
+struct parser_data;
+extern int _nss_files_parse_grent (char *line, struct group *result,
+				   struct parser_data *data,
+				   size_t datalen, int *errnop);
+libc_hidden_proto (_nss_files_parse_grent)
+
+#define DECLARE_NSS_PROTOTYPES(service)					   \
+extern enum nss_status _nss_ ## service ## _setgrent (int);		   \
+extern enum nss_status _nss_ ## service ## _endgrent (void);		   \
+extern enum nss_status _nss_ ## service ## _getgrgid_r			   \
+		       (gid_t gid, struct group *grp, char *buffer,	   \
+			size_t buflen, int *errnop);			   \
+extern enum nss_status _nss_ ## service ## _getgrnam_r			   \
+		       (const char *name, struct group *grp,		   \
+			char *buffer, size_t buflen, int *errnop);	   \
+extern enum nss_status _nss_ ## service ##_getgrent_r			   \
+		       (struct group *result, char *buffer, size_t buflen, \
+			int *errnop);					   \
+extern enum nss_status _nss_ ## service ##_initgroups_dyn		   \
+		       (const char *user, gid_t group, long int *start,	   \
+			long int *size, gid_t **groupsp, long int limit,   \
+			int *errnop);
+
+DECLARE_NSS_PROTOTYPES (compat)
+DECLARE_NSS_PROTOTYPES (files)
+DECLARE_NSS_PROTOTYPES (hesiod)
+DECLARE_NSS_PROTOTYPES (nis)
+DECLARE_NSS_PROTOTYPES (nisplus)
+
+#undef DECLARE_NSS_PROTOTYPES
+#endif
+#endif
diff --git a/REORG.TODO/include/gshadow.h b/REORG.TODO/include/gshadow.h
new file mode 100644
index 0000000000..532801afd0
--- /dev/null
+++ b/REORG.TODO/include/gshadow.h
@@ -0,0 +1,18 @@
+#ifndef _GSHADOW_H
+#include <gshadow/gshadow.h>
+
+# ifndef _ISOMAC
+
+extern int __fgetsgent_r (FILE *stream, struct sgrp *resbuf, char *buffer,
+			  size_t buflen, struct sgrp **result);
+extern int __sgetsgent_r (const char *string, struct sgrp *resbuf,
+			  char *buffer, size_t buflen, struct sgrp **result);
+
+struct parser_data;
+extern int _nss_files_parse_sgent (char *line, struct sgrp *result,
+                                   struct parser_data *data,
+                                   size_t datalen, int *errnop);
+libc_hidden_proto (_nss_files_parse_sgent)
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/iconv.h b/REORG.TODO/include/iconv.h
new file mode 100644
index 0000000000..9091fa5904
--- /dev/null
+++ b/REORG.TODO/include/iconv.h
@@ -0,0 +1 @@
+#include <iconv/iconv.h>
diff --git a/REORG.TODO/include/ifaddrs.h b/REORG.TODO/include/ifaddrs.h
new file mode 100644
index 0000000000..54f4b7a3ce
--- /dev/null
+++ b/REORG.TODO/include/ifaddrs.h
@@ -0,0 +1,37 @@
+#ifndef _IFADDRS_H
+#include <inet/ifaddrs.h>
+
+# ifndef _ISOMAC
+
+#include <stdbool.h>
+#include <stdint.h>
+
+libc_hidden_proto (getifaddrs)
+libc_hidden_proto (freeifaddrs)
+
+struct in6addrinfo
+{
+  enum {
+    in6ai_deprecated = 1,
+    in6ai_homeaddress = 2
+  } flags:8;
+  uint8_t prefixlen;
+  uint16_t :16;
+  uint32_t index;
+  uint32_t addr[4];
+};
+
+extern void __check_pf (bool *seen_ipv4, bool *seen_ipv6,
+			struct in6addrinfo **in6ai, size_t *in6ailen)
+  attribute_hidden;
+extern void __free_in6ai (struct in6addrinfo *in6ai) attribute_hidden;
+extern void __check_native (uint32_t a1_index, int *a1_native,
+			    uint32_t a2_index, int *a2_native)
+  attribute_hidden;
+
+#if IS_IN (nscd)
+extern uint32_t __bump_nl_timestamp (void) attribute_hidden;
+#endif
+
+# endif /* !_ISOMAC */
+#endif	/* ifaddrs.h */
diff --git a/REORG.TODO/include/ifunc-impl-list.h b/REORG.TODO/include/ifunc-impl-list.h
new file mode 100644
index 0000000000..22ca05f495
--- /dev/null
+++ b/REORG.TODO/include/ifunc-impl-list.h
@@ -0,0 +1,56 @@
+/* Internal header file for __libc_supported_implementations.
+   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/>.  */
+
+#ifndef _IFUNC_IMPL_LIST_H
+#define _IFUNC_IMPL_LIST_H	1
+
+#include <stdbool.h>
+#include <stddef.h>
+
+struct libc_ifunc_impl
+{
+  /* The name of function to be tested.  */
+  const char *name;
+  /* The address of function to be tested.  */
+  void (*fn) (void);
+  /* True if this implementation is usable on this machine.  */
+  bool usable;
+};
+
+/* Add an IFUNC implementation, IMPL, for function FUNC, to ARRAY with
+   USABLE at index I and advance I by one.  */
+#define IFUNC_IMPL_ADD(array, i, func, usable, impl) \
+  extern __typeof (func) impl attribute_hidden; \
+  (array)[i++] = (struct libc_ifunc_impl) { #impl, (void (*) (void)) impl, (usable) };
+
+/* Return the number of IFUNC implementations, N, for function FUNC if
+   string NAME matches FUNC.  */
+#define IFUNC_IMPL(n, name, func, ...) \
+  if (strcmp (name, #func) == 0) \
+    { \
+      __VA_ARGS__; \
+      return n; \
+    }
+
+/* Fill ARRAY of MAX elements with IFUNC implementations for function
+   NAME and return the number of valid entries.  */
+extern size_t __libc_ifunc_impl_list (const char *name,
+				      struct libc_ifunc_impl *array,
+				      size_t max);
+
+#endif /* ifunc-impl-list.h */
diff --git a/REORG.TODO/include/inline-hashtab.h b/REORG.TODO/include/inline-hashtab.h
new file mode 100644
index 0000000000..b0f5982a44
--- /dev/null
+++ b/REORG.TODO/include/inline-hashtab.h
@@ -0,0 +1,234 @@
+/* Fully-inline hash table, used mainly for managing TLS descriptors.
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Alexandre Oliva  <aoliva@redhat.com>
+
+   This file is derived from a 2003's version of libiberty's
+   hashtab.c, contributed by Vladimir Makarov (vmakarov@cygnus.com),
+   but with most adaptation points and support for deleting elements
+   removed.
+
+   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 INLINE_HASHTAB_H
+# define INLINE_HASHTAB_H 1
+
+extern void weak_function free (void *ptr);
+
+struct hashtab
+{
+  /* Table itself.  */
+  void **entries;
+
+  /* Current size (in entries) of the hash table */
+  size_t size;
+
+  /* Current number of elements.  */
+  size_t n_elements;
+
+  /* Free function for the entries array.  This may vary depending on
+     how early the array was allocated.  If it is NULL, then the array
+     can't be freed.  */
+  void (*free) (void *ptr);
+};
+
+inline static struct hashtab *
+htab_create (void)
+{
+  struct hashtab *ht = malloc (sizeof (struct hashtab));
+
+  if (! ht)
+    return NULL;
+  ht->size = 3;
+  ht->entries = malloc (sizeof (void *) * ht->size);
+  ht->free = free;
+  if (! ht->entries)
+    {
+      if (ht->free)
+	ht->free (ht);
+      return NULL;
+    }
+
+  ht->n_elements = 0;
+
+  memset (ht->entries, 0, sizeof (void *) * ht->size);
+
+  return ht;
+}
+
+/* This is only called from _dl_unmap, so it's safe to call
+   free().  */
+inline static void
+htab_delete (struct hashtab *htab)
+{
+  int i;
+
+  for (i = htab->size - 1; i >= 0; i--)
+    free (htab->entries[i]);
+
+  if (htab->free)
+    htab->free (htab->entries);
+  free (htab);
+}
+
+/* Similar to htab_find_slot, but without several unwanted side effects:
+    - Does not call htab->eq_f when it finds an existing entry.
+    - Does not change the count of elements/searches/collisions in the
+      hash table.
+   This function also assumes there are no deleted entries in the table.
+   HASH is the hash value for the element to be inserted.  */
+
+inline static void **
+find_empty_slot_for_expand (struct hashtab *htab, int hash)
+{
+  size_t size = htab->size;
+  unsigned int index = hash % size;
+  void **slot = htab->entries + index;
+  int hash2;
+
+  if (! *slot)
+    return slot;
+
+  hash2 = 1 + hash % (size - 2);
+  for (;;)
+    {
+      index += hash2;
+      if (index >= size)
+	index -= size;
+
+      slot = htab->entries + index;
+      if (! *slot)
+	return slot;
+    }
+}
+
+/* The following function changes size of memory allocated for the
+   entries and repeatedly inserts the table elements.  The occupancy
+   of the table after the call will be about 50%.  Naturally the hash
+   table must already exist.  Remember also that the place of the
+   table entries is changed.  If memory allocation failures are allowed,
+   this function will return zero, indicating that the table could not be
+   expanded.  If all goes well, it will return a non-zero value.  */
+
+inline static int
+htab_expand (struct hashtab *htab, int (*hash_fn) (void *))
+{
+  void **oentries;
+  void **olimit;
+  void **p;
+  void **nentries;
+  size_t nsize;
+
+  oentries = htab->entries;
+  olimit = oentries + htab->size;
+
+  /* Resize only when table after removal of unused elements is either
+     too full or too empty.  */
+  if (htab->n_elements * 2 > htab->size)
+    nsize = _dl_higher_prime_number (htab->n_elements * 2);
+  else
+    nsize = htab->size;
+
+  nentries = calloc (sizeof (void *), nsize);
+  if (nentries == NULL)
+    return 0;
+  htab->entries = nentries;
+  htab->size = nsize;
+
+  p = oentries;
+  do
+    {
+      if (*p)
+	*find_empty_slot_for_expand (htab, hash_fn (*p))
+	  = *p;
+
+      p++;
+    }
+  while (p < olimit);
+
+  /* Without recording the free corresponding to the malloc used to
+     allocate the table, we couldn't tell whether this was allocated
+     by the malloc() built into ld.so or the one in the main
+     executable or libc.  Calling free() for something that was
+     allocated by the early malloc(), rather than the final run-time
+     malloc() could do Very Bad Things (TM).  We will waste memory
+     allocated early as long as there's no corresponding free(), but
+     this isn't so much memory as to be significant.  */
+
+  if (htab->free)
+    htab->free (oentries);
+
+  /* Use the free() corresponding to the malloc() above to free this
+     up.  */
+  htab->free = free;
+
+  return 1;
+}
+
+/* This function searches for a hash table slot containing an entry
+   equal to the given element.  To delete an entry, call this with
+   INSERT = 0, then call htab_clear_slot on the slot returned (possibly
+   after doing some checks).  To insert an entry, call this with
+   INSERT = 1, then write the value you want into the returned slot.
+   When inserting an entry, NULL may be returned if memory allocation
+   fails.  */
+
+inline static void **
+htab_find_slot (struct hashtab *htab, void *ptr, int insert,
+		int (*hash_fn)(void *), int (*eq_fn)(void *, void *))
+{
+  unsigned int index;
+  int hash, hash2;
+  size_t size;
+  void **entry;
+
+  if (htab->size * 3 <= htab->n_elements * 4
+      && htab_expand (htab, hash_fn) == 0)
+    return NULL;
+
+  hash = hash_fn (ptr);
+
+  size = htab->size;
+  index = hash % size;
+
+  entry = &htab->entries[index];
+  if (!*entry)
+    goto empty_entry;
+  else if (eq_fn (*entry, ptr))
+    return entry;
+
+  hash2 = 1 + hash % (size - 2);
+  for (;;)
+    {
+      index += hash2;
+      if (index >= size)
+	index -= size;
+
+      entry = &htab->entries[index];
+      if (!*entry)
+	goto empty_entry;
+      else if (eq_fn (*entry, ptr))
+	return entry;
+    }
+
+ empty_entry:
+  if (!insert)
+    return NULL;
+
+  htab->n_elements++;
+  return entry;
+}
+
+#endif /* INLINE_HASHTAB_H */
diff --git a/REORG.TODO/include/langinfo.h b/REORG.TODO/include/langinfo.h
new file mode 100644
index 0000000000..d60d7f6382
--- /dev/null
+++ b/REORG.TODO/include/langinfo.h
@@ -0,0 +1,12 @@
+#ifndef _LANGINFO_H
+
+#include <locale/langinfo.h>
+
+#ifndef _ISOMAC
+libc_hidden_proto (nl_langinfo)
+
+extern __typeof (nl_langinfo_l) __nl_langinfo_l;
+libc_hidden_proto (__nl_langinfo_l)
+#endif
+
+#endif
diff --git a/REORG.TODO/include/libc-diag.h b/REORG.TODO/include/libc-diag.h
new file mode 100644
index 0000000000..db138c63b1
--- /dev/null
+++ b/REORG.TODO/include/libc-diag.h
@@ -0,0 +1,74 @@
+/* Macros for controlling diagnostic output from the compiler.
+   Copyright (C) 2014-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 _LIBC_DIAG_H
+#define _LIBC_DIAG_H 1
+
+/* Ignore the value of an expression when a cast to void does not
+   suffice (in particular, for a call to a function declared with
+   attribute warn_unused_result).  */
+#define ignore_value(x) \
+  ({ __typeof__ (x) __ignored_value = (x); (void) __ignored_value; })
+
+/* The macros to control diagnostics are structured like this, rather
+   than a single macro that both pushes and pops diagnostic state and
+   takes the affected code as an argument, because the GCC pragmas
+   work by disabling the diagnostic for a range of source locations
+   and do not work when all the pragmas and the affected code are in a
+   single macro expansion.  */
+
+/* Push diagnostic state.  */
+#define DIAG_PUSH_NEEDS_COMMENT _Pragma ("GCC diagnostic push")
+
+/* Pop diagnostic state.  */
+#define DIAG_POP_NEEDS_COMMENT _Pragma ("GCC diagnostic pop")
+
+#define _DIAG_STR1(s) #s
+#define _DIAG_STR(s) _DIAG_STR1(s)
+
+/* Ignore the diagnostic OPTION.  VERSION is the most recent GCC
+   version for which the diagnostic has been confirmed to appear in
+   the absence of the pragma (in the form MAJOR.MINOR for GCC 4.x,
+   just MAJOR for GCC 5 and later).  Uses of this pragma should be
+   reviewed when the GCC version given is no longer supported for
+   building glibc; the version number should always be on the same
+   source line as the macro name, so such uses can be found with grep.
+   Uses should come with a comment giving more details of the
+   diagnostic, and an architecture on which it is seen if possibly
+   optimization-related and not in architecture-specific code.  This
+   macro should only be used if the diagnostic seems hard to fix (for
+   example, optimization-related false positives).  */
+#define DIAG_IGNORE_NEEDS_COMMENT(version, option)     \
+  _Pragma (_DIAG_STR (GCC diagnostic ignored option))
+
+/* Similar to DIAG_IGNORE_NEEDS_COMMENT the following macro ignores the
+   diagnostic OPTION but only if optimizations for size are enabled.
+   This is required because different warnings may be generated for
+   different optimization levels.  For example a key piece of code may
+   only generate a warning when compiled at -Os, but at -O2 you could
+   still want the warning to be enabled to catch errors.  In this case
+   you would use DIAG_IGNORE_Os_NEEDS_COMMENT to disable the warning
+   only for -Os.  */
+#ifdef __OPTIMIZE_SIZE__
+# define DIAG_IGNORE_Os_NEEDS_COMMENT(version, option) \
+  _Pragma (_DIAG_STR (GCC diagnostic ignored option))
+#else
+# define DIAG_IGNORE_Os_NEEDS_COMMENT(version, option)
+#endif
+
+#endif /* libc-diag.h */
diff --git a/REORG.TODO/include/libc-internal.h b/REORG.TODO/include/libc-internal.h
new file mode 100644
index 0000000000..cd2f2622ed
--- /dev/null
+++ b/REORG.TODO/include/libc-internal.h
@@ -0,0 +1,56 @@
+/* Internal prototype declarations that don't fit anywhere else.
+   Copyright (C) 2000-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 _LIBC_INTERNAL
+# define _LIBC_INTERNAL 1
+
+#include <hp-timing.h>
+
+/* Initialize the `__libc_enable_secure' flag.  */
+extern void __libc_init_secure (void);
+
+/* This function will be called from _init in init-first.c.  */
+extern void __libc_global_ctors (void);
+
+/* Discover the tick frequency of the machine if something goes wrong,
+   we return 0, an impossible hertz.  */
+extern int __profile_frequency (void);
+libc_hidden_proto (__profile_frequency)
+
+/* Hooks for the instrumenting functions.  */
+extern void __cyg_profile_func_enter (void *this_fn, void *call_site);
+extern void __cyg_profile_func_exit (void *this_fn, void *call_site);
+
+/* Get frequency of the system processor.  */
+extern hp_timing_t __get_clockfreq (void);
+
+/* Free all allocated resources.  */
+extern void __libc_freeres (void);
+libc_hidden_proto (__libc_freeres)
+
+/* Free resources stored in thread-local variables on thread exit.  */
+extern void __libc_thread_freeres (void);
+
+/* Define and initialize `__progname' et. al.  */
+extern void __init_misc (int, char **, char **);
+
+# if IS_IN (rtld)
+extern __typeof (__profile_frequency) __profile_frequency attribute_hidden;
+# endif
+
+#endif /* _LIBC_INTERNAL  */
diff --git a/REORG.TODO/include/libc-pointer-arith.h b/REORG.TODO/include/libc-pointer-arith.h
new file mode 100644
index 0000000000..715cbc1bbe
--- /dev/null
+++ b/REORG.TODO/include/libc-pointer-arith.h
@@ -0,0 +1,60 @@
+/* Helper macros for pointer arithmetic.
+   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/>.  */
+
+#ifndef _LIBC_POINTER_ARITH_H
+#define _LIBC_POINTER_ARITH_H 1
+
+#include <stdint.h>
+
+/* 1 if 'type' is a pointer type, 0 otherwise.  */
+# define __pointer_type(type) (__builtin_classify_type ((type) 0) == 5)
+
+/* intptr_t if P is true, or T if P is false.  */
+# define __integer_if_pointer_type_sub(T, P) \
+  __typeof__ (*(0 ? (__typeof__ (0 ? (T *) 0 : (void *) (P))) 0 \
+		  : (__typeof__ (0 ? (intptr_t *) 0 : (void *) (!(P)))) 0))
+
+/* intptr_t if EXPR has a pointer type, or the type of EXPR otherwise.  */
+# define __integer_if_pointer_type(expr) \
+  __integer_if_pointer_type_sub(__typeof__ ((__typeof__ (expr)) 0), \
+				__pointer_type (__typeof__ (expr)))
+
+/* Cast an integer or a pointer VAL to integer with proper type.  */
+# define cast_to_integer(val) ((__integer_if_pointer_type (val)) (val))
+
+/* Align a value by rounding down to closest size.
+   e.g. Using size of 4096, we get this behavior:
+	{4095, 4096, 4097} = {0, 4096, 4096}.  */
+#define ALIGN_DOWN(base, size)	((base) & -((__typeof__ (base)) (size)))
+
+/* Align a value by rounding up to closest size.
+   e.g. Using size of 4096, we get this behavior:
+	{4095, 4096, 4097} = {4096, 4096, 8192}.
+
+  Note: The size argument has side effects (expanded multiple times).  */
+#define ALIGN_UP(base, size)	ALIGN_DOWN ((base) + (size) - 1, (size))
+
+/* Same as ALIGN_DOWN(), but automatically casts when base is a pointer.  */
+#define PTR_ALIGN_DOWN(base, size) \
+  ((__typeof__ (base)) ALIGN_DOWN ((uintptr_t) (base), (size)))
+
+/* Same as ALIGN_UP(), but automatically casts when base is a pointer.  */
+#define PTR_ALIGN_UP(base, size) \
+  ((__typeof__ (base)) ALIGN_UP ((uintptr_t) (base), (size)))
+
+#endif
diff --git a/REORG.TODO/include/libc-symbols.h b/REORG.TODO/include/libc-symbols.h
new file mode 100644
index 0000000000..3310e3a678
--- /dev/null
+++ b/REORG.TODO/include/libc-symbols.h
@@ -0,0 +1,969 @@
+/* Support macros for making weak and strong aliases for symbols,
+   and for using symbol sets and linker warnings with GNU ld.
+   Copyright (C) 1995-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 _LIBC_SYMBOLS_H
+#define _LIBC_SYMBOLS_H	1
+
+/* This file is included implicitly in the compilation of every source file,
+   using -include.  It includes config.h.  */
+
+/* Enable declarations of GNU extensions, since we are compiling them.  */
+#define _GNU_SOURCE 1
+
+#ifdef MODULE_NAME
+
+/* Use `#if IS_IN (module)` to detect what component is being compiled.  */
+#define PASTE_NAME1(a,b) a##b
+#define PASTE_NAME(a,b)	 PASTE_NAME1 (a,b)
+#define IN_MODULE	 PASTE_NAME (MODULE_, MODULE_NAME)
+#define IS_IN(lib)	 (IN_MODULE == MODULE_##lib)
+
+/* True if the current module is a versioned library.  Versioned
+   library names culled from shlib-versions files are assigned a
+   MODULE_* value greater than MODULE_LIBS_BEGIN.  */
+#define IS_IN_LIB	 (IN_MODULE > MODULE_LIBS_BEGIN)
+
+/* The testsuite, and some other ancillary code, should be compiled against
+   as close an approximation to the installed headers as possible.
+   Defining this symbol disables most internal-use-only declarations
+   provided by this header, and all those provided by other internal
+   wrapper headers.  */
+#if IS_IN (testsuite) || defined IS_IN_build || defined __cplusplus
+# define _ISOMAC 1
+#endif
+
+#else
+/* The generation process for a few files created very early in the
+   build (notably libc-modules.h itself) involves preprocessing this
+   header without defining MODULE_NAME.  Under these conditions,
+   internal declarations (especially from config.h) must be visible,
+   but IS_IN should always evaluate as false.  */
+# define IS_IN(lib) 0
+# define IS_IN_LIB 0
+# define IN_MODULE (-1)
+#endif
+
+#ifndef _ISOMAC
+
+/* This is defined for the compilation of all C library code.  features.h
+   tests this to avoid inclusion of stubs.h while compiling the library,
+   before stubs.h has been generated.  Some library code that is shared
+   with other packages also tests this symbol to see if it is being
+   compiled as part of the C library.  We must define this before including
+   config.h, because it makes some definitions conditional on whether libc
+   itself is being compiled, or just some generator program.  */
+#define _LIBC	1
+
+/* Some files must be compiled with optimization on.  */
+#if !defined __ASSEMBLER__ && !defined __OPTIMIZE__
+# error "glibc cannot be compiled without optimization"
+#endif
+
+/* -ffast-math cannot be applied to the C library, as it alters the ABI.
+   Some test components that use -ffast-math are currently not part of
+   IS_IN (testsuite) for technical reasons, so we have a secondary override.  */
+#if defined __FAST_MATH__ && !defined TEST_FAST_MATH
+# error "glibc must not be compiled with -ffast-math"
+#endif
+
+#include <config.h>
+
+/* Define this for the benefit of portable GNU code that wants to check it.
+   Code that checks with #if will not #include <config.h> again, since we've
+   already done it (and this file is implicitly included in every compile,
+   via -include).  Code that checks with #ifdef will #include <config.h>,
+   but that file should always be idempotent (i.e., it's just #define/#undef
+   and nothing else anywhere should be changing the macro state it touches),
+   so it's harmless.  */
+#define HAVE_CONFIG_H	0
+
+/* Define these macros for the benefit of portable GNU code that wants to check
+   them.  Of course, STDC_HEADERS is never false when building libc!  */
+#define STDC_HEADERS	1
+#define HAVE_MBSTATE_T	1
+#define HAVE_MBSRTOWCS	1
+#define HAVE_LIBINTL_H	1
+#define HAVE_WCTYPE_H	1
+#define HAVE_ISWCTYPE	1
+#define ENABLE_NLS	1
+
+/* The symbols in all the user (non-_) macros are C symbols.  */
+
+#ifndef __SYMBOL_PREFIX
+# define __SYMBOL_PREFIX
+#endif
+
+#ifndef C_SYMBOL_NAME
+# define C_SYMBOL_NAME(name) name
+#endif
+
+#ifndef ASM_LINE_SEP
+# define ASM_LINE_SEP ;
+#endif
+
+#ifndef __ASSEMBLER__
+/* GCC understands weak symbols and aliases; use its interface where
+   possible, instead of embedded assembly language.  */
+
+/* Define ALIASNAME as a strong alias for NAME.  */
+# define strong_alias(name, aliasname) _strong_alias(name, aliasname)
+# define _strong_alias(name, aliasname) \
+  extern __typeof (name) aliasname __attribute__ ((alias (#name)));
+
+/* This comes between the return type and function name in
+   a function definition to make that definition weak.  */
+# define weak_function __attribute__ ((weak))
+# define weak_const_function __attribute__ ((weak, __const__))
+
+/* Define ALIASNAME as a weak alias for NAME.
+   If weak aliases are not available, this defines a strong alias.  */
+# define weak_alias(name, aliasname) _weak_alias (name, aliasname)
+# define _weak_alias(name, aliasname) \
+  extern __typeof (name) aliasname __attribute__ ((weak, alias (#name)));
+
+/* Same as WEAK_ALIAS, but mark symbol as hidden.  */
+# define weak_hidden_alias(name, aliasname) \
+  _weak_hidden_alias (name, aliasname)
+# define _weak_hidden_alias(name, aliasname) \
+  extern __typeof (name) aliasname \
+    __attribute__ ((weak, alias (#name), __visibility__ ("hidden")));
+
+/* Declare SYMBOL as weak undefined symbol (resolved to 0 if not defined).  */
+# define weak_extern(symbol) _weak_extern (weak symbol)
+# define _weak_extern(expr) _Pragma (#expr)
+
+/* In shared builds, the expression call_function_static_weak
+   (FUNCTION-SYMBOL, ARGUMENTS) invokes FUNCTION-SYMBOL (an
+   identifier) unconditionally, with the (potentially empty) argument
+   list ARGUMENTS.  In static builds, if FUNCTION-SYMBOL has a
+   definition, the function is invoked as before; if FUNCTION-SYMBOL
+   is NULL, no call is performed.  */
+# ifdef SHARED
+#  define call_function_static_weak(func, ...) func (__VA_ARGS__)
+# else	/* !SHARED */
+#  define call_function_static_weak(func, ...)		\
+  ({							\
+    extern __typeof__ (func) func weak_function;	\
+    (func != NULL ? func (__VA_ARGS__) : (void)0);	\
+  })
+# endif
+
+#else /* __ASSEMBLER__ */
+
+# ifdef HAVE_ASM_SET_DIRECTIVE
+#  define strong_alias(original, alias)				\
+  .globl C_SYMBOL_NAME (alias) ASM_LINE_SEP		\
+  .set C_SYMBOL_NAME (alias),C_SYMBOL_NAME (original)
+#  define strong_data_alias(original, alias) strong_alias(original, alias)
+# else
+#  define strong_alias(original, alias)				\
+  .globl C_SYMBOL_NAME (alias) ASM_LINE_SEP		\
+  C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
+#  define strong_data_alias(original, alias) strong_alias(original, alias)
+# endif
+
+# define weak_alias(original, alias)					\
+  .weak C_SYMBOL_NAME (alias) ASM_LINE_SEP				\
+  C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
+
+# define weak_extern(symbol)						\
+  .weak C_SYMBOL_NAME (symbol)
+
+#endif /* __ASSEMBLER__ */
+
+/* On some platforms we can make internal function calls (i.e., calls of
+   functions not exported) a bit faster by using a different calling
+   convention.  */
+#ifndef internal_function
+# define internal_function	/* empty */
+#endif
+
+/* Determine the return address.  */
+#define RETURN_ADDRESS(nr) \
+  __builtin_extract_return_addr (__builtin_return_address (nr))
+
+/* When a reference to SYMBOL is encountered, the linker will emit a
+   warning message MSG.  */
+/* We want the .gnu.warning.SYMBOL section to be unallocated.  */
+#define __make_section_unallocated(section_string)	\
+  asm (".section " section_string "\n\t.previous");
+
+/* Tacking on "\n\t#" to the section name makes gcc put it's bogus
+   section attributes on what looks like a comment to the assembler.  */
+#ifdef HAVE_SECTION_QUOTES
+# define __sec_comment "\"\n\t#\""
+#else
+# define __sec_comment "\n\t#"
+#endif
+#define link_warning(symbol, msg) \
+  __make_section_unallocated (".gnu.warning." #symbol) \
+  static const char __evoke_link_warning_##symbol[]	\
+    __attribute__ ((used, section (".gnu.warning." #symbol __sec_comment))) \
+    = msg;
+#define libc_freeres_ptr(decl) \
+  __make_section_unallocated ("__libc_freeres_ptrs, \"aw\", %nobits") \
+  decl __attribute__ ((section ("__libc_freeres_ptrs" __sec_comment)))
+#define __libc_freeres_fn_section \
+  __attribute__ ((section ("__libc_freeres_fn")))
+
+#define libc_freeres_fn(name)	\
+  static void name (void) __attribute_used__ __libc_freeres_fn_section;	\
+  text_set_element (__libc_subfreeres, name);				\
+  static void name (void)
+
+/* A canned warning for sysdeps/stub functions.  */
+#define	stub_warning(name) \
+  __make_section_unallocated (".gnu.glibc-stub." #name) \
+  link_warning (name, #name " is not implemented and will always fail")
+
+/* Warning for linking functions calling dlopen into static binaries.  */
+#ifdef SHARED
+#define static_link_warning(name)
+#else
+#define static_link_warning(name) static_link_warning1(name)
+#define static_link_warning1(name) \
+  link_warning(name, "Using '" #name "' in statically linked applications \
+requires at runtime the shared libraries from the glibc version used \
+for linking")
+#endif
+
+/* Declare SYMBOL to be TYPE (`function' or `object') of SIZE bytes
+   alias to ORIGINAL, when the assembler supports such declarations
+   (such as in ELF).
+   This is only necessary when defining something in assembly, or playing
+   funny alias games where the size should be other than what the compiler
+   thinks it is.  */
+#define declare_symbol_alias(symbol, original, type, size) \
+  declare_symbol_alias_1 (symbol, original, type, size)
+#ifdef __ASSEMBLER__
+# define declare_symbol_alias_1(symbol, original, type, size) \
+   strong_alias (original, symbol); \
+   .type C_SYMBOL_NAME (symbol), %##type; \
+   .size C_SYMBOL_NAME (symbol), size
+#else /* Not __ASSEMBLER__.  */
+# define declare_symbol_alias_1(symbol, original, type, size) \
+   asm (".globl " __SYMBOL_PREFIX #symbol \
+	"\n\t" declare_symbol_alias_1_alias (symbol, original) \
+	"\n\t.type " __SYMBOL_PREFIX #symbol ", " \
+	"%" #type \
+	"\n\t.size " __SYMBOL_PREFIX #symbol ", " #size);
+# ifdef HAVE_ASM_SET_DIRECTIVE
+#  define declare_symbol_alias_1_alias(symbol, original) \
+     ".set " __SYMBOL_PREFIX #symbol ", " __SYMBOL_PREFIX #original
+# else
+#  define declare_symbol_alias_1_alias(symbol, original) \
+     __SYMBOL_PREFIX #symbol " = " __SYMBOL_PREFIX #original
+# endif /* HAVE_ASM_SET_DIRECTIVE */
+#endif /* __ASSEMBLER__ */
+
+
+/*
+
+*/
+
+/* Symbol set support macros.  */
+
+/* Make SYMBOL, which is in the text segment, an element of SET.  */
+#define text_set_element(set, symbol)	_elf_set_element(set, symbol)
+/* Make SYMBOL, which is in the data segment, an element of SET.  */
+#define data_set_element(set, symbol)	_elf_set_element(set, symbol)
+/* Make SYMBOL, which is in the bss segment, an element of SET.  */
+#define bss_set_element(set, symbol)	_elf_set_element(set, symbol)
+
+/* These are all done the same way in ELF.
+   There is a new section created for each set.  */
+#ifdef SHARED
+/* When building a shared library, make the set section writable,
+   because it will need to be relocated at run time anyway.  */
+# define _elf_set_element(set, symbol) \
+  static const void *__elf_set_##set##_element_##symbol##__ \
+    __attribute__ ((used, section (#set))) = &(symbol)
+#else
+# define _elf_set_element(set, symbol) \
+  static const void *const __elf_set_##set##_element_##symbol##__ \
+    __attribute__ ((used, section (#set))) = &(symbol)
+#endif
+
+/* Define SET as a symbol set.  This may be required (it is in a.out) to
+   be able to use the set's contents.  */
+#define symbol_set_define(set)	symbol_set_declare(set)
+
+/* Declare SET for use in this module, if defined in another module.
+   In a shared library, this is always local to that shared object.
+   For static linking, the set might be wholly absent and so we use
+   weak references.  */
+#define symbol_set_declare(set) \
+  extern char const __start_##set[] __symbol_set_attribute; \
+  extern char const __stop_##set[] __symbol_set_attribute;
+#ifdef SHARED
+# define __symbol_set_attribute attribute_hidden
+#else
+# define __symbol_set_attribute __attribute__ ((weak))
+#endif
+
+/* Return a pointer (void *const *) to the first element of SET.  */
+#define symbol_set_first_element(set)	((void *const *) (&__start_##set))
+
+/* Return true iff PTR (a void *const *) has been incremented
+   past the last element in SET.  */
+#define symbol_set_end_p(set, ptr) ((ptr) >= (void *const *) &__stop_##set)
+
+/* Use symbol_version_reference to specify the version a symbol
+   reference should link to.  Use symbol_version or
+   default_symbol_version for the definition of a versioned symbol.
+   The difference is that the latter is a no-op in non-shared
+   builds.  */
+#ifdef __ASSEMBLER__
+# define symbol_version_reference(real, name, version) \
+     .symver real, name##@##version
+#else  /* !__ASSEMBLER__ */
+# define symbol_version_reference(real, name, version) \
+  __asm__ (".symver " #real "," #name "@" #version)
+#endif
+
+#ifdef SHARED
+# define symbol_version(real, name, version) \
+  symbol_version_reference(real, name, version)
+# define default_symbol_version(real, name, version) \
+     _default_symbol_version(real, name, version)
+# ifdef __ASSEMBLER__
+#  define _default_symbol_version(real, name, version) \
+     .symver real, name##@##@##version
+# else
+#  define _default_symbol_version(real, name, version) \
+     __asm__ (".symver " #real "," #name "@@" #version)
+# endif
+#else
+# define symbol_version(real, name, version)
+# define default_symbol_version(real, name, version) \
+  strong_alias(real, name)
+#endif
+
+#if defined SHARED || defined LIBC_NONSHARED
+# define attribute_hidden __attribute__ ((visibility ("hidden")))
+#else
+# define attribute_hidden
+#endif
+
+#define attribute_tls_model_ie __attribute__ ((tls_model ("initial-exec")))
+
+#define attribute_relro __attribute__ ((section (".data.rel.ro")))
+
+
+/* Used to disable stack protection in sensitive places, like ifunc
+   resolvers and early static TLS init.  */
+#ifdef HAVE_CC_NO_STACK_PROTECTOR
+# define inhibit_stack_protector \
+    __attribute__ ((__optimize__ ("-fno-stack-protector")))
+#else
+# define inhibit_stack_protector
+#endif
+
+/* The following macros are used for PLT bypassing within libc.so
+   (and if needed other libraries similarly).
+   First of all, you need to have the function prototyped somewhere,
+   say in foo/foo.h:
+
+   int foo (int __bar);
+
+   If calls to foo within libc.so should always go to foo defined in libc.so,
+   then in include/foo.h you add:
+
+   libc_hidden_proto (foo)
+
+   line and after the foo function definition:
+
+   int foo (int __bar)
+   {
+     return __bar;
+   }
+   libc_hidden_def (foo)
+
+   or
+
+   int foo (int __bar)
+   {
+     return __bar;
+   }
+   libc_hidden_weak (foo)
+
+   Similarly for global data.  If references to foo within libc.so should
+   always go to foo defined in libc.so, then in include/foo.h you add:
+
+   libc_hidden_proto (foo)
+
+   line and after foo's definition:
+
+   int foo = INITIAL_FOO_VALUE;
+   libc_hidden_data_def (foo)
+
+   or
+
+   int foo = INITIAL_FOO_VALUE;
+   libc_hidden_data_weak (foo)
+
+   If foo is normally just an alias (strong or weak) to some other function,
+   you should use the normal strong_alias first, then add libc_hidden_def
+   or libc_hidden_weak:
+
+   int baz (int __bar)
+   {
+     return __bar;
+   }
+   strong_alias (baz, foo)
+   libc_hidden_weak (foo)
+
+   If the function should be internal to multiple objects, say ld.so and
+   libc.so, the best way is to use:
+
+   #if IS_IN (libc) || IS_IN (rtld)
+   hidden_proto (foo)
+   #endif
+
+   in include/foo.h and the normal macros at all function definitions
+   depending on what DSO they belong to.
+
+   If versioned_symbol macro is used to define foo,
+   libc_hidden_ver macro should be used, as in:
+
+   int __real_foo (int __bar)
+   {
+     return __bar;
+   }
+   versioned_symbol (libc, __real_foo, foo, GLIBC_2_1);
+   libc_hidden_ver (__real_foo, foo)  */
+
+#if defined SHARED && !defined NO_HIDDEN
+# ifndef __ASSEMBLER__
+#  define __hidden_proto_hiddenattr(attrs...) \
+  __attribute__ ((visibility ("hidden"), ##attrs))
+#  define hidden_proto(name, attrs...) \
+  __hidden_proto (name, , __GI_##name, ##attrs)
+#  define hidden_tls_proto(name, attrs...) \
+  __hidden_proto (name, __thread, __GI_##name, ##attrs)
+#  define __hidden_proto(name, thread, internal, attrs...)	     \
+  extern thread __typeof (name) name __asm__ (__hidden_asmname (#internal)) \
+  __hidden_proto_hiddenattr (attrs);
+#  define __hidden_asmname(name) \
+  __hidden_asmname1 (__USER_LABEL_PREFIX__, name)
+#  define __hidden_asmname1(prefix, name) __hidden_asmname2(prefix, name)
+#  define __hidden_asmname2(prefix, name) #prefix name
+#  define __hidden_ver1(local, internal, name) \
+  extern __typeof (name) __EI_##name __asm__(__hidden_asmname (#internal)); \
+  extern __typeof (name) __EI_##name \
+	__attribute__((alias (__hidden_asmname (#local))))
+#  define hidden_ver(local, name)	__hidden_ver1(local, __GI_##name, name);
+#  define hidden_data_ver(local, name)	hidden_ver(local, name)
+#  define hidden_def(name)		__hidden_ver1(__GI_##name, name, name);
+#  define hidden_data_def(name)		hidden_def(name)
+#  define hidden_weak(name) \
+	__hidden_ver1(__GI_##name, name, name) __attribute__((weak));
+#  define hidden_data_weak(name)	hidden_weak(name)
+#  define hidden_nolink(name, lib, version) \
+  __hidden_nolink1 (__GI_##name, __EI_##name, name, VERSION_##lib##_##version)
+#  define __hidden_nolink1(local, internal, name, version) \
+  __hidden_nolink2 (local, internal, name, version)
+#  define __hidden_nolink2(local, internal, name, version) \
+  extern __typeof (name) internal __attribute__ ((alias (#local))); \
+  __hidden_nolink3 (local, internal, #name "@" #version)
+#  define __hidden_nolink3(local, internal, vername) \
+  __asm__ (".symver " #internal ", " vername);
+# else
+/* For assembly, we need to do the opposite of what we do in C:
+   in assembly gcc __REDIRECT stuff is not in place, so functions
+   are defined by its normal name and we need to create the
+   __GI_* alias to it, in C __REDIRECT causes the function definition
+   to use __GI_* name and we need to add alias to the real name.
+   There is no reason to use hidden_weak over hidden_def in assembly,
+   but we provide it for consistency with the C usage.
+   hidden_proto doesn't make sense for assembly but the equivalent
+   is to call via the HIDDEN_JUMPTARGET macro instead of JUMPTARGET.  */
+#  define hidden_def(name)	strong_alias (name, __GI_##name)
+#  define hidden_weak(name)	hidden_def (name)
+#  define hidden_ver(local, name) strong_alias (local, __GI_##name)
+#  define hidden_data_def(name)	strong_data_alias (name, __GI_##name)
+#  define hidden_data_weak(name)	hidden_data_def (name)
+#  define hidden_data_ver(local, name) strong_data_alias (local, __GI_##name)
+#  define HIDDEN_JUMPTARGET(name) __GI_##name
+# endif
+#else
+# ifndef __ASSEMBLER__
+#  define hidden_proto(name, attrs...)
+#  define hidden_tls_proto(name, attrs...)
+# else
+#  define HIDDEN_JUMPTARGET(name) JUMPTARGET(name)
+# endif /* Not  __ASSEMBLER__ */
+# define hidden_weak(name)
+# define hidden_def(name)
+# define hidden_ver(local, name)
+# define hidden_data_weak(name)
+# define hidden_data_def(name)
+# define hidden_data_ver(local, name)
+# define hidden_nolink(name, lib, version)
+#endif
+
+#if IS_IN (libc)
+# define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
+# define libc_hidden_tls_proto(name, attrs...) hidden_tls_proto (name, ##attrs)
+# define libc_hidden_def(name) hidden_def (name)
+# define libc_hidden_weak(name) hidden_weak (name)
+# ifdef LINK_OBSOLETE_RPC
+   /* libc_hidden_nolink_sunrpc should only get used in sunrpc code.  */
+#  define libc_hidden_nolink_sunrpc(name, version) hidden_def (name)
+# else
+#  define libc_hidden_nolink_sunrpc(name, version) hidden_nolink (name, libc, version)
+# endif
+# define libc_hidden_ver(local, name) hidden_ver (local, name)
+# define libc_hidden_data_def(name) hidden_data_def (name)
+# define libc_hidden_data_weak(name) hidden_data_weak (name)
+# define libc_hidden_data_ver(local, name) hidden_data_ver (local, name)
+#else
+# define libc_hidden_proto(name, attrs...)
+# define libc_hidden_tls_proto(name, attrs...)
+# define libc_hidden_def(name)
+# define libc_hidden_weak(name)
+# define libc_hidden_ver(local, name)
+# define libc_hidden_data_def(name)
+# define libc_hidden_data_weak(name)
+# define libc_hidden_data_ver(local, name)
+#endif
+
+#if IS_IN (rtld)
+# define rtld_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
+# define rtld_hidden_tls_proto(name, attrs...) hidden_tls_proto (name, ##attrs)
+# define rtld_hidden_def(name) hidden_def (name)
+# define rtld_hidden_weak(name) hidden_weak (name)
+# define rtld_hidden_ver(local, name) hidden_ver (local, name)
+# define rtld_hidden_data_def(name) hidden_data_def (name)
+# define rtld_hidden_data_weak(name) hidden_data_weak (name)
+# define rtld_hidden_data_ver(local, name) hidden_data_ver (local, name)
+#else
+# define rtld_hidden_proto(name, attrs...)
+# define rtld_hidden_tls_proto(name, attrs...)
+# define rtld_hidden_def(name)
+# define rtld_hidden_weak(name)
+# define rtld_hidden_ver(local, name)
+# define rtld_hidden_data_def(name)
+# define rtld_hidden_data_weak(name)
+# define rtld_hidden_data_ver(local, name)
+#endif
+
+#if IS_IN (libm)
+# define libm_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
+# define libm_hidden_tls_proto(name, attrs...) hidden_tls_proto (name, ##attrs)
+# define libm_hidden_def(name) hidden_def (name)
+# define libm_hidden_weak(name) hidden_weak (name)
+# define libm_hidden_ver(local, name) hidden_ver (local, name)
+# define libm_hidden_data_def(name) hidden_data_def (name)
+# define libm_hidden_data_weak(name) hidden_data_weak (name)
+# define libm_hidden_data_ver(local, name) hidden_data_ver (local, name)
+#else
+# define libm_hidden_proto(name, attrs...)
+# define libm_hidden_tls_proto(name, attrs...)
+# define libm_hidden_def(name)
+# define libm_hidden_weak(name)
+# define libm_hidden_ver(local, name)
+# define libm_hidden_data_def(name)
+# define libm_hidden_data_weak(name)
+# define libm_hidden_data_ver(local, name)
+#endif
+
+#if IS_IN (libmvec)
+# define libmvec_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
+# define libmvec_hidden_tls_proto(name, attrs...) hidden_tls_proto (name, ##attrs)
+# define libmvec_hidden_def(name) hidden_def (name)
+# define libmvec_hidden_weak(name) hidden_weak (name)
+# define libmvec_hidden_ver(local, name) hidden_ver (local, name)
+# define libmvec_hidden_data_def(name) hidden_data_def (name)
+# define libmvec_hidden_data_weak(name) hidden_data_weak (name)
+# define libmvec_hidden_data_ver(local, name) hidden_data_ver (local, name)
+#else
+# define libmvec_hidden_proto(name, attrs...)
+# define libmvec_hidden_tls_proto(name, attrs...)
+# define libmvec_hidden_def(name)
+# define libmvec_hidden_weak(name)
+# define libmvec_hidden_ver(local, name)
+# define libmvec_hidden_data_def(name)
+# define libmvec_hidden_data_weak(name)
+# define libmvec_hidden_data_ver(local, name)
+#endif
+
+#if IS_IN (libresolv)
+# define libresolv_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
+# define libresolv_hidden_tls_proto(name, attrs...) \
+  hidden_tls_proto (name, ##attrs)
+# define libresolv_hidden_def(name) hidden_def (name)
+# define libresolv_hidden_weak(name) hidden_weak (name)
+# define libresolv_hidden_ver(local, name) hidden_ver (local, name)
+# define libresolv_hidden_data_def(name) hidden_data_def (name)
+# define libresolv_hidden_data_weak(name) hidden_data_weak (name)
+# define libresolv_hidden_data_ver(local, name) hidden_data_ver (local, name)
+#else
+# define libresolv_hidden_proto(name, attrs...)
+# define libresolv_hidden_tls_proto(name, attrs...)
+# define libresolv_hidden_def(name)
+# define libresolv_hidden_weak(name)
+# define libresolv_hidden_ver(local, name)
+# define libresolv_hidden_data_def(name)
+# define libresolv_hidden_data_weak(name)
+# define libresolv_hidden_data_ver(local, name)
+#endif
+
+#if IS_IN (librt)
+# define librt_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
+# define librt_hidden_tls_proto(name, attrs...) \
+  hidden_tls_proto (name, ##attrs)
+# define librt_hidden_def(name) hidden_def (name)
+# define librt_hidden_weak(name) hidden_weak (name)
+# define librt_hidden_ver(local, name) hidden_ver (local, name)
+# define librt_hidden_data_def(name) hidden_data_def (name)
+# define librt_hidden_data_weak(name) hidden_data_weak (name)
+# define librt_hidden_data_ver(local, name) hidden_data_ver (local, name)
+#else
+# define librt_hidden_proto(name, attrs...)
+# define librt_hidden_tls_proto(name, attrs...)
+# define librt_hidden_def(name)
+# define librt_hidden_weak(name)
+# define librt_hidden_ver(local, name)
+# define librt_hidden_data_def(name)
+# define librt_hidden_data_weak(name)
+# define librt_hidden_data_ver(local, name)
+#endif
+
+#if IS_IN (libdl)
+# define libdl_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
+# define libdl_hidden_tls_proto(name, attrs...) \
+  hidden_tls_proto (name, ##attrs)
+# define libdl_hidden_def(name) hidden_def (name)
+# define libdl_hidden_weak(name) hidden_weak (name)
+# define libdl_hidden_ver(local, name) hidden_ver (local, name)
+# define libdl_hidden_data_def(name) hidden_data_def (name)
+# define libdl_hidden_data_weak(name) hidden_data_weak (name)
+# define libdl_hidden_data_ver(local, name) hidden_data_ver (local, name)
+#else
+# define libdl_hidden_proto(name, attrs...)
+# define libdl_hidden_tls_proto(name, attrs...)
+# define libdl_hidden_def(name)
+# define libdl_hidden_weak(name)
+# define libdl_hidden_ver(local, name)
+# define libdl_hidden_data_def(name)
+# define libdl_hidden_data_weak(name)
+# define libdl_hidden_data_ver(local, name)
+#endif
+
+#if IS_IN (libnss_files)
+# define libnss_files_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
+# define libnss_files_hidden_tls_proto(name, attrs...) \
+  hidden_tls_proto (name, ##attrs)
+# define libnss_files_hidden_def(name) hidden_def (name)
+# define libnss_files_hidden_weak(name) hidden_weak (name)
+# define libnss_files_hidden_ver(local, name) hidden_ver (local, name)
+# define libnss_files_hidden_data_def(name) hidden_data_def (name)
+# define libnss_files_hidden_data_weak(name) hidden_data_weak (name)
+# define libnss_files_hidden_data_ver(local, name) hidden_data_ver(local, name)
+#else
+# define libnss_files_hidden_proto(name, attrs...)
+# define libnss_files_hidden_tls_proto(name, attrs...)
+# define libnss_files_hidden_def(name)
+# define libnss_files_hidden_weak(name)
+# define libnss_files_hidden_ver(local, name)
+# define libnss_files_hidden_data_def(name)
+# define libnss_files_hidden_data_weak(name)
+# define libnss_files_hidden_data_ver(local, name)
+#endif
+
+#if IS_IN (libnsl)
+# define libnsl_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
+# define libnsl_hidden_tls_proto(name, attrs...) \
+  hidden_tls_proto (name, ##attrs)
+# ifdef LINK_OBSOLETE_NSL
+   /* libnsl_hidden_nolink should only get used in libnsl code.  */
+#  define libnsl_hidden_nolink_def(name, version) libnsl_hidden_def (name)
+# else
+#  define libnsl_hidden_nolink_def(name, version) hidden_nolink (name, libnsl, version)
+# endif
+# define libnsl_hidden_def(name) hidden_def (name)
+# define libnsl_hidden_weak(name) hidden_weak (name)
+# define libnsl_hidden_ver(local, name) hidden_ver (local, name)
+# define libnsl_hidden_data_def(name) hidden_data_def (name)
+# define libnsl_hidden_data_weak(name) hidden_data_weak (name)
+# define libnsl_hidden_data_ver(local, name) hidden_data_ver (local, name)
+#else
+# define libnsl_hidden_proto(name, attrs...)
+# define libnsl_hidden_tls_proto(name, attrs...)
+# define libnsl_hidden_def(name)
+# define libnsl_hidden_weak(name)
+# define libnsl_hidden_ver(local, name)
+# define libnsl_hidden_data_def(name)
+# define libnsl_hidden_data_weak(name)
+# define libnsl_hidden_data_ver(local, name)
+#endif
+
+#if IS_IN (libnss_nisplus)
+# define libnss_nisplus_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
+# define libnss_nisplus_hidden_tls_proto(name, attrs...) \
+  hidden_tls_proto (name, ##attrs)
+# define libnss_nisplus_hidden_def(name) hidden_def (name)
+# define libnss_nisplus_hidden_weak(name) hidden_weak (name)
+# define libnss_nisplus_hidden_ver(local, name) hidden_ver (local, name)
+# define libnss_nisplus_hidden_data_def(name) hidden_data_def (name)
+# define libnss_nisplus_hidden_data_weak(name) hidden_data_weak (name)
+# define libnss_nisplus_hidden_data_ver(local, name) hidden_data_ver (local, name)
+#else
+# define libnss_nisplus_hidden_proto(name, attrs...)
+# define libnss_nisplus_hidden_tls_proto(name, attrs...)
+# define libnss_nisplus_hidden_def(name)
+# define libnss_nisplus_hidden_weak(name)
+# define libnss_nisplus_hidden_ver(local, name)
+# define libnss_nisplus_hidden_data_def(name)
+# define libnss_nisplus_hidden_data_weak(name)
+# define libnss_nisplus_hidden_data_ver(local, name)
+#endif
+
+#define libc_hidden_builtin_proto(name, attrs...) libc_hidden_proto (name, ##attrs)
+#define libc_hidden_builtin_def(name) libc_hidden_def (name)
+#define libc_hidden_builtin_weak(name) libc_hidden_weak (name)
+#define libc_hidden_builtin_ver(local, name) libc_hidden_ver (local, name)
+#ifdef __ASSEMBLER__
+# define HIDDEN_BUILTIN_JUMPTARGET(name) HIDDEN_JUMPTARGET(name)
+#endif
+
+#if IS_IN (libutil)
+# define libutil_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
+# define libutil_hidden_tls_proto(name, attrs...) \
+  hidden_tls_proto (name, ##attrs)
+# define libutil_hidden_def(name) hidden_def (name)
+# define libutil_hidden_weak(name) hidden_weak (name)
+# define libutil_hidden_ver(local, name) hidden_ver (local, name)
+# define libutil_hidden_data_def(name) hidden_data_def (name)
+# define libutil_hidden_data_weak(name) hidden_data_weak (name)
+# define libutil_hidden_data_ver(local, name) hidden_data_ver (local, name)
+#else
+# define libutil_hidden_proto(name, attrs...)
+# define libutil_hidden_tls_proto(name, attrs...)
+# define libutil_hidden_def(name)
+# define libutil_hidden_weak(name)
+# define libutil_hidden_ver(local, name)
+# define libutil_hidden_data_def(name)
+# define libutil_hidden_data_weak(name)
+# define libutil_hidden_data_ver(local, name)
+#endif
+
+/* Get some dirty hacks.  */
+#include <symbol-hacks.h>
+
+/* Move compatibility symbols out of the way by placing them all in a
+   special section.  */
+#ifndef __ASSEMBLER__
+# define attribute_compat_text_section \
+    __attribute__ ((section (".text.compat")))
+# define attribute_compat_data_section \
+    __attribute__ ((section (".data.compat")))
+#else
+# define compat_text_section .section ".text.compat", "ax";
+# define compat_data_section .section ".data.compat", "aw";
+#endif
+
+/* Helper / base  macros for indirect function symbols.  */
+#define __ifunc_resolver(type_name, name, expr, arg, init, classifier)	\
+  classifier inhibit_stack_protector void *name##_ifunc (arg)					\
+  {									\
+    init ();								\
+    __typeof (type_name) *res = expr;					\
+    return res;								\
+  }
+
+#ifdef HAVE_GCC_IFUNC
+# define __ifunc(type_name, name, expr, arg, init)			\
+  extern __typeof (type_name) name __attribute__			\
+			      ((ifunc (#name "_ifunc")));		\
+  __ifunc_resolver (type_name, name, expr, arg, init, static)
+
+# define __ifunc_hidden(type_name, name, expr, arg, init)	\
+  __ifunc (type_name, name, expr, arg, init)
+#else
+/* Gcc does not support __attribute__ ((ifunc (...))).  Use the old behaviour
+   as fallback.  But keep in mind that the debug information for the ifunc
+   resolver functions is not correct.  It contains the ifunc'ed function as
+   DW_AT_linkage_name.  E.g. lldb uses this field and an inferior function
+   call of the ifunc'ed function will fail due to "no matching function for
+   call to ..." because the ifunc'ed function and the resolver function have
+   different signatures.  (Gcc support is disabled at least on a ppc64le
+   Ubuntu 14.04 system.)  */
+
+# define __ifunc(type_name, name, expr, arg, init)			\
+  extern __typeof (type_name) name;					\
+  void *name##_ifunc (arg) __asm__ (#name);				\
+  __ifunc_resolver (type_name, name, expr, arg, init,)			\
+ __asm__ (".type " #name ", %gnu_indirect_function");
+
+# define __ifunc_hidden(type_name, name, expr, arg, init)		\
+  extern __typeof (type_name) __libc_##name;				\
+  __ifunc (type_name, __libc_##name, expr, arg, init)			\
+  strong_alias (__libc_##name, name);
+#endif /* !HAVE_GCC_IFUNC  */
+
+/* The following macros are used for indirect function symbols in libc.so.
+   First of all, you need to have the function prototyped somewhere,
+   say in foo.h:
+
+   int foo (int __bar);
+
+   If you have an implementation for foo which e.g. uses a special hardware
+   feature which isn't available on all machines where this libc.so will be
+   used but decideable if available at runtime e.g. via hwcaps, you can provide
+   two or multiple implementations of foo:
+
+   int __foo_default (int __bar)
+   {
+     return __bar;
+   }
+
+   int __foo_special (int __bar)
+   {
+     return __bar;
+   }
+
+   If your function foo has no libc_hidden_proto (foo) defined for PLT
+   bypassing, you can use:
+
+   #define INIT_ARCH() unsigned long int hwcap = __GLRO(dl_hwcap);
+
+   libc_ifunc (foo, (hwcap & HWCAP_SPECIAL) ? __foo_special : __foo_default);
+
+   This will define a resolver function for foo which returns __foo_special or
+   __foo_default depending on your specified expression.  Please note that you
+   have to define a macro function INIT_ARCH before using libc_ifunc macro as
+   it is called by the resolver function before evaluating the specified
+   expression.  In this example it is used to prepare the hwcap variable.
+   The resolver function is assigned to an ifunc'ed symbol foo.  Calls to foo
+   from inside or outside of libc.so will be indirected by a PLT call.
+
+   If your function foo has a libc_hidden_proto (foo) defined for PLT bypassing
+   and calls to foo within libc.so should always go to one specific
+   implementation of foo e.g. __foo_default then you have to add:
+
+   __hidden_ver1 (__foo_default, __GI_foo, __foo_default);
+
+   or a tweaked definition of libc_hidden_def macro after the __foo_default
+   function definition.  Calls to foo within libc.so will always go directly to
+   __foo_default.  Calls to foo from outside libc.so will be indirected by a
+   PLT call to ifunc'ed symbol foo which you have to define in a separate
+   compile unit:
+
+   #define foo __redirect_foo
+   #include <foo.h>
+   #undef foo
+
+   extern __typeof (__redirect_foo) __foo_default attribute_hidden;
+   extern __typeof (__redirect_foo) __foo_special attribute_hidden;
+
+   libc_ifunc_redirected (__redirect_foo, foo,
+			  (hwcap & HWCAP_SPECIAL)
+			  ? __foo_special
+			  : __foo_default);
+
+   This will define the ifunc'ed symbol foo like above.  The redirection of foo
+   in header file is needed to omit an additional defintion of __GI_foo which
+   would end in a linker error while linking libc.so.  You have to specify
+   __redirect_foo as first parameter which is used within libc_ifunc_redirected
+   macro in conjunction with typeof to define the ifunc'ed symbol foo.
+
+   If your function foo has a libc_hidden_proto (foo) defined and calls to foo
+   within or from outside libc.so should go via ifunc'ed symbol, then you have
+   to use:
+
+   libc_ifunc_hidden (foo, foo,
+		      (hwcap & HWCAP_SPECIAL)
+		      ? __foo_special
+		      : __foo_default);
+   libc_hidden_def (foo)
+
+   The first parameter foo of libc_ifunc_hidden macro is used in the same way
+   as for libc_ifunc_redirected macro.  */
+
+#define libc_ifunc(name, expr) __ifunc (name, name, expr, void, INIT_ARCH)
+
+#define libc_ifunc_redirected(redirected_name, name, expr)	\
+  __ifunc (redirected_name, name, expr, void, INIT_ARCH)
+
+#define libc_ifunc_hidden(redirected_name, name, expr)			\
+  __ifunc_hidden (redirected_name, name, expr, void, INIT_ARCH)
+
+/* The body of the function is supposed to use __get_cpu_features
+   which will, if necessary, initialize the data first.  */
+#define libm_ifunc_init()
+#define libm_ifunc(name, expr)				\
+  __ifunc (name, name, expr, void, libm_ifunc_init)
+
+/* Add the compiler optimization to inhibit loop transformation to library
+   calls.  This is used to avoid recursive calls in memset and memmove
+   default implementations.  */
+#ifdef HAVE_CC_INHIBIT_LOOP_TO_LIBCALL
+# define inhibit_loop_to_libcall \
+    __attribute__ ((__optimize__ ("-fno-tree-loop-distribute-patterns")))
+#else
+# define inhibit_loop_to_libcall
+#endif
+
+/* These macros facilitate sharing source files with gnulib.
+
+   They are here instead of sys/cdefs.h because they should not be
+   used in public header files.
+
+   Their definitions should be kept consistent with the definitions in
+   gnulib-common.m4, but it is not necessary to cater to old non-GCC
+   compilers, since they will only be used while building glibc itself.
+   (Note that _GNUC_PREREQ cannot be used in this file.)  */
+
+/* Define as a marker that can be attached to declarations that might not
+    be used.  This helps to reduce warnings, such as from
+    GCC -Wunused-parameter.  */
+#if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+# define _GL_UNUSED __attribute__ ((__unused__))
+#else
+# define _GL_UNUSED
+#endif
+
+/* gcc supports the "unused" attribute on possibly unused labels, and
+   g++ has since version 4.5.  Note to support C++ as well as C,
+   _GL_UNUSED_LABEL should be used with a trailing ;  */
+#if !defined __cplusplus || __GNUC__ > 4 \
+    || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
+# define _GL_UNUSED_LABEL _GL_UNUSED
+#else
+# define _GL_UNUSED_LABEL
+#endif
+
+/* The __pure__ attribute was added in gcc 2.96.  */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+#else
+# define _GL_ATTRIBUTE_PURE /* empty */
+#endif
+
+/* The __const__ attribute was added in gcc 2.95.  */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
+# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
+#else
+# define _GL_ATTRIBUTE_CONST /* empty */
+#endif
+
+#endif /* !_ISOMAC */
+#endif /* libc-symbols.h */
diff --git a/REORG.TODO/include/libgen.h b/REORG.TODO/include/libgen.h
new file mode 100644
index 0000000000..4795d8e561
--- /dev/null
+++ b/REORG.TODO/include/libgen.h
@@ -0,0 +1 @@
+#include <misc/libgen.h>
diff --git a/REORG.TODO/include/libintl.h b/REORG.TODO/include/libintl.h
new file mode 100644
index 0000000000..9a11367ec6
--- /dev/null
+++ b/REORG.TODO/include/libintl.h
@@ -0,0 +1,53 @@
+#ifndef _LIBINTL_H
+#include <intl/libintl.h>
+
+# ifndef _ISOMAC
+
+#include <locale.h>
+
+/* Now define the internal interfaces.  */
+extern char *__gettext (const char *__msgid)
+     __attribute_format_arg__ (1);
+extern char *__dgettext (const char *__domainname,
+			 const char *__msgid)
+     __attribute_format_arg__ (2);
+extern char *__dcgettext (const char *__domainname,
+			  const char *__msgid, int __category)
+     __attribute_format_arg__ (2);
+libc_hidden_proto (__dcgettext)
+
+extern char *__ngettext (const char *__msgid1, const char *__msgid2,
+			 unsigned long int __n)
+     __attribute_format_arg__ (1) __attribute_format_arg__ (2);
+extern char *__dngettext (const char *__domainname,
+			  const char *__msgid1, const char *__msgid2,
+			  unsigned long int __n)
+     __attribute_format_arg__ (2) __attribute_format_arg__ (3);
+extern char *__dcngettext (const char *__domainname,
+			   const char *__msgid1, const char *__msgid2,
+			   unsigned long int __n, int __category)
+     __attribute_format_arg__ (2) __attribute_format_arg__ (3);
+
+extern char *__textdomain (const char *__domainname);
+extern char *__bindtextdomain (const char *__domainname,
+			       const char *__dirname);
+extern char *__bind_textdomain_codeset (const char *__domainname,
+					const char *__codeset);
+
+extern const char _libc_intl_domainname[];
+libc_hidden_proto (_libc_intl_domainname)
+
+/* Define the macros `_' and `N_' for conveniently marking translatable
+   strings in the libc source code.  We have to make sure we get the
+   correct definitions so we undefine the macros first.  */
+
+# undef N_
+# define N_(msgid)	msgid
+
+# undef _
+/* This is defined as an optimizing macro, so use it.  */
+# define _(msgid) \
+  __dcgettext (_libc_intl_domainname, msgid, LC_MESSAGES)
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/libio.h b/REORG.TODO/include/libio.h
new file mode 100644
index 0000000000..d2fa796758
--- /dev/null
+++ b/REORG.TODO/include/libio.h
@@ -0,0 +1,45 @@
+#if !defined _ISOMAC && defined _IO_MTSAFE_IO
+# include <stdio-lock.h>
+#endif
+#include <libio/libio.h>
+
+#ifndef _ISOMAC
+#ifndef _LIBC_LIBIO_H
+#define _LIBC_LIBIO_H
+
+libc_hidden_proto (__overflow)
+libc_hidden_proto (__underflow)
+libc_hidden_proto (__uflow)
+libc_hidden_proto (__woverflow)
+libc_hidden_proto (__wunderflow)
+libc_hidden_proto (__wuflow)
+libc_hidden_proto (_IO_free_backup_area)
+libc_hidden_proto (_IO_free_wbackup_area)
+libc_hidden_proto (_IO_padn)
+libc_hidden_proto (_IO_putc)
+libc_hidden_proto (_IO_sgetn)
+libc_hidden_proto (_IO_vfprintf)
+libc_hidden_proto (_IO_vfscanf)
+
+#ifdef _IO_MTSAFE_IO
+# undef _IO_peekc
+# undef _IO_flockfile
+# undef _IO_funlockfile
+# undef _IO_ftrylockfile
+
+# define _IO_peekc(_fp) _IO_peekc_locked (_fp)
+# if _IO_lock_inexpensive
+#  define _IO_flockfile(_fp) \
+  if (((_fp)->_flags & _IO_USER_LOCK) == 0) _IO_lock_lock (*(_fp)->_lock)
+#  define _IO_funlockfile(_fp) \
+  if (((_fp)->_flags & _IO_USER_LOCK) == 0) _IO_lock_unlock (*(_fp)->_lock)
+# else
+#  define _IO_flockfile(_fp) \
+  if (((_fp)->_flags & _IO_USER_LOCK) == 0) _IO_flockfile (_fp)
+#  define _IO_funlockfile(_fp) \
+  if (((_fp)->_flags & _IO_USER_LOCK) == 0) _IO_funlockfile (_fp)
+# endif
+#endif /* _IO_MTSAFE_IO */
+
+#endif
+#endif
diff --git a/REORG.TODO/include/limits.h b/REORG.TODO/include/limits.h
new file mode 100644
index 0000000000..f2868b4d2f
--- /dev/null
+++ b/REORG.TODO/include/limits.h
@@ -0,0 +1,192 @@
+/* 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/>.  */
+
+/*
+ *	ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types	<limits.h>
+ */
+
+#ifndef _LIBC_LIMITS_H_
+#define _LIBC_LIMITS_H_	1
+
+#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION
+#include <bits/libc-header-start.h>
+
+
+/* Maximum length of any multibyte character in any locale.
+   We define this value here since the gcc header does not define
+   the correct value.  */
+#define MB_LEN_MAX	16
+
+
+/* If we are not using GNU CC we have to define all the symbols ourself.
+   Otherwise use gcc's definitions (see below).  */
+#if !defined __GNUC__ || __GNUC__ < 2
+
+/* We only protect from multiple inclusion here, because all the other
+   #include's protect themselves, and in GCC 2 we may #include_next through
+   multiple copies of this file before we get to GCC's.  */
+# ifndef _LIMITS_H
+#  define _LIMITS_H	1
+
+#include <bits/wordsize.h>
+
+/* We don't have #include_next.
+   Define ANSI <limits.h> for standard 32-bit words.  */
+
+/* These assume 8-bit `char's, 16-bit `short int's,
+   and 32-bit `int's and `long int's.  */
+
+/* Number of bits in a `char'.	*/
+#  define CHAR_BIT	8
+
+/* Minimum and maximum values a `signed char' can hold.  */
+#  define SCHAR_MIN	(-128)
+#  define SCHAR_MAX	127
+
+/* Maximum value an `unsigned char' can hold.  (Minimum is 0.)  */
+#  define UCHAR_MAX	255
+
+/* Minimum and maximum values a `char' can hold.  */
+#  ifdef __CHAR_UNSIGNED__
+#   define CHAR_MIN	0
+#   define CHAR_MAX	UCHAR_MAX
+#  else
+#   define CHAR_MIN	SCHAR_MIN
+#   define CHAR_MAX	SCHAR_MAX
+#  endif
+
+/* Minimum and maximum values a `signed short int' can hold.  */
+#  define SHRT_MIN	(-32768)
+#  define SHRT_MAX	32767
+
+/* Maximum value an `unsigned short int' can hold.  (Minimum is 0.)  */
+#  define USHRT_MAX	65535
+
+/* Minimum and maximum values a `signed int' can hold.  */
+#  define INT_MIN	(-INT_MAX - 1)
+#  define INT_MAX	2147483647
+
+/* Maximum value an `unsigned int' can hold.  (Minimum is 0.)  */
+#  define UINT_MAX	4294967295U
+
+/* Minimum and maximum values a `signed long int' can hold.  */
+#  if __WORDSIZE == 64
+#   define LONG_MAX	9223372036854775807L
+#  else
+#   define LONG_MAX	2147483647L
+#  endif
+#  define LONG_MIN	(-LONG_MAX - 1L)
+
+/* Maximum value an `unsigned long int' can hold.  (Minimum is 0.)  */
+#  if __WORDSIZE == 64
+#   define ULONG_MAX	18446744073709551615UL
+#  else
+#   define ULONG_MAX	4294967295UL
+#  endif
+
+#  ifdef __USE_ISOC99
+
+/* Minimum and maximum values a `signed long long int' can hold.  */
+#   define LLONG_MAX	9223372036854775807LL
+#   define LLONG_MIN	(-LLONG_MAX - 1LL)
+
+/* Maximum value an `unsigned long long int' can hold.  (Minimum is 0.)  */
+#   define ULLONG_MAX	18446744073709551615ULL
+
+#  endif /* ISO C99 */
+
+# endif	/* limits.h  */
+#endif	/* GCC 2.  */
+
+#endif	/* !_LIBC_LIMITS_H_ */
+
+ /* Get the compiler's limits.h, which defines almost all the ISO constants.
+
+    We put this #include_next outside the double inclusion check because
+    it should be possible to include this file more than once and still get
+    the definitions from gcc's header.  */
+#if defined __GNUC__ && !defined _GCC_LIMITS_H_
+/* `_GCC_LIMITS_H_' is what GCC's file defines.  */
+# include_next <limits.h>
+#endif
+
+/* The <limits.h> files in some gcc versions don't define LLONG_MIN,
+   LLONG_MAX, and ULLONG_MAX.  Instead only the values gcc defined for
+   ages are available.  */
+#if defined __USE_ISOC99 && defined __GNUC__
+# ifndef LLONG_MIN
+#  define LLONG_MIN	(-LLONG_MAX-1)
+# endif
+# ifndef LLONG_MAX
+#  define LLONG_MAX	__LONG_LONG_MAX__
+# endif
+# ifndef ULLONG_MAX
+#  define ULLONG_MAX	(LLONG_MAX * 2ULL + 1)
+# endif
+#endif
+
+/* The integer width macros are not defined by GCC's <limits.h> before
+   GCC 7, or if _GNU_SOURCE rather than
+   __STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature.  */
+#if __GLIBC_USE (IEC_60559_BFP_EXT)
+# ifndef CHAR_WIDTH
+#  define CHAR_WIDTH 8
+# endif
+# ifndef SCHAR_WIDTH
+#  define SCHAR_WIDTH 8
+# endif
+# ifndef UCHAR_WIDTH
+#  define UCHAR_WIDTH 8
+# endif
+# ifndef SHRT_WIDTH
+#  define SHRT_WIDTH 16
+# endif
+# ifndef USHRT_WIDTH
+#  define USHRT_WIDTH 16
+# endif
+# ifndef INT_WIDTH
+#  define INT_WIDTH 32
+# endif
+# ifndef UINT_WIDTH
+#  define UINT_WIDTH 32
+# endif
+# ifndef LONG_WIDTH
+#  define LONG_WIDTH __WORDSIZE
+# endif
+# ifndef ULONG_WIDTH
+#  define ULONG_WIDTH __WORDSIZE
+# endif
+# ifndef LLONG_WIDTH
+#  define LLONG_WIDTH 64
+# endif
+# ifndef ULLONG_WIDTH
+#  define ULLONG_WIDTH 64
+# endif
+#endif /* Use IEC_60559_BFP_EXT.  */
+
+#ifdef	__USE_POSIX
+/* POSIX adds things to <limits.h>.  */
+# include <bits/posix1_lim.h>
+#endif
+
+#ifdef	__USE_POSIX2
+# include <bits/posix2_lim.h>
+#endif
+
+#ifdef	__USE_XOPEN
+# include <bits/xopen_lim.h>
+#endif
diff --git a/REORG.TODO/include/link.h b/REORG.TODO/include/link.h
new file mode 100644
index 0000000000..eeb5f4d53b
--- /dev/null
+++ b/REORG.TODO/include/link.h
@@ -0,0 +1,351 @@
+/* Data structure for communication from the run-time dynamic linker for
+   loaded ELF shared objects.
+   Copyright (C) 1995-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	_PRIVATE_LINK_H
+#define	_PRIVATE_LINK_H	1
+
+#ifdef _LINK_H
+# error this should be impossible
+#endif
+
+# ifndef _ISOMAC
+/* Get most of the contents from the public header, but we define a
+   different `struct link_map' type for private use.  The la_objopen
+   prototype uses the type, so we have to declare it separately.  */
+#  define link_map	link_map_public
+#  define la_objopen	la_objopen_wrongproto
+# endif
+
+#include <elf/link.h>
+
+# ifndef _ISOMAC
+
+#undef	link_map
+#undef	la_objopen
+
+struct link_map;
+extern unsigned int la_objopen (struct link_map *__map, Lmid_t __lmid,
+				uintptr_t *__cookie);
+
+#include <stdint.h>
+#include <stddef.h>
+#include <linkmap.h>
+#include <dl-fileid.h>
+#include <dl-lookupcfg.h>
+#include <tls.h>
+#include <libc-lock.h>
+
+
+/* Some internal data structures of the dynamic linker used in the
+   linker map.  We only provide forward declarations.  */
+struct libname_list;
+struct r_found_version;
+struct r_search_path_elem;
+
+/* Forward declaration.  */
+struct link_map;
+
+/* Structure to describe a single list of scope elements.  The lookup
+   functions get passed an array of pointers to such structures.  */
+struct r_scope_elem
+{
+  /* Array of maps for the scope.  */
+  struct link_map **r_list;
+  /* Number of entries in the scope.  */
+  unsigned int r_nlist;
+};
+
+
+/* Structure to record search path and allocation mechanism.  */
+struct r_search_path_struct
+  {
+    struct r_search_path_elem **dirs;
+    int malloced;
+  };
+
+
+/* Structure describing a loaded shared object.  The `l_next' and `l_prev'
+   members form a chain of all the shared objects loaded at startup.
+
+   These data structures exist in space used by the run-time dynamic linker;
+   modifying them may have disastrous results.
+
+   This data structure might change in future, if necessary.  User-level
+   programs must avoid defining objects of this type.  */
+
+struct link_map
+  {
+    /* These first few members are part of the protocol with the debugger.
+       This is the same format used in SVR4.  */
+
+    ElfW(Addr) l_addr;		/* Difference between the address in the ELF
+				   file and the addresses in memory.  */
+    char *l_name;		/* Absolute file name object was found in.  */
+    ElfW(Dyn) *l_ld;		/* Dynamic section of the shared object.  */
+    struct link_map *l_next, *l_prev; /* Chain of loaded objects.  */
+
+    /* All following members are internal to the dynamic linker.
+       They may change without notice.  */
+
+    /* This is an element which is only ever different from a pointer to
+       the very same copy of this type for ld.so when it is used in more
+       than one namespace.  */
+    struct link_map *l_real;
+
+    /* Number of the namespace this link map belongs to.  */
+    Lmid_t l_ns;
+
+    struct libname_list *l_libname;
+    /* Indexed pointers to dynamic section.
+       [0,DT_NUM) are indexed by the processor-independent tags.
+       [DT_NUM,DT_NUM+DT_THISPROCNUM) are indexed by the tag minus DT_LOPROC.
+       [DT_NUM+DT_THISPROCNUM,DT_NUM+DT_THISPROCNUM+DT_VERSIONTAGNUM) are
+       indexed by DT_VERSIONTAGIDX(tagvalue).
+       [DT_NUM+DT_THISPROCNUM+DT_VERSIONTAGNUM,
+	DT_NUM+DT_THISPROCNUM+DT_VERSIONTAGNUM+DT_EXTRANUM) are indexed by
+       DT_EXTRATAGIDX(tagvalue).
+       [DT_NUM+DT_THISPROCNUM+DT_VERSIONTAGNUM+DT_EXTRANUM,
+	DT_NUM+DT_THISPROCNUM+DT_VERSIONTAGNUM+DT_EXTRANUM+DT_VALNUM) are
+       indexed by DT_VALTAGIDX(tagvalue) and
+       [DT_NUM+DT_THISPROCNUM+DT_VERSIONTAGNUM+DT_EXTRANUM+DT_VALNUM,
+	DT_NUM+DT_THISPROCNUM+DT_VERSIONTAGNUM+DT_EXTRANUM+DT_VALNUM+DT_ADDRNUM)
+       are indexed by DT_ADDRTAGIDX(tagvalue), see <elf.h>.  */
+
+    ElfW(Dyn) *l_info[DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGNUM
+		      + DT_EXTRANUM + DT_VALNUM + DT_ADDRNUM];
+    const ElfW(Phdr) *l_phdr;	/* Pointer to program header table in core.  */
+    ElfW(Addr) l_entry;		/* Entry point location.  */
+    ElfW(Half) l_phnum;		/* Number of program header entries.  */
+    ElfW(Half) l_ldnum;		/* Number of dynamic segment entries.  */
+
+    /* Array of DT_NEEDED dependencies and their dependencies, in
+       dependency order for symbol lookup (with and without
+       duplicates).  There is no entry before the dependencies have
+       been loaded.  */
+    struct r_scope_elem l_searchlist;
+
+    /* We need a special searchlist to process objects marked with
+       DT_SYMBOLIC.  */
+    struct r_scope_elem l_symbolic_searchlist;
+
+    /* Dependent object that first caused this object to be loaded.  */
+    struct link_map *l_loader;
+
+    /* Array with version names.  */
+    struct r_found_version *l_versions;
+    unsigned int l_nversions;
+
+    /* Symbol hash table.  */
+    Elf_Symndx l_nbuckets;
+    Elf32_Word l_gnu_bitmask_idxbits;
+    Elf32_Word l_gnu_shift;
+    const ElfW(Addr) *l_gnu_bitmask;
+    union
+    {
+      const Elf32_Word *l_gnu_buckets;
+      const Elf_Symndx *l_chain;
+    };
+    union
+    {
+      const Elf32_Word *l_gnu_chain_zero;
+      const Elf_Symndx *l_buckets;
+    };
+
+    unsigned int l_direct_opencount; /* Reference count for dlopen/dlclose.  */
+    enum			/* Where this object came from.  */
+      {
+	lt_executable,		/* The main executable program.  */
+	lt_library,		/* Library needed by main executable.  */
+	lt_loaded		/* Extra run-time loaded shared object.  */
+      } l_type:2;
+    unsigned int l_relocated:1;	/* Nonzero if object's relocations done.  */
+    unsigned int l_init_called:1; /* Nonzero if DT_INIT function called.  */
+    unsigned int l_global:1;	/* Nonzero if object in _dl_global_scope.  */
+    unsigned int l_reserved:2;	/* Reserved for internal use.  */
+    unsigned int l_phdr_allocated:1; /* Nonzero if the data structure pointed
+					to by `l_phdr' is allocated.  */
+    unsigned int l_soname_added:1; /* Nonzero if the SONAME is for sure in
+				      the l_libname list.  */
+    unsigned int l_faked:1;	/* Nonzero if this is a faked descriptor
+				   without associated file.  */
+    unsigned int l_need_tls_init:1; /* Nonzero if GL(dl_init_static_tls)
+				       should be called on this link map
+				       when relocation finishes.  */
+    unsigned int l_auditing:1;	/* Nonzero if the DSO is used in auditing.  */
+    unsigned int l_audit_any_plt:1; /* Nonzero if at least one audit module
+				       is interested in the PLT interception.*/
+    unsigned int l_removed:1;	/* Nozero if the object cannot be used anymore
+				   since it is removed.  */
+    unsigned int l_contiguous:1; /* Nonzero if inter-segment holes are
+				    mprotected or if no holes are present at
+				    all.  */
+    unsigned int l_symbolic_in_local_scope:1; /* Nonzero if l_local_scope
+						 during LD_TRACE_PRELINKING=1
+						 contains any DT_SYMBOLIC
+						 libraries.  */
+    unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
+				       freed, ie. not allocated with
+				       the dummy malloc in ld.so.  */
+
+    /* Collected information about own RPATH directories.  */
+    struct r_search_path_struct l_rpath_dirs;
+
+    /* Collected results of relocation while profiling.  */
+    struct reloc_result
+    {
+      DL_FIXUP_VALUE_TYPE addr;
+      struct link_map *bound;
+      unsigned int boundndx;
+      uint32_t enterexit;
+      unsigned int flags;
+    } *l_reloc_result;
+
+    /* Pointer to the version information if available.  */
+    ElfW(Versym) *l_versyms;
+
+    /* String specifying the path where this object was found.  */
+    const char *l_origin;
+
+    /* Start and finish of memory map for this object.  l_map_start
+       need not be the same as l_addr.  */
+    ElfW(Addr) l_map_start, l_map_end;
+    /* End of the executable part of the mapping.  */
+    ElfW(Addr) l_text_end;
+
+    /* Default array for 'l_scope'.  */
+    struct r_scope_elem *l_scope_mem[4];
+    /* Size of array allocated for 'l_scope'.  */
+    size_t l_scope_max;
+    /* This is an array defining the lookup scope for this link map.
+       There are initially at most three different scope lists.  */
+    struct r_scope_elem **l_scope;
+
+    /* A similar array, this time only with the local scope.  This is
+       used occasionally.  */
+    struct r_scope_elem *l_local_scope[2];
+
+    /* This information is kept to check for sure whether a shared
+       object is the same as one already loaded.  */
+    struct r_file_id l_file_id;
+
+    /* Collected information about own RUNPATH directories.  */
+    struct r_search_path_struct l_runpath_dirs;
+
+    /* List of object in order of the init and fini calls.  */
+    struct link_map **l_initfini;
+
+    /* List of the dependencies introduced through symbol binding.  */
+    struct link_map_reldeps
+      {
+	unsigned int act;
+	struct link_map *list[];
+      } *l_reldeps;
+    unsigned int l_reldepsmax;
+
+    /* Nonzero if the DSO is used.  */
+    unsigned int l_used;
+
+    /* Various flag words.  */
+    ElfW(Word) l_feature_1;
+    ElfW(Word) l_flags_1;
+    ElfW(Word) l_flags;
+
+    /* Temporarily used in `dl_close'.  */
+    int l_idx;
+
+    struct link_map_machine l_mach;
+
+    struct
+    {
+      const ElfW(Sym) *sym;
+      int type_class;
+      struct link_map *value;
+      const ElfW(Sym) *ret;
+    } l_lookup_cache;
+
+    /* Thread-local storage related info.  */
+
+    /* Start of the initialization image.  */
+    void *l_tls_initimage;
+    /* Size of the initialization image.  */
+    size_t l_tls_initimage_size;
+    /* Size of the TLS block.  */
+    size_t l_tls_blocksize;
+    /* Alignment requirement of the TLS block.  */
+    size_t l_tls_align;
+    /* Offset of first byte module alignment.  */
+    size_t l_tls_firstbyte_offset;
+#ifndef NO_TLS_OFFSET
+# define NO_TLS_OFFSET	0
+#endif
+#ifndef FORCED_DYNAMIC_TLS_OFFSET
+# if NO_TLS_OFFSET == 0
+#  define FORCED_DYNAMIC_TLS_OFFSET -1
+# elif NO_TLS_OFFSET == -1
+#  define FORCED_DYNAMIC_TLS_OFFSET -2
+# else
+#  error "FORCED_DYNAMIC_TLS_OFFSET is not defined"
+# endif
+#endif
+    /* For objects present at startup time: offset in the static TLS block.  */
+    ptrdiff_t l_tls_offset;
+    /* Index of the module in the dtv array.  */
+    size_t l_tls_modid;
+
+    /* Number of thread_local objects constructed by this DSO.  This is
+       atomically accessed and modified and is not always protected by the load
+       lock.  See also: CONCURRENCY NOTES in cxa_thread_atexit_impl.c.  */
+    size_t l_tls_dtor_count;
+
+    /* Information used to change permission after the relocations are
+       done.  */
+    ElfW(Addr) l_relro_addr;
+    size_t l_relro_size;
+
+    unsigned long long int l_serial;
+
+    /* Audit information.  This array apparent must be the last in the
+       structure.  Never add something after it.  */
+    struct auditstate
+    {
+      uintptr_t cookie;
+      unsigned int bindflags;
+    } l_audit[0];
+  };
+
+
+#if __ELF_NATIVE_CLASS == 32
+# define symbind symbind32
+#elif __ELF_NATIVE_CLASS == 64
+# define symbind symbind64
+#else
+# error "__ELF_NATIVE_CLASS must be defined"
+#endif
+
+extern int __dl_iterate_phdr (int (*callback) (struct dl_phdr_info *info,
+					       size_t size, void *data),
+			      void *data);
+
+/* We use this macro to refer to ELF macros independent of the native
+   wordsize.  `ELFW(R_TYPE)' is used in place of `ELF32_R_TYPE' or
+   `ELF64_R_TYPE'.  */
+#define ELFW(type)	_ElfW (ELF, __ELF_NATIVE_CLASS, type)
+
+# endif /* !_ISOMAC */
+#endif /* include/link.h */
diff --git a/REORG.TODO/include/list.h b/REORG.TODO/include/list.h
new file mode 100644
index 0000000000..dec5deef8e
--- /dev/null
+++ b/REORG.TODO/include/list.h
@@ -0,0 +1,99 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+
+   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 _LIST_H
+#define _LIST_H	1
+
+/* Internal: doubly linked lists.  */
+
+/* The definitions of this file are adopted from those which can be
+   found in the Linux kernel headers to enable people familiar with
+   the latter find their way in these sources as well.  */
+
+#include <list_t.h>
+#include <atomic.h>
+
+/* Define a variable with the head and tail of the list.  */
+#define LIST_HEAD(name) \
+  list_t name = { &(name), &(name) }
+
+/* Initialize a new list head.  */
+#define INIT_LIST_HEAD(ptr) \
+  (ptr)->next = (ptr)->prev = (ptr)
+
+
+/* Add new element at the head of the list.  */
+static inline void
+list_add (list_t *newp, list_t *head)
+{
+  newp->next = head->next;
+  newp->prev = head;
+  head->next->prev = newp;
+  atomic_write_barrier ();
+  head->next = newp;
+}
+
+
+/* Remove element from list.  */
+static inline void
+list_del (list_t *elem)
+{
+  elem->next->prev = elem->prev;
+  elem->prev->next = elem->next;
+}
+
+
+/* Join two lists.  */
+static inline void
+list_splice (list_t *add, list_t *head)
+{
+  /* Do nothing if the list which gets added is empty.  */
+  if (add != add->next)
+    {
+      add->next->prev = head;
+      add->prev->next = head->next;
+      head->next->prev = add->prev;
+      head->next = add->next;
+    }
+}
+
+
+/* Get typed element from list at a given position.  */
+#define list_entry(ptr, type, member) \
+  ((type *) ((char *) (ptr) - (unsigned long) (&((type *) 0)->member)))
+
+
+
+/* Iterate forward over the elements of the list.  */
+#define list_for_each(pos, head) \
+  for (pos = (head)->next; pos != (head); pos = pos->next)
+
+
+/* Iterate forward over the elements of the list.  */
+#define list_for_each_prev(pos, head) \
+  for (pos = (head)->prev; pos != (head); pos = pos->prev)
+
+
+/* Iterate backwards over the elements list.  The list elements can be
+   removed from the list while doing this.  */
+#define list_for_each_prev_safe(pos, p, head) \
+  for (pos = (head)->prev, p = pos->prev; \
+       pos != (head); \
+       pos = p, p = pos->prev)
+
+#endif	/* list.h */
diff --git a/REORG.TODO/include/list_t.h b/REORG.TODO/include/list_t.h
new file mode 100644
index 0000000000..d737e2e214
--- /dev/null
+++ b/REORG.TODO/include/list_t.h
@@ -0,0 +1,31 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+
+   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 _LIST_T_H
+#define _LIST_T_H 1
+
+/* Internal: doubly linked lists.  */
+
+/* Basic type for the double-link list.  */
+typedef struct list_head
+{
+  struct list_head *next;
+  struct list_head *prev;
+} list_t;
+
+#endif /* list_t.h */
diff --git a/REORG.TODO/include/locale.h b/REORG.TODO/include/locale.h
new file mode 100644
index 0000000000..8091e1dc80
--- /dev/null
+++ b/REORG.TODO/include/locale.h
@@ -0,0 +1,26 @@
+#ifndef	_LOCALE_H
+#include <locale/locale.h>
+
+#ifndef _ISOMAC
+extern __typeof (uselocale) __uselocale;
+
+libc_hidden_proto (setlocale)
+libc_hidden_proto (__uselocale)
+
+/* This has to be changed whenever a new locale is defined.  */
+#define __LC_LAST	13
+
+extern struct loaded_l10nfile *_nl_locale_file_list[] attribute_hidden;
+
+/* Locale object for C locale.  */
+extern const struct __locale_struct _nl_C_locobj attribute_hidden;
+#define _nl_C_locobj_ptr ((struct __locale_struct *) &_nl_C_locobj)
+
+/* Now define the internal interfaces.  */
+extern struct lconv *__localeconv (void);
+
+/* Fetch the name of the current locale set in the given category.  */
+extern const char *__current_locale_name (int category) attribute_hidden;
+
+#endif
+#endif
diff --git a/REORG.TODO/include/malloc.h b/REORG.TODO/include/malloc.h
new file mode 100644
index 0000000000..70d32c7c84
--- /dev/null
+++ b/REORG.TODO/include/malloc.h
@@ -0,0 +1,16 @@
+#ifndef _MALLOC_H
+#include <malloc/malloc.h>
+
+# ifndef _ISOMAC
+
+/* In the GNU libc we rename the global variable
+   `__malloc_initialized' to `__libc_malloc_initialized'.  */
+#define __malloc_initialized __libc_malloc_initialized
+/* Nonzero if the malloc is already initialized.  */
+extern int __malloc_initialized attribute_hidden;
+
+struct malloc_state;
+typedef struct malloc_state *mstate;
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/math.h b/REORG.TODO/include/math.h
new file mode 100644
index 0000000000..a069680233
--- /dev/null
+++ b/REORG.TODO/include/math.h
@@ -0,0 +1,60 @@
+#ifndef	_MATH_H
+
+#ifdef _ISOMAC
+# undef NO_LONG_DOUBLE
+# undef _Mlong_double_
+#endif
+
+#include <math/math.h>
+
+#ifndef _ISOMAC
+/* Now define the internal interfaces.  */
+extern int __matherr (struct exception *__exc);
+
+extern int __signgam;
+
+# if IS_IN (libc) || IS_IN (libm)
+hidden_proto (__finite)
+hidden_proto (__isinf)
+hidden_proto (__isnan)
+hidden_proto (__finitef)
+hidden_proto (__isinff)
+hidden_proto (__isnanf)
+
+#  ifndef __NO_LONG_DOUBLE_MATH
+hidden_proto (__finitel)
+hidden_proto (__isinfl)
+hidden_proto (__isnanl)
+#  endif
+
+#  if __HAVE_DISTINCT_FLOAT128
+hidden_proto (__finitef128)
+hidden_proto (__isinff128)
+hidden_proto (__isnanf128)
+#  endif
+# endif
+
+libm_hidden_proto (__fpclassify)
+libm_hidden_proto (__fpclassifyf)
+libm_hidden_proto (__issignaling)
+libm_hidden_proto (__issignalingf)
+libm_hidden_proto (__exp)
+libm_hidden_proto (__expf)
+libm_hidden_proto (roundeven)
+
+# ifndef __NO_LONG_DOUBLE_MATH
+libm_hidden_proto (__fpclassifyl)
+libm_hidden_proto (__issignalingl)
+libm_hidden_proto (__expl)
+libm_hidden_proto (__expm1l)
+# endif
+
+# if __HAVE_DISTINCT_FLOAT128
+libm_hidden_proto (__fpclassifyf128)
+libm_hidden_proto (__issignalingf128)
+libm_hidden_proto (__expf128)
+libm_hidden_proto (__expm1f128)
+# endif
+
+#endif
+#endif
diff --git a/REORG.TODO/include/mcheck.h b/REORG.TODO/include/mcheck.h
new file mode 100644
index 0000000000..8883c3d53e
--- /dev/null
+++ b/REORG.TODO/include/mcheck.h
@@ -0,0 +1,11 @@
+#ifndef _MCHECK_H
+
+#include <malloc/mcheck.h>
+
+# ifndef _ISOMAC
+
+libc_hidden_proto (mcheck)
+libc_hidden_proto (mcheck_check_all)
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/memory.h b/REORG.TODO/include/memory.h
new file mode 100644
index 0000000000..1ec3e63fc9
--- /dev/null
+++ b/REORG.TODO/include/memory.h
@@ -0,0 +1 @@
+#include <string/memory.h>
diff --git a/REORG.TODO/include/mntent.h b/REORG.TODO/include/mntent.h
new file mode 100644
index 0000000000..169210fc66
--- /dev/null
+++ b/REORG.TODO/include/mntent.h
@@ -0,0 +1,20 @@
+#ifndef _MNTENT_H
+#include <misc/mntent.h>
+
+# ifndef _ISOMAC
+
+/* Now define the internal interfaces.  */
+extern FILE *__setmntent (const char *__file, const char *__mode);
+extern struct mntent *__getmntent_r (FILE *__stream,
+				     struct mntent *__result,
+				     char *__buffer, int __bufsize);
+extern int __addmntent (FILE *__stream, const struct mntent *__mnt);
+extern int __endmntent (FILE *__stream);
+extern char *__hasmntopt (const struct mntent *__mnt, const char *__opt);
+
+libc_hidden_proto (__setmntent)
+libc_hidden_proto (__getmntent_r)
+libc_hidden_proto (__endmntent)
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/monetary.h b/REORG.TODO/include/monetary.h
new file mode 100644
index 0000000000..e6870138f8
--- /dev/null
+++ b/REORG.TODO/include/monetary.h
@@ -0,0 +1,7 @@
+#include <stdlib/monetary.h>
+#ifndef _ISOMAC
+#include <stdarg.h>
+
+extern ssize_t __vstrfmon_l (char *s, size_t maxsize, __locale_t loc,
+			     const char *format, va_list ap);
+#endif
diff --git a/REORG.TODO/include/mqueue.h b/REORG.TODO/include/mqueue.h
new file mode 100644
index 0000000000..3c66f1711e
--- /dev/null
+++ b/REORG.TODO/include/mqueue.h
@@ -0,0 +1,13 @@
+#include <rt/mqueue.h>
+
+#ifndef _ISOMAC
+# if IS_IN (librt)
+hidden_proto (mq_timedsend)
+extern __typeof (mq_timedsend) __mq_timedsend __nonnull ((2, 5));
+hidden_proto (__mq_timedsend)
+hidden_proto (mq_timedreceive)
+extern __typeof (mq_timedreceive) __mq_timedreceive __nonnull ((2, 5));
+hidden_proto (__mq_timedreceive)
+hidden_proto (mq_setattr)
+# endif
+#endif
diff --git a/REORG.TODO/include/net/if.h b/REORG.TODO/include/net/if.h
new file mode 100644
index 0000000000..6c4cbc96c3
--- /dev/null
+++ b/REORG.TODO/include/net/if.h
@@ -0,0 +1,16 @@
+#ifndef _NET_IF_H
+
+# include_next <net/if.h>
+
+#ifndef _ISOMAC
+libc_hidden_proto (if_nametoindex)
+extern __typeof (if_nametoindex) __if_nametoindex;
+libc_hidden_proto (__if_nametoindex)
+libc_hidden_proto (if_indextoname)
+libc_hidden_proto (if_nameindex)
+libc_hidden_proto (if_freenameindex)
+extern __typeof (if_freenameindex) __if_freenameindex;
+libc_hidden_proto (__if_freenameindex)
+#endif
+
+#endif
diff --git a/REORG.TODO/include/netdb.h b/REORG.TODO/include/netdb.h
new file mode 100644
index 0000000000..d425a64506
--- /dev/null
+++ b/REORG.TODO/include/netdb.h
@@ -0,0 +1,284 @@
+#ifndef	_NETDB_H
+#include <resolv/netdb.h>
+
+#ifndef _ISOMAC
+# include <stdint.h>
+/* Macros for accessing h_errno from inside libc.  */
+# if IS_IN_LIB
+#  undef  h_errno
+#  if IS_IN (libc)
+#   define h_errno __libc_h_errno
+#  else
+#   define h_errno __h_errno
+#  endif
+extern __thread int h_errno attribute_tls_model_ie;
+# endif /* IS_IN_LIB */
+# define __set_h_errno(x) (h_errno = (x))
+
+libc_hidden_proto (hstrerror)
+libc_hidden_proto (innetgr)
+libc_hidden_proto (rcmd_af)
+libc_hidden_proto (rexec_af)
+libc_hidden_proto (rresvport_af)
+libc_hidden_proto (ruserok_af)
+
+libc_hidden_proto (getaddrinfo)
+libc_hidden_proto (getnameinfo)
+libc_hidden_proto (freeaddrinfo)
+libc_hidden_proto (gai_strerror)
+libc_hidden_proto (__h_errno_location)
+
+/* Document internal interfaces.  */
+extern int __gethostent_r (struct hostent *__restrict __result_buf,
+			   char *__restrict __buf, size_t __buflen,
+			   struct hostent **__restrict __result,
+			   int *__restrict __h_errnop) attribute_hidden;
+extern int __old_gethostent_r (struct hostent *__restrict __result_buf,
+			       char *__restrict __buf, size_t __buflen,
+			       struct hostent **__restrict __result,
+			       int *__restrict __h_errnop);
+
+extern int __gethostbyaddr_r (const void *__restrict __addr,
+			      socklen_t __len, int __type,
+			      struct hostent *__restrict __result_buf,
+			      char *__restrict __buf, size_t __buflen,
+			      struct hostent **__restrict __result,
+			      int *__restrict __h_errnop);
+extern int __old_gethostbyaddr_r (const void *__restrict __addr,
+				  socklen_t __len, int __type,
+				  struct hostent *__restrict __result_buf,
+				  char *__restrict __buf, size_t __buflen,
+				  struct hostent **__restrict __result,
+				  int *__restrict __h_errnop);
+
+extern int __gethostbyaddr2_r (const void *__restrict __addr,
+			       socklen_t __len, int __type,
+			       struct hostent *__restrict __result_buf,
+			       char *__restrict __buf, size_t __buflen,
+			       struct hostent **__restrict __result,
+			       int *__restrict __h_errnop,
+			       int32_t *ttlp);
+
+extern int __gethostbyname_r (const char *__restrict __name,
+			      struct hostent *__restrict __result_buf,
+			      char *__restrict __buf, size_t __buflen,
+			      struct hostent **__restrict __result,
+			      int *__restrict __h_errnop);
+extern int __old_gethostbyname_r (const char *__restrict __name,
+				  struct hostent *__restrict __result_buf,
+				  char *__restrict __buf, size_t __buflen,
+				  struct hostent **__restrict __result,
+				  int *__restrict __h_errnop);
+
+extern int __gethostbyname2_r (const char *__restrict __name, int __af,
+			       struct hostent *__restrict __result_buf,
+			       char *__restrict __buf, size_t __buflen,
+			       struct hostent **__restrict __result,
+			       int *__restrict __h_errnop);
+extern int __old_gethostbyname2_r (const char *__restrict __name, int __af,
+				   struct hostent *__restrict __result_buf,
+				   char *__restrict __buf, size_t __buflen,
+				   struct hostent **__restrict __result,
+				   int *__restrict __h_errnop);
+
+extern int __gethostbyname3_r (const char *__restrict __name, int __af,
+			       struct hostent *__restrict __result_buf,
+			       char *__restrict __buf, size_t __buflen,
+			       struct hostent **__restrict __result,
+			       int *__restrict __h_errnop,
+			       int32_t *ttlp, char **canonp);
+
+extern int __getnetent_r (struct netent *__restrict __result_buf,
+			  char *__restrict __buf, size_t __buflen,
+			  struct netent **__restrict __result,
+			  int *__restrict __h_errnop) attribute_hidden;
+extern int __old_getnetent_r (struct netent *__restrict __result_buf,
+			      char *__restrict __buf, size_t __buflen,
+			      struct netent **__restrict __result,
+			      int *__restrict __h_errnop);
+
+extern int __getnetbyaddr_r (uint32_t __net, int __type,
+			     struct netent *__restrict __result_buf,
+			     char *__restrict __buf, size_t __buflen,
+			     struct netent **__restrict __result,
+			     int *__restrict __h_errnop);
+extern int __old_getnetbyaddr_r (uint32_t __net, int __type,
+				 struct netent *__restrict __result_buf,
+				 char *__restrict __buf, size_t __buflen,
+				 struct netent **__restrict __result,
+				 int *__restrict __h_errnop);
+
+extern int __getnetbyname_r (const char *__restrict __name,
+			     struct netent *__restrict __result_buf,
+			     char *__restrict __buf, size_t __buflen,
+			     struct netent **__restrict __result,
+			     int *__restrict __h_errnop);
+extern int __old_getnetbyname_r (const char *__restrict __name,
+				 struct netent *__restrict __result_buf,
+				 char *__restrict __buf, size_t __buflen,
+				 struct netent **__restrict __result,
+				 int *__restrict __h_errnop);
+
+extern int __getservent_r (struct servent *__restrict __result_buf,
+			   char *__restrict __buf, size_t __buflen,
+			   struct servent **__restrict __result)
+     attribute_hidden;
+extern int __old_getservent_r (struct servent *__restrict __result_buf,
+			       char *__restrict __buf, size_t __buflen,
+			       struct servent **__restrict __result);
+
+extern int __getservbyname_r (const char *__restrict __name,
+			      const char *__restrict __proto,
+			      struct servent *__restrict __result_buf,
+			      char *__restrict __buf, size_t __buflen,
+			      struct servent **__restrict __result);
+extern int __old_getservbyname_r (const char *__restrict __name,
+				  const char *__restrict __proto,
+				  struct servent *__restrict __result_buf,
+				  char *__restrict __buf, size_t __buflen,
+				  struct servent **__restrict __result);
+
+extern int __getservbyport_r (int __port,
+			      const char *__restrict __proto,
+			      struct servent *__restrict __result_buf,
+			      char *__restrict __buf, size_t __buflen,
+			      struct servent **__restrict __result);
+extern int __old_getservbyport_r (int __port,
+				  const char *__restrict __proto,
+				  struct servent *__restrict __result_buf,
+				  char *__restrict __buf, size_t __buflen,
+				  struct servent **__restrict __result);
+
+extern int __getprotoent_r (struct protoent *__restrict __result_buf,
+			    char *__restrict __buf, size_t __buflen,
+			    struct protoent **__restrict __result)
+     attribute_hidden;
+extern int __old_getprotoent_r (struct protoent *__restrict __result_buf,
+				char *__restrict __buf, size_t __buflen,
+				struct protoent **__restrict __result);
+
+extern int __getprotobyname_r (const char *__restrict __name,
+			       struct protoent *__restrict __result_buf,
+			       char *__restrict __buf, size_t __buflen,
+			       struct protoent **__restrict __result);
+extern int __old_getprotobyname_r (const char *__restrict __name,
+				   struct protoent *__restrict __result_buf,
+				   char *__restrict __buf, size_t __buflen,
+				   struct protoent **__restrict __result);
+
+extern int __getprotobynumber_r (int __proto,
+				 struct protoent *__restrict __res_buf,
+				 char *__restrict __buf, size_t __buflen,
+				 struct protoent **__restrict __result);
+extern int __old_getprotobynumber_r (int __proto,
+				     struct protoent *__restrict __res_buf,
+				     char *__restrict __buf, size_t __buflen,
+				     struct protoent **__restrict __result);
+
+extern int __getnetgrent_r (char **__restrict __hostp,
+			    char **__restrict __userp,
+			    char **__restrict __domainp,
+			    char *__restrict __buffer, size_t __buflen);
+
+extern int ruserpass (const char *host, const char **aname,
+		      const char **apass);
+libc_hidden_proto (ruserpass)
+
+
+/* The following definition has been removed from the public header
+   since we don't want people to use them.  */
+
+#define AI_DEFAULT    (AI_V4MAPPED | AI_ADDRCONFIG)
+
+#include <inet/netgroup.h>
+
+struct parser_data;
+extern int _nss_files_parse_protoent (char *line, struct protoent *result,
+				      struct parser_data *data,
+				      size_t datalen, int *errnop);
+extern int _nss_files_parse_servent (char *line, struct servent *result,
+				     struct parser_data *data,
+				     size_t datalen, int *errnop);
+extern int _nss_files_parse_netent (char *line, struct netent *result,
+				    struct parser_data *data,
+				    size_t datalen, int *errnop);
+extern enum nss_status _nss_netgroup_parseline (char **cursor,
+						struct __netgrent *result,
+						char *buffer, size_t buflen,
+						int *errnop);
+libnss_files_hidden_proto (_nss_files_parse_protoent)
+libnss_files_hidden_proto (_nss_files_parse_servent)
+libnss_files_hidden_proto (_nss_files_parse_netent)
+libnss_files_hidden_proto (_nss_netgroup_parseline)
+
+#define DECLARE_NSS_PROTOTYPES(service)					      \
+extern enum nss_status _nss_ ## service ## _setprotoent (int);		      \
+extern enum nss_status _nss_ ## service ## _endprotoent (void);		      \
+extern enum nss_status _nss_ ## service ## _getprotoent_r		      \
+		       (struct protoent *proto, char *buffer, size_t buflen,  \
+			int *errnop);					      \
+extern enum nss_status _nss_ ## service ## _getprotobyname_r		      \
+		       (const char *name, struct protoent *proto,	      \
+			char *buffer, size_t buflen, int *errnop);	      \
+extern enum nss_status _nss_ ## service ## _getprotobynumber_r		      \
+		       (int number, struct protoent *proto,		      \
+			char *buffer, size_t buflen, int *errnop);	      \
+extern enum nss_status _nss_ ## service ## _sethostent (int);		      \
+extern enum nss_status _nss_ ## service ## _endhostent (void);		      \
+extern enum nss_status _nss_ ## service ## _gethostent_r		      \
+		       (struct hostent *host, char *buffer, size_t buflen,    \
+			int *errnop, int *h_errnop);			      \
+extern enum nss_status _nss_ ## service ## _gethostbyname2_r		      \
+		       (const char *name, int af, struct hostent *host,	      \
+			char *buffer, size_t buflen, int *errnop,	      \
+			int *h_errnop);					      \
+extern enum nss_status _nss_ ## service ## _gethostbyname_r		      \
+		       (const char *name, struct hostent *host, char *buffer, \
+			size_t buflen, int *errnop, int *h_errnop);	      \
+extern enum nss_status _nss_ ## service ## _gethostbyaddr_r		      \
+		       (const void *addr, socklen_t addrlen, int af,	      \
+			struct hostent *host, char *buffer, size_t buflen,    \
+			int *errnop, int *h_errnop);			      \
+extern enum nss_status _nss_ ## service ## _setservent (int);		      \
+extern enum nss_status _nss_ ## service ## _endservent (void);		      \
+extern enum nss_status _nss_ ## service ## _getservent_r		      \
+		       (struct servent *serv, char *buffer, size_t buflen,    \
+			int *errnop);					      \
+extern enum nss_status _nss_ ## service ## _getservbyname_r		      \
+		       (const char *name, const char *protocol,		      \
+			struct servent *serv, char *buffer, size_t buflen,    \
+			int *errnop);					      \
+extern enum nss_status _nss_ ## service ## _getservbyport_r		      \
+		       (int port, const char *protocol, struct servent *serv, \
+			char *buffer, size_t buflen, int *errnop);	      \
+extern enum nss_status _nss_ ## service ## _setnetgrent			      \
+		       (const char *group, struct __netgrent *result);	      \
+extern enum nss_status _nss_ ## service ## _endnetgrent			      \
+		       (struct __netgrent *result);			      \
+extern enum nss_status _nss_ ## service ## _getnetgrent_r		      \
+		       (struct __netgrent *result, char *buffer,	      \
+			size_t buflen, int *errnop);			      \
+extern enum nss_status _nss_ ## service ## _setnetent (int stayopen);	      \
+extern enum nss_status _nss_ ## service ## _endnetent (void);		      \
+extern enum nss_status _nss_ ## service ## _getnetent_r			      \
+			(struct netent *net, char *buffer, size_t buflen,     \
+			 int *errnop, int *herrnop);			      \
+extern enum nss_status _nss_ ## service ## _getnetbyname_r		      \
+			(const char *name, struct netent *net, char *buffer,  \
+			 size_t buflen, int *errnop, int *herrnop);	      \
+extern enum nss_status _nss_ ## service ## _getnetbyaddr_r		      \
+		       (uint32_t addr, int type, struct netent *net,	      \
+			char *buffer, size_t buflen, int *errnop,	      \
+			int *herrnop);
+
+DECLARE_NSS_PROTOTYPES (compat)
+DECLARE_NSS_PROTOTYPES (dns)
+DECLARE_NSS_PROTOTYPES (files)
+DECLARE_NSS_PROTOTYPES (hesiod)
+DECLARE_NSS_PROTOTYPES (nis)
+DECLARE_NSS_PROTOTYPES (nisplus)
+
+#undef DECLARE_NSS_PROTOTYPES
+#endif
+
+#endif /* !_NETDB_H */
diff --git a/REORG.TODO/include/netgroup.h b/REORG.TODO/include/netgroup.h
new file mode 100644
index 0000000000..4b2b284cdb
--- /dev/null
+++ b/REORG.TODO/include/netgroup.h
@@ -0,0 +1 @@
+#include <inet/netgroup.h>
diff --git a/REORG.TODO/include/netinet/ether.h b/REORG.TODO/include/netinet/ether.h
new file mode 100644
index 0000000000..8bfe7e03ad
--- /dev/null
+++ b/REORG.TODO/include/netinet/ether.h
@@ -0,0 +1,45 @@
+#ifndef _NETINET_ETHER_H
+#include <inet/netinet/ether.h>
+
+# ifndef _ISOMAC
+
+libc_hidden_proto (ether_aton_r)
+libc_hidden_proto (ether_ntoa_r)
+
+/* Because the `ethers' lookup does not fit so well in the scheme we
+   define a dummy struct here which helps us to use the available
+   functions.  */
+struct etherent
+{
+  const char *e_name;
+  struct ether_addr e_addr;
+};
+
+struct parser_data;
+extern int _nss_files_parse_etherent (char *line, struct etherent *result,
+				      struct parser_data *data,
+				      size_t datalen, int *errnop);
+libnss_files_hidden_proto (_nss_files_parse_etherent)
+
+#define DECLARE_NSS_PROTOTYPES(service)					      \
+extern enum nss_status _nss_ ## service ## _setetherent (int __stayopen);     \
+extern enum nss_status _nss_ ## service ## _endetherent (void);		      \
+extern enum nss_status _nss_ ## service ## _getetherent_r		      \
+                       (struct etherent *result, char *buffer,		      \
+			size_t buflen, int *errnop);			      \
+extern enum nss_status _nss_ ## service ## _gethostton_r		      \
+                       (const char *name, struct etherent *eth,		      \
+			char *buffer, size_t buflen, int *errnop);	      \
+extern enum nss_status _nss_ ## service ## _getntohost_r		      \
+                       (const struct ether_addr *addr,			      \
+			struct etherent *eth,				      \
+			char *buffer, size_t buflen, int *errnop);
+
+DECLARE_NSS_PROTOTYPES (files)
+DECLARE_NSS_PROTOTYPES (nis)
+DECLARE_NSS_PROTOTYPES (nisplus)
+
+#undef DECLARE_NSS_PROTOTYPES
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/netinet/in.h b/REORG.TODO/include/netinet/in.h
new file mode 100644
index 0000000000..5e377469e7
--- /dev/null
+++ b/REORG.TODO/include/netinet/in.h
@@ -0,0 +1,15 @@
+#ifndef _NETINET_IN_H
+
+#include <inet/netinet/in.h>
+
+#ifndef _ISOMAC
+libc_hidden_proto (bindresvport)
+libc_hidden_proto (in6addr_loopback)
+extern __typeof (in6addr_loopback) __in6addr_loopback;
+libc_hidden_proto (__in6addr_loopback)
+libc_hidden_proto (in6addr_any)
+extern __typeof (in6addr_any) __in6addr_any;
+libc_hidden_proto (__in6addr_any)
+#endif
+
+#endif
diff --git a/REORG.TODO/include/nl_types.h b/REORG.TODO/include/nl_types.h
new file mode 100644
index 0000000000..71cb425995
--- /dev/null
+++ b/REORG.TODO/include/nl_types.h
@@ -0,0 +1 @@
+#include <catgets/nl_types.h>
diff --git a/REORG.TODO/include/nss.h b/REORG.TODO/include/nss.h
new file mode 100644
index 0000000000..6358a10fd3
--- /dev/null
+++ b/REORG.TODO/include/nss.h
@@ -0,0 +1,17 @@
+#ifndef _NSS_H
+#include <nss/nss.h>
+
+# ifndef _ISOMAC
+
+#define NSS_INVALID_FIELD_CHARACTERS ":\n"
+extern const char __nss_invalid_field_characters[] attribute_hidden;
+
+_Bool __nss_valid_field (const char *value)
+  attribute_hidden internal_function;
+_Bool __nss_valid_list_field (char **list)
+  attribute_hidden internal_function;
+const char *__nss_rewrite_field (const char *value, char **to_be_freed)
+  attribute_hidden internal_function;
+
+# endif /* !_ISOMAC */
+#endif /* _NSS_H */
diff --git a/REORG.TODO/include/nsswitch.h b/REORG.TODO/include/nsswitch.h
new file mode 100644
index 0000000000..a876d23185
--- /dev/null
+++ b/REORG.TODO/include/nsswitch.h
@@ -0,0 +1 @@
+#include <nss/nsswitch.h>
diff --git a/REORG.TODO/include/obstack.h b/REORG.TODO/include/obstack.h
new file mode 100644
index 0000000000..fe2e595381
--- /dev/null
+++ b/REORG.TODO/include/obstack.h
@@ -0,0 +1,9 @@
+#ifndef _OBSTACK_H
+#include <malloc/obstack.h>
+
+# ifndef _ISOMAC
+
+libc_hidden_proto (_obstack_newchunk)
+
+# endif /* !_ISOMAC */
+#endif /* obstack.h */
diff --git a/REORG.TODO/include/poll.h b/REORG.TODO/include/poll.h
new file mode 100644
index 0000000000..75181925aa
--- /dev/null
+++ b/REORG.TODO/include/poll.h
@@ -0,0 +1 @@
+#include <include/sys/poll.h>
diff --git a/REORG.TODO/include/printf.h b/REORG.TODO/include/printf.h
new file mode 100644
index 0000000000..984f263167
--- /dev/null
+++ b/REORG.TODO/include/printf.h
@@ -0,0 +1,20 @@
+#ifndef	_PRINTF_H
+
+#include <stdio-common/printf.h>
+
+# ifndef _ISOMAC
+
+#include <xlocale.h>
+
+/* Now define the internal interfaces.  */
+extern int __printf_fphex (FILE *, const struct printf_info *,
+			   const void *const *);
+extern int __printf_fp (FILE *, const struct printf_info *,
+			const void *const *);
+libc_hidden_proto (__printf_fp)
+extern int __printf_fp_l (FILE *, locale_t, const struct printf_info *,
+			  const void *const *);
+libc_hidden_proto (__printf_fp_l)
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/programs/xmalloc.h b/REORG.TODO/include/programs/xmalloc.h
new file mode 100644
index 0000000000..203adaefc6
--- /dev/null
+++ b/REORG.TODO/include/programs/xmalloc.h
@@ -0,0 +1,33 @@
+/* Memory related definitions for program modules.
+   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published
+   by the Free Software Foundation; version 2 of the License, or
+   (at your option) any later version.
+
+   This program 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 General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _XMALLOC_H
+#define _XMALLOC_H	1
+
+#include <sys/cdefs.h>
+#include <stddef.h>
+
+/* Prototypes for a few program-wide used functions.  */
+extern void *xmalloc (size_t n)
+  __attribute_malloc__ __attribute_alloc_size__ ((1));
+extern void *xcalloc (size_t n, size_t s)
+  __attribute_malloc__ __attribute_alloc_size__ ((1, 2));
+extern void *xrealloc (void *o, size_t n)
+  __attribute_malloc__ __attribute_alloc_size__ ((2));
+extern char *xstrdup (const char *) __attribute_malloc__;
+
+#endif /* xmalloc.h */
diff --git a/REORG.TODO/include/protocols/routed.h b/REORG.TODO/include/protocols/routed.h
new file mode 100644
index 0000000000..7257b41eeb
--- /dev/null
+++ b/REORG.TODO/include/protocols/routed.h
@@ -0,0 +1 @@
+#include <inet/protocols/routed.h>
diff --git a/REORG.TODO/include/protocols/rwhod.h b/REORG.TODO/include/protocols/rwhod.h
new file mode 100644
index 0000000000..92afa469ad
--- /dev/null
+++ b/REORG.TODO/include/protocols/rwhod.h
@@ -0,0 +1 @@
+#include <inet/protocols/rwhod.h>
diff --git a/REORG.TODO/include/protocols/talkd.h b/REORG.TODO/include/protocols/talkd.h
new file mode 100644
index 0000000000..1513ca7ae9
--- /dev/null
+++ b/REORG.TODO/include/protocols/talkd.h
@@ -0,0 +1 @@
+#include <inet/protocols/talkd.h>
diff --git a/REORG.TODO/include/protocols/timed.h b/REORG.TODO/include/protocols/timed.h
new file mode 100644
index 0000000000..ac01bd3590
--- /dev/null
+++ b/REORG.TODO/include/protocols/timed.h
@@ -0,0 +1 @@
+#include <inet/protocols/timed.h>
diff --git a/REORG.TODO/include/pthread.h b/REORG.TODO/include/pthread.h
new file mode 100644
index 0000000000..858c869a16
--- /dev/null
+++ b/REORG.TODO/include/pthread.h
@@ -0,0 +1,16 @@
+#include_next <pthread.h>
+
+#ifndef _ISOMAC
+/* Prototypes repeated instead of using __typeof because pthread.h is
+   included in C++ tests, and declaring functions with __typeof and
+   __THROW doesn't work for C++.  */
+extern int __pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
+				 const pthread_barrierattr_t *__restrict
+				 __attr, unsigned int __count)
+     __THROW __nonnull ((1));
+extern int __pthread_barrier_wait (pthread_barrier_t *__barrier)
+     __THROWNL __nonnull ((1));
+
+/* This function is called to initialize the pthread library.  */
+extern void __pthread_initialize (void) __attribute__ ((weak));
+#endif
diff --git a/REORG.TODO/include/pty.h b/REORG.TODO/include/pty.h
new file mode 100644
index 0000000000..4979bb765f
--- /dev/null
+++ b/REORG.TODO/include/pty.h
@@ -0,0 +1,9 @@
+#ifndef _PTY_H
+#include <login/pty.h>
+
+# ifndef _ISOMAC
+
+libutil_hidden_proto (openpty)
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/pwd.h b/REORG.TODO/include/pwd.h
new file mode 100644
index 0000000000..3b0f72540c
--- /dev/null
+++ b/REORG.TODO/include/pwd.h
@@ -0,0 +1,57 @@
+#ifndef _PWD_H
+#include <pwd/pwd.h>
+
+#ifndef _ISOMAC
+/* Now define the internal interfaces.  */
+extern int __getpwent_r (struct passwd *__resultbuf, char *__buffer,
+			 size_t __buflen, struct passwd **__result)
+     attribute_hidden;
+extern int __old_getpwent_r (struct passwd *__resultbuf, char *__buffer,
+			     size_t __buflen, struct passwd **__result);
+extern int __getpwuid_r (__uid_t __uid, struct passwd *__resultbuf,
+			 char *__buffer, size_t __buflen,
+			 struct passwd **__result);
+extern int __old_getpwuid_r (__uid_t __uid, struct passwd *__resultbuf,
+			     char *__buffer, size_t __buflen,
+			     struct passwd **__result);
+extern int __getpwnam_r (const char *__name, struct passwd *__resultbuf,
+			 char *__buffer, size_t __buflen,
+			 struct passwd **__result);
+extern int __old_getpwnam_r (const char *__name, struct passwd *__resultbuf,
+			     char *__buffer, size_t __buflen,
+			     struct passwd **__result);
+extern int __fgetpwent_r (FILE * __stream, struct passwd *__resultbuf,
+			  char *__buffer, size_t __buflen,
+			  struct passwd **__result);
+
+#include <nss.h>
+
+struct parser_data;
+extern int _nss_files_parse_pwent (char *line, struct passwd *result,
+				   struct parser_data *data,
+				   size_t datalen, int *errnop);
+libc_hidden_proto (_nss_files_parse_pwent)
+
+#define DECLARE_NSS_PROTOTYPES(service)					\
+extern enum nss_status _nss_ ## service ## _setpwent (int);		\
+extern enum nss_status _nss_ ## service ## _endpwent (void);		\
+extern enum nss_status _nss_ ## service ## _getpwnam_r			\
+		       (const char *name, struct passwd *pwd,		\
+			char *buffer, size_t buflen, int *errnop);	\
+extern enum nss_status _nss_ ## service ## _getpwuid_r			\
+		       (uid_t uid, struct passwd *pwd,			\
+			char *buffer, size_t buflen, int *errnop);	\
+extern enum nss_status _nss_ ## service ##_getpwent_r			\
+		       (struct passwd *result, char *buffer,		\
+			size_t buflen, int *errnop);
+
+DECLARE_NSS_PROTOTYPES (compat)
+DECLARE_NSS_PROTOTYPES (files)
+DECLARE_NSS_PROTOTYPES (hesiod)
+DECLARE_NSS_PROTOTYPES (nis)
+DECLARE_NSS_PROTOTYPES (nisplus)
+
+#undef DECLARE_NSS_PROTOTYPES
+#endif
+
+#endif
diff --git a/REORG.TODO/include/regex.h b/REORG.TODO/include/regex.h
new file mode 100644
index 0000000000..fd4beeff3d
--- /dev/null
+++ b/REORG.TODO/include/regex.h
@@ -0,0 +1,45 @@
+#ifndef _REGEX_H
+#include <posix/regex.h>
+
+#ifndef _ISOMAC
+/* Document internal interfaces.  */
+extern reg_syntax_t __re_set_syntax (reg_syntax_t syntax);
+
+extern const char *__re_compile_pattern (const char *pattern, size_t length,
+					 struct re_pattern_buffer *buffer);
+
+extern int __re_compile_fastmap (struct re_pattern_buffer *buffer);
+
+extern int __re_search (struct re_pattern_buffer *buffer, const char *string,
+			int length, int start, int range,
+			struct re_registers *regs);
+
+extern int __re_search_2
+  (struct re_pattern_buffer *buffer, const char *string1,
+   int length1, const char *string2, int length2,
+   int start, int range, struct re_registers *regs, int stop);
+
+extern int __re_match
+  (struct re_pattern_buffer *buffer, const char *string,
+   int length, int start, struct re_registers *regs);
+
+extern int __re_match_2
+  (struct re_pattern_buffer *buffer, const char *string1,
+   int length1, const char *string2, int length2,
+   int start, struct re_registers *regs, int stop);
+
+extern void __re_set_registers
+  (struct re_pattern_buffer *buffer, struct re_registers *regs,
+   unsigned num_regs, regoff_t *starts, regoff_t *ends);
+
+extern int __regcomp (regex_t *__preg, const char *__pattern, int __cflags);
+
+extern int __regexec (const regex_t *__preg, const char *__string,
+		      size_t __nmatch, regmatch_t __pmatch[], int __eflags);
+
+extern size_t __regerror (int __errcode, const regex_t *__preg,
+			  char *__errbuf, size_t __errbuf_size);
+
+extern void __regfree (regex_t *__preg);
+#endif
+#endif
diff --git a/REORG.TODO/include/resolv.h b/REORG.TODO/include/resolv.h
new file mode 100644
index 0000000000..e8f477cd86
--- /dev/null
+++ b/REORG.TODO/include/resolv.h
@@ -0,0 +1,99 @@
+#ifndef _RESOLV_H_
+
+# ifndef _ISOMAC
+#  include <stdbool.h>
+#  define RES_SET_H_ERRNO(r,x)			\
+  do						\
+    {						\
+      (r)->res_h_errno = x;			\
+      __set_h_errno(x);				\
+    }						\
+  while (0)
+# endif
+
+#include <resolv/resolv.h>
+
+# if defined _RESOLV_H_ && !defined _ISOMAC
+
+# if IS_IN (libc)
+#  define __resp __libc_resp
+# endif
+extern __thread struct __res_state *__resp attribute_tls_model_ie;
+# undef _res
+# define _res (*__resp)
+
+/* Now define the internal interfaces.  */
+extern int __res_vinit (res_state, int);
+extern int __res_maybe_init (res_state, int);
+extern void _sethtent (int);
+extern struct hostent *_gethtent (void);
+extern struct hostent *_gethtbyname (const char *__name);
+extern struct hostent *_gethtbyname2 (const char *__name, int __af);
+struct hostent *_gethtbyaddr (const char *addr, size_t __len, int __af);
+extern uint32_t _getlong (const unsigned char *__src);
+extern uint16_t _getshort (const unsigned char *__src);
+extern void res_pquery (const res_state __statp, const unsigned char *__msg,
+			int __len, FILE *__file);
+extern int res_ourserver_p (const res_state __statp,
+			    const struct sockaddr_in6 *__inp);
+extern void __res_iclose (res_state statp, bool free_addr);
+libc_hidden_proto (__res_ninit)
+libc_hidden_proto (__res_maybe_init)
+libc_hidden_proto (__res_nclose)
+libc_hidden_proto (__res_iclose)
+libc_hidden_proto (__res_randomid)
+libc_hidden_proto (__res_state)
+
+int __libc_res_nquery (res_state, const char *, int, int,
+		       unsigned char *, int, unsigned char **,
+		       unsigned char **, int *, int *, int *);
+int __libc_res_nsearch (res_state, const char *, int, int,
+			unsigned char *, int, unsigned char **,
+			unsigned char **, int *, int *, int *);
+int __libc_res_nsend (res_state, const unsigned char *, int,
+		      const unsigned char *, int, unsigned char *,
+		      int, unsigned char **, unsigned char **,
+		      int *, int *, int *)
+  attribute_hidden;
+
+libresolv_hidden_proto (_sethtent)
+libresolv_hidden_proto (_gethtent)
+libresolv_hidden_proto (_gethtbyaddr)
+libresolv_hidden_proto (_gethtbyname2)
+libresolv_hidden_proto (__dn_expand)
+libresolv_hidden_proto (__dn_comp)
+libresolv_hidden_proto (__dn_skipname)
+libresolv_hidden_proto (__res_hnok)
+libresolv_hidden_proto (__res_dnok)
+libresolv_hidden_proto (__putlong)
+libresolv_hidden_proto (__putshort)
+libresolv_hidden_proto (__p_cdnname)
+libresolv_hidden_proto (__p_fqnname)
+libresolv_hidden_proto (__p_option)
+libresolv_hidden_proto (__sym_ntos)
+libresolv_hidden_proto (__p_rcode)
+libresolv_hidden_proto (__p_class)
+libresolv_hidden_proto (__p_type)
+libresolv_hidden_proto (__loc_ntoa)
+libresolv_hidden_proto (__fp_nquery)
+libresolv_hidden_proto (__fp_query)
+libresolv_hidden_proto (__hostalias)
+libresolv_hidden_proto (__res_nmkquery)
+libresolv_hidden_proto (__libc_res_nquery)
+libresolv_hidden_proto (__res_nquery)
+libresolv_hidden_proto (__res_nquerydomain)
+libresolv_hidden_proto (__res_hostalias)
+libresolv_hidden_proto (__libc_res_nsearch)
+libresolv_hidden_proto (__res_nsearch)
+libresolv_hidden_proto (__res_nameinquery)
+libresolv_hidden_proto (__res_queriesmatch)
+libresolv_hidden_proto (__res_nsend)
+libresolv_hidden_proto (__b64_ntop)
+libresolv_hidden_proto (__dn_count_labels)
+libresolv_hidden_proto (__p_secstodate)
+
+extern const char *_res_opcodes[];
+libresolv_hidden_proto (_res_opcodes)
+
+# endif /* _RESOLV_H_ && !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/rounding-mode.h b/REORG.TODO/include/rounding-mode.h
new file mode 100644
index 0000000000..5d5cfe5f10
--- /dev/null
+++ b/REORG.TODO/include/rounding-mode.h
@@ -0,0 +1,65 @@
+/* Handle floating-point rounding mode within libc.
+   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/>.  */
+
+#ifndef _ROUNDING_MODE_H
+#define _ROUNDING_MODE_H	1
+
+#include <fenv.h>
+#include <stdbool.h>
+#include <stdlib.h>
+
+/* Get the architecture-specific definition of how to determine the
+   rounding mode in libc.  This header must also define the FE_*
+   macros for any standard rounding modes the architecture does not
+   have in <fenv.h>, to arbitrary distinct values.  */
+#include <get-rounding-mode.h>
+
+/* Return true if a number should be rounded away from zero in
+   rounding mode MODE, false otherwise.  NEGATIVE is true if the
+   number is negative, false otherwise.  LAST_DIGIT_ODD is true if the
+   last digit of the truncated value (last bit for binary) is odd,
+   false otherwise.  HALF_BIT is true if the number is at least half
+   way from the truncated value to the next value with the
+   least-significant digit in the same place, false otherwise.
+   MORE_BITS is true if the number is not exactly equal to the
+   truncated value or the half-way value, false otherwise.  */
+
+static bool
+round_away (bool negative, bool last_digit_odd, bool half_bit, bool more_bits,
+	    int mode)
+{
+  switch (mode)
+    {
+    case FE_DOWNWARD:
+      return negative && (half_bit || more_bits);
+
+    case FE_TONEAREST:
+      return half_bit && (last_digit_odd || more_bits);
+
+    case FE_TOWARDZERO:
+      return false;
+
+    case FE_UPWARD:
+      return !negative && (half_bit || more_bits);
+
+    default:
+      abort ();
+    }
+}
+
+#endif /* rounding-mode.h */
diff --git a/REORG.TODO/include/rpc/auth.h b/REORG.TODO/include/rpc/auth.h
new file mode 100644
index 0000000000..2e55cce11d
--- /dev/null
+++ b/REORG.TODO/include/rpc/auth.h
@@ -0,0 +1,47 @@
+#ifndef _RPC_AUTH_H
+#include <sunrpc/rpc/auth.h>
+
+# ifndef _ISOMAC
+
+libc_hidden_proto (getnetname)
+libc_hidden_proto (netname2user)
+libc_hidden_proto (host2netname)
+libc_hidden_proto (user2netname)
+libc_hidden_proto (key_gendes)
+
+/* Now define the internal interfaces.  */
+struct key_netstarg;
+extern int key_setnet (struct key_netstarg *arg);
+
+#define DECLARE_NSS_PROTOTYPES(service)					\
+extern enum nss_status _nss_ ##service ## _netname2user			\
+		       (char netname[MAXNETNAMELEN + 1], uid_t *uidp,	\
+			gid_t *gidp, int *gidlenp, gid_t *gidlist,	\
+			int *errnop);
+
+DECLARE_NSS_PROTOTYPES (nis)
+DECLARE_NSS_PROTOTYPES (nisplus)
+
+#undef DECLARE_NSS_PROTOTYPES
+
+libc_hidden_proto (key_encryptsession_pk)
+libc_hidden_proto (key_decryptsession_pk)
+
+libc_hidden_proto (_null_auth)
+libc_hidden_proto (authnone_create)
+libc_hidden_proto (authunix_create)
+libc_hidden_proto (authunix_create_default)
+libc_hidden_proto (xdr_des_block)
+libc_hidden_proto (xdr_opaque_auth)
+libc_hidden_proto (authdes_create)
+libc_hidden_proto (authdes_pk_create)
+libc_hidden_proto (key_decryptsession)
+libc_hidden_proto (key_encryptsession)
+libc_hidden_proto (key_get_conv)
+libc_hidden_proto (key_secretkey_is_set)
+libc_hidden_proto (key_setnet)
+libc_hidden_proto (key_setsecret)
+libc_hidden_proto (netname2host)
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/rpc/auth_des.h b/REORG.TODO/include/rpc/auth_des.h
new file mode 100644
index 0000000000..6afed56b71
--- /dev/null
+++ b/REORG.TODO/include/rpc/auth_des.h
@@ -0,0 +1,38 @@
+#ifndef _RPC_AUTH_DES_H
+
+#include <sunrpc/rpc/auth_des.h>
+
+# ifndef _ISOMAC
+
+libc_hidden_proto (getpublickey)
+libc_hidden_proto (getsecretkey)
+libc_hidden_proto (rtime)
+
+extern bool_t xdr_authdes_cred (XDR *xdrs, struct authdes_cred *cred);
+extern bool_t xdr_authdes_verf (XDR *xdrs,
+				struct authdes_verf *verf);
+struct svc_req;
+struct rpc_msg;
+extern enum auth_stat _svcauth_des (struct svc_req *rqst,
+				    struct rpc_msg *msg);
+
+
+#define DECLARE_NSS_PROTOTYPES(service)					\
+extern enum nss_status _nss_ ## service ## _getpublickey		\
+		       (const char *netname, char *pkey, int *errnop);	\
+extern enum nss_status _nss_ ## service ## _getsecretkey		\
+		       (const char *netname, char *skey, char *passwd,	\
+			int *errnop);
+
+DECLARE_NSS_PROTOTYPES (files)
+DECLARE_NSS_PROTOTYPES (nis)
+DECLARE_NSS_PROTOTYPES (nisplus)
+
+#undef DECLARE_NSS_PROTOTYPES
+
+libc_hidden_proto (authdes_getucred)
+libc_hidden_proto (xdr_authdes_cred)
+libc_hidden_proto (xdr_authdes_verf)
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/rpc/auth_unix.h b/REORG.TODO/include/rpc/auth_unix.h
new file mode 100644
index 0000000000..019efa275a
--- /dev/null
+++ b/REORG.TODO/include/rpc/auth_unix.h
@@ -0,0 +1,9 @@
+#ifndef _RPC_AUTH_UNIX_H
+#include <sunrpc/rpc/auth_unix.h>
+
+# ifndef _ISOMAC
+
+libc_hidden_proto (xdr_authunix_parms)
+
+# endif /* !_ISOMAC */
+#endif /* rpc/auth_unix.h */
diff --git a/REORG.TODO/include/rpc/clnt.h b/REORG.TODO/include/rpc/clnt.h
new file mode 100644
index 0000000000..a397023a93
--- /dev/null
+++ b/REORG.TODO/include/rpc/clnt.h
@@ -0,0 +1,33 @@
+#ifndef _RPC_CLNT_H
+#include <sunrpc/rpc/clnt.h>
+
+# ifndef _ISOMAC
+
+/* Now define the internal interfaces.  */
+extern int _openchild (const char *command, FILE **fto, FILE **ffrom);
+
+extern CLIENT *__libc_clntudp_bufcreate (struct sockaddr_in *__raddr,
+					 u_long __program, u_long __version,
+					 struct timeval __wait_resend,
+					 int *__sockp, u_int __sendsz,
+					 u_int __recvsz, int __flags);
+
+libc_hidden_proto (clnt_sperrno)
+libc_hidden_proto (clnt_spcreateerror)
+libc_hidden_proto (clnt_perror)
+libc_hidden_proto (clnt_sperror)
+libc_hidden_proto (_rpc_dtablesize)
+libc_hidden_proto (callrpc)
+libc_hidden_proto (clnt_create)
+libc_hidden_proto (clnt_pcreateerror)
+libc_hidden_proto (clnt_perrno)
+libc_hidden_proto (clntraw_create)
+libc_hidden_proto (clnttcp_create)
+libc_hidden_proto (clntudp_bufcreate)
+libc_hidden_proto (clntudp_create)
+libc_hidden_proto (get_myaddress)
+libc_hidden_proto (clntunix_create)
+libc_hidden_proto (__libc_clntudp_bufcreate)
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/rpc/des_crypt.h b/REORG.TODO/include/rpc/des_crypt.h
new file mode 100644
index 0000000000..7a34957df8
--- /dev/null
+++ b/REORG.TODO/include/rpc/des_crypt.h
@@ -0,0 +1,18 @@
+#ifndef __DES_CRYPT_H__
+#include <sunrpc/rpc/des_crypt.h>
+
+# ifndef _ISOMAC
+
+/* Now define the internal interfaces.  */
+
+extern int xencrypt (char *secret, char *passwd);
+extern int xdecrypt (char *secret, char *passwd);
+
+libc_hidden_proto (des_setparity)
+libc_hidden_proto (ecb_crypt)
+libc_hidden_proto (cbc_crypt)
+libc_hidden_proto (xencrypt)
+libc_hidden_proto (xdecrypt)
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/rpc/key_prot.h b/REORG.TODO/include/rpc/key_prot.h
new file mode 100644
index 0000000000..4711a94edf
--- /dev/null
+++ b/REORG.TODO/include/rpc/key_prot.h
@@ -0,0 +1,18 @@
+#ifndef _KEY_PROT_H_RPCGEN
+#include <sunrpc/rpc/key_prot.h>
+
+# ifndef _ISOMAC
+
+libc_hidden_proto (xdr_cryptkeyarg)
+libc_hidden_proto (xdr_cryptkeyarg2)
+libc_hidden_proto (xdr_cryptkeyres)
+libc_hidden_proto (xdr_key_netstarg)
+libc_hidden_proto (xdr_key_netstres)
+libc_hidden_proto (xdr_keybuf)
+libc_hidden_proto (xdr_keystatus)
+libc_hidden_proto (xdr_getcredres)
+libc_hidden_proto (xdr_netnamestr)
+libc_hidden_proto (xdr_unixcred)
+
+# endif /* !_ISOMAC */
+#endif /* rpc/key_prot.h */
diff --git a/REORG.TODO/include/rpc/netdb.h b/REORG.TODO/include/rpc/netdb.h
new file mode 100644
index 0000000000..9b84668be7
--- /dev/null
+++ b/REORG.TODO/include/rpc/netdb.h
@@ -0,0 +1,54 @@
+#ifndef _RPC_NETDB_H
+#include <sunrpc/rpc/netdb.h>
+
+# ifndef _ISOMAC
+
+extern int __getrpcbyname_r (const char *__name, struct rpcent *__result_buf,
+			     char *__buffer, size_t __buflen,
+			     struct rpcent **__result);
+extern int __old_getrpcbyname_r (const char *__name,
+				 struct rpcent *__result_buf,
+				 char *__buffer, size_t __buflen,
+				 struct rpcent **__result);
+
+extern int __getrpcbynumber_r (int __number, struct rpcent *__result_buf,
+			       char *__buffer, size_t __buflen,
+			       struct rpcent **__result);
+extern int __old_getrpcbynumber_r (int __number, struct rpcent *__result_buf,
+				   char *__buffer, size_t __buflen,
+				   struct rpcent **__result);
+
+extern int __getrpcent_r (struct rpcent *__result_buf, char *__buffer,
+			  size_t __buflen, struct rpcent **__result)
+     attribute_hidden;
+extern int __old_getrpcent_r (struct rpcent *__result_buf, char *__buffer,
+			      size_t __buflen, struct rpcent **__result);
+
+struct parser_data;
+extern int _nss_files_parse_rpcent (char *line, struct rpcent *result,
+				    struct parser_data *data,
+				    size_t datalen, int *errnop);
+libnss_files_hidden_proto (_nss_files_parse_rpcent)
+
+#define DECLARE_NSS_PROTOTYPES(service)					      \
+extern enum nss_status _nss_ ## service ## _setrpcent (int);		      \
+extern enum nss_status _nss_ ## service ## _endrpcent (void);		      \
+extern enum nss_status _nss_ ## service ## _getrpcent_r			      \
+		       (struct rpcent *rpc, char *buffer, size_t buflen,      \
+			int *errnop);					      \
+extern enum nss_status _nss_ ## service ## _getrpcbyname_r		      \
+		       (const char *name, struct rpcent *rpc,		      \
+			char *buffer, size_t buflen, int *errnop);	      \
+extern enum nss_status _nss_ ## service ## _getrpcbynumber_r		      \
+		       (int number, struct rpcent *rpc,			      \
+			char *buffer, size_t buflen, int *errnop);
+
+
+DECLARE_NSS_PROTOTYPES (files)
+DECLARE_NSS_PROTOTYPES (nis)
+DECLARE_NSS_PROTOTYPES (nisplus)
+
+#undef DECLARE_NSS_PROTOTYPES
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/rpc/pmap_clnt.h b/REORG.TODO/include/rpc/pmap_clnt.h
new file mode 100644
index 0000000000..ec907c28cc
--- /dev/null
+++ b/REORG.TODO/include/rpc/pmap_clnt.h
@@ -0,0 +1,24 @@
+#ifndef _RPC_PMAP_CLNT_H
+#include <sunrpc/rpc/pmap_clnt.h>
+
+# ifndef _ISOMAC
+
+libc_hidden_proto (pmap_getport)
+libc_hidden_proto (pmap_set)
+libc_hidden_proto (pmap_unset)
+
+/* Defined in pm_getport.c.  */
+extern int __get_socket (struct sockaddr_in *saddr)
+     attribute_hidden internal_function;
+extern u_short __libc_rpc_getport (struct sockaddr_in *address, u_long program,
+				   u_long version, u_int protocol,
+				   time_t timeout_sec, time_t tottimeout_sec)
+     internal_function;
+libc_hidden_proto (__libc_rpc_getport)
+
+libc_hidden_proto (clnt_broadcast)
+libc_hidden_proto (pmap_getmaps)
+libc_hidden_proto (pmap_rmtcall)
+
+# endif /* !_ISOMAC */
+#endif /* rpc/pmap_clnt.h */
diff --git a/REORG.TODO/include/rpc/pmap_prot.h b/REORG.TODO/include/rpc/pmap_prot.h
new file mode 100644
index 0000000000..a2573d106f
--- /dev/null
+++ b/REORG.TODO/include/rpc/pmap_prot.h
@@ -0,0 +1,10 @@
+#ifndef _RPC_PMAP_PROT_H
+#include <sunrpc/rpc/pmap_prot.h>
+
+# ifndef _ISOMAC
+
+libc_hidden_proto (xdr_pmap)
+libc_hidden_proto (xdr_pmaplist)
+
+# endif /* !_ISOMAC */
+#endif /* rpc/pmap_prot.h */
diff --git a/REORG.TODO/include/rpc/pmap_rmt.h b/REORG.TODO/include/rpc/pmap_rmt.h
new file mode 100644
index 0000000000..ae53a02652
--- /dev/null
+++ b/REORG.TODO/include/rpc/pmap_rmt.h
@@ -0,0 +1,10 @@
+#ifndef _RPC_PMAP_RMT_H
+#include <sunrpc/rpc/pmap_rmt.h>
+
+# ifndef _ISOMAC
+
+libc_hidden_proto (xdr_rmtcall_args)
+libc_hidden_proto (xdr_rmtcallres)
+
+# endif /* !_ISOMAC */
+#endif /* rpc/pmap_rmt.h */
diff --git a/REORG.TODO/include/rpc/rpc.h b/REORG.TODO/include/rpc/rpc.h
new file mode 100644
index 0000000000..60c78968de
--- /dev/null
+++ b/REORG.TODO/include/rpc/rpc.h
@@ -0,0 +1,69 @@
+#ifndef _RPC_RPC_H
+#include <sunrpc/rpc/rpc.h>
+
+# ifndef _ISOMAC
+
+#include <libc-tsd.h>
+
+/* Now define the internal interfaces.  */
+extern unsigned long _create_xid (void);
+
+/*
+ * Multi-threaded support
+ * Group all global and static variables into a single spot.
+ * This area is allocated on a per-thread basis
+ */
+#ifdef _RPC_THREAD_SAFE_
+struct rpc_thread_variables {
+	fd_set		svc_fdset_s;		/* Global, rpc_common.c */
+	struct rpc_createerr rpc_createerr_s;	/* Global, rpc_common.c */
+	struct pollfd	*svc_pollfd_s;		/* Global, rpc_common.c */
+	int		svc_max_pollfd_s;	/* Global, rpc_common.c */
+
+	char		*clnt_perr_buf_s;	/* clnt_perr.c */
+
+	struct clntraw_private_s *clntraw_private_s;	/* clnt_raw.c */
+
+	struct callrpc_private_s *callrpc_private_s;	/* clnt_simp.c */
+
+	struct key_call_private *key_call_private_s;	/* key_call.c */
+
+	struct cache_entry *authdes_cache_s;	/* svcauth_des.c */
+	int		*authdes_lru_s;		/* svcauth_des.c */
+
+	SVCXPRT		**svc_xports_s;		/* svc.c */
+	struct svc_callout *svc_head_s;		/* svc.c */
+
+	struct svcraw_private_s *svcraw_private_s;	/* svc_raw.c */
+
+	struct proglst_ *svcsimple_proglst_s;	/* svc_simple.c */
+	SVCXPRT		*svcsimple_transp_s;	/* svc_simple.c */
+};
+
+extern struct rpc_thread_variables *__rpc_thread_variables(void)
+     __attribute__ ((const));
+extern void __rpc_thread_svc_cleanup (void);
+extern void __rpc_thread_clnt_cleanup (void);
+extern void __rpc_thread_key_cleanup (void);
+
+extern void __rpc_thread_destroy (void);
+
+__libc_tsd_define (extern, struct rpc_thread_variables *, RPC_VARS)
+
+#define RPC_THREAD_VARIABLE(x) (__rpc_thread_variables()->x)
+
+libc_hidden_proto (__rpc_thread_svc_max_pollfd)
+libc_hidden_proto (__rpc_thread_svc_pollfd)
+libc_hidden_proto (__rpc_thread_svc_fdset)
+libc_hidden_proto (__rpc_thread_createerr)
+
+/* Perform a host name lookup for NAME and return the first IPv4
+   address in *ADDR.  Return 0 on success and -1 on error (and set an
+   RPC error).  */
+int __libc_rpc_gethostbyname (const char *host, struct sockaddr_in *addr)
+  attribute_hidden;
+
+#endif /* _RPC_THREAD_SAFE_ */
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/rpc/rpc_msg.h b/REORG.TODO/include/rpc/rpc_msg.h
new file mode 100644
index 0000000000..93c5ab8764
--- /dev/null
+++ b/REORG.TODO/include/rpc/rpc_msg.h
@@ -0,0 +1,20 @@
+#ifndef _RPC_MSG_H
+#include <sunrpc/rpc/rpc_msg.h>
+
+# ifndef _ISOMAC
+
+libc_hidden_proto (_seterr_reply)
+
+/* Now define the internal interfaces.  */
+
+extern bool_t xdr_rejected_reply (XDR *xdrs, struct rejected_reply *rr);
+extern bool_t xdr_accepted_reply (XDR *xdrs, struct accepted_reply *ar);
+
+libc_hidden_proto (xdr_accepted_reply)
+libc_hidden_proto (xdr_callhdr)
+libc_hidden_proto (xdr_callmsg)
+libc_hidden_proto (xdr_rejected_reply)
+libc_hidden_proto (xdr_replymsg)
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/rpc/svc.h b/REORG.TODO/include/rpc/svc.h
new file mode 100644
index 0000000000..465bf4427d
--- /dev/null
+++ b/REORG.TODO/include/rpc/svc.h
@@ -0,0 +1,43 @@
+#ifndef _RPC_SVC_H
+#include <sunrpc/rpc/svc.h>
+
+# ifndef _ISOMAC
+
+libc_hidden_proto (xprt_register)
+libc_hidden_proto (xprt_unregister)
+libc_hidden_proto (svc_register)
+libc_hidden_proto (svc_unregister)
+libc_hidden_proto (svcerr_auth)
+libc_hidden_proto (svcerr_noprog)
+libc_hidden_proto (svcerr_progvers)
+
+/* Now define the internal interfaces.  */
+extern SVCXPRT *svcfd_create (int fd, u_int sendsize, u_int recvsize);
+
+extern int svcudp_enablecache (SVCXPRT *transp, u_long size);
+extern SVCXPRT *svcunixfd_create (int fd, u_int sendsize, u_int recvsize);
+
+libc_hidden_proto (svc_exit)
+libc_hidden_proto (svc_getreq)
+libc_hidden_proto (svc_getreqset)
+libc_hidden_proto (svc_run)
+libc_hidden_proto (svc_sendreply)
+libc_hidden_proto (svcerr_decode)
+libc_hidden_proto (svcerr_noproc)
+libc_hidden_proto (svcerr_systemerr)
+libc_hidden_proto (svcerr_weakauth)
+libc_hidden_proto (svcfd_create)
+libc_hidden_proto (svcraw_create)
+libc_hidden_proto (svctcp_create)
+libc_hidden_proto (svcudp_bufcreate)
+libc_hidden_proto (svcudp_create)
+libc_hidden_proto (svcudp_enablecache)
+libc_hidden_proto (svcunix_create)
+libc_hidden_proto (svcunixfd_create)
+libc_hidden_proto (svc_getreq_common)
+libc_hidden_proto (svc_getreq_poll)
+
+extern void __svc_accept_failed (void) attribute_hidden;
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/rpc/svc_auth.h b/REORG.TODO/include/rpc/svc_auth.h
new file mode 100644
index 0000000000..2609d19544
--- /dev/null
+++ b/REORG.TODO/include/rpc/svc_auth.h
@@ -0,0 +1,15 @@
+#ifndef _RPC_SVC_AUTH_H
+#include <sunrpc/rpc/svc_auth.h>
+
+# ifndef _ISOMAC
+
+/* Now define the internal interfaces.  */
+extern enum auth_stat _svcauth_unix (struct svc_req *rqst,
+				     struct rpc_msg *msg);
+extern enum auth_stat _svcauth_short (struct svc_req *rqst,
+				      struct rpc_msg *msg);
+
+libc_hidden_proto (_authenticate)
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/rpc/types.h b/REORG.TODO/include/rpc/types.h
new file mode 100644
index 0000000000..53df7e666b
--- /dev/null
+++ b/REORG.TODO/include/rpc/types.h
@@ -0,0 +1 @@
+#include <sunrpc/rpc/types.h>
diff --git a/REORG.TODO/include/rpc/xdr.h b/REORG.TODO/include/rpc/xdr.h
new file mode 100644
index 0000000000..e1bff1cd1c
--- /dev/null
+++ b/REORG.TODO/include/rpc/xdr.h
@@ -0,0 +1,53 @@
+#ifndef _RPC_XDR_H
+#include <sunrpc/rpc/xdr.h>
+
+# ifndef _ISOMAC
+
+libc_hidden_proto (xdrstdio_create)
+libc_hidden_proto (xdr_array)
+libc_hidden_proto (xdr_bool)
+libc_hidden_proto (xdr_bytes)
+libc_hidden_proto (xdr_char)
+libc_hidden_proto (xdr_double)
+libc_hidden_proto (xdr_enum)
+libc_hidden_proto (xdr_float)
+libc_hidden_proto (xdr_free)
+libc_hidden_proto (xdr_int)
+libc_hidden_proto (xdr_long)
+libc_hidden_proto (xdr_netobj)
+libc_hidden_proto (xdr_opaque)
+libc_hidden_proto (xdr_pointer)
+libc_hidden_proto (xdr_reference)
+libc_hidden_proto (xdr_short)
+libc_hidden_proto (xdr_string)
+libc_hidden_proto (xdr_u_char)
+libc_hidden_proto (xdr_u_int)
+libc_hidden_proto (xdr_u_long)
+libc_hidden_proto (xdr_u_short)
+libc_hidden_proto (xdr_union)
+libc_hidden_proto (xdr_vector)
+libc_hidden_proto (xdr_void)
+libc_hidden_proto (xdr_wrapstring)
+libc_hidden_proto (xdrmem_create)
+libc_hidden_proto (xdrrec_create)
+libc_hidden_proto (xdrrec_endofrecord)
+libc_hidden_proto (xdrrec_eof)
+libc_hidden_proto (xdrrec_skiprecord)
+libc_hidden_proto (xdr_int16_t)
+libc_hidden_proto (xdr_int32_t)
+libc_hidden_proto (xdr_int8_t)
+libc_hidden_proto (xdr_sizeof)
+libc_hidden_proto (xdr_uint16_t)
+libc_hidden_proto (xdr_uint32_t)
+libc_hidden_proto (xdr_uint8_t)
+libc_hidden_proto (xdr_hyper)
+libc_hidden_proto (xdr_u_hyper)
+libc_hidden_proto (xdr_longlong_t)
+libc_hidden_proto (xdr_u_longlong_t)
+libc_hidden_proto (xdr_int64_t)
+libc_hidden_proto (xdr_uint64_t)
+libc_hidden_proto (xdr_quad_t)
+libc_hidden_proto (xdr_u_quad_t)
+
+# endif /* !_ISOMAC */
+#endif /* rpc/xdr.h */
diff --git a/REORG.TODO/include/rpcsvc/nis.h b/REORG.TODO/include/rpcsvc/nis.h
new file mode 100644
index 0000000000..2943573aa9
--- /dev/null
+++ b/REORG.TODO/include/rpcsvc/nis.h
@@ -0,0 +1 @@
+#include <nis/rpcsvc/nis.h>
diff --git a/REORG.TODO/include/rpcsvc/nis_callback.h b/REORG.TODO/include/rpcsvc/nis_callback.h
new file mode 100644
index 0000000000..0515d07887
--- /dev/null
+++ b/REORG.TODO/include/rpcsvc/nis_callback.h
@@ -0,0 +1,10 @@
+#ifndef _RPCSVC_NIS_CALLBACK_H
+#include <nis/rpcsvc/nis_callback.h>
+
+# ifndef _ISOMAC
+
+libnsl_hidden_proto (xdr_obj_p)
+libnsl_hidden_proto (xdr_cback_data)
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/rpcsvc/nis_tags.h b/REORG.TODO/include/rpcsvc/nis_tags.h
new file mode 100644
index 0000000000..ea79f74da3
--- /dev/null
+++ b/REORG.TODO/include/rpcsvc/nis_tags.h
@@ -0,0 +1 @@
+#include <nis/rpcsvc/nis_tags.h>
diff --git a/REORG.TODO/include/rpcsvc/nislib.h b/REORG.TODO/include/rpcsvc/nislib.h
new file mode 100644
index 0000000000..91dab1d171
--- /dev/null
+++ b/REORG.TODO/include/rpcsvc/nislib.h
@@ -0,0 +1,83 @@
+#ifndef __RPCSVC_NISLIB_H__
+#include <nis/rpcsvc/nislib.h>
+
+# ifndef _ISOMAC
+
+libnsl_hidden_proto (nis_leaf_of_r)
+libnsl_hidden_proto (nis_name_of_r)
+libnsl_hidden_proto (nis_getnames)
+libnsl_hidden_proto (nis_freenames)
+libnsl_hidden_proto (nis_dir_cmp)
+libnsl_hidden_proto (nis_destroy_object)
+libnsl_hidden_proto (nis_local_directory)
+libnsl_hidden_proto (nis_local_group)
+libnsl_hidden_proto (nis_local_host)
+libnsl_hidden_proto (nis_local_principal)
+libnsl_hidden_proto (__free_fdresult)
+libnsl_hidden_proto (nis_free_request)
+libnsl_hidden_proto (nis_free_directory)
+libnsl_hidden_proto (nis_free_object)
+libnsl_hidden_proto (nis_freeresult)
+libnsl_hidden_proto (readColdStartFile)
+libnsl_hidden_proto (writeColdStartFile)
+libnsl_hidden_proto (nis_print_rights)
+libnsl_hidden_proto (nis_print_directory)
+libnsl_hidden_proto (nis_print_group)
+libnsl_hidden_proto (nis_print_table)
+libnsl_hidden_proto (nis_print_link)
+libnsl_hidden_proto (nis_print_entry)
+libnsl_hidden_proto (nis_print_object)
+libnsl_hidden_proto (nis_sperrno)
+libnsl_hidden_proto (nis_sperror_r)
+libnsl_hidden_proto (__nisbind_destroy)
+libnsl_hidden_proto (__nisbind_next)
+libnsl_hidden_proto (__nisbind_connect)
+libnsl_hidden_proto (__nisbind_create)
+libnsl_hidden_proto (nis_lookup)
+libnsl_hidden_proto (nis_list)
+libnsl_hidden_proto (__nis_finddirectory)
+libnsl_hidden_proto (nis_domain_of_r)
+libnsl_hidden_proto (nis_modify)
+libnsl_hidden_proto (nis_remove)
+libnsl_hidden_proto (nis_add)
+libnsl_hidden_proto (__nis_default_owner)
+libnsl_hidden_proto (__nis_default_group)
+libnsl_hidden_proto (__nis_default_access)
+libnsl_hidden_proto (nis_clone_object)
+libnsl_hidden_proto (nis_clone_result)
+libnsl_hidden_proto (nis_print_group_entry)
+libnsl_hidden_proto (nis_verifygroup)
+libnsl_hidden_proto (nis_leaf_of)
+libnsl_hidden_proto (nis_read_obj)
+libnsl_hidden_proto (nis_print_result)
+libnsl_hidden_proto (nis_sperror)
+libnsl_hidden_proto (nis_add_entry)
+libnsl_hidden_proto (nis_mkdir)
+libnsl_hidden_proto (nis_getservlist)
+libnsl_hidden_proto (nis_stats)
+libnsl_hidden_proto (nis_write_obj)
+libnsl_hidden_proto (nis_servstate)
+libnsl_hidden_proto (nis_freetags)
+libnsl_hidden_proto (nis_modify_entry)
+libnsl_hidden_proto (nis_remove_entry)
+libnsl_hidden_proto (nis_first_entry)
+libnsl_hidden_proto (nis_next_entry)
+libnsl_hidden_proto (nis_checkpoint)
+libnsl_hidden_proto (nis_perror)
+libnsl_hidden_proto (nis_lerror)
+libnsl_hidden_proto (nis_freeservlist)
+libnsl_hidden_proto (nis_ismember)
+libnsl_hidden_proto (nis_creategroup)
+libnsl_hidden_proto (nis_destroygroup)
+libnsl_hidden_proto (nis_name_of)
+libnsl_hidden_proto (nis_ping)
+libnsl_hidden_proto (nis_rmdir)
+libnsl_hidden_proto (nis_addmember)
+libnsl_hidden_proto (nis_removemember)
+libnsl_hidden_proto (nis_domain_of)
+libnsl_hidden_proto (nis_clone_directory)
+
+extern const_nis_name __nis_domain_of (const_nis_name) __THROW;
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/rpcsvc/yp.h b/REORG.TODO/include/rpcsvc/yp.h
new file mode 100644
index 0000000000..9078854d40
--- /dev/null
+++ b/REORG.TODO/include/rpcsvc/yp.h
@@ -0,0 +1,33 @@
+#ifndef __RPCSVC_YP_H__
+#include <nis/rpcsvc/yp.h>
+
+# ifndef _ISOMAC
+
+libnsl_hidden_proto (xdr_ypstat)
+libnsl_hidden_proto (xdr_ypxfrstat)
+libnsl_hidden_proto (xdr_domainname)
+libnsl_hidden_proto (xdr_mapname)
+libnsl_hidden_proto (xdr_peername)
+libnsl_hidden_proto (xdr_keydat)
+libnsl_hidden_proto (xdr_valdat)
+libnsl_hidden_proto (xdr_ypmap_parms)
+libnsl_hidden_proto (xdr_ypresp_key_val)
+libnsl_hidden_proto (xdr_ypresp_all)
+libnsl_hidden_proto (xdr_yppush_status)
+libnsl_hidden_proto (xdr_ypbind_resptype)
+libnsl_hidden_proto (xdr_ypbind_binding)
+libnsl_hidden_proto (xdr_ypreq_nokey)
+libnsl_hidden_proto (xdr_ypmaplist)
+libnsl_hidden_proto (xdr_ypreq_key)
+libnsl_hidden_proto (xdr_ypresp_val)
+libnsl_hidden_proto (xdr_ypresp_maplist)
+libnsl_hidden_proto (xdr_ypresp_order)
+libnsl_hidden_proto (xdr_ypbind_resp)
+libnsl_hidden_proto (xdr_ypresp_master)
+libnsl_hidden_proto (xdr_ypreq_xfr)
+libnsl_hidden_proto (xdr_ypresp_xfr)
+libnsl_hidden_proto (xdr_yppushresp_xfr)
+libnsl_hidden_proto (xdr_ypbind_setdom)
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/rpcsvc/ypclnt.h b/REORG.TODO/include/rpcsvc/ypclnt.h
new file mode 100644
index 0000000000..df2a03d9c5
--- /dev/null
+++ b/REORG.TODO/include/rpcsvc/ypclnt.h
@@ -0,0 +1,22 @@
+#ifndef __RPCSVC_YPCLNT_H__
+#include <nis/rpcsvc/ypclnt.h>
+
+# ifndef _ISOMAC
+
+libnsl_hidden_proto (ypbinderr_string)
+libnsl_hidden_proto (yp_bind)
+libnsl_hidden_proto (yp_get_default_domain)
+libnsl_hidden_proto (ypprot_err)
+libnsl_hidden_proto (yp_master)
+libnsl_hidden_proto (yp_update)
+libnsl_hidden_proto (yperr_string)
+libnsl_hidden_proto (yp_unbind)
+libnsl_hidden_proto (yp_order)
+libnsl_hidden_proto (yp_first)
+libnsl_hidden_proto (yp_next)
+libnsl_hidden_proto (yp_match)
+libnsl_hidden_proto (yp_all)
+libnsl_hidden_proto (__yp_check)
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/rpcsvc/ypupd.h b/REORG.TODO/include/rpcsvc/ypupd.h
new file mode 100644
index 0000000000..6d179dd306
--- /dev/null
+++ b/REORG.TODO/include/rpcsvc/ypupd.h
@@ -0,0 +1,11 @@
+#ifndef __RPCSVC_YPUPD_H__
+#include <nis/rpcsvc/ypupd.h>
+
+# ifndef _ISOMAC
+
+libnsl_hidden_proto (xdr_yp_buf)
+libnsl_hidden_proto (xdr_ypdelete_args)
+libnsl_hidden_proto (xdr_ypupdate_args)
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/sched.h b/REORG.TODO/include/sched.h
new file mode 100644
index 0000000000..b4d74064de
--- /dev/null
+++ b/REORG.TODO/include/sched.h
@@ -0,0 +1,27 @@
+#ifndef _SCHED_H
+#include <posix/sched.h>
+
+#ifndef _ISOMAC
+/* Now define the internal interfaces.  */
+extern int __sched_setparam (__pid_t __pid,
+			     const struct sched_param *__param);
+extern int __sched_getparam (__pid_t __pid, struct sched_param *__param);
+extern int __sched_setscheduler (__pid_t __pid, int __policy,
+				 const struct sched_param *__param);
+libc_hidden_proto (__sched_setscheduler)
+extern int __sched_getscheduler (__pid_t __pid);
+extern int __sched_yield (void);
+libc_hidden_proto (__sched_yield)
+extern int __sched_get_priority_max (int __algorithm);
+extern int __sched_get_priority_min (int __algorithm);
+extern int __sched_rr_get_interval (__pid_t __pid, struct timespec *__t);
+
+/* These are Linux specific.  */
+extern int __clone (int (*__fn) (void *__arg), void *__child_stack,
+		    int __flags, void *__arg, ...);
+libc_hidden_proto (__clone)
+extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base,
+		     size_t __child_stack_size, int __flags, void *__arg, ...);
+libc_hidden_proto (__clone2)
+#endif
+#endif
diff --git a/REORG.TODO/include/scratch_buffer.h b/REORG.TODO/include/scratch_buffer.h
new file mode 100644
index 0000000000..dd17a4a7e1
--- /dev/null
+++ b/REORG.TODO/include/scratch_buffer.h
@@ -0,0 +1,136 @@
+/* Variable-sized buffer with on-stack default allocation.
+   Copyright (C) 2015-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 _SCRATCH_BUFFER_H
+#define _SCRATCH_BUFFER_H
+
+/* Scratch buffers with a default stack allocation and fallback to
+   heap allocation.  It is expected that this function is used in this
+   way:
+
+     struct scratch_buffer tmpbuf;
+     scratch_buffer_init (&tmpbuf);
+
+     while (!function_that_uses_buffer (tmpbuf.data, tmpbuf.length))
+       if (!scratch_buffer_grow (&tmpbuf))
+	 return -1;
+
+     scratch_buffer_free (&tmpbuf);
+     return 0;
+
+   The allocation functions (scratch_buffer_grow,
+   scratch_buffer_grow_preserve, scratch_buffer_set_array_size) make
+   sure that the heap allocation, if any, is freed, so that the code
+   above does not have a memory leak.  The buffer still remains in a
+   state that can be deallocated using scratch_buffer_free, so a loop
+   like this is valid as well:
+
+     struct scratch_buffer tmpbuf;
+     scratch_buffer_init (&tmpbuf);
+
+     while (!function_that_uses_buffer (tmpbuf.data, tmpbuf.length))
+       if (!scratch_buffer_grow (&tmpbuf))
+	 break;
+
+     scratch_buffer_free (&tmpbuf);
+
+   scratch_buffer_grow and scratch_buffer_grow_preserve are guaranteed
+   to grow the buffer by at least 512 bytes.  This means that when
+   using the scratch buffer as a backing store for a non-character
+   array whose element size, in bytes, is 512 or smaller, the scratch
+   buffer only has to grow once to make room for at least one more
+   element.
+*/
+
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdlib.h>
+
+/* Scratch buffer.  Must be initialized with scratch_buffer_init
+   before its use.  */
+struct scratch_buffer {
+  void *data;    /* Pointer to the beginning of the scratch area.  */
+  size_t length; /* Allocated space at the data pointer, in bytes.  */
+  char __space[1024]
+    __attribute__ ((aligned (__alignof__ (max_align_t))));
+};
+
+/* Initializes *BUFFER so that BUFFER->data points to BUFFER->__space
+   and BUFFER->length reflects the available space.  */
+static inline void
+scratch_buffer_init (struct scratch_buffer *buffer)
+{
+  buffer->data = buffer->__space;
+  buffer->length = sizeof (buffer->__space);
+}
+
+/* Deallocates *BUFFER (if it was heap-allocated).  */
+static inline void
+scratch_buffer_free (struct scratch_buffer *buffer)
+{
+  if (buffer->data != buffer->__space)
+    free (buffer->data);
+}
+
+/* Grow *BUFFER by some arbitrary amount.  The buffer contents is NOT
+   preserved.  Return true on success, false on allocation failure (in
+   which case the old buffer is freed).  On success, the new buffer is
+   larger than the previous size.  On failure, *BUFFER is deallocated,
+   but remains in a free-able state, and errno is set.  */
+bool __libc_scratch_buffer_grow (struct scratch_buffer *buffer);
+libc_hidden_proto (__libc_scratch_buffer_grow)
+
+/* Alias for __libc_scratch_buffer_grow.  */
+static __always_inline bool
+scratch_buffer_grow (struct scratch_buffer *buffer)
+{
+  return __glibc_likely (__libc_scratch_buffer_grow (buffer));
+}
+
+/* Like __libc_scratch_buffer_grow, but preserve the old buffer
+   contents on success, as a prefix of the new buffer.  */
+bool __libc_scratch_buffer_grow_preserve (struct scratch_buffer *buffer);
+libc_hidden_proto (__libc_scratch_buffer_grow_preserve)
+
+/* Alias for __libc_scratch_buffer_grow_preserve.  */
+static __always_inline bool
+scratch_buffer_grow_preserve (struct scratch_buffer *buffer)
+{
+  return __glibc_likely (__libc_scratch_buffer_grow_preserve (buffer));
+}
+
+/* Grow *BUFFER so that it can store at least NELEM elements of SIZE
+   bytes.  The buffer contents are NOT preserved.  Both NELEM and SIZE
+   can be zero.  Return true on success, false on allocation failure
+   (in which case the old buffer is freed, but *BUFFER remains in a
+   free-able state, and errno is set).  It is unspecified whether this
+   function can reduce the array size.  */
+bool __libc_scratch_buffer_set_array_size (struct scratch_buffer *buffer,
+					   size_t nelem, size_t size);
+libc_hidden_proto (__libc_scratch_buffer_set_array_size)
+
+/* Alias for __libc_scratch_set_array_size.  */
+static __always_inline bool
+scratch_buffer_set_array_size (struct scratch_buffer *buffer,
+			       size_t nelem, size_t size)
+{
+  return __glibc_likely (__libc_scratch_buffer_set_array_size
+			 (buffer, nelem, size));
+}
+
+#endif /* _SCRATCH_BUFFER_H */
diff --git a/REORG.TODO/include/search.h b/REORG.TODO/include/search.h
new file mode 100644
index 0000000000..a941959dbe
--- /dev/null
+++ b/REORG.TODO/include/search.h
@@ -0,0 +1,28 @@
+#ifndef _SEARCH_H
+#include <misc/search.h>
+
+#ifndef _ISOMAC
+extern __typeof (hcreate_r) __hcreate_r;
+libc_hidden_proto (__hcreate_r)
+extern __typeof (hdestroy_r) __hdestroy_r;
+libc_hidden_proto (__hdestroy_r)
+extern __typeof (hsearch_r) __hsearch_r;
+libc_hidden_proto (__hsearch_r)
+libc_hidden_proto (lfind)
+
+/* Now define the internal interfaces.  */
+extern void __hdestroy (void);
+extern void *__tsearch (const void *__key, void **__rootp,
+			__compar_fn_t compar);
+libc_hidden_proto (__tsearch)
+extern void *__tfind (const void *__key, void *const *__rootp,
+		      __compar_fn_t compar);
+libc_hidden_proto (__tfind)
+extern void *__tdelete (const void *__key, void **__rootp,
+			__compar_fn_t compar);
+libc_hidden_proto (__tdelete)
+extern void __twalk (const void *__root, __action_fn_t action);
+libc_hidden_proto (__twalk)
+extern void __tdestroy (void *__root, __free_fn_t freefct);
+#endif
+#endif
diff --git a/REORG.TODO/include/set-hooks.h b/REORG.TODO/include/set-hooks.h
new file mode 100644
index 0000000000..4a711e1fbd
--- /dev/null
+++ b/REORG.TODO/include/set-hooks.h
@@ -0,0 +1,70 @@
+/* Macros for using symbol sets for running lists of functions.
+   Copyright (C) 1994-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 _SET_HOOKS_H
+#define _SET_HOOKS_H 1
+
+#define __need_size_t
+#include <stddef.h>
+#include <sys/cdefs.h>
+
+#ifdef symbol_set_define
+/* Define a hook variable called NAME.  Functions put on this hook take
+   arguments described by PROTO.  Use `text_set_element (NAME, FUNCTION)'
+   from gnu-stabs.h to add a function to the hook.  */
+
+# define DEFINE_HOOK(NAME, PROTO)		\
+  typedef void __##NAME##_hook_function_t PROTO; \
+  symbol_set_define (NAME)
+
+# define DECLARE_HOOK(NAME, PROTO)		\
+  typedef void __##NAME##_hook_function_t PROTO;\
+  symbol_set_declare (NAME)
+
+/* Run all the functions hooked on the set called NAME.
+   Each function is called like this: `function ARGS'.  */
+
+# define RUN_HOOK(NAME, ARGS)						      \
+do {									      \
+  void *const *ptr;						      \
+  for (ptr = (void *const *) symbol_set_first_element (NAME);		      \
+       ! symbol_set_end_p (NAME, ptr); ++ptr)				      \
+    (*(__##NAME##_hook_function_t *) *ptr) ARGS;			      \
+} while (0)
+
+/* Define a hook variable with NAME and PROTO, and a function called RUNNER
+   which calls each function on the hook in turn, with ARGS.  */
+
+# define DEFINE_HOOK_RUNNER(name, runner, proto, args) \
+DEFINE_HOOK (name, proto); \
+extern void runner proto; void runner proto { RUN_HOOK (name, args); }
+
+#else
+
+/* The system does not provide necessary support for this.  */
+# define DEFINE_HOOK(NAME, PROTO)
+
+# define DECLARE_HOOK(NAME, PROTO)
+
+# define RUN_HOOK(NAME, ARGS)
+
+# define DEFINE_HOOK_RUNNER(name, runner, proto, args)
+
+#endif
+
+#endif /* set-hooks.h */
diff --git a/REORG.TODO/include/setjmp.h b/REORG.TODO/include/setjmp.h
new file mode 100644
index 0000000000..90f46976e3
--- /dev/null
+++ b/REORG.TODO/include/setjmp.h
@@ -0,0 +1,33 @@
+#ifndef _SETJMP_H
+#include <setjmp/setjmp.h>
+
+#ifndef _ISOMAC
+/* Now define the internal interfaces.  */
+
+/* Internal machine-dependent function to restore context sans signal mask.  */
+extern void __longjmp (__jmp_buf __env, int __val)
+     __attribute__ ((__noreturn__)) attribute_hidden;
+
+/* Internal function to possibly save the current mask of blocked signals
+   in ENV, and always set the flag saying whether or not it was saved.
+   This is used by the machine-dependent definition of `__sigsetjmp'.
+   Always returns zero, for convenience.  */
+extern int __sigjmp_save (jmp_buf __env, int __savemask);
+
+extern void _longjmp_unwind (jmp_buf env, int val);
+
+extern void __libc_siglongjmp (sigjmp_buf env, int val)
+	  __attribute__ ((noreturn));
+extern void __libc_longjmp (sigjmp_buf env, int val)
+     __attribute__ ((noreturn));
+libc_hidden_proto (__libc_longjmp)
+
+libc_hidden_proto (_setjmp)
+libc_hidden_proto (__sigsetjmp)
+
+# if IS_IN (rtld)
+extern __typeof (__sigsetjmp) __sigsetjmp attribute_hidden;
+# endif
+#endif
+
+#endif
diff --git a/REORG.TODO/include/sgtty.h b/REORG.TODO/include/sgtty.h
new file mode 100644
index 0000000000..ffb62401cb
--- /dev/null
+++ b/REORG.TODO/include/sgtty.h
@@ -0,0 +1 @@
+#include <misc/sgtty.h>
diff --git a/REORG.TODO/include/shadow.h b/REORG.TODO/include/shadow.h
new file mode 100644
index 0000000000..124a1ab50a
--- /dev/null
+++ b/REORG.TODO/include/shadow.h
@@ -0,0 +1,53 @@
+#ifndef _SHADOW_H
+#include <shadow/shadow.h>
+
+# ifndef _ISOMAC
+
+/* Now define the internal interfaces.  */
+extern int __getspent_r (struct spwd *__result_buf, char *__buffer,
+			 size_t __buflen, struct spwd **__result)
+     attribute_hidden;
+extern int __old_getspent_r (struct spwd *__result_buf, char *__buffer,
+			     size_t __buflen, struct spwd **__result);
+extern int __getspnam_r (const char *__name, struct spwd *__result_buf,
+			 char *__buffer, size_t __buflen,
+			 struct spwd **__result);
+extern int __old_getspnam_r (const char *__name, struct spwd *__result_buf,
+			     char *__buffer, size_t __buflen,
+			     struct spwd **__result);
+extern int __sgetspent_r (const char *__string,
+			  struct spwd *__result_buf, char *__buffer,
+			  size_t __buflen, struct spwd **__result);
+extern int __fgetspent_r (FILE *__stream, struct spwd *__result_buf,
+			  char *__buffer, size_t __buflen,
+			  struct spwd **__result);
+extern int __lckpwdf (void);
+extern int __ulckpwdf (void);
+
+struct parser_data;
+extern int _nss_files_parse_spent (char *line, struct spwd *result,
+				   struct parser_data *data,
+				   size_t datalen, int *errnop);
+libc_hidden_proto (_nss_files_parse_spent)
+
+#define DECLARE_NSS_PROTOTYPES(service)					\
+extern enum nss_status _nss_ ## service ## _setspent (int);		\
+extern enum nss_status _nss_ ## service ## _endspent (void);		\
+extern enum nss_status _nss_ ## service ## _getspent_r			\
+		       (struct spwd *pwd, char *buffer, size_t buflen,	\
+			int *errnop);					\
+extern enum nss_status _nss_ ## service ## _getspnam_r			\
+		       (const char *name, struct spwd *pwd,		\
+			char *buffer, size_t buflen, int *errnop);
+
+DECLARE_NSS_PROTOTYPES (compat)
+DECLARE_NSS_PROTOTYPES (files)
+DECLARE_NSS_PROTOTYPES (hesiod)
+DECLARE_NSS_PROTOTYPES (nis)
+DECLARE_NSS_PROTOTYPES (nisplus)
+
+#undef DECLARE_NSS_PROTOTYPES
+
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/shlib-compat.h b/REORG.TODO/include/shlib-compat.h
new file mode 100644
index 0000000000..41eb362f1d
--- /dev/null
+++ b/REORG.TODO/include/shlib-compat.h
@@ -0,0 +1,100 @@
+/* Macros for managing ABI-compatibility definitions using ELF symbol versions.
+   Copyright (C) 2000-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 _SHLIB_COMPAT_H
+#define _SHLIB_COMPAT_H	1
+
+# include <abi-versions.h>
+
+#ifdef SHARED
+
+/* The file abi-versions.h (generated by scripts/abi-versions.awk) defines
+   symbols like `ABI_libm_GLIBC_2_0' for each version set in the source
+   code for each library.  For a version set that is subsumed by a later
+   version set, the definition gives the subsuming set, i.e. if GLIBC_2_0
+   is subsumed by GLIBC_2_1, then ABI_libm_GLIBC_2_0 == ABI_libm_GLIBC_2_1.
+   Each version set that is to be distinctly defined in the output has an
+   unique positive integer value, increasing with newer versions.  Thus,
+   evaluating two ABI_* symbols reduces to integer values that differ only
+   when the two version sets named are in fact two different ABIs we are
+   supporting.  If these do not differ, then there is no need to compile in
+   extra code to support this version set where it has been superseded by a
+   newer version.  The compatibility code should be conditionalized with
+   e.g. `#if SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_2)' for code introduced
+   in the GLIBC_2.0 version and obsoleted in the GLIBC_2.2 version.  */
+
+# define SHLIB_COMPAT(lib, introduced, obsoleted)			      \
+  _SHLIB_COMPAT (lib, introduced, obsoleted)
+# define _SHLIB_COMPAT(lib, introduced, obsoleted)			      \
+  (IS_IN (lib)								      \
+   && (!(ABI_##lib##_##obsoleted - 0)					      \
+       || ((ABI_##lib##_##introduced - 0) < (ABI_##lib##_##obsoleted - 0))))
+
+/* That header also defines symbols like `VERSION_libm_GLIBC_2_1' to
+   the version set name to use for e.g. symbols first introduced into
+   libm in the GLIBC_2.1 version.  Definitions of symbols with explicit
+   versions should look like:
+	versioned_symbol (libm, new_foo, foo, GLIBC_2_1);
+   This will define the symbol `foo' with the appropriate default version,
+   i.e. either GLIBC_2.1 or the "earliest version" specified in
+   shlib-versions if that is newer.  */
+
+# define versioned_symbol(lib, local, symbol, version) \
+  versioned_symbol_1 (lib, local, symbol, version)
+# define versioned_symbol_1(lib, local, symbol, version) \
+  versioned_symbol_2 (local, symbol, VERSION_##lib##_##version)
+# define versioned_symbol_2(local, symbol, name) \
+  default_symbol_version (local, symbol, name)
+
+# define compat_symbol(lib, local, symbol, version) \
+  compat_symbol_reference (lib, local, symbol, version)
+
+#else
+
+/* Not compiling ELF shared libraries at all, so never any old versions.  */
+# define SHLIB_COMPAT(lib, introduced, obsoleted)	0
+
+/* No versions to worry about, just make this the global definition.  */
+# define versioned_symbol(lib, local, symbol, version) \
+  weak_alias (local, symbol)
+
+/* This should not appear outside `#if SHLIB_COMPAT (...)'.  */
+# define compat_symbol(lib, local, symbol, version) ...
+
+#endif
+
+/* Use compat_symbol_reference for a reference to a specific version
+   of a symbol.  Use compat_symbol to define such a symbol.  */
+#define compat_symbol_reference(lib, local, symbol, version) \
+  compat_symbol_reference_1 (lib, local, symbol, version)
+#define compat_symbol_reference_1(lib, local, symbol, version) \
+  compat_symbol_reference_2 (local, symbol, VERSION_##lib##_##version)
+#define compat_symbol_reference_2(local, symbol, name) \
+  symbol_version_reference (local, symbol, name)
+
+# ifdef LINK_OBSOLETE_RPC
+/* Export the symbol for both static and dynamic linking.  */
+#  define libc_sunrpc_symbol(name, aliasname, version) \
+  strong_alias (name, aliasname)
+# else
+/* Export the symbol only for shared-library compatibility.  */
+#  define libc_sunrpc_symbol(name, aliasname, version) \
+  compat_symbol (libc, name, aliasname, version);
+# endif
+
+#endif	/* shlib-compat.h */
diff --git a/REORG.TODO/include/signal.h b/REORG.TODO/include/signal.h
new file mode 100644
index 0000000000..bcf1455ae7
--- /dev/null
+++ b/REORG.TODO/include/signal.h
@@ -0,0 +1,62 @@
+#ifndef _SIGNAL_H
+# include <signal/signal.h>
+
+# ifndef _ISOMAC
+libc_hidden_proto (sigemptyset)
+libc_hidden_proto (sigfillset)
+libc_hidden_proto (sigaddset)
+libc_hidden_proto (sigdelset)
+libc_hidden_proto (sigismember)
+extern int __sigpause (int sig_or_mask, int is_sig);
+libc_hidden_proto (__sigpause)
+libc_hidden_proto (raise)
+libc_hidden_proto (__libc_current_sigrtmin)
+libc_hidden_proto (__libc_current_sigrtmax)
+libc_hidden_proto (_sys_siglist)
+
+/* Now define the internal interfaces.  */
+extern __sighandler_t __bsd_signal (int __sig, __sighandler_t __handler);
+extern int __kill (__pid_t __pid, int __sig);
+extern int __sigaction (int __sig, const struct sigaction *__restrict __act,
+			struct sigaction *__restrict __oact);
+libc_hidden_proto (__sigaction)
+extern int __sigblock (int __mask);
+extern int __sigsetmask (int __mask);
+extern int __sigprocmask (int __how,
+			  const sigset_t *__set, sigset_t *__oset);
+extern int __sigsuspend (const sigset_t *__set);
+libc_hidden_proto (__sigsuspend)
+#ifndef NO_CANCELLATION
+extern int __sigsuspend_nocancel (const sigset_t *__set) attribute_hidden;
+#endif
+extern int __sigwait (const sigset_t *__set, int *__sig);
+libc_hidden_proto (__sigwait)
+extern int __sigwaitinfo (const sigset_t *__set, siginfo_t *__info);
+libc_hidden_proto (__sigwaitinfo)
+extern int __sigtimedwait (const sigset_t *__set, siginfo_t *__info,
+			   const struct timespec *__timeout);
+libc_hidden_proto (__sigtimedwait)
+extern int __sigqueue (__pid_t __pid, int __sig,
+		       const union sigval __val);
+#ifdef __USE_MISC
+extern int __sigreturn (struct sigcontext *__scp);
+#endif
+extern int __sigaltstack (const stack_t *__ss,
+			  stack_t *__oss);
+extern int __libc_sigaction (int sig, const struct sigaction *act,
+			     struct sigaction *oact);
+libc_hidden_proto (__libc_sigaction)
+
+extern int __default_sigpause (int mask);
+extern int __xpg_sigpause (int sig);
+
+/* Allocate real-time signal with highest/lowest available priority.  */
+extern int __libc_allocate_rtsig (int __high);
+
+#  if IS_IN (rtld)
+extern __typeof (__sigaction) __sigaction attribute_hidden;
+extern __typeof (__libc_sigaction) __libc_sigaction attribute_hidden;
+#  endif
+
+# endif /* _ISOMAC */
+#endif /* signal.h */
diff --git a/REORG.TODO/include/spawn.h b/REORG.TODO/include/spawn.h
new file mode 100644
index 0000000000..a6c7a8adc3
--- /dev/null
+++ b/REORG.TODO/include/spawn.h
@@ -0,0 +1 @@
+#include <posix/spawn.h>
diff --git a/REORG.TODO/include/stab.h b/REORG.TODO/include/stab.h
new file mode 100644
index 0000000000..2e278fc778
--- /dev/null
+++ b/REORG.TODO/include/stab.h
@@ -0,0 +1 @@
+#include <misc/stab.h>
diff --git a/REORG.TODO/include/stackinfo.h b/REORG.TODO/include/stackinfo.h
new file mode 100644
index 0000000000..e359f95e2c
--- /dev/null
+++ b/REORG.TODO/include/stackinfo.h
@@ -0,0 +1,42 @@
+/* Details about the machine's stack: wrapper header.
+   Copyright (C) 2014-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 _INCLUDE_STACKINFO_H
+#define _INCLUDE_STACKINFO_H	1
+
+/* A sysdeps/.../stackinfo.h file defines details for the CPU.
+   It is obliged to define either _STACK_GROWS_DOWN or _STACK_GROWS_UP.  */
+#include_next <stackinfo.h>
+
+#if defined _STACK_GROWS_DOWN && _STACK_GROWS_DOWN
+# ifdef _STACK_GROWS_UP
+#  error "stackinfo.h should not define both!"
+# else
+#  define _STACK_GROWS_UP	0
+# endif
+#elif defined _STACK_GROWS_UP && _STACK_GROWS_UP
+# ifdef _STACK_GROWS_DOWN
+#  error "stackinfo.h should not define both!"
+# else
+#  define _STACK_GROWS_DOWN	0
+# endif
+#else
+# error "stackinfo.h must define _STACK_GROWS_UP or _STACK_GROWS_DOWN!"
+#endif
+
+#endif  /* include/stackinfo.h */
diff --git a/REORG.TODO/include/stap-probe.h b/REORG.TODO/include/stap-probe.h
new file mode 100644
index 0000000000..d45b0466bc
--- /dev/null
+++ b/REORG.TODO/include/stap-probe.h
@@ -0,0 +1,77 @@
+/* Macros for defining Systemtap <sys/sdt.h> static probe points.
+   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/>.  */
+
+#ifndef _STAP_PROBE_H
+#define _STAP_PROBE_H 1
+
+#ifdef USE_STAP_PROBE
+
+# include <sys/sdt.h>
+
+/* Our code uses one macro LIBC_PROBE (name, n, arg1, ..., argn).
+
+   Without USE_STAP_PROBE, that does nothing but evaluates all
+   its arguments (to prevent bit rot, unlike e.g. assert).
+
+   Systemtap's header defines the macros STAP_PROBE (provider, name) and
+   STAP_PROBEn (provider, name, arg1, ..., argn).  For "provider" we paste
+   in MODULE_NAME (libc, libpthread, etc.) automagically.
+
+   The format of the arg parameters is discussed here:
+
+   https://sourceware.org/systemtap/wiki/UserSpaceProbeImplementation
+
+   The precise details of how register names are specified is
+   architecture specific and can be found in the gdb and SystemTap
+   source code.  */
+
+# define LIBC_PROBE(name, n, ...)	\
+  LIBC_PROBE_1 (MODULE_NAME, name, n, ## __VA_ARGS__)
+
+# define LIBC_PROBE_1(lib, name, n, ...) \
+  STAP_PROBE##n (lib, name, ## __VA_ARGS__)
+
+# define STAP_PROBE0		STAP_PROBE
+
+# define LIBC_PROBE_ASM(name, template) \
+  STAP_PROBE_ASM (MODULE_NAME, name, template)
+
+# define LIBC_PROBE_ASM_OPERANDS STAP_PROBE_ASM_OPERANDS
+
+#else  /* Not USE_STAP_PROBE.  */
+
+# ifndef __ASSEMBLER__
+/* Evaluate all the arguments and verify that N matches their number.  */
+#  define LIBC_PROBE(name, n, ...) STAP_PROBE##n (__VA_ARGS__)
+
+#  define STAP_PROBE0()
+#  define STAP_PROBE1(a1)
+#  define STAP_PROBE2(a1, a2)
+#  define STAP_PROBE3(a1, a2, a3)
+#  define STAP_PROBE4(a1, a2, a3, a4)
+
+# else
+#  define LIBC_PROBE(name, n, ...)		/* Nothing.  */
+# endif
+
+# define LIBC_PROBE_ASM(name, template)		/* Nothing.  */
+# define LIBC_PROBE_ASM_OPERANDS(n, ...)	/* Nothing.  */
+
+#endif	/* USE_STAP_PROBE.  */
+
+#endif	/* stap-probe.h */
diff --git a/REORG.TODO/include/stdc-predef.h b/REORG.TODO/include/stdc-predef.h
new file mode 100644
index 0000000000..a2e148cd2f
--- /dev/null
+++ b/REORG.TODO/include/stdc-predef.h
@@ -0,0 +1,62 @@
+/* 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	_STDC_PREDEF_H
+#define	_STDC_PREDEF_H	1
+
+/* This header is separate from features.h so that the compiler can
+   include it implicitly at the start of every compilation.  It must
+   not itself include <features.h> or any other header that includes
+   <features.h> because the implicit include comes before any feature
+   test macros that may be defined in a source file before it first
+   explicitly includes a system header.  GCC knows the name of this
+   header in order to preinclude it.  */
+
+/* glibc's intent is to support the IEC 559 math functionality, real
+   and complex.  If the GCC (4.9 and later) predefined macros
+   specifying compiler intent are available, use them to determine
+   whether the overall intent is to support these features; otherwise,
+   presume an older compiler has intent to support these features and
+   define these macros by default.  */
+
+#ifdef __GCC_IEC_559
+# if __GCC_IEC_559 > 0
+#  define __STDC_IEC_559__		1
+# endif
+#else
+# define __STDC_IEC_559__		1
+#endif
+
+#ifdef __GCC_IEC_559_COMPLEX
+# if __GCC_IEC_559_COMPLEX > 0
+#  define __STDC_IEC_559_COMPLEX__	1
+# endif
+#else
+# define __STDC_IEC_559_COMPLEX__	1
+#endif
+
+/* wchar_t uses Unicode 9.0.0.  Version 9.0 of the Unicode Standard is
+   synchronized with ISO/IEC 10646:2014, fourth edition, plus
+   Amd. 1  and Amd. 2 and 273 characters from forthcoming  10646, fifth edition.
+   (Amd. 2 was published 2016-05-01,
+   see https://www.iso.org/obp/ui/#iso:std:iso-iec:10646:ed-4:v1:amd:2:v1:en) */
+#define __STDC_ISO_10646__		201605L
+
+/* We do not support C11 <threads.h>.  */
+#define __STDC_NO_THREADS__		1
+
+#endif
diff --git a/REORG.TODO/include/stdio.h b/REORG.TODO/include/stdio.h
new file mode 100644
index 0000000000..f68f633bd6
--- /dev/null
+++ b/REORG.TODO/include/stdio.h
@@ -0,0 +1,185 @@
+#ifndef _STDIO_H
+# include <libio/stdio.h>
+# ifndef _ISOMAC
+
+/* Now define the internal interfaces.  */
+
+extern int __fcloseall (void);
+extern int __snprintf (char *__restrict __s, size_t __maxlen,
+		       const char *__restrict __format, ...)
+     __attribute__ ((__format__ (__printf__, 3, 4)));
+libc_hidden_proto (__snprintf)
+extern int __vsnprintf (char *__restrict __s, size_t __maxlen,
+			const char *__restrict __format, _G_va_list __arg)
+     __attribute__ ((__format__ (__printf__, 3, 0)));
+extern int __vfscanf (FILE *__restrict __s,
+		      const char *__restrict __format,
+		      _G_va_list __arg)
+     __attribute__ ((__format__ (__scanf__, 2, 0)));
+libc_hidden_proto (__vfscanf)
+extern int __vscanf (const char *__restrict __format,
+		     _G_va_list __arg)
+     __attribute__ ((__format__ (__scanf__, 1, 0)));
+extern _IO_ssize_t __getline (char **__lineptr, size_t *__n,
+			      FILE *__stream);
+extern int __vsscanf (const char *__restrict __s,
+		      const char *__restrict __format,
+		      _G_va_list __arg)
+     __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+extern int __sprintf_chk (char *, int, size_t, const char *, ...) __THROW;
+extern int __snprintf_chk (char *, size_t, int, size_t, const char *, ...)
+     __THROW;
+extern int __vsprintf_chk (char *, int, size_t, const char *,
+			   _G_va_list) __THROW;
+extern int __vsnprintf_chk (char *, size_t, int, size_t, const char *,
+			    _G_va_list) __THROW;
+extern int __printf_chk (int, const char *, ...);
+extern int __fprintf_chk (FILE *, int, const char *, ...);
+extern int __vprintf_chk (int, const char *, _G_va_list);
+extern int __vfprintf_chk (FILE *, int, const char *, _G_va_list);
+extern char *__fgets_unlocked_chk (char *buf, size_t size, int n, FILE *fp);
+extern char *__fgets_chk (char *buf, size_t size, int n, FILE *fp);
+extern int __asprintf_chk (char **, int, const char *, ...) __THROW;
+extern int __vasprintf_chk (char **, int, const char *, _G_va_list) __THROW;
+extern int __dprintf_chk (int, int, const char *, ...);
+extern int __vdprintf_chk (int, int, const char *, _G_va_list);
+extern int __obstack_printf_chk (struct obstack *, int, const char *, ...)
+     __THROW;
+extern int __obstack_vprintf_chk (struct obstack *, int, const char *,
+				  _G_va_list) __THROW;
+
+extern int __isoc99_fscanf (FILE *__restrict __stream,
+			    const char *__restrict __format, ...) __wur;
+extern int __isoc99_scanf (const char *__restrict __format, ...) __wur;
+extern int __isoc99_sscanf (const char *__restrict __s,
+			    const char *__restrict __format, ...) __THROW;
+extern int __isoc99_vfscanf (FILE *__restrict __s,
+			     const char *__restrict __format,
+			     _G_va_list __arg) __wur;
+extern int __isoc99_vscanf (const char *__restrict __format,
+			    _G_va_list __arg) __wur;
+extern int __isoc99_vsscanf (const char *__restrict __s,
+			     const char *__restrict __format,
+			     _G_va_list __arg) __THROW;
+libc_hidden_proto (__isoc99_vsscanf)
+libc_hidden_proto (__isoc99_vfscanf)
+
+/* Prototypes for compatibility functions.  */
+extern FILE *__new_tmpfile (void);
+extern FILE *__old_tmpfile (void);
+
+#  define __need_size_t
+#  include <stddef.h>
+
+#  include <bits/types/wint_t.h>
+
+/* Generate a unique file name (and possibly open it).  */
+extern int __path_search (char *__tmpl, size_t __tmpl_len,
+			  const char *__dir, const char *__pfx,
+			  int __try_tempdir);
+
+extern int __gen_tempname (char *__tmpl, int __suffixlen, int __flags,
+			   int __kind);
+/* The __kind argument to __gen_tempname may be one of: */
+#  define __GT_FILE	0	/* create a file */
+#  define __GT_DIR	1	/* create a directory */
+#  define __GT_NOCREATE	2	/* just find a name not currently in use */
+
+/* Print out MESSAGE on the error output and abort.  */
+extern void __libc_fatal (const char *__message)
+     __attribute__ ((__noreturn__));
+extern void __libc_message (int do_abort, const char *__fnt, ...);
+extern void __fortify_fail (const char *msg)
+     __attribute__ ((__noreturn__)) internal_function;
+libc_hidden_proto (__fortify_fail)
+
+/* Acquire ownership of STREAM.  */
+extern void __flockfile (FILE *__stream);
+
+/* Relinquish the ownership granted for STREAM.  */
+extern void __funlockfile (FILE *__stream);
+
+/* Try to acquire ownership of STREAM but do not block if it is not
+   possible.  */
+extern int __ftrylockfile (FILE *__stream);
+
+extern int __getc_unlocked (FILE *__fp);
+extern wint_t __getwc_unlocked (FILE *__fp);
+
+extern int __fxprintf (FILE *__fp, const char *__fmt, ...)
+     __attribute__ ((__format__ (__printf__, 2, 3)));
+extern int __fxprintf_nocancel (FILE *__fp, const char *__fmt, ...)
+     __attribute__ ((__format__ (__printf__, 2, 3)));
+
+extern const char *const _sys_errlist_internal[] attribute_hidden;
+extern int _sys_nerr_internal attribute_hidden;
+
+libc_hidden_proto (__asprintf)
+#  if IS_IN (libc)
+extern _IO_FILE *_IO_new_fopen (const char*, const char*);
+#   define fopen(fname, mode) _IO_new_fopen (fname, mode)
+extern _IO_FILE *_IO_new_fdopen (int, const char*);
+#   define fdopen(fd, mode) _IO_new_fdopen (fd, mode)
+extern int _IO_new_fclose (_IO_FILE*);
+#   define fclose(fp) _IO_new_fclose (fp)
+extern int _IO_fputs (const char*, _IO_FILE*);
+libc_hidden_proto (_IO_fputs)
+#   define fputs(str, fp) _IO_fputs (str, fp)
+extern int _IO_new_fsetpos (_IO_FILE *, const _IO_fpos_t *);
+#   define fsetpos(fp, posp) _IO_new_fsetpos (fp, posp)
+extern int _IO_new_fgetpos (_IO_FILE *, _IO_fpos_t *);
+#   define fgetpos(fp, posp) _IO_new_fgetpos (fp, posp)
+#  endif
+
+libc_hidden_proto (dprintf)
+extern __typeof (dprintf) __dprintf
+     __attribute__ ((__format__ (__printf__, 2, 3)));
+libc_hidden_proto (__dprintf)
+libc_hidden_proto (fprintf)
+libc_hidden_proto (vfprintf)
+libc_hidden_proto (sprintf)
+libc_hidden_proto (sscanf)
+libc_hidden_proto (fwrite)
+libc_hidden_proto (perror)
+libc_hidden_proto (remove)
+libc_hidden_proto (rewind)
+libc_hidden_proto (fileno)
+extern __typeof (fileno) __fileno;
+libc_hidden_proto (__fileno)
+libc_hidden_proto (fwrite)
+libc_hidden_proto (fseek)
+extern __typeof (ftello) __ftello;
+libc_hidden_proto (__ftello)
+libc_hidden_proto (fflush)
+libc_hidden_proto (fflush_unlocked)
+extern __typeof (fflush_unlocked) __fflush_unlocked;
+libc_hidden_proto (__fflush_unlocked)
+extern __typeof (fread_unlocked) __fread_unlocked;
+libc_hidden_proto (__fread_unlocked)
+libc_hidden_proto (fwrite_unlocked)
+libc_hidden_proto (fgets_unlocked)
+extern __typeof (fgets_unlocked) __fgets_unlocked;
+libc_hidden_proto (__fgets_unlocked)
+libc_hidden_proto (fputs_unlocked)
+extern __typeof (fputs_unlocked) __fputs_unlocked;
+libc_hidden_proto (__fputs_unlocked)
+libc_hidden_proto (fmemopen)
+/* The prototype needs repeating instead of using __typeof to use
+   __THROW in C++ tests.  */
+extern FILE *__open_memstream (char **, size_t *) __THROW __wur;
+libc_hidden_proto (__open_memstream)
+libc_hidden_proto (__libc_fatal)
+rtld_hidden_proto (__libc_fatal)
+libc_hidden_proto (__vsprintf_chk)
+libc_hidden_proto (__vsnprintf_chk)
+libc_hidden_proto (__vfprintf_chk)
+libc_hidden_proto (__vasprintf_chk)
+libc_hidden_proto (__vdprintf_chk)
+libc_hidden_proto (__obstack_vprintf_chk)
+
+extern FILE * __fmemopen (void *buf, size_t len, const char *mode);
+libc_hidden_proto (__fmemopen)
+
+# endif /* not _ISOMAC */
+#endif /* stdio.h */
diff --git a/REORG.TODO/include/stdio_ext.h b/REORG.TODO/include/stdio_ext.h
new file mode 100644
index 0000000000..29c6e68cdb
--- /dev/null
+++ b/REORG.TODO/include/stdio_ext.h
@@ -0,0 +1,23 @@
+#ifndef	_STDIO_EXT_H
+#include <stdio-common/stdio_ext.h>
+
+# ifndef _ISOMAC
+
+libc_hidden_proto (__fsetlocking)
+
+#define __fsetlocking(fp, type) \
+  ({ int __result = ((fp->_flags & _IO_USER_LOCK)			\
+		     ? FSETLOCKING_BYCALLER : FSETLOCKING_INTERNAL);	\
+									\
+     if (type != FSETLOCKING_QUERY)					\
+       {								\
+	 fp->_flags &= ~_IO_USER_LOCK;					\
+	 if (type == FSETLOCKING_BYCALLER)				\
+	   fp->_flags |= _IO_USER_LOCK;					\
+       }								\
+									\
+     __result;								\
+  })
+
+# endif /* !_ISOMAC */
+#endif /* stdio_ext.h */
diff --git a/REORG.TODO/include/stdlib.h b/REORG.TODO/include/stdlib.h
new file mode 100644
index 0000000000..5847445fd3
--- /dev/null
+++ b/REORG.TODO/include/stdlib.h
@@ -0,0 +1,268 @@
+#ifndef _STDLIB_H
+
+#ifndef _ISOMAC
+# include <stddef.h>
+#endif
+#include <stdlib/stdlib.h>
+
+/* Now define the internal interfaces.  */
+#if !defined _ISOMAC
+# include <sys/stat.h>
+
+extern __typeof (strtol_l) __strtol_l;
+extern __typeof (strtoul_l) __strtoul_l;
+extern __typeof (strtoll_l) __strtoll_l;
+extern __typeof (strtoull_l) __strtoull_l;
+extern __typeof (strtod_l) __strtod_l;
+extern __typeof (strtof_l) __strtof_l;
+extern __typeof (strtold_l) __strtold_l;
+libc_hidden_proto (__strtol_l)
+libc_hidden_proto (__strtoul_l)
+libc_hidden_proto (__strtoll_l)
+libc_hidden_proto (__strtoull_l)
+libc_hidden_proto (__strtod_l)
+libc_hidden_proto (__strtof_l)
+libc_hidden_proto (__strtold_l)
+
+libc_hidden_proto (exit)
+libc_hidden_proto (abort)
+libc_hidden_proto (getenv)
+extern __typeof (secure_getenv) __libc_secure_getenv;
+libc_hidden_proto (__libc_secure_getenv)
+libc_hidden_proto (bsearch)
+libc_hidden_proto (qsort)
+extern __typeof (qsort_r) __qsort_r;
+libc_hidden_proto (__qsort_r)
+libc_hidden_proto (lrand48_r)
+libc_hidden_proto (wctomb)
+
+extern long int __random (void);
+extern void __srandom (unsigned int __seed);
+extern char *__initstate (unsigned int __seed, char *__statebuf,
+			  size_t __statelen);
+extern char *__setstate (char *__statebuf);
+extern int __random_r (struct random_data *__buf, int32_t *__result);
+extern int __srandom_r (unsigned int __seed, struct random_data *__buf);
+extern int __initstate_r (unsigned int __seed, char *__statebuf,
+			  size_t __statelen, struct random_data *__buf);
+extern int __setstate_r (char *__statebuf, struct random_data *__buf);
+extern int __rand_r (unsigned int *__seed);
+extern int __erand48_r (unsigned short int __xsubi[3],
+			struct drand48_data *__buffer, double *__result);
+extern int __nrand48_r (unsigned short int __xsubi[3],
+			struct drand48_data *__buffer,
+			long int *__result);
+extern int __jrand48_r (unsigned short int __xsubi[3],
+			struct drand48_data *__buffer,
+			long int *__result);
+extern int __srand48_r (long int __seedval,
+			struct drand48_data *__buffer);
+extern int __seed48_r (unsigned short int __seed16v[3],
+		       struct drand48_data *__buffer);
+extern int __lcong48_r (unsigned short int __param[7],
+			struct drand48_data *__buffer);
+
+/* Internal function to compute next state of the generator.  */
+extern int __drand48_iterate (unsigned short int __xsubi[3],
+			      struct drand48_data *__buffer);
+
+/* Global state for non-reentrant functions.  Defined in drand48-iter.c.  */
+extern struct drand48_data __libc_drand48_data attribute_hidden;
+
+extern int __setenv (const char *__name, const char *__value, int __replace);
+extern int __unsetenv (const char *__name);
+extern int __clearenv (void);
+extern char *__mktemp (char *__template) __THROW __nonnull ((1));
+extern char *__canonicalize_file_name (const char *__name);
+extern char *__realpath (const char *__name, char *__resolved);
+extern int __ptsname_r (int __fd, char *__buf, size_t __buflen);
+# ifndef _ISOMAC
+extern int __ptsname_internal (int fd, char *buf, size_t buflen,
+			       struct stat64 *stp);
+# endif
+extern int __getpt (void);
+extern int __posix_openpt (int __oflag);
+
+extern int __add_to_environ (const char *name, const char *value,
+			     const char *combines, int replace);
+
+extern void _quicksort (void *const pbase, size_t total_elems,
+			size_t size, __compar_d_fn_t cmp, void *arg);
+
+extern int __on_exit (void (*__func) (int __status, void *__arg), void *__arg);
+
+extern int __cxa_atexit (void (*func) (void *), void *arg, void *d);
+libc_hidden_proto (__cxa_atexit);
+
+extern int __cxa_thread_atexit_impl (void (*func) (void *), void *arg,
+				     void *d);
+extern void __call_tls_dtors (void)
+#ifndef SHARED
+  __attribute__ ((weak))
+#endif
+  ;
+libc_hidden_proto (__call_tls_dtors)
+
+extern void __cxa_finalize (void *d);
+
+extern int __posix_memalign (void **memptr, size_t alignment, size_t size);
+
+extern void *__libc_memalign (size_t alignment, size_t size)
+     __attribute_malloc__;
+
+extern void *__libc_reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+     __THROW __attribute_warn_unused_result__;
+libc_hidden_proto (__libc_reallocarray)
+
+extern int __libc_system (const char *line);
+
+
+extern double __strtod_internal (const char *__restrict __nptr,
+				 char **__restrict __endptr, int __group)
+     __THROW __nonnull ((1)) __wur;
+extern float __strtof_internal (const char *__restrict __nptr,
+				char **__restrict __endptr, int __group)
+     __THROW __nonnull ((1)) __wur;
+extern long double __strtold_internal (const char *__restrict __nptr,
+				       char **__restrict __endptr,
+				       int __group)
+     __THROW __nonnull ((1)) __wur;
+extern long int __strtol_internal (const char *__restrict __nptr,
+				   char **__restrict __endptr,
+				   int __base, int __group)
+     __THROW __nonnull ((1)) __wur;
+extern unsigned long int __strtoul_internal (const char *__restrict __nptr,
+					     char **__restrict __endptr,
+					     int __base, int __group)
+     __THROW __nonnull ((1)) __wur;
+__extension__
+extern long long int __strtoll_internal (const char *__restrict __nptr,
+					 char **__restrict __endptr,
+					 int __base, int __group)
+     __THROW __nonnull ((1)) __wur;
+__extension__
+extern unsigned long long int __strtoull_internal (const char *
+						   __restrict __nptr,
+						   char **__restrict __endptr,
+						   int __base, int __group)
+     __THROW __nonnull ((1)) __wur;
+libc_hidden_proto (__strtof_internal)
+libc_hidden_proto (__strtod_internal)
+libc_hidden_proto (__strtold_internal)
+libc_hidden_proto (__strtol_internal)
+libc_hidden_proto (__strtoll_internal)
+libc_hidden_proto (__strtoul_internal)
+libc_hidden_proto (__strtoull_internal)
+
+extern double ____strtod_l_internal (const char *__restrict __nptr,
+				     char **__restrict __endptr, int __group,
+				     __locale_t __loc);
+extern float ____strtof_l_internal (const char *__restrict __nptr,
+				    char **__restrict __endptr, int __group,
+				    __locale_t __loc);
+extern long double ____strtold_l_internal (const char *__restrict __nptr,
+					   char **__restrict __endptr,
+					   int __group, __locale_t __loc);
+extern long int ____strtol_l_internal (const char *__restrict __nptr,
+				       char **__restrict __endptr,
+				       int __base, int __group,
+				       __locale_t __loc);
+extern unsigned long int ____strtoul_l_internal (const char *
+						 __restrict __nptr,
+						 char **__restrict __endptr,
+						 int __base, int __group,
+						 __locale_t __loc);
+__extension__
+extern long long int ____strtoll_l_internal (const char *__restrict __nptr,
+					     char **__restrict __endptr,
+					     int __base, int __group,
+					     __locale_t __loc);
+__extension__
+extern unsigned long long int ____strtoull_l_internal (const char *
+						       __restrict __nptr,
+						       char **
+						       __restrict __endptr,
+						       int __base, int __group,
+						       __locale_t __loc);
+
+libc_hidden_proto (____strtof_l_internal)
+libc_hidden_proto (____strtod_l_internal)
+libc_hidden_proto (____strtold_l_internal)
+libc_hidden_proto (____strtol_l_internal)
+libc_hidden_proto (____strtoll_l_internal)
+libc_hidden_proto (____strtoul_l_internal)
+libc_hidden_proto (____strtoull_l_internal)
+
+libc_hidden_proto (strtof)
+libc_hidden_proto (strtod)
+libc_hidden_proto (strtold)
+libc_hidden_proto (strtol)
+libc_hidden_proto (strtoll)
+libc_hidden_proto (strtoul)
+libc_hidden_proto (strtoull)
+
+extern float __strtof_nan (const char *, char **, char) internal_function;
+extern double __strtod_nan (const char *, char **, char) internal_function;
+extern long double __strtold_nan (const char *, char **, char)
+     internal_function;
+extern float __wcstof_nan (const wchar_t *, wchar_t **, wchar_t)
+     internal_function;
+extern double __wcstod_nan (const wchar_t *, wchar_t **, wchar_t)
+     internal_function;
+extern long double __wcstold_nan (const wchar_t *, wchar_t **, wchar_t)
+     internal_function;
+
+libc_hidden_proto (__strtof_nan)
+libc_hidden_proto (__strtod_nan)
+libc_hidden_proto (__strtold_nan)
+libc_hidden_proto (__wcstof_nan)
+libc_hidden_proto (__wcstod_nan)
+libc_hidden_proto (__wcstold_nan)
+
+extern char *__ecvt (double __value, int __ndigit, int *__restrict __decpt,
+		     int *__restrict __sign);
+extern char *__fcvt (double __value, int __ndigit, int *__restrict __decpt,
+		     int *__restrict __sign);
+extern char *__gcvt (double __value, int __ndigit, char *__buf);
+extern int __ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
+		     int *__restrict __sign, char *__restrict __buf,
+		     size_t __len);
+extern int __fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
+		     int *__restrict __sign, char *__restrict __buf,
+		     size_t __len);
+extern char *__qecvt (long double __value, int __ndigit,
+		      int *__restrict __decpt, int *__restrict __sign);
+extern char *__qfcvt (long double __value, int __ndigit,
+		      int *__restrict __decpt, int *__restrict __sign);
+extern char *__qgcvt (long double __value, int __ndigit, char *__buf);
+extern int __qecvt_r (long double __value, int __ndigit,
+		      int *__restrict __decpt, int *__restrict __sign,
+		      char *__restrict __buf, size_t __len);
+extern int __qfcvt_r (long double __value, int __ndigit,
+		      int *__restrict __decpt, int *__restrict __sign,
+		      char *__restrict __buf, size_t __len);
+
+# if IS_IN (libc)
+#  undef MB_CUR_MAX
+#  define MB_CUR_MAX (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MB_CUR_MAX))
+# endif
+
+extern void *__default_morecore (ptrdiff_t) __THROW;
+libc_hidden_proto (__default_morecore)
+
+struct abort_msg_s
+{
+  unsigned int size;
+  char msg[0];
+};
+extern struct abort_msg_s *__abort_msg;
+libc_hidden_proto (__abort_msg)
+
+# if IS_IN (rtld)
+extern __typeof (unsetenv) unsetenv attribute_hidden;
+extern __typeof (__strtoul_internal) __strtoul_internal attribute_hidden;
+# endif
+
+#endif
+
+#endif  /* include/stdlib.h */
diff --git a/REORG.TODO/include/string.h b/REORG.TODO/include/string.h
new file mode 100644
index 0000000000..ce71674086
--- /dev/null
+++ b/REORG.TODO/include/string.h
@@ -0,0 +1,192 @@
+#ifndef _STRING_H
+
+#ifndef _ISOMAC
+/* Some of these are defined as macros in the real string.h, so we must
+   prototype them before including it.  */
+#include <sys/types.h>
+
+extern void *__memccpy (void *__dest, const void *__src,
+			int __c, size_t __n);
+
+extern size_t __strnlen (const char *__string, size_t __maxlen)
+     __attribute_pure__;
+
+extern char *__strsep (char **__stringp, const char *__delim);
+
+extern int __strverscmp (const char *__s1, const char *__s2)
+     __attribute_pure__;
+
+extern int __strncasecmp (const char *__s1, const char *__s2,
+			  size_t __n)
+     __attribute_pure__;
+
+extern int __strcasecmp (const char *__s1, const char *__s2)
+     __attribute_pure__;
+
+extern char *__strcasestr (const char *__haystack, const char *__needle)
+     __attribute_pure__;
+
+extern char *__strdup (const char *__string)
+     __attribute_malloc__;
+extern char *__strndup (const char *__string, size_t __n)
+     __attribute_malloc__;
+
+extern void *__rawmemchr (const void *__s, int __c)
+     __attribute_pure__;
+
+extern char *__strchrnul (const char *__s, int __c)
+     __attribute_pure__;
+
+extern void *__memrchr (const void *__s, int __c, size_t __n)
+     __attribute_pure__;
+
+extern void *__memchr (const void *__s, int __c, size_t __n)
+     __attribute_pure__;
+
+extern void __bzero (void *__s, size_t __n) __THROW __nonnull ((1));
+
+extern int __ffs (int __i) __attribute__ ((const));
+
+extern char *__strerror_r (int __errnum, char *__buf, size_t __buflen);
+
+/* Get _STRING_ARCH_unaligned.  */
+#include <string_private.h>
+#endif
+
+#include <string/string.h>
+
+#ifndef _ISOMAC
+extern __typeof (strcoll_l) __strcoll_l;
+extern __typeof (strxfrm_l) __strxfrm_l;
+extern __typeof (strcasecmp_l) __strcasecmp_l;
+extern __typeof (strncasecmp_l) __strncasecmp_l;
+
+/* Alternative version which doesn't pollute glibc's namespace.  */
+#if IS_IN (libc)
+# undef strndupa
+# define strndupa(s, n)							      \
+  (__extension__							      \
+    ({									      \
+      const char *__old = (s);						      \
+      size_t __len = __strnlen (__old, (n));				      \
+      char *__new = (char *) __builtin_alloca (__len + 1);		      \
+      __new[__len] = '\0';						      \
+      (char *) memcpy (__new, __old, __len);				      \
+    }))
+#endif
+
+libc_hidden_proto (__mempcpy)
+libc_hidden_proto (__stpcpy)
+libc_hidden_proto (__stpncpy)
+libc_hidden_proto (__rawmemchr)
+libc_hidden_proto (__strcasecmp)
+libc_hidden_proto (__strcasecmp_l)
+libc_hidden_proto (__strncasecmp_l)
+libc_hidden_proto (__strdup)
+libc_hidden_proto (__strndup)
+libc_hidden_proto (__strerror_r)
+libc_hidden_proto (__strverscmp)
+libc_hidden_proto (basename)
+extern char *__basename (const char *__filename) __THROW __nonnull ((1));
+libc_hidden_proto (__basename)
+libc_hidden_proto (strcoll)
+libc_hidden_proto (__strcoll_l)
+libc_hidden_proto (__strxfrm_l)
+libc_hidden_proto (__strtok_r)
+extern char *__strsep_g (char **__stringp, const char *__delim);
+libc_hidden_proto (__strsep_g)
+libc_hidden_proto (strnlen)
+libc_hidden_proto (__strnlen)
+libc_hidden_proto (memmem)
+extern __typeof (memmem) __memmem;
+libc_hidden_proto (__memmem)
+libc_hidden_proto (__ffs)
+
+#if IS_IN (libc)
+/* Avoid hidden reference to IFUNC symbol __explicit_bzero_chk.  */
+void __explicit_bzero_chk_internal (void *, size_t, size_t)
+  __THROW __nonnull ((1)) attribute_hidden;
+# define explicit_bzero(buf, len) \
+  __explicit_bzero_chk_internal (buf, len, __bos0 (buf))
+#elif !IS_IN (nonlib)
+void __explicit_bzero_chk (void *, size_t, size_t) __THROW __nonnull ((1));
+# define explicit_bzero(buf, len) __explicit_bzero_chk (buf, len, __bos0 (buf))
+#endif
+
+libc_hidden_builtin_proto (memchr)
+libc_hidden_builtin_proto (memcpy)
+libc_hidden_builtin_proto (mempcpy)
+libc_hidden_builtin_proto (memcmp)
+libc_hidden_builtin_proto (memmove)
+libc_hidden_builtin_proto (memset)
+libc_hidden_builtin_proto (strcat)
+libc_hidden_builtin_proto (strchr)
+libc_hidden_builtin_proto (strcmp)
+libc_hidden_builtin_proto (strcpy)
+libc_hidden_builtin_proto (strcspn)
+libc_hidden_builtin_proto (strlen)
+libc_hidden_builtin_proto (strncmp)
+libc_hidden_builtin_proto (strncpy)
+libc_hidden_builtin_proto (strpbrk)
+libc_hidden_builtin_proto (stpcpy)
+libc_hidden_builtin_proto (strrchr)
+libc_hidden_builtin_proto (strspn)
+libc_hidden_builtin_proto (strstr)
+libc_hidden_builtin_proto (ffs)
+
+#if IS_IN (rtld)
+extern __typeof (__stpcpy) __stpcpy attribute_hidden;
+extern __typeof (__strdup) __strdup attribute_hidden;
+extern __typeof (__strerror_r) __strerror_r attribute_hidden;
+extern __typeof (__strsep_g) __strsep_g attribute_hidden;
+
+extern __typeof (memchr) memchr attribute_hidden;
+extern __typeof (memcmp) memcmp attribute_hidden;
+extern __typeof (memcpy) memcpy attribute_hidden;
+extern __typeof (memmove) memmove attribute_hidden;
+extern __typeof (memset) memset attribute_hidden;
+extern __typeof (rawmemchr) rawmemchr attribute_hidden;
+extern __typeof (stpcpy) stpcpy attribute_hidden;
+extern __typeof (strchr) strchr attribute_hidden;
+extern __typeof (strcmp) strcmp attribute_hidden;
+extern __typeof (strlen) strlen attribute_hidden;
+extern __typeof (strnlen) strnlen attribute_hidden;
+extern __typeof (strsep) strsep attribute_hidden;
+#endif
+
+#if (!IS_IN (libc) || !defined SHARED) \
+  && !defined NO_MEMPCPY_STPCPY_REDIRECT
+/* Redirect calls to __builtin_mempcpy and __builtin_stpcpy to call
+   __mempcpy and __stpcpy if not inlined.  */
+extern __typeof (mempcpy) mempcpy __asm__ ("__mempcpy");
+extern __typeof (stpcpy) stpcpy __asm__ ("__stpcpy");
+#endif
+
+extern void *__memcpy_chk (void *__restrict __dest,
+			   const void *__restrict __src, size_t __len,
+			   size_t __destlen) __THROW;
+extern void *__memmove_chk (void *__dest, const void *__src, size_t __len,
+			    size_t __destlen) __THROW;
+extern void *__mempcpy_chk (void *__restrict __dest,
+			    const void *__restrict __src, size_t __len,
+			    size_t __destlen) __THROW;
+extern void *__memset_chk (void *__dest, int __ch, size_t __len,
+			   size_t __destlen) __THROW;
+extern char *__strcpy_chk (char *__restrict __dest,
+			   const char *__restrict __src,
+			   size_t __destlen) __THROW;
+extern char *__stpcpy_chk (char *__restrict __dest,
+			   const char *__restrict __src,
+			   size_t __destlen) __THROW;
+extern char *__strncpy_chk (char *__restrict __dest,
+			    const char *__restrict __src,
+			    size_t __len, size_t __destlen) __THROW;
+extern char *__strcat_chk (char *__restrict __dest,
+			   const char *__restrict __src,
+			   size_t __destlen) __THROW;
+extern char *__strncat_chk (char *__restrict __dest,
+			    const char *__restrict __src,
+			    size_t __len, size_t __destlen) __THROW;
+#endif
+
+#endif
diff --git a/REORG.TODO/include/strings.h b/REORG.TODO/include/strings.h
new file mode 100644
index 0000000000..b1bb339d3d
--- /dev/null
+++ b/REORG.TODO/include/strings.h
@@ -0,0 +1 @@
+#include <string/strings.h>
diff --git a/REORG.TODO/include/stropts.h b/REORG.TODO/include/stropts.h
new file mode 100644
index 0000000000..27ab60ac7f
--- /dev/null
+++ b/REORG.TODO/include/stropts.h
@@ -0,0 +1 @@
+#include <streams/stropts.h>
diff --git a/REORG.TODO/include/stubs-prologue.h b/REORG.TODO/include/stubs-prologue.h
new file mode 100644
index 0000000000..0577bc6a5f
--- /dev/null
+++ b/REORG.TODO/include/stubs-prologue.h
@@ -0,0 +1,14 @@
+@ These lines with @ are omitted from the generated output.
+@ This file gives the initial contents of gnu/stubs.h, to which
+@ all the #define __stub_foo lines get appended by the makefile rule.
+@
+/* This file is automatically generated.
+   It defines a symbol `__stub_FUNCTION' for each function
+   in the C library which is a stub, meaning it will fail
+   every time called, usually setting errno to ENOSYS.  */
+
+#ifdef _LIBC
+ #error Applications may not define the macro _LIBC
+#endif
+
+@ Placeholder line so we remember to keep the preceding blank line here.
diff --git a/REORG.TODO/include/sys/auxv.h b/REORG.TODO/include/sys/auxv.h
new file mode 100644
index 0000000000..dede2c36ac
--- /dev/null
+++ b/REORG.TODO/include/sys/auxv.h
@@ -0,0 +1 @@
+#include <misc/sys/auxv.h>
diff --git a/REORG.TODO/include/sys/bitypes.h b/REORG.TODO/include/sys/bitypes.h
new file mode 100644
index 0000000000..137945172d
--- /dev/null
+++ b/REORG.TODO/include/sys/bitypes.h
@@ -0,0 +1 @@
+#include <resolv/sys/bitypes.h>
diff --git a/REORG.TODO/include/sys/cdefs.h b/REORG.TODO/include/sys/cdefs.h
new file mode 100644
index 0000000000..524fe57a25
--- /dev/null
+++ b/REORG.TODO/include/sys/cdefs.h
@@ -0,0 +1,18 @@
+#ifndef _SYS_CDEFS_H
+
+#include <misc/sys/cdefs.h>
+
+#ifndef _ISOMAC
+/* The compiler will optimize based on the knowledge the parameter is
+   not NULL.  This will omit tests.  A robust implementation cannot allow
+   this so when compiling glibc itself we ignore this attribute.  */
+# undef __nonnull
+# define __nonnull(params)
+
+extern void __chk_fail (void) __attribute__ ((__noreturn__));
+libc_hidden_proto (__chk_fail)
+rtld_hidden_proto (__chk_fail)
+
+#endif
+
+#endif
diff --git a/REORG.TODO/include/sys/dir.h b/REORG.TODO/include/sys/dir.h
new file mode 100644
index 0000000000..5453e743fc
--- /dev/null
+++ b/REORG.TODO/include/sys/dir.h
@@ -0,0 +1 @@
+#include <misc/sys/dir.h>
diff --git a/REORG.TODO/include/sys/epoll.h b/REORG.TODO/include/sys/epoll.h
new file mode 100644
index 0000000000..86e0a54e62
--- /dev/null
+++ b/REORG.TODO/include/sys/epoll.h
@@ -0,0 +1,9 @@
+#ifndef _SYS_EPOLL_H
+#include_next <sys/epoll.h>
+
+# ifndef _ISOMAC
+
+libc_hidden_proto (epoll_pwait)
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/sys/errno.h b/REORG.TODO/include/sys/errno.h
new file mode 100644
index 0000000000..1b29efe138
--- /dev/null
+++ b/REORG.TODO/include/sys/errno.h
@@ -0,0 +1 @@
+#include <stdlib/sys/errno.h>
diff --git a/REORG.TODO/include/sys/fcntl.h b/REORG.TODO/include/sys/fcntl.h
new file mode 100644
index 0000000000..dec2157be6
--- /dev/null
+++ b/REORG.TODO/include/sys/fcntl.h
@@ -0,0 +1 @@
+#include <io/sys/fcntl.h>
diff --git a/REORG.TODO/include/sys/file.h b/REORG.TODO/include/sys/file.h
new file mode 100644
index 0000000000..d0cd1f9e15
--- /dev/null
+++ b/REORG.TODO/include/sys/file.h
@@ -0,0 +1,10 @@
+#ifndef _SYS_FILE_H
+#include <misc/sys/file.h>
+
+# ifndef _ISOMAC
+
+/* Now define the internal interfaces.  */
+extern int __flock (int __fd, int __operation);
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/sys/gmon.h b/REORG.TODO/include/sys/gmon.h
new file mode 100644
index 0000000000..30889d8bc3
--- /dev/null
+++ b/REORG.TODO/include/sys/gmon.h
@@ -0,0 +1,19 @@
+#ifndef _SYS_GMON_H
+#include <gmon/sys/gmon.h>
+
+# ifndef _ISOMAC
+
+/* Now define the internal interfaces.  */
+
+/* Write current profiling data to file.  */
+extern void __write_profiling (void);
+extern void write_profiling (void);
+
+struct __bb;
+extern void __bb_init_func (struct __bb *bb);
+extern void __bb_exit_func (void);
+
+extern struct gmonparam _gmonparam attribute_hidden;
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/sys/gmon_out.h b/REORG.TODO/include/sys/gmon_out.h
new file mode 100644
index 0000000000..249f834ba3
--- /dev/null
+++ b/REORG.TODO/include/sys/gmon_out.h
@@ -0,0 +1 @@
+#include <gmon/sys/gmon_out.h>
diff --git a/REORG.TODO/include/sys/ioctl.h b/REORG.TODO/include/sys/ioctl.h
new file mode 100644
index 0000000000..bfc6909dbc
--- /dev/null
+++ b/REORG.TODO/include/sys/ioctl.h
@@ -0,0 +1,10 @@
+#ifndef _SYS_IOCTL_H
+#include <misc/sys/ioctl.h>
+
+# ifndef _ISOMAC
+
+/* Now define the internal interfaces.  */
+extern int __ioctl (int __fd, unsigned long int __request, ...);
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/sys/ipc.h b/REORG.TODO/include/sys/ipc.h
new file mode 100644
index 0000000000..7bd257684b
--- /dev/null
+++ b/REORG.TODO/include/sys/ipc.h
@@ -0,0 +1 @@
+#include <sysvipc/sys/ipc.h>
diff --git a/REORG.TODO/include/sys/mman.h b/REORG.TODO/include/sys/mman.h
new file mode 100644
index 0000000000..7026f69f42
--- /dev/null
+++ b/REORG.TODO/include/sys/mman.h
@@ -0,0 +1,25 @@
+#ifndef _SYS_MMAN_H
+#include <misc/sys/mman.h>
+
+#ifndef _ISOMAC
+/* Now define the internal interfaces.  */
+extern void *__mmap (void *__addr, size_t __len, int __prot,
+		     int __flags, int __fd, __off_t __offset);
+extern void *__mmap64 (void *__addr, size_t __len, int __prot,
+		       int __flags, int __fd, __off64_t __offset);
+extern int __munmap (void *__addr, size_t __len);
+extern int __mprotect (void *__addr, size_t __len, int __prot);
+
+extern int __madvise (void *__addr, size_t __len, int __advice);
+libc_hidden_proto (__madvise)
+
+/* This one is Linux specific.  */
+extern void *__mremap (void *__addr, size_t __old_len,
+		       size_t __new_len, int __flags, ...);
+
+# if IS_IN (rtld)
+#  include <dl-mman.h>
+# endif
+#endif
+
+#endif
diff --git a/REORG.TODO/include/sys/msg.h b/REORG.TODO/include/sys/msg.h
new file mode 100644
index 0000000000..43ec5b9472
--- /dev/null
+++ b/REORG.TODO/include/sys/msg.h
@@ -0,0 +1,11 @@
+#ifndef _SYS_MSG_H
+#include <sysvipc/sys/msg.h>
+
+#ifndef _ISOMAC
+extern ssize_t __libc_msgrcv (int msqid, void *msgp, size_t msgsz,
+			      long int msgtyp, int msgflg);
+extern int __libc_msgsnd (int msqid, const void *msgp, size_t msgsz,
+			  int msgflg);
+#endif
+
+#endif
diff --git a/REORG.TODO/include/sys/param.h b/REORG.TODO/include/sys/param.h
new file mode 100644
index 0000000000..7a0cfb1f24
--- /dev/null
+++ b/REORG.TODO/include/sys/param.h
@@ -0,0 +1 @@
+#include <misc/sys/param.h>
diff --git a/REORG.TODO/include/sys/poll.h b/REORG.TODO/include/sys/poll.h
new file mode 100644
index 0000000000..a42bc93873
--- /dev/null
+++ b/REORG.TODO/include/sys/poll.h
@@ -0,0 +1,11 @@
+#ifndef	_SYS_POLL_H
+# include <io/sys/poll.h>
+
+#ifndef _ISOMAC
+extern int __poll (struct pollfd *__fds, unsigned long int __nfds,
+		   int __timeout);
+libc_hidden_proto (__poll)
+libc_hidden_proto (ppoll)
+#endif
+
+#endif
diff --git a/REORG.TODO/include/sys/prctl.h b/REORG.TODO/include/sys/prctl.h
new file mode 100644
index 0000000000..0920ed642b
--- /dev/null
+++ b/REORG.TODO/include/sys/prctl.h
@@ -0,0 +1,9 @@
+#ifndef _SYS_PRCTL_H
+#include_next <sys/prctl.h>
+
+# ifndef _ISOMAC
+
+extern int __prctl (int __option, ...);
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/sys/profil.h b/REORG.TODO/include/sys/profil.h
new file mode 100644
index 0000000000..2b1133073e
--- /dev/null
+++ b/REORG.TODO/include/sys/profil.h
@@ -0,0 +1,12 @@
+#ifndef _PROFIL_H
+#include <gmon/sys/profil.h>
+
+# ifndef _ISOMAC
+
+/* Now define the internal interfaces.  */
+
+extern int __sprofil (struct prof *__profp, int __profcnt,
+		      struct timeval *__tvp, unsigned int __flags);
+
+# endif /* !_ISOMAC */
+#endif /* _PROFIL_H */
diff --git a/REORG.TODO/include/sys/queue.h b/REORG.TODO/include/sys/queue.h
new file mode 100644
index 0000000000..5c9823b7eb
--- /dev/null
+++ b/REORG.TODO/include/sys/queue.h
@@ -0,0 +1 @@
+#include <misc/sys/queue.h>
diff --git a/REORG.TODO/include/sys/resource.h b/REORG.TODO/include/sys/resource.h
new file mode 100644
index 0000000000..688c46c4ae
--- /dev/null
+++ b/REORG.TODO/include/sys/resource.h
@@ -0,0 +1,27 @@
+#ifndef _SYS_RESOURCE_H
+#include <resource/sys/resource.h>
+
+#ifndef _ISOMAC
+/* Prototypes repeated instead of using __typeof because
+   sys/resource.h is included in C++ tests, and declaring functions
+   with __typeof and __THROW doesn't work for C++.  */
+extern int __getpriority (__priority_which_t __which, id_t __who) __THROW;
+libc_hidden_proto (__getpriority)
+extern int __setpriority (__priority_which_t __which, id_t __who, int __prio)
+     __THROW;
+libc_hidden_proto (__setpriority)
+libc_hidden_proto (getrlimit64)
+extern __typeof (getrlimit64) __getrlimit64;
+libc_hidden_proto (__getrlimit64);
+
+/* Now define the internal interfaces.  */
+extern int __getrlimit (enum __rlimit_resource __resource,
+			struct rlimit *__rlimits);
+libc_hidden_proto (__getrlimit)
+extern int __getrusage (enum __rusage_who __who, struct rusage *__usage)
+	attribute_hidden;
+
+extern int __setrlimit (enum __rlimit_resource __resource,
+			const struct rlimit *__rlimits);
+#endif
+#endif
diff --git a/REORG.TODO/include/sys/select.h b/REORG.TODO/include/sys/select.h
new file mode 100644
index 0000000000..07bb49b994
--- /dev/null
+++ b/REORG.TODO/include/sys/select.h
@@ -0,0 +1,18 @@
+#ifndef _SYS_SELECT_H
+#include <misc/sys/select.h>
+
+#ifndef _ISOMAC
+/* Now define the internal interfaces.  */
+extern int __pselect (int __nfds, fd_set *__readfds,
+		      fd_set *__writefds, fd_set *__exceptfds,
+		      const struct timespec *__timeout,
+		      const __sigset_t *__sigmask);
+
+extern int __select (int __nfds, fd_set *__restrict __readfds,
+		     fd_set *__restrict __writefds,
+		     fd_set *__restrict __exceptfds,
+		     struct timeval *__restrict __timeout);
+libc_hidden_proto (__select)
+
+#endif
+#endif
diff --git a/REORG.TODO/include/sys/sem.h b/REORG.TODO/include/sys/sem.h
new file mode 100644
index 0000000000..b0fb201bd0
--- /dev/null
+++ b/REORG.TODO/include/sys/sem.h
@@ -0,0 +1 @@
+#include <sysvipc/sys/sem.h>
diff --git a/REORG.TODO/include/sys/sendfile.h b/REORG.TODO/include/sys/sendfile.h
new file mode 100644
index 0000000000..abe09769cc
--- /dev/null
+++ b/REORG.TODO/include/sys/sendfile.h
@@ -0,0 +1 @@
+#include <io/sys/sendfile.h>
diff --git a/REORG.TODO/include/sys/shm.h b/REORG.TODO/include/sys/shm.h
new file mode 100644
index 0000000000..1878fcc5be
--- /dev/null
+++ b/REORG.TODO/include/sys/shm.h
@@ -0,0 +1 @@
+#include <sysvipc/sys/shm.h>
diff --git a/REORG.TODO/include/sys/signal.h b/REORG.TODO/include/sys/signal.h
new file mode 100644
index 0000000000..b2110df1ae
--- /dev/null
+++ b/REORG.TODO/include/sys/signal.h
@@ -0,0 +1 @@
+#include <signal/sys/signal.h>
diff --git a/REORG.TODO/include/sys/socket.h b/REORG.TODO/include/sys/socket.h
new file mode 100644
index 0000000000..a00ab3cf93
--- /dev/null
+++ b/REORG.TODO/include/sys/socket.h
@@ -0,0 +1,158 @@
+#ifndef _SYS_SOCKET_H
+#include <socket/sys/socket.h>
+
+#ifndef _ISOMAC
+/* Now define the internal interfaces.  */
+
+/* Create a new socket of type TYPE in domain DOMAIN, using
+   protocol PROTOCOL.  If PROTOCOL is zero, one is chosen automatically.
+   Returns a file descriptor for the new socket, or -1 for errors.  */
+extern int __socket (int __domain, int __type,
+		     int __protocol);
+libc_hidden_proto (__socket)
+
+/* Create two new sockets, of type TYPE in domain DOMAIN and using
+   protocol PROTOCOL, which are connected to each other, and put file
+   descriptors for them in FDS[0] and FDS[1].  If PROTOCOL is zero,
+   one will be chosen automatically.  Returns 0 on success, -1 for errors.  */
+extern int __socketpair (int __domain, int __type, int __protocol,
+			 int __fds[2]) attribute_hidden;
+
+/* Return a socket of any type.  The socket can be used in subsequent
+   ioctl calls to talk to the kernel.  */
+extern int __opensock (void) internal_function attribute_hidden;
+
+/* Put the address of the peer connected to socket FD into *ADDR
+   (which is *LEN bytes long), and its actual length into *LEN.  */
+extern int __getpeername (int __fd, __SOCKADDR_ARG __addr,
+			  socklen_t *__len) attribute_hidden;
+
+/* Send N bytes of BUF to socket FD.  Returns the number sent or -1.  */
+extern ssize_t __libc_send (int __fd, const void *__buf, size_t __n,
+			    int __flags);
+extern ssize_t __send (int __fd, const void *__buf, size_t __n, int __flags);
+libc_hidden_proto (__send)
+
+/* Read N bytes into BUF from socket FD.
+   Returns the number read or -1 for errors.  */
+extern ssize_t __libc_recv (int __fd, void *__buf, size_t __n, int __flags);
+
+/* Send N bytes of BUF on socket FD to peer at address ADDR (which is
+   ADDR_LEN bytes long).  Returns the number sent, or -1 for errors.  */
+extern ssize_t __libc_sendto (int __fd, const void *__buf, size_t __n,
+			      int __flags, __CONST_SOCKADDR_ARG __addr,
+			      socklen_t __addr_len);
+
+/* Read N bytes into BUF through socket FD.
+   If ADDR is not NULL, fill in *ADDR_LEN bytes of it with tha address of
+   the sender, and store the actual size of the address in *ADDR_LEN.
+   Returns the number of bytes read or -1 for errors.  */
+extern ssize_t __libc_recvfrom (int __fd, void *__restrict __buf, size_t __n,
+				int __flags, __SOCKADDR_ARG __addr,
+				socklen_t *__restrict __addr_len);
+
+/* Open a connection on socket FD to peer at ADDR (which LEN bytes long).
+   For connectionless socket types, just set the default address to send to
+   and the only address from which to accept transmissions.
+   Return 0 on success, -1 for errors.  */
+extern int __libc_connect (int __fd, __CONST_SOCKADDR_ARG __addr,
+			   socklen_t __len);
+extern int __connect (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len);
+libc_hidden_proto (__connect)
+
+/* Read N bytes into BUF from socket FD.
+   Returns the number read or -1 for errors.
+
+   This function is a cancellation point and therefore not marked with
+   __THROW.  */
+extern ssize_t __recv (int __fd, void *__buf, size_t __n, int __flags);
+libc_hidden_proto (__recv)
+
+/* Send N bytes of BUF on socket FD to peer at address ADDR (which is
+   ADDR_LEN bytes long).  Returns the number sent, or -1 for errors.  */
+extern ssize_t __libc_sendto (int __fd, const void *__buf, size_t __n,
+			      int __flags, __CONST_SOCKADDR_ARG __addr,
+			      socklen_t __addr_len);
+extern ssize_t __sendto (int __fd, const void *__buf, size_t __n,
+			 int __flags, __CONST_SOCKADDR_ARG __addr,
+			 socklen_t __addr_len) attribute_hidden;
+
+/* Read N bytes into BUF through socket FD.
+   If ADDR is not NULL, fill in *ADDR_LEN bytes of it with tha address of
+   the sender, and store the actual size of the address in *ADDR_LEN.
+   Returns the number of bytes read or -1 for errors.  */
+extern ssize_t __recvfrom (int __fd, void *__restrict __buf, size_t __n,
+			   int __flags, __SOCKADDR_ARG __addr,
+			   socklen_t *__restrict __addr_len) attribute_hidden;
+
+/* Send a message described MESSAGE on socket FD.
+   Returns the number of bytes sent, or -1 for errors.  */
+extern ssize_t __libc_sendmsg (int __fd, const struct msghdr *__message,
+			       int __flags);
+extern ssize_t __sendmsg (int __fd, const struct msghdr *__message,
+			  int __flags) attribute_hidden;
+
+#ifdef __USE_GNU
+extern int __sendmmsg (int __fd, struct mmsghdr *__vmessages,
+                       unsigned int __vlen, int __flags);
+libc_hidden_proto (__sendmmsg)
+#endif
+
+/* Receive a message as described by MESSAGE from socket FD.
+   Returns the number of bytes read or -1 for errors.  */
+extern ssize_t __libc_recvmsg (int __fd, struct msghdr *__message,
+			       int __flags);
+extern ssize_t __recvmsg (int __fd, struct msghdr *__message,
+			  int __flags) attribute_hidden;
+
+/* Set socket FD's option OPTNAME at protocol level LEVEL
+   to *OPTVAL (which is OPTLEN bytes long).
+   Returns 0 on success, -1 for errors.  */
+extern int __setsockopt (int __fd, int __level, int __optname,
+			 const void *__optval,
+			 socklen_t __optlen) attribute_hidden;
+
+/* Put the current value for socket FD's option OPTNAME at protocol level LEVEL
+   into OPTVAL (which is *OPTLEN bytes long), and set *OPTLEN to the value's
+   actual length.  Returns 0 on success, -1 for errors.  */
+extern int __getsockopt (int __fd, int __level, int __optname,
+			 void *__restrict __optval,
+			 socklen_t *__restrict __optlen) attribute_hidden;
+
+/* Put the local address of FD into *ADDR and its length in *LEN.  */
+extern int __getsockname (int __fd, __SOCKADDR_ARG __addr,
+			  socklen_t *__restrict __len) attribute_hidden;
+
+/* Give the socket FD the local address ADDR (which is LEN bytes long).  */
+extern int __bind (int __fd, __CONST_SOCKADDR_ARG __addr,
+		   socklen_t __len) attribute_hidden;
+
+/* Prepare to accept connections on socket FD.
+   N connection requests will be queued before further requests are refused.
+   Returns 0 on success, -1 for errors.  */
+extern int __listen (int __fd, int __n) attribute_hidden;
+
+/* Await a connection on socket FD.
+   When a connection arrives, open a new socket to communicate with it,
+   set *ADDR (which is *ADDR_LEN bytes long) to the address of the connecting
+   peer and *ADDR_LEN to the address's actual length, and return the
+   new socket's descriptor, or -1 for errors.  */
+extern int __libc_accept (int __fd, __SOCKADDR_ARG __addr,
+			  socklen_t *__restrict __addr_len)
+     __THROW attribute_hidden;
+libc_hidden_proto (accept)
+extern int __libc_accept4 (int __fd, __SOCKADDR_ARG __addr,
+			   socklen_t *__restrict __addr_len, int __flags)
+     __THROW attribute_hidden;
+
+/* Return the length of a `sockaddr' structure.  */
+#ifdef _HAVE_SA_LEN
+# define SA_LEN(_x)      (_x)->sa_len
+#else
+extern int __libc_sa_len (sa_family_t __af);
+libc_hidden_proto (__libc_sa_len)
+# define SA_LEN(_x)      __libc_sa_len((_x)->sa_family)
+#endif
+
+#endif
+#endif
diff --git a/REORG.TODO/include/sys/stat.h b/REORG.TODO/include/sys/stat.h
new file mode 100644
index 0000000000..4f31c00eca
--- /dev/null
+++ b/REORG.TODO/include/sys/stat.h
@@ -0,0 +1,62 @@
+#ifndef _SYS_STAT_H
+#include <io/sys/stat.h>
+
+#ifndef _ISOMAC
+/* Now define the internal interfaces. */
+extern int __stat (const char *__file, struct stat *__buf);
+extern int __fstat (int __fd, struct stat *__buf);
+extern int __lstat (const char *__file, struct stat *__buf);
+extern int __chmod (const char *__file, __mode_t __mode);
+extern int __fchmod (int __fd, __mode_t __mode);
+extern __mode_t __umask (__mode_t __mask);
+extern int __mkdir (const char *__path, __mode_t __mode);
+extern int __mknod (const char *__path,
+		    __mode_t __mode, __dev_t __dev);
+#if IS_IN (libc) || IS_IN (rtld)
+hidden_proto (__fxstat)
+hidden_proto (__fxstat64)
+hidden_proto (__lxstat)
+hidden_proto (__lxstat64)
+hidden_proto (__xstat)
+hidden_proto (__xstat64)
+#endif
+extern __inline__ int __stat (const char *__path, struct stat *__statbuf)
+{
+  return __xstat (_STAT_VER, __path, __statbuf);
+}
+libc_hidden_proto (__xmknod)
+extern __inline__ int __mknod (const char *__path, __mode_t __mode,
+			       __dev_t __dev)
+{
+  return __xmknod (_MKNOD_VER, __path, __mode, &__dev);
+}
+libc_hidden_proto (__xmknodat)
+
+libc_hidden_proto (__fxstatat)
+libc_hidden_proto (__fxstatat64)
+
+# if IS_IN (rtld)
+extern __typeof (__fxstatat64) __fxstatat64 attribute_hidden;
+# endif
+
+/* The `stat', `fstat', `lstat' functions have to be handled special since
+   even while not compiling the library with optimization calls to these
+   functions in the shared library must reference the `xstat' etc functions.
+   We have to use macros but we cannot define them in the normal headers
+   since on user level we must use real functions.  */
+#define stat(fname, buf) __xstat (_STAT_VER, fname, buf)
+#define lstat(fname, buf)  __lxstat (_STAT_VER, fname, buf)
+#define __lstat(fname, buf)  __lxstat (_STAT_VER, fname, buf)
+#define lstat64(fname, buf)  __lxstat64 (_STAT_VER, fname, buf)
+#define __lstat64(fname, buf)  __lxstat64 (_STAT_VER, fname, buf)
+#define stat64(fname, buf) __xstat64 (_STAT_VER, fname, buf)
+#define fstat64(fd, buf) __fxstat64 (_STAT_VER, fd, buf)
+#define __fstat64(fd, buf) __fxstat64 (_STAT_VER, fd, buf)
+#define fstat(fd, buf) __fxstat (_STAT_VER, fd, buf)
+#define __fstat(fd, buf) __fxstat (_STAT_VER, fd, buf)
+#define __fstatat(dfd, fname, buf, flag) \
+  __fxstatat (_STAT_VER, dfd, fname, buf, flag)
+#define __fstatat64(dfd, fname, buf, flag) \
+  __fxstatat64 (_STAT_VER, dfd, fname, buf, flag)
+#endif
+#endif
diff --git a/REORG.TODO/include/sys/statfs.h b/REORG.TODO/include/sys/statfs.h
new file mode 100644
index 0000000000..3fac4a3490
--- /dev/null
+++ b/REORG.TODO/include/sys/statfs.h
@@ -0,0 +1,14 @@
+#ifndef _SYS_STATFS_H
+#include <io/sys/statfs.h>
+
+# ifndef _ISOMAC
+
+/* Now define the internal interfaces.  */
+extern int __statfs (const char *__file, struct statfs *__buf);
+libc_hidden_proto (__statfs)
+extern int __fstatfs (int __fildes, struct statfs *__buf);
+extern int __statfs64 (const char *__file, struct statfs64 *__buf);
+extern int __fstatfs64 (int __fildes, struct statfs64 *__buf);
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/sys/statvfs.h b/REORG.TODO/include/sys/statvfs.h
new file mode 100644
index 0000000000..fa3045386d
--- /dev/null
+++ b/REORG.TODO/include/sys/statvfs.h
@@ -0,0 +1,12 @@
+#ifndef _SYS_STATVFS_H
+#include <io/sys/statvfs.h>
+
+#ifndef _ISOMAC
+/* Now define the internal interfaces.  */
+extern int __statvfs64 (const char *__file, struct statvfs64 *__buf);
+extern int __fstatvfs64 (int __fildes, struct statvfs64 *__buf);
+
+libc_hidden_proto (statvfs)
+libc_hidden_proto (fstatvfs)
+#endif
+#endif
diff --git a/REORG.TODO/include/sys/sysctl.h b/REORG.TODO/include/sys/sysctl.h
new file mode 100644
index 0000000000..2a15e91354
--- /dev/null
+++ b/REORG.TODO/include/sys/sysctl.h
@@ -0,0 +1,13 @@
+#ifndef _SYS_SYSCTL_H
+#include_next <sys/sysctl.h>
+
+# ifndef _ISOMAC
+
+/* Read or write system parameters (Linux, FreeBSD specific).  */
+extern int __sysctl (int *__name, int __nlen, void *__oldval,
+		     size_t *__oldlenp, void *__newval, size_t __newlen);
+libc_hidden_proto (__sysctl)
+
+
+# endif /* !_ISOMAC */
+#endif  /* _SYS_SYSCTL_H */
diff --git a/REORG.TODO/include/sys/sysinfo.h b/REORG.TODO/include/sys/sysinfo.h
new file mode 100644
index 0000000000..c33eae2883
--- /dev/null
+++ b/REORG.TODO/include/sys/sysinfo.h
@@ -0,0 +1,24 @@
+#ifndef _SYS_SYSINFO_H
+#include_next <sys/sysinfo.h>
+
+# ifndef _ISOMAC
+
+/* Now we define the internal interface.  */
+
+/* Return number of configured processors.  */
+extern int __get_nprocs_conf (void);
+
+/* Return number of available processors.  */
+extern int __get_nprocs (void);
+
+/* Return number of physical pages of memory in the system.  */
+extern long int __get_phys_pages (void);
+
+/* Return number of available physical pages of memory in the system.  */
+extern long int __get_avphys_pages (void);
+
+/* Return maximum number of processes this real user ID can have.  */
+extern long int __get_child_max (void);
+
+# endif /* !_ISOMAC */
+#endif /* sys/sysinfo.h */
diff --git a/REORG.TODO/include/sys/syslog.h b/REORG.TODO/include/sys/syslog.h
new file mode 100644
index 0000000000..3be3189ed1
--- /dev/null
+++ b/REORG.TODO/include/sys/syslog.h
@@ -0,0 +1,11 @@
+#include <misc/sys/syslog.h>
+
+#ifndef _ISOMAC
+libc_hidden_proto (syslog)
+libc_hidden_proto (vsyslog)
+
+extern void __vsyslog_chk (int __pri, int __flag, const char *__fmt,
+			   __gnuc_va_list __ap)
+     __attribute__ ((__format__ (__printf__, 3, 0)));
+libc_hidden_proto (__vsyslog_chk)
+#endif
diff --git a/REORG.TODO/include/sys/sysmacros.h b/REORG.TODO/include/sys/sysmacros.h
new file mode 100644
index 0000000000..87813c5b53
--- /dev/null
+++ b/REORG.TODO/include/sys/sysmacros.h
@@ -0,0 +1 @@
+#include <misc/sys/sysmacros.h>
diff --git a/REORG.TODO/include/sys/termios.h b/REORG.TODO/include/sys/termios.h
new file mode 100644
index 0000000000..27e4de5f4b
--- /dev/null
+++ b/REORG.TODO/include/sys/termios.h
@@ -0,0 +1 @@
+#include <termios/sys/termios.h>
diff --git a/REORG.TODO/include/sys/time.h b/REORG.TODO/include/sys/time.h
new file mode 100644
index 0000000000..95c431f7b3
--- /dev/null
+++ b/REORG.TODO/include/sys/time.h
@@ -0,0 +1,43 @@
+/* Time function internal interfaces.
+   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 _SYS_TIME_H
+# include <time/sys/time.h>
+
+# ifndef _ISOMAC
+extern int __gettimeofday (struct timeval *__tv,
+			   struct timezone *__tz);
+libc_hidden_proto (__gettimeofday)
+libc_hidden_proto (gettimeofday)
+extern int __settimeofday (const struct timeval *__tv,
+			   const struct timezone *__tz)
+	attribute_hidden;
+extern int __adjtime (const struct timeval *__delta,
+		      struct timeval *__olddelta);
+extern int __getitimer (enum __itimer_which __which,
+			struct itimerval *__value);
+extern int __setitimer (enum __itimer_which __which,
+			const struct itimerval *__restrict __new,
+			struct itimerval *__restrict __old)
+	attribute_hidden;
+extern int __utimes (const char *__file, const struct timeval __tvp[2])
+	attribute_hidden;
+extern int __futimes (int fd, const struct timeval tvp[2]) attribute_hidden;
+
+# endif
+#endif
diff --git a/REORG.TODO/include/sys/timeb.h b/REORG.TODO/include/sys/timeb.h
new file mode 100644
index 0000000000..9f4509c35e
--- /dev/null
+++ b/REORG.TODO/include/sys/timeb.h
@@ -0,0 +1 @@
+#include <time/sys/timeb.h>
diff --git a/REORG.TODO/include/sys/times.h b/REORG.TODO/include/sys/times.h
new file mode 100644
index 0000000000..026d140fe1
--- /dev/null
+++ b/REORG.TODO/include/sys/times.h
@@ -0,0 +1,8 @@
+#ifndef _SYS_TIMES_H
+#include <posix/sys/times.h>
+
+#ifndef _ISOMAC
+/* Now define the internal interfaces.  */
+extern clock_t __times (struct tms *__buffer);
+#endif
+#endif
diff --git a/REORG.TODO/include/sys/types.h b/REORG.TODO/include/sys/types.h
new file mode 100644
index 0000000000..716732f4d4
--- /dev/null
+++ b/REORG.TODO/include/sys/types.h
@@ -0,0 +1 @@
+#include <posix/sys/types.h>
diff --git a/REORG.TODO/include/sys/uio.h b/REORG.TODO/include/sys/uio.h
new file mode 100644
index 0000000000..20860bfd82
--- /dev/null
+++ b/REORG.TODO/include/sys/uio.h
@@ -0,0 +1,17 @@
+#ifndef _SYS_UIO_H
+#include <misc/sys/uio.h>
+
+#ifndef _ISOMAC
+/* Now define the internal interfaces.  */
+extern ssize_t __readv (int __fd, const struct iovec *__iovec,
+			int __count);
+extern ssize_t __writev (int __fd, const struct iovec *__iovec,
+			 int __count);
+
+/* Used for p{read,write}{v64}v2 implementation.  */
+libc_hidden_proto (preadv)
+libc_hidden_proto (preadv64)
+libc_hidden_proto (pwritev)
+libc_hidden_proto (pwritev64)
+#endif
+#endif
diff --git a/REORG.TODO/include/sys/un.h b/REORG.TODO/include/sys/un.h
new file mode 100644
index 0000000000..bdbee99980
--- /dev/null
+++ b/REORG.TODO/include/sys/un.h
@@ -0,0 +1 @@
+#include <socket/sys/un.h>
diff --git a/REORG.TODO/include/sys/unistd.h b/REORG.TODO/include/sys/unistd.h
new file mode 100644
index 0000000000..8ca19e5516
--- /dev/null
+++ b/REORG.TODO/include/sys/unistd.h
@@ -0,0 +1 @@
+#include <posix/sys/unistd.h>
diff --git a/REORG.TODO/include/sys/utsname.h b/REORG.TODO/include/sys/utsname.h
new file mode 100644
index 0000000000..14f4247dd4
--- /dev/null
+++ b/REORG.TODO/include/sys/utsname.h
@@ -0,0 +1,14 @@
+#ifndef	_SYS_UTSNAME_H
+#include <posix/sys/utsname.h>
+
+#ifndef _ISOMAC
+extern int __uname (struct utsname *__name);
+
+libc_hidden_proto (uname)
+libc_hidden_proto (__uname)
+
+# if IS_IN (rtld)
+extern __typeof (__uname) __uname attribute_hidden;
+# endif
+#endif
+#endif
diff --git a/REORG.TODO/include/sys/vlimit.h b/REORG.TODO/include/sys/vlimit.h
new file mode 100644
index 0000000000..8a76d2fd00
--- /dev/null
+++ b/REORG.TODO/include/sys/vlimit.h
@@ -0,0 +1 @@
+#include <resource/sys/vlimit.h>
diff --git a/REORG.TODO/include/sys/vtimes.h b/REORG.TODO/include/sys/vtimes.h
new file mode 100644
index 0000000000..dd666ca443
--- /dev/null
+++ b/REORG.TODO/include/sys/vtimes.h
@@ -0,0 +1 @@
+#include <resource/sys/vtimes.h>
diff --git a/REORG.TODO/include/sys/wait.h b/REORG.TODO/include/sys/wait.h
new file mode 100644
index 0000000000..5ac9cd6ca6
--- /dev/null
+++ b/REORG.TODO/include/sys/wait.h
@@ -0,0 +1,19 @@
+#ifndef _SYS_WAIT_H
+#include <posix/sys/wait.h>
+
+#ifndef _ISOMAC
+/* Now define the internal interfaces.  */
+extern __pid_t __waitpid (__pid_t __pid, int *__stat_loc,
+			  int __options);
+libc_hidden_proto (__waitpid)
+extern int __waitid (idtype_t idtype, id_t id, siginfo_t *infop, int options);
+
+extern __pid_t __libc_wait (int *__stat_loc);
+extern __pid_t __wait (int *__stat_loc);
+extern __pid_t __wait3 (int *__stat_loc,
+			int __options, struct rusage * __usage);
+extern __pid_t __wait4 (__pid_t __pid, int *__stat_loc,
+			int __options, struct rusage *__usage)
+			attribute_hidden;
+#endif
+#endif
diff --git a/REORG.TODO/include/sys/xattr.h b/REORG.TODO/include/sys/xattr.h
new file mode 100644
index 0000000000..64f8f56809
--- /dev/null
+++ b/REORG.TODO/include/sys/xattr.h
@@ -0,0 +1 @@
+#include <misc/sys/xattr.h>
diff --git a/REORG.TODO/include/syscall.h b/REORG.TODO/include/syscall.h
new file mode 100644
index 0000000000..8c53cfb204
--- /dev/null
+++ b/REORG.TODO/include/syscall.h
@@ -0,0 +1 @@
+#include <misc/syscall.h>
diff --git a/REORG.TODO/include/sysexits.h b/REORG.TODO/include/sysexits.h
new file mode 100644
index 0000000000..139e3cfa13
--- /dev/null
+++ b/REORG.TODO/include/sysexits.h
@@ -0,0 +1 @@
+#include <misc/sysexits.h>
diff --git a/REORG.TODO/include/syslog.h b/REORG.TODO/include/syslog.h
new file mode 100644
index 0000000000..4cfb7723bb
--- /dev/null
+++ b/REORG.TODO/include/syslog.h
@@ -0,0 +1 @@
+#include <misc/syslog.h>
diff --git a/REORG.TODO/include/tar.h b/REORG.TODO/include/tar.h
new file mode 100644
index 0000000000..05efa1fc0e
--- /dev/null
+++ b/REORG.TODO/include/tar.h
@@ -0,0 +1 @@
+#include <posix/tar.h>
diff --git a/REORG.TODO/include/termios.h b/REORG.TODO/include/termios.h
new file mode 100644
index 0000000000..fad51f8385
--- /dev/null
+++ b/REORG.TODO/include/termios.h
@@ -0,0 +1,15 @@
+#ifndef _TERMIOS_H
+#include <termios/termios.h>
+
+#ifndef _ISOMAC
+/* Now define the internal interfaces.  */
+extern int __tcgetattr (int __fd, struct termios *__termios_p);
+
+extern int __libc_tcdrain (int __fd);
+
+libc_hidden_proto (tcsetattr)
+libc_hidden_proto (cfsetispeed)
+libc_hidden_proto (cfsetospeed)
+
+#endif
+#endif
diff --git a/REORG.TODO/include/tgmath.h b/REORG.TODO/include/tgmath.h
new file mode 100644
index 0000000000..3a2c4a2b2d
--- /dev/null
+++ b/REORG.TODO/include/tgmath.h
@@ -0,0 +1 @@
+#include <math/tgmath.h>
diff --git a/REORG.TODO/include/time.h b/REORG.TODO/include/time.h
new file mode 100644
index 0000000000..3a828e0420
--- /dev/null
+++ b/REORG.TODO/include/time.h
@@ -0,0 +1,106 @@
+#ifndef _TIME_H
+#include <time/time.h>
+
+#ifndef _ISOMAC
+# include <xlocale.h>
+
+extern __typeof (strftime_l) __strftime_l;
+libc_hidden_proto (__strftime_l)
+extern __typeof (strptime_l) __strptime_l;
+
+libc_hidden_proto (time)
+libc_hidden_proto (asctime)
+libc_hidden_proto (mktime)
+libc_hidden_proto (timelocal)
+libc_hidden_proto (localtime)
+libc_hidden_proto (strftime)
+libc_hidden_proto (strptime)
+
+extern __typeof (clock_getres) __clock_getres;
+extern __typeof (clock_gettime) __clock_gettime;
+libc_hidden_proto (__clock_gettime)
+extern __typeof (clock_settime) __clock_settime;
+extern __typeof (clock_nanosleep) __clock_nanosleep;
+extern __typeof (clock_getcpuclockid) __clock_getcpuclockid;
+
+/* Now define the internal interfaces.  */
+struct tm;
+
+/* Defined in mktime.c.  */
+extern const unsigned short int __mon_yday[2][13] attribute_hidden;
+
+/* Defined in localtime.c.  */
+extern struct tm _tmbuf attribute_hidden;
+
+/* Defined in tzset.c.  */
+extern char *__tzstring (const char *string);
+
+extern int __use_tzfile attribute_hidden;
+
+extern void __tzfile_read (const char *file, size_t extra,
+			   char **extrap);
+extern void __tzfile_compute (time_t timer, int use_localtime,
+			      long int *leap_correct, int *leap_hit,
+			      struct tm *tp);
+extern void __tzfile_default (const char *std, const char *dst,
+			      long int stdoff, long int dstoff);
+extern void __tzset_parse_tz (const char *tz);
+extern void __tz_compute (time_t timer, struct tm *tm, int use_localtime)
+     __THROW internal_function;
+
+/* Subroutine of `mktime'.  Return the `time_t' representation of TP and
+   normalize TP, given that a `struct tm *' maps to a `time_t' as performed
+   by FUNC.  Keep track of next guess for time_t offset in *OFFSET.  */
+extern time_t __mktime_internal (struct tm *__tp,
+				 struct tm *(*__func) (const time_t *,
+						       struct tm *),
+				 time_t *__offset);
+extern struct tm *__localtime_r (const time_t *__timer,
+				 struct tm *__tp) attribute_hidden;
+
+extern struct tm *__gmtime_r (const time_t *__restrict __timer,
+			      struct tm *__restrict __tp);
+libc_hidden_proto (__gmtime_r)
+
+/* Compute the `struct tm' representation of *T,
+   offset OFFSET seconds east of UTC,
+   and store year, yday, mon, mday, wday, hour, min, sec into *TP.
+   Return nonzero if successful.  */
+extern int __offtime (const time_t *__timer,
+		      long int __offset,
+		      struct tm *__tp);
+
+extern char *__asctime_r (const struct tm *__tp, char *__buf);
+extern void __tzset (void);
+
+/* Prototype for the internal function to get information based on TZ.  */
+extern struct tm *__tz_convert (const time_t *timer, int use_localtime, struct tm *tp);
+
+extern int __nanosleep (const struct timespec *__requested_time,
+			struct timespec *__remaining);
+libc_hidden_proto (__nanosleep)
+extern int __nanosleep_nocancel (const struct timespec *__requested_time,
+				 struct timespec *__remaining)
+  attribute_hidden;
+extern int __getdate_r (const char *__string, struct tm *__resbufp);
+
+
+/* Determine CLK_TCK value.  */
+extern int __getclktck (void);
+
+
+/* strptime support.  */
+extern char * __strptime_internal (const char *rp, const char *fmt,
+				   struct tm *tm, void *statep,
+				   __locale_t locparam)
+     internal_function;
+
+extern double __difftime (time_t time1, time_t time0);
+
+
+/* Use in the clock_* functions.  Size of the field representing the
+   actual clock ID.  */
+#define CLOCK_IDFIELD_SIZE	3
+
+#endif
+#endif
diff --git a/REORG.TODO/include/ttyent.h b/REORG.TODO/include/ttyent.h
new file mode 100644
index 0000000000..53a66681d2
--- /dev/null
+++ b/REORG.TODO/include/ttyent.h
@@ -0,0 +1,14 @@
+#ifndef	_TTYENT_H
+#include <misc/ttyent.h>
+
+# ifndef _ISOMAC
+
+extern __typeof (getttyent) __getttyent __THROW;
+libc_hidden_proto (__getttyent)
+extern __typeof (setttyent) __setttyent __THROW;
+libc_hidden_proto (__setttyent)
+extern __typeof (endttyent) __endttyent __THROW;
+libc_hidden_proto (__endttyent)
+
+# endif /* !_ISOMAC */
+#endif /* ttyent.h */
diff --git a/REORG.TODO/include/uchar.h b/REORG.TODO/include/uchar.h
new file mode 100644
index 0000000000..f456684706
--- /dev/null
+++ b/REORG.TODO/include/uchar.h
@@ -0,0 +1 @@
+#include <wcsmbs/uchar.h>
diff --git a/REORG.TODO/include/ucontext.h b/REORG.TODO/include/ucontext.h
new file mode 100644
index 0000000000..1b24661c94
--- /dev/null
+++ b/REORG.TODO/include/ucontext.h
@@ -0,0 +1 @@
+#include <stdlib/ucontext.h>
diff --git a/REORG.TODO/include/ulimit.h b/REORG.TODO/include/ulimit.h
new file mode 100644
index 0000000000..dd83faa049
--- /dev/null
+++ b/REORG.TODO/include/ulimit.h
@@ -0,0 +1,8 @@
+#ifndef _ULIMIT_H
+#include <resource/ulimit.h>
+
+#ifndef _ISOMAC
+/* Now define the internal interfaces.  */
+extern long int __ulimit (int __cmd, ...);
+#endif
+#endif
diff --git a/REORG.TODO/include/unistd.h b/REORG.TODO/include/unistd.h
new file mode 100644
index 0000000000..5b2a4147dc
--- /dev/null
+++ b/REORG.TODO/include/unistd.h
@@ -0,0 +1,193 @@
+#ifndef _UNISTD_H
+# include <posix/unistd.h>
+
+# ifndef _ISOMAC
+
+libc_hidden_proto (_exit, __noreturn__)
+rtld_hidden_proto (_exit, __noreturn__)
+libc_hidden_proto (alarm)
+libc_hidden_proto (confstr)
+libc_hidden_proto (execl)
+libc_hidden_proto (execle)
+libc_hidden_proto (execlp)
+libc_hidden_proto (execvp)
+libc_hidden_proto (getpid)
+libc_hidden_proto (getsid)
+libc_hidden_proto (getdomainname)
+extern __typeof (getlogin_r) __getlogin_r  __nonnull ((1));
+libc_hidden_proto (__getlogin_r)
+libc_hidden_proto (getlogin_r)
+libc_hidden_proto (seteuid)
+libc_hidden_proto (setegid)
+libc_hidden_proto (tcgetpgrp)
+libc_hidden_proto (readlinkat)
+
+/* Now define the internal interfaces.  */
+extern int __access (const char *__name, int __type);
+extern int __euidaccess (const char *__name, int __type);
+extern __off64_t __lseek64 (int __fd, __off64_t __offset, int __whence);
+extern __off_t __lseek (int __fd, __off_t __offset, int __whence);
+libc_hidden_proto (__lseek)
+extern __off_t __libc_lseek (int __fd, __off_t __offset, int __whence);
+extern __off64_t __libc_lseek64 (int __fd, __off64_t __offset, int __whence);
+extern ssize_t __pread (int __fd, void *__buf, size_t __nbytes,
+			__off_t __offset);
+libc_hidden_proto (__pread);
+extern ssize_t __libc_pread (int __fd, void *__buf, size_t __nbytes,
+			     __off_t __offset);
+extern ssize_t __pread64 (int __fd, void *__buf, size_t __nbytes,
+			  __off64_t __offset);
+libc_hidden_proto (__pread64);
+extern ssize_t __libc_pread64 (int __fd, void *__buf, size_t __nbytes,
+			       __off64_t __offset);
+extern ssize_t __pwrite (int __fd, const void *__buf, size_t __n,
+			 __off_t __offset);
+libc_hidden_proto (__pwrite)
+extern ssize_t __libc_pwrite (int __fd, const void *__buf, size_t __n,
+			      __off_t __offset);
+extern ssize_t __pwrite64 (int __fd, const void *__buf, size_t __n,
+			   __off64_t __offset);
+libc_hidden_proto (__pwrite64)
+extern ssize_t __libc_pwrite64 (int __fd, const void *__buf, size_t __n,
+				__off64_t __offset) attribute_hidden;
+extern ssize_t __libc_read (int __fd, void *__buf, size_t __n);
+libc_hidden_proto (__libc_read)
+libc_hidden_proto (read)
+extern ssize_t __libc_write (int __fd, const void *__buf, size_t __n);
+libc_hidden_proto (__libc_write)
+libc_hidden_proto (write)
+extern int __pipe (int __pipedes[2]);
+libc_hidden_proto (__pipe)
+extern int __pipe2 (int __pipedes[2], int __flags);
+extern unsigned int __sleep (unsigned int __seconds);
+extern int __chown (const char *__file,
+		    __uid_t __owner, __gid_t __group);
+libc_hidden_proto (__chown)
+extern int __fchown (int __fd,
+		     __uid_t __owner, __gid_t __group);
+extern int __lchown (const char *__file, __uid_t __owner,
+		     __gid_t __group);
+extern int __chdir (const char *__path);
+extern int __fchdir (int __fd);
+extern char *__getcwd (char *__buf, size_t __size);
+extern int __rmdir (const char *__path);
+extern int __execvpe (const char *file, char *const argv[],
+		      char *const envp[]);
+
+/* Get the canonical absolute name of the named directory, and put it in SIZE
+   bytes of BUF.  Returns NULL if the directory couldn't be determined or
+   SIZE was too small.  If successful, returns BUF.  In GNU, if BUF is
+   NULL, an array is allocated with `malloc'; the array is SIZE bytes long,
+   unless SIZE <= 0, in which case it is as big as necessary.  */
+
+char *__canonicalize_directory_name_internal (const char *__thisdir,
+					      char *__buf,
+					      size_t __size) attribute_hidden;
+
+extern int __dup (int __fd);
+libc_hidden_proto (__dup)
+extern int __dup2 (int __fd, int __fd2);
+libc_hidden_proto (__dup2)
+extern int __dup3 (int __fd, int __fd2, int flags);
+libc_hidden_proto (__dup3)
+extern int __execve (const char *__path, char *const __argv[],
+		     char *const __envp[]);
+extern long int __pathconf (const char *__path, int __name);
+extern long int __fpathconf (int __fd, int __name);
+extern long int __sysconf (int __name);
+libc_hidden_proto (__sysconf)
+extern __pid_t __getpid (void);
+libc_hidden_proto (__getpid)
+extern __pid_t __getppid (void);
+extern __pid_t __setsid (void);
+extern __uid_t __getuid (void);
+extern __uid_t __geteuid (void);
+extern __gid_t __getgid (void);
+extern __gid_t __getegid (void);
+extern int __getgroups (int __size, __gid_t __list[]);
+libc_hidden_proto (__getpgid)
+extern int __group_member (__gid_t __gid);
+extern int __setuid (__uid_t __uid);
+extern int __setreuid (__uid_t __ruid, __uid_t __euid);
+extern int __setgid (__gid_t __gid);
+extern int __setpgid (__pid_t __pid, __pid_t __pgid);
+libc_hidden_proto (__setpgid)
+extern int __setregid (__gid_t __rgid, __gid_t __egid);
+extern int __getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid);
+extern int __getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid);
+extern int __setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid);
+extern int __setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid);
+libc_hidden_proto (__getresuid)
+libc_hidden_proto (__getresgid)
+libc_hidden_proto (__setresuid)
+libc_hidden_proto (__setresgid)
+extern __pid_t __vfork (void);
+libc_hidden_proto (__vfork)
+extern int __ttyname_r (int __fd, char *__buf, size_t __buflen);
+extern int __isatty (int __fd);
+extern int __link (const char *__from, const char *__to);
+extern int __symlink (const char *__from, const char *__to);
+extern ssize_t __readlink (const char *__path, char *__buf, size_t __len);
+extern int __unlink (const char *__name);
+extern int __gethostname (char *__name, size_t __len);
+extern int __profil (unsigned short int *__sample_buffer, size_t __size,
+		     size_t __offset, unsigned int __scale);
+extern int __getdtablesize (void);
+extern int __brk (void *__addr);
+extern int __close (int __fd);
+libc_hidden_proto (__close)
+extern int __libc_close (int __fd);
+extern ssize_t __read (int __fd, void *__buf, size_t __nbytes);
+libc_hidden_proto (__read)
+extern ssize_t __write (int __fd, const void *__buf, size_t __n);
+libc_hidden_proto (__write)
+extern __pid_t __fork (void);
+libc_hidden_proto (__fork)
+extern int __getpagesize (void) __attribute__ ((__const__));
+libc_hidden_proto (__getpagesize)
+extern int __ftruncate (int __fd, __off_t __length);
+extern int __ftruncate64 (int __fd, __off64_t __length);
+extern int __truncate (const char *path, __off_t __length);
+extern void *__sbrk (intptr_t __delta);
+libc_hidden_proto (__sbrk)
+
+
+/* This variable is set nonzero at startup if the process's effective
+   IDs differ from its real IDs, or it is otherwise indicated that
+   extra security should be used.  When this is set the dynamic linker
+   and some functions contained in the C library ignore various
+   environment variables that normally affect them.  */
+extern int __libc_enable_secure attribute_relro;
+extern int __libc_enable_secure_decided;
+rtld_hidden_proto (__libc_enable_secure)
+
+
+/* Various internal function.  */
+extern void __libc_check_standard_fds (void) attribute_hidden;
+
+
+/* Internal name for fork function.  */
+extern __pid_t __libc_fork (void);
+
+/* Suspend the process until a signal arrives.
+   This always returns -1 and sets `errno' to EINTR.  */
+extern int __libc_pause (void);
+/* Not cancelable variant.  */
+extern int __pause_nocancel (void) attribute_hidden;
+
+extern int __getlogin_r_loginuid (char *name, size_t namesize)
+     attribute_hidden;
+
+#  if IS_IN (rtld)
+#   include <dl-unistd.h>
+#  endif
+
+#  if IS_IN (rtld) || !defined SHARED
+/* __access variant that does not set errno.  Used in very early initialization
+   code in libc.a and ld.so.  It follows access return semantics (zero for
+   sucess otherwise a value different than 0).  */
+extern __typeof (__access) __access_noerrno attribute_hidden;
+#  endif
+
+# endif
+#endif
diff --git a/REORG.TODO/include/utime.h b/REORG.TODO/include/utime.h
new file mode 100644
index 0000000000..5049251311
--- /dev/null
+++ b/REORG.TODO/include/utime.h
@@ -0,0 +1,9 @@
+#ifndef _UTIME_H
+
+#include <io/utime.h>
+
+#ifndef _ISOMAC
+libc_hidden_proto (utime)
+#endif
+
+#endif /* utime.h */
diff --git a/REORG.TODO/include/utmp.h b/REORG.TODO/include/utmp.h
new file mode 100644
index 0000000000..6b2e262362
--- /dev/null
+++ b/REORG.TODO/include/utmp.h
@@ -0,0 +1,24 @@
+#ifndef _UTMP_H
+#include <login/utmp.h>
+
+# ifndef _ISOMAC
+
+/* Now define the internal interfaces.  */
+extern void __updwtmp (const char *__wtmp_file, const struct utmp *__utmp);
+extern int __utmpname (const char *__file);
+extern struct utmp *__getutent (void);
+extern void __setutent (void);
+extern void __endutent (void);
+extern struct utmp *__getutid (const struct utmp *__id);
+extern struct utmp *__getutline (const struct utmp *__line);
+extern struct utmp *__pututline (const struct utmp *__utmp_ptr);
+extern int __getutent_r (struct utmp *__buffer, struct utmp **__result);
+extern int __getutid_r (const struct utmp *__id, struct utmp *__buffer,
+			struct utmp **__result);
+extern int __getutline_r (const struct utmp *__line,
+			  struct utmp *__buffer, struct utmp **__result);
+
+libutil_hidden_proto (login_tty)
+
+# endif /* !_ISOMAC */
+#endif
diff --git a/REORG.TODO/include/values.h b/REORG.TODO/include/values.h
new file mode 100644
index 0000000000..44cb5a0e62
--- /dev/null
+++ b/REORG.TODO/include/values.h
@@ -0,0 +1,68 @@
+/* Old compatibility names for <limits.h> and <float.h> constants.
+   Copyright (C) 1995-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/>.  */
+
+/* This interface is obsolete.  New programs should use
+   <limits.h> and/or <float.h> instead of <values.h>.  */
+
+#ifndef	_VALUES_H
+#define	_VALUES_H	1
+
+#include <features.h>
+
+#include <limits.h>
+
+#define _TYPEBITS(type)	(sizeof (type) * CHAR_BIT)
+
+#define CHARBITS	_TYPEBITS (char)
+#define SHORTBITS	_TYPEBITS (short int)
+#define INTBITS		_TYPEBITS (int)
+#define LONGBITS	_TYPEBITS (long int)
+#define PTRBITS		_TYPEBITS (char *)
+#define DOUBLEBITS	_TYPEBITS (double)
+#define FLOATBITS	_TYPEBITS (float)
+
+#define MINSHORT	SHRT_MIN
+#define	MININT		INT_MIN
+#define	MINLONG		LONG_MIN
+
+#define	MAXSHORT	SHRT_MAX
+#define	MAXINT		INT_MAX
+#define	MAXLONG		LONG_MAX
+
+#define HIBITS		MINSHORT
+#define HIBITL		MINLONG
+
+
+#include <float.h>
+
+#define	MAXDOUBLE	DBL_MAX
+#define	MAXFLOAT	FLT_MAX
+#define	MINDOUBLE	DBL_MIN
+#define	MINFLOAT	FLT_MIN
+#define	DMINEXP		DBL_MIN_EXP
+#define	FMINEXP		FLT_MIN_EXP
+#define	DMAXEXP		DBL_MAX_EXP
+#define	FMAXEXP		FLT_MAX_EXP
+
+
+#ifdef __USE_MISC
+/* Some systems define this name instead of CHAR_BIT or CHARBITS.  */
+# define BITSPERBYTE	CHAR_BIT
+#endif
+
+#endif	/* values.h */
diff --git a/REORG.TODO/include/wchar.h b/REORG.TODO/include/wchar.h
new file mode 100644
index 0000000000..cf76709901
--- /dev/null
+++ b/REORG.TODO/include/wchar.h
@@ -0,0 +1,220 @@
+#ifndef _WCHAR_H
+# include <wcsmbs/wchar.h>
+# ifndef _ISOMAC
+
+extern __typeof (wcscasecmp_l) __wcscasecmp_l;
+extern __typeof (wcsncasecmp_l) __wcsncasecmp_l;
+extern __typeof (wcscoll_l) __wcscoll_l;
+extern __typeof (wcsxfrm_l) __wcsxfrm_l;
+extern __typeof (wcstol_l) __wcstol_l;
+extern __typeof (wcstoul_l) __wcstoul_l;
+extern __typeof (wcstoll_l) __wcstoll_l;
+extern __typeof (wcstoull_l) __wcstoull_l;
+extern __typeof (wcstod_l) __wcstod_l;
+extern __typeof (wcstof_l) __wcstof_l;
+extern __typeof (wcstold_l) __wcstold_l;
+extern __typeof (wcsftime_l) __wcsftime_l;
+libc_hidden_proto (__wcstol_l)
+libc_hidden_proto (__wcstoul_l)
+libc_hidden_proto (__wcstoll_l)
+libc_hidden_proto (__wcstoull_l)
+libc_hidden_proto (__wcstod_l)
+libc_hidden_proto (__wcstof_l)
+libc_hidden_proto (__wcstold_l)
+libc_hidden_proto (__wcsftime_l)
+
+
+extern double __wcstod_internal (const wchar_t *__restrict __nptr,
+				 wchar_t **__restrict __endptr, int __group)
+     __THROW;
+extern float __wcstof_internal (const wchar_t *__restrict __nptr,
+				wchar_t **__restrict __endptr, int __group)
+     __THROW;
+extern long double __wcstold_internal (const wchar_t *__restrict __nptr,
+				       wchar_t **__restrict __endptr,
+				       int __group) __THROW;
+extern long int __wcstol_internal (const wchar_t *__restrict __nptr,
+				   wchar_t **__restrict __endptr,
+				   int __base, int __group) __THROW;
+extern unsigned long int __wcstoul_internal (const wchar_t *__restrict __npt,
+					     wchar_t **__restrict __endptr,
+					     int __base, int __group) __THROW;
+__extension__
+extern long long int __wcstoll_internal (const wchar_t *__restrict __nptr,
+					 wchar_t **__restrict __endptr,
+					 int __base, int __group) __THROW;
+__extension__
+extern unsigned long long int __wcstoull_internal (const wchar_t *
+						   __restrict __nptr,
+						   wchar_t **
+						   __restrict __endptr,
+						   int __base,
+						   int __group) __THROW;
+extern unsigned long long int ____wcstoull_l_internal (const wchar_t *,
+						       wchar_t **, int, int,
+						       __locale_t);
+libc_hidden_proto (__wcstof_internal)
+libc_hidden_proto (__wcstod_internal)
+libc_hidden_proto (__wcstold_internal)
+libc_hidden_proto (__wcstol_internal)
+libc_hidden_proto (__wcstoll_internal)
+libc_hidden_proto (__wcstoul_internal)
+libc_hidden_proto (__wcstoull_internal)
+libc_hidden_proto (wcstof)
+libc_hidden_proto (wcstod)
+libc_hidden_proto (wcstold)
+libc_hidden_proto (wcstol)
+libc_hidden_proto (wcstoll)
+libc_hidden_proto (wcstoul)
+libc_hidden_proto (wcstoull)
+
+libc_hidden_proto (__wcscasecmp_l)
+libc_hidden_proto (__wcsncasecmp_l)
+
+libc_hidden_proto (__wcscoll_l)
+libc_hidden_proto (__wcsxfrm_l)
+
+libc_hidden_proto (fputws_unlocked)
+libc_hidden_proto (putwc_unlocked)
+libc_hidden_proto (putwc)
+
+libc_hidden_proto (vswscanf)
+
+libc_hidden_proto (mbrtowc)
+libc_hidden_proto (wcrtomb)
+extern int __wcscmp (const wchar_t *__s1, const wchar_t *__s2)
+     __THROW __attribute_pure__;
+libc_hidden_proto (__wcscmp)
+libc_hidden_proto (wcsftime)
+libc_hidden_proto (wcsspn)
+libc_hidden_proto (wcschr)
+/* The C++ overloading of wcschr means we have to repeat the type to
+   declare __wcschr instead of using typeof, to avoid errors in C++
+   tests; in addition, __THROW cannot be used with a function type
+   from typeof in C++.  The same applies to __wmemchr and, as regards
+   __THROW, to __wcscmp and __wcscoll.  */
+extern wchar_t *__wcschr (const wchar_t *__wcs, wchar_t __wc)
+     __THROW __attribute_pure__;
+libc_hidden_proto (__wcschr)
+extern int __wcscoll (const wchar_t *__s1, const wchar_t *__s2) __THROW;
+libc_hidden_proto (__wcscoll)
+libc_hidden_proto (wcspbrk)
+
+extern __typeof (wmemset) __wmemset;
+extern wchar_t *__wmemchr (const wchar_t *__s, wchar_t __c, size_t __n)
+     __THROW __attribute_pure__;
+libc_hidden_proto (wmemchr)
+libc_hidden_proto (__wmemchr)
+libc_hidden_proto (wmemset)
+libc_hidden_proto (__wmemset)
+
+/* Now define the internal interfaces.  */
+extern int __wcscasecmp (const wchar_t *__s1, const wchar_t *__s2)
+     __attribute_pure__;
+extern int __wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2,
+			  size_t __n)
+     __attribute_pure__;
+extern size_t __wcslen (const wchar_t *__s) __attribute_pure__;
+extern size_t __wcsnlen (const wchar_t *__s, size_t __maxlen)
+     __attribute_pure__;
+extern wchar_t *__wcscat (wchar_t *dest, const wchar_t *src);
+extern wint_t __btowc (int __c);
+extern int __mbsinit (const __mbstate_t *__ps);
+extern size_t __mbrtowc (wchar_t *__restrict __pwc,
+			 const char *__restrict __s, size_t __n,
+			 __mbstate_t *__restrict __p);
+libc_hidden_proto (__mbrtowc)
+libc_hidden_proto (__mbrlen)
+extern size_t __wcrtomb (char *__restrict __s, wchar_t __wc,
+			 __mbstate_t *__restrict __ps);
+extern size_t __mbsrtowcs (wchar_t *__restrict __dst,
+			   const char **__restrict __src,
+			   size_t __len, __mbstate_t *__restrict __ps);
+extern size_t __wcsrtombs (char *__restrict __dst,
+			   const wchar_t **__restrict __src,
+			   size_t __len, __mbstate_t *__restrict __ps);
+extern size_t __mbsnrtowcs (wchar_t *__restrict __dst,
+			    const char **__restrict __src, size_t __nmc,
+			    size_t __len, __mbstate_t *__restrict __ps);
+extern size_t __wcsnrtombs (char *__restrict __dst,
+			    const wchar_t **__restrict __src,
+			    size_t __nwc, size_t __len,
+			    __mbstate_t *__restrict __ps);
+extern wchar_t *__wcsncpy (wchar_t *__restrict __dest,
+			   const wchar_t *__restrict __src, size_t __n);
+extern wchar_t *__wcpcpy (wchar_t *__dest, const wchar_t *__src);
+extern wchar_t *__wcpncpy (wchar_t *__dest, const wchar_t *__src,
+			   size_t __n);
+extern wchar_t *__wmemcpy (wchar_t *__s1, const wchar_t *s2,
+			   size_t __n);
+extern wchar_t *__wmempcpy (wchar_t *__restrict __s1,
+			    const wchar_t *__restrict __s2,
+			    size_t __n);
+extern wchar_t *__wmemmove (wchar_t *__s1, const wchar_t *__s2,
+			    size_t __n);
+extern wchar_t *__wcschrnul (const wchar_t *__s, wchar_t __wc)
+     __attribute_pure__;
+
+extern wchar_t *__wmemset_chk (wchar_t *__s, wchar_t __c, size_t __n,
+			       size_t __ns) __THROW;
+
+extern int __vfwscanf (__FILE *__restrict __s,
+		       const wchar_t *__restrict __format,
+		       __gnuc_va_list __arg)
+     /* __attribute__ ((__format__ (__wscanf__, 2, 0)) */;
+extern int __vswprintf (wchar_t *__restrict __s, size_t __n,
+			const wchar_t *__restrict __format,
+			__gnuc_va_list __arg)
+     /* __attribute__ ((__format__ (__wprintf__, 3, 0))) */;
+extern int __fwprintf (__FILE *__restrict __s,
+		       const wchar_t *__restrict __format, ...)
+     /* __attribute__ ((__format__ (__wprintf__, 2, 3))) */;
+extern int __vfwprintf (__FILE *__restrict __s,
+			const wchar_t *__restrict __format,
+			__gnuc_va_list __arg)
+     /* __attribute__ ((__format__ (__wprintf__, 2, 0))) */;
+extern int __vfwprintf_chk (FILE *__restrict __s, int __flag,
+			    const wchar_t *__restrict __format,
+			    __gnuc_va_list __arg)
+     /* __attribute__ ((__format__ (__wprintf__, 3, 0))) */;
+extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n,
+			    int __flag, size_t __s_len,
+			    const wchar_t *__restrict __format,
+			    __gnuc_va_list __arg)
+     /* __attribute__ ((__format__ (__wprintf__, 5, 0))) */;
+libc_hidden_proto (__vfwprintf_chk)
+libc_hidden_proto (__vswprintf_chk)
+
+extern int __isoc99_fwscanf (__FILE *__restrict __stream,
+			     const wchar_t *__restrict __format, ...);
+extern int __isoc99_wscanf (const wchar_t *__restrict __format, ...);
+extern int __isoc99_swscanf (const wchar_t *__restrict __s,
+			     const wchar_t *__restrict __format, ...)
+     __THROW;
+extern int __isoc99_vfwscanf (__FILE *__restrict __s,
+			      const wchar_t *__restrict __format,
+			      __gnuc_va_list __arg);
+extern int __isoc99_vwscanf (const wchar_t *__restrict __format,
+			     __gnuc_va_list __arg);
+extern int __isoc99_vswscanf (const wchar_t *__restrict __s,
+			      const wchar_t *__restrict __format,
+			      __gnuc_va_list __arg) __THROW;
+extern int __vswscanf (const wchar_t *__restrict __s,
+		       const wchar_t *__restrict __format,
+		       __gnuc_va_list __arg) __THROW;
+libc_hidden_proto (__isoc99_vswscanf)
+libc_hidden_proto (__vswscanf)
+libc_hidden_proto (__isoc99_vfwscanf)
+
+/* Internal functions.  */
+extern size_t __mbsrtowcs_l (wchar_t *dst, const char **src, size_t len,
+			     mbstate_t *ps, __locale_t l) attribute_hidden;
+
+/* Special version.  We know that all uses of mbsinit inside the libc
+   have a non-NULL parameter.  And certainly we can access the
+   internals of the data structure directly.  */
+#  define mbsinit(state) ((state)->__count == 0)
+#  define __mbsinit(state) ((state)->__count == 0)
+
+# endif
+#endif
diff --git a/REORG.TODO/include/wctype.h b/REORG.TODO/include/wctype.h
new file mode 100644
index 0000000000..5fd3f863ae
--- /dev/null
+++ b/REORG.TODO/include/wctype.h
@@ -0,0 +1,74 @@
+#ifndef _WCTYPE_H
+#include <wctype/wctype.h>
+
+#ifndef _ISOMAC
+
+libc_hidden_proto (iswalpha)
+libc_hidden_proto (iswalnum)
+libc_hidden_proto (iswdigit)
+libc_hidden_proto (iswlower)
+libc_hidden_proto (iswspace)
+libc_hidden_proto (iswxdigit)
+libc_hidden_proto (towlower)
+libc_hidden_proto (towupper)
+
+/* Internal interfaces.  */
+extern int __iswspace (wint_t __wc);
+extern int __iswctype (wint_t __wc, wctype_t __desc);
+extern wctype_t __wctype (const char *__property);
+extern wctrans_t __wctrans (const char *__property);
+extern wint_t __towctrans (wint_t __wc, wctrans_t __desc);
+
+extern __typeof (iswalnum) __iswalnum __THROW __attribute_pure__;
+extern __typeof (iswalnum_l) __iswalnum_l;
+extern __typeof (iswalpha_l) __iswalpha_l;
+extern __typeof (iswblank_l) __iswblank_l;
+extern __typeof (iswcntrl_l) __iswcntrl_l;
+extern __typeof (iswdigit_l) __iswdigit_l;
+extern __typeof (iswlower) __iswlower __THROW __attribute_pure__;
+extern __typeof (iswlower_l) __iswlower_l;
+extern __typeof (iswgraph_l) __iswgraph_l;
+extern __typeof (iswprint_l) __iswprint_l;
+extern __typeof (iswpunct_l) __iswpunct_l;
+extern __typeof (iswspace_l) __iswspace_l;
+extern __typeof (iswupper_l) __iswupper_l;
+extern __typeof (iswxdigit_l) __iswxdigit_l;
+extern __typeof (towlower_l) __towlower_l;
+extern __typeof (towupper_l) __towupper_l;
+extern __typeof (towlower) __towlower __THROW __attribute_pure__;
+extern __typeof (towupper) __towupper __THROW __attribute_pure__;
+
+libc_hidden_proto (__towctrans)
+libc_hidden_proto (__iswctype)
+libc_hidden_proto (__iswalnum)
+libc_hidden_proto (__iswalnum_l)
+libc_hidden_proto (__iswalpha_l)
+libc_hidden_proto (__iswblank_l)
+libc_hidden_proto (__iswcntrl_l)
+libc_hidden_proto (__iswdigit_l)
+libc_hidden_proto (__iswlower)
+libc_hidden_proto (__iswlower_l)
+libc_hidden_proto (__iswgraph_l)
+libc_hidden_proto (__iswprint_l)
+libc_hidden_proto (__iswpunct_l)
+libc_hidden_proto (__iswspace_l)
+libc_hidden_proto (__iswupper_l)
+libc_hidden_proto (__iswxdigit_l)
+libc_hidden_proto (__towlower_l)
+libc_hidden_proto (__towupper_l)
+libc_hidden_proto (__towlower)
+libc_hidden_proto (__towupper)
+
+/* The spec says that isdigit must only match the decimal digits.  We
+   can check this without a memory access.  */
+# if IS_IN (libc)
+#  undef iswdigit
+#  define iswdigit(c) ({ wint_t __c = (c); __c >= L'0' && __c <= L'9'; })
+#  undef iswdigit_l
+#  define iswdigit_l(c, l) ({ wint_t __c = (c); __c >= L'0' && __c <= L'9'; })
+#  undef __iswdigit_l
+#  define __iswdigit_l(c, l) ({ wint_t __c = (c); __c >= L'0' && __c <= L'9'; })
+# endif
+
+#endif
+#endif
diff --git a/REORG.TODO/include/wordexp.h b/REORG.TODO/include/wordexp.h
new file mode 100644
index 0000000000..33c90c15c0
--- /dev/null
+++ b/REORG.TODO/include/wordexp.h
@@ -0,0 +1,9 @@
+#ifndef _WORDEXP_H
+
+#include <posix/wordexp.h>
+
+#ifndef _ISOMAC
+libc_hidden_proto (wordfree)
+#endif
+
+#endif
diff --git a/REORG.TODO/include/xlocale.h b/REORG.TODO/include/xlocale.h
new file mode 100644
index 0000000000..5280ef0bc4
--- /dev/null
+++ b/REORG.TODO/include/xlocale.h
@@ -0,0 +1 @@
+#include <locale/xlocale.h>