about summary refs log tree commit diff
path: root/REORG.TODO/sysdeps/unix/sysv/linux/hppa
diff options
context:
space:
mode:
Diffstat (limited to 'REORG.TODO/sysdeps/unix/sysv/linux/hppa')
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/Implies1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/Makefile4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/Versions38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/arch-fork.h32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/atomic-machine.h94
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/epoll.h27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/errno.h66
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/eventfd.h31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h85
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/inotify.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/ioctls.h36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/ipc.h62
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/mman.h111
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/msq.h84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/sem.h91
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/shm.h107
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h81
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/signalfd.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/signum.h89
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/timerfd.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/brk.c41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/clone.S161
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/fcntl.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/fxstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/fxstatat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/getcontext.S165
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/getdents64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/internaltypes.h84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/ipc_priv.h21
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel-features.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel_sigaction.h18
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel_stat.h34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/ld.abilist12
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/libc.abilist2174
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/libdl.abilist14
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/libm.abilist433
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/libnsl.abilist124
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/libpthread.abilist245
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/libresolv.abilist100
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/librt.abilist47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/libthread_db.abilist44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/localplt.data24
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/lxstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/makecontext.c99
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/profil-counter.h24
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/pt-vfork.S79
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread.h1203
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthreadP.h16
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_broadcast.c40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_destroy.c40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_init.c40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_signal.c40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_wait.c53
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/setcontext.S158
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/shlib-versions9
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/swapcontext.c42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/procfs.h118
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/user.h1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/syscall.c65
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/syscalls.list16
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h279
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep.c29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep.h512
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/ucontext_i.sym59
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/umount.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/utimes.c30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/xstat.c1
75 files changed, 8113 insertions, 0 deletions
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/Implies
new file mode 100644
index 0000000000..c3d145cb44
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/Implies
@@ -0,0 +1 @@
+hppa/nptl
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/Makefile
new file mode 100644
index 0000000000..68569013fb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/Makefile
@@ -0,0 +1,4 @@
+# Used by *context() functions
+ifeq ($(subdir),stdlib)
+gen-as-const-headers += ucontext_i.sym
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/Versions
new file mode 100644
index 0000000000..b5098b2171
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/Versions
@@ -0,0 +1,38 @@
+libc {
+  # The comment lines with "#errlist-compat" are magic; see errlist-compat.awk.
+  # When you get an error from errlist-compat.awk, you need to add a new
+  # version here.  Don't do this blindly, since this means changing the ABI
+  # for all GNU/Linux configurations.
+
+  GLIBC_2.1 {
+    #errlist-compat	253
+    _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+  }
+  GLIBC_2.2 {
+    # New rlimit interface
+    getrlimit; setrlimit; getrlimit64; setrlimit64;
+  }
+  GLIBC_2.3 {
+    #errlist-compat	254
+    _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+  }
+  GLIBC_2.4 {
+    #errlist-compat	256
+    _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+  }
+  GLIBC_2.11 {
+    fallocate64;
+  }
+  GLIBC_2.12 {
+    #errlist-compat	257
+    _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+  }
+  GLIBC_2.17 {
+    #errlist-compat	260
+    _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+    prlimit64;
+  }
+  GLIBC_2.19 {
+    fanotify_mark;
+  }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c
new file mode 100644
index 0000000000..48aaeb36c9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c
@@ -0,0 +1,47 @@
+/* Copyright (C) 2009-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 General Public License
+   along with GCC; see the file COPYING.  If not, write to the Free
+   Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301, USA.  */
+
+#include <stdio.h>
+#include <signal.h>
+#include <sysdep.h>
+#define __longjmp ____longjmp_chk
+#define CHECK_SP(sp)							\
+  do {									\
+    register unsigned long this_sp asm ("r30");				\
+    /* The stack grows up, therefore frames that were created and then	\
+       destroyed must all have stack values higher than ours.  */	\
+    if ((unsigned long) (sp) > this_sp)					\
+      {									\
+        stack_t oss;							\
+        INTERNAL_SYSCALL_DECL (err);					\
+        int result = INTERNAL_SYSCALL (sigaltstack, err, 2, NULL, &oss);\
+	/* If we aren't using an alternate stack then we have already	\
+	   shown that we are jumping to a frame that doesn't exist so	\
+	   error out. If we are using an alternate stack we must prove	\
+	   that we are jumping *out* of the alternate stack. Note that	\
+	   the check for that is the same as that for _STACK_GROWS_UP	\
+	   as for _STACK_GROWS_DOWN.  */				\
+        if (!INTERNAL_SYSCALL_ERROR_P (result, err)			\
+            && ((oss.ss_flags & SS_ONSTACK) == 0			\
+                || ((unsigned long) oss.ss_sp + oss.ss_size		\
+                    - (unsigned long) (sp)) < oss.ss_size))		\
+          __fortify_fail ("longjmp causes uninitialized stack frame");	\
+      }									\
+  } while (0)
+
+#include <__longjmp.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/arch-fork.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/arch-fork.h
new file mode 100644
index 0000000000..108305417d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/arch-fork.h
@@ -0,0 +1,32 @@
+/* ARCH_FORK definition for Linux fork implementation.  HPPA version.
+   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <sched.h>
+#include <signal.h>
+#include <sysdep.h>
+#include <tls.h>
+
+/* Argument 1 - Clone flags.
+            2 - Child stack pointer.
+	    3 - Parent tid pointer.
+	    4 - New TLS area pointer.
+	    5 - Child tid pointer. */
+#define ARCH_FORK() \
+  INLINE_SYSCALL (clone, 5,						\
+		  CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD,	\
+                  NULL, NULL, NULL, &THREAD_SELF->tid)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/atomic-machine.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/atomic-machine.h
new file mode 100644
index 0000000000..59581bd4bc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/atomic-machine.h
@@ -0,0 +1,94 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Carlos O'Donell <carlos@baldric.uwo.ca>, 2005.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdint.h> /*  Required for type definitions e.g. uint8_t.  */
+
+#ifndef _ATOMIC_MACHINE_H
+#define _ATOMIC_MACHINE_H	1
+
+typedef int8_t atomic8_t;
+typedef uint8_t uatomic8_t;
+typedef int_fast8_t atomic_fast8_t;
+typedef uint_fast8_t uatomic_fast8_t;
+
+typedef int32_t atomic32_t;
+typedef uint32_t uatomic32_t;
+typedef int_fast32_t atomic_fast32_t;
+typedef uint_fast32_t uatomic_fast32_t;
+
+typedef intptr_t atomicptr_t;
+typedef uintptr_t uatomicptr_t;
+typedef intmax_t atomic_max_t;
+typedef uintmax_t uatomic_max_t;
+
+#define __HAVE_64B_ATOMICS 0
+#define USE_ATOMIC_COMPILER_BUILTINS 0
+
+/* XXX Is this actually correct?  */
+#define ATOMIC_EXCHANGE_USES_CAS 1
+
+/* prev = *addr;
+   if (prev == old)
+     *addr = new;
+   return prev; */
+
+/* Use the kernel atomic light weight syscalls on hppa.  */
+#define _LWS "0xb0"
+#define _LWS_CAS "0"
+/* Note r31 is the link register.  */
+#define _LWS_CLOBBER "r1", "r23", "r22", "r20", "r31", "memory"
+/* String constant for -EAGAIN.  */
+#define _ASM_EAGAIN "-11"
+/* String constant for -EDEADLOCK.  */
+#define _ASM_EDEADLOCK "-45"
+
+/* The only basic operation needed is compare and exchange.  The mem
+   pointer must be word aligned.  We no longer loop on deadlock.  */
+#define atomic_compare_and_exchange_val_acq(mem, newval, oldval)	\
+  ({									\
+     register long lws_errno asm("r21");				\
+     register unsigned long lws_ret asm("r28");				\
+     register unsigned long lws_mem asm("r26") = (unsigned long)(mem);	\
+     register unsigned long lws_old asm("r25") = (unsigned long)(oldval);\
+     register unsigned long lws_new asm("r24") = (unsigned long)(newval);\
+     __asm__ __volatile__(						\
+	"0:					\n\t"			\
+	"ble	" _LWS "(%%sr2, %%r0)		\n\t"			\
+	"ldi	" _LWS_CAS ", %%r20		\n\t"			\
+	"cmpiclr,<> " _ASM_EAGAIN ", %%r21, %%r0\n\t"			\
+	"b,n 0b					\n\t"			\
+	"cmpclr,= %%r0, %%r21, %%r0		\n\t"			\
+	"iitlbp %%r0,(%%sr0, %%r0)		\n\t"			\
+	: "=r" (lws_ret), "=r" (lws_errno)				\
+	: "r" (lws_mem), "r" (lws_old), "r" (lws_new)			\
+	: _LWS_CLOBBER							\
+     );									\
+									\
+     (__typeof (oldval)) lws_ret;					\
+   })
+
+#define atomic_compare_and_exchange_bool_acq(mem, newval, oldval)	\
+  ({									\
+     __typeof__ (*mem) ret;						\
+     ret = atomic_compare_and_exchange_val_acq(mem, newval, oldval);	\
+     /* Return 1 if it was already acquired.  */			\
+     (ret != oldval);							\
+   })
+
+#endif
+/* _ATOMIC_MACHINE_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/epoll.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/epoll.h
new file mode 100644
index 0000000000..0ba399dd2b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/epoll.h
@@ -0,0 +1,27 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef	_SYS_EPOLL_H
+# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead."
+#endif
+
+/* Flags to be passed to epoll_create1.  */
+enum
+  {
+    EPOLL_CLOEXEC = 010000000
+#define EPOLL_CLOEXEC EPOLL_CLOEXEC
+  };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/errno.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/errno.h
new file mode 100644
index 0000000000..ce6bebe8b0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/errno.h
@@ -0,0 +1,66 @@
+/* Error constants.  Linux/HPPA specific version.
+   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/>.  */
+
+#ifdef _ERRNO_H
+
+# undef EDOM
+# undef EILSEQ
+# undef ERANGE
+# include <linux/errno.h>
+
+/* Linux also has no ECANCELED error code.  Since it is not used here
+   we define it to an invalid value.  */
+# ifndef ECANCELED
+#  define ECANCELED	ECANCELLED
+# endif
+
+# ifndef EOWNERDEAD
+#  define EOWNERDEAD		254
+# endif
+
+# ifndef ENOTRECOVERABLE
+#  define ENOTRECOVERABLE	255
+# endif
+
+# ifndef ERFKILL
+#  define ERFKILL		256
+# endif
+
+# ifndef EHWPOISON
+#  define EHWPOISON		257
+# endif
+
+# ifndef __ASSEMBLER__
+/* Function to get address of global `errno' variable.  */
+extern int *__errno_location (void) __THROW __attribute__ ((__const__));
+
+#  if !defined _LIBC || defined _LIBC_REENTRANT
+/* When using threads, errno is a per-thread value.  */
+#   define errno (*__errno_location ())
+#  endif
+# endif /* !__ASSEMBLER__ */
+#endif /* _ERRNO_H */
+
+#if !defined _ERRNO_H && defined __need_Emath
+/* This is ugly but the kernel header is not clean enough.  We must
+   define only the values EDOM, EILSEQ and ERANGE in case __need_Emath is
+   defined.  */
+# define EDOM	33	/* Math argument out of domain of function.  */
+# define EILSEQ	47	/* Illegal byte sequence.  */
+# define ERANGE	34	/* Math result not representable.  */
+#endif /* !_ERRNO_H && __need_Emath */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/eventfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/eventfd.h
new file mode 100644
index 0000000000..aaed52f736
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/eventfd.h
@@ -0,0 +1,31 @@
+/* Copyright (C) 2007-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_EVENTFD_H
+# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
+#endif
+
+/* Flags for eventfd.  */
+enum
+  {
+    EFD_SEMAPHORE = 1,
+#define EFD_SEMAPHORE EFD_SEMAPHORE
+    EFD_CLOEXEC = 010000000,
+#define EFD_CLOEXEC EFD_CLOEXEC
+    EFD_NONBLOCK = 00200004 /* HPUX has separate NDELAY & NONBLOCK */
+#define EFD_NONBLOCK EFD_NONBLOCK
+  };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h
new file mode 100644
index 0000000000..2bd799883d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h
@@ -0,0 +1,85 @@
+/* O_*, F_*, FD_* bit values for Linux.
+   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	_FCNTL_H
+# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
+#endif
+
+#define O_CREAT		00000400 /* not fcntl */
+#define O_EXCL		00002000 /* not fcntl */
+#define O_NOCTTY	00400000 /* not fcntl */
+#define O_APPEND	00000010
+#define O_NONBLOCK	00200004 /* HPUX has separate NDELAY & NONBLOCK */
+#define __O_DSYNC	01000000
+#define __O_RSYNC	02000000 /* HPUX only */
+#define __O_SYNC	00100000
+#define O_SYNC		(__O_SYNC|__O_DSYNC)
+
+#define O_BLKSEEK	00000100 /* HPUX only */
+
+#define __O_DIRECTORY	000010000 /* Must be a directory.  */
+#define __O_NOFOLLOW	000000200 /* Do not follow links.  */
+#define __O_CLOEXEC	010000000 /* Set close_on_exec.  */
+#define __O_NOATIME	004000000 /* Do not set atime.  */
+#define __O_PATH        020000000
+#define __O_TMPFILE     040010000 /* Atomically create nameless file. */
+
+#define __O_LARGEFILE	00004000
+
+#define F_GETLK64	8	/* Get record locking info.  */
+#define F_SETLK64	9	/* Set record locking info (non-blocking).  */
+#define F_SETLKW64	10	/* Set record locking info (blocking).  */
+
+#define __F_GETOWN	11	/* Get owner of socket (receiver of SIGIO).  */
+#define __F_SETOWN	12	/* Set owner of socket (receiver of SIGIO).  */
+
+#define __F_SETSIG	13	/* Set number of signal to be sent.  */
+#define __F_GETSIG	14	/* Get number of signal to be sent.  */
+
+/* For posix fcntl() and `l_type' field of a `struct flock' for lockf().  */
+#define F_RDLCK		1	/* Read lock.  */
+#define F_WRLCK		2	/* Write lock.  */
+#define F_UNLCK		3	/* Remove lock.  */
+
+struct flock
+  {
+    short int l_type;	/* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.	*/
+    short int l_whence;	/* Where `l_start' is relative to (like `lseek').  */
+#ifndef __USE_FILE_OFFSET64
+    __off_t l_start;	/* Offset where the lock begins.  */
+    __off_t l_len;	/* Size of the locked area; zero means until EOF.  */
+#else
+    __off64_t l_start;	/* Offset where the lock begins.  */
+    __off64_t l_len;	/* Size of the locked area; zero means until EOF.  */
+#endif
+    __pid_t l_pid;	/* Process holding the lock.  */
+  };
+
+#ifdef __USE_LARGEFILE64
+struct flock64
+  {
+    short int l_type;	/* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.	*/
+    short int l_whence;	/* Where `l_start' is relative to (like `lseek').  */
+    __off64_t l_start;	/* Offset where the lock begins.  */
+    __off64_t l_len;	/* Size of the locked area; zero means until EOF.  */
+    __pid_t l_pid;	/* Process holding the lock.  */
+  };
+#endif
+
+/* Include generic Linux declarations.  */
+#include <bits/fcntl-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/inotify.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/inotify.h
new file mode 100644
index 0000000000..dfe5c8497c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/inotify.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2005-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_INOTIFY_H
+# error "Never use <bits/inotify.h> directly; include <sys/inotify.h> instead."
+#endif
+
+/* Flags for the parameter of inotify_init1.  */
+enum
+  {
+    IN_CLOEXEC = 010000000,
+#define IN_CLOEXEC IN_CLOEXEC
+    IN_NONBLOCK = 000200004 /* HPUX has separate NDELAY & NONBLOCK */
+#define IN_NONBLOCK IN_NONBLOCK
+  };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/ioctls.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/ioctls.h
new file mode 100644
index 0000000000..f81e67017b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/ioctls.h
@@ -0,0 +1,36 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _SYS_IOCTL_H
+# error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
+#endif
+
+/* Use the definitions from the kernel header files.  */
+#include <asm/ioctls.h>
+
+/* Oh well, this is necessary since the kernel data structure is
+   different from the user-level version.  */
+#undef  TCGETS
+#undef  TCSETS
+#undef  TCSETSW
+#undef  TCSETSF
+#define TCGETS	_IOR ('T', 16, char[36])
+#define TCSETS	_IOW ('T', 17, char[36])
+#define TCSETSW	_IOW ('T', 18, char[36])
+#define TCSETSF	_IOW ('T', 19, char[36])
+
+#include <linux/sockios.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/ipc.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/ipc.h
new file mode 100644
index 0000000000..b2c2cc1ecb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/ipc.h
@@ -0,0 +1,62 @@
+/* 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 _SYS_IPC_H
+# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
+#endif
+
+#include <bits/types.h>
+#include <bits/wordsize.h>
+
+/* Mode bits for `msgget', `semget', and `shmget'.  */
+#define IPC_CREAT	01000		/* Create key if key does not exist. */
+#define IPC_EXCL	02000		/* Fail if key exists.  */
+#define IPC_NOWAIT	04000		/* Return error on wait.  */
+
+/* Control commands for `msgctl', `semctl', and `shmctl'.  */
+#define IPC_RMID	0		/* Remove identifier.  */
+#define IPC_SET		1		/* Set `ipc_perm' options.  */
+#define IPC_STAT	2		/* Get `ipc_perm' options.  */
+#ifdef __USE_GNU
+# define IPC_INFO	3		/* See ipcs.  */
+#endif
+
+/* Special key values.  */
+#define IPC_PRIVATE	((__key_t) 0)	/* Private key.  */
+
+
+/* Data structure used to pass permission information to IPC operations.  */
+struct ipc_perm
+  {
+    __key_t __key;			/* Key.  */
+    __uid_t uid;			/* Owner's user ID.  */
+    __gid_t gid;			/* Owner's group ID.  */
+    __uid_t cuid;			/* Creator's user ID.  */
+    __gid_t cgid;			/* Creator's group ID.  */
+#if __WORDSIZE == 32
+    unsigned short int __pad1;
+    unsigned short int mode;		/* Read/write permission.  */
+    unsigned short int __pad2;
+#else
+    __mode_t mode;			/* Read/write permission.  */
+    unsigned short int __pad2;
+#endif
+    unsigned short int __seq;		/* Sequence number.  */
+    unsigned int __pad3;
+    __extension__ unsigned long long int __glibc_reserved1;
+    __extension__ unsigned long long int __glibc_reserved2;
+  };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/mman.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/mman.h
new file mode 100644
index 0000000000..acf7002beb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/mman.h
@@ -0,0 +1,111 @@
+/* Definitions for POSIX memory map interface.  Linux/HPPA version.
+   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_MMAN_H
+# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
+#endif
+
+/* These are taken from the kernel definitions.  */
+
+#define PROT_READ	0x1		/* Page can be read */
+#define PROT_WRITE	0x2		/* Page can be written */
+#define PROT_EXEC	0x4		/* Page can be executed */
+#define PROT_NONE	0x0		/* Page can not be accessed */
+#define PROT_GROWSDOWN	0x01000000	/* Extend change to start of
+					   growsdown vma (mprotect only).  */
+#define PROT_GROWSUP	0x02000000	/* Extend change to start of
+					   growsup vma (mprotect only).  */
+
+#define MAP_SHARED	0x01		/* Share changes */
+#define MAP_PRIVATE	0x02		/* Changes are private */
+#ifdef __USE_MISC
+# define MAP_TYPE	0x03		/* Mask for type of mapping */
+#endif
+
+/* Other flags.  */
+#define MAP_FIXED	0x04		/* Interpret addr exactly */
+#ifdef __USE_MISC
+# define MAP_FILE	0x0
+# define MAP_ANONYMOUS	0x10		/* Don't use a file */
+# define MAP_ANON	MAP_ANONYMOUS
+# define MAP_VARIABLE	0
+/* When MAP_HUGETLB is set bits [26:31] encode the log2 of the huge page size.  */
+# define MAP_HUGE_SHIFT	26
+# define MAP_HUGE_MASK	0x3f
+#endif
+
+/* These are Linux-specific.  */
+#ifdef __USE_MISC
+# define MAP_DENYWRITE	0x0800		/* ETXTBSY */
+# define MAP_EXECUTABLE	0x1000		/* Mark it as an executable */
+# define MAP_LOCKED	0x2000		/* Pages are locked */
+# define MAP_NORESERVE	0x4000		/* Don't check for reservations */
+# define MAP_GROWSDOWN	0x8000		/* Stack-like segment */
+# define MAP_POPULATE	0x10000		/* Populate (prefault) pagetables */
+# define MAP_NONBLOCK	0x20000		/* Do not block on IO */
+# define MAP_STACK	0x40000		/* Create for process/thread stacks */
+# define MAP_HUGETLB	0x80000		/* Create a huge page mapping */
+#endif
+
+/* Flags to "msync"  */
+#define MS_SYNC		1		/* Synchronous memory sync */
+#define MS_ASYNC	2		/* Sync memory asynchronously */
+#define MS_INVALIDATE	4		/* Invalidate the caches */
+
+/* Flags to "mlockall"  */
+#define MCL_CURRENT	1		/* Lock all current mappings */
+#define MCL_FUTURE	2		/* Lock all future mappings */
+#define MCL_ONFAULT	4		/* Lock all pages that are faulted in */
+
+/* Flags for `mremap'.  */
+#ifdef __USE_GNU
+# define MREMAP_MAYMOVE 1
+# define MREMAP_FIXED	2
+#endif
+
+/* Advice to "madvise"  */
+#ifdef __USE_MISC
+# define MADV_NORMAL	  0	/* No further special treatment */
+# define MADV_RANDOM	  1	/* Expect random page references */
+# define MADV_SEQUENTIAL  2	/* Expect sequential page references */
+# define MADV_WILLNEED	  3	/* Will need these pages */
+# define MADV_DONTNEED	  4	/* Dont need these pages */
+# define MADV_SPACEAVAIL  5	/* Insure that resources are reserved */
+# define MADV_VPS_PURGE	  6	/* Purge pages from VM page cache */
+# define MADV_VPS_INHERIT 7	/* Inherit parents page size */
+# define MADV_FREE	  8	/* Free pages only if memory pressure.  */
+# define MADV_REMOVE	  9	/* Remove these pages and resources.  */
+# define MADV_DONTFORK	 10	/* Do not inherit across fork.  */
+# define MADV_DOFORK	 11	/* Do inherit across fork.  */
+# define MADV_MERGEABLE   65	/* KSM may merge identical pages */
+# define MADV_UNMERGEABLE 66	/* KSM may not merge identical pages */
+# define MADV_HUGEPAGE	 67	/* Worth backing with hugepages */
+# define MADV_NOHUGEPAGE 68	/* Not worth backing with hugepages */
+# define MADV_DONTDUMP	 69	/* Explicity exclude from the core dump,
+				   overrides the coredump filter bits */
+# define MADV_DODUMP	 70	/* Clear the MADV_NODUMP flag */
+#endif
+
+/* The POSIX people had to invent similar names for the same things.  */
+#ifdef __USE_XOPEN2K
+# define POSIX_MADV_NORMAL	0 /* No further special treatment.  */
+# define POSIX_MADV_RANDOM	1 /* Expect random page references.  */
+# define POSIX_MADV_SEQUENTIAL	2 /* Expect sequential page references.  */
+# define POSIX_MADV_WILLNEED	3 /* Will need these pages.  */
+# define POSIX_MADV_DONTNEED	4 /* Don't need these pages.  */
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/msq.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/msq.h
new file mode 100644
index 0000000000..e022a95809
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/msq.h
@@ -0,0 +1,84 @@
+/* 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 _SYS_MSG_H
+# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
+#endif
+
+#include <bits/types.h>
+#include <bits/wordsize.h>
+
+/* Define options for message queue functions.  */
+#define MSG_NOERROR	010000	/* no error if message is too big */
+#ifdef __USE_GNU
+# define MSG_EXCEPT	020000	/* recv any msg except of specified type */
+# define MSG_COPY	040000	/* copy (not remove) all queue messages */
+#endif
+
+/* Types used in the structure definition.  */
+typedef unsigned long int msgqnum_t;
+typedef unsigned long int msglen_t;
+
+
+/* Structure of record for one message inside the kernel.
+   The type `struct msg' is opaque.  */
+struct msqid_ds
+{
+  struct ipc_perm msg_perm;	/* structure describing operation permission */
+#if __WORDSIZE == 32
+  unsigned int __pad1;
+#endif
+  __time_t msg_stime;		/* time of last msgsnd command */
+#if __WORDSIZE == 32
+  unsigned int __pad2;
+#endif
+  __time_t msg_rtime;		/* time of last msgrcv command */
+#if __WORDSIZE == 32
+  unsigned int __pad3;
+#endif
+  __time_t msg_ctime;		/* time of last change */
+  unsigned long int __msg_cbytes; /* current number of bytes on queue */
+  msgqnum_t msg_qnum;		/* number of messages currently on queue */
+  msglen_t msg_qbytes;		/* max number of bytes allowed on queue */
+  __pid_t msg_lspid;		/* pid of last msgsnd() */
+  __pid_t msg_lrpid;		/* pid of last msgrcv() */
+  unsigned long int __glibc_reserved1;
+  unsigned long int __glibc_reserved2;
+};
+
+#ifdef __USE_MISC
+
+# define msg_cbytes	__msg_cbytes
+
+/* ipcs ctl commands */
+# define MSG_STAT 11
+# define MSG_INFO 12
+
+/* buffer for msgctl calls IPC_INFO, MSG_INFO */
+struct msginfo
+  {
+    int msgpool;
+    int msgmap;
+    int msgmax;
+    int msgmnb;
+    int msgmni;
+    int msgssz;
+    int msgtql;
+    unsigned short int msgseg;
+  };
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/sem.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/sem.h
new file mode 100644
index 0000000000..a891494c3a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/sem.h
@@ -0,0 +1,91 @@
+/* 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 _SYS_SEM_H
+# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
+#endif
+
+#include <sys/types.h>
+#include <bits/wordsize.h>
+
+/* Flags for `semop'.  */
+#define SEM_UNDO	0x1000		/* undo the operation on exit */
+
+/* Commands for `semctl'.  */
+#define GETPID		11		/* get sempid */
+#define GETVAL		12		/* get semval */
+#define GETALL		13		/* get all semval's */
+#define GETNCNT		14		/* get semncnt */
+#define GETZCNT		15		/* get semzcnt */
+#define SETVAL		16		/* set semval */
+#define SETALL		17		/* set all semval's */
+
+
+/* Data structure describing a set of semaphores.  */
+struct semid_ds
+{
+  struct ipc_perm sem_perm;		/* operation permission struct */
+#if __WORDSIZE == 32
+  unsigned int __pad1;
+#endif
+  __time_t sem_otime;			/* last semop() time */
+#if __WORDSIZE == 32
+  unsigned int __pad2;
+#endif
+  __time_t sem_ctime;			/* last time changed by semctl() */
+  unsigned long int sem_nsems;		/* number of semaphores in set */
+  unsigned long int __glibc_reserved1;
+  unsigned long int __glibc_reserved2;
+};
+
+/* The user should define a union like the following to use it for arguments
+   for `semctl'.
+
+   union semun
+   {
+     int val;				<= value for SETVAL
+     struct semid_ds *buf;		<= buffer for IPC_STAT & IPC_SET
+     unsigned short int *array;		<= array for GETALL & SETALL
+     struct seminfo *__buf;		<= buffer for IPC_INFO
+   };
+
+   Previous versions of this file used to define this union but this is
+   incorrect.  One can test the macro _SEM_SEMUN_UNDEFINED to see whether
+   one must define the union or not.  */
+#define _SEM_SEMUN_UNDEFINED	1
+
+#ifdef __USE_MISC
+
+/* ipcs ctl cmds */
+# define SEM_STAT 18
+# define SEM_INFO 19
+
+struct  seminfo
+{
+  int semmap;
+  int semmni;
+  int semmns;
+  int semmnu;
+  int semmsl;
+  int semopm;
+  int semume;
+  int semusz;
+  int semvmx;
+  int semaem;
+};
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/shm.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/shm.h
new file mode 100644
index 0000000000..794f0ab2da
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/shm.h
@@ -0,0 +1,107 @@
+/* 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 _SYS_SHM_H
+# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
+#endif
+
+#include <bits/types.h>
+#include <bits/wordsize.h>
+
+/* Permission flag for shmget.  */
+#define SHM_R		0400		/* or S_IRUGO from <linux/stat.h> */
+#define SHM_W		0200		/* or S_IWUGO from <linux/stat.h> */
+
+/* Flags for `shmat'.  */
+#define SHM_RDONLY	010000		/* attach read-only else read-write */
+#define SHM_RND		020000		/* round attach address to SHMLBA */
+#define SHM_REMAP	040000		/* take-over region on attach */
+#define SHM_EXEC	0100000		/* execution access */
+
+/* Commands for `shmctl'.  */
+#define SHM_LOCK	11		/* lock segment (root only) */
+#define SHM_UNLOCK	12		/* unlock segment (root only) */
+
+/* Segment low boundary address multiple.  */
+#define SHMLBA 0x00400000		/* address needs to be 4 Mb aligned */
+
+/* Type to count number of attaches.  */
+typedef unsigned long int shmatt_t;
+
+/* Data structure describing a shared memory segment.  */
+struct shmid_ds
+  {
+    struct ipc_perm shm_perm;		/* operation permission struct */
+#if __WORDSIZE == 32
+    unsigned int __pad1;
+#endif
+    __time_t shm_atime;			/* time of last shmat() */
+#if __WORDSIZE == 32
+    unsigned int __pad2;
+#endif
+    __time_t shm_dtime;			/* time of last shmdt() */
+#if __WORDSIZE == 32
+    unsigned int __pad3;
+#endif
+    __time_t shm_ctime;			/* time of last change by shmctl() */
+#if __WORDSIZE == 32
+    unsigned int __pad4;
+#endif
+    size_t shm_segsz;			/* size of segment in bytes */
+    __pid_t shm_cpid;			/* pid of creator */
+    __pid_t shm_lpid;			/* pid of last shmop */
+    shmatt_t shm_nattch;		/* number of current attaches */
+    unsigned long int __glibc_reserved1;
+    unsigned long int __glibc_reserved2;
+  };
+
+#ifdef __USE_MISC
+
+/* ipcs ctl commands */
+# define SHM_STAT 	13
+# define SHM_INFO 	14
+
+/* shm_mode upper byte flags */
+# define SHM_DEST	01000	/* segment will be destroyed on last detach */
+# define SHM_LOCKED	02000   /* segment will not be swapped */
+# define SHM_HUGETLB	04000	/* segment is mapped via hugetlb */
+# define SHM_NORESERVE	010000	/* don't check for reservations */
+
+struct	shminfo
+  {
+    unsigned long shmmax;
+    unsigned long shmmin;
+    unsigned long shmmni;
+    unsigned long shmseg;
+    unsigned long shmall;
+    unsigned long __glibc_reserved1;
+    unsigned long __glibc_reserved2;
+    unsigned long __glibc_reserved3;
+    unsigned long __glibc_reserved4;
+  };
+
+struct shm_info
+  {
+    int used_ids;
+    unsigned long int shm_tot;	/* total allocated shm */
+    unsigned long int shm_rss;	/* total resident shm */
+    unsigned long int shm_swp;	/* total swapped shm */
+    unsigned long int swap_attempts;
+    unsigned long int swap_successes;
+  };
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h
new file mode 100644
index 0000000000..06ba2db8f2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h
@@ -0,0 +1,81 @@
+/* Definitions for Linux/HPPA sigaction.
+   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _SIGNAL_H
+# error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
+#endif
+
+#include <bits/wordsize.h>
+
+/* Structure describing the action to be taken when a signal arrives.  */
+struct sigaction
+  {
+    /* Signal handler.  */
+#ifdef __USE_POSIX199309
+    union
+      {
+	/* Used if SA_SIGINFO is not set.  */
+	__sighandler_t sa_handler;
+	/* Used if SA_SIGINFO is set.  */
+	void (*sa_sigaction) (int, siginfo_t *, void *);
+      }
+    __sigaction_handler;
+# define sa_handler	__sigaction_handler.sa_handler
+# define sa_sigaction	__sigaction_handler.sa_sigaction
+#else
+    __sighandler_t sa_handler;
+#endif
+
+    /* Special flags.  */
+#if __WORDSIZE == 64
+    int __glibc_reserved0;
+#endif
+    int sa_flags;
+
+    /* Additional set of signals to be blocked.  */
+    __sigset_t sa_mask;
+  };
+
+/* Bits in `sa_flags'.  */
+
+#define SA_NOCLDSTOP  0x00000008  /* Don't send SIGCHLD when children stop.  */
+#define SA_NOCLDWAIT  0x00000080  /* Don't create zombie on child death.  */
+#define SA_SIGINFO    0x00000010  /* Invoke signal-catching function with
+				     three arguments instead of one.  */
+#if defined __USE_UNIX98 || defined __USE_MISC
+# define SA_ONSTACK   0x00000001 /* Use signal stack by using `sa_restorer'. */
+#endif
+#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+# define SA_RESETHAND 0x00000004 /* Reset to SIG_DFL on entry to handler.  */
+# define SA_NODEFER   0x00000020 /* Don't automatically block the signal
+				    when its handler is being executed.  */
+# define SA_RESTART   0x00000040 /* Restart syscall on signal return.  */
+#endif
+#ifdef __USE_MISC
+# define SA_INTERRUPT 0x20000000 /* Historic no-op.  */
+
+/* Some aliases for the SA_ constants.  */
+# define SA_NOMASK    SA_NODEFER
+# define SA_ONESHOT   SA_RESETHAND
+# define SA_STACK     SA_ONSTACK
+#endif
+
+/* Values for the HOW argument to `sigprocmask'.  */
+#define SIG_BLOCK          0	/* for blocking signals */
+#define SIG_UNBLOCK        1	/* for unblocking signals */
+#define SIG_SETMASK        2	/* for setting the signal mask */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/signalfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/signalfd.h
new file mode 100644
index 0000000000..34bf6d6bf3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/signalfd.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2007-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_SIGNALFD_H
+# error "Never use <bits/signalfd.h> directly; include <sys/signalfd.h> instead."
+#endif
+
+/* Flags for signalfd.  */
+enum
+  {
+    SFD_CLOEXEC = 010000000,
+#define SFD_CLOEXEC SFD_CLOEXEC
+    SFD_NONBLOCK = 00200004 /* HPUX has separate NDELAY & NONBLOCK */
+#define SFD_NONBLOCK SFD_NONBLOCK
+  };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/signum.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/signum.h
new file mode 100644
index 0000000000..20c0b60c9f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/signum.h
@@ -0,0 +1,89 @@
+/* Signal number definitions.  Linux/HPPA version.
+   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/>.  */
+
+#ifdef	_SIGNAL_H
+
+/* Fake signal functions.  */
+#define SIG_ERR	((__sighandler_t) -1)		/* Error return.  */
+#define SIG_DFL	((__sighandler_t) 0)		/* Default action.  */
+#define SIG_IGN	((__sighandler_t) 1)		/* Ignore signal.  */
+
+#ifdef __USE_XOPEN
+# define SIG_HOLD	((__sighandler_t) 2)	/* Add signal to hold mask.  */
+#endif
+
+
+/* Signals.  */
+#define	SIGHUP		1	/* Hangup (POSIX).  */
+#define	SIGINT		2	/* Interrupt (ANSI).  */
+#define	SIGQUIT		3	/* Quit (POSIX).  */
+#define	SIGILL		4	/* Illegal instruction (ANSI).  */
+#define	SIGTRAP		5	/* Trace trap (POSIX).  */
+#define	SIGABRT		6	/* Abort (ANSI).  */
+#define	SIGIOT		6	/* IOT trap (4.2 BSD).  */
+#define	SIGSTKFLT	7	/* Stack fault.  */
+#define	SIGFPE		8	/* Floating-point exception (ANSI).  */
+#define	SIGKILL		9	/* Kill, unblockable (POSIX).  */
+#define	SIGBUS		10	/* BUS error (4.2 BSD).  */
+#define	SIGSEGV		11	/* Segmentation violation (ANSI).  */
+#define	SIGXCPU		12	/* CPU limit exceeded (4.2 BSD).  */
+#define	SIGPIPE		13	/* Broken pipe (POSIX).  */
+#define	SIGALRM		14	/* Alarm clock (POSIX).  */
+#define	SIGTERM		15	/* Termination (ANSI).  */
+#define	SIGUSR1		16	/* User-defined signal 1 (POSIX).  */
+#define SIGUSR2		17	/* User-defined signal 2 (POSIX).  */
+#define	SIGCLD		SIGCHLD	/* Same as SIGCHLD (System V).  */
+#define	SIGCHLD		18	/* Child status has changed (POSIX).  */
+#define	SIGPWR		19	/* Power failure restart (System V).  */
+#define	SIGVTALRM	20	/* Virtual alarm clock (4.2 BSD).  */
+#define	SIGPROF		21	/* Profiling alarm clock (4.2 BSD).  */
+#define	SIGPOLL		SIGIO	/* Pollable event occurred (System V).  */
+#define	SIGIO		22	/* I/O now possible (4.2 BSD).  */
+#define	SIGWINCH	23	/* Window size change (4.3 BSD, Sun).  */
+#define	SIGSTOP		24	/* Stop, unblockable (POSIX).  */
+#define	SIGTSTP		25	/* Keyboard stop (POSIX).  */
+#define	SIGCONT		26	/* Continue (POSIX).  */
+#define	SIGTTIN		27	/* Background read from tty (POSIX).  */
+#define	SIGTTOU		28	/* Background write to tty (POSIX).  */
+#define	SIGURG		29	/* Urgent condition on socket (4.2 BSD).  */
+#define	SIGXFSZ		30	/* File size limit exceeded (4.2 BSD).  */
+#define SIGSYS		31	/* Bad system call.  */
+#define SIGUNUSED	31
+
+#define	_NSIG		65	/* Biggest signal number + 1
+				   (including real-time signals).  */
+
+#define SIGRTMIN        (__libc_current_sigrtmin ())
+#define SIGRTMAX        (__libc_current_sigrtmax ())
+
+/* These are the hard limits of the kernel.  These values should not be
+   used directly at user level.  */
+/* In the Linux kernel version 3.17, and glibc 2.21, the signal numbers
+   were rearranged in order to make hppa like every other arch. Previously
+   we started __SIGRTMIN at 37, and that meant several pieces of important
+   software, including systemd, would fail to build. To support systemd we
+   removed SIGEMT and SIGLOST, and rearranged the others according to
+   expected values. This is technically an ABI incompatible change, but
+   because zero applications use SIGSTKFLT, SIGXCPU, SIGXFSZ and SIGSYS
+   nothing broke.  Nothing uses SIGEMT and SIGLOST, and they were present
+   for HPUX compatibility which is no longer supported.  Thus because
+   nothing breaks we don't do any compatibility work here.  */
+#define __SIGRTMIN	32	/* Kernel > 3.17.  */
+#define __SIGRTMAX	(_NSIG - 1)
+
+#endif	/* <signal.h> included.  */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h
new file mode 100644
index 0000000000..8c99f2116f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h
@@ -0,0 +1,55 @@
+/* Define enum __socket_type for Linux/HP-PARISC.
+   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 _SYS_SOCKET_H
+# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
+#endif
+
+/* Types of sockets.  */
+enum __socket_type
+{
+  SOCK_STREAM = 1,		/* Sequenced, reliable, connection-based
+				   byte streams.  */
+#define SOCK_STREAM SOCK_STREAM
+  SOCK_DGRAM = 2,		/* Connectionless, unreliable datagrams
+				   of fixed maximum length.  */
+#define SOCK_DGRAM SOCK_DGRAM
+  SOCK_RAW = 3,			/* Raw protocol interface.  */
+#define SOCK_RAW SOCK_RAW
+  SOCK_RDM = 4,			/* Reliably-delivered messages.  */
+#define SOCK_RDM SOCK_RDM
+  SOCK_SEQPACKET = 5,		/* Sequenced, reliable, connection-based,
+				   datagrams of fixed maximum length.  */
+#define SOCK_SEQPACKET SOCK_SEQPACKET
+  SOCK_DCCP = 6,		/* Datagram Congestion Control Protocol.  */
+#define SOCK_DCCP SOCK_DCCP
+  SOCK_PACKET = 10,		/* Linux specific way of getting packets
+				   at the dev level.  For writing rarp and
+				   other similar things on the user level. */
+#define SOCK_PACKET SOCK_PACKET
+
+  /* Flags to be ORed into the type parameter of socket and socketpair and
+     used for the flags parameter of paccept.  */
+
+  SOCK_CLOEXEC = 010000000,	/* Atomically set close-on-exec flag for the
+				   new descriptor(s).  */
+#define SOCK_CLOEXEC SOCK_CLOEXEC
+  SOCK_NONBLOCK = 0x40000000	/* Atomically mark descriptor(s) as
+				   non-blocking.  */
+#define SOCK_NONBLOCK SOCK_NONBLOCK
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/timerfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/timerfd.h
new file mode 100644
index 0000000000..2a62c980af
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/timerfd.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2008-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_TIMERFD_H
+# error "Never use <bits/timerfd.h> directly; include <sys/timerfd.h> instead."
+#endif
+
+/* Bits to be set in the FLAGS parameter of `timerfd_create'.  */
+enum
+  {
+    TFD_CLOEXEC = 010000000,
+#define TFD_CLOEXEC TFD_CLOEXEC
+    TFD_NONBLOCK = 000200004 /* HPUX has separate NDELAY & NONBLOCK */
+#define TFD_NONBLOCK TFD_NONBLOCK
+  };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/brk.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/brk.c
new file mode 100644
index 0000000000..f500ab419f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/brk.c
@@ -0,0 +1,41 @@
+/* brk system call for Linux/HPPA.
+   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/>.  */
+
+#include <errno.h>
+#include <unistd.h>
+#include <sysdep.h>
+
+/* This must be initialized data because commons can't have aliases.  */
+void *__curbrk = 0;
+
+int
+__brk (void *addr)
+{
+  void *newbrk;
+
+  __curbrk = newbrk = (void *) INLINE_SYSCALL (brk, 1, addr);
+
+  if (newbrk < addr)
+    {
+      __set_errno (ENOMEM);
+      return -1;
+    }
+
+  return 0;
+}
+weak_alias (__brk, brk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/c++-types.data
new file mode 100644
index 0000000000..fde53bf337
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:x
+blkcnt_t:l
+blksize_t:l
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:y
+fd_mask:l
+fsblkcnt64_t:y
+fsblkcnt_t:m
+fsfilcnt64_t:y
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:y
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:x
+int8_t:a
+intptr_t:i
+key_t:i
+loff_t:x
+mode_t:j
+nlink_t:j
+off64_t:x
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:x
+register_t:i
+rlim64_t:y
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:j
+socklen_t:j
+ssize_t:i
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:y
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:y
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/clone.S
new file mode 100644
index 0000000000..d36b302199
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/clone.S
@@ -0,0 +1,161 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by David Huggins-Daines <dhd@debian.org>, 2000.
+   Based on the Alpha version by Richard Henderson <rth@tamu.edu>, 1996.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* clone() is even more special than fork() as it mucks with stacks
+   and invokes a function in the right context after its all over.  */
+
+#include <asm/unistd.h>
+#include <sysdep.h>
+#define _ERRNO_H	1
+#include <bits/errno.h>
+#include <tcb-offsets.h>
+
+/* Non-thread code calls __clone with the following parameters:
+   int clone(int (*fn)(void *arg),
+	     void *child_stack,
+	     int flags,
+	     void *arg)
+
+   NPTL Code will call __clone with the following parameters:
+   int clone(int (*fn)(void *arg),
+	     void *child_stack,
+	     int flags,
+	     void *arg,
+	     int *parent_tidptr,
+	     struct user_desc *newtls,
+	     int *child_pidptr)
+
+   The code should not mangle the extra input registers.
+   Syscall expects:				Input to __clone:
+	4(r25) - function pointer 		(r26, arg0)
+	0(r25) - argument			(r23, arg3)
+	r26 - clone flags.			(r24, arg2)
+	r25+64 - user stack pointer.		(r25, arg1)
+	r24 - parent tid pointer.		(stack - 52)
+	r23 - struct user_desc newtls pointer.	(stack - 56)
+	r22 - child tid pointer.		(stack - 60)
+	r20 - clone syscall number		(constant)
+
+   Return:
+
+	On success the thread ID of the child process is returend in
+	the callers context.
+	On error return -1, and set errno to the value returned by
+	the syscall.
+ */
+
+        .text
+ENTRY(__clone)
+	/* Prologue */
+	stwm	%r4, 64(%sp)
+	stw	%sp, -4(%sp)
+#ifdef PIC
+	stw	%r19, -32(%sp)
+#endif
+
+	/* Sanity check arguments.  */
+	comib,=,n  0, %arg0, .LerrorSanity        /* no NULL function pointers */
+	comib,=,n  0, %arg1, .LerrorSanity        /* no NULL stack pointers */
+
+	/* Save the function pointer, arg, and flags on the new stack.  */
+	stwm    %r26, 64(%r25)
+	stw	%r23, -60(%r25)
+	stw     %r24, -56(%r25)
+	/* Clone arguments are (int flags, void * child_stack) */
+	copy	%r24, %r26		/* flags are first */
+	/* User stack pointer is in the correct register already */
+
+	/* Load args from stack... */
+	ldw	-116(%sp), %r24		/* Load parent_tidptr */
+	ldw	-120(%sp), %r23 	/* Load newtls */
+	ldw	-124(%sp), %r22		/* Load child_tidptr */
+
+	/* Save the PIC register. */
+#ifdef PIC
+	copy	%r19, %r4		/* parent */
+#endif
+
+	/* Do the system call */
+	ble     0x100(%sr2, %r0)
+	ldi	__NR_clone, %r20
+
+	ldi	-4096, %r1
+	comclr,>>= %r1, %ret0, %r0	/* Note: unsigned compare. */
+	b,n	.LerrorRest
+
+	/* Restore the PIC register.  */
+#ifdef PIC
+	copy	%r4, %r19		/* parent */
+#endif
+
+	comib,=,n 0, %ret0, .LthreadStart
+
+	/* Successful return from the parent
+	   No need to restore the PIC register,
+	   since we return immediately. */
+
+	ldw	-84(%sp), %rp
+	bv	%r0(%rp)
+	ldwm	-64(%sp), %r4
+
+.LerrorRest:
+	/* Something bad happened -- no child created */
+	bl	__syscall_error, %rp
+	sub     %r0, %ret0, %arg0
+	ldw	-84(%sp), %rp
+	/* Return after setting errno, ret0 is set to -1 by __syscall_error. */
+	bv	%r0(%rp)
+	ldwm	-64(%sp), %r4
+
+.LerrorSanity:
+	/* Sanity checks failed, return -1, and set errno to EINVAL. */
+	bl	__syscall_error, %rp
+	ldi     EINVAL, %arg0
+	ldw	-84(%sp), %rp
+	bv	%r0(%rp)
+	ldwm	-64(%sp), %r4
+
+.LthreadStart:
+	/* Load up the arguments.  */
+	ldw	-60(%sp), %arg0
+	ldw     -64(%sp), %r22
+
+	/* $$dyncall fixes child's PIC register */
+
+	/* Call the user's function */
+#ifdef PIC
+	copy	%r19, %r4
+#endif
+	bl	$$dyncall, %r31
+	copy	%r31, %rp
+#ifdef PIC
+	copy	%r4, %r19
+#endif
+	/* The call to _exit needs saved r19.  */
+	bl	_exit, %rp
+	copy	%ret0, %arg0
+
+	/* We should not return from _exit.
+           We do not restore r4, or the stack state.  */
+	iitlbp	%r0, (%sr0, %r0)
+
+PSEUDO_END(__clone)
+
+libc_hidden_def (__clone)
+weak_alias (__clone, clone)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/fcntl.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/fcntl.c
new file mode 100644
index 0000000000..ea951bc4f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/fcntl.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fcntl.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/fxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/fxstat.c
new file mode 100644
index 0000000000..4f219f0b9d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/fxstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/fxstatat.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/fxstatat.c
new file mode 100644
index 0000000000..0f8b3135d8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/fxstatat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstatat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/getcontext.S
new file mode 100644
index 0000000000..6f52f2149d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/getcontext.S
@@ -0,0 +1,165 @@
+/* Get current user context.
+   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Helge Deller <deller@gmx.de>, 2008.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <sysdep.h>
+
+#include "ucontext_i.h"
+
+
+	/* Trampoline function. Non-standard calling ABI.  */
+	/* Can not use ENTRY(__getcontext_ret) here.  */
+	.type	__getcontext_ret, @function
+	.hidden	__getcontext_ret
+__getcontext_ret:
+	.proc
+	.callinfo FRAME=0,NO_CALLS
+	/* r26-r23 contain original r3-r6, but because setcontext
+	   does not reload r3-r6 (it's using them as temporaries)
+	   we must save them elsewhere and swap them back in.  */
+	copy	%r23, %r3
+	copy	%r24, %r4
+	copy	%r25, %r5
+	copy	%r26, %r6
+	/* r20 contains original return pointer.  */
+	bv	0(%r20)
+	copy	%r0, %ret0
+	.procend
+	.size	__getcontext_ret, .-__getcontext_ret
+
+
+ENTRY(__getcontext)
+	/* Save the registers.  */
+	stw	%r0, oR0(%r26)
+	stw	%r1, oR1(%r26)
+	/* stw	%r2, oR2(%r26) - used for trampoline.  */
+	stw	%r3, oR3(%r26)
+	stw	%r4, oR4(%r26)
+	stw	%r5, oR5(%r26)
+	stw	%r6, oR6(%r26)
+	stw	%r7, oR7(%r26)
+	stw	%r8, oR8(%r26)
+	stw	%r9, oR9(%r26)
+	stw	%r10, oR10(%r26)
+	stw	%r11, oR11(%r26)
+	stw	%r12, oR12(%r26)
+	stw	%r13, oR13(%r26)
+	stw	%r14, oR14(%r26)
+	stw	%r15, oR15(%r26)
+	stw	%r16, oR16(%r26)
+	stw	%r17, oR17(%r26)
+	stw	%r18, oR18(%r26)
+	stw	%r19, oR19(%r26)
+	/* stw	%r20, oR20(%r26) - used for trampoline.  */
+	stw	%r21, oR21(%r26)
+	stw	%r22, oR22(%r26)
+	/* stw	%r23, oR23(%r26) - used for trampoline.  */
+	/* stw	%r24, oR24(%r26) - used for trampoline.  */
+	/* stw	%r25, oR25(%r26) - used for trampoline.  */
+	/* stw	%r26, oR26(%r26) - used for trampoline.  */
+	stw	%r27, oR27(%r26)
+	stw	%r28, oR28(%r26)
+	stw	%r29, oR29(%r26)
+	stw	%sp, oR30(%r26)
+	stw	%r31, oR31(%r26)
+
+	stw	%r0, oUC_FLAGS(%r26)
+	/* stw	%r0, oUC_LINK(%r26) - Do not overwrite.  */
+	stw	%sp, oSS_SP(%r26)
+	stw	%r0, oSS_FLAGS(%r26)
+	stw	%r0, oSS_SIZE(%r26)
+
+	stw	%r0, oSC_FLAGS(%r26)
+
+	stw	%r0, oIASQ0(%r26)
+	stw	%r0, oIASQ1(%r26)
+	stw	%r0, oIAOQ0(%r26)
+	stw	%r0, oIAOQ1(%r26)
+	stw	%r0, oSAR(%r26) /* used as flag in swapcontext().  */
+
+
+	/* Store floating-point regs.  */
+	ldo	oFPREGS0(%r26),%r1
+	fstds,ma %fr0, 8(%r1)
+	fstds,ma %fr1, 8(%r1)
+	fstds,ma %fr2, 8(%r1)
+	fstds,ma %fr3, 8(%r1)
+	fstds,ma %fr4, 8(%r1)
+	fstds,ma %fr5, 8(%r1)
+	fstds,ma %fr6, 8(%r1)
+	fstds,ma %fr7, 8(%r1)
+	fstds,ma %fr8, 8(%r1)
+	fstds,ma %fr9, 8(%r1)
+	fstds,ma %fr10, 8(%r1)
+	fstds,ma %fr11, 8(%r1)
+	fstds,ma %fr12, 8(%r1)
+	fstds,ma %fr13, 8(%r1)
+	fstds,ma %fr14, 8(%r1)
+	fstds,ma %fr15, 8(%r1)
+	fstds,ma %fr16, 8(%r1)
+	fstds,ma %fr17, 8(%r1)
+	fstds,ma %fr18, 8(%r1)
+	fstds,ma %fr19, 8(%r1)
+	fstds,ma %fr20, 8(%r1)
+	fstds,ma %fr21, 8(%r1)
+	fstds,ma %fr22, 8(%r1)
+	fstds,ma %fr23, 8(%r1)
+	fstds,ma %fr24, 8(%r1)
+	fstds,ma %fr25, 8(%r1)
+	fstds,ma %fr26, 8(%r1)
+	fstds,ma %fr27, 8(%r1)
+	fstds,ma %fr28, 8(%r1)
+	fstds,ma %fr29, 8(%r1)
+	fstds,ma %fr30, 8(%r1)
+	fstds	 %fr31, 0(%r1)
+
+	/* Prologue */
+	stwm	%r4, 64(%sp)
+#ifdef PIC
+	stw	%r19, -32(%sp)
+#endif
+
+	/* Set up the trampoline registers.
+	   r20, r23, r24, r25, r26 and r2 are clobbered
+	   by call to getcontext() anyway. Reuse them.  */
+	stw	%r2, oR20(%r26)
+	stw	%r3, oR23(%r26)
+	stw	%r4, oR24(%r26)
+	stw	%r5, oR25(%r26)
+	stw	%r6, oR26(%r26)
+	ldil	L%__getcontext_ret, %r1
+	ldo     R%__getcontext_ret(%r1), %r1
+	stw	%r1, oR2(%r26)
+
+	/* Save the current signal mask.  */
+	/* sigprocmask(SIG_BLOCK, NULL, &ucp->uc_sigmask);  */
+	ldo	oSIGMASK(%r26), %r24
+	copy	%r0, %r25
+	bl	sigprocmask, %r2
+	ldi	SIG_BLOCK, %r26
+
+	/* Epilogue */
+	ldw	-84(%sp), %r2
+#ifdef PIC
+	ldw	-96(%sp), %r19
+#endif
+	bv	%r0(%r2)
+	ldwm	-64(%sp), %r4
+END(__getcontext)
+
+weak_alias (__getcontext, getcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/getdents64.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/getdents64.c
new file mode 100644
index 0000000000..0c75fb5a06
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/getdents64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/getdents64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/internaltypes.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/internaltypes.h
new file mode 100644
index 0000000000..d6496579da
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/internaltypes.h
@@ -0,0 +1,84 @@
+#include_next <internaltypes.h>
+#ifndef _INTERNAL_TYPES_H_HPPA_
+#define _INTERNAL_TYPES_H_HPPA_ 1
+#include <atomic.h>
+
+/* In GLIBC 2.10 HPPA switched from Linuxthreads to NPTL, and in order
+to maintain ABI compatibility with pthread_cond_t, some care had to be
+taken.
+
+The NPTL pthread_cond_t grew in size. When HPPA switched to NPTL, we
+dropped the use of ldcw, and switched to the kernel helper routine for
+compare-and-swap.  This allowed HPPA to use the 4-word 16-byte aligned
+lock words, and alignment words to store the additional pthread_cond_t
+data. Once organized properly the new NPTL pthread_cond_t was 1 word
+smaller than the Linuxthreads version.
+
+However, we were faced with the case that users may have initialized the
+pthread_cond_t with PTHREAD_COND_INITIALIZER. In this case, the first
+four words were set to one, and must be cleared before any NPTL code
+used these words.
+
+We didn't want to use LDCW, because it continues to be a source of bugs
+when applications memset pthread_cond_t to all zeroes by accident. This
+works on all other architectures where lock words are unlocked at zero.
+Remember that because of the semantics of LDCW, a locked word is set to
+zero, and an unlocked word is set to 1.
+
+Instead we used atomic_compare_and_exchange_val_acq, but we couldn't use
+this on any of the pthread_cond_t words, otherwise it might interfere
+with the current operation of the structure. To solve this problem we
+used the left over word.
+
+If the stucture was initialized by a legacy Linuxthread
+PTHREAD_COND_INITIALIZER it contained a 1, and this indicates that the
+structure requires zeroing for NPTL. The first thread to come upon a
+pthread_cond_t with a 1 in the __initializer field, will
+compare-and-swap the value, placing a 2 there which will cause all other
+threads using the same pthread_cond_t to wait for the completion of the
+initialization. Lastly, we use a store (with memory barrier) to change
+__initializer from 2 to 0. Note that the store is strongly ordered, but
+we use the PA 1.1 compatible form which is ",ma" with zero offset.
+
+In the future, when the application is recompiled with NPTL
+PTHREAD_COND_INITIALIZER it will be a quick compare-and-swap, which
+fails because __initializer is zero, and the structure will be used as
+is correctly.  */
+
+#define cond_compat_clear(var) \
+({									\
+  int tmp = 0;								\
+  var->__data.__wseq = 0;						\
+  var->__data.__signals_sent = 0;					\
+  var->__data.__confirmed = 0;						\
+  var->__data.__generation = 0;						\
+  var->__data.__mutex = NULL;						\
+  var->__data.__quiescence_waiters = 0;					\
+  var->__data.__clockid = 0;						\
+  /* Clear __initializer last, to indicate initialization is done.  */	\
+  /* This synchronizes-with the acquire load below.  */			\
+  atomic_store_release (&var->__data.__initializer, 0);			\
+})
+
+#define cond_compat_check_and_clear(var) \
+({								\
+  int v;							\
+  int *value = &var->__data.__initializer;			\
+  /* This synchronizes-with the release store above.  */	\
+  while ((v = atomic_load_acquire (value)) != 0)		\
+    {								\
+      if (v == 1						\
+	  /* Relaxed MO is fine; it only matters who's first.  */        \
+	  && atomic_compare_exchange_acquire_weak_relaxed (value, 1, 2)) \
+	{							\
+	  /* We're first; initialize structure.  */		\
+	  cond_compat_clear (var);				\
+	  break;						\
+	}							\
+      else							\
+	/* Yield before we re-check initialization status.  */	\
+	sched_yield ();						\
+    }								\
+})
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/ipc_priv.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/ipc_priv.h
new file mode 100644
index 0000000000..d880f5029a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/ipc_priv.h
@@ -0,0 +1,21 @@
+/* Old SysV permission definition for Linux.  Hppa version.
+   Copyright (C) 2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <sys/ipc.h>  /* For __key_t  */
+
+#define __IPC_64	0x0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel-features.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel-features.h
new file mode 100644
index 0000000000..0e73a5c0df
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel-features.h
@@ -0,0 +1,29 @@
+/* Set flags signalling availability of kernel features based on given
+   kernel version number.
+   Copyright (C) 2006-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/>.  */
+
+
+/* Support for the utimes syscall was added in 3.14.  */
+#if __LINUX_KERNEL_VERSION >= 0x030e00
+# define __ASSUME_UTIMES		1
+#endif
+
+#include_next <kernel-features.h>
+
+#define __ASSUME_RECV_SYSCALL   1
+#define __ASSUME_SEND_SYSCALL	1
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel_sigaction.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel_sigaction.h
new file mode 100644
index 0000000000..af048cbe7d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel_sigaction.h
@@ -0,0 +1,18 @@
+/* We have a separate header file here because we do not support
+   SA_RESTORER on hppa. */
+
+/* This is the sigaction struction from the Linux 2.1.20 kernel.  */
+/* Blah.  This is bogus.  We don't ever use it. */
+struct old_kernel_sigaction {
+	__sighandler_t k_sa_handler;
+	unsigned long sa_mask;
+	unsigned long sa_flags;
+};
+
+/* This is the sigaction structure from the Linux 2.1.68 kernel.  */
+
+struct kernel_sigaction {
+	__sighandler_t k_sa_handler;
+	unsigned long sa_flags;
+	sigset_t sa_mask;
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel_stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel_stat.h
new file mode 100644
index 0000000000..a3ac53a1ef
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel_stat.h
@@ -0,0 +1,34 @@
+/* definition of "struct stat" from the kernel */
+struct kernel_stat {
+	unsigned long	st_dev;		/* dev_t is 32 bits on parisc */
+	unsigned long	st_ino;		/* 32 bits */
+	unsigned short	st_mode;	/* 16 bits */
+	unsigned short	st_nlink;	/* 16 bits */
+	unsigned short	st_reserved1;	/* old st_uid */
+	unsigned short	st_reserved2;	/* old st_gid */
+	unsigned long	st_rdev;
+	unsigned long   st_size;
+	struct timespec st_atim;
+	struct timespec st_mtim;
+	struct timespec st_ctim;
+	long		st_blksize;
+	long		st_blocks;
+	unsigned long	__glibc_reserved1;	/* ACL stuff */
+	unsigned long	__glibc_reserved2;	/* network */
+	unsigned long	__glibc_reserved3;	/* network */
+	unsigned long	__glibc_reserved4;	/* cnodes */
+	unsigned short	__glibc_reserved5;	/* netsite */
+	short		st_fstype;
+	unsigned long	st_realdev;
+	unsigned short	st_basemode;
+	unsigned short	st_spareshort;
+	unsigned long	st_uid;
+	unsigned long   st_gid;
+	unsigned long	st_spare4[3];
+};
+
+#define _HAVE_STAT_NSEC
+#define _HAVE_STAT64_NSEC
+
+#define XSTAT_IS_XSTAT64 0
+#define STATFS_IS_STATFS64 0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/ld.abilist
new file mode 100644
index 0000000000..fc1c60ea17
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/ld.abilist
@@ -0,0 +1,12 @@
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __libc_stack_end D 0x4
+GLIBC_2.2 _dl_mcount F
+GLIBC_2.2 _r_debug D 0x14
+GLIBC_2.2 calloc F
+GLIBC_2.2 free F
+GLIBC_2.2 malloc F
+GLIBC_2.2 realloc F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 __tls_get_addr F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __stack_chk_guard D 0x4
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libBrokenLocale.abilist
new file mode 100644
index 0000000000..21343df781
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libBrokenLocale.abilist
@@ -0,0 +1,2 @@
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __ctype_get_mb_cur_max F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libanl.abilist
new file mode 100644
index 0000000000..edabfb436e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libc.abilist
new file mode 100644
index 0000000000..24bb7300d3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -0,0 +1,2174 @@
+GLIBC_2.10 GLIBC_2.10 A
+GLIBC_2.10 __cxa_at_quick_exit F
+GLIBC_2.10 __posix_getopt F
+GLIBC_2.10 accept4 F
+GLIBC_2.10 endsgent F
+GLIBC_2.10 fallocate F
+GLIBC_2.10 fgetsgent F
+GLIBC_2.10 fgetsgent_r F
+GLIBC_2.10 getsgent F
+GLIBC_2.10 getsgent_r F
+GLIBC_2.10 getsgnam F
+GLIBC_2.10 getsgnam_r F
+GLIBC_2.10 malloc_info F
+GLIBC_2.10 preadv F
+GLIBC_2.10 preadv64 F
+GLIBC_2.10 psiginfo F
+GLIBC_2.10 putsgent F
+GLIBC_2.10 pwritev F
+GLIBC_2.10 pwritev64 F
+GLIBC_2.10 quick_exit F
+GLIBC_2.10 register_printf_modifier F
+GLIBC_2.10 register_printf_specifier F
+GLIBC_2.10 register_printf_type F
+GLIBC_2.10 setsgent F
+GLIBC_2.10 sgetsgent F
+GLIBC_2.10 sgetsgent_r F
+GLIBC_2.11 GLIBC_2.11 A
+GLIBC_2.11 __longjmp_chk F
+GLIBC_2.11 execvpe F
+GLIBC_2.11 fallocate64 F
+GLIBC_2.11 mkostemps F
+GLIBC_2.11 mkostemps64 F
+GLIBC_2.11 mkstemps F
+GLIBC_2.11 mkstemps64 F
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 _sys_errlist D 0x404
+GLIBC_2.12 _sys_nerr D 0x4
+GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 recvmmsg F
+GLIBC_2.12 sys_errlist D 0x404
+GLIBC_2.12 sys_nerr D 0x4
+GLIBC_2.13 GLIBC_2.13 A
+GLIBC_2.13 fanotify_init F
+GLIBC_2.13 prlimit F
+GLIBC_2.14 GLIBC_2.14 A
+GLIBC_2.14 clock_adjtime F
+GLIBC_2.14 name_to_handle_at F
+GLIBC_2.14 open_by_handle_at F
+GLIBC_2.14 sendmmsg F
+GLIBC_2.14 setns F
+GLIBC_2.14 syncfs F
+GLIBC_2.15 GLIBC_2.15 A
+GLIBC_2.15 __fdelt_chk F
+GLIBC_2.15 __fdelt_warn F
+GLIBC_2.15 posix_spawn F
+GLIBC_2.15 posix_spawnp F
+GLIBC_2.15 process_vm_readv F
+GLIBC_2.15 process_vm_writev F
+GLIBC_2.15 scandirat F
+GLIBC_2.15 scandirat64 F
+GLIBC_2.16 GLIBC_2.16 A
+GLIBC_2.16 __getauxval F
+GLIBC_2.16 __poll_chk F
+GLIBC_2.16 __ppoll_chk F
+GLIBC_2.16 aligned_alloc F
+GLIBC_2.16 c16rtomb F
+GLIBC_2.16 c32rtomb F
+GLIBC_2.16 getauxval F
+GLIBC_2.16 mbrtoc16 F
+GLIBC_2.16 mbrtoc32 F
+GLIBC_2.16 timespec_get F
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 _sys_errlist D 0x410
+GLIBC_2.17 _sys_nerr D 0x4
+GLIBC_2.17 clock_getcpuclockid F
+GLIBC_2.17 clock_getres F
+GLIBC_2.17 clock_gettime F
+GLIBC_2.17 clock_nanosleep F
+GLIBC_2.17 clock_settime F
+GLIBC_2.17 prlimit64 F
+GLIBC_2.17 secure_getenv F
+GLIBC_2.17 sys_errlist D 0x410
+GLIBC_2.17 sys_nerr D 0x4
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.19 GLIBC_2.19 A
+GLIBC_2.19 fanotify_mark F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 _Exit F
+GLIBC_2.2 _IO_2_1_stderr_ D 0xa0
+GLIBC_2.2 _IO_2_1_stdin_ D 0xa0
+GLIBC_2.2 _IO_2_1_stdout_ D 0xa0
+GLIBC_2.2 _IO_adjust_column F
+GLIBC_2.2 _IO_adjust_wcolumn F
+GLIBC_2.2 _IO_default_doallocate F
+GLIBC_2.2 _IO_default_finish F
+GLIBC_2.2 _IO_default_pbackfail F
+GLIBC_2.2 _IO_default_uflow F
+GLIBC_2.2 _IO_default_xsgetn F
+GLIBC_2.2 _IO_default_xsputn F
+GLIBC_2.2 _IO_do_write F
+GLIBC_2.2 _IO_doallocbuf F
+GLIBC_2.2 _IO_fclose F
+GLIBC_2.2 _IO_fdopen F
+GLIBC_2.2 _IO_feof F
+GLIBC_2.2 _IO_ferror F
+GLIBC_2.2 _IO_fflush F
+GLIBC_2.2 _IO_fgetpos F
+GLIBC_2.2 _IO_fgetpos64 F
+GLIBC_2.2 _IO_fgets F
+GLIBC_2.2 _IO_file_attach F
+GLIBC_2.2 _IO_file_close F
+GLIBC_2.2 _IO_file_close_it F
+GLIBC_2.2 _IO_file_doallocate F
+GLIBC_2.2 _IO_file_finish F
+GLIBC_2.2 _IO_file_fopen F
+GLIBC_2.2 _IO_file_init F
+GLIBC_2.2 _IO_file_jumps D 0x54
+GLIBC_2.2 _IO_file_open F
+GLIBC_2.2 _IO_file_overflow F
+GLIBC_2.2 _IO_file_read F
+GLIBC_2.2 _IO_file_seek F
+GLIBC_2.2 _IO_file_seekoff F
+GLIBC_2.2 _IO_file_setbuf F
+GLIBC_2.2 _IO_file_stat F
+GLIBC_2.2 _IO_file_sync F
+GLIBC_2.2 _IO_file_underflow F
+GLIBC_2.2 _IO_file_write F
+GLIBC_2.2 _IO_file_xsputn F
+GLIBC_2.2 _IO_flockfile F
+GLIBC_2.2 _IO_flush_all F
+GLIBC_2.2 _IO_flush_all_linebuffered F
+GLIBC_2.2 _IO_fopen F
+GLIBC_2.2 _IO_fprintf F
+GLIBC_2.2 _IO_fputs F
+GLIBC_2.2 _IO_fread F
+GLIBC_2.2 _IO_free_backup_area F
+GLIBC_2.2 _IO_free_wbackup_area F
+GLIBC_2.2 _IO_fsetpos F
+GLIBC_2.2 _IO_fsetpos64 F
+GLIBC_2.2 _IO_ftell F
+GLIBC_2.2 _IO_ftrylockfile F
+GLIBC_2.2 _IO_funlockfile F
+GLIBC_2.2 _IO_fwrite F
+GLIBC_2.2 _IO_getc F
+GLIBC_2.2 _IO_getline F
+GLIBC_2.2 _IO_getline_info F
+GLIBC_2.2 _IO_gets F
+GLIBC_2.2 _IO_init F
+GLIBC_2.2 _IO_init_marker F
+GLIBC_2.2 _IO_init_wmarker F
+GLIBC_2.2 _IO_iter_begin F
+GLIBC_2.2 _IO_iter_end F
+GLIBC_2.2 _IO_iter_file F
+GLIBC_2.2 _IO_iter_next F
+GLIBC_2.2 _IO_least_wmarker F
+GLIBC_2.2 _IO_link_in F
+GLIBC_2.2 _IO_list_all D 0x4
+GLIBC_2.2 _IO_list_lock F
+GLIBC_2.2 _IO_list_resetlock F
+GLIBC_2.2 _IO_list_unlock F
+GLIBC_2.2 _IO_marker_delta F
+GLIBC_2.2 _IO_marker_difference F
+GLIBC_2.2 _IO_padn F
+GLIBC_2.2 _IO_peekc_locked F
+GLIBC_2.2 _IO_popen F
+GLIBC_2.2 _IO_printf F
+GLIBC_2.2 _IO_proc_close F
+GLIBC_2.2 _IO_proc_open F
+GLIBC_2.2 _IO_putc F
+GLIBC_2.2 _IO_puts F
+GLIBC_2.2 _IO_remove_marker F
+GLIBC_2.2 _IO_seekmark F
+GLIBC_2.2 _IO_seekoff F
+GLIBC_2.2 _IO_seekpos F
+GLIBC_2.2 _IO_seekwmark F
+GLIBC_2.2 _IO_setb F
+GLIBC_2.2 _IO_setbuffer F
+GLIBC_2.2 _IO_setvbuf F
+GLIBC_2.2 _IO_sgetn F
+GLIBC_2.2 _IO_sprintf F
+GLIBC_2.2 _IO_sputbackc F
+GLIBC_2.2 _IO_sputbackwc F
+GLIBC_2.2 _IO_sscanf F
+GLIBC_2.2 _IO_str_init_readonly F
+GLIBC_2.2 _IO_str_init_static F
+GLIBC_2.2 _IO_str_overflow F
+GLIBC_2.2 _IO_str_pbackfail F
+GLIBC_2.2 _IO_str_seekoff F
+GLIBC_2.2 _IO_str_underflow F
+GLIBC_2.2 _IO_sungetc F
+GLIBC_2.2 _IO_sungetwc F
+GLIBC_2.2 _IO_switch_to_get_mode F
+GLIBC_2.2 _IO_switch_to_main_wget_area F
+GLIBC_2.2 _IO_switch_to_wbackup_area F
+GLIBC_2.2 _IO_switch_to_wget_mode F
+GLIBC_2.2 _IO_un_link F
+GLIBC_2.2 _IO_ungetc F
+GLIBC_2.2 _IO_unsave_markers F
+GLIBC_2.2 _IO_unsave_wmarkers F
+GLIBC_2.2 _IO_vfprintf F
+GLIBC_2.2 _IO_vfscanf F
+GLIBC_2.2 _IO_vsprintf F
+GLIBC_2.2 _IO_wdefault_doallocate F
+GLIBC_2.2 _IO_wdefault_finish F
+GLIBC_2.2 _IO_wdefault_pbackfail F
+GLIBC_2.2 _IO_wdefault_uflow F
+GLIBC_2.2 _IO_wdefault_xsgetn F
+GLIBC_2.2 _IO_wdefault_xsputn F
+GLIBC_2.2 _IO_wdo_write F
+GLIBC_2.2 _IO_wdoallocbuf F
+GLIBC_2.2 _IO_wfile_jumps D 0x54
+GLIBC_2.2 _IO_wfile_overflow F
+GLIBC_2.2 _IO_wfile_seekoff F
+GLIBC_2.2 _IO_wfile_sync F
+GLIBC_2.2 _IO_wfile_underflow F
+GLIBC_2.2 _IO_wfile_xsputn F
+GLIBC_2.2 _IO_wmarker_delta F
+GLIBC_2.2 _IO_wsetb F
+GLIBC_2.2 __adjtimex F
+GLIBC_2.2 __after_morecore_hook D 0x4
+GLIBC_2.2 __argz_count F
+GLIBC_2.2 __argz_next F
+GLIBC_2.2 __argz_stringify F
+GLIBC_2.2 __asprintf F
+GLIBC_2.2 __assert F
+GLIBC_2.2 __assert_fail F
+GLIBC_2.2 __assert_perror_fail F
+GLIBC_2.2 __backtrace F
+GLIBC_2.2 __backtrace_symbols F
+GLIBC_2.2 __backtrace_symbols_fd F
+GLIBC_2.2 __bsd_getpgrp F
+GLIBC_2.2 __bzero F
+GLIBC_2.2 __check_rhosts_file D 0x4
+GLIBC_2.2 __clone F
+GLIBC_2.2 __close F
+GLIBC_2.2 __clz_tab D 0x100
+GLIBC_2.2 __cmsg_nxthdr F
+GLIBC_2.2 __connect F
+GLIBC_2.2 __ctype32_b D 0x4
+GLIBC_2.2 __ctype32_tolower D 0x4
+GLIBC_2.2 __ctype32_toupper D 0x4
+GLIBC_2.2 __ctype_b D 0x4
+GLIBC_2.2 __ctype_get_mb_cur_max F
+GLIBC_2.2 __ctype_tolower D 0x4
+GLIBC_2.2 __ctype_toupper D 0x4
+GLIBC_2.2 __curbrk D 0x4
+GLIBC_2.2 __cxa_atexit F
+GLIBC_2.2 __cxa_finalize F
+GLIBC_2.2 __cyg_profile_func_enter F
+GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __daylight D 0x4
+GLIBC_2.2 __dcgettext F
+GLIBC_2.2 __default_morecore F
+GLIBC_2.2 __dgettext F
+GLIBC_2.2 __dup2 F
+GLIBC_2.2 __duplocale F
+GLIBC_2.2 __endmntent F
+GLIBC_2.2 __environ D 0x4
+GLIBC_2.2 __errno_location F
+GLIBC_2.2 __fbufsize F
+GLIBC_2.2 __fcntl F
+GLIBC_2.2 __ffs F
+GLIBC_2.2 __finite F
+GLIBC_2.2 __finitef F
+GLIBC_2.2 __flbf F
+GLIBC_2.2 __fork F
+GLIBC_2.2 __fpending F
+GLIBC_2.2 __fpu_control D 0x4
+GLIBC_2.2 __fpurge F
+GLIBC_2.2 __freadable F
+GLIBC_2.2 __freading F
+GLIBC_2.2 __free_hook D 0x4
+GLIBC_2.2 __freelocale F
+GLIBC_2.2 __fsetlocking F
+GLIBC_2.2 __fwritable F
+GLIBC_2.2 __fwriting F
+GLIBC_2.2 __fxstat F
+GLIBC_2.2 __fxstat64 F
+GLIBC_2.2 __getdelim F
+GLIBC_2.2 __getmntent_r F
+GLIBC_2.2 __getpagesize F
+GLIBC_2.2 __getpgid F
+GLIBC_2.2 __getpid F
+GLIBC_2.2 __gettimeofday F
+GLIBC_2.2 __gmtime_r F
+GLIBC_2.2 __h_errno_location F
+GLIBC_2.2 __isalnum_l F
+GLIBC_2.2 __isalpha_l F
+GLIBC_2.2 __isascii_l F
+GLIBC_2.2 __isblank_l F
+GLIBC_2.2 __iscntrl_l F
+GLIBC_2.2 __isdigit_l F
+GLIBC_2.2 __isgraph_l F
+GLIBC_2.2 __isinf F
+GLIBC_2.2 __isinff F
+GLIBC_2.2 __islower_l F
+GLIBC_2.2 __isnan F
+GLIBC_2.2 __isnanf F
+GLIBC_2.2 __isprint_l F
+GLIBC_2.2 __ispunct_l F
+GLIBC_2.2 __isspace_l F
+GLIBC_2.2 __isupper_l F
+GLIBC_2.2 __iswalnum_l F
+GLIBC_2.2 __iswalpha_l F
+GLIBC_2.2 __iswblank_l F
+GLIBC_2.2 __iswcntrl_l F
+GLIBC_2.2 __iswctype F
+GLIBC_2.2 __iswctype_l F
+GLIBC_2.2 __iswdigit_l F
+GLIBC_2.2 __iswgraph_l F
+GLIBC_2.2 __iswlower_l F
+GLIBC_2.2 __iswprint_l F
+GLIBC_2.2 __iswpunct_l F
+GLIBC_2.2 __iswspace_l F
+GLIBC_2.2 __iswupper_l F
+GLIBC_2.2 __iswxdigit_l F
+GLIBC_2.2 __isxdigit_l F
+GLIBC_2.2 __ivaliduser F
+GLIBC_2.2 __key_decryptsession_pk_LOCAL D 0x4
+GLIBC_2.2 __key_encryptsession_pk_LOCAL D 0x4
+GLIBC_2.2 __key_gendes_LOCAL D 0x4
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_calloc F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+GLIBC_2.2 __libc_free F
+GLIBC_2.2 __libc_freeres F
+GLIBC_2.2 __libc_init_first F
+GLIBC_2.2 __libc_mallinfo F
+GLIBC_2.2 __libc_malloc F
+GLIBC_2.2 __libc_mallopt F
+GLIBC_2.2 __libc_memalign F
+GLIBC_2.2 __libc_pvalloc F
+GLIBC_2.2 __libc_realloc F
+GLIBC_2.2 __libc_sa_len F
+GLIBC_2.2 __libc_start_main F
+GLIBC_2.2 __libc_valloc F
+GLIBC_2.2 __lseek F
+GLIBC_2.2 __lxstat F
+GLIBC_2.2 __lxstat64 F
+GLIBC_2.2 __malloc_hook D 0x4
+GLIBC_2.2 __malloc_initialize_hook D 0x4
+GLIBC_2.2 __mbrlen F
+GLIBC_2.2 __mbrtowc F
+GLIBC_2.2 __memalign_hook D 0x4
+GLIBC_2.2 __mempcpy F
+GLIBC_2.2 __mempcpy_small F
+GLIBC_2.2 __monstartup F
+GLIBC_2.2 __morecore D 0x4
+GLIBC_2.2 __newlocale F
+GLIBC_2.2 __nl_langinfo_l F
+GLIBC_2.2 __nss_configure_lookup F
+GLIBC_2.2 __nss_database_lookup F
+GLIBC_2.2 __nss_group_lookup F
+GLIBC_2.2 __nss_hosts_lookup F
+GLIBC_2.2 __nss_next F
+GLIBC_2.2 __nss_passwd_lookup F
+GLIBC_2.2 __open F
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __overflow F
+GLIBC_2.2 __pipe F
+GLIBC_2.2 __poll F
+GLIBC_2.2 __pread64 F
+GLIBC_2.2 __printf_fp F
+GLIBC_2.2 __profile_frequency F
+GLIBC_2.2 __progname D 0x4
+GLIBC_2.2 __progname_full D 0x4
+GLIBC_2.2 __pwrite64 F
+GLIBC_2.2 __rawmemchr F
+GLIBC_2.2 __rcmd_errstr D 0x4
+GLIBC_2.2 __read F
+GLIBC_2.2 __realloc_hook D 0x4
+GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_nclose F
+GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_randomid F
+GLIBC_2.2 __res_state F
+GLIBC_2.2 __sbrk F
+GLIBC_2.2 __sched_get_priority_max F
+GLIBC_2.2 __sched_get_priority_min F
+GLIBC_2.2 __sched_getparam F
+GLIBC_2.2 __sched_getscheduler F
+GLIBC_2.2 __sched_setscheduler F
+GLIBC_2.2 __sched_yield F
+GLIBC_2.2 __secure_getenv F
+GLIBC_2.2 __select F
+GLIBC_2.2 __send F
+GLIBC_2.2 __setmntent F
+GLIBC_2.2 __setpgid F
+GLIBC_2.2 __sigaction F
+GLIBC_2.2 __sigaddset F
+GLIBC_2.2 __sigdelset F
+GLIBC_2.2 __sigismember F
+GLIBC_2.2 __signbit F
+GLIBC_2.2 __signbitf F
+GLIBC_2.2 __signbitl F
+GLIBC_2.2 __sigpause F
+GLIBC_2.2 __sigsetjmp F
+GLIBC_2.2 __sigsuspend F
+GLIBC_2.2 __statfs F
+GLIBC_2.2 __stpcpy F
+GLIBC_2.2 __stpcpy_small F
+GLIBC_2.2 __stpncpy F
+GLIBC_2.2 __strcasecmp F
+GLIBC_2.2 __strcasecmp_l F
+GLIBC_2.2 __strcasestr F
+GLIBC_2.2 __strcoll_l F
+GLIBC_2.2 __strcpy_small F
+GLIBC_2.2 __strcspn_c1 F
+GLIBC_2.2 __strcspn_c2 F
+GLIBC_2.2 __strcspn_c3 F
+GLIBC_2.2 __strdup F
+GLIBC_2.2 __strerror_r F
+GLIBC_2.2 __strfmon_l F
+GLIBC_2.2 __strncasecmp_l F
+GLIBC_2.2 __strndup F
+GLIBC_2.2 __strpbrk_c2 F
+GLIBC_2.2 __strpbrk_c3 F
+GLIBC_2.2 __strsep_1c F
+GLIBC_2.2 __strsep_2c F
+GLIBC_2.2 __strsep_3c F
+GLIBC_2.2 __strsep_g F
+GLIBC_2.2 __strspn_c1 F
+GLIBC_2.2 __strspn_c2 F
+GLIBC_2.2 __strspn_c3 F
+GLIBC_2.2 __strtod_internal F
+GLIBC_2.2 __strtod_l F
+GLIBC_2.2 __strtof_internal F
+GLIBC_2.2 __strtof_l F
+GLIBC_2.2 __strtok_r F
+GLIBC_2.2 __strtok_r_1c F
+GLIBC_2.2 __strtol_internal F
+GLIBC_2.2 __strtol_l F
+GLIBC_2.2 __strtold_internal F
+GLIBC_2.2 __strtold_l F
+GLIBC_2.2 __strtoll_internal F
+GLIBC_2.2 __strtoll_l F
+GLIBC_2.2 __strtoul_internal F
+GLIBC_2.2 __strtoul_l F
+GLIBC_2.2 __strtoull_internal F
+GLIBC_2.2 __strtoull_l F
+GLIBC_2.2 __strverscmp F
+GLIBC_2.2 __strxfrm_l F
+GLIBC_2.2 __sysconf F
+GLIBC_2.2 __sysctl F
+GLIBC_2.2 __sysv_signal F
+GLIBC_2.2 __timezone D 0x4
+GLIBC_2.2 __toascii_l F
+GLIBC_2.2 __tolower_l F
+GLIBC_2.2 __toupper_l F
+GLIBC_2.2 __towctrans F
+GLIBC_2.2 __towctrans_l F
+GLIBC_2.2 __towlower_l F
+GLIBC_2.2 __towupper_l F
+GLIBC_2.2 __tzname D 0x8
+GLIBC_2.2 __uflow F
+GLIBC_2.2 __underflow F
+GLIBC_2.2 __vfork F
+GLIBC_2.2 __vfscanf F
+GLIBC_2.2 __vsnprintf F
+GLIBC_2.2 __vsscanf F
+GLIBC_2.2 __wait F
+GLIBC_2.2 __waitpid F
+GLIBC_2.2 __wcscasecmp_l F
+GLIBC_2.2 __wcscoll_l F
+GLIBC_2.2 __wcsncasecmp_l F
+GLIBC_2.2 __wcstod_internal F
+GLIBC_2.2 __wcstod_l F
+GLIBC_2.2 __wcstof_internal F
+GLIBC_2.2 __wcstof_l F
+GLIBC_2.2 __wcstol_internal F
+GLIBC_2.2 __wcstol_l F
+GLIBC_2.2 __wcstold_internal F
+GLIBC_2.2 __wcstold_l F
+GLIBC_2.2 __wcstoll_internal F
+GLIBC_2.2 __wcstoll_l F
+GLIBC_2.2 __wcstoul_internal F
+GLIBC_2.2 __wcstoul_l F
+GLIBC_2.2 __wcstoull_internal F
+GLIBC_2.2 __wcstoull_l F
+GLIBC_2.2 __wcsxfrm_l F
+GLIBC_2.2 __wctrans_l F
+GLIBC_2.2 __wctype_l F
+GLIBC_2.2 __woverflow F
+GLIBC_2.2 __write F
+GLIBC_2.2 __wuflow F
+GLIBC_2.2 __wunderflow F
+GLIBC_2.2 __xmknod F
+GLIBC_2.2 __xpg_basename F
+GLIBC_2.2 __xpg_sigpause F
+GLIBC_2.2 __xstat F
+GLIBC_2.2 __xstat64 F
+GLIBC_2.2 _authenticate F
+GLIBC_2.2 _dl_mcount_wrapper F
+GLIBC_2.2 _dl_mcount_wrapper_check F
+GLIBC_2.2 _environ D 0x4
+GLIBC_2.2 _exit F
+GLIBC_2.2 _flushlbf F
+GLIBC_2.2 _libc_intl_domainname D 0x5
+GLIBC_2.2 _longjmp F
+GLIBC_2.2 _mcleanup F
+GLIBC_2.2 _mcount F
+GLIBC_2.2 _nl_default_dirname D 0x12
+GLIBC_2.2 _nl_domain_bindings D 0x4
+GLIBC_2.2 _nl_msg_cat_cntr D 0x4
+GLIBC_2.2 _null_auth D 0xc
+GLIBC_2.2 _obstack D 0x4
+GLIBC_2.2 _obstack_allocated_p F
+GLIBC_2.2 _obstack_begin F
+GLIBC_2.2 _obstack_begin_1 F
+GLIBC_2.2 _obstack_free F
+GLIBC_2.2 _obstack_memory_used F
+GLIBC_2.2 _obstack_newchunk F
+GLIBC_2.2 _res D 0x200
+GLIBC_2.2 _res_hconf D 0x30
+GLIBC_2.2 _rpc_dtablesize F
+GLIBC_2.2 _seterr_reply F
+GLIBC_2.2 _setjmp F
+GLIBC_2.2 _sys_errlist D 0x3f4
+GLIBC_2.2 _sys_nerr D 0x4
+GLIBC_2.2 _sys_siglist D 0x100
+GLIBC_2.2 _tolower F
+GLIBC_2.2 _toupper F
+GLIBC_2.2 a64l F
+GLIBC_2.2 abort F
+GLIBC_2.2 abs F
+GLIBC_2.2 accept F
+GLIBC_2.2 access F
+GLIBC_2.2 acct F
+GLIBC_2.2 addmntent F
+GLIBC_2.2 addseverity F
+GLIBC_2.2 adjtime F
+GLIBC_2.2 adjtimex F
+GLIBC_2.2 advance F
+GLIBC_2.2 alarm F
+GLIBC_2.2 alphasort F
+GLIBC_2.2 alphasort64 F
+GLIBC_2.2 argp_err_exit_status D 0x4
+GLIBC_2.2 argp_error F
+GLIBC_2.2 argp_failure F
+GLIBC_2.2 argp_help F
+GLIBC_2.2 argp_parse F
+GLIBC_2.2 argp_program_bug_address D 0x4
+GLIBC_2.2 argp_program_version D 0x4
+GLIBC_2.2 argp_program_version_hook D 0x4
+GLIBC_2.2 argp_state_help F
+GLIBC_2.2 argp_usage F
+GLIBC_2.2 argz_add F
+GLIBC_2.2 argz_add_sep F
+GLIBC_2.2 argz_append F
+GLIBC_2.2 argz_count F
+GLIBC_2.2 argz_create F
+GLIBC_2.2 argz_create_sep F
+GLIBC_2.2 argz_delete F
+GLIBC_2.2 argz_extract F
+GLIBC_2.2 argz_insert F
+GLIBC_2.2 argz_next F
+GLIBC_2.2 argz_replace F
+GLIBC_2.2 argz_stringify F
+GLIBC_2.2 asctime F
+GLIBC_2.2 asctime_r F
+GLIBC_2.2 asprintf F
+GLIBC_2.2 atexit F
+GLIBC_2.2 atof F
+GLIBC_2.2 atoi F
+GLIBC_2.2 atol F
+GLIBC_2.2 atoll F
+GLIBC_2.2 authdes_create F
+GLIBC_2.2 authdes_getucred F
+GLIBC_2.2 authdes_pk_create F
+GLIBC_2.2 authnone_create F
+GLIBC_2.2 authunix_create F
+GLIBC_2.2 authunix_create_default F
+GLIBC_2.2 backtrace F
+GLIBC_2.2 backtrace_symbols F
+GLIBC_2.2 backtrace_symbols_fd F
+GLIBC_2.2 basename F
+GLIBC_2.2 bcmp F
+GLIBC_2.2 bcopy F
+GLIBC_2.2 bdflush F
+GLIBC_2.2 bind F
+GLIBC_2.2 bind_textdomain_codeset F
+GLIBC_2.2 bindresvport F
+GLIBC_2.2 bindtextdomain F
+GLIBC_2.2 brk F
+GLIBC_2.2 bsd_signal F
+GLIBC_2.2 bsearch F
+GLIBC_2.2 btowc F
+GLIBC_2.2 bzero F
+GLIBC_2.2 calloc F
+GLIBC_2.2 callrpc F
+GLIBC_2.2 canonicalize_file_name F
+GLIBC_2.2 capget F
+GLIBC_2.2 capset F
+GLIBC_2.2 catclose F
+GLIBC_2.2 catgets F
+GLIBC_2.2 catopen F
+GLIBC_2.2 cbc_crypt F
+GLIBC_2.2 cfgetispeed F
+GLIBC_2.2 cfgetospeed F
+GLIBC_2.2 cfmakeraw F
+GLIBC_2.2 cfree F
+GLIBC_2.2 cfsetispeed F
+GLIBC_2.2 cfsetospeed F
+GLIBC_2.2 cfsetspeed F
+GLIBC_2.2 chdir F
+GLIBC_2.2 chflags F
+GLIBC_2.2 chmod F
+GLIBC_2.2 chown F
+GLIBC_2.2 chroot F
+GLIBC_2.2 clearenv F
+GLIBC_2.2 clearerr F
+GLIBC_2.2 clearerr_unlocked F
+GLIBC_2.2 clnt_broadcast F
+GLIBC_2.2 clnt_create F
+GLIBC_2.2 clnt_pcreateerror F
+GLIBC_2.2 clnt_perrno F
+GLIBC_2.2 clnt_perror F
+GLIBC_2.2 clnt_spcreateerror F
+GLIBC_2.2 clnt_sperrno F
+GLIBC_2.2 clnt_sperror F
+GLIBC_2.2 clntraw_create F
+GLIBC_2.2 clnttcp_create F
+GLIBC_2.2 clntudp_bufcreate F
+GLIBC_2.2 clntudp_create F
+GLIBC_2.2 clntunix_create F
+GLIBC_2.2 clock F
+GLIBC_2.2 clone F
+GLIBC_2.2 close F
+GLIBC_2.2 closedir F
+GLIBC_2.2 closelog F
+GLIBC_2.2 confstr F
+GLIBC_2.2 connect F
+GLIBC_2.2 copysign F
+GLIBC_2.2 copysignf F
+GLIBC_2.2 copysignl F
+GLIBC_2.2 creat F
+GLIBC_2.2 creat64 F
+GLIBC_2.2 create_module F
+GLIBC_2.2 ctermid F
+GLIBC_2.2 ctime F
+GLIBC_2.2 ctime_r F
+GLIBC_2.2 cuserid F
+GLIBC_2.2 daemon F
+GLIBC_2.2 daylight D 0x4
+GLIBC_2.2 dcgettext F
+GLIBC_2.2 dcngettext F
+GLIBC_2.2 delete_module F
+GLIBC_2.2 des_setparity F
+GLIBC_2.2 dgettext F
+GLIBC_2.2 difftime F
+GLIBC_2.2 dirfd F
+GLIBC_2.2 dirname F
+GLIBC_2.2 div F
+GLIBC_2.2 dngettext F
+GLIBC_2.2 dprintf F
+GLIBC_2.2 drand48 F
+GLIBC_2.2 drand48_r F
+GLIBC_2.2 dup F
+GLIBC_2.2 dup2 F
+GLIBC_2.2 dysize F
+GLIBC_2.2 ecb_crypt F
+GLIBC_2.2 ecvt F
+GLIBC_2.2 ecvt_r F
+GLIBC_2.2 endaliasent F
+GLIBC_2.2 endfsent F
+GLIBC_2.2 endgrent F
+GLIBC_2.2 endhostent F
+GLIBC_2.2 endmntent F
+GLIBC_2.2 endnetent F
+GLIBC_2.2 endnetgrent F
+GLIBC_2.2 endprotoent F
+GLIBC_2.2 endpwent F
+GLIBC_2.2 endrpcent F
+GLIBC_2.2 endservent F
+GLIBC_2.2 endspent F
+GLIBC_2.2 endttyent F
+GLIBC_2.2 endusershell F
+GLIBC_2.2 endutent F
+GLIBC_2.2 endutxent F
+GLIBC_2.2 environ D 0x4
+GLIBC_2.2 envz_add F
+GLIBC_2.2 envz_entry F
+GLIBC_2.2 envz_get F
+GLIBC_2.2 envz_merge F
+GLIBC_2.2 envz_remove F
+GLIBC_2.2 envz_strip F
+GLIBC_2.2 erand48 F
+GLIBC_2.2 erand48_r F
+GLIBC_2.2 err F
+GLIBC_2.2 error F
+GLIBC_2.2 error_at_line F
+GLIBC_2.2 error_message_count D 0x4
+GLIBC_2.2 error_one_per_line D 0x4
+GLIBC_2.2 error_print_progname D 0x4
+GLIBC_2.2 errx F
+GLIBC_2.2 ether_aton F
+GLIBC_2.2 ether_aton_r F
+GLIBC_2.2 ether_hostton F
+GLIBC_2.2 ether_line F
+GLIBC_2.2 ether_ntoa F
+GLIBC_2.2 ether_ntoa_r F
+GLIBC_2.2 ether_ntohost F
+GLIBC_2.2 euidaccess F
+GLIBC_2.2 execl F
+GLIBC_2.2 execle F
+GLIBC_2.2 execlp F
+GLIBC_2.2 execv F
+GLIBC_2.2 execve F
+GLIBC_2.2 execvp F
+GLIBC_2.2 exit F
+GLIBC_2.2 fattach F
+GLIBC_2.2 fchdir F
+GLIBC_2.2 fchflags F
+GLIBC_2.2 fchmod F
+GLIBC_2.2 fchown F
+GLIBC_2.2 fclose F
+GLIBC_2.2 fcloseall F
+GLIBC_2.2 fcntl F
+GLIBC_2.2 fcvt F
+GLIBC_2.2 fcvt_r F
+GLIBC_2.2 fdatasync F
+GLIBC_2.2 fdetach F
+GLIBC_2.2 fdopen F
+GLIBC_2.2 feof F
+GLIBC_2.2 feof_unlocked F
+GLIBC_2.2 ferror F
+GLIBC_2.2 ferror_unlocked F
+GLIBC_2.2 fexecve F
+GLIBC_2.2 fflush F
+GLIBC_2.2 fflush_unlocked F
+GLIBC_2.2 ffs F
+GLIBC_2.2 ffsl F
+GLIBC_2.2 ffsll F
+GLIBC_2.2 fgetc F
+GLIBC_2.2 fgetc_unlocked F
+GLIBC_2.2 fgetgrent F
+GLIBC_2.2 fgetgrent_r F
+GLIBC_2.2 fgetpos F
+GLIBC_2.2 fgetpos64 F
+GLIBC_2.2 fgetpwent F
+GLIBC_2.2 fgetpwent_r F
+GLIBC_2.2 fgets F
+GLIBC_2.2 fgets_unlocked F
+GLIBC_2.2 fgetspent F
+GLIBC_2.2 fgetspent_r F
+GLIBC_2.2 fgetwc F
+GLIBC_2.2 fgetwc_unlocked F
+GLIBC_2.2 fgetws F
+GLIBC_2.2 fgetws_unlocked F
+GLIBC_2.2 fileno F
+GLIBC_2.2 fileno_unlocked F
+GLIBC_2.2 finite F
+GLIBC_2.2 finitef F
+GLIBC_2.2 finitel F
+GLIBC_2.2 flock F
+GLIBC_2.2 flockfile F
+GLIBC_2.2 fmemopen F
+GLIBC_2.2 fmtmsg F
+GLIBC_2.2 fnmatch F
+GLIBC_2.2 fopen F
+GLIBC_2.2 fopen64 F
+GLIBC_2.2 fopencookie F
+GLIBC_2.2 fork F
+GLIBC_2.2 fpathconf F
+GLIBC_2.2 fprintf F
+GLIBC_2.2 fputc F
+GLIBC_2.2 fputc_unlocked F
+GLIBC_2.2 fputs F
+GLIBC_2.2 fputs_unlocked F
+GLIBC_2.2 fputwc F
+GLIBC_2.2 fputwc_unlocked F
+GLIBC_2.2 fputws F
+GLIBC_2.2 fputws_unlocked F
+GLIBC_2.2 fread F
+GLIBC_2.2 fread_unlocked F
+GLIBC_2.2 free F
+GLIBC_2.2 freeaddrinfo F
+GLIBC_2.2 freopen F
+GLIBC_2.2 freopen64 F
+GLIBC_2.2 frexp F
+GLIBC_2.2 frexpf F
+GLIBC_2.2 frexpl F
+GLIBC_2.2 fscanf F
+GLIBC_2.2 fseek F
+GLIBC_2.2 fseeko F
+GLIBC_2.2 fseeko64 F
+GLIBC_2.2 fsetpos F
+GLIBC_2.2 fsetpos64 F
+GLIBC_2.2 fstatfs F
+GLIBC_2.2 fstatfs64 F
+GLIBC_2.2 fstatvfs F
+GLIBC_2.2 fstatvfs64 F
+GLIBC_2.2 fsync F
+GLIBC_2.2 ftell F
+GLIBC_2.2 ftello F
+GLIBC_2.2 ftello64 F
+GLIBC_2.2 ftime F
+GLIBC_2.2 ftok F
+GLIBC_2.2 ftruncate F
+GLIBC_2.2 ftruncate64 F
+GLIBC_2.2 ftrylockfile F
+GLIBC_2.2 fts_children F
+GLIBC_2.2 fts_close F
+GLIBC_2.2 fts_open F
+GLIBC_2.2 fts_read F
+GLIBC_2.2 fts_set F
+GLIBC_2.2 ftw F
+GLIBC_2.2 ftw64 F
+GLIBC_2.2 funlockfile F
+GLIBC_2.2 fwide F
+GLIBC_2.2 fwprintf F
+GLIBC_2.2 fwrite F
+GLIBC_2.2 fwrite_unlocked F
+GLIBC_2.2 fwscanf F
+GLIBC_2.2 gai_strerror F
+GLIBC_2.2 gcvt F
+GLIBC_2.2 get_avphys_pages F
+GLIBC_2.2 get_current_dir_name F
+GLIBC_2.2 get_kernel_syms F
+GLIBC_2.2 get_myaddress F
+GLIBC_2.2 get_nprocs F
+GLIBC_2.2 get_nprocs_conf F
+GLIBC_2.2 get_phys_pages F
+GLIBC_2.2 getaddrinfo F
+GLIBC_2.2 getaliasbyname F
+GLIBC_2.2 getaliasbyname_r F
+GLIBC_2.2 getaliasent F
+GLIBC_2.2 getaliasent_r F
+GLIBC_2.2 getc F
+GLIBC_2.2 getc_unlocked F
+GLIBC_2.2 getchar F
+GLIBC_2.2 getchar_unlocked F
+GLIBC_2.2 getcontext F
+GLIBC_2.2 getcwd F
+GLIBC_2.2 getdate F
+GLIBC_2.2 getdate_err D 0x4
+GLIBC_2.2 getdate_r F
+GLIBC_2.2 getdelim F
+GLIBC_2.2 getdirentries F
+GLIBC_2.2 getdirentries64 F
+GLIBC_2.2 getdomainname F
+GLIBC_2.2 getdtablesize F
+GLIBC_2.2 getegid F
+GLIBC_2.2 getenv F
+GLIBC_2.2 geteuid F
+GLIBC_2.2 getfsent F
+GLIBC_2.2 getfsfile F
+GLIBC_2.2 getfsspec F
+GLIBC_2.2 getgid F
+GLIBC_2.2 getgrent F
+GLIBC_2.2 getgrent_r F
+GLIBC_2.2 getgrgid F
+GLIBC_2.2 getgrgid_r F
+GLIBC_2.2 getgrnam F
+GLIBC_2.2 getgrnam_r F
+GLIBC_2.2 getgroups F
+GLIBC_2.2 gethostbyaddr F
+GLIBC_2.2 gethostbyaddr_r F
+GLIBC_2.2 gethostbyname F
+GLIBC_2.2 gethostbyname2 F
+GLIBC_2.2 gethostbyname2_r F
+GLIBC_2.2 gethostbyname_r F
+GLIBC_2.2 gethostent F
+GLIBC_2.2 gethostent_r F
+GLIBC_2.2 gethostid F
+GLIBC_2.2 gethostname F
+GLIBC_2.2 getitimer F
+GLIBC_2.2 getline F
+GLIBC_2.2 getloadavg F
+GLIBC_2.2 getlogin F
+GLIBC_2.2 getlogin_r F
+GLIBC_2.2 getmntent F
+GLIBC_2.2 getmntent_r F
+GLIBC_2.2 getmsg F
+GLIBC_2.2 getnameinfo F
+GLIBC_2.2 getnetbyaddr F
+GLIBC_2.2 getnetbyaddr_r F
+GLIBC_2.2 getnetbyname F
+GLIBC_2.2 getnetbyname_r F
+GLIBC_2.2 getnetent F
+GLIBC_2.2 getnetent_r F
+GLIBC_2.2 getnetgrent F
+GLIBC_2.2 getnetgrent_r F
+GLIBC_2.2 getnetname F
+GLIBC_2.2 getopt F
+GLIBC_2.2 getopt_long F
+GLIBC_2.2 getopt_long_only F
+GLIBC_2.2 getpagesize F
+GLIBC_2.2 getpass F
+GLIBC_2.2 getpeername F
+GLIBC_2.2 getpgid F
+GLIBC_2.2 getpgrp F
+GLIBC_2.2 getpid F
+GLIBC_2.2 getpmsg F
+GLIBC_2.2 getppid F
+GLIBC_2.2 getpriority F
+GLIBC_2.2 getprotobyname F
+GLIBC_2.2 getprotobyname_r F
+GLIBC_2.2 getprotobynumber F
+GLIBC_2.2 getprotobynumber_r F
+GLIBC_2.2 getprotoent F
+GLIBC_2.2 getprotoent_r F
+GLIBC_2.2 getpt F
+GLIBC_2.2 getpublickey F
+GLIBC_2.2 getpw F
+GLIBC_2.2 getpwent F
+GLIBC_2.2 getpwent_r F
+GLIBC_2.2 getpwnam F
+GLIBC_2.2 getpwnam_r F
+GLIBC_2.2 getpwuid F
+GLIBC_2.2 getpwuid_r F
+GLIBC_2.2 getresgid F
+GLIBC_2.2 getresuid F
+GLIBC_2.2 getrlimit F
+GLIBC_2.2 getrlimit64 F
+GLIBC_2.2 getrpcbyname F
+GLIBC_2.2 getrpcbyname_r F
+GLIBC_2.2 getrpcbynumber F
+GLIBC_2.2 getrpcbynumber_r F
+GLIBC_2.2 getrpcent F
+GLIBC_2.2 getrpcent_r F
+GLIBC_2.2 getrpcport F
+GLIBC_2.2 getrusage F
+GLIBC_2.2 gets F
+GLIBC_2.2 getsecretkey F
+GLIBC_2.2 getservbyname F
+GLIBC_2.2 getservbyname_r F
+GLIBC_2.2 getservbyport F
+GLIBC_2.2 getservbyport_r F
+GLIBC_2.2 getservent F
+GLIBC_2.2 getservent_r F
+GLIBC_2.2 getsid F
+GLIBC_2.2 getsockname F
+GLIBC_2.2 getsockopt F
+GLIBC_2.2 getspent F
+GLIBC_2.2 getspent_r F
+GLIBC_2.2 getspnam F
+GLIBC_2.2 getspnam_r F
+GLIBC_2.2 getsubopt F
+GLIBC_2.2 gettext F
+GLIBC_2.2 gettimeofday F
+GLIBC_2.2 getttyent F
+GLIBC_2.2 getttynam F
+GLIBC_2.2 getuid F
+GLIBC_2.2 getusershell F
+GLIBC_2.2 getutent F
+GLIBC_2.2 getutent_r F
+GLIBC_2.2 getutid F
+GLIBC_2.2 getutid_r F
+GLIBC_2.2 getutline F
+GLIBC_2.2 getutline_r F
+GLIBC_2.2 getutmp F
+GLIBC_2.2 getutmpx F
+GLIBC_2.2 getutxent F
+GLIBC_2.2 getutxid F
+GLIBC_2.2 getutxline F
+GLIBC_2.2 getw F
+GLIBC_2.2 getwc F
+GLIBC_2.2 getwc_unlocked F
+GLIBC_2.2 getwchar F
+GLIBC_2.2 getwchar_unlocked F
+GLIBC_2.2 getwd F
+GLIBC_2.2 glob F
+GLIBC_2.2 glob64 F
+GLIBC_2.2 glob_pattern_p F
+GLIBC_2.2 globfree F
+GLIBC_2.2 globfree64 F
+GLIBC_2.2 gmtime F
+GLIBC_2.2 gmtime_r F
+GLIBC_2.2 gnu_get_libc_release F
+GLIBC_2.2 gnu_get_libc_version F
+GLIBC_2.2 grantpt F
+GLIBC_2.2 group_member F
+GLIBC_2.2 gsignal F
+GLIBC_2.2 gtty F
+GLIBC_2.2 h_errlist D 0x14
+GLIBC_2.2 h_nerr D 0x4
+GLIBC_2.2 hasmntopt F
+GLIBC_2.2 hcreate F
+GLIBC_2.2 hcreate_r F
+GLIBC_2.2 hdestroy F
+GLIBC_2.2 hdestroy_r F
+GLIBC_2.2 herror F
+GLIBC_2.2 host2netname F
+GLIBC_2.2 hsearch F
+GLIBC_2.2 hsearch_r F
+GLIBC_2.2 hstrerror F
+GLIBC_2.2 htonl F
+GLIBC_2.2 htons F
+GLIBC_2.2 iconv F
+GLIBC_2.2 iconv_close F
+GLIBC_2.2 iconv_open F
+GLIBC_2.2 if_freenameindex F
+GLIBC_2.2 if_indextoname F
+GLIBC_2.2 if_nameindex F
+GLIBC_2.2 if_nametoindex F
+GLIBC_2.2 imaxabs F
+GLIBC_2.2 imaxdiv F
+GLIBC_2.2 in6addr_any D 0x10
+GLIBC_2.2 in6addr_loopback D 0x10
+GLIBC_2.2 index F
+GLIBC_2.2 inet_addr F
+GLIBC_2.2 inet_aton F
+GLIBC_2.2 inet_lnaof F
+GLIBC_2.2 inet_makeaddr F
+GLIBC_2.2 inet_netof F
+GLIBC_2.2 inet_network F
+GLIBC_2.2 inet_nsap_addr F
+GLIBC_2.2 inet_nsap_ntoa F
+GLIBC_2.2 inet_ntoa F
+GLIBC_2.2 inet_ntop F
+GLIBC_2.2 inet_pton F
+GLIBC_2.2 init_module F
+GLIBC_2.2 initgroups F
+GLIBC_2.2 initstate F
+GLIBC_2.2 initstate_r F
+GLIBC_2.2 innetgr F
+GLIBC_2.2 insque F
+GLIBC_2.2 ioctl F
+GLIBC_2.2 iruserok F
+GLIBC_2.2 iruserok_af F
+GLIBC_2.2 isalnum F
+GLIBC_2.2 isalpha F
+GLIBC_2.2 isascii F
+GLIBC_2.2 isastream F
+GLIBC_2.2 isatty F
+GLIBC_2.2 isblank F
+GLIBC_2.2 iscntrl F
+GLIBC_2.2 isdigit F
+GLIBC_2.2 isfdtype F
+GLIBC_2.2 isgraph F
+GLIBC_2.2 isinf F
+GLIBC_2.2 isinff F
+GLIBC_2.2 isinfl F
+GLIBC_2.2 islower F
+GLIBC_2.2 isnan F
+GLIBC_2.2 isnanf F
+GLIBC_2.2 isnanl F
+GLIBC_2.2 isprint F
+GLIBC_2.2 ispunct F
+GLIBC_2.2 isspace F
+GLIBC_2.2 isupper F
+GLIBC_2.2 iswalnum F
+GLIBC_2.2 iswalpha F
+GLIBC_2.2 iswblank F
+GLIBC_2.2 iswcntrl F
+GLIBC_2.2 iswctype F
+GLIBC_2.2 iswdigit F
+GLIBC_2.2 iswgraph F
+GLIBC_2.2 iswlower F
+GLIBC_2.2 iswprint F
+GLIBC_2.2 iswpunct F
+GLIBC_2.2 iswspace F
+GLIBC_2.2 iswupper F
+GLIBC_2.2 iswxdigit F
+GLIBC_2.2 isxdigit F
+GLIBC_2.2 jrand48 F
+GLIBC_2.2 jrand48_r F
+GLIBC_2.2 key_decryptsession F
+GLIBC_2.2 key_decryptsession_pk F
+GLIBC_2.2 key_encryptsession F
+GLIBC_2.2 key_encryptsession_pk F
+GLIBC_2.2 key_gendes F
+GLIBC_2.2 key_get_conv F
+GLIBC_2.2 key_secretkey_is_set F
+GLIBC_2.2 key_setnet F
+GLIBC_2.2 key_setsecret F
+GLIBC_2.2 kill F
+GLIBC_2.2 killpg F
+GLIBC_2.2 klogctl F
+GLIBC_2.2 l64a F
+GLIBC_2.2 labs F
+GLIBC_2.2 lchown F
+GLIBC_2.2 lckpwdf F
+GLIBC_2.2 lcong48 F
+GLIBC_2.2 lcong48_r F
+GLIBC_2.2 ldexp F
+GLIBC_2.2 ldexpf F
+GLIBC_2.2 ldexpl F
+GLIBC_2.2 ldiv F
+GLIBC_2.2 lfind F
+GLIBC_2.2 link F
+GLIBC_2.2 listen F
+GLIBC_2.2 llabs F
+GLIBC_2.2 lldiv F
+GLIBC_2.2 llseek F
+GLIBC_2.2 loc1 D 0x4
+GLIBC_2.2 loc2 D 0x4
+GLIBC_2.2 localeconv F
+GLIBC_2.2 localtime F
+GLIBC_2.2 localtime_r F
+GLIBC_2.2 lockf F
+GLIBC_2.2 lockf64 F
+GLIBC_2.2 locs D 0x4
+GLIBC_2.2 longjmp F
+GLIBC_2.2 lrand48 F
+GLIBC_2.2 lrand48_r F
+GLIBC_2.2 lsearch F
+GLIBC_2.2 lseek F
+GLIBC_2.2 lseek64 F
+GLIBC_2.2 madvise F
+GLIBC_2.2 makecontext F
+GLIBC_2.2 mallinfo F
+GLIBC_2.2 malloc F
+GLIBC_2.2 malloc_get_state F
+GLIBC_2.2 malloc_set_state F
+GLIBC_2.2 malloc_stats F
+GLIBC_2.2 malloc_trim F
+GLIBC_2.2 malloc_usable_size F
+GLIBC_2.2 mallopt F
+GLIBC_2.2 mallwatch D 0x4
+GLIBC_2.2 mblen F
+GLIBC_2.2 mbrlen F
+GLIBC_2.2 mbrtowc F
+GLIBC_2.2 mbsinit F
+GLIBC_2.2 mbsnrtowcs F
+GLIBC_2.2 mbsrtowcs F
+GLIBC_2.2 mbstowcs F
+GLIBC_2.2 mbtowc F
+GLIBC_2.2 mcheck F
+GLIBC_2.2 mcheck_check_all F
+GLIBC_2.2 mcheck_pedantic F
+GLIBC_2.2 memalign F
+GLIBC_2.2 memccpy F
+GLIBC_2.2 memchr F
+GLIBC_2.2 memcmp F
+GLIBC_2.2 memcpy F
+GLIBC_2.2 memfrob F
+GLIBC_2.2 memmem F
+GLIBC_2.2 memmove F
+GLIBC_2.2 mempcpy F
+GLIBC_2.2 memrchr F
+GLIBC_2.2 memset F
+GLIBC_2.2 mincore F
+GLIBC_2.2 mkdir F
+GLIBC_2.2 mkdtemp F
+GLIBC_2.2 mkfifo F
+GLIBC_2.2 mkstemp F
+GLIBC_2.2 mkstemp64 F
+GLIBC_2.2 mktemp F
+GLIBC_2.2 mktime F
+GLIBC_2.2 mlock F
+GLIBC_2.2 mlockall F
+GLIBC_2.2 mmap F
+GLIBC_2.2 mmap64 F
+GLIBC_2.2 modf F
+GLIBC_2.2 modff F
+GLIBC_2.2 modfl F
+GLIBC_2.2 moncontrol F
+GLIBC_2.2 monstartup F
+GLIBC_2.2 mount F
+GLIBC_2.2 mprobe F
+GLIBC_2.2 mprotect F
+GLIBC_2.2 mrand48 F
+GLIBC_2.2 mrand48_r F
+GLIBC_2.2 mremap F
+GLIBC_2.2 msgctl F
+GLIBC_2.2 msgget F
+GLIBC_2.2 msgrcv F
+GLIBC_2.2 msgsnd F
+GLIBC_2.2 msync F
+GLIBC_2.2 mtrace F
+GLIBC_2.2 munlock F
+GLIBC_2.2 munlockall F
+GLIBC_2.2 munmap F
+GLIBC_2.2 muntrace F
+GLIBC_2.2 nanosleep F
+GLIBC_2.2 netname2host F
+GLIBC_2.2 netname2user F
+GLIBC_2.2 nfsservctl F
+GLIBC_2.2 nftw F
+GLIBC_2.2 nftw64 F
+GLIBC_2.2 ngettext F
+GLIBC_2.2 nice F
+GLIBC_2.2 nl_langinfo F
+GLIBC_2.2 nrand48 F
+GLIBC_2.2 nrand48_r F
+GLIBC_2.2 ntohl F
+GLIBC_2.2 ntohs F
+GLIBC_2.2 ntp_adjtime F
+GLIBC_2.2 ntp_gettime F
+GLIBC_2.2 obstack_alloc_failed_handler D 0x4
+GLIBC_2.2 obstack_exit_failure D 0x4
+GLIBC_2.2 obstack_free F
+GLIBC_2.2 obstack_printf F
+GLIBC_2.2 obstack_vprintf F
+GLIBC_2.2 on_exit F
+GLIBC_2.2 open F
+GLIBC_2.2 open64 F
+GLIBC_2.2 open_memstream F
+GLIBC_2.2 opendir F
+GLIBC_2.2 openlog F
+GLIBC_2.2 optarg D 0x4
+GLIBC_2.2 opterr D 0x4
+GLIBC_2.2 optind D 0x4
+GLIBC_2.2 optopt D 0x4
+GLIBC_2.2 parse_printf_format F
+GLIBC_2.2 passwd2des F
+GLIBC_2.2 pathconf F
+GLIBC_2.2 pause F
+GLIBC_2.2 pclose F
+GLIBC_2.2 perror F
+GLIBC_2.2 personality F
+GLIBC_2.2 pipe F
+GLIBC_2.2 pmap_getmaps F
+GLIBC_2.2 pmap_getport F
+GLIBC_2.2 pmap_rmtcall F
+GLIBC_2.2 pmap_set F
+GLIBC_2.2 pmap_unset F
+GLIBC_2.2 poll F
+GLIBC_2.2 popen F
+GLIBC_2.2 posix_fadvise F
+GLIBC_2.2 posix_fadvise64 F
+GLIBC_2.2 posix_fallocate F
+GLIBC_2.2 posix_fallocate64 F
+GLIBC_2.2 posix_madvise F
+GLIBC_2.2 posix_memalign F
+GLIBC_2.2 posix_spawn F
+GLIBC_2.2 posix_spawn_file_actions_addclose F
+GLIBC_2.2 posix_spawn_file_actions_adddup2 F
+GLIBC_2.2 posix_spawn_file_actions_addopen F
+GLIBC_2.2 posix_spawn_file_actions_destroy F
+GLIBC_2.2 posix_spawn_file_actions_init F
+GLIBC_2.2 posix_spawnattr_destroy F
+GLIBC_2.2 posix_spawnattr_getflags F
+GLIBC_2.2 posix_spawnattr_getpgroup F
+GLIBC_2.2 posix_spawnattr_getschedparam F
+GLIBC_2.2 posix_spawnattr_getschedpolicy F
+GLIBC_2.2 posix_spawnattr_getsigdefault F
+GLIBC_2.2 posix_spawnattr_getsigmask F
+GLIBC_2.2 posix_spawnattr_init F
+GLIBC_2.2 posix_spawnattr_setflags F
+GLIBC_2.2 posix_spawnattr_setpgroup F
+GLIBC_2.2 posix_spawnattr_setschedparam F
+GLIBC_2.2 posix_spawnattr_setschedpolicy F
+GLIBC_2.2 posix_spawnattr_setsigdefault F
+GLIBC_2.2 posix_spawnattr_setsigmask F
+GLIBC_2.2 posix_spawnp F
+GLIBC_2.2 prctl F
+GLIBC_2.2 pread F
+GLIBC_2.2 pread64 F
+GLIBC_2.2 printf F
+GLIBC_2.2 printf_size F
+GLIBC_2.2 printf_size_info F
+GLIBC_2.2 profil F
+GLIBC_2.2 program_invocation_name D 0x4
+GLIBC_2.2 program_invocation_short_name D 0x4
+GLIBC_2.2 pselect F
+GLIBC_2.2 psignal F
+GLIBC_2.2 pthread_attr_destroy F
+GLIBC_2.2 pthread_attr_getdetachstate F
+GLIBC_2.2 pthread_attr_getinheritsched F
+GLIBC_2.2 pthread_attr_getschedparam F
+GLIBC_2.2 pthread_attr_getschedpolicy F
+GLIBC_2.2 pthread_attr_getscope F
+GLIBC_2.2 pthread_attr_init F
+GLIBC_2.2 pthread_attr_setdetachstate F
+GLIBC_2.2 pthread_attr_setinheritsched F
+GLIBC_2.2 pthread_attr_setschedparam F
+GLIBC_2.2 pthread_attr_setschedpolicy F
+GLIBC_2.2 pthread_attr_setscope F
+GLIBC_2.2 pthread_cond_broadcast F
+GLIBC_2.2 pthread_cond_destroy F
+GLIBC_2.2 pthread_cond_init F
+GLIBC_2.2 pthread_cond_signal F
+GLIBC_2.2 pthread_cond_timedwait F
+GLIBC_2.2 pthread_cond_wait F
+GLIBC_2.2 pthread_condattr_destroy F
+GLIBC_2.2 pthread_condattr_init F
+GLIBC_2.2 pthread_equal F
+GLIBC_2.2 pthread_exit F
+GLIBC_2.2 pthread_getschedparam F
+GLIBC_2.2 pthread_mutex_destroy F
+GLIBC_2.2 pthread_mutex_init F
+GLIBC_2.2 pthread_mutex_lock F
+GLIBC_2.2 pthread_mutex_unlock F
+GLIBC_2.2 pthread_self F
+GLIBC_2.2 pthread_setcancelstate F
+GLIBC_2.2 pthread_setcanceltype F
+GLIBC_2.2 pthread_setschedparam F
+GLIBC_2.2 ptrace F
+GLIBC_2.2 ptsname F
+GLIBC_2.2 ptsname_r F
+GLIBC_2.2 putc F
+GLIBC_2.2 putc_unlocked F
+GLIBC_2.2 putchar F
+GLIBC_2.2 putchar_unlocked F
+GLIBC_2.2 putenv F
+GLIBC_2.2 putgrent F
+GLIBC_2.2 putmsg F
+GLIBC_2.2 putpmsg F
+GLIBC_2.2 putpwent F
+GLIBC_2.2 puts F
+GLIBC_2.2 putspent F
+GLIBC_2.2 pututline F
+GLIBC_2.2 pututxline F
+GLIBC_2.2 putw F
+GLIBC_2.2 putwc F
+GLIBC_2.2 putwc_unlocked F
+GLIBC_2.2 putwchar F
+GLIBC_2.2 putwchar_unlocked F
+GLIBC_2.2 pvalloc F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
+GLIBC_2.2 qecvt F
+GLIBC_2.2 qecvt_r F
+GLIBC_2.2 qfcvt F
+GLIBC_2.2 qfcvt_r F
+GLIBC_2.2 qgcvt F
+GLIBC_2.2 qsort F
+GLIBC_2.2 query_module F
+GLIBC_2.2 quotactl F
+GLIBC_2.2 raise F
+GLIBC_2.2 rand F
+GLIBC_2.2 rand_r F
+GLIBC_2.2 random F
+GLIBC_2.2 random_r F
+GLIBC_2.2 rawmemchr F
+GLIBC_2.2 rcmd F
+GLIBC_2.2 rcmd_af F
+GLIBC_2.2 re_comp F
+GLIBC_2.2 re_compile_fastmap F
+GLIBC_2.2 re_compile_pattern F
+GLIBC_2.2 re_exec F
+GLIBC_2.2 re_match F
+GLIBC_2.2 re_match_2 F
+GLIBC_2.2 re_max_failures D 0x4
+GLIBC_2.2 re_search F
+GLIBC_2.2 re_search_2 F
+GLIBC_2.2 re_set_registers F
+GLIBC_2.2 re_set_syntax F
+GLIBC_2.2 re_syntax_options D 0x4
+GLIBC_2.2 read F
+GLIBC_2.2 readdir F
+GLIBC_2.2 readdir64 F
+GLIBC_2.2 readdir64_r F
+GLIBC_2.2 readdir_r F
+GLIBC_2.2 readlink F
+GLIBC_2.2 readv F
+GLIBC_2.2 realloc F
+GLIBC_2.2 realpath F
+GLIBC_2.2 reboot F
+GLIBC_2.2 recv F
+GLIBC_2.2 recvfrom F
+GLIBC_2.2 recvmsg F
+GLIBC_2.2 regcomp F
+GLIBC_2.2 regerror F
+GLIBC_2.2 regexec F
+GLIBC_2.2 regfree F
+GLIBC_2.2 register_printf_function F
+GLIBC_2.2 registerrpc F
+GLIBC_2.2 remove F
+GLIBC_2.2 remque F
+GLIBC_2.2 rename F
+GLIBC_2.2 revoke F
+GLIBC_2.2 rewind F
+GLIBC_2.2 rewinddir F
+GLIBC_2.2 rexec F
+GLIBC_2.2 rexec_af F
+GLIBC_2.2 rexecoptions D 0x4
+GLIBC_2.2 rindex F
+GLIBC_2.2 rmdir F
+GLIBC_2.2 rpc_createerr D 0x10
+GLIBC_2.2 rpmatch F
+GLIBC_2.2 rresvport F
+GLIBC_2.2 rresvport_af F
+GLIBC_2.2 rtime F
+GLIBC_2.2 ruserok F
+GLIBC_2.2 ruserok_af F
+GLIBC_2.2 ruserpass F
+GLIBC_2.2 sbrk F
+GLIBC_2.2 scalbn F
+GLIBC_2.2 scalbnf F
+GLIBC_2.2 scalbnl F
+GLIBC_2.2 scandir F
+GLIBC_2.2 scandir64 F
+GLIBC_2.2 scanf F
+GLIBC_2.2 sched_get_priority_max F
+GLIBC_2.2 sched_get_priority_min F
+GLIBC_2.2 sched_getparam F
+GLIBC_2.2 sched_getscheduler F
+GLIBC_2.2 sched_rr_get_interval F
+GLIBC_2.2 sched_setparam F
+GLIBC_2.2 sched_setscheduler F
+GLIBC_2.2 sched_yield F
+GLIBC_2.2 seed48 F
+GLIBC_2.2 seed48_r F
+GLIBC_2.2 seekdir F
+GLIBC_2.2 select F
+GLIBC_2.2 semctl F
+GLIBC_2.2 semget F
+GLIBC_2.2 semop F
+GLIBC_2.2 send F
+GLIBC_2.2 sendfile F
+GLIBC_2.2 sendmsg F
+GLIBC_2.2 sendto F
+GLIBC_2.2 setaliasent F
+GLIBC_2.2 setbuf F
+GLIBC_2.2 setbuffer F
+GLIBC_2.2 setcontext F
+GLIBC_2.2 setdomainname F
+GLIBC_2.2 setegid F
+GLIBC_2.2 setenv F
+GLIBC_2.2 seteuid F
+GLIBC_2.2 setfsent F
+GLIBC_2.2 setfsgid F
+GLIBC_2.2 setfsuid F
+GLIBC_2.2 setgid F
+GLIBC_2.2 setgrent F
+GLIBC_2.2 setgroups F
+GLIBC_2.2 sethostent F
+GLIBC_2.2 sethostid F
+GLIBC_2.2 sethostname F
+GLIBC_2.2 setitimer F
+GLIBC_2.2 setjmp F
+GLIBC_2.2 setlinebuf F
+GLIBC_2.2 setlocale F
+GLIBC_2.2 setlogin F
+GLIBC_2.2 setlogmask F
+GLIBC_2.2 setmntent F
+GLIBC_2.2 setnetent F
+GLIBC_2.2 setnetgrent F
+GLIBC_2.2 setpgid F
+GLIBC_2.2 setpgrp F
+GLIBC_2.2 setpriority F
+GLIBC_2.2 setprotoent F
+GLIBC_2.2 setpwent F
+GLIBC_2.2 setregid F
+GLIBC_2.2 setresgid F
+GLIBC_2.2 setresuid F
+GLIBC_2.2 setreuid F
+GLIBC_2.2 setrlimit F
+GLIBC_2.2 setrlimit64 F
+GLIBC_2.2 setrpcent F
+GLIBC_2.2 setservent F
+GLIBC_2.2 setsid F
+GLIBC_2.2 setsockopt F
+GLIBC_2.2 setspent F
+GLIBC_2.2 setstate F
+GLIBC_2.2 setstate_r F
+GLIBC_2.2 settimeofday F
+GLIBC_2.2 setttyent F
+GLIBC_2.2 setuid F
+GLIBC_2.2 setusershell F
+GLIBC_2.2 setutent F
+GLIBC_2.2 setutxent F
+GLIBC_2.2 setvbuf F
+GLIBC_2.2 sgetspent F
+GLIBC_2.2 sgetspent_r F
+GLIBC_2.2 shmat F
+GLIBC_2.2 shmctl F
+GLIBC_2.2 shmdt F
+GLIBC_2.2 shmget F
+GLIBC_2.2 shutdown F
+GLIBC_2.2 sigaction F
+GLIBC_2.2 sigaddset F
+GLIBC_2.2 sigaltstack F
+GLIBC_2.2 sigandset F
+GLIBC_2.2 sigblock F
+GLIBC_2.2 sigdelset F
+GLIBC_2.2 sigemptyset F
+GLIBC_2.2 sigfillset F
+GLIBC_2.2 siggetmask F
+GLIBC_2.2 sighold F
+GLIBC_2.2 sigignore F
+GLIBC_2.2 siginterrupt F
+GLIBC_2.2 sigisemptyset F
+GLIBC_2.2 sigismember F
+GLIBC_2.2 siglongjmp F
+GLIBC_2.2 signal F
+GLIBC_2.2 sigorset F
+GLIBC_2.2 sigpause F
+GLIBC_2.2 sigpending F
+GLIBC_2.2 sigprocmask F
+GLIBC_2.2 sigqueue F
+GLIBC_2.2 sigrelse F
+GLIBC_2.2 sigreturn F
+GLIBC_2.2 sigset F
+GLIBC_2.2 sigsetmask F
+GLIBC_2.2 sigstack F
+GLIBC_2.2 sigsuspend F
+GLIBC_2.2 sigtimedwait F
+GLIBC_2.2 sigvec F
+GLIBC_2.2 sigwait F
+GLIBC_2.2 sigwaitinfo F
+GLIBC_2.2 sleep F
+GLIBC_2.2 snprintf F
+GLIBC_2.2 socket F
+GLIBC_2.2 socketpair F
+GLIBC_2.2 sprintf F
+GLIBC_2.2 srand F
+GLIBC_2.2 srand48 F
+GLIBC_2.2 srand48_r F
+GLIBC_2.2 srandom F
+GLIBC_2.2 srandom_r F
+GLIBC_2.2 sscanf F
+GLIBC_2.2 ssignal F
+GLIBC_2.2 sstk F
+GLIBC_2.2 statfs F
+GLIBC_2.2 statfs64 F
+GLIBC_2.2 statvfs F
+GLIBC_2.2 statvfs64 F
+GLIBC_2.2 stderr D 0x4
+GLIBC_2.2 stdin D 0x4
+GLIBC_2.2 stdout D 0x4
+GLIBC_2.2 step F
+GLIBC_2.2 stime F
+GLIBC_2.2 stpcpy F
+GLIBC_2.2 stpncpy F
+GLIBC_2.2 strcasecmp F
+GLIBC_2.2 strcasestr F
+GLIBC_2.2 strcat F
+GLIBC_2.2 strchr F
+GLIBC_2.2 strchrnul F
+GLIBC_2.2 strcmp F
+GLIBC_2.2 strcoll F
+GLIBC_2.2 strcpy F
+GLIBC_2.2 strcspn F
+GLIBC_2.2 strdup F
+GLIBC_2.2 strerror F
+GLIBC_2.2 strerror_r F
+GLIBC_2.2 strfmon F
+GLIBC_2.2 strfry F
+GLIBC_2.2 strftime F
+GLIBC_2.2 strlen F
+GLIBC_2.2 strncasecmp F
+GLIBC_2.2 strncat F
+GLIBC_2.2 strncmp F
+GLIBC_2.2 strncpy F
+GLIBC_2.2 strndup F
+GLIBC_2.2 strnlen F
+GLIBC_2.2 strpbrk F
+GLIBC_2.2 strptime F
+GLIBC_2.2 strrchr F
+GLIBC_2.2 strsep F
+GLIBC_2.2 strsignal F
+GLIBC_2.2 strspn F
+GLIBC_2.2 strstr F
+GLIBC_2.2 strtod F
+GLIBC_2.2 strtof F
+GLIBC_2.2 strtoimax F
+GLIBC_2.2 strtok F
+GLIBC_2.2 strtok_r F
+GLIBC_2.2 strtol F
+GLIBC_2.2 strtold F
+GLIBC_2.2 strtoll F
+GLIBC_2.2 strtoq F
+GLIBC_2.2 strtoul F
+GLIBC_2.2 strtoull F
+GLIBC_2.2 strtoumax F
+GLIBC_2.2 strtouq F
+GLIBC_2.2 strverscmp F
+GLIBC_2.2 strxfrm F
+GLIBC_2.2 stty F
+GLIBC_2.2 svc_exit F
+GLIBC_2.2 svc_fdset D 0x80
+GLIBC_2.2 svc_getreq F
+GLIBC_2.2 svc_getreq_common F
+GLIBC_2.2 svc_getreq_poll F
+GLIBC_2.2 svc_getreqset F
+GLIBC_2.2 svc_max_pollfd D 0x4
+GLIBC_2.2 svc_pollfd D 0x4
+GLIBC_2.2 svc_register F
+GLIBC_2.2 svc_run F
+GLIBC_2.2 svc_sendreply F
+GLIBC_2.2 svc_unregister F
+GLIBC_2.2 svcauthdes_stats D 0xc
+GLIBC_2.2 svcerr_auth F
+GLIBC_2.2 svcerr_decode F
+GLIBC_2.2 svcerr_noproc F
+GLIBC_2.2 svcerr_noprog F
+GLIBC_2.2 svcerr_progvers F
+GLIBC_2.2 svcerr_systemerr F
+GLIBC_2.2 svcerr_weakauth F
+GLIBC_2.2 svcfd_create F
+GLIBC_2.2 svcraw_create F
+GLIBC_2.2 svctcp_create F
+GLIBC_2.2 svcudp_bufcreate F
+GLIBC_2.2 svcudp_create F
+GLIBC_2.2 svcudp_enablecache F
+GLIBC_2.2 svcunix_create F
+GLIBC_2.2 svcunixfd_create F
+GLIBC_2.2 swab F
+GLIBC_2.2 swapcontext F
+GLIBC_2.2 swapoff F
+GLIBC_2.2 swapon F
+GLIBC_2.2 swprintf F
+GLIBC_2.2 swscanf F
+GLIBC_2.2 symlink F
+GLIBC_2.2 sync F
+GLIBC_2.2 sys_errlist D 0x3f4
+GLIBC_2.2 sys_nerr D 0x4
+GLIBC_2.2 sys_sigabbrev D 0x100
+GLIBC_2.2 sys_siglist D 0x100
+GLIBC_2.2 syscall F
+GLIBC_2.2 sysconf F
+GLIBC_2.2 sysctl F
+GLIBC_2.2 sysinfo F
+GLIBC_2.2 syslog F
+GLIBC_2.2 system F
+GLIBC_2.2 sysv_signal F
+GLIBC_2.2 tcdrain F
+GLIBC_2.2 tcflow F
+GLIBC_2.2 tcflush F
+GLIBC_2.2 tcgetattr F
+GLIBC_2.2 tcgetpgrp F
+GLIBC_2.2 tcgetsid F
+GLIBC_2.2 tcsendbreak F
+GLIBC_2.2 tcsetattr F
+GLIBC_2.2 tcsetpgrp F
+GLIBC_2.2 tdelete F
+GLIBC_2.2 tdestroy F
+GLIBC_2.2 telldir F
+GLIBC_2.2 tempnam F
+GLIBC_2.2 textdomain F
+GLIBC_2.2 tfind F
+GLIBC_2.2 time F
+GLIBC_2.2 timegm F
+GLIBC_2.2 timelocal F
+GLIBC_2.2 times F
+GLIBC_2.2 timezone D 0x4
+GLIBC_2.2 tmpfile F
+GLIBC_2.2 tmpfile64 F
+GLIBC_2.2 tmpnam F
+GLIBC_2.2 tmpnam_r F
+GLIBC_2.2 toascii F
+GLIBC_2.2 tolower F
+GLIBC_2.2 toupper F
+GLIBC_2.2 towctrans F
+GLIBC_2.2 towlower F
+GLIBC_2.2 towupper F
+GLIBC_2.2 tr_break F
+GLIBC_2.2 truncate F
+GLIBC_2.2 truncate64 F
+GLIBC_2.2 tsearch F
+GLIBC_2.2 ttyname F
+GLIBC_2.2 ttyname_r F
+GLIBC_2.2 ttyslot F
+GLIBC_2.2 twalk F
+GLIBC_2.2 tzname D 0x8
+GLIBC_2.2 tzset F
+GLIBC_2.2 ualarm F
+GLIBC_2.2 ulckpwdf F
+GLIBC_2.2 ulimit F
+GLIBC_2.2 umask F
+GLIBC_2.2 umount F
+GLIBC_2.2 umount2 F
+GLIBC_2.2 uname F
+GLIBC_2.2 ungetc F
+GLIBC_2.2 ungetwc F
+GLIBC_2.2 unlink F
+GLIBC_2.2 unlockpt F
+GLIBC_2.2 unsetenv F
+GLIBC_2.2 updwtmp F
+GLIBC_2.2 updwtmpx F
+GLIBC_2.2 uselib F
+GLIBC_2.2 user2netname F
+GLIBC_2.2 usleep F
+GLIBC_2.2 ustat F
+GLIBC_2.2 utime F
+GLIBC_2.2 utimes F
+GLIBC_2.2 utmpname F
+GLIBC_2.2 utmpxname F
+GLIBC_2.2 valloc F
+GLIBC_2.2 vasprintf F
+GLIBC_2.2 vdprintf F
+GLIBC_2.2 verr F
+GLIBC_2.2 verrx F
+GLIBC_2.2 versionsort F
+GLIBC_2.2 versionsort64 F
+GLIBC_2.2 vfork F
+GLIBC_2.2 vfprintf F
+GLIBC_2.2 vfscanf F
+GLIBC_2.2 vfwprintf F
+GLIBC_2.2 vfwscanf F
+GLIBC_2.2 vhangup F
+GLIBC_2.2 vlimit F
+GLIBC_2.2 vprintf F
+GLIBC_2.2 vscanf F
+GLIBC_2.2 vsnprintf F
+GLIBC_2.2 vsprintf F
+GLIBC_2.2 vsscanf F
+GLIBC_2.2 vswprintf F
+GLIBC_2.2 vswscanf F
+GLIBC_2.2 vsyslog F
+GLIBC_2.2 vtimes F
+GLIBC_2.2 vwarn F
+GLIBC_2.2 vwarnx F
+GLIBC_2.2 vwprintf F
+GLIBC_2.2 vwscanf F
+GLIBC_2.2 wait F
+GLIBC_2.2 wait3 F
+GLIBC_2.2 wait4 F
+GLIBC_2.2 waitid F
+GLIBC_2.2 waitpid F
+GLIBC_2.2 warn F
+GLIBC_2.2 warnx F
+GLIBC_2.2 wcpcpy F
+GLIBC_2.2 wcpncpy F
+GLIBC_2.2 wcrtomb F
+GLIBC_2.2 wcscasecmp F
+GLIBC_2.2 wcscat F
+GLIBC_2.2 wcschr F
+GLIBC_2.2 wcschrnul F
+GLIBC_2.2 wcscmp F
+GLIBC_2.2 wcscoll F
+GLIBC_2.2 wcscpy F
+GLIBC_2.2 wcscspn F
+GLIBC_2.2 wcsdup F
+GLIBC_2.2 wcsftime F
+GLIBC_2.2 wcslen F
+GLIBC_2.2 wcsncasecmp F
+GLIBC_2.2 wcsncat F
+GLIBC_2.2 wcsncmp F
+GLIBC_2.2 wcsncpy F
+GLIBC_2.2 wcsnlen F
+GLIBC_2.2 wcsnrtombs F
+GLIBC_2.2 wcspbrk F
+GLIBC_2.2 wcsrchr F
+GLIBC_2.2 wcsrtombs F
+GLIBC_2.2 wcsspn F
+GLIBC_2.2 wcsstr F
+GLIBC_2.2 wcstod F
+GLIBC_2.2 wcstof F
+GLIBC_2.2 wcstoimax F
+GLIBC_2.2 wcstok F
+GLIBC_2.2 wcstol F
+GLIBC_2.2 wcstold F
+GLIBC_2.2 wcstoll F
+GLIBC_2.2 wcstombs F
+GLIBC_2.2 wcstoq F
+GLIBC_2.2 wcstoul F
+GLIBC_2.2 wcstoull F
+GLIBC_2.2 wcstoumax F
+GLIBC_2.2 wcstouq F
+GLIBC_2.2 wcswcs F
+GLIBC_2.2 wcswidth F
+GLIBC_2.2 wcsxfrm F
+GLIBC_2.2 wctob F
+GLIBC_2.2 wctomb F
+GLIBC_2.2 wctrans F
+GLIBC_2.2 wctype F
+GLIBC_2.2 wcwidth F
+GLIBC_2.2 wmemchr F
+GLIBC_2.2 wmemcmp F
+GLIBC_2.2 wmemcpy F
+GLIBC_2.2 wmemmove F
+GLIBC_2.2 wmempcpy F
+GLIBC_2.2 wmemset F
+GLIBC_2.2 wordexp F
+GLIBC_2.2 wordfree F
+GLIBC_2.2 wprintf F
+GLIBC_2.2 write F
+GLIBC_2.2 writev F
+GLIBC_2.2 wscanf F
+GLIBC_2.2 xdecrypt F
+GLIBC_2.2 xdr_accepted_reply F
+GLIBC_2.2 xdr_array F
+GLIBC_2.2 xdr_authdes_cred F
+GLIBC_2.2 xdr_authdes_verf F
+GLIBC_2.2 xdr_authunix_parms F
+GLIBC_2.2 xdr_bool F
+GLIBC_2.2 xdr_bytes F
+GLIBC_2.2 xdr_callhdr F
+GLIBC_2.2 xdr_callmsg F
+GLIBC_2.2 xdr_char F
+GLIBC_2.2 xdr_cryptkeyarg F
+GLIBC_2.2 xdr_cryptkeyarg2 F
+GLIBC_2.2 xdr_cryptkeyres F
+GLIBC_2.2 xdr_des_block F
+GLIBC_2.2 xdr_double F
+GLIBC_2.2 xdr_enum F
+GLIBC_2.2 xdr_float F
+GLIBC_2.2 xdr_free F
+GLIBC_2.2 xdr_getcredres F
+GLIBC_2.2 xdr_hyper F
+GLIBC_2.2 xdr_int F
+GLIBC_2.2 xdr_int16_t F
+GLIBC_2.2 xdr_int32_t F
+GLIBC_2.2 xdr_int64_t F
+GLIBC_2.2 xdr_int8_t F
+GLIBC_2.2 xdr_key_netstarg F
+GLIBC_2.2 xdr_key_netstres F
+GLIBC_2.2 xdr_keybuf F
+GLIBC_2.2 xdr_keystatus F
+GLIBC_2.2 xdr_long F
+GLIBC_2.2 xdr_longlong_t F
+GLIBC_2.2 xdr_netnamestr F
+GLIBC_2.2 xdr_netobj F
+GLIBC_2.2 xdr_opaque F
+GLIBC_2.2 xdr_opaque_auth F
+GLIBC_2.2 xdr_pmap F
+GLIBC_2.2 xdr_pmaplist F
+GLIBC_2.2 xdr_pointer F
+GLIBC_2.2 xdr_reference F
+GLIBC_2.2 xdr_rejected_reply F
+GLIBC_2.2 xdr_replymsg F
+GLIBC_2.2 xdr_rmtcall_args F
+GLIBC_2.2 xdr_rmtcallres F
+GLIBC_2.2 xdr_short F
+GLIBC_2.2 xdr_sizeof F
+GLIBC_2.2 xdr_string F
+GLIBC_2.2 xdr_u_char F
+GLIBC_2.2 xdr_u_hyper F
+GLIBC_2.2 xdr_u_int F
+GLIBC_2.2 xdr_u_long F
+GLIBC_2.2 xdr_u_longlong_t F
+GLIBC_2.2 xdr_u_short F
+GLIBC_2.2 xdr_uint16_t F
+GLIBC_2.2 xdr_uint32_t F
+GLIBC_2.2 xdr_uint64_t F
+GLIBC_2.2 xdr_uint8_t F
+GLIBC_2.2 xdr_union F
+GLIBC_2.2 xdr_unixcred F
+GLIBC_2.2 xdr_vector F
+GLIBC_2.2 xdr_void F
+GLIBC_2.2 xdr_wrapstring F
+GLIBC_2.2 xdrmem_create F
+GLIBC_2.2 xdrrec_create F
+GLIBC_2.2 xdrrec_endofrecord F
+GLIBC_2.2 xdrrec_eof F
+GLIBC_2.2 xdrrec_skiprecord F
+GLIBC_2.2 xdrstdio_create F
+GLIBC_2.2 xencrypt F
+GLIBC_2.2 xprt_register F
+GLIBC_2.2 xprt_unregister F
+GLIBC_2.2.1 GLIBC_2.2.1 A
+GLIBC_2.2.1 pivot_root F
+GLIBC_2.2.1 posix_openpt F
+GLIBC_2.2.2 GLIBC_2.2.2 A
+GLIBC_2.2.2 __nss_hostname_digits_dots F
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 __rpc_thread_createerr F
+GLIBC_2.2.3 __rpc_thread_svc_fdset F
+GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
+GLIBC_2.2.3 __rpc_thread_svc_pollfd F
+GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 sprofil F
+GLIBC_2.2.4 GLIBC_2.2.4 A
+GLIBC_2.2.4 dl_iterate_phdr F
+GLIBC_2.2.4 getgrouplist F
+GLIBC_2.2.4 sockatmark F
+GLIBC_2.2.6 GLIBC_2.2.6 A
+GLIBC_2.2.6 __nanosleep F
+GLIBC_2.22 GLIBC_2.22 A
+GLIBC_2.22 fmemopen F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 fts64_children F
+GLIBC_2.23 fts64_close F
+GLIBC_2.23 fts64_open F
+GLIBC_2.23 fts64_read F
+GLIBC_2.23 fts64_set F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 quick_exit F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __explicit_bzero_chk F
+GLIBC_2.25 explicit_bzero F
+GLIBC_2.25 getentropy F
+GLIBC_2.25 getrandom F
+GLIBC_2.25 strfromd F
+GLIBC_2.25 strfromf F
+GLIBC_2.25 strfroml F
+GLIBC_2.26 GLIBC_2.26 A
+GLIBC_2.26 preadv2 F
+GLIBC_2.26 preadv64v2 F
+GLIBC_2.26 pwritev2 F
+GLIBC_2.26 pwritev64v2 F
+GLIBC_2.26 reallocarray F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 __ctype_b_loc F
+GLIBC_2.3 __ctype_tolower_loc F
+GLIBC_2.3 __ctype_toupper_loc F
+GLIBC_2.3 __isctype F
+GLIBC_2.3 __strftime_l F
+GLIBC_2.3 __uselocale F
+GLIBC_2.3 __wcsftime_l F
+GLIBC_2.3 _sys_errlist D 0x3f8
+GLIBC_2.3 _sys_nerr D 0x4
+GLIBC_2.3 duplocale F
+GLIBC_2.3 fgetxattr F
+GLIBC_2.3 flistxattr F
+GLIBC_2.3 freeifaddrs F
+GLIBC_2.3 freelocale F
+GLIBC_2.3 fremovexattr F
+GLIBC_2.3 fsetxattr F
+GLIBC_2.3 futimes F
+GLIBC_2.3 getifaddrs F
+GLIBC_2.3 getxattr F
+GLIBC_2.3 isalnum_l F
+GLIBC_2.3 isalpha_l F
+GLIBC_2.3 isblank_l F
+GLIBC_2.3 iscntrl_l F
+GLIBC_2.3 isctype F
+GLIBC_2.3 isdigit_l F
+GLIBC_2.3 isgraph_l F
+GLIBC_2.3 islower_l F
+GLIBC_2.3 isprint_l F
+GLIBC_2.3 ispunct_l F
+GLIBC_2.3 isspace_l F
+GLIBC_2.3 isupper_l F
+GLIBC_2.3 iswalnum_l F
+GLIBC_2.3 iswalpha_l F
+GLIBC_2.3 iswblank_l F
+GLIBC_2.3 iswcntrl_l F
+GLIBC_2.3 iswctype_l F
+GLIBC_2.3 iswdigit_l F
+GLIBC_2.3 iswgraph_l F
+GLIBC_2.3 iswlower_l F
+GLIBC_2.3 iswprint_l F
+GLIBC_2.3 iswpunct_l F
+GLIBC_2.3 iswspace_l F
+GLIBC_2.3 iswupper_l F
+GLIBC_2.3 iswxdigit_l F
+GLIBC_2.3 isxdigit_l F
+GLIBC_2.3 lgetxattr F
+GLIBC_2.3 listxattr F
+GLIBC_2.3 llistxattr F
+GLIBC_2.3 lremovexattr F
+GLIBC_2.3 lsetxattr F
+GLIBC_2.3 lutimes F
+GLIBC_2.3 newlocale F
+GLIBC_2.3 nl_langinfo_l F
+GLIBC_2.3 readahead F
+GLIBC_2.3 realpath F
+GLIBC_2.3 removexattr F
+GLIBC_2.3 sendfile64 F
+GLIBC_2.3 setxattr F
+GLIBC_2.3 strcasecmp_l F
+GLIBC_2.3 strcoll_l F
+GLIBC_2.3 strfmon_l F
+GLIBC_2.3 strftime_l F
+GLIBC_2.3 strncasecmp_l F
+GLIBC_2.3 strtod_l F
+GLIBC_2.3 strtof_l F
+GLIBC_2.3 strtol_l F
+GLIBC_2.3 strtold_l F
+GLIBC_2.3 strtoll_l F
+GLIBC_2.3 strtoul_l F
+GLIBC_2.3 strtoull_l F
+GLIBC_2.3 strxfrm_l F
+GLIBC_2.3 sys_errlist D 0x3f8
+GLIBC_2.3 sys_nerr D 0x4
+GLIBC_2.3 tolower_l F
+GLIBC_2.3 toupper_l F
+GLIBC_2.3 towctrans_l F
+GLIBC_2.3 towlower_l F
+GLIBC_2.3 towupper_l F
+GLIBC_2.3 uselocale F
+GLIBC_2.3 wcscasecmp_l F
+GLIBC_2.3 wcscoll_l F
+GLIBC_2.3 wcsftime_l F
+GLIBC_2.3 wcsncasecmp_l F
+GLIBC_2.3 wcstod_l F
+GLIBC_2.3 wcstof_l F
+GLIBC_2.3 wcstol_l F
+GLIBC_2.3 wcstold_l F
+GLIBC_2.3 wcstoll_l F
+GLIBC_2.3 wcstoul_l F
+GLIBC_2.3 wcstoull_l F
+GLIBC_2.3 wcsxfrm_l F
+GLIBC_2.3 wctrans_l F
+GLIBC_2.3 wctype_l F
+GLIBC_2.3.2 GLIBC_2.3.2 A
+GLIBC_2.3.2 __register_atfork F
+GLIBC_2.3.2 epoll_create F
+GLIBC_2.3.2 epoll_ctl F
+GLIBC_2.3.2 epoll_wait F
+GLIBC_2.3.2 lchmod F
+GLIBC_2.3.2 pthread_cond_broadcast F
+GLIBC_2.3.2 pthread_cond_destroy F
+GLIBC_2.3.2 pthread_cond_init F
+GLIBC_2.3.2 pthread_cond_signal F
+GLIBC_2.3.2 pthread_cond_timedwait F
+GLIBC_2.3.2 pthread_cond_wait F
+GLIBC_2.3.2 strptime_l F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 _sys_siglist D 0x104
+GLIBC_2.3.3 gnu_dev_major F
+GLIBC_2.3.3 gnu_dev_makedev F
+GLIBC_2.3.3 gnu_dev_minor F
+GLIBC_2.3.3 inet6_option_alloc F
+GLIBC_2.3.3 inet6_option_append F
+GLIBC_2.3.3 inet6_option_find F
+GLIBC_2.3.3 inet6_option_init F
+GLIBC_2.3.3 inet6_option_next F
+GLIBC_2.3.3 inet6_option_space F
+GLIBC_2.3.3 nftw F
+GLIBC_2.3.3 nftw64 F
+GLIBC_2.3.3 posix_fadvise64 F
+GLIBC_2.3.3 posix_fallocate64 F
+GLIBC_2.3.3 remap_file_pages F
+GLIBC_2.3.3 sched_getaffinity F
+GLIBC_2.3.3 sched_setaffinity F
+GLIBC_2.3.3 semtimedop F
+GLIBC_2.3.3 sys_sigabbrev D 0x104
+GLIBC_2.3.3 sys_siglist D 0x104
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 __chk_fail F
+GLIBC_2.3.4 __fprintf_chk F
+GLIBC_2.3.4 __gets_chk F
+GLIBC_2.3.4 __memcpy_chk F
+GLIBC_2.3.4 __memmove_chk F
+GLIBC_2.3.4 __mempcpy_chk F
+GLIBC_2.3.4 __memset_chk F
+GLIBC_2.3.4 __printf_chk F
+GLIBC_2.3.4 __snprintf_chk F
+GLIBC_2.3.4 __sprintf_chk F
+GLIBC_2.3.4 __stpcpy_chk F
+GLIBC_2.3.4 __strcat_chk F
+GLIBC_2.3.4 __strcpy_chk F
+GLIBC_2.3.4 __strncat_chk F
+GLIBC_2.3.4 __strncpy_chk F
+GLIBC_2.3.4 __vfprintf_chk F
+GLIBC_2.3.4 __vprintf_chk F
+GLIBC_2.3.4 __vsnprintf_chk F
+GLIBC_2.3.4 __vsprintf_chk F
+GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 getipv4sourcefilter F
+GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 regexec F
+GLIBC_2.3.4 sched_getaffinity F
+GLIBC_2.3.4 sched_setaffinity F
+GLIBC_2.3.4 setipv4sourcefilter F
+GLIBC_2.3.4 setsourcefilter F
+GLIBC_2.3.4 xdr_quad_t F
+GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __confstr_chk F
+GLIBC_2.4 __fgets_chk F
+GLIBC_2.4 __fgets_unlocked_chk F
+GLIBC_2.4 __fgetws_chk F
+GLIBC_2.4 __fgetws_unlocked_chk F
+GLIBC_2.4 __fwprintf_chk F
+GLIBC_2.4 __fxstatat F
+GLIBC_2.4 __fxstatat64 F
+GLIBC_2.4 __getcwd_chk F
+GLIBC_2.4 __getdomainname_chk F
+GLIBC_2.4 __getgroups_chk F
+GLIBC_2.4 __gethostname_chk F
+GLIBC_2.4 __getlogin_r_chk F
+GLIBC_2.4 __getwd_chk F
+GLIBC_2.4 __mbsnrtowcs_chk F
+GLIBC_2.4 __mbsrtowcs_chk F
+GLIBC_2.4 __mbstowcs_chk F
+GLIBC_2.4 __pread64_chk F
+GLIBC_2.4 __pread_chk F
+GLIBC_2.4 __ptsname_r_chk F
+GLIBC_2.4 __read_chk F
+GLIBC_2.4 __readlink_chk F
+GLIBC_2.4 __realpath_chk F
+GLIBC_2.4 __recv_chk F
+GLIBC_2.4 __recvfrom_chk F
+GLIBC_2.4 __stack_chk_fail F
+GLIBC_2.4 __stpncpy_chk F
+GLIBC_2.4 __swprintf_chk F
+GLIBC_2.4 __syslog_chk F
+GLIBC_2.4 __ttyname_r_chk F
+GLIBC_2.4 __vfwprintf_chk F
+GLIBC_2.4 __vswprintf_chk F
+GLIBC_2.4 __vsyslog_chk F
+GLIBC_2.4 __vwprintf_chk F
+GLIBC_2.4 __wcpcpy_chk F
+GLIBC_2.4 __wcpncpy_chk F
+GLIBC_2.4 __wcrtomb_chk F
+GLIBC_2.4 __wcscat_chk F
+GLIBC_2.4 __wcscpy_chk F
+GLIBC_2.4 __wcsncat_chk F
+GLIBC_2.4 __wcsncpy_chk F
+GLIBC_2.4 __wcsnrtombs_chk F
+GLIBC_2.4 __wcsrtombs_chk F
+GLIBC_2.4 __wcstombs_chk F
+GLIBC_2.4 __wctomb_chk F
+GLIBC_2.4 __wmemcpy_chk F
+GLIBC_2.4 __wmemmove_chk F
+GLIBC_2.4 __wmempcpy_chk F
+GLIBC_2.4 __wmemset_chk F
+GLIBC_2.4 __wprintf_chk F
+GLIBC_2.4 __xmknodat F
+GLIBC_2.4 _sys_errlist D 0x400
+GLIBC_2.4 _sys_nerr D 0x4
+GLIBC_2.4 eaccess F
+GLIBC_2.4 faccessat F
+GLIBC_2.4 fchmodat F
+GLIBC_2.4 fchownat F
+GLIBC_2.4 fdopendir F
+GLIBC_2.4 futimesat F
+GLIBC_2.4 inotify_add_watch F
+GLIBC_2.4 inotify_init F
+GLIBC_2.4 inotify_rm_watch F
+GLIBC_2.4 linkat F
+GLIBC_2.4 mkdirat F
+GLIBC_2.4 mkfifoat F
+GLIBC_2.4 open_wmemstream F
+GLIBC_2.4 openat F
+GLIBC_2.4 openat64 F
+GLIBC_2.4 ppoll F
+GLIBC_2.4 readlinkat F
+GLIBC_2.4 renameat F
+GLIBC_2.4 symlinkat F
+GLIBC_2.4 sys_errlist D 0x400
+GLIBC_2.4 sys_nerr D 0x4
+GLIBC_2.4 unlinkat F
+GLIBC_2.4 unshare F
+GLIBC_2.5 GLIBC_2.5 A
+GLIBC_2.5 __readlinkat_chk F
+GLIBC_2.5 inet6_opt_append F
+GLIBC_2.5 inet6_opt_find F
+GLIBC_2.5 inet6_opt_finish F
+GLIBC_2.5 inet6_opt_get_val F
+GLIBC_2.5 inet6_opt_init F
+GLIBC_2.5 inet6_opt_next F
+GLIBC_2.5 inet6_opt_set_val F
+GLIBC_2.5 inet6_rth_add F
+GLIBC_2.5 inet6_rth_getaddr F
+GLIBC_2.5 inet6_rth_init F
+GLIBC_2.5 inet6_rth_reverse F
+GLIBC_2.5 inet6_rth_segments F
+GLIBC_2.5 inet6_rth_space F
+GLIBC_2.5 splice F
+GLIBC_2.5 tee F
+GLIBC_2.5 vmsplice F
+GLIBC_2.6 GLIBC_2.6 A
+GLIBC_2.6 __sched_cpucount F
+GLIBC_2.6 epoll_pwait F
+GLIBC_2.6 futimens F
+GLIBC_2.6 sched_getcpu F
+GLIBC_2.6 strerror_l F
+GLIBC_2.6 sync_file_range F
+GLIBC_2.6 utimensat F
+GLIBC_2.7 GLIBC_2.7 A
+GLIBC_2.7 __fread_chk F
+GLIBC_2.7 __fread_unlocked_chk F
+GLIBC_2.7 __isoc99_fscanf F
+GLIBC_2.7 __isoc99_fwscanf F
+GLIBC_2.7 __isoc99_scanf F
+GLIBC_2.7 __isoc99_sscanf F
+GLIBC_2.7 __isoc99_swscanf F
+GLIBC_2.7 __isoc99_vfscanf F
+GLIBC_2.7 __isoc99_vfwscanf F
+GLIBC_2.7 __isoc99_vscanf F
+GLIBC_2.7 __isoc99_vsscanf F
+GLIBC_2.7 __isoc99_vswscanf F
+GLIBC_2.7 __isoc99_vwscanf F
+GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __open64_2 F
+GLIBC_2.7 __open_2 F
+GLIBC_2.7 __openat64_2 F
+GLIBC_2.7 __openat_2 F
+GLIBC_2.7 __sched_cpualloc F
+GLIBC_2.7 __sched_cpufree F
+GLIBC_2.7 eventfd F
+GLIBC_2.7 eventfd_read F
+GLIBC_2.7 eventfd_write F
+GLIBC_2.7 mkostemp F
+GLIBC_2.7 mkostemp64 F
+GLIBC_2.7 signalfd F
+GLIBC_2.8 GLIBC_2.8 A
+GLIBC_2.8 __asprintf_chk F
+GLIBC_2.8 __dprintf_chk F
+GLIBC_2.8 __obstack_printf_chk F
+GLIBC_2.8 __obstack_vprintf_chk F
+GLIBC_2.8 __vasprintf_chk F
+GLIBC_2.8 __vdprintf_chk F
+GLIBC_2.8 qsort_r F
+GLIBC_2.8 timerfd_create F
+GLIBC_2.8 timerfd_gettime F
+GLIBC_2.8 timerfd_settime F
+GLIBC_2.9 GLIBC_2.9 A
+GLIBC_2.9 dup3 F
+GLIBC_2.9 epoll_create1 F
+GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libcrypt.abilist
new file mode 100644
index 0000000000..4db2639336
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libcrypt.abilist
@@ -0,0 +1,8 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 crypt F
+GLIBC_2.0 crypt_r F
+GLIBC_2.0 encrypt F
+GLIBC_2.0 encrypt_r F
+GLIBC_2.0 fcrypt F
+GLIBC_2.0 setkey F
+GLIBC_2.0 setkey_r F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libdl.abilist
new file mode 100644
index 0000000000..5536f6e0a9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libdl.abilist
@@ -0,0 +1,14 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 dladdr F
+GLIBC_2.0 dlclose F
+GLIBC_2.0 dlerror F
+GLIBC_2.0 dlopen F
+GLIBC_2.0 dlsym F
+GLIBC_2.1 GLIBC_2.1 A
+GLIBC_2.1 dlopen F
+GLIBC_2.1 dlvsym F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 dlmopen F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libm.abilist
new file mode 100644
index 0000000000..80fd4ada99
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -0,0 +1,433 @@
+GLIBC_2.15 GLIBC_2.15 A
+GLIBC_2.15 __acos_finite F
+GLIBC_2.15 __acosf_finite F
+GLIBC_2.15 __acosh_finite F
+GLIBC_2.15 __acoshf_finite F
+GLIBC_2.15 __asin_finite F
+GLIBC_2.15 __asinf_finite F
+GLIBC_2.15 __atan2_finite F
+GLIBC_2.15 __atan2f_finite F
+GLIBC_2.15 __atanh_finite F
+GLIBC_2.15 __atanhf_finite F
+GLIBC_2.15 __cosh_finite F
+GLIBC_2.15 __coshf_finite F
+GLIBC_2.15 __exp10_finite F
+GLIBC_2.15 __exp10f_finite F
+GLIBC_2.15 __exp2_finite F
+GLIBC_2.15 __exp2f_finite F
+GLIBC_2.15 __exp_finite F
+GLIBC_2.15 __expf_finite F
+GLIBC_2.15 __fmod_finite F
+GLIBC_2.15 __fmodf_finite F
+GLIBC_2.15 __gamma_r_finite F
+GLIBC_2.15 __gammaf_r_finite F
+GLIBC_2.15 __hypot_finite F
+GLIBC_2.15 __hypotf_finite F
+GLIBC_2.15 __j0_finite F
+GLIBC_2.15 __j0f_finite F
+GLIBC_2.15 __j1_finite F
+GLIBC_2.15 __j1f_finite F
+GLIBC_2.15 __jn_finite F
+GLIBC_2.15 __jnf_finite F
+GLIBC_2.15 __lgamma_r_finite F
+GLIBC_2.15 __lgammaf_r_finite F
+GLIBC_2.15 __log10_finite F
+GLIBC_2.15 __log10f_finite F
+GLIBC_2.15 __log2_finite F
+GLIBC_2.15 __log2f_finite F
+GLIBC_2.15 __log_finite F
+GLIBC_2.15 __logf_finite F
+GLIBC_2.15 __pow_finite F
+GLIBC_2.15 __powf_finite F
+GLIBC_2.15 __remainder_finite F
+GLIBC_2.15 __remainderf_finite F
+GLIBC_2.15 __scalb_finite F
+GLIBC_2.15 __scalbf_finite F
+GLIBC_2.15 __sinh_finite F
+GLIBC_2.15 __sinhf_finite F
+GLIBC_2.15 __sqrt_finite F
+GLIBC_2.15 __sqrtf_finite F
+GLIBC_2.15 __y0_finite F
+GLIBC_2.15 __y0f_finite F
+GLIBC_2.15 __y1_finite F
+GLIBC_2.15 __y1f_finite F
+GLIBC_2.15 __yn_finite F
+GLIBC_2.15 __ynf_finite F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __issignaling F
+GLIBC_2.18 __issignalingf F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 _LIB_VERSION D 0x4
+GLIBC_2.2 __clog10 F
+GLIBC_2.2 __clog10f F
+GLIBC_2.2 __clog10l F
+GLIBC_2.2 __finite F
+GLIBC_2.2 __finitef F
+GLIBC_2.2 __fpclassify F
+GLIBC_2.2 __fpclassifyf F
+GLIBC_2.2 __signbit F
+GLIBC_2.2 __signbitf F
+GLIBC_2.2 __signbitl F
+GLIBC_2.2 acos F
+GLIBC_2.2 acosf F
+GLIBC_2.2 acosh F
+GLIBC_2.2 acoshf F
+GLIBC_2.2 acoshl F
+GLIBC_2.2 acosl F
+GLIBC_2.2 asin F
+GLIBC_2.2 asinf F
+GLIBC_2.2 asinh F
+GLIBC_2.2 asinhf F
+GLIBC_2.2 asinhl F
+GLIBC_2.2 asinl F
+GLIBC_2.2 atan F
+GLIBC_2.2 atan2 F
+GLIBC_2.2 atan2f F
+GLIBC_2.2 atan2l F
+GLIBC_2.2 atanf F
+GLIBC_2.2 atanh F
+GLIBC_2.2 atanhf F
+GLIBC_2.2 atanhl F
+GLIBC_2.2 atanl F
+GLIBC_2.2 cabs F
+GLIBC_2.2 cabsf F
+GLIBC_2.2 cabsl F
+GLIBC_2.2 cacos F
+GLIBC_2.2 cacosf F
+GLIBC_2.2 cacosh F
+GLIBC_2.2 cacoshf F
+GLIBC_2.2 cacoshl F
+GLIBC_2.2 cacosl F
+GLIBC_2.2 carg F
+GLIBC_2.2 cargf F
+GLIBC_2.2 cargl F
+GLIBC_2.2 casin F
+GLIBC_2.2 casinf F
+GLIBC_2.2 casinh F
+GLIBC_2.2 casinhf F
+GLIBC_2.2 casinhl F
+GLIBC_2.2 casinl F
+GLIBC_2.2 catan F
+GLIBC_2.2 catanf F
+GLIBC_2.2 catanh F
+GLIBC_2.2 catanhf F
+GLIBC_2.2 catanhl F
+GLIBC_2.2 catanl F
+GLIBC_2.2 cbrt F
+GLIBC_2.2 cbrtf F
+GLIBC_2.2 cbrtl F
+GLIBC_2.2 ccos F
+GLIBC_2.2 ccosf F
+GLIBC_2.2 ccosh F
+GLIBC_2.2 ccoshf F
+GLIBC_2.2 ccoshl F
+GLIBC_2.2 ccosl F
+GLIBC_2.2 ceil F
+GLIBC_2.2 ceilf F
+GLIBC_2.2 ceill F
+GLIBC_2.2 cexp F
+GLIBC_2.2 cexpf F
+GLIBC_2.2 cexpl F
+GLIBC_2.2 cimag F
+GLIBC_2.2 cimagf F
+GLIBC_2.2 cimagl F
+GLIBC_2.2 clog F
+GLIBC_2.2 clog10 F
+GLIBC_2.2 clog10f F
+GLIBC_2.2 clog10l F
+GLIBC_2.2 clogf F
+GLIBC_2.2 clogl F
+GLIBC_2.2 conj F
+GLIBC_2.2 conjf F
+GLIBC_2.2 conjl F
+GLIBC_2.2 copysign F
+GLIBC_2.2 copysignf F
+GLIBC_2.2 copysignl F
+GLIBC_2.2 cos F
+GLIBC_2.2 cosf F
+GLIBC_2.2 cosh F
+GLIBC_2.2 coshf F
+GLIBC_2.2 coshl F
+GLIBC_2.2 cosl F
+GLIBC_2.2 cpow F
+GLIBC_2.2 cpowf F
+GLIBC_2.2 cpowl F
+GLIBC_2.2 cproj F
+GLIBC_2.2 cprojf F
+GLIBC_2.2 cprojl F
+GLIBC_2.2 creal F
+GLIBC_2.2 crealf F
+GLIBC_2.2 creall F
+GLIBC_2.2 csin F
+GLIBC_2.2 csinf F
+GLIBC_2.2 csinh F
+GLIBC_2.2 csinhf F
+GLIBC_2.2 csinhl F
+GLIBC_2.2 csinl F
+GLIBC_2.2 csqrt F
+GLIBC_2.2 csqrtf F
+GLIBC_2.2 csqrtl F
+GLIBC_2.2 ctan F
+GLIBC_2.2 ctanf F
+GLIBC_2.2 ctanh F
+GLIBC_2.2 ctanhf F
+GLIBC_2.2 ctanhl F
+GLIBC_2.2 ctanl F
+GLIBC_2.2 drem F
+GLIBC_2.2 dremf F
+GLIBC_2.2 dreml F
+GLIBC_2.2 erf F
+GLIBC_2.2 erfc F
+GLIBC_2.2 erfcf F
+GLIBC_2.2 erfcl F
+GLIBC_2.2 erff F
+GLIBC_2.2 erfl F
+GLIBC_2.2 exp F
+GLIBC_2.2 exp10 F
+GLIBC_2.2 exp10f F
+GLIBC_2.2 exp10l F
+GLIBC_2.2 exp2 F
+GLIBC_2.2 exp2f F
+GLIBC_2.2 expf F
+GLIBC_2.2 expl F
+GLIBC_2.2 expm1 F
+GLIBC_2.2 expm1f F
+GLIBC_2.2 expm1l F
+GLIBC_2.2 fabs F
+GLIBC_2.2 fabsf F
+GLIBC_2.2 fabsl F
+GLIBC_2.2 fdim F
+GLIBC_2.2 fdimf F
+GLIBC_2.2 fdiml F
+GLIBC_2.2 feclearexcept F
+GLIBC_2.2 fedisableexcept F
+GLIBC_2.2 feenableexcept F
+GLIBC_2.2 fegetenv F
+GLIBC_2.2 fegetexcept F
+GLIBC_2.2 fegetexceptflag F
+GLIBC_2.2 fegetround F
+GLIBC_2.2 feholdexcept F
+GLIBC_2.2 feraiseexcept F
+GLIBC_2.2 fesetenv F
+GLIBC_2.2 fesetexceptflag F
+GLIBC_2.2 fesetround F
+GLIBC_2.2 fetestexcept F
+GLIBC_2.2 feupdateenv F
+GLIBC_2.2 finite F
+GLIBC_2.2 finitef F
+GLIBC_2.2 finitel F
+GLIBC_2.2 floor F
+GLIBC_2.2 floorf F
+GLIBC_2.2 floorl F
+GLIBC_2.2 fma F
+GLIBC_2.2 fmaf F
+GLIBC_2.2 fmal F
+GLIBC_2.2 fmax F
+GLIBC_2.2 fmaxf F
+GLIBC_2.2 fmaxl F
+GLIBC_2.2 fmin F
+GLIBC_2.2 fminf F
+GLIBC_2.2 fminl F
+GLIBC_2.2 fmod F
+GLIBC_2.2 fmodf F
+GLIBC_2.2 fmodl F
+GLIBC_2.2 frexp F
+GLIBC_2.2 frexpf F
+GLIBC_2.2 frexpl F
+GLIBC_2.2 gamma F
+GLIBC_2.2 gammaf F
+GLIBC_2.2 gammal F
+GLIBC_2.2 hypot F
+GLIBC_2.2 hypotf F
+GLIBC_2.2 hypotl F
+GLIBC_2.2 ilogb F
+GLIBC_2.2 ilogbf F
+GLIBC_2.2 ilogbl F
+GLIBC_2.2 j0 F
+GLIBC_2.2 j0f F
+GLIBC_2.2 j0l F
+GLIBC_2.2 j1 F
+GLIBC_2.2 j1f F
+GLIBC_2.2 j1l F
+GLIBC_2.2 jn F
+GLIBC_2.2 jnf F
+GLIBC_2.2 jnl F
+GLIBC_2.2 ldexp F
+GLIBC_2.2 ldexpf F
+GLIBC_2.2 ldexpl F
+GLIBC_2.2 lgamma F
+GLIBC_2.2 lgamma_r F
+GLIBC_2.2 lgammaf F
+GLIBC_2.2 lgammaf_r F
+GLIBC_2.2 lgammal F
+GLIBC_2.2 lgammal_r F
+GLIBC_2.2 llrint F
+GLIBC_2.2 llrintf F
+GLIBC_2.2 llrintl F
+GLIBC_2.2 llround F
+GLIBC_2.2 llroundf F
+GLIBC_2.2 llroundl F
+GLIBC_2.2 log F
+GLIBC_2.2 log10 F
+GLIBC_2.2 log10f F
+GLIBC_2.2 log10l F
+GLIBC_2.2 log1p F
+GLIBC_2.2 log1pf F
+GLIBC_2.2 log1pl F
+GLIBC_2.2 log2 F
+GLIBC_2.2 log2f F
+GLIBC_2.2 log2l F
+GLIBC_2.2 logb F
+GLIBC_2.2 logbf F
+GLIBC_2.2 logbl F
+GLIBC_2.2 logf F
+GLIBC_2.2 logl F
+GLIBC_2.2 lrint F
+GLIBC_2.2 lrintf F
+GLIBC_2.2 lrintl F
+GLIBC_2.2 lround F
+GLIBC_2.2 lroundf F
+GLIBC_2.2 lroundl F
+GLIBC_2.2 matherr F
+GLIBC_2.2 modf F
+GLIBC_2.2 modff F
+GLIBC_2.2 modfl F
+GLIBC_2.2 nan F
+GLIBC_2.2 nanf F
+GLIBC_2.2 nanl F
+GLIBC_2.2 nearbyint F
+GLIBC_2.2 nearbyintf F
+GLIBC_2.2 nearbyintl F
+GLIBC_2.2 nextafter F
+GLIBC_2.2 nextafterf F
+GLIBC_2.2 nextafterl F
+GLIBC_2.2 nexttoward F
+GLIBC_2.2 nexttowardf F
+GLIBC_2.2 nexttowardl F
+GLIBC_2.2 pow F
+GLIBC_2.2 pow10 F
+GLIBC_2.2 pow10f F
+GLIBC_2.2 pow10l F
+GLIBC_2.2 powf F
+GLIBC_2.2 powl F
+GLIBC_2.2 remainder F
+GLIBC_2.2 remainderf F
+GLIBC_2.2 remainderl F
+GLIBC_2.2 remquo F
+GLIBC_2.2 remquof F
+GLIBC_2.2 remquol F
+GLIBC_2.2 rint F
+GLIBC_2.2 rintf F
+GLIBC_2.2 rintl F
+GLIBC_2.2 round F
+GLIBC_2.2 roundf F
+GLIBC_2.2 roundl F
+GLIBC_2.2 scalb F
+GLIBC_2.2 scalbf F
+GLIBC_2.2 scalbl F
+GLIBC_2.2 scalbln F
+GLIBC_2.2 scalblnf F
+GLIBC_2.2 scalblnl F
+GLIBC_2.2 scalbn F
+GLIBC_2.2 scalbnf F
+GLIBC_2.2 scalbnl F
+GLIBC_2.2 signgam D 0x4
+GLIBC_2.2 significand F
+GLIBC_2.2 significandf F
+GLIBC_2.2 significandl F
+GLIBC_2.2 sin F
+GLIBC_2.2 sincos F
+GLIBC_2.2 sincosf F
+GLIBC_2.2 sincosl F
+GLIBC_2.2 sinf F
+GLIBC_2.2 sinh F
+GLIBC_2.2 sinhf F
+GLIBC_2.2 sinhl F
+GLIBC_2.2 sinl F
+GLIBC_2.2 sqrt F
+GLIBC_2.2 sqrtf F
+GLIBC_2.2 sqrtl F
+GLIBC_2.2 tan F
+GLIBC_2.2 tanf F
+GLIBC_2.2 tanh F
+GLIBC_2.2 tanhf F
+GLIBC_2.2 tanhl F
+GLIBC_2.2 tanl F
+GLIBC_2.2 tgamma F
+GLIBC_2.2 tgammaf F
+GLIBC_2.2 tgammal F
+GLIBC_2.2 trunc F
+GLIBC_2.2 truncf F
+GLIBC_2.2 truncl F
+GLIBC_2.2 y0 F
+GLIBC_2.2 y0f F
+GLIBC_2.2 y0l F
+GLIBC_2.2 y1 F
+GLIBC_2.2 y1f F
+GLIBC_2.2 y1l F
+GLIBC_2.2 yn F
+GLIBC_2.2 ynf F
+GLIBC_2.2 ynl F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 canonicalize F
+GLIBC_2.25 canonicalizef F
+GLIBC_2.25 canonicalizel F
+GLIBC_2.25 fegetmode F
+GLIBC_2.25 fesetexcept F
+GLIBC_2.25 fesetmode F
+GLIBC_2.25 fetestexceptflag F
+GLIBC_2.25 fmaxmag F
+GLIBC_2.25 fmaxmagf F
+GLIBC_2.25 fmaxmagl F
+GLIBC_2.25 fminmag F
+GLIBC_2.25 fminmagf F
+GLIBC_2.25 fminmagl F
+GLIBC_2.25 fromfp F
+GLIBC_2.25 fromfpf F
+GLIBC_2.25 fromfpl F
+GLIBC_2.25 fromfpx F
+GLIBC_2.25 fromfpxf F
+GLIBC_2.25 fromfpxl F
+GLIBC_2.25 getpayload F
+GLIBC_2.25 getpayloadf F
+GLIBC_2.25 getpayloadl F
+GLIBC_2.25 llogb F
+GLIBC_2.25 llogbf F
+GLIBC_2.25 llogbl F
+GLIBC_2.25 roundeven F
+GLIBC_2.25 roundevenf F
+GLIBC_2.25 roundevenl F
+GLIBC_2.25 setpayload F
+GLIBC_2.25 setpayloadf F
+GLIBC_2.25 setpayloadl F
+GLIBC_2.25 setpayloadsig F
+GLIBC_2.25 setpayloadsigf F
+GLIBC_2.25 setpayloadsigl F
+GLIBC_2.25 totalorder F
+GLIBC_2.25 totalorderf F
+GLIBC_2.25 totalorderl F
+GLIBC_2.25 totalordermag F
+GLIBC_2.25 totalordermagf F
+GLIBC_2.25 totalordermagl F
+GLIBC_2.25 ufromfp F
+GLIBC_2.25 ufromfpf F
+GLIBC_2.25 ufromfpl F
+GLIBC_2.25 ufromfpx F
+GLIBC_2.25 ufromfpxf F
+GLIBC_2.25 ufromfpxl F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 exp2l F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libnsl.abilist
new file mode 100644
index 0000000000..a23db2aeaf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libnsl.abilist
@@ -0,0 +1,124 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 __yp_check F
+GLIBC_2.0 xdr_domainname F
+GLIBC_2.0 xdr_keydat F
+GLIBC_2.0 xdr_mapname F
+GLIBC_2.0 xdr_peername F
+GLIBC_2.0 xdr_valdat F
+GLIBC_2.0 xdr_yp_buf F
+GLIBC_2.0 xdr_ypbind_binding F
+GLIBC_2.0 xdr_ypbind_resp F
+GLIBC_2.0 xdr_ypbind_resptype F
+GLIBC_2.0 xdr_ypbind_setdom F
+GLIBC_2.0 xdr_ypdelete_args F
+GLIBC_2.0 xdr_ypmap_parms F
+GLIBC_2.0 xdr_ypmaplist F
+GLIBC_2.0 xdr_yppush_status F
+GLIBC_2.0 xdr_yppushresp_xfr F
+GLIBC_2.0 xdr_ypreq_key F
+GLIBC_2.0 xdr_ypreq_nokey F
+GLIBC_2.0 xdr_ypreq_xfr F
+GLIBC_2.0 xdr_ypresp_all F
+GLIBC_2.0 xdr_ypresp_key_val F
+GLIBC_2.0 xdr_ypresp_maplist F
+GLIBC_2.0 xdr_ypresp_master F
+GLIBC_2.0 xdr_ypresp_order F
+GLIBC_2.0 xdr_ypresp_val F
+GLIBC_2.0 xdr_ypresp_xfr F
+GLIBC_2.0 xdr_ypstat F
+GLIBC_2.0 xdr_ypupdate_args F
+GLIBC_2.0 xdr_ypxfrstat F
+GLIBC_2.0 yp_all F
+GLIBC_2.0 yp_bind F
+GLIBC_2.0 yp_first F
+GLIBC_2.0 yp_get_default_domain F
+GLIBC_2.0 yp_maplist F
+GLIBC_2.0 yp_master F
+GLIBC_2.0 yp_match F
+GLIBC_2.0 yp_next F
+GLIBC_2.0 yp_order F
+GLIBC_2.0 yp_unbind F
+GLIBC_2.0 yp_update F
+GLIBC_2.0 ypbinderr_string F
+GLIBC_2.0 yperr_string F
+GLIBC_2.0 ypprot_err F
+GLIBC_2.1 GLIBC_2.1 A
+GLIBC_2.1 __free_fdresult F
+GLIBC_2.1 __nis_default_access F
+GLIBC_2.1 __nis_default_group F
+GLIBC_2.1 __nis_default_owner F
+GLIBC_2.1 __nis_default_ttl F
+GLIBC_2.1 __nis_finddirectory F
+GLIBC_2.1 __nis_hash F
+GLIBC_2.1 __nisbind_connect F
+GLIBC_2.1 __nisbind_create F
+GLIBC_2.1 __nisbind_destroy F
+GLIBC_2.1 __nisbind_next F
+GLIBC_2.1 nis_add F
+GLIBC_2.1 nis_add_entry F
+GLIBC_2.1 nis_addmember F
+GLIBC_2.1 nis_checkpoint F
+GLIBC_2.1 nis_clone_directory F
+GLIBC_2.1 nis_clone_object F
+GLIBC_2.1 nis_clone_result F
+GLIBC_2.1 nis_creategroup F
+GLIBC_2.1 nis_destroy_object F
+GLIBC_2.1 nis_destroygroup F
+GLIBC_2.1 nis_dir_cmp F
+GLIBC_2.1 nis_domain_of F
+GLIBC_2.1 nis_domain_of_r F
+GLIBC_2.1 nis_first_entry F
+GLIBC_2.1 nis_free_directory F
+GLIBC_2.1 nis_free_object F
+GLIBC_2.1 nis_free_request F
+GLIBC_2.1 nis_freenames F
+GLIBC_2.1 nis_freeresult F
+GLIBC_2.1 nis_freeservlist F
+GLIBC_2.1 nis_freetags F
+GLIBC_2.1 nis_getnames F
+GLIBC_2.1 nis_getservlist F
+GLIBC_2.1 nis_ismember F
+GLIBC_2.1 nis_leaf_of F
+GLIBC_2.1 nis_leaf_of_r F
+GLIBC_2.1 nis_lerror F
+GLIBC_2.1 nis_list F
+GLIBC_2.1 nis_local_directory F
+GLIBC_2.1 nis_local_group F
+GLIBC_2.1 nis_local_host F
+GLIBC_2.1 nis_local_principal F
+GLIBC_2.1 nis_lookup F
+GLIBC_2.1 nis_mkdir F
+GLIBC_2.1 nis_modify F
+GLIBC_2.1 nis_modify_entry F
+GLIBC_2.1 nis_name_of F
+GLIBC_2.1 nis_name_of_r F
+GLIBC_2.1 nis_next_entry F
+GLIBC_2.1 nis_perror F
+GLIBC_2.1 nis_ping F
+GLIBC_2.1 nis_print_directory F
+GLIBC_2.1 nis_print_entry F
+GLIBC_2.1 nis_print_group F
+GLIBC_2.1 nis_print_group_entry F
+GLIBC_2.1 nis_print_link F
+GLIBC_2.1 nis_print_object F
+GLIBC_2.1 nis_print_result F
+GLIBC_2.1 nis_print_rights F
+GLIBC_2.1 nis_print_table F
+GLIBC_2.1 nis_read_obj F
+GLIBC_2.1 nis_remove F
+GLIBC_2.1 nis_remove_entry F
+GLIBC_2.1 nis_removemember F
+GLIBC_2.1 nis_rmdir F
+GLIBC_2.1 nis_servstate F
+GLIBC_2.1 nis_sperrno F
+GLIBC_2.1 nis_sperror F
+GLIBC_2.1 nis_sperror_r F
+GLIBC_2.1 nis_stats F
+GLIBC_2.1 nis_verifygroup F
+GLIBC_2.1 nis_write_obj F
+GLIBC_2.1 readColdStartFile F
+GLIBC_2.1 writeColdStartFile F
+GLIBC_2.1 xdr_cback_data F
+GLIBC_2.1 xdr_obj_p F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 xdr_ypall F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
new file mode 100644
index 0000000000..a73aa43c55
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -0,0 +1,245 @@
+GLIBC_2.11 GLIBC_2.11 A
+GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 pthread_getname_np F
+GLIBC_2.12 pthread_mutex_consistent F
+GLIBC_2.12 pthread_mutexattr_getrobust F
+GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 _IO_flockfile F
+GLIBC_2.2 _IO_ftrylockfile F
+GLIBC_2.2 _IO_funlockfile F
+GLIBC_2.2 __close F
+GLIBC_2.2 __connect F
+GLIBC_2.2 __errno_location F
+GLIBC_2.2 __fcntl F
+GLIBC_2.2 __fork F
+GLIBC_2.2 __h_errno_location F
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+GLIBC_2.2 __lseek F
+GLIBC_2.2 __open F
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __pread64 F
+GLIBC_2.2 __pthread_getspecific F
+GLIBC_2.2 __pthread_key_create F
+GLIBC_2.2 __pthread_mutex_destroy F
+GLIBC_2.2 __pthread_mutex_init F
+GLIBC_2.2 __pthread_mutex_lock F
+GLIBC_2.2 __pthread_mutex_trylock F
+GLIBC_2.2 __pthread_mutex_unlock F
+GLIBC_2.2 __pthread_mutexattr_destroy F
+GLIBC_2.2 __pthread_mutexattr_init F
+GLIBC_2.2 __pthread_mutexattr_settype F
+GLIBC_2.2 __pthread_once F
+GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
+GLIBC_2.2 __pthread_rwlock_rdlock F
+GLIBC_2.2 __pthread_rwlock_tryrdlock F
+GLIBC_2.2 __pthread_rwlock_trywrlock F
+GLIBC_2.2 __pthread_rwlock_unlock F
+GLIBC_2.2 __pthread_rwlock_wrlock F
+GLIBC_2.2 __pthread_setspecific F
+GLIBC_2.2 __pwrite64 F
+GLIBC_2.2 __read F
+GLIBC_2.2 __res_state F
+GLIBC_2.2 __send F
+GLIBC_2.2 __sigaction F
+GLIBC_2.2 __vfork F
+GLIBC_2.2 __wait F
+GLIBC_2.2 __write F
+GLIBC_2.2 _pthread_cleanup_pop F
+GLIBC_2.2 _pthread_cleanup_pop_restore F
+GLIBC_2.2 _pthread_cleanup_push F
+GLIBC_2.2 _pthread_cleanup_push_defer F
+GLIBC_2.2 accept F
+GLIBC_2.2 close F
+GLIBC_2.2 connect F
+GLIBC_2.2 fcntl F
+GLIBC_2.2 flockfile F
+GLIBC_2.2 fork F
+GLIBC_2.2 fsync F
+GLIBC_2.2 ftrylockfile F
+GLIBC_2.2 funlockfile F
+GLIBC_2.2 longjmp F
+GLIBC_2.2 lseek F
+GLIBC_2.2 lseek64 F
+GLIBC_2.2 msync F
+GLIBC_2.2 nanosleep F
+GLIBC_2.2 open F
+GLIBC_2.2 open64 F
+GLIBC_2.2 pause F
+GLIBC_2.2 pread F
+GLIBC_2.2 pread64 F
+GLIBC_2.2 pthread_atfork F
+GLIBC_2.2 pthread_attr_destroy F
+GLIBC_2.2 pthread_attr_getdetachstate F
+GLIBC_2.2 pthread_attr_getguardsize F
+GLIBC_2.2 pthread_attr_getinheritsched F
+GLIBC_2.2 pthread_attr_getschedparam F
+GLIBC_2.2 pthread_attr_getschedpolicy F
+GLIBC_2.2 pthread_attr_getscope F
+GLIBC_2.2 pthread_attr_getstack F
+GLIBC_2.2 pthread_attr_getstackaddr F
+GLIBC_2.2 pthread_attr_getstacksize F
+GLIBC_2.2 pthread_attr_init F
+GLIBC_2.2 pthread_attr_setdetachstate F
+GLIBC_2.2 pthread_attr_setguardsize F
+GLIBC_2.2 pthread_attr_setinheritsched F
+GLIBC_2.2 pthread_attr_setschedparam F
+GLIBC_2.2 pthread_attr_setschedpolicy F
+GLIBC_2.2 pthread_attr_setscope F
+GLIBC_2.2 pthread_attr_setstack F
+GLIBC_2.2 pthread_attr_setstackaddr F
+GLIBC_2.2 pthread_attr_setstacksize F
+GLIBC_2.2 pthread_barrier_destroy F
+GLIBC_2.2 pthread_barrier_init F
+GLIBC_2.2 pthread_barrier_wait F
+GLIBC_2.2 pthread_barrierattr_destroy F
+GLIBC_2.2 pthread_barrierattr_init F
+GLIBC_2.2 pthread_barrierattr_setpshared F
+GLIBC_2.2 pthread_cancel F
+GLIBC_2.2 pthread_cond_broadcast F
+GLIBC_2.2 pthread_cond_destroy F
+GLIBC_2.2 pthread_cond_init F
+GLIBC_2.2 pthread_cond_signal F
+GLIBC_2.2 pthread_cond_timedwait F
+GLIBC_2.2 pthread_cond_wait F
+GLIBC_2.2 pthread_condattr_destroy F
+GLIBC_2.2 pthread_condattr_getpshared F
+GLIBC_2.2 pthread_condattr_init F
+GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_create F
+GLIBC_2.2 pthread_detach F
+GLIBC_2.2 pthread_equal F
+GLIBC_2.2 pthread_exit F
+GLIBC_2.2 pthread_getconcurrency F
+GLIBC_2.2 pthread_getcpuclockid F
+GLIBC_2.2 pthread_getschedparam F
+GLIBC_2.2 pthread_getspecific F
+GLIBC_2.2 pthread_join F
+GLIBC_2.2 pthread_key_create F
+GLIBC_2.2 pthread_key_delete F
+GLIBC_2.2 pthread_kill F
+GLIBC_2.2 pthread_kill_other_threads_np F
+GLIBC_2.2 pthread_mutex_destroy F
+GLIBC_2.2 pthread_mutex_init F
+GLIBC_2.2 pthread_mutex_lock F
+GLIBC_2.2 pthread_mutex_timedlock F
+GLIBC_2.2 pthread_mutex_trylock F
+GLIBC_2.2 pthread_mutex_unlock F
+GLIBC_2.2 pthread_mutexattr_destroy F
+GLIBC_2.2 pthread_mutexattr_getkind_np F
+GLIBC_2.2 pthread_mutexattr_getpshared F
+GLIBC_2.2 pthread_mutexattr_gettype F
+GLIBC_2.2 pthread_mutexattr_init F
+GLIBC_2.2 pthread_mutexattr_setkind_np F
+GLIBC_2.2 pthread_mutexattr_setpshared F
+GLIBC_2.2 pthread_mutexattr_settype F
+GLIBC_2.2 pthread_once F
+GLIBC_2.2 pthread_rwlock_destroy F
+GLIBC_2.2 pthread_rwlock_init F
+GLIBC_2.2 pthread_rwlock_rdlock F
+GLIBC_2.2 pthread_rwlock_timedrdlock F
+GLIBC_2.2 pthread_rwlock_timedwrlock F
+GLIBC_2.2 pthread_rwlock_tryrdlock F
+GLIBC_2.2 pthread_rwlock_trywrlock F
+GLIBC_2.2 pthread_rwlock_unlock F
+GLIBC_2.2 pthread_rwlock_wrlock F
+GLIBC_2.2 pthread_rwlockattr_destroy F
+GLIBC_2.2 pthread_rwlockattr_getkind_np F
+GLIBC_2.2 pthread_rwlockattr_getpshared F
+GLIBC_2.2 pthread_rwlockattr_init F
+GLIBC_2.2 pthread_rwlockattr_setkind_np F
+GLIBC_2.2 pthread_rwlockattr_setpshared F
+GLIBC_2.2 pthread_self F
+GLIBC_2.2 pthread_setcancelstate F
+GLIBC_2.2 pthread_setcanceltype F
+GLIBC_2.2 pthread_setconcurrency F
+GLIBC_2.2 pthread_setschedparam F
+GLIBC_2.2 pthread_setspecific F
+GLIBC_2.2 pthread_sigmask F
+GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_lock F
+GLIBC_2.2 pthread_spin_trylock F
+GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_testcancel F
+GLIBC_2.2 pthread_yield F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
+GLIBC_2.2 raise F
+GLIBC_2.2 read F
+GLIBC_2.2 recv F
+GLIBC_2.2 recvfrom F
+GLIBC_2.2 recvmsg F
+GLIBC_2.2 sem_close F
+GLIBC_2.2 sem_destroy F
+GLIBC_2.2 sem_getvalue F
+GLIBC_2.2 sem_init F
+GLIBC_2.2 sem_open F
+GLIBC_2.2 sem_post F
+GLIBC_2.2 sem_timedwait F
+GLIBC_2.2 sem_trywait F
+GLIBC_2.2 sem_unlink F
+GLIBC_2.2 sem_wait F
+GLIBC_2.2 send F
+GLIBC_2.2 sendmsg F
+GLIBC_2.2 sendto F
+GLIBC_2.2 sigaction F
+GLIBC_2.2 siglongjmp F
+GLIBC_2.2 sigwait F
+GLIBC_2.2 system F
+GLIBC_2.2 tcdrain F
+GLIBC_2.2 vfork F
+GLIBC_2.2 wait F
+GLIBC_2.2 waitpid F
+GLIBC_2.2 write F
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 pthread_getattr_np F
+GLIBC_2.2.6 GLIBC_2.2.6 A
+GLIBC_2.2.6 __nanosleep F
+GLIBC_2.3.2 GLIBC_2.3.2 A
+GLIBC_2.3.2 pthread_cond_broadcast F
+GLIBC_2.3.2 pthread_cond_destroy F
+GLIBC_2.3.2 pthread_cond_init F
+GLIBC_2.3.2 pthread_cond_signal F
+GLIBC_2.3.2 pthread_cond_timedwait F
+GLIBC_2.3.2 pthread_cond_wait F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_register_cancel F
+GLIBC_2.3.3 __pthread_register_cancel_defer F
+GLIBC_2.3.3 __pthread_unregister_cancel F
+GLIBC_2.3.3 __pthread_unregister_cancel_restore F
+GLIBC_2.3.3 __pthread_unwind_next F
+GLIBC_2.3.3 pthread_attr_getaffinity_np F
+GLIBC_2.3.3 pthread_attr_setaffinity_np F
+GLIBC_2.3.3 pthread_barrierattr_getpshared F
+GLIBC_2.3.3 pthread_condattr_getclock F
+GLIBC_2.3.3 pthread_condattr_setclock F
+GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 pthread_attr_getaffinity_np F
+GLIBC_2.3.4 pthread_attr_setaffinity_np F
+GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 pthread_mutex_consistent_np F
+GLIBC_2.4 pthread_mutex_getprioceiling F
+GLIBC_2.4 pthread_mutex_setprioceiling F
+GLIBC_2.4 pthread_mutexattr_getprioceiling F
+GLIBC_2.4 pthread_mutexattr_getprotocol F
+GLIBC_2.4 pthread_mutexattr_getrobust_np F
+GLIBC_2.4 pthread_mutexattr_setprioceiling F
+GLIBC_2.4 pthread_mutexattr_setprotocol F
+GLIBC_2.4 pthread_mutexattr_setrobust_np F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
new file mode 100644
index 0000000000..4d50e7c8c6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
@@ -0,0 +1,100 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 __b64_ntop F
+GLIBC_2.0 __b64_pton F
+GLIBC_2.0 __dn_comp F
+GLIBC_2.0 __dn_count_labels F
+GLIBC_2.0 __dn_skipname F
+GLIBC_2.0 __fp_nquery F
+GLIBC_2.0 __fp_query F
+GLIBC_2.0 __fp_resstat F
+GLIBC_2.0 __hostalias F
+GLIBC_2.0 __loc_aton F
+GLIBC_2.0 __loc_ntoa F
+GLIBC_2.0 __p_cdname F
+GLIBC_2.0 __p_cdnname F
+GLIBC_2.0 __p_class F
+GLIBC_2.0 __p_class_syms D 0x54
+GLIBC_2.0 __p_fqname F
+GLIBC_2.0 __p_fqnname F
+GLIBC_2.0 __p_option F
+GLIBC_2.0 __p_query F
+GLIBC_2.0 __p_secstodate F
+GLIBC_2.0 __p_time F
+GLIBC_2.0 __p_type F
+GLIBC_2.0 __p_type_syms D 0x228
+GLIBC_2.0 __putlong F
+GLIBC_2.0 __putshort F
+GLIBC_2.0 __res_close F
+GLIBC_2.0 __res_dnok F
+GLIBC_2.0 __res_hnok F
+GLIBC_2.0 __res_isourserver F
+GLIBC_2.0 __res_mailok F
+GLIBC_2.0 __res_nameinquery F
+GLIBC_2.0 __res_ownok F
+GLIBC_2.0 __res_queriesmatch F
+GLIBC_2.0 __res_send F
+GLIBC_2.0 __sym_ntop F
+GLIBC_2.0 __sym_ntos F
+GLIBC_2.0 __sym_ston F
+GLIBC_2.0 _gethtbyaddr F
+GLIBC_2.0 _gethtbyname F
+GLIBC_2.0 _gethtbyname2 F
+GLIBC_2.0 _gethtent F
+GLIBC_2.0 _getlong F
+GLIBC_2.0 _getshort F
+GLIBC_2.0 _res_opcodes D 0x40
+GLIBC_2.0 _sethtent F
+GLIBC_2.0 dn_expand F
+GLIBC_2.0 inet_net_ntop F
+GLIBC_2.0 inet_net_pton F
+GLIBC_2.0 inet_neta F
+GLIBC_2.0 res_gethostbyaddr F
+GLIBC_2.0 res_gethostbyname F
+GLIBC_2.0 res_gethostbyname2 F
+GLIBC_2.0 res_mkquery F
+GLIBC_2.0 res_query F
+GLIBC_2.0 res_querydomain F
+GLIBC_2.0 res_search F
+GLIBC_2.0 res_send_setqhook F
+GLIBC_2.0 res_send_setrhook F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __dn_expand F
+GLIBC_2.2 __res_hostalias F
+GLIBC_2.2 __res_mkquery F
+GLIBC_2.2 __res_nmkquery F
+GLIBC_2.2 __res_nquery F
+GLIBC_2.2 __res_nquerydomain F
+GLIBC_2.2 __res_nsearch F
+GLIBC_2.2 __res_nsend F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
+GLIBC_2.2 __res_search F
+GLIBC_2.3.2 GLIBC_2.3.2 A
+GLIBC_2.3.2 __p_rcode F
+GLIBC_2.9 GLIBC_2.9 A
+GLIBC_2.9 ns_datetosecs F
+GLIBC_2.9 ns_format_ttl F
+GLIBC_2.9 ns_get16 F
+GLIBC_2.9 ns_get32 F
+GLIBC_2.9 ns_initparse F
+GLIBC_2.9 ns_makecanon F
+GLIBC_2.9 ns_msg_getflag F
+GLIBC_2.9 ns_name_compress F
+GLIBC_2.9 ns_name_ntol F
+GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
+GLIBC_2.9 ns_name_pton F
+GLIBC_2.9 ns_name_rollback F
+GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
+GLIBC_2.9 ns_name_unpack F
+GLIBC_2.9 ns_parse_ttl F
+GLIBC_2.9 ns_parserr F
+GLIBC_2.9 ns_put16 F
+GLIBC_2.9 ns_put32 F
+GLIBC_2.9 ns_samedomain F
+GLIBC_2.9 ns_samename F
+GLIBC_2.9 ns_skiprr F
+GLIBC_2.9 ns_sprintrr F
+GLIBC_2.9 ns_sprintrrf F
+GLIBC_2.9 ns_subdomain F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/librt.abilist
new file mode 100644
index 0000000000..15e4418863
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -0,0 +1,47 @@
+GLIBC_2.1 GLIBC_2.1 A
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
+GLIBC_2.1 aio_error F
+GLIBC_2.1 aio_error64 F
+GLIBC_2.1 aio_fsync F
+GLIBC_2.1 aio_fsync64 F
+GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
+GLIBC_2.1 aio_return F
+GLIBC_2.1 aio_return64 F
+GLIBC_2.1 aio_suspend F
+GLIBC_2.1 aio_suspend64 F
+GLIBC_2.1 aio_write F
+GLIBC_2.1 aio_write64 F
+GLIBC_2.1 lio_listio F
+GLIBC_2.1 lio_listio64 F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 clock_getcpuclockid F
+GLIBC_2.2 clock_getres F
+GLIBC_2.2 clock_gettime F
+GLIBC_2.2 clock_nanosleep F
+GLIBC_2.2 clock_settime F
+GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
+GLIBC_2.2 timer_settime F
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
+GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
+GLIBC_2.7 GLIBC_2.7 A
+GLIBC_2.7 __mq_open_2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libthread_db.abilist
new file mode 100644
index 0000000000..a8a8c2c68d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libthread_db.abilist
@@ -0,0 +1,44 @@
+GLIBC_2.1.3 GLIBC_2.1.3 A
+GLIBC_2.1.3 td_init F
+GLIBC_2.1.3 td_log F
+GLIBC_2.1.3 td_ta_clear_event F
+GLIBC_2.1.3 td_ta_delete F
+GLIBC_2.1.3 td_ta_enable_stats F
+GLIBC_2.1.3 td_ta_event_addr F
+GLIBC_2.1.3 td_ta_event_getmsg F
+GLIBC_2.1.3 td_ta_get_nthreads F
+GLIBC_2.1.3 td_ta_get_ph F
+GLIBC_2.1.3 td_ta_get_stats F
+GLIBC_2.1.3 td_ta_map_id2thr F
+GLIBC_2.1.3 td_ta_map_lwp2thr F
+GLIBC_2.1.3 td_ta_new F
+GLIBC_2.1.3 td_ta_reset_stats F
+GLIBC_2.1.3 td_ta_set_event F
+GLIBC_2.1.3 td_ta_setconcurrency F
+GLIBC_2.1.3 td_ta_thr_iter F
+GLIBC_2.1.3 td_ta_tsd_iter F
+GLIBC_2.1.3 td_thr_clear_event F
+GLIBC_2.1.3 td_thr_dbresume F
+GLIBC_2.1.3 td_thr_dbsuspend F
+GLIBC_2.1.3 td_thr_event_enable F
+GLIBC_2.1.3 td_thr_event_getmsg F
+GLIBC_2.1.3 td_thr_get_info F
+GLIBC_2.1.3 td_thr_getfpregs F
+GLIBC_2.1.3 td_thr_getgregs F
+GLIBC_2.1.3 td_thr_getxregs F
+GLIBC_2.1.3 td_thr_getxregsize F
+GLIBC_2.1.3 td_thr_set_event F
+GLIBC_2.1.3 td_thr_setfpregs F
+GLIBC_2.1.3 td_thr_setgregs F
+GLIBC_2.1.3 td_thr_setprio F
+GLIBC_2.1.3 td_thr_setsigpending F
+GLIBC_2.1.3 td_thr_setxregs F
+GLIBC_2.1.3 td_thr_sigsetmask F
+GLIBC_2.1.3 td_thr_tsd F
+GLIBC_2.1.3 td_thr_validate F
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 td_symbol_list F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 td_thr_tls_get_addr F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 td_thr_tlsbase F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libutil.abilist
new file mode 100644
index 0000000000..89c67755c4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 forkpty F
+GLIBC_2.0 login F
+GLIBC_2.0 login_tty F
+GLIBC_2.0 logout F
+GLIBC_2.0 logwtmp F
+GLIBC_2.0 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/localplt.data
new file mode 100644
index 0000000000..9dd81b47c8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/localplt.data
@@ -0,0 +1,24 @@
+# See scripts/check-localplt.awk for how this file is processed.
+# PLT use is required for the malloc family and for matherr because
+# users can define their own functions and have library internals call them.
+libc.so: calloc
+libc.so: free
+libc.so: malloc
+libc.so: memalign
+libc.so: realloc
+libc.so: _exit
+libc.so: __sigsetjmp
+libc.so: _IO_funlockfile
+libc.so: sigprocmask
+libc.so: __errno_location
+libm.so: matherr
+libpthread.so: __errno_location
+# The main malloc is interposed into the dynamic linker, for
+# allocations after the initial link (when dlopen is used).
+ld.so: malloc
+ld.so: calloc
+ld.so: realloc
+ld.so: free
+# The TLS-enabled version of these functions is interposed from libc.so.
+ld.so: _dl_signal_error
+ld.so: _dl_catch_error
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/lxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/lxstat.c
new file mode 100644
index 0000000000..0efa0aea49
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/lxstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/lxstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/makecontext.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/makecontext.c
new file mode 100644
index 0000000000..9b02e49608
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/makecontext.c
@@ -0,0 +1,99 @@
+/* Create new context.
+   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Helge Deller <deller@gmx.de>, 2008.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <libintl.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sysdep.h>
+#include <ucontext.h>
+
+/* POSIX only supports integer arguments.  */
+
+/* Stack must be 64-byte aligned at all times.  */
+#define STACK_ALIGN 64
+/* Size of frame marker in unsigned long words.  */
+#define FRAME_SIZE_UL 8
+/* Size of frame marker in bytes.  */
+#define FRAME_SIZE_BYTES (8 * sizeof(unsigned long))
+/* Size of X arguments in bytes.  */
+#define ARGS(x) (x * sizeof(unsigned long))
+
+void
+__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
+{
+  unsigned long *sp, *osp;
+  va_list ap;
+  int i;
+
+  /* Create a 64-byte aligned frame to store args. Use ss_sp if
+     it is available, otherwise be robust and use the currently
+     saved stack pointer.  */
+  if (ucp->uc_stack.ss_sp && ucp->uc_stack.ss_size)
+    osp = (unsigned long *)ucp->uc_stack.ss_sp;
+  else
+    osp = (unsigned long *)ucp->uc_mcontext.sc_gr[30];
+
+  sp = (unsigned long *)((((unsigned long) osp)
+			   + FRAME_SIZE_BYTES + ARGS(argc) + STACK_ALIGN)
+			 & ~(STACK_ALIGN - 1));
+
+  /* Use new frame.  */
+  ucp->uc_mcontext.sc_gr[30] = ((unsigned long) sp);
+
+  /* Finish frame setup.  */
+  if (ucp->uc_link)
+    {
+      /* Returning to the next context and next frame.  */
+      sp[-4/sizeof(unsigned long)] = ucp->uc_link->uc_mcontext.sc_gr[30];
+      sp[-20/sizeof(unsigned long)] = ucp->uc_link->uc_mcontext.sc_gr[2];
+    }
+  else
+    {
+      /* This is the main context. No frame marker, and no return address.  */
+      sp[-4/sizeof(unsigned long)] = 0x0;
+      sp[-20/sizeof(unsigned long)] = 0x0;
+    }
+
+  /* Store address to jump to.  */
+  ucp->uc_mcontext.sc_gr[2] = (unsigned long) func;
+
+  /* Process arguments.  */
+  va_start (ap, argc);
+  for (i = 0; i < argc; ++i)
+    {
+      if (i < 4)
+	{
+	  ucp->uc_mcontext.sc_gr[26-i] = va_arg (ap, int);
+	  continue;
+	}
+
+      if ((i < 8) && (sizeof(unsigned long) == 8))
+	{
+	  /* 64bit: r19-r22 are arg7-arg4.  */
+	  ucp->uc_mcontext.sc_gr[22+4-i] = va_arg (ap, int);
+	  continue;
+	}
+
+      /* All other arguments go on the stack.  */
+      sp[-1 * (FRAME_SIZE_UL + 1 + i)] = va_arg (ap, int);
+    }
+  va_end (ap);
+}
+weak_alias(__makecontext, makecontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/profil-counter.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/profil-counter.h
new file mode 100644
index 0000000000..0bb6e37298
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/profil-counter.h
@@ -0,0 +1,24 @@
+/* Machine-dependent SIGPROF signal handler.  PA-RISC version
+   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/>.  */
+
+static void
+__profil_counter (int signr, siginfo_t *si, struct ucontext *uctx)
+{
+  unsigned long ip = uctx->uc_mcontext.sc_iaoq[0] & ~0x3;
+  profil_count ((void *) ip);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pt-vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pt-vfork.S
new file mode 100644
index 0000000000..fc4573c86b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pt-vfork.S
@@ -0,0 +1,79 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <sysdep.h>
+#define _ERRNO_H        1
+#include <bits/errno.h>
+#include <tcb-offsets.h>
+
+/* Clone the calling process, but without copying the whole address space.
+   The calling process is suspended until the new process exits or is
+   replaced by a call to `execve'.  Return -1 for errors, 0 to the new process,
+   and the process ID of the new process to the old process.  */
+
+.Lthread_start:						ASM_LINE_SEP
+
+	/* r26, r25, r24, r23 are free since vfork has no arguments */
+ENTRY(__vfork)
+	/* We must not create a frame. When the child unwinds to call
+	   exec it will clobber the same frame that the parent
+	   needs to unwind.  */
+
+	/* Save the PIC register. */
+#ifdef PIC
+	copy	%r19, %r25	/* parent */
+#endif
+
+	/* Syscall saves and restores all register states */
+	ble	0x100(%sr2,%r0)
+	ldi	__NR_vfork,%r20
+
+	/* Check for error */
+	ldi	-4096,%r1
+	comclr,>>= %r1,%ret0,%r0        /* Note: unsigned compare. */
+	b,n	.Lerror
+
+	/* Return, and DO NOT restore rp. The child may have called
+	   functions that updated the frame's rp. This works because
+	   the kernel ensures rp is preserved across the vfork
+	   syscall.  */
+	bv,n	%r0(%rp)
+
+.Lerror:
+	/* Now we need a stack to call a function. We are assured
+	   that there is no child now, so it's safe to create
+	   a frame.  */
+	stw	%rp, -20(%sp)
+	stwm	%r3, 64(%sp)
+	stw	%sp, -4(%sp)
+
+	sub	%r0,%ret0,%r3
+	SYSCALL_ERROR_HANDLER
+	/* Restore the PIC register (in delay slot) on error */
+#ifdef PIC
+	copy	%r25, %r19    /* parent */
+#else
+	nop
+#endif
+	/* Write syscall return into errno location */
+	stw	%r3, 0(%ret0)
+	ldw	-84(%sp), %rp
+	bv	%r0(%rp)
+	ldwm	-64(%sp), %r3
+PSEUDO_END (__vfork)
+libc_hidden_def (__vfork)
+weak_alias (__vfork, vfork)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread.h
new file mode 100644
index 0000000000..ac617201d2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread.h
@@ -0,0 +1,1203 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _PTHREAD_H
+#define _PTHREAD_H	1
+
+#include <features.h>
+#include <endian.h>
+#include <sched.h>
+#include <time.h>
+
+#include <bits/pthreadtypes.h>
+#include <bits/setjmp.h>
+#include <bits/wordsize.h>
+
+
+/* Detach state.  */
+enum
+{
+  PTHREAD_CREATE_JOINABLE,
+#define PTHREAD_CREATE_JOINABLE	PTHREAD_CREATE_JOINABLE
+  PTHREAD_CREATE_DETACHED
+#define PTHREAD_CREATE_DETACHED	PTHREAD_CREATE_DETACHED
+};
+
+
+/* Mutex types.  */
+enum
+{
+  PTHREAD_MUTEX_TIMED_NP,
+  PTHREAD_MUTEX_RECURSIVE_NP,
+  PTHREAD_MUTEX_ERRORCHECK_NP,
+  PTHREAD_MUTEX_ADAPTIVE_NP
+#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+  ,
+  PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
+  PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
+  PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
+  PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
+#endif
+#ifdef __USE_GNU
+  /* For compatibility.  */
+  , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP
+#endif
+};
+
+
+#ifdef __USE_XOPEN2K
+/* Robust mutex or not flags.  */
+enum
+{
+  PTHREAD_MUTEX_STALLED,
+  PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED,
+  PTHREAD_MUTEX_ROBUST,
+  PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST
+};
+#endif
+
+
+#if defined __USE_POSIX199506 || defined __USE_UNIX98
+/* Mutex protocols.  */
+enum
+{
+  PTHREAD_PRIO_NONE,
+  PTHREAD_PRIO_INHERIT,
+  PTHREAD_PRIO_PROTECT
+};
+#endif
+
+
+#ifdef __PTHREAD_MUTEX_HAVE_PREV
+# define PTHREAD_MUTEX_INITIALIZER \
+  { { 0, 0, 0, 0, 0, __PTHREAD_SPINS, { 0, 0 } } }
+# ifdef __USE_GNU
+#  define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
+  { { 0, 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, __PTHREAD_SPINS, { 0, 0 } } }
+#  define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
+  { { 0, 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, __PTHREAD_SPINS, { 0, 0 } } }
+#  define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
+  { { 0, 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, __PTHREAD_SPINS, { 0, 0 } } }
+#  define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
+  { { 0, 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, __PTHREAD_SPINS, { 0, 0 } } }
+
+# endif
+#else
+# define PTHREAD_MUTEX_INITIALIZER \
+  { { 0, 0, 0, 0, 0, { __PTHREAD_SPINS } } }
+# ifdef __USE_GNU
+#  define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
+  { { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { __PTHREAD_SPINS } } }
+#  define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
+  { { 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, 0, { __PTHREAD_SPINS } } }
+#  define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
+  { { 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, 0, { __PTHREAD_SPINS } } }
+
+# endif
+#endif
+
+
+/* Read-write lock types.  */
+#if defined __USE_UNIX98 || defined __USE_XOPEN2K
+enum
+{
+  PTHREAD_RWLOCK_PREFER_READER_NP,
+  PTHREAD_RWLOCK_PREFER_WRITER_NP,
+  PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
+  PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
+};
+
+/* Define __PTHREAD_RWLOCK_INT_FLAGS_SHARED to 1 if pthread_rwlock_t
+   has the shared field.  All 64-bit architectures have the shared field
+   in pthread_rwlock_t.  */
+#ifndef __PTHREAD_RWLOCK_INT_FLAGS_SHARED
+# if __WORDSIZE == 64
+#  define __PTHREAD_RWLOCK_INT_FLAGS_SHARED 1
+# endif
+#endif
+
+/* Read-write lock initializers.  */
+# define PTHREAD_RWLOCK_INITIALIZER \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, 0 } }
+# ifdef __USE_GNU
+#  ifdef __PTHREAD_RWLOCK_INT_FLAGS_SHARED
+#   define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0,					      \
+	PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP } }
+#  else
+#   if __BYTE_ORDER == __LITTLE_ENDIAN
+#    define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
+  { { 0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, \
+      0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, 0 } }
+#   else
+#    define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,\
+      0 } }
+#   endif
+#  endif
+# endif
+#endif  /* Unix98 or XOpen2K */
+
+
+/* Scheduler inheritance.  */
+enum
+{
+  PTHREAD_INHERIT_SCHED,
+#define PTHREAD_INHERIT_SCHED   PTHREAD_INHERIT_SCHED
+  PTHREAD_EXPLICIT_SCHED
+#define PTHREAD_EXPLICIT_SCHED  PTHREAD_EXPLICIT_SCHED
+};
+
+
+/* Scope handling.  */
+enum
+{
+  PTHREAD_SCOPE_SYSTEM,
+#define PTHREAD_SCOPE_SYSTEM    PTHREAD_SCOPE_SYSTEM
+  PTHREAD_SCOPE_PROCESS
+#define PTHREAD_SCOPE_PROCESS   PTHREAD_SCOPE_PROCESS
+};
+
+
+/* Process shared or private flag.  */
+enum
+{
+  PTHREAD_PROCESS_PRIVATE,
+#define PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_PRIVATE
+  PTHREAD_PROCESS_SHARED
+#define PTHREAD_PROCESS_SHARED  PTHREAD_PROCESS_SHARED
+};
+
+
+
+/* Conditional variable handling.  */
+#define PTHREAD_COND_INITIALIZER { { 0, 0, 0, 0, 0, (void *) 0, 0, 0 } }
+
+
+/* Cleanup buffers */
+struct _pthread_cleanup_buffer
+{
+  void (*__routine) (void *);             /* Function to call.  */
+  void *__arg;                            /* Its argument.  */
+  int __canceltype;                       /* Saved cancellation type. */
+  struct _pthread_cleanup_buffer *__prev; /* Chaining of cleanup functions.  */
+};
+
+/* Cancellation */
+enum
+{
+  PTHREAD_CANCEL_ENABLE,
+#define PTHREAD_CANCEL_ENABLE   PTHREAD_CANCEL_ENABLE
+  PTHREAD_CANCEL_DISABLE
+#define PTHREAD_CANCEL_DISABLE  PTHREAD_CANCEL_DISABLE
+};
+enum
+{
+  PTHREAD_CANCEL_DEFERRED,
+#define PTHREAD_CANCEL_DEFERRED	PTHREAD_CANCEL_DEFERRED
+  PTHREAD_CANCEL_ASYNCHRONOUS
+#define PTHREAD_CANCEL_ASYNCHRONOUS	PTHREAD_CANCEL_ASYNCHRONOUS
+};
+#define PTHREAD_CANCELED ((void *) -1)
+
+
+/* Single execution handling.  */
+#define PTHREAD_ONCE_INIT 0
+
+
+#ifdef __USE_XOPEN2K
+/* Value returned by 'pthread_barrier_wait' for one of the threads after
+   the required number of threads have called this function.
+   -1 is distinct from 0 and all errno constants */
+# define PTHREAD_BARRIER_SERIAL_THREAD -1
+#endif
+
+
+__BEGIN_DECLS
+
+/* Create a new thread, starting with execution of START-ROUTINE
+   getting passed ARG.  Creation attributed come from ATTR.  The new
+   handle is stored in *NEWTHREAD.  */
+extern int pthread_create (pthread_t *__restrict __newthread,
+			   const pthread_attr_t *__restrict __attr,
+			   void *(*__start_routine) (void *),
+			   void *__restrict __arg) __THROWNL __nonnull ((1, 3));
+
+/* Terminate calling thread.
+
+   The registered cleanup handlers are called via exception handling
+   so we cannot mark this function with __THROW.*/
+extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));
+
+/* Make calling thread wait for termination of the thread TH.  The
+   exit status of the thread is stored in *THREAD_RETURN, if THREAD_RETURN
+   is not NULL.
+
+   This function is a cancellation point and therefore not marked with
+   __THROW.  */
+extern int pthread_join (pthread_t __th, void **__thread_return);
+
+#ifdef __USE_GNU
+/* Check whether thread TH has terminated.  If yes return the status of
+   the thread in *THREAD_RETURN, if THREAD_RETURN is not NULL.  */
+extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) __THROW;
+
+/* Make calling thread wait for termination of the thread TH, but only
+   until TIMEOUT.  The exit status of the thread is stored in
+   *THREAD_RETURN, if THREAD_RETURN is not NULL.
+
+   This function is a cancellation point and therefore not marked with
+   __THROW.  */
+extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
+				 const struct timespec *__abstime);
+#endif
+
+/* Indicate that the thread TH is never to be joined with PTHREAD_JOIN.
+   The resources of TH will therefore be freed immediately when it
+   terminates, instead of waiting for another thread to perform PTHREAD_JOIN
+   on it.  */
+extern int pthread_detach (pthread_t __th) __THROW;
+
+
+/* Obtain the identifier of the current thread.  */
+extern pthread_t pthread_self (void) __THROW __attribute__ ((__const__));
+
+/* Compare two thread identifiers.  */
+extern int pthread_equal (pthread_t __thread1, pthread_t __thread2)
+  __THROW __attribute__ ((__const__));
+
+
+/* Thread attribute handling.  */
+
+/* Initialize thread attribute *ATTR with default attributes
+   (detachstate is PTHREAD_JOINABLE, scheduling policy is SCHED_OTHER,
+    no user-provided stack).  */
+extern int pthread_attr_init (pthread_attr_t *__attr) __THROW __nonnull ((1));
+
+/* Destroy thread attribute *ATTR.  */
+extern int pthread_attr_destroy (pthread_attr_t *__attr)
+     __THROW __nonnull ((1));
+
+/* Get detach state attribute.  */
+extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr,
+					int *__detachstate)
+     __THROW __nonnull ((1, 2));
+
+/* Set detach state attribute.  */
+extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
+					int __detachstate)
+     __THROW __nonnull ((1));
+
+
+/* Get the size of the guard area created for stack overflow protection.  */
+extern int pthread_attr_getguardsize (const pthread_attr_t *__attr,
+				      size_t *__guardsize)
+     __THROW __nonnull ((1, 2));
+
+/* Set the size of the guard area created for stack overflow protection.  */
+extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
+				      size_t __guardsize)
+     __THROW __nonnull ((1));
+
+
+/* Return in *PARAM the scheduling parameters of *ATTR.  */
+extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr,
+				       struct sched_param *__restrict __param)
+     __THROW __nonnull ((1, 2));
+
+/* Set scheduling parameters (priority, etc) in *ATTR according to PARAM.  */
+extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
+				       const struct sched_param *__restrict
+				       __param) __THROW __nonnull ((1, 2));
+
+/* Return in *POLICY the scheduling policy of *ATTR.  */
+extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict
+					__attr, int *__restrict __policy)
+     __THROW __nonnull ((1, 2));
+
+/* Set scheduling policy in *ATTR according to POLICY.  */
+extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
+     __THROW __nonnull ((1));
+
+/* Return in *INHERIT the scheduling inheritance mode of *ATTR.  */
+extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict
+					 __attr, int *__restrict __inherit)
+     __THROW __nonnull ((1, 2));
+
+/* Set scheduling inheritance mode in *ATTR according to INHERIT.  */
+extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
+					 int __inherit)
+     __THROW __nonnull ((1));
+
+
+/* Return in *SCOPE the scheduling contention scope of *ATTR.  */
+extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr,
+				  int *__restrict __scope)
+     __THROW __nonnull ((1, 2));
+
+/* Set scheduling contention scope in *ATTR according to SCOPE.  */
+extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
+     __THROW __nonnull ((1));
+
+/* Return the previously set address for the stack.  */
+extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict
+				      __attr, void **__restrict __stackaddr)
+     __THROW __nonnull ((1, 2)) __attribute_deprecated__;
+
+/* Set the starting address of the stack of the thread to be created.
+   Depending on whether the stack grows up or down the value must either
+   be higher or lower than all the address in the memory block.  The
+   minimal size of the block must be PTHREAD_STACK_MIN.  */
+extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
+				      void *__stackaddr)
+     __THROW __nonnull ((1)) __attribute_deprecated__;
+
+/* Return the currently used minimal stack size.  */
+extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict
+				      __attr, size_t *__restrict __stacksize)
+     __THROW __nonnull ((1, 2));
+
+/* Add information about the minimum stack size needed for the thread
+   to be started.  This size must never be less than PTHREAD_STACK_MIN
+   and must also not exceed the system limits.  */
+extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
+				      size_t __stacksize)
+     __THROW __nonnull ((1));
+
+#ifdef __USE_XOPEN2K
+/* Return the previously set address for the stack.  */
+extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
+				  void **__restrict __stackaddr,
+				  size_t *__restrict __stacksize)
+     __THROW __nonnull ((1, 2, 3));
+
+/* The following two interfaces are intended to replace the last two.  They
+   require setting the address as well as the size since only setting the
+   address will make the implementation on some architectures impossible.  */
+extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
+				  size_t __stacksize) __THROW __nonnull ((1));
+#endif
+
+#ifdef __USE_GNU
+/* Thread created with attribute ATTR will be limited to run only on
+   the processors represented in CPUSET.  */
+extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
+					size_t __cpusetsize,
+					const cpu_set_t *__cpuset)
+     __THROW __nonnull ((1, 3));
+
+/* Get bit set in CPUSET representing the processors threads created with
+   ATTR can run on.  */
+extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr,
+					size_t __cpusetsize,
+					cpu_set_t *__cpuset)
+     __THROW __nonnull ((1, 3));
+
+/* Get the default attributes used by pthread_create in this process.  */
+extern int pthread_getattr_default_np (pthread_attr_t *__attr)
+     __THROW __nonnull ((1));
+
+/* Set the default attributes to be used by pthread_create in this
+   process.  */
+extern int pthread_setattr_default_np (const pthread_attr_t *__attr)
+     __THROW __nonnull ((1));
+
+/* Initialize thread attribute *ATTR with attributes corresponding to the
+   already running thread TH.  It shall be called on uninitialized ATTR
+   and destroyed with pthread_attr_destroy when no longer needed.  */
+extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr)
+     __THROW __nonnull ((2));
+#endif
+
+
+/* Functions for scheduling control.  */
+
+/* Set the scheduling parameters for TARGET_THREAD according to POLICY
+   and *PARAM.  */
+extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
+				  const struct sched_param *__param)
+     __THROW __nonnull ((3));
+
+/* Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD. */
+extern int pthread_getschedparam (pthread_t __target_thread,
+				  int *__restrict __policy,
+				  struct sched_param *__restrict __param)
+     __THROW __nonnull ((2, 3));
+
+/* Set the scheduling priority for TARGET_THREAD.  */
+extern int pthread_setschedprio (pthread_t __target_thread, int __prio)
+     __THROW;
+
+
+#ifdef __USE_GNU
+/* Get thread name visible in the kernel and its interfaces.  */
+extern int pthread_getname_np (pthread_t __target_thread, char *__buf,
+			       size_t __buflen)
+     __THROW __nonnull ((2));
+
+/* Set thread name visible in the kernel and its interfaces.  */
+extern int pthread_setname_np (pthread_t __target_thread, const char *__name)
+     __THROW __nonnull ((2));
+#endif
+
+
+#ifdef __USE_UNIX98
+/* Determine level of concurrency.  */
+extern int pthread_getconcurrency (void) __THROW;
+
+/* Set new concurrency level to LEVEL.  */
+extern int pthread_setconcurrency (int __level) __THROW;
+#endif
+
+#ifdef __USE_GNU
+/* Yield the processor to another thread or process.
+   This function is similar to the POSIX `sched_yield' function but
+   might be differently implemented in the case of a m-on-n thread
+   implementation.  */
+extern int pthread_yield (void) __THROW;
+
+
+/* Limit specified thread TH to run only on the processors represented
+   in CPUSET.  */
+extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
+				   const cpu_set_t *__cpuset)
+     __THROW __nonnull ((3));
+
+/* Get bit set in CPUSET representing the processors TH can run on.  */
+extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize,
+				   cpu_set_t *__cpuset)
+     __THROW __nonnull ((3));
+#endif
+
+
+/* Functions for handling initialization.  */
+
+/* Guarantee that the initialization function INIT_ROUTINE will be called
+   only once, even if pthread_once is executed several times with the
+   same ONCE_CONTROL argument. ONCE_CONTROL must point to a static or
+   extern variable initialized to PTHREAD_ONCE_INIT.
+
+   The initialization functions might throw exception which is why
+   this function is not marked with __THROW.  */
+extern int pthread_once (pthread_once_t *__once_control,
+			 void (*__init_routine) (void)) __nonnull ((1, 2));
+
+
+/* Functions for handling cancellation.
+
+   Note that these functions are explicitly not marked to not throw an
+   exception in C++ code.  If cancellation is implemented by unwinding
+   this is necessary to have the compiler generate the unwind information.  */
+
+/* Set cancelability state of current thread to STATE, returning old
+   state in *OLDSTATE if OLDSTATE is not NULL.  */
+extern int pthread_setcancelstate (int __state, int *__oldstate);
+
+/* Set cancellation state of current thread to TYPE, returning the old
+   type in *OLDTYPE if OLDTYPE is not NULL.  */
+extern int pthread_setcanceltype (int __type, int *__oldtype);
+
+/* Cancel THREAD immediately or at the next possibility.  */
+extern int pthread_cancel (pthread_t __th);
+
+/* Test for pending cancellation for the current thread and terminate
+   the thread as per pthread_exit(PTHREAD_CANCELED) if it has been
+   cancelled.  */
+extern void pthread_testcancel (void);
+
+
+/* Cancellation handling with integration into exception handling.  */
+
+typedef struct
+{
+  struct
+  {
+    __jmp_buf __cancel_jmp_buf;
+    int __mask_was_saved;
+  } __cancel_jmp_buf[1];
+  void *__pad[4];
+} __pthread_unwind_buf_t __attribute__ ((__aligned__));
+
+/* No special attributes by default.  */
+#ifndef __cleanup_fct_attribute
+# define __cleanup_fct_attribute
+#endif
+
+
+/* Structure to hold the cleanup handler information.  */
+struct __pthread_cleanup_frame
+{
+  void (*__cancel_routine) (void *);
+  void *__cancel_arg;
+  int __do_it;
+  int __cancel_type;
+};
+
+#if defined __GNUC__ && defined __EXCEPTIONS
+# ifdef __cplusplus
+/* Class to handle cancellation handler invocation.  */
+class __pthread_cleanup_class
+{
+  void (*__cancel_routine) (void *);
+  void *__cancel_arg;
+  int __do_it;
+  int __cancel_type;
+
+ public:
+  __pthread_cleanup_class (void (*__fct) (void *), void *__arg)
+    : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { }
+  ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); }
+  void __setdoit (int __newval) { __do_it = __newval; }
+  void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED,
+					   &__cancel_type); }
+  void __restore () const { pthread_setcanceltype (__cancel_type, 0); }
+};
+
+/* Install a cleanup handler: ROUTINE will be called with arguments ARG
+   when the thread is canceled or calls pthread_exit.  ROUTINE will also
+   be called with arguments ARG when the matching pthread_cleanup_pop
+   is executed with non-zero EXECUTE argument.
+
+   pthread_cleanup_push and pthread_cleanup_pop are macros and must always
+   be used in matching pairs at the same nesting level of braces.  */
+#  define pthread_cleanup_push(routine, arg) \
+  do {									      \
+    __pthread_cleanup_class __clframe (routine, arg)
+
+/* Remove a cleanup handler installed by the matching pthread_cleanup_push.
+   If EXECUTE is non-zero, the handler function is called. */
+#  define pthread_cleanup_pop(execute) \
+    __clframe.__setdoit (execute);					      \
+  } while (0)
+
+#  ifdef __USE_GNU
+/* Install a cleanup handler as pthread_cleanup_push does, but also
+   saves the current cancellation type and sets it to deferred
+   cancellation.  */
+#   define pthread_cleanup_push_defer_np(routine, arg) \
+  do {									      \
+    __pthread_cleanup_class __clframe (routine, arg);			      \
+    __clframe.__defer ()
+
+/* Remove a cleanup handler as pthread_cleanup_pop does, but also
+   restores the cancellation type that was in effect when the matching
+   pthread_cleanup_push_defer was called.  */
+#   define pthread_cleanup_pop_restore_np(execute) \
+    __clframe.__restore ();						      \
+    __clframe.__setdoit (execute);					      \
+  } while (0)
+#  endif
+# else
+/* Function called to call the cleanup handler.  As an extern inline
+   function the compiler is free to decide inlining the change when
+   needed or fall back on the copy which must exist somewhere
+   else.  */
+__extern_inline void
+__pthread_cleanup_routine (struct __pthread_cleanup_frame *__frame)
+{
+  if (__frame->__do_it)
+    __frame->__cancel_routine (__frame->__cancel_arg);
+}
+
+/* Install a cleanup handler: ROUTINE will be called with arguments ARG
+   when the thread is canceled or calls pthread_exit.  ROUTINE will also
+   be called with arguments ARG when the matching pthread_cleanup_pop
+   is executed with non-zero EXECUTE argument.
+
+   pthread_cleanup_push and pthread_cleanup_pop are macros and must always
+   be used in matching pairs at the same nesting level of braces.  */
+#  define pthread_cleanup_push(routine, arg) \
+  do {									      \
+    struct __pthread_cleanup_frame __clframe				      \
+      __attribute__ ((__cleanup__ (__pthread_cleanup_routine)))		      \
+      = { .__cancel_routine = (routine), .__cancel_arg = (arg),	 	      \
+	  .__do_it = 1 };
+
+/* Remove a cleanup handler installed by the matching pthread_cleanup_push.
+   If EXECUTE is non-zero, the handler function is called. */
+#  define pthread_cleanup_pop(execute) \
+    __clframe.__do_it = (execute);					      \
+  } while (0)
+
+#  ifdef __USE_GNU
+/* Install a cleanup handler as pthread_cleanup_push does, but also
+   saves the current cancellation type and sets it to deferred
+   cancellation.  */
+#   define pthread_cleanup_push_defer_np(routine, arg) \
+  do {									      \
+    struct __pthread_cleanup_frame __clframe				      \
+      __attribute__ ((__cleanup__ (__pthread_cleanup_routine)))		      \
+      = { .__cancel_routine = (routine), .__cancel_arg = (arg),		      \
+	  .__do_it = 1 };						      \
+    (void) pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED,		      \
+				  &__clframe.__cancel_type)
+
+/* Remove a cleanup handler as pthread_cleanup_pop does, but also
+   restores the cancellation type that was in effect when the matching
+   pthread_cleanup_push_defer was called.  */
+#   define pthread_cleanup_pop_restore_np(execute) \
+    (void) pthread_setcanceltype (__clframe.__cancel_type, NULL);	      \
+    __clframe.__do_it = (execute);					      \
+  } while (0)
+#  endif
+# endif
+#else
+/* Install a cleanup handler: ROUTINE will be called with arguments ARG
+   when the thread is canceled or calls pthread_exit.  ROUTINE will also
+   be called with arguments ARG when the matching pthread_cleanup_pop
+   is executed with non-zero EXECUTE argument.
+
+   pthread_cleanup_push and pthread_cleanup_pop are macros and must always
+   be used in matching pairs at the same nesting level of braces.  */
+# define pthread_cleanup_push(routine, arg) \
+  do {									      \
+    __pthread_unwind_buf_t __cancel_buf;				      \
+    void (*__cancel_routine) (void *) = (routine);			      \
+    void *__cancel_arg = (arg);						      \
+    int __not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) (void *)     \
+					__cancel_buf.__cancel_jmp_buf, 0);    \
+    if (__glibc_unlikely (__not_first_call))				      \
+      {									      \
+	__cancel_routine (__cancel_arg);				      \
+	__pthread_unwind_next (&__cancel_buf);				      \
+	/* NOTREACHED */						      \
+      }									      \
+									      \
+    __pthread_register_cancel (&__cancel_buf);				      \
+    do {
+extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf)
+     __cleanup_fct_attribute;
+
+/* Remove a cleanup handler installed by the matching pthread_cleanup_push.
+   If EXECUTE is non-zero, the handler function is called. */
+# define pthread_cleanup_pop(execute) \
+      do { } while (0);/* Empty to allow label before pthread_cleanup_pop.  */\
+    } while (0);							      \
+    __pthread_unregister_cancel (&__cancel_buf);			      \
+    if (execute)							      \
+      __cancel_routine (__cancel_arg);					      \
+  } while (0)
+extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf)
+  __cleanup_fct_attribute;
+
+# ifdef __USE_GNU
+/* Install a cleanup handler as pthread_cleanup_push does, but also
+   saves the current cancellation type and sets it to deferred
+   cancellation.  */
+#  define pthread_cleanup_push_defer_np(routine, arg) \
+  do {									      \
+    __pthread_unwind_buf_t __cancel_buf;				      \
+    void (*__cancel_routine) (void *) = (routine);			      \
+    void *__cancel_arg = (arg);						      \
+    int __not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) (void *)     \
+					__cancel_buf.__cancel_jmp_buf, 0);    \
+    if (__glibc_unlikely (__not_first_call))				      \
+      {									      \
+	__cancel_routine (__cancel_arg);				      \
+	__pthread_unwind_next (&__cancel_buf);				      \
+	/* NOTREACHED */						      \
+      }									      \
+									      \
+    __pthread_register_cancel_defer (&__cancel_buf);			      \
+    do {
+extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf)
+     __cleanup_fct_attribute;
+
+/* Remove a cleanup handler as pthread_cleanup_pop does, but also
+   restores the cancellation type that was in effect when the matching
+   pthread_cleanup_push_defer was called.  */
+#  define pthread_cleanup_pop_restore_np(execute) \
+      do { } while (0);/* Empty to allow label before pthread_cleanup_pop.  */\
+    } while (0);							      \
+    __pthread_unregister_cancel_restore (&__cancel_buf);		      \
+    if (execute)							      \
+      __cancel_routine (__cancel_arg);					      \
+  } while (0)
+extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *__buf)
+  __cleanup_fct_attribute;
+# endif
+
+/* Internal interface to initiate cleanup.  */
+extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf)
+     __cleanup_fct_attribute __attribute__ ((__noreturn__))
+# ifndef SHARED
+     __attribute__ ((__weak__))
+# endif
+     ;
+#endif
+
+/* Function used in the macros.  */
+struct __jmp_buf_tag;
+extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) __THROWNL;
+
+
+/* Mutex handling.  */
+
+/* Initialize a mutex.  */
+extern int pthread_mutex_init (pthread_mutex_t *__mutex,
+			       const pthread_mutexattr_t *__mutexattr)
+     __THROW __nonnull ((1));
+
+/* Destroy a mutex.  */
+extern int pthread_mutex_destroy (pthread_mutex_t *__mutex)
+     __THROW __nonnull ((1));
+
+/* Try locking a mutex.  */
+extern int pthread_mutex_trylock (pthread_mutex_t *__mutex)
+     __THROWNL __nonnull ((1));
+
+/* Lock a mutex.  */
+extern int pthread_mutex_lock (pthread_mutex_t *__mutex)
+     __THROWNL __nonnull ((1));
+
+#ifdef __USE_XOPEN2K
+/* Wait until lock becomes available, or specified time passes. */
+extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
+				    const struct timespec *__restrict
+				    __abstime) __THROWNL __nonnull ((1, 2));
+#endif
+
+/* Unlock a mutex.  */
+extern int pthread_mutex_unlock (pthread_mutex_t *__mutex)
+     __THROWNL __nonnull ((1));
+
+
+/* Get the priority ceiling of MUTEX.  */
+extern int pthread_mutex_getprioceiling (const pthread_mutex_t *
+					 __restrict __mutex,
+					 int *__restrict __prioceiling)
+     __THROW __nonnull ((1, 2));
+
+/* Set the priority ceiling of MUTEX to PRIOCEILING, return old
+   priority ceiling value in *OLD_CEILING.  */
+extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex,
+					 int __prioceiling,
+					 int *__restrict __old_ceiling)
+     __THROW __nonnull ((1, 3));
+
+
+#ifdef __USE_XOPEN2K8
+/* Declare the state protected by MUTEX as consistent.  */
+extern int pthread_mutex_consistent (pthread_mutex_t *__mutex)
+     __THROW __nonnull ((1));
+# ifdef __USE_GNU
+extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex)
+     __THROW __nonnull ((1));
+# endif
+#endif
+
+
+/* Functions for handling mutex attributes.  */
+
+/* Initialize mutex attribute object ATTR with default attributes
+   (kind is PTHREAD_MUTEX_TIMED_NP).  */
+extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr)
+     __THROW __nonnull ((1));
+
+/* Destroy mutex attribute object ATTR.  */
+extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr)
+     __THROW __nonnull ((1));
+
+/* Get the process-shared flag of the mutex attribute ATTR.  */
+extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t *
+					 __restrict __attr,
+					 int *__restrict __pshared)
+     __THROW __nonnull ((1, 2));
+
+/* Set the process-shared flag of the mutex attribute ATTR.  */
+extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
+					 int __pshared)
+     __THROW __nonnull ((1));
+
+#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+/* Return in *KIND the mutex kind attribute in *ATTR.  */
+extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict
+				      __attr, int *__restrict __kind)
+     __THROW __nonnull ((1, 2));
+
+/* Set the mutex kind attribute in *ATTR to KIND (either PTHREAD_MUTEX_NORMAL,
+   PTHREAD_MUTEX_RECURSIVE, PTHREAD_MUTEX_ERRORCHECK, or
+   PTHREAD_MUTEX_DEFAULT).  */
+extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
+     __THROW __nonnull ((1));
+#endif
+
+/* Return in *PROTOCOL the mutex protocol attribute in *ATTR.  */
+extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t *
+					  __restrict __attr,
+					  int *__restrict __protocol)
+     __THROW __nonnull ((1, 2));
+
+/* Set the mutex protocol attribute in *ATTR to PROTOCOL (either
+   PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, or PTHREAD_PRIO_PROTECT).  */
+extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr,
+					  int __protocol)
+     __THROW __nonnull ((1));
+
+/* Return in *PRIOCEILING the mutex prioceiling attribute in *ATTR.  */
+extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *
+					     __restrict __attr,
+					     int *__restrict __prioceiling)
+     __THROW __nonnull ((1, 2));
+
+/* Set the mutex prioceiling attribute in *ATTR to PRIOCEILING.  */
+extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr,
+					     int __prioceiling)
+     __THROW __nonnull ((1));
+
+#ifdef __USE_XOPEN2K
+/* Get the robustness flag of the mutex attribute ATTR.  */
+extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr,
+					int *__robustness)
+     __THROW __nonnull ((1, 2));
+# ifdef __USE_GNU
+extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr,
+					   int *__robustness)
+     __THROW __nonnull ((1, 2));
+# endif
+
+/* Set the robustness flag of the mutex attribute ATTR.  */
+extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr,
+					int __robustness)
+     __THROW __nonnull ((1));
+# ifdef __USE_GNU
+extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr,
+					   int __robustness)
+     __THROW __nonnull ((1));
+# endif
+#endif
+
+
+#if defined __USE_UNIX98 || defined __USE_XOPEN2K
+/* Functions for handling read-write locks.  */
+
+/* Initialize read-write lock RWLOCK using attributes ATTR, or use
+   the default values if later is NULL.  */
+extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
+				const pthread_rwlockattr_t *__restrict
+				__attr) __THROW __nonnull ((1));
+
+/* Destroy read-write lock RWLOCK.  */
+extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock)
+     __THROW __nonnull ((1));
+
+/* Acquire read lock for RWLOCK.  */
+extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock)
+     __THROWNL __nonnull ((1));
+
+/* Try to acquire read lock for RWLOCK.  */
+extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
+  __THROWNL __nonnull ((1));
+
+# ifdef __USE_XOPEN2K
+/* Try to acquire read lock for RWLOCK or return after specfied time.  */
+extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
+				       const struct timespec *__restrict
+				       __abstime) __THROWNL __nonnull ((1, 2));
+# endif
+
+/* Acquire write lock for RWLOCK.  */
+extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock)
+     __THROWNL __nonnull ((1));
+
+/* Try to acquire write lock for RWLOCK.  */
+extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
+     __THROWNL __nonnull ((1));
+
+# ifdef __USE_XOPEN2K
+/* Try to acquire write lock for RWLOCK or return after specfied time.  */
+extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
+				       const struct timespec *__restrict
+				       __abstime) __THROWNL __nonnull ((1, 2));
+# endif
+
+/* Unlock RWLOCK.  */
+extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock)
+     __THROWNL __nonnull ((1));
+
+
+/* Functions for handling read-write lock attributes.  */
+
+/* Initialize attribute object ATTR with default values.  */
+extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr)
+     __THROW __nonnull ((1));
+
+/* Destroy attribute object ATTR.  */
+extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr)
+     __THROW __nonnull ((1));
+
+/* Return current setting of process-shared attribute of ATTR in PSHARED.  */
+extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *
+					  __restrict __attr,
+					  int *__restrict __pshared)
+     __THROW __nonnull ((1, 2));
+
+/* Set process-shared attribute of ATTR to PSHARED.  */
+extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
+					  int __pshared)
+     __THROW __nonnull ((1));
+
+/* Return current setting of reader/writer preference.  */
+extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t *
+					  __restrict __attr,
+					  int *__restrict __pref)
+     __THROW __nonnull ((1, 2));
+
+/* Set reader/write preference.  */
+extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
+					  int __pref) __THROW __nonnull ((1));
+#endif
+
+
+/* Functions for handling conditional variables.  */
+
+/* Initialize condition variable COND using attributes ATTR, or use
+   the default values if later is NULL.  */
+extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
+			      const pthread_condattr_t *__restrict __cond_attr)
+     __THROW __nonnull ((1));
+
+/* Destroy condition variable COND.  */
+extern int pthread_cond_destroy (pthread_cond_t *__cond)
+     __THROW __nonnull ((1));
+
+/* Wake up one thread waiting for condition variable COND.  */
+extern int pthread_cond_signal (pthread_cond_t *__cond)
+     __THROWNL __nonnull ((1));
+
+/* Wake up all threads waiting for condition variables COND.  */
+extern int pthread_cond_broadcast (pthread_cond_t *__cond)
+     __THROWNL __nonnull ((1));
+
+/* Wait for condition variable COND to be signaled or broadcast.
+   MUTEX is assumed to be locked before.
+
+   This function is a cancellation point and therefore not marked with
+   __THROW.  */
+extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
+			      pthread_mutex_t *__restrict __mutex)
+     __nonnull ((1, 2));
+
+/* Wait for condition variable COND to be signaled or broadcast until
+   ABSTIME.  MUTEX is assumed to be locked before.  ABSTIME is an
+   absolute time specification; zero is the beginning of the epoch
+   (00:00:00 GMT, January 1, 1970).
+
+   This function is a cancellation point and therefore not marked with
+   __THROW.  */
+extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
+				   pthread_mutex_t *__restrict __mutex,
+				   const struct timespec *__restrict __abstime)
+     __nonnull ((1, 2, 3));
+
+/* Functions for handling condition variable attributes.  */
+
+/* Initialize condition variable attribute ATTR.  */
+extern int pthread_condattr_init (pthread_condattr_t *__attr)
+     __THROW __nonnull ((1));
+
+/* Destroy condition variable attribute ATTR.  */
+extern int pthread_condattr_destroy (pthread_condattr_t *__attr)
+     __THROW __nonnull ((1));
+
+/* Get the process-shared flag of the condition variable attribute ATTR.  */
+extern int pthread_condattr_getpshared (const pthread_condattr_t *
+					__restrict __attr,
+					int *__restrict __pshared)
+     __THROW __nonnull ((1, 2));
+
+/* Set the process-shared flag of the condition variable attribute ATTR.  */
+extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
+					int __pshared) __THROW __nonnull ((1));
+
+#ifdef __USE_XOPEN2K
+/* Get the clock selected for the condition variable attribute ATTR.  */
+extern int pthread_condattr_getclock (const pthread_condattr_t *
+				      __restrict __attr,
+				      __clockid_t *__restrict __clock_id)
+     __THROW __nonnull ((1, 2));
+
+/* Set the clock selected for the condition variable attribute ATTR.  */
+extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
+				      __clockid_t __clock_id)
+     __THROW __nonnull ((1));
+#endif
+
+
+#ifdef __USE_XOPEN2K
+/* Functions to handle spinlocks.  */
+
+/* Initialize the spinlock LOCK.  If PSHARED is nonzero the spinlock can
+   be shared between different processes.  */
+extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)
+     __THROW __nonnull ((1));
+
+/* Destroy the spinlock LOCK.  */
+extern int pthread_spin_destroy (pthread_spinlock_t *__lock)
+     __THROW __nonnull ((1));
+
+/* Wait until spinlock LOCK is retrieved.  */
+extern int pthread_spin_lock (pthread_spinlock_t *__lock)
+     __THROWNL __nonnull ((1));
+
+/* Try to lock spinlock LOCK.  */
+extern int pthread_spin_trylock (pthread_spinlock_t *__lock)
+     __THROWNL __nonnull ((1));
+
+/* Release spinlock LOCK.  */
+extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
+     __THROWNL __nonnull ((1));
+
+
+/* Functions to handle barriers.  */
+
+/* Initialize BARRIER with the attributes in ATTR.  The barrier is
+   opened when COUNT waiters arrived.  */
+extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
+				 const pthread_barrierattr_t *__restrict
+				 __attr, unsigned int __count)
+     __THROW __nonnull ((1));
+
+/* Destroy a previously dynamically initialized barrier BARRIER.  */
+extern int pthread_barrier_destroy (pthread_barrier_t *__barrier)
+     __THROW __nonnull ((1));
+
+/* Wait on barrier BARRIER.  */
+extern int pthread_barrier_wait (pthread_barrier_t *__barrier)
+     __THROWNL __nonnull ((1));
+
+
+/* Initialize barrier attribute ATTR.  */
+extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr)
+     __THROW __nonnull ((1));
+
+/* Destroy previously dynamically initialized barrier attribute ATTR.  */
+extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr)
+     __THROW __nonnull ((1));
+
+/* Get the process-shared flag of the barrier attribute ATTR.  */
+extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t *
+					   __restrict __attr,
+					   int *__restrict __pshared)
+     __THROW __nonnull ((1, 2));
+
+/* Set the process-shared flag of the barrier attribute ATTR.  */
+extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
+					   int __pshared)
+     __THROW __nonnull ((1));
+#endif
+
+
+/* Functions for handling thread-specific data.  */
+
+/* Create a key value identifying a location in the thread-specific
+   data area.  Each thread maintains a distinct thread-specific data
+   area.  DESTR_FUNCTION, if non-NULL, is called with the value
+   associated to that key when the key is destroyed.
+   DESTR_FUNCTION is not called if the value associated is NULL when
+   the key is destroyed.  */
+extern int pthread_key_create (pthread_key_t *__key,
+			       void (*__destr_function) (void *))
+     __THROW __nonnull ((1));
+
+/* Destroy KEY.  */
+extern int pthread_key_delete (pthread_key_t __key) __THROW;
+
+/* Return current value of the thread-specific data slot identified by KEY.  */
+extern void *pthread_getspecific (pthread_key_t __key) __THROW;
+
+/* Store POINTER in the thread-specific data slot identified by KEY. */
+extern int pthread_setspecific (pthread_key_t __key,
+				const void *__pointer) __THROW ;
+
+
+#ifdef __USE_XOPEN2K
+/* Get ID of CPU-time clock for thread THREAD_ID.  */
+extern int pthread_getcpuclockid (pthread_t __thread_id,
+				  __clockid_t *__clock_id)
+     __THROW __nonnull ((2));
+#endif
+
+
+/* Install handlers to be called when a new process is created with FORK.
+   The PREPARE handler is called in the parent process just before performing
+   FORK. The PARENT handler is called in the parent process just after FORK.
+   The CHILD handler is called in the child process.  Each of the three
+   handlers can be NULL, meaning that no handler needs to be called at that
+   point.
+   PTHREAD_ATFORK can be called several times, in which case the PREPARE
+   handlers are called in LIFO order (last added with PTHREAD_ATFORK,
+   first called before FORK), and the PARENT and CHILD handlers are called
+   in FIFO (first added, first called).  */
+
+extern int pthread_atfork (void (*__prepare) (void),
+			   void (*__parent) (void),
+			   void (*__child) (void)) __THROW;
+
+
+#ifdef __USE_EXTERN_INLINES
+/* Optimizations.  */
+__extern_inline int
+__NTH (pthread_equal (pthread_t __thread1, pthread_t __thread2))
+{
+  return __thread1 == __thread2;
+}
+#endif
+
+__END_DECLS
+
+#endif	/* pthread.h */
+
+#ifndef _PTHREAD_H_HPPA_
+#define _PTHREAD_H_HPPA_ 1
+
+/* The pthread_cond_t initializer is compatible only with NPTL. We do not
+   want to be forwards compatible, we eventually want to drop the code
+   that has to clear the old LT initializer.  */
+#undef PTHREAD_COND_INITIALIZER
+#define PTHREAD_COND_INITIALIZER { { 0, 0, 0, (void *) 0, 0, 0, 0, 0, 0 } }
+
+/* The pthread_mutex_t and pthread_rwlock_t initializers are compatible
+   only with NPTL. NPTL assumes pthread_rwlock_t is all zero.  */
+#undef PTHREAD_MUTEX_INITIALIZER
+#undef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
+#undef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
+#undef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
+/* Mutex initializers.  */
+#define PTHREAD_MUTEX_INITIALIZER \
+  { { 0, 0, 0, 0, { 0, 0, 0, 0 }, 0, { 0 }, 0, 0 } }
+#ifdef __USE_GNU
+# define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
+  { { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, { 0, 0, 0, 0 }, 0, { 0 }, 0, 0 } }
+# define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
+  { { 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, { 0, 0, 0, 0 }, 0, { 0 }, 0, 0 } }
+# define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
+  { { 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, { 0, 0, 0, 0 }, 0, { 0 }, 0, 0 } }
+#endif
+
+#undef PTHREAD_RWLOCK_INITIALIZER
+#undef PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP
+/* Read-write lock initializers.  */
+#define PTHREAD_RWLOCK_INITIALIZER \
+  { { { 0, 0, 0, 0 }, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+#ifdef __USE_GNU
+# define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
+  { { { 0, 0, 0, 0 }, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,\
+      0, 0, 0 } }
+#endif  /* Unix98 or XOpen2K */
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthreadP.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthreadP.h
new file mode 100644
index 0000000000..744b5b090b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthreadP.h
@@ -0,0 +1,16 @@
+#include_next <pthreadP.h>
+#ifndef _PTHREADP_H_HPPA_
+#define _PTHREADP_H_HPPA_ 1
+
+/* Internal cond functions.  */
+extern int __pthread_cond_broadcast_internal (pthread_cond_t *cond);
+extern int __pthread_cond_destroy_internal (pthread_cond_t *cond);
+extern int __pthread_cond_init_internal (pthread_cond_t *cond,
+                                        const pthread_condattr_t *cond_attr);
+extern int __pthread_cond_signal_internal (pthread_cond_t *cond);
+extern int __pthread_cond_timedwait_internal (pthread_cond_t *cond,
+                                             pthread_mutex_t *mutex,
+                                             const struct timespec *abstime);
+extern int __pthread_cond_wait_internal (pthread_cond_t *cond,
+                                        pthread_mutex_t *mutex);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_broadcast.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_broadcast.c
new file mode 100644
index 0000000000..a6f9f5d433
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_broadcast.c
@@ -0,0 +1,40 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Carlos O'Donell <carlos@codesourcery.com>, 2009.
+
+   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 INCLUDED_SELF
+# define INCLUDED_SELF
+# include <pthread_cond_broadcast.c>
+#else
+# include <pthread.h>
+# include <pthreadP.h>
+# include <internaltypes.h>
+# include <shlib-compat.h>
+int
+__pthread_cond_broadcast (pthread_cond_t *cond)
+{
+  cond_compat_check_and_clear (cond);
+  return __pthread_cond_broadcast_internal (cond);
+}
+versioned_symbol (libpthread, __pthread_cond_broadcast, pthread_cond_broadcast,
+                  GLIBC_2_3_2);
+# undef versioned_symbol
+# define versioned_symbol(lib, local, symbol, version)
+# undef __pthread_cond_broadcast
+# define __pthread_cond_broadcast __pthread_cond_broadcast_internal
+# include_next <pthread_cond_broadcast.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_destroy.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_destroy.c
new file mode 100644
index 0000000000..49af087bb4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_destroy.c
@@ -0,0 +1,40 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Carlos O'Donell <carlos@codesourcery.com>, 2009.
+
+   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 INCLUDED_SELF
+# define INCLUDED_SELF
+# include <pthread_cond_destroy.c>
+#else
+# include <pthread.h>
+# include <pthreadP.h>
+# include <internaltypes.h>
+# include <shlib-compat.h>
+int
+__pthread_cond_destroy (pthread_cond_t *cond)
+{
+  cond_compat_check_and_clear (cond);
+  return __pthread_cond_destroy_internal (cond);
+}
+versioned_symbol (libpthread, __pthread_cond_destroy, pthread_cond_destroy,
+                  GLIBC_2_3_2);
+# undef versioned_symbol
+# define versioned_symbol(lib, local, symbol, version)
+# undef __pthread_cond_destroy
+# define __pthread_cond_destroy __pthread_cond_destroy_internal
+# include_next <pthread_cond_destroy.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_init.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_init.c
new file mode 100644
index 0000000000..ccb3de07ff
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_init.c
@@ -0,0 +1,40 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Carlos O'Donell <carlos@codesourcery.com>, 2009.
+
+   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 INCLUDED_SELF
+# define INCLUDED_SELF
+# include <pthread_cond_init.c>
+#else
+# include <pthread.h>
+# include <pthreadP.h>
+# include <internaltypes.h>
+# include <shlib-compat.h>
+int
+__pthread_cond_init (pthread_cond_t *cond, const pthread_condattr_t *cond_attr)
+{
+  cond_compat_clear (cond);
+  return __pthread_cond_init_internal (cond, cond_attr);
+}
+versioned_symbol (libpthread, __pthread_cond_init, pthread_cond_init,
+                  GLIBC_2_3_2);
+# undef versioned_symbol
+# define versioned_symbol(lib, local, symbol, version)
+# undef __pthread_cond_init
+# define __pthread_cond_init __pthread_cond_init_internal
+# include_next <pthread_cond_init.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_signal.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_signal.c
new file mode 100644
index 0000000000..2bf32af933
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_signal.c
@@ -0,0 +1,40 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Carlos O'Donell <carlos@codesourcery.com>, 2009.
+
+   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 INCLUDED_SELF
+# define INCLUDED_SELF
+# include <pthread_cond_signal.c>
+#else
+# include <pthread.h>
+# include <pthreadP.h>
+# include <internaltypes.h>
+# include <shlib-compat.h>
+int
+__pthread_cond_signal (pthread_cond_t *cond)
+{
+  cond_compat_check_and_clear (cond);
+  return __pthread_cond_signal_internal (cond);
+}
+versioned_symbol (libpthread, __pthread_cond_signal, pthread_cond_signal,
+                  GLIBC_2_3_2);
+# undef versioned_symbol
+# define versioned_symbol(lib, local, symbol, version)
+# undef __pthread_cond_signal
+# define __pthread_cond_signal __pthread_cond_signal_internal
+# include_next <pthread_cond_signal.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_wait.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_wait.c
new file mode 100644
index 0000000000..1cc2fc15d4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_wait.c
@@ -0,0 +1,53 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Carlos O'Donell <carlos@codesourcery.com>, 2009.
+
+   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 INCLUDED_SELF
+# define INCLUDED_SELF
+# include <pthread_cond_wait.c>
+#else
+# include <pthread.h>
+# include <pthreadP.h>
+# include <internaltypes.h>
+# include <shlib-compat.h>
+int
+__pthread_cond_wait (pthread_cond_t *cond, pthread_mutex_t *mutex)
+{
+  cond_compat_check_and_clear (cond);
+  return __pthread_cond_wait_internal (cond, mutex);
+}
+versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
+                  GLIBC_2_3_2);
+int
+__pthread_cond_timedwait (cond, mutex, abstime)
+     pthread_cond_t *cond;
+     pthread_mutex_t *mutex;
+     const struct timespec *abstime;
+{
+  cond_compat_check_and_clear (cond);
+  return __pthread_cond_timedwait_internal (cond, mutex, abstime);
+}
+versioned_symbol (libpthread, __pthread_cond_timedwait, pthread_cond_timedwait,
+                  GLIBC_2_3_2);
+# undef versioned_symbol
+# define versioned_symbol(lib, local, symbol, version)
+# undef __pthread_cond_wait
+# define __pthread_cond_wait __pthread_cond_wait_internal
+# undef __pthread_cond_timedwait
+# define __pthread_cond_timedwait __pthread_cond_timedwait_internal
+# include_next <pthread_cond_wait.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/setcontext.S
new file mode 100644
index 0000000000..3f4da7938f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/setcontext.S
@@ -0,0 +1,158 @@
+/* Install given context.
+   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Helge Deller <deller@gmx.de>, 2008.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <sysdep.h>
+#include <libc-symbols.h>
+
+#include "ucontext_i.h"
+
+
+ENTRY(__setcontext)
+	/* Prologue */
+	stwm	%r3, 64(%sp)
+#ifdef PIC
+	stw	%r19, -32(%sp)
+#endif
+
+	/* Save ucp.  */
+	copy	%r26, %r3
+
+.Lagain:
+	/* Set the current signal mask.  */
+	/* sigprocmask(SIG_BLOCK, &ucp->uc_sigmask, NULL);  */
+	copy	%r0, %r24
+	ldo	oSIGMASK(%r3), %r25
+	bl	sigprocmask, %r2
+	ldi	SIG_SETMASK, %r26
+
+	comib,<>,n 0,%ret0,.Lerror
+
+	/* Save %sp, %dp.  */
+	copy	%sp, %r4
+	copy	%dp, %r5
+	copy	%r19, %r6
+
+	/* Get the registers.  */
+	ldw	oR1(%r3), %r1
+	ldw	oR2(%r3), %r2
+	/* ldw	oR3(%r3), %r3 - used for ucp pointer.	*/
+	/* ldw	oR4(%r3), %r4 - used for original %sp.	*/
+	/* ldw	oR5(%r3), %r5 - used for %dp / %r27.	*/
+	/* ldw	oR6(%r3), %r6 - used for %r19.		*/
+	ldw	oR7(%r3), %r7
+	ldw	oR8(%r3), %r8
+	ldw	oR9(%r3), %r9
+	ldw	oR10(%r3), %r10
+	ldw	oR11(%r3), %r11
+	ldw	oR12(%r3), %r12
+	ldw	oR13(%r3), %r13
+	ldw	oR14(%r3), %r14
+	ldw	oR15(%r3), %r15
+	ldw	oR16(%r3), %r16
+	ldw	oR17(%r3), %r17
+	ldw	oR18(%r3), %r18
+	ldw	oR19(%r3), %r19
+	ldw	oR20(%r3), %r20
+	ldw	oR21(%r3), %r21
+	/* ldw	oR22(%r3), %r22 - dyncall arg.  */
+	ldw	oR23(%r3), %r23
+	ldw	oR24(%r3), %r24
+	ldw	oR25(%r3), %r25
+	ldw	oR26(%r3), %r26
+	ldw	oR27(%r3), %r27
+	ldw	oR28(%r3), %r28
+	ldw	oR29(%r3), %r29
+	ldw	oR30(%r3), %sp
+	/* ldw	oR31(%r3), %r31 - dyncall scratch register */
+
+	/* Restore floating-point registers.  */
+	ldo	 oFPREGS31(%r3), %r22
+	fldds	  0(%r22), %fr31
+	fldds,mb -8(%r22), %fr30
+	fldds,mb -8(%r22), %fr29
+	fldds,mb -8(%r22), %fr28
+	fldds,mb -8(%r22), %fr27
+	fldds,mb -8(%r22), %fr26
+	fldds,mb -8(%r22), %fr25
+	fldds,mb -8(%r22), %fr24
+	fldds,mb -8(%r22), %fr23
+	fldds,mb -8(%r22), %fr22
+	fldds,mb -8(%r22), %fr21
+	fldds,mb -8(%r22), %fr20
+	fldds,mb -8(%r22), %fr19
+	fldds,mb -8(%r22), %fr18
+	fldds,mb -8(%r22), %fr17
+	fldds,mb -8(%r22), %fr16
+	fldds,mb -8(%r22), %fr15
+	fldds,mb -8(%r22), %fr14
+	fldds,mb -8(%r22), %fr13
+	fldds,mb -8(%r22), %fr12
+	fldds,mb -8(%r22), %fr11
+	fldds,mb -8(%r22), %fr10
+	fldds,mb -8(%r22), %fr9
+	fldds,mb -8(%r22), %fr8
+	fldds,mb -8(%r22), %fr7
+	fldds,mb -8(%r22), %fr6
+	fldds,mb -8(%r22), %fr5
+	fldds,mb -8(%r22), %fr4
+	fldds,mb -8(%r22), %fr3
+	fldds,mb -8(%r22), %fr2
+	fldds,mb -8(%r22), %fr1
+	fldds,mb -8(%r22), %fr0
+
+	/* Do not load oSS_SP into %sp. The value of oSS_SP indicates
+	   the start of the user allocated stack, but not the sp that
+	   should be used by the new context. In fact makecontext
+	   will create a frame, and adjust sp as required. We do not
+	   support calling getcontext and modifying ss_sp without
+	   a call to makecontext to synchronize ss_sp into the machine
+	   context.  */
+
+	/* Call external function.  */
+	copy	%r2, %r22
+	bl	$$dyncall, %r31
+	copy	%r31, %r2
+
+	/* We return here. Get new ucp in %r3, reload %sp.  */
+	ldw	oUC_LINK(%r3), %r3
+	copy	%r4, %sp
+	copy	%r5, %dp
+	copy	%r6, %r19
+
+	/* Continue until ucp == NULL.  */
+	comib,<> 0,%r3,.Lagain
+	nop
+
+	/* No further context available. Exit now.  */
+	bl	HIDDEN_JUMPTARGET(exit), %r2
+	ldi	-1, %r26
+
+
+.Lerror:
+	/* Epilogue */
+	ldw	-84(%r30), %r2
+#ifdef PIC
+	ldw	-96(%r30), %r19
+#endif
+	bv	%r0(%r2)
+	ldwm	-64(%r30), %r3
+L(pseudo_end):
+PSEUDO_END(__setcontext)
+
+weak_alias(__setcontext, setcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/shlib-versions
new file mode 100644
index 0000000000..3a2d496220
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/shlib-versions
@@ -0,0 +1,9 @@
+libm=6			GLIBC_2.2
+
+libc=6			GLIBC_2.2
+
+ld=ld.so.1		GLIBC_2.2
+
+libBrokenLocale=1	GLIBC_2.2
+
+libpthread=0		GLIBC_2.2
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/swapcontext.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/swapcontext.c
new file mode 100644
index 0000000000..c341f2d3a5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/swapcontext.c
@@ -0,0 +1,42 @@
+/* Swap to new context.
+   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Helge Deller <deller@gmx.de>, 2008.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <ucontext.h>
+
+extern int __getcontext (ucontext_t *ucp);
+extern int __setcontext (const ucontext_t *ucp);
+
+int
+__swapcontext (ucontext_t *oucp, const ucontext_t *ucp)
+{
+  /* Save the current machine context to oucp.  */
+  __getcontext (oucp);
+
+  /* mark sc_sar flag to skip the setcontext call on reactivation.  */
+  if (oucp->uc_mcontext.sc_sar == 0) {
+	oucp->uc_mcontext.sc_sar++;
+
+	/* Restore the machine context in ucp.  */
+	__setcontext (ucp);
+  }
+
+  return 0;
+}
+
+weak_alias (__swapcontext, swapcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/procfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/procfs.h
new file mode 100644
index 0000000000..f0d53c4bc6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/procfs.h
@@ -0,0 +1,118 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _SYS_PROCFS_H
+#define _SYS_PROCFS_H	1
+
+/* This is somewhat modelled after the file of the same name on SVR4
+   systems.  It provides a definition of the core file format for ELF
+   used on Linux.  It doesn't have anything to do with the /proc file
+   system, even though Linux has one.
+
+   Anyway, the whole purpose of this file is for GDB and GDB only.
+   Don't read too much into it.  Don't use it for anything other than
+   GDB unless you know what you are doing.  */
+
+#include <features.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/user.h>
+
+__BEGIN_DECLS
+
+typedef unsigned long elf_greg_t;
+#define ELF_NGREG 80    /* We only need 64 at present, but leave space
+			                              for expansion. */
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+#define ELF_NFPREG 32
+typedef double elf_fpreg_t;
+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
+
+struct elf_siginfo
+  {
+    int si_signo;			/* Signal number.  */
+    int si_code;			/* Extra code.  */
+    int si_errno;			/* Errno.  */
+  };
+
+/* Definitions to generate Intel SVR4-like core files.  These mostly
+   have the same names as the SVR4 types with "elf_" tacked on the
+   front to prevent clashes with Linux definitions, and the typedef
+   forms have been avoided.  This is mostly like the SVR4 structure,
+   but more Linuxy, with things that Linux does not support and which
+   GDB doesn't really use excluded.  */
+
+struct elf_prstatus
+  {
+    struct elf_siginfo pr_info;		/* Info associated with signal.  */
+    short int pr_cursig;		/* Current signal.  */
+    unsigned long int pr_sigpend;	/* Set of pending signals.  */
+    unsigned long int pr_sighold;	/* Set of held signals.  */
+    __pid_t pr_pid;
+    __pid_t pr_ppid;
+    __pid_t pr_pgrp;
+    __pid_t pr_sid;
+    struct timeval pr_utime;		/* User time.  */
+    struct timeval pr_stime;		/* System time.  */
+    struct timeval pr_cutime;		/* Cumulative user time.  */
+    struct timeval pr_cstime;		/* Cumulative system time.  */
+    elf_gregset_t pr_reg;		/* GP registers.  */
+    int pr_fpvalid;			/* True if math copro being used.  */
+  };
+
+
+#define ELF_PRARGSZ     (80)    /* Number of chars for args.  */
+
+struct elf_prpsinfo
+  {
+    char pr_state;			/* Numeric process state.  */
+    char pr_sname;			/* Char for pr_state.  */
+    char pr_zomb;			/* Zombie.  */
+    char pr_nice;			/* Nice val.  */
+    unsigned long int pr_flag;		/* Flags.  */
+    unsigned int pr_uid;
+    unsigned int pr_gid;
+    int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+    /* Lots missing */
+    char pr_fname[16];			/* Filename of executable.  */
+    char pr_psargs[ELF_PRARGSZ];	/* Initial part of arg list.  */
+  };
+
+
+/* The rest of this file provides the types for emulation of the
+   Solaris <proc_service.h> interfaces that should be implemented by
+   users of libthread_db.  */
+
+/* Addresses.  */
+typedef void *psaddr_t;
+
+/* Register sets.  Linux has different names.  */
+typedef elf_gregset_t prgregset_t;
+typedef elf_fpregset_t prfpregset_t;
+
+/* We don't have any differences between processes and threads,
+   therefore have only one PID type.  */
+typedef __pid_t lwpid_t;
+
+/* Process status and info.  In the end we do provide typedefs for them.  */
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+__END_DECLS
+
+#endif	/* sys/procfs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h
new file mode 100644
index 0000000000..982b4c44c2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h
@@ -0,0 +1,67 @@
+/* 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/>.  */
+
+/* Don't rely on this, the interface is currently messed up and may need to
+   be broken to be fixed.  */
+#ifndef _SYS_UCONTEXT_H
+#define _SYS_UCONTEXT_H	1
+
+#include <features.h>
+
+#include <bits/types/sigset_t.h>
+#include <bits/sigcontext.h>
+#include <bits/types/stack_t.h>
+
+
+#ifdef __USE_MISC
+/* Type for general register.  */
+typedef unsigned long int greg_t;
+
+/* Number of general registers.  */
+# define NGREG	80
+# define NFPREG	32
+
+/* Container for all general registers.  */
+typedef struct gregset
+  {
+    greg_t g_regs[32];
+    greg_t sr_regs[8];
+    greg_t cr_regs[24];
+    greg_t g_pad[16];
+  } gregset_t;
+
+/* Container for all FPU registers.  */
+typedef struct fpregset
+  {
+    double fp_dregs[32];
+  } fpregset_t;
+#endif
+
+/* Context to describe whole processor state.  */
+typedef struct sigcontext mcontext_t;
+
+/* Userlevel context.  */
+typedef struct ucontext
+  {
+    unsigned long int uc_flags;
+    struct ucontext *uc_link;
+    stack_t uc_stack;
+    mcontext_t uc_mcontext;
+    sigset_t uc_sigmask;
+  } ucontext_t;
+
+#endif /* sys/ucontext.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/user.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/user.h
new file mode 100644
index 0000000000..c871f1a03d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/user.h
@@ -0,0 +1 @@
+/* This file is not needed, but in practice gdb might try to include it.  */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/syscall.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/syscall.c
new file mode 100644
index 0000000000..da38c1147a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/syscall.c
@@ -0,0 +1,65 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdarg.h>
+#include <sysdep.h>
+#include <errno.h>
+
+/* HPPA implements syscall() in 'C'; the assembler version would
+   typically be in syscall.S. Also note that we have INLINE_SYSCALL,
+   INTERNAL_SYSCALL, and all the generated pure assembly syscall wrappers.
+   How often the function is used is unknown. */
+
+long int
+syscall (long int __sysno, ...)
+{
+  /* FIXME: Keep this matching INLINE_SYSCALL for hppa */
+  va_list args;
+  long int arg0, arg1, arg2, arg3, arg4, arg5;
+  long int __sys_res;
+
+  /* Load varargs */
+  va_start (args, __sysno);
+  arg0 = va_arg (args, long int);
+  arg1 = va_arg (args, long int);
+  arg2 = va_arg (args, long int);
+  arg3 = va_arg (args, long int);
+  arg4 = va_arg (args, long int);
+  arg5 = va_arg (args, long int);
+  va_end (args);
+
+  {
+    LOAD_ARGS_6 (arg0, arg1, arg2, arg3, arg4, arg5)
+    register unsigned long int __res asm("r28");
+    PIC_REG_DEF
+    LOAD_REGS_6
+    asm volatile (SAVE_ASM_PIC
+		  "	ble  0x100(%%sr2, %%r0)	\n"
+		  "	copy %1, %%r20		\n"
+		  LOAD_ASM_PIC
+		  : "=r" (__res)
+		  : "r" (__sysno) PIC_REG_USE ASM_ARGS_6
+		  : "memory", CALL_CLOB_REGS CLOB_ARGS_6);
+    __sys_res = __res;
+  }
+  if ((unsigned long int) __sys_res >= (unsigned long int) -4095)
+    {
+      __set_errno (-__sys_res);
+      __sys_res = -1;
+    }
+  return __sys_res;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/syscalls.list
new file mode 100644
index 0000000000..cd37573b89
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/syscalls.list
@@ -0,0 +1,16 @@
+# File name	Caller	Syscall name	# args	Strong name	Weak names
+
+# proper socket implementations:
+bind		-	bind		i:ipi	__bind		bind
+getpeername	-	getpeername	i:ipp	__getpeername	getpeername
+getsockname	-	getsockname	i:ipp	__getsockname	getsockname
+getsockopt	-	getsockopt	i:iiiBN	__getsockopt	getsockopt
+listen		-	listen		i:ii	__listen	listen
+setsockopt	-	setsockopt	i:iiibn	__setsockopt	setsockopt
+shutdown	-	shutdown	i:ii	__shutdown	shutdown
+socket		-	socket		i:iii	__socket	socket
+socketpair	-	socketpair	i:iiif	__socketpair	socketpair
+
+prlimit64	EXTRA	prlimit64	i:iipp	__prlimit64	prlimit64@@GLIBC_2.17
+fanotify_mark	EXTRA	fanotify_mark	i:iiiiis	__fanotify_mark	fanotify_mark@@GLIBC_2.19
+personality	EXTRA	personality	Ei:i	__personality	personality
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h
new file mode 100644
index 0000000000..5ea297267f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h
@@ -0,0 +1,279 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <sysdep.h>
+#include <tls.h>
+#ifndef __ASSEMBLER__
+# include <nptl/pthreadP.h>
+#endif
+
+#if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt)
+
+# ifndef NO_ERROR
+#  define NO_ERROR -0x1000
+# endif
+
+/* The syscall cancellation mechanism requires userspace
+   assistance, the following code does roughly this:
+
+	do arguments (read arg5 and arg6 to registers)
+	setup frame
+
+	check if there are threads, yes jump to pseudo_cancel
+
+	unthreaded:
+		syscall
+		check syscall return (jump to pre_end)
+		set errno
+		set return to -1
+		(jump to pre_end)
+
+	pseudo_cancel:
+		cenable
+		syscall
+		cdisable
+		check syscall return (jump to pre_end)
+		set errno
+		set return to -1
+
+	pre_end
+		restore stack
+
+	It is expected that 'ret' and 'END' macros will
+	append an 'undo arguments' and 'return' to the
+	this PSEUDO macro. */
+
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args)				\
+	ENTRY (__##syscall_name##_nocancel)				\
+	DOARGS_##args					ASM_LINE_SEP	\
+	stwm TREG, 64(%sp)				ASM_LINE_SEP	\
+	.cfi_offset TREG, 0				ASM_LINE_SEP	\
+	.cfi_adjust_cfa_offset 64			ASM_LINE_SEP	\
+	stw %sp, -4(%sp)				ASM_LINE_SEP	\
+	.cfi_offset 30, -4				ASM_LINE_SEP	\
+	stw %r19, -32(%sp)				ASM_LINE_SEP	\
+	.cfi_offset 19, -32				ASM_LINE_SEP	\
+	/* Save r19 */					ASM_LINE_SEP	\
+	SAVE_PIC(TREG)					ASM_LINE_SEP	\
+	/* Do syscall, delay loads # */			ASM_LINE_SEP	\
+	ble  0x100(%sr2,%r0)				ASM_LINE_SEP	\
+	ldi SYS_ify (syscall_name), %r20 /* delay */	ASM_LINE_SEP	\
+	ldi NO_ERROR,%r1				ASM_LINE_SEP	\
+	cmpb,>>=,n %r1,%ret0,L(pre_nc_end)		ASM_LINE_SEP	\
+	/* Restore r19 from TREG */			ASM_LINE_SEP	\
+	LOAD_PIC(TREG) /* delay */			ASM_LINE_SEP	\
+	SYSCALL_ERROR_HANDLER				ASM_LINE_SEP	\
+	/* Use TREG for temp storage */			ASM_LINE_SEP	\
+	copy %ret0, TREG /* delay */			ASM_LINE_SEP	\
+	/* OPTIMIZE: Don't reload r19 */		ASM_LINE_SEP	\
+	/* do a -1*syscall_ret0 */			ASM_LINE_SEP	\
+	sub %r0, TREG, TREG				ASM_LINE_SEP	\
+	/* Store into errno location */			ASM_LINE_SEP	\
+	stw TREG, 0(%sr0,%ret0)				ASM_LINE_SEP	\
+	/* return -1 as error */			ASM_LINE_SEP	\
+	ldi -1, %ret0					ASM_LINE_SEP	\
+L(pre_nc_end):						ASM_LINE_SEP	\
+	/* No need to LOAD_PIC */			ASM_LINE_SEP	\
+	/* Undo frame */				ASM_LINE_SEP	\
+	ldwm -64(%sp),TREG				ASM_LINE_SEP	\
+	.cfi_adjust_cfa_offset -64			ASM_LINE_SEP	\
+	/* Restore rp before exit */			ASM_LINE_SEP	\
+	ldw -20(%sp), %rp				ASM_LINE_SEP	\
+	.cfi_restore 2					ASM_LINE_SEP	\
+	ret						ASM_LINE_SEP	\
+	END(__##syscall_name##_nocancel)		ASM_LINE_SEP	\
+	/**********************************************/ASM_LINE_SEP	\
+	ENTRY (name)							\
+	DOARGS_##args					ASM_LINE_SEP	\
+	stwm TREG, 64(%sp)				ASM_LINE_SEP	\
+	.cfi_adjust_cfa_offset 64			ASM_LINE_SEP	\
+	stw %sp, -4(%sp)				ASM_LINE_SEP	\
+	.cfi_offset 30, -4				ASM_LINE_SEP	\
+	stw %r19, -32(%sp)				ASM_LINE_SEP	\
+	.cfi_offset 19, -32				ASM_LINE_SEP	\
+	/* Done setting up frame, continue... */	ASM_LINE_SEP	\
+	SINGLE_THREAD_P					ASM_LINE_SEP	\
+	cmpib,<>,n 0,%ret0,L(pseudo_cancel)		ASM_LINE_SEP	\
+L(unthreaded):						ASM_LINE_SEP	\
+	/* Save r19 */					ASM_LINE_SEP	\
+	SAVE_PIC(TREG)					ASM_LINE_SEP	\
+	/* Do syscall, delay loads # */			ASM_LINE_SEP	\
+	ble  0x100(%sr2,%r0)				ASM_LINE_SEP	\
+	ldi SYS_ify (syscall_name), %r20 /* delay */	ASM_LINE_SEP	\
+	ldi NO_ERROR,%r1				ASM_LINE_SEP	\
+	cmpb,>>=,n %r1,%ret0,L(pre_end)			ASM_LINE_SEP	\
+	/* Restore r19 from TREG */			ASM_LINE_SEP	\
+	LOAD_PIC(TREG) /* delay */			ASM_LINE_SEP	\
+	SYSCALL_ERROR_HANDLER				ASM_LINE_SEP	\
+	/* Use TREG for temp storage */			ASM_LINE_SEP	\
+	copy %ret0, TREG /* delay */			ASM_LINE_SEP	\
+	/* OPTIMIZE: Don't reload r19 */		ASM_LINE_SEP	\
+	/* do a -1*syscall_ret0 */			ASM_LINE_SEP	\
+	sub %r0, TREG, TREG				ASM_LINE_SEP	\
+	/* Store into errno location */			ASM_LINE_SEP	\
+	stw TREG, 0(%sr0,%ret0)				ASM_LINE_SEP	\
+	b L(pre_end)					ASM_LINE_SEP	\
+	/* return -1 as error */			ASM_LINE_SEP	\
+	ldi -1, %ret0 /* delay */			ASM_LINE_SEP	\
+L(pseudo_cancel):					ASM_LINE_SEP	\
+	PUSHARGS_##args /* Save args */			ASM_LINE_SEP	\
+	/* Save r19 into TREG */			ASM_LINE_SEP	\
+	CENABLE /* FUNC CALL */				ASM_LINE_SEP	\
+	SAVE_PIC(TREG) /* delay */			ASM_LINE_SEP	\
+	/* restore syscall args */			ASM_LINE_SEP	\
+	POPARGS_##args					ASM_LINE_SEP	\
+	/* save mask from cenable (use stub rp slot) */	ASM_LINE_SEP	\
+	stw %ret0, -24(%sp)				ASM_LINE_SEP	\
+	/* ... SYSCALL ... */				ASM_LINE_SEP	\
+	ble 0x100(%sr2,%r0)				ASM_LINE_SEP    \
+	ldi SYS_ify (syscall_name), %r20 /* delay */	ASM_LINE_SEP	\
+	/* ............... */				ASM_LINE_SEP	\
+	LOAD_PIC(TREG)					ASM_LINE_SEP	\
+	/* pass mask as arg0 to cdisable */		ASM_LINE_SEP	\
+	ldw -24(%sp), %r26				ASM_LINE_SEP	\
+	CDISABLE					ASM_LINE_SEP	\
+	stw %ret0, -24(%sp) /* delay */			ASM_LINE_SEP	\
+	/* Restore syscall return */			ASM_LINE_SEP	\
+	ldw -24(%sp), %ret0				ASM_LINE_SEP	\
+	/* compare error */				ASM_LINE_SEP	\
+	ldi NO_ERROR,%r1				ASM_LINE_SEP	\
+	/* branch if no error */			ASM_LINE_SEP	\
+	cmpb,>>=,n %r1,%ret0,L(pre_end)			ASM_LINE_SEP	\
+	LOAD_PIC(TREG)	/* cond. nullify */		ASM_LINE_SEP	\
+	copy %ret0, TREG /* save syscall return */	ASM_LINE_SEP	\
+	SYSCALL_ERROR_HANDLER				ASM_LINE_SEP	\
+	/* make syscall res value positive */		ASM_LINE_SEP	\
+	sub %r0, TREG, TREG	/* delay */		ASM_LINE_SEP	\
+	/* No need to LOAD_PIC */			ASM_LINE_SEP	\
+	/* store into errno location */			ASM_LINE_SEP	\
+	stw TREG, 0(%sr0,%ret0)				ASM_LINE_SEP	\
+	/* return -1 */					ASM_LINE_SEP	\
+	ldi -1, %ret0					ASM_LINE_SEP	\
+L(pre_end):						ASM_LINE_SEP	\
+	/* No need to LOAD_PIC */			ASM_LINE_SEP	\
+	/* Undo frame */				ASM_LINE_SEP	\
+	ldwm -64(%sp),TREG				ASM_LINE_SEP	\
+	.cfi_adjust_cfa_offset -64			ASM_LINE_SEP	\
+	/* Restore rp before exit */			ASM_LINE_SEP	\
+	ldw -20(%sp), %rp				ASM_LINE_SEP	\
+	.cfi_restore 2					ASM_LINE_SEP
+
+/* Save arguments into our frame */
+# define PUSHARGS_0	/* nothing to do */
+# define PUSHARGS_1	PUSHARGS_0 stw %r26, -36(%sr0,%sp)	ASM_LINE_SEP	\
+			.cfi_offset 26, -36			ASM_LINE_SEP
+# define PUSHARGS_2	PUSHARGS_1 stw %r25, -40(%sr0,%sp)	ASM_LINE_SEP	\
+			.cfi_offset 25, -40			ASM_LINE_SEP
+# define PUSHARGS_3	PUSHARGS_2 stw %r24, -44(%sr0,%sp)	ASM_LINE_SEP	\
+			.cfi_offset 24, -44			ASM_LINE_SEP
+# define PUSHARGS_4	PUSHARGS_3 stw %r23, -48(%sr0,%sp)	ASM_LINE_SEP	\
+			.cfi_offset 23, -48			ASM_LINE_SEP
+# define PUSHARGS_5	PUSHARGS_4 stw %r22, -52(%sr0,%sp)	ASM_LINE_SEP	\
+			.cfi_offset 22, -52			ASM_LINE_SEP
+# define PUSHARGS_6	PUSHARGS_5 stw %r21, -56(%sr0,%sp)	ASM_LINE_SEP	\
+			.cfi_offset 21, -56			ASM_LINE_SEP
+
+/* Bring them back from the stack */
+# define POPARGS_0	/* nothing to do */
+# define POPARGS_1	POPARGS_0 ldw -36(%sr0,%sp), %r26	ASM_LINE_SEP	\
+			.cfi_restore 26				ASM_LINE_SEP
+# define POPARGS_2	POPARGS_1 ldw -40(%sr0,%sp), %r25	ASM_LINE_SEP	\
+			.cfi_restore 25				ASM_LINE_SEP
+# define POPARGS_3	POPARGS_2 ldw -44(%sr0,%sp), %r24	ASM_LINE_SEP	\
+			.cfi_restore 24				ASM_LINE_SEP
+# define POPARGS_4	POPARGS_3 ldw -48(%sr0,%sp), %r23	ASM_LINE_SEP	\
+			.cfi_restore 23				ASM_LINE_SEP
+# define POPARGS_5	POPARGS_4 ldw -52(%sr0,%sp), %r22	ASM_LINE_SEP	\
+			.cfi_restore 22				ASM_LINE_SEP
+# define POPARGS_6	POPARGS_5 ldw -56(%sr0,%sp), %r21	ASM_LINE_SEP	\
+			.cfi_restore 21				ASM_LINE_SEP
+
+# if IS_IN (libpthread)
+#  ifdef PIC
+#   define CENABLE .import __pthread_enable_asynccancel,code ASM_LINE_SEP \
+			bl __pthread_enable_asynccancel,%r2 ASM_LINE_SEP
+#   define CDISABLE .import __pthread_disable_asynccancel,code ASM_LINE_SEP \
+			bl __pthread_disable_asynccancel,%r2 ASM_LINE_SEP
+#  else
+#   define CENABLE .import __pthread_enable_asynccancel,code ASM_LINE_SEP \
+			bl __pthread_enable_asynccancel,%r2 ASM_LINE_SEP
+#   define CDISABLE .import __pthread_disable_asynccancel,code ASM_LINE_SEP \
+			bl __pthread_disable_asynccancel,%r2 ASM_LINE_SEP
+#  endif
+# elif IS_IN (libc)
+#  ifdef PIC
+#   define CENABLE .import __libc_enable_asynccancel,code ASM_LINE_SEP \
+			bl __libc_enable_asynccancel,%r2 ASM_LINE_SEP
+#   define CDISABLE	.import __libc_disable_asynccancel,code ASM_LINE_SEP \
+			bl __libc_disable_asynccancel,%r2 ASM_LINE_SEP
+#  else
+#   define CENABLE .import __libc_enable_asynccancel,code ASM_LINE_SEP \
+			bl __libc_enable_asynccancel,%r2 ASM_LINE_SEP
+#   define CDISABLE	.import __libc_disable_asynccancel,code ASM_LINE_SEP \
+			bl __libc_disable_asynccancel,%r2 ASM_LINE_SEP
+#  endif
+# elif IS_IN (librt)
+#  ifdef PIC
+#   define CENABLE .import __librt_enable_asynccancel,code ASM_LINE_SEP \
+			bl __librt_enable_asynccancel,%r2 ASM_LINE_SEP
+#   define CDISABLE .import __librt_disable_asynccancel,code ASM_LINE_SEP \
+			bl __librt_disable_asynccancel,%r2 ASM_LINE_SEP
+#  else
+#   define CENABLE .import __librt_enable_asynccancel,code ASM_LINE_SEP \
+			bl __librt_enable_asynccancel,%r2 ASM_LINE_SEP
+#   define CDISABLE .import __librt_disable_asynccancel,code ASM_LINE_SEP \
+			bl __librt_disable_asynccancel,%r2 ASM_LINE_SEP
+#  endif
+# else
+#  error Unsupported library
+# endif
+
+# if IS_IN (libpthread)
+#  define __local_multiple_threads __pthread_multiple_threads
+# elif IS_IN (libc)
+#  define __local_multiple_threads __libc_multiple_threads
+# elif IS_IN (librt)
+#  define __local_multiple_threads __librt_multiple_threads
+# else
+#  error Unsupported library
+# endif
+
+# ifndef __ASSEMBLER__
+#  define SINGLE_THREAD_P \
+  __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+				   header.multiple_threads) == 0, 1)
+# else
+/* Read the value of header.multiple_threads from the thread pointer */
+#  define SINGLE_THREAD_P							\
+	mfctl %cr27, %ret0					ASM_LINE_SEP	\
+	ldw MULTIPLE_THREADS_THREAD_OFFSET(%sr0,%ret0),%ret0	ASM_LINE_SEP
+# endif
+#elif !defined __ASSEMBLER__
+
+/* This code should never be used but we define it anyhow.  */
+# define SINGLE_THREAD_P (1)
+# define NO_CANCELLATION 1
+
+#endif
+/* IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt) */
+
+#ifndef __ASSEMBLER__
+# define RTLD_SINGLE_THREAD_P \
+  __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+				   header.multiple_threads) == 0, 1)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep.c
new file mode 100644
index 0000000000..1e7c19343e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep.c
@@ -0,0 +1,29 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdarg.h>
+#include <sysdep.h>
+#include <errno.h>
+
+/* This routine is jumped to by all the syscall handlers, to stash
+   an error number into errno.  */
+int
+__syscall_error (int err_no)
+{
+  __set_errno (err_no);
+  return -1;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep.h
new file mode 100644
index 0000000000..d8dd0431a4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep.h
@@ -0,0 +1,512 @@
+/* Assembler macros for PA-RISC.
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper, <drepper@cygnus.com>, August 1999.
+   Linux/PA-RISC changes by Philipp Rumpf, <prumpf@tux.org>, March 2000.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _LINUX_HPPA_SYSDEP_H
+#define _LINUX_HPPA_SYSDEP_H 1
+
+#include <sysdeps/unix/sysdep.h>
+#include <sysdeps/unix/sysv/linux/sysdep.h>
+#include <sysdeps/hppa/sysdep.h>
+
+/* Defines RTLD_PRIVATE_ERRNO.  */
+#include <dl-sysdep.h>
+
+/* In order to get __set_errno() definition in INLINE_SYSCALL.  */
+#ifndef __ASSEMBLER__
+#include <errno.h>
+#endif
+
+#undef ASM_LINE_SEP
+#define ASM_LINE_SEP !
+
+#undef SYS_ify
+#define SYS_ify(syscall_name)	(__NR_##syscall_name)
+
+/* The vfork, fork, and clone syscalls clobber r19
+ * and r21. We list r21 as either clobbered or as an
+ * input to a 6-argument syscall. We must save and
+ * restore r19 in both PIC and non-PIC cases.
+ */
+/* WARNING: TREG must be a callee saves register so
+   that it doesn't have to be restored after a call
+   to another function */
+#define TREG 4
+#define SAVE_PIC(SREG) \
+	copy %r19, SREG ASM_LINE_SEP	\
+	.cfi_register 19, SREG
+#define LOAD_PIC(LREG) \
+	copy LREG , %r19 ASM_LINE_SEP	\
+	.cfi_restore 19
+/* Inline assembly defines */
+#define TREG_ASM "%r4" /* Cant clobber r3, it holds framemarker */
+#define SAVE_ASM_PIC	"       copy %%r19, %" TREG_ASM "\n"
+#define LOAD_ASM_PIC	"       copy %" TREG_ASM ", %%r19\n"
+#define CLOB_TREG	TREG_ASM ,
+#define PIC_REG_DEF	register unsigned long __r19 asm("r19");
+#define PIC_REG_USE	, "r" (__r19)
+
+#ifdef __ASSEMBLER__
+
+/* Syntactic details of assembler.  */
+
+#define ALIGNARG(log2) log2
+
+/* For Linux we can use the system call table in the header file
+	/usr/include/asm/unistd.h
+   of the kernel.  But these symbols do not follow the SYS_* syntax
+   so we have to redefine the `SYS_ify' macro here.  */
+#undef SYS_ify
+#define SYS_ify(syscall_name)	__NR_##syscall_name
+
+/* ELF-like local names start with `.L'.  */
+#undef L
+#define L(name)	.L##name
+
+/* Linux uses a negative return value to indicate syscall errors,
+   unlike most Unices, which use the condition codes' carry flag.
+
+   Since version 2.1 the return value of a system call might be
+   negative even if the call succeeded.  E.g., the `lseek' system call
+   might return a large offset.  Therefore we must not anymore test
+   for < 0, but test for a real error by making sure the value in %eax
+   is a real error number.  Linus said he will make sure the no syscall
+   returns a value in -1 .. -4095 as a valid result so we can safely
+   test with -4095.  */
+
+/* We don't want the label for the error handle to be global when we define
+   it here.  */
+/*#ifdef PIC
+# define SYSCALL_ERROR_LABEL 0f
+#else
+# define SYSCALL_ERROR_LABEL syscall_error
+#endif*/
+
+/* Argument manipulation from the stack for preparing to
+   make a syscall */
+
+#define DOARGS_0 /* nothing */
+#define DOARGS_1 /* nothing */
+#define DOARGS_2 /* nothing */
+#define DOARGS_3 /* nothing */
+#define DOARGS_4 /* nothing */
+#define DOARGS_5 ldw -52(%sp), %r22		ASM_LINE_SEP
+#define DOARGS_6 DOARGS_5 ldw -56(%sp), %r21	ASM_LINE_SEP
+
+#define UNDOARGS_0 /* nothing */
+#define UNDOARGS_1 /* nothing */
+#define UNDOARGS_2 /* nothing */
+#define UNDOARGS_3 /* nothing */
+#define UNDOARGS_4 /* nothing */
+#define UNDOARGS_5 /* nothing */
+#define UNDOARGS_6 /* nothing */
+
+/* Define an entry point visible from C.
+
+   There is currently a bug in gdb which prevents us from specifying
+   incomplete stabs information.  Fake some entries here which specify
+   the current source file.  */
+#undef ENTRY
+#define	ENTRY(name)							\
+	.text						ASM_LINE_SEP	\
+	.align ALIGNARG(4)				ASM_LINE_SEP	\
+	.export C_SYMBOL_NAME(name)			ASM_LINE_SEP	\
+	.type	C_SYMBOL_NAME(name),@function		ASM_LINE_SEP	\
+	cfi_startproc					ASM_LINE_SEP	\
+	C_LABEL(name)					ASM_LINE_SEP	\
+	.PROC						ASM_LINE_SEP	\
+	.CALLINFO FRAME=64,CALLS,SAVE_RP,ENTRY_GR=3	ASM_LINE_SEP	\
+	.ENTRY						ASM_LINE_SEP	\
+	/* SAVE_RP says we do */			ASM_LINE_SEP	\
+	stw %rp, -20(%sr0,%sp)				ASM_LINE_SEP	\
+	.cfi_offset 2, -20				ASM_LINE_SEP	\
+	/*FIXME: Call mcount? (carefull with stack!) */
+
+/* Some syscall wrappers do not call other functions, and
+   hence are classified as leaf, so add NO_CALLS for gdb */
+#define	ENTRY_LEAF(name)						\
+	.text						ASM_LINE_SEP	\
+	.align ALIGNARG(4)				ASM_LINE_SEP	\
+	.export C_SYMBOL_NAME(name)			ASM_LINE_SEP	\
+	.type	C_SYMBOL_NAME(name),@function		ASM_LINE_SEP	\
+	cfi_startproc					ASM_LINE_SEP	\
+	C_LABEL(name)					ASM_LINE_SEP	\
+	.PROC						ASM_LINE_SEP	\
+	.CALLINFO FRAME=64,NO_CALLS,SAVE_RP,ENTRY_GR=3	ASM_LINE_SEP	\
+	.ENTRY						ASM_LINE_SEP	\
+	/* SAVE_RP says we do */			ASM_LINE_SEP	\
+	stw %rp, -20(%sr0,%sp)				ASM_LINE_SEP	\
+	.cfi_offset 2, -20				ASM_LINE_SEP	\
+	/*FIXME: Call mcount? (carefull with stack!) */
+
+#undef	END
+#define END(name)							\
+	.EXIT						ASM_LINE_SEP	\
+	.PROCEND					ASM_LINE_SEP	\
+	cfi_endproc					ASM_LINE_SEP	\
+.size	C_SYMBOL_NAME(name), .-C_SYMBOL_NAME(name)	ASM_LINE_SEP
+
+/* If compiled for profiling, call `mcount' at the start
+   of each function. No, don't bother.  gcc will put the
+   call in for us.  */
+#define CALL_MCOUNT		/* Do nothing.  */
+
+/* syscall wrappers consist of
+	#include <sysdep.h>
+	PSEUDO(...)
+	ret
+	PSEUDO_END(...)
+
+   which means
+	ENTRY(name)
+	DO_CALL(...)
+	bv,n 0(2)
+*/
+
+#undef PSEUDO
+#define	PSEUDO(name, syscall_name, args)			\
+  ENTRY (name)					ASM_LINE_SEP	\
+  /* If necc. load args from stack */		ASM_LINE_SEP	\
+  DOARGS_##args					ASM_LINE_SEP	\
+  DO_CALL (syscall_name, args)			ASM_LINE_SEP	\
+  UNDOARGS_##args				ASM_LINE_SEP
+
+#define ret \
+  /* Return value set by ERRNO code */		ASM_LINE_SEP	\
+  bv,n 0(2)					ASM_LINE_SEP
+
+#undef	PSEUDO_END
+#define	PSEUDO_END(name)					\
+  END (name)
+
+/* We don't set the errno on the return from the syscall */
+#define	PSEUDO_NOERRNO(name, syscall_name, args)		\
+  ENTRY_LEAF (name)				ASM_LINE_SEP	\
+  DOARGS_##args					ASM_LINE_SEP	\
+  DO_CALL_NOERRNO (syscall_name, args)		ASM_LINE_SEP	\
+  UNDOARGS_##args				ASM_LINE_SEP
+
+#define ret_NOERRNO ret
+
+#undef	PSEUDO_END_NOERRNO
+#define	PSEUDO_END_NOERRNO(name)				\
+  END (name)
+
+/* This has to return the error value */
+#undef  PSEUDO_ERRVAL
+#define PSEUDO_ERRVAL(name, syscall_name, args)			\
+  ENTRY_LEAF (name)				ASM_LINE_SEP	\
+  DOARGS_##args					ASM_LINE_SEP	\
+  DO_CALL_ERRVAL (syscall_name, args)		ASM_LINE_SEP	\
+  UNDOARGS_##args				ASM_LINE_SEP
+
+#define ret_ERRVAL ret
+
+#undef	PSEUDO_END_ERRVAL
+#define PSEUDO_END_ERRVAL(name)					\
+	END(name)
+
+#undef JUMPTARGET
+#define JUMPTARGET(name)	name
+#define SYSCALL_PIC_SETUP	/* Nothing.  */
+
+
+/* FIXME: This comment is not true.
+ * All the syscall assembly macros rely on finding the appropriate
+   SYSCALL_ERROR_LABEL or rather HANDLER. */
+
+/* int * __errno_location(void) so you have to store your value
+   into the return address! */
+#define DEFAULT_SYSCALL_ERROR_HANDLER			\
+	.import __errno_location,code	ASM_LINE_SEP	\
+	/* branch to errno handler */	ASM_LINE_SEP	\
+	bl __errno_location,%rp		ASM_LINE_SEP
+
+/* Here are the myriad of configuration options that the above can
+   work for... what we've done is provide the framework for future
+   changes if required to each section */
+
+#ifdef PIC
+# if RTLD_PRIVATE_ERRNO
+#  define SYSCALL_ERROR_HANDLER DEFAULT_SYSCALL_ERROR_HANDLER
+# else /* !RTLD_PRIVATE_ERRNO */
+#  if defined _LIBC_REENTRANT
+#   define SYSCALL_ERROR_HANDLER DEFAULT_SYSCALL_ERROR_HANDLER
+#  else /* !_LIBC_REENTRANT */
+#   define SYSCALL_ERROR_HANDLER DEFAULT_SYSCALL_ERROR_HANDLER
+#  endif /* _LIBC_REENTRANT */
+# endif /* RTLD_PRIVATE_ERRNO */
+#else
+# ifndef _LIBC_REENTRANT
+#  define SYSCALL_ERROR_HANDLER DEFAULT_SYSCALL_ERROR_HANDLER
+# else
+#  define SYSCALL_ERROR_HANDLER DEFAULT_SYSCALL_ERROR_HANDLER
+# endif
+#endif
+
+
+/* Linux takes system call arguments in registers:
+	syscall number	gr20
+	arg 1		gr26
+	arg 2		gr25
+	arg 3		gr24
+	arg 4		gr23
+	arg 5		gr22
+	arg 6		gr21
+
+   The compiler calls us by the C convention:
+	syscall number	in the DO_CALL macro
+	arg 1		gr26
+	arg 2		gr25
+	arg 3		gr24
+	arg 4		gr23
+	arg 5		-52(sp)
+	arg 6		-56(sp)
+
+   gr22 and gr21 are caller-saves, so we can just load the arguments
+   there and generally be happy. */
+
+/* the cmpb...no_error code below inside DO_CALL
+ * is intended to mimic the if (__sys_res...)
+ * code inside INLINE_SYSCALL
+ */
+#define NO_ERROR -0x1000
+
+#undef	DO_CALL
+#define DO_CALL(syscall_name, args)				\
+	/* Create a frame */			ASM_LINE_SEP	\
+	stwm TREG, 64(%sp)			ASM_LINE_SEP	\
+	.cfi_offset TREG, 0			ASM_LINE_SEP	\
+	.cfi_adjust_cfa_offset 64		ASM_LINE_SEP	\
+	stw %sp, -4(%sp)			ASM_LINE_SEP	\
+	.cfi_offset 30, -4			ASM_LINE_SEP	\
+	stw %r19, -32(%sp)			ASM_LINE_SEP	\
+	.cfi_offset 19, -32			ASM_LINE_SEP	\
+	/* Save r19 */				ASM_LINE_SEP	\
+	SAVE_PIC(TREG)				ASM_LINE_SEP	\
+	/* Do syscall, delay loads # */		ASM_LINE_SEP	\
+	ble  0x100(%sr2,%r0)			ASM_LINE_SEP	\
+	ldi SYS_ify (syscall_name), %r20	ASM_LINE_SEP	\
+	ldi NO_ERROR,%r1			ASM_LINE_SEP	\
+	cmpb,>>=,n %r1,%ret0,L(pre_end)		ASM_LINE_SEP	\
+	/* Restore r19 from TREG */		ASM_LINE_SEP	\
+	LOAD_PIC(TREG) /* delay */		ASM_LINE_SEP	\
+	SYSCALL_ERROR_HANDLER			ASM_LINE_SEP	\
+	/* Use TREG for temp storage */		ASM_LINE_SEP	\
+	copy %ret0, TREG /* delay */		ASM_LINE_SEP	\
+	/* OPTIMIZE: Don't reload r19 */	ASM_LINE_SEP	\
+	/* do a -1*syscall_ret0 */		ASM_LINE_SEP	\
+	sub %r0, TREG, TREG			ASM_LINE_SEP	\
+	/* Store into errno location */		ASM_LINE_SEP	\
+	stw TREG, 0(%sr0,%ret0)			ASM_LINE_SEP	\
+	/* return -1 as error */		ASM_LINE_SEP	\
+	ldo -1(%r0), %ret0			ASM_LINE_SEP	\
+L(pre_end):					ASM_LINE_SEP	\
+	/* Restore our frame, restoring TREG */	ASM_LINE_SEP	\
+	ldwm -64(%sp), TREG			ASM_LINE_SEP	\
+	.cfi_adjust_cfa_offset -64		ASM_LINE_SEP	\
+	/* Restore return pointer */		ASM_LINE_SEP	\
+	ldw -20(%sp),%rp			ASM_LINE_SEP	\
+	.cfi_restore 2				ASM_LINE_SEP
+
+/* We do nothing with the return, except hand it back to someone else */
+#undef  DO_CALL_NOERRNO
+#define DO_CALL_NOERRNO(syscall_name, args)			\
+	/* No need to store r19 */		ASM_LINE_SEP	\
+	ble  0x100(%sr2,%r0)                    ASM_LINE_SEP    \
+	ldi SYS_ify (syscall_name), %r20        ASM_LINE_SEP    \
+	/* Caller will restore r19 */		ASM_LINE_SEP
+
+/* Here, we return the ERRVAL in assembly, note we don't call the
+   error handler function, but we do 'negate' the return _IF_
+   it's an error. Not sure if this is the right semantic. */
+
+#undef	DO_CALL_ERRVAL
+#define DO_CALL_ERRVAL(syscall_name, args)			\
+	/* No need to store r19 */		ASM_LINE_SEP	\
+	ble  0x100(%sr2,%r0)			ASM_LINE_SEP	\
+	ldi SYS_ify (syscall_name), %r20	ASM_LINE_SEP	\
+	/* Caller will restore r19 */		ASM_LINE_SEP	\
+	ldi NO_ERROR,%r1			ASM_LINE_SEP	\
+	cmpb,>>=,n %r1,%ret0,0f			ASM_LINE_SEP	\
+	sub %r0, %ret0, %ret0			ASM_LINE_SEP	\
+0:						ASM_LINE_SEP
+
+
+#else
+
+/* GCC has to be warned that a syscall may clobber all the ABI
+   registers listed as "caller-saves", see page 8, Table 2
+   in section 2.2.6 of the PA-RISC RUN-TIME architecture
+   document. However! r28 is the result and will conflict with
+   the clobber list so it is left out. Also the input arguments
+   registers r20 -> r26 will conflict with the list so they
+   are treated specially. Although r19 is clobbered by the syscall
+   we cannot say this because it would violate ABI, thus we say
+   TREG is clobbered and use that register to save/restore r19
+   across the syscall. */
+
+#define CALL_CLOB_REGS	"%r1", "%r2", CLOB_TREG \
+			"%r20", "%r29", "%r31"
+
+#undef INLINE_SYSCALL
+#define INLINE_SYSCALL(name, nr, args...)				\
+({									\
+    long __sys_res = INTERNAL_SYSCALL (name, , nr, args);		\
+    if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (__sys_res, )))	\
+      {									\
+	__set_errno (INTERNAL_SYSCALL_ERRNO (__sys_res, ));		\
+	__sys_res = -1;							\
+      }									\
+    __sys_res;								\
+})
+
+/* INTERNAL_SYSCALL_DECL - Allows us to setup some function static
+   value to use within the context of the syscall
+   INTERNAL_SYSCALL_ERROR_P - Returns 0 if it wasn't an error, 1 otherwise
+   You are allowed to use the syscall result (val) and the DECL error
+   variable to determine what went wrong.
+   INTERLAL_SYSCALL_ERRNO - Munges the val/err pair into the error number.
+   In our case we just flip the sign. */
+
+#undef INTERNAL_SYSCALL_DECL
+#define INTERNAL_SYSCALL_DECL(err)
+
+#undef INTERNAL_SYSCALL_ERROR_P
+#define INTERNAL_SYSCALL_ERROR_P(val, err) \
+	((val < 0) && (val > -4095))
+
+#undef INTERNAL_SYSCALL_ERRNO
+#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
+
+/* Similar to INLINE_SYSCALL but we don't set errno */
+#undef INTERNAL_SYSCALL
+#define INTERNAL_SYSCALL(name, err, nr, args...)			\
+({									\
+	long __sys_res;							\
+	{								\
+		LOAD_ARGS_##nr(args)					\
+		register unsigned long __res asm("r28");		\
+		PIC_REG_DEF						\
+		LOAD_REGS_##nr						\
+		/* FIXME: HACK save/load r19 around syscall */		\
+		asm volatile(						\
+			SAVE_ASM_PIC					\
+			"	ble  0x100(%%sr2, %%r0)\n"		\
+			"	ldi %1, %%r20\n"			\
+			LOAD_ASM_PIC					\
+			: "=r" (__res)					\
+			: "i" (SYS_ify(name)) PIC_REG_USE ASM_ARGS_##nr	\
+			: "memory", CALL_CLOB_REGS CLOB_ARGS_##nr	\
+		);							\
+		__sys_res = (long)__res;				\
+	}								\
+	__sys_res;							\
+ })
+
+
+/* The _NCS variant allows non-constant syscall numbers.  */
+#undef INTERNAL_SYSCALL_NCS
+#define INTERNAL_SYSCALL_NCS(name, err, nr, args...)			\
+({									\
+	long __sys_res;							\
+	{								\
+		LOAD_ARGS_##nr(args)					\
+		register unsigned long __res asm("r28");		\
+		PIC_REG_DEF						\
+		LOAD_REGS_##nr						\
+		/* FIXME: HACK save/load r19 around syscall */		\
+		asm volatile(						\
+			SAVE_ASM_PIC					\
+			"	ble  0x100(%%sr2, %%r0)\n"		\
+			"	copy %1, %%r20\n"			\
+			LOAD_ASM_PIC					\
+			: "=r" (__res)					\
+			: "r" (name) PIC_REG_USE ASM_ARGS_##nr		\
+			: "memory", CALL_CLOB_REGS CLOB_ARGS_##nr	\
+		);							\
+		__sys_res = (long)__res;				\
+	}								\
+	__sys_res;							\
+ })
+
+#define LOAD_ARGS_0()
+#define LOAD_REGS_0
+#define LOAD_ARGS_1(a1)							\
+  register unsigned long __x26 = (unsigned long)(a1);			\
+  LOAD_ARGS_0()
+#define LOAD_REGS_1							\
+  register unsigned long __r26 __asm__("r26") = __x26;			\
+  LOAD_REGS_0
+#define LOAD_ARGS_2(a1,a2)						\
+  register unsigned long __x25 = (unsigned long)(a2);			\
+  LOAD_ARGS_1(a1)
+#define LOAD_REGS_2							\
+  register unsigned long __r25 __asm__("r25") = __x25;			\
+  LOAD_REGS_1
+#define LOAD_ARGS_3(a1,a2,a3)						\
+  register unsigned long __x24 = (unsigned long)(a3);			\
+  LOAD_ARGS_2(a1,a2)
+#define LOAD_REGS_3							\
+  register unsigned long __r24 __asm__("r24") = __x24;			\
+  LOAD_REGS_2
+#define LOAD_ARGS_4(a1,a2,a3,a4)					\
+  register unsigned long __x23 = (unsigned long)(a4);			\
+  LOAD_ARGS_3(a1,a2,a3)
+#define LOAD_REGS_4							\
+  register unsigned long __r23 __asm__("r23") = __x23;			\
+  LOAD_REGS_3
+#define LOAD_ARGS_5(a1,a2,a3,a4,a5)					\
+  register unsigned long __x22 = (unsigned long)(a5);			\
+  LOAD_ARGS_4(a1,a2,a3,a4)
+#define LOAD_REGS_5							\
+  register unsigned long __r22 __asm__("r22") = __x22;			\
+  LOAD_REGS_4
+#define LOAD_ARGS_6(a1,a2,a3,a4,a5,a6)					\
+  register unsigned long __x21 = (unsigned long)(a6);			\
+  LOAD_ARGS_5(a1,a2,a3,a4,a5)
+#define LOAD_REGS_6							\
+  register unsigned long __r21 __asm__("r21") = __x21;			\
+  LOAD_REGS_5
+
+/* Even with zero args we use r20 for the syscall number */
+#define ASM_ARGS_0
+#define ASM_ARGS_1 ASM_ARGS_0, "r" (__r26)
+#define ASM_ARGS_2 ASM_ARGS_1, "r" (__r25)
+#define ASM_ARGS_3 ASM_ARGS_2, "r" (__r24)
+#define ASM_ARGS_4 ASM_ARGS_3, "r" (__r23)
+#define ASM_ARGS_5 ASM_ARGS_4, "r" (__r22)
+#define ASM_ARGS_6 ASM_ARGS_5, "r" (__r21)
+
+/* The registers not listed as inputs but clobbered */
+#define CLOB_ARGS_6
+#define CLOB_ARGS_5 CLOB_ARGS_6, "%r21"
+#define CLOB_ARGS_4 CLOB_ARGS_5, "%r22"
+#define CLOB_ARGS_3 CLOB_ARGS_4, "%r23"
+#define CLOB_ARGS_2 CLOB_ARGS_3, "%r24"
+#define CLOB_ARGS_1 CLOB_ARGS_2, "%r25"
+#define CLOB_ARGS_0 CLOB_ARGS_1, "%r26"
+
+#endif	/* __ASSEMBLER__ */
+
+/* Pointer mangling is not yet supported for HPPA.  */
+#define PTR_MANGLE(var) (void) (var)
+#define PTR_DEMANGLE(var) (void) (var)
+
+#endif /* _LINUX_HPPA_SYSDEP_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/ucontext_i.sym b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/ucontext_i.sym
new file mode 100644
index 0000000000..ee33029a07
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/ucontext_i.sym
@@ -0,0 +1,59 @@
+#include <stddef.h>
+#include <signal.h>
+#include <sys/ucontext.h>
+
+--
+
+SIG_BLOCK
+SIG_SETMASK
+
+#define ucontext(member)	offsetof (ucontext_t, member)
+#define mcontext(member)	ucontext (uc_mcontext.member)
+#define mreg(reg)		mcontext (sc_gr[reg])
+
+oUC_FLAGS	ucontext (uc_flags)
+oUC_LINK	ucontext (uc_link)
+oSS_SP		ucontext (uc_stack.ss_sp)
+oSS_FLAGS	ucontext (uc_stack.ss_flags)
+oSS_SIZE	ucontext (uc_stack.ss_size)
+oSC_FLAGS	mcontext (sc_flags)
+oR0		mreg (0)
+oR1		mreg (1)
+oR2		mreg (2)
+oR3		mreg (3)
+oR4		mreg (4)
+oR5		mreg (5)
+oR6		mreg (6)
+oR7		mreg (7)
+oR8		mreg (8)
+oR9		mreg (9)
+oR10		mreg (10)
+oR11		mreg (11)
+oR12		mreg (12)
+oR13		mreg (13)
+oR14		mreg (14)
+oR15		mreg (15)
+oR16		mreg (16)
+oR17		mreg (17)
+oR18		mreg (18)
+oR19		mreg (19)
+oR20		mreg (20)
+oR21		mreg (21)
+oR22		mreg (22)
+oR23		mreg (23)
+oR24		mreg (24)
+oR25		mreg (25)
+oR26		mreg (26)
+oR27		mreg (27)
+oR28		mreg (28)
+oR29		mreg (29)
+oR30		mreg (30)
+oR31		mreg (31)
+oFPREGS0	mcontext (sc_fr[0])
+oFPREGS31	mcontext (sc_fr[31])
+oIASQ0		mcontext (sc_iasq[0])
+oIASQ1		mcontext (sc_iasq[1])
+oIAOQ0		mcontext (sc_iaoq[0])
+oIAOQ1		mcontext (sc_iaoq[1])
+oSAR		mcontext (sc_sar)
+oSIGMASK	ucontext (uc_sigmask)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/umount.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/umount.c
new file mode 100644
index 0000000000..208fbec994
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/umount.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/mips/mips64/umount.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/utimes.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/utimes.c
new file mode 100644
index 0000000000..63e0c8c9cb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/utimes.c
@@ -0,0 +1,30 @@
+/* Implement utimes for hppa.
+   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/>.  */
+
+/* hppa has the utimensat syscall in all supported kernel versions but
+   gained the utimes syscall later, so use the linux-generic
+   implementation of utimes in terms of the utimensat syscall unless
+   the utimes syscall is known to be available.  */
+
+#include <kernel-features.h>
+
+#ifdef __ASSUME_UTIMES
+# include <sysdeps/unix/sysv/linux/utimes.c>
+#else
+# include <sysdeps/unix/sysv/linux/generic/utimes.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/xstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/xstat.c
new file mode 100644
index 0000000000..e9869f5508
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/xstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/xstat.c>