about summary refs log tree commit diff
path: root/REORG.TODO/sysdeps/unix/sysv/linux/sh
diff options
context:
space:
mode:
Diffstat (limited to 'REORG.TODO/sysdeps/unix/sysv/linux/sh')
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/Implies1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/Makefile16
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/Versions33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S122
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/arch-fork.h28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/atomic-machine.h425
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/fcntl.h50
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/mman.h40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/shm.h101
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/brk.c47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/clone.S103
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/configure4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/configure.ac4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/fcntl.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/fxstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/fxstatat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/kernel-features.h54
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/ld.abilist12
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/libc.abilist2178
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/libdl.abilist14
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/libm.abilist433
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/libnsl.abilist124
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/libpthread.abilist245
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/libresolv.abilist100
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/librt.abilist47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/libthread_db.abilist44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/localplt.data21
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/lockf64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h80
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/lxstat.c2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/makecontext.S160
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/pipe.S42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/profil-counter.h32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/pt-vfork.S1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/getcontext.S87
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/register-dump.h150
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/setcontext.S99
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S132
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/getcontext.S132
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/register-dump.h263
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/setcontext.S141
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S218
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/sysdep.h4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym73
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/shlib-versions5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sigaltstack-offsets.sym13
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sigcontextinfo.h26
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/smp.h23
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sys/procfs.h111
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sys/ucontext.h127
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sys/user.h67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/syscall.S43
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/syscalls.list22
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h169
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep.S32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep.h360
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/vfork.S52
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/xstat.c1
64 files changed, 7044 insertions, 0 deletions
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/sh/Implies
new file mode 100644
index 0000000000..c15a97e222
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/Implies
@@ -0,0 +1 @@
+sh/nptl
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/sh/Makefile
new file mode 100644
index 0000000000..dd3b382ac1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/Makefile
@@ -0,0 +1,16 @@
+ifeq ($(subdir),io)
+sysdep_routines += pipe
+endif
+
+ifeq ($(subdir),stdlib)
+gen-as-const-headers += ucontext_i.sym
+endif
+
+ifeq ($(subdir),misc)
+gen-as-const-headers += sigaltstack-offsets.sym
+endif
+
+ifeq ($(subdir),math)
+# The libm.so link can't find __fpscr_values
+libm.so-no-z-defs = yes
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/sh/Versions
new file mode 100644
index 0000000000..e0938c4165
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/Versions
@@ -0,0 +1,33 @@
+libc {
+  GLIBC_2.2 {
+    # functions used in other libraries
+    __xstat64; __fxstat64; __lxstat64;
+
+    # a*
+    alphasort64;
+
+    # g*
+    glob64;
+
+    # New rlimit interface
+    getrlimit; setrlimit; getrlimit64;
+
+    # r*
+    readdir64; readdir64_r;
+
+    # s*
+    scandir64;
+
+    # v*
+    versionsort64;
+  }
+  GLIBC_2.3.3 {
+    posix_fadvise64; posix_fallocate64;
+  }
+  GLIBC_2.11 {
+    fallocate64;
+  }
+  GLIBC_2.16 {
+    fanotify_mark;
+  }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S
new file mode 100644
index 0000000000..386d7038a5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S
@@ -0,0 +1,122 @@
+/* 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 Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <sysdep.h>
+
+#include <sigaltstack-offsets.h>
+
+	.section .rodata.str1.1,"aMS",@progbits,1
+	.type	longjmp_msg,@object
+longjmp_msg:
+	.string "longjmp causes uninitialized stack frame"
+	.size	longjmp_msg, .-longjmp_msg
+	.text
+
+#define __longjmp ____longjmp_chk
+
+#ifdef PIC
+# define CALL_FAIL \
+	mov.l	.Lfail, r1;				\
+	mov.l	.Lstr, r4;				\
+	mov.l	r12, @-r15;				\
+	cfi_remember_state;				\
+	cfi_adjust_cfa_offset (4);			\
+	cfi_rel_offset (r12, 0);			\
+	mova	.Lgot, r0;				\
+	mov.l	.Lgot, r12;				\
+	add	r0, r12;				\
+	sts.l	pr, @-r15;				\
+	cfi_adjust_cfa_offset (4);			\
+	cfi_rel_offset (pr, 0);				\
+	bsrf	r1;					\
+	 add	r12, r4;				\
+.Lfail0:						\
+	/* Unreachable.	 */				\
+	.align	2;					\
+.Lgot:							\
+	.long	_GLOBAL_OFFSET_TABLE_;			\
+.Lstr:							\
+	.long	longjmp_msg@GOTOFF;			\
+.Lfail:							\
+	.long	__GI___fortify_fail@PLT-(.Lfail0-.);	\
+	cfi_restore_state;
+#else
+# define CALL_FAIL \
+	mov.l	.Lfail, r1;				\
+	mov.l	.Lstr, r4;				\
+	sts.l	pr, @-r15;				\
+	cfi_remember_state;				\
+	cfi_adjust_cfa_offset (4);			\
+	cfi_rel_offset (pr, 0);				\
+	jsr	@r1;					\
+	 nop;						\
+	/* Unreachable.	 */				\
+	.align	2;					\
+.Lstr:							\
+	.long	longjmp_msg;				\
+.Lfail:							\
+	.long	__fortify_fail;				\
+	cfi_restore_state;
+#endif
+
+#define CHECK_SP(reg) \
+	/* Jumping to a higher-address frame is always allowed.	 */	\
+	cmp/hs	r15, reg;						\
+	bt	.Lok;							\
+									\
+	mov.l	r0, @-r15; /* The return value is already in here.  */	\
+	cfi_adjust_cfa_offset (4);					\
+	mov.l	r1, @-r15; /* PTR_DEMANGLE helper.  */			\
+	cfi_adjust_cfa_offset (4);					\
+	mov.l	r2, @-r15; /* The new SP value is already in here.  */	\
+	cfi_adjust_cfa_offset (4);					\
+	mov.l	r4, @-r15; /* We'll still need this one.  */		\
+	cfi_adjust_cfa_offset (4);					\
+	add	#-sizeSS, r15;						\
+	cfi_adjust_cfa_offset (sizeSS);					\
+	mov	#0, r4;							\
+	mov	r15, r5;						\
+	DO_CALL (sigaltstack, 2);					\
+	/* Without working sigaltstack we cannot perform the test.  */	\
+	tst	r0, r0;							\
+	bf	.Lok2;							\
+	mov.l	@(oSS_FLAGS, r15), r0;					\
+	tst	#SS_ONSTACK, r0;					\
+	bt	.Lcall_fail;						\
+	mov.l	@(oSS_SIZE, r15), r2;					\
+	mov.l	@(oSS_SP, r15), r1;					\
+	add	r2, r1;							\
+	sub	r8, r1;							\
+	cmp/hi	r1, r2;							\
+	bf	.Lok2;							\
+.Lcall_fail:								\
+	CALL_FAIL							\
+									\
+.Lok2:									\
+	add	#sizeSS, r15;						\
+	cfi_adjust_cfa_offset (-sizeSS);				\
+	mov.l	@r15+, r4;						\
+	cfi_adjust_cfa_offset (-4);					\
+	mov.l	@r15+, r2;						\
+	cfi_adjust_cfa_offset (-4);					\
+	mov.l	@r15+, r1;						\
+	cfi_adjust_cfa_offset (-4);					\
+	mov.l	@r15+, r0;						\
+	cfi_adjust_cfa_offset (-4);					\
+.Lok:
+
+#include <__longjmp.S>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/arch-fork.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/arch-fork.h
new file mode 100644
index 0000000000..ca42758989
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/arch-fork.h
@@ -0,0 +1,28 @@
+/* ARCH_FORK definition for Linux fork implementation.  SH version.
+   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <sched.h>
+#include <signal.h>
+#include <sysdep.h>
+#include <tls.h>
+
+/* TLS pointer argument is passed as the 5-th argument.  */
+#define ARCH_FORK() \
+  INLINE_SYSCALL (clone, 5,						      \
+		  CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, 0,     \
+		  NULL, &THREAD_SELF->tid, NULL)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/atomic-machine.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/atomic-machine.h
new file mode 100644
index 0000000000..5a7e953ac4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/atomic-machine.h
@@ -0,0 +1,425 @@
+/* Atomic operations used inside libc.  Linux/SH version.
+   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdint.h>
+
+
+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 int16_t atomic16_t;
+typedef uint16_t uatomic16_t;
+typedef int_fast16_t atomic_fast16_t;
+typedef uint_fast16_t uatomic_fast16_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 int64_t atomic64_t;
+typedef uint64_t uatomic64_t;
+typedef int_fast64_t atomic_fast64_t;
+typedef uint_fast64_t uatomic_fast64_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
+
+/* SH kernel has implemented a gUSA ("g" User Space Atomicity) support
+   for the user space atomicity. The atomicity macros use this scheme.
+
+  Reference:
+    Niibe Yutaka, "gUSA: Simple and Efficient User Space Atomicity
+    Emulation with Little Kernel Modification", Linux Conference 2002,
+    Japan. http://lc.linux.or.jp/lc2002/papers/niibe0919h.pdf (in
+    Japanese).
+
+    B.N. Bershad, D. Redell, and J. Ellis, "Fast Mutual Exclusion for
+    Uniprocessors",  Proceedings of the Fifth Architectural Support for
+    Programming Languages and Operating Systems (ASPLOS), pp. 223-233,
+    October 1992. http://www.cs.washington.edu/homes/bershad/Papers/Rcs.ps
+
+  SuperH ABI:
+      r15:    -(size of atomic instruction sequence) < 0
+      r0:     end point
+      r1:     saved stack pointer
+*/
+
+#define __arch_compare_and_exchange_val_8_acq(mem, newval, oldval) \
+  ({ __typeof (*(mem)) __result; \
+     __asm __volatile ("\
+	mova 1f,r0\n\
+	.align 2\n\
+	mov r15,r1\n\
+	mov #(0f-1f),r15\n\
+     0: mov.b @%1,%0\n\
+	cmp/eq %0,%3\n\
+	bf 1f\n\
+	mov.b %2,@%1\n\
+     1: mov r1,r15"\
+	: "=&r" (__result) : "u" (mem), "u" (newval), "u" (oldval) \
+	: "r0", "r1", "t", "memory"); \
+     __result; })
+
+#define __arch_compare_and_exchange_val_16_acq(mem, newval, oldval) \
+  ({ __typeof (*(mem)) __result; \
+     __asm __volatile ("\
+	mova 1f,r0\n\
+	mov r15,r1\n\
+	.align 2\n\
+	mov #(0f-1f),r15\n\
+	mov #-8,r15\n\
+     0: mov.w @%1,%0\n\
+	cmp/eq %0,%3\n\
+	bf 1f\n\
+	mov.w %2,@%1\n\
+     1: mov r1,r15"\
+	: "=&r" (__result) : "u" (mem), "u" (newval), "u" (oldval) \
+	: "r0", "r1", "t", "memory"); \
+     __result; })
+
+#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
+  ({ __typeof (*(mem)) __result; \
+     __asm __volatile ("\
+	mova 1f,r0\n\
+	.align 2\n\
+	mov r15,r1\n\
+	mov #(0f-1f),r15\n\
+     0: mov.l @%1,%0\n\
+	cmp/eq %0,%3\n\
+	bf 1f\n\
+	mov.l %2,@%1\n\
+     1: mov r1,r15"\
+	: "=&r" (__result) : "u" (mem), "u" (newval), "u" (oldval) \
+	: "r0", "r1", "t", "memory"); \
+     __result; })
+
+/* XXX We do not really need 64-bit compare-and-exchange.  At least
+   not in the moment.  Using it would mean causing portability
+   problems since not many other 32-bit architectures have support for
+   such an operation.  So don't define any code for now.  */
+
+# define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
+  (abort (), (__typeof (*mem)) 0)
+
+#define atomic_exchange_and_add(mem, value) \
+  ({ __typeof (*(mem)) __result, __tmp, __value = (value); \
+     if (sizeof (*(mem)) == 1) \
+       __asm __volatile ("\
+	  mova 1f,r0\n\
+	  .align 2\n\
+	  mov r15,r1\n\
+	  mov #(0f-1f),r15\n\
+       0: mov.b @%2,%0\n\
+	  mov %1,r2\n\
+	  add %0,r2\n\
+	  mov.b r2,@%2\n\
+       1: mov r1,r15"\
+	: "=&r" (__result), "=&r" (__tmp) : "u" (mem), "1" (__value) \
+	: "r0", "r1", "r2", "memory");		       \
+     else if (sizeof (*(mem)) == 2) \
+       __asm __volatile ("\
+	  mova 1f,r0\n\
+	  .align 2\n\
+	  mov r15,r1\n\
+	  mov #(0f-1f),r15\n\
+       0: mov.w @%2,%0\n\
+	  mov %1,r2\n\
+	  add %0,r2\n\
+	  mov.w r2,@%2\n\
+       1: mov r1,r15"\
+	: "=&r" (__result), "=&r" (__tmp) : "u" (mem), "1" (__value) \
+	: "r0", "r1", "r2", "memory"); \
+     else if (sizeof (*(mem)) == 4) \
+       __asm __volatile ("\
+	  mova 1f,r0\n\
+	  .align 2\n\
+	  mov r15,r1\n\
+	  mov #(0f-1f),r15\n\
+       0: mov.l @%2,%0\n\
+	  mov %1,r2\n\
+	  add %0,r2\n\
+	  mov.l r2,@%2\n\
+       1: mov r1,r15"\
+	: "=&r" (__result), "=&r" (__tmp) : "u" (mem), "1" (__value) \
+	: "r0", "r1", "r2", "memory"); \
+     else \
+       { \
+	 __typeof (mem) memp = (mem); \
+	 do \
+	   __result = *memp; \
+	 while (__arch_compare_and_exchange_val_64_acq \
+		 (memp,	__result + __value, __result) == __result); \
+	 (void) __value; \
+       } \
+     __result; })
+
+#define atomic_add(mem, value) \
+  (void) ({ __typeof (*(mem)) __tmp, __value = (value); \
+	    if (sizeof (*(mem)) == 1) \
+	      __asm __volatile ("\
+		mova 1f,r0\n\
+		mov r15,r1\n\
+		.align 2\n\
+		mov #(0f-1f),r15\n\
+	     0: mov.b @%1,r2\n\
+		add %0,r2\n\
+		mov.b r2,@%1\n\
+	     1: mov r1,r15"\
+		: "=&r" (__tmp) : "u" (mem), "0" (__value) \
+		: "r0", "r1", "r2", "memory"); \
+	    else if (sizeof (*(mem)) == 2) \
+	      __asm __volatile ("\
+		mova 1f,r0\n\
+		mov r15,r1\n\
+		.align 2\n\
+		mov #(0f-1f),r15\n\
+	     0: mov.w @%1,r2\n\
+		add %0,r2\n\
+		mov.w r2,@%1\n\
+	     1: mov r1,r15"\
+		: "=&r" (__tmp) : "u" (mem), "0" (__value) \
+		: "r0", "r1", "r2", "memory"); \
+	    else if (sizeof (*(mem)) == 4) \
+	      __asm __volatile ("\
+		mova 1f,r0\n\
+		mov r15,r1\n\
+		.align 2\n\
+		mov #(0f-1f),r15\n\
+	     0: mov.l @%1,r2\n\
+		add %0,r2\n\
+		mov.l r2,@%1\n\
+	     1: mov r1,r15"\
+		: "=&r" (__tmp) : "u" (mem), "0" (__value) \
+		: "r0", "r1", "r2", "memory"); \
+	    else \
+	      { \
+		__typeof (*(mem)) oldval; \
+		__typeof (mem) memp = (mem); \
+		do \
+		  oldval = *memp; \
+		while (__arch_compare_and_exchange_val_64_acq \
+			(memp, oldval + __value, oldval) == oldval); \
+		(void) __value; \
+	      } \
+	    })
+
+#define atomic_add_negative(mem, value) \
+  ({ unsigned char __result; \
+     __typeof (*(mem)) __tmp, __value = (value); \
+     if (sizeof (*(mem)) == 1) \
+       __asm __volatile ("\
+	  mova 1f,r0\n\
+	  mov r15,r1\n\
+	  .align 2\n\
+	  mov #(0f-1f),r15\n\
+       0: mov.b @%2,r2\n\
+	  add %1,r2\n\
+	  mov.b r2,@%2\n\
+       1: mov r1,r15\n\
+	  shal r2\n\
+	  movt %0"\
+	: "=r" (__result), "=&r" (__tmp) : "u" (mem), "1" (__value) \
+	: "r0", "r1", "r2", "t", "memory"); \
+     else if (sizeof (*(mem)) == 2) \
+       __asm __volatile ("\
+	  mova 1f,r0\n\
+	  mov r15,r1\n\
+	  .align 2\n\
+	  mov #(0f-1f),r15\n\
+       0: mov.w @%2,r2\n\
+	  add %1,r2\n\
+	  mov.w r2,@%2\n\
+       1: mov r1,r15\n\
+	  shal r2\n\
+	  movt %0"\
+	: "=r" (__result), "=&r" (__tmp) : "u" (mem), "1" (__value) \
+	: "r0", "r1", "r2", "t", "memory"); \
+     else if (sizeof (*(mem)) == 4) \
+       __asm __volatile ("\
+	  mova 1f,r0\n\
+	  mov r15,r1\n\
+	  .align 2\n\
+	  mov #(0f-1f),r15\n\
+       0: mov.l @%2,r2\n\
+	  add %1,r2\n\
+	  mov.l r2,@%2\n\
+       1: mov r1,r15\n\
+	  shal r2\n\
+	  movt %0"\
+	: "=r" (__result), "=&r" (__tmp) : "u" (mem), "1" (__value) \
+	: "r0", "r1", "r2", "t", "memory"); \
+     else \
+       abort (); \
+     __result; })
+
+#define atomic_add_zero(mem, value) \
+  ({ unsigned char __result; \
+     __typeof (*(mem)) __tmp, __value = (value); \
+     if (sizeof (*(mem)) == 1) \
+       __asm __volatile ("\
+	  mova 1f,r0\n\
+	  mov r15,r1\n\
+	  .align 2\n\
+	  mov #(0f-1f),r15\n\
+       0: mov.b @%2,r2\n\
+	  add %1,r2\n\
+	  mov.b r2,@%2\n\
+       1: mov r1,r15\n\
+	  tst r2,r2\n\
+	  movt %0"\
+	: "=r" (__result), "=&r" (__tmp) : "u" (mem), "1" (__value) \
+	: "r0", "r1", "r2", "t", "memory"); \
+     else if (sizeof (*(mem)) == 2) \
+       __asm __volatile ("\
+	  mova 1f,r0\n\
+	  mov r15,r1\n\
+	  .align 2\n\
+	  mov #(0f-1f),r15\n\
+       0: mov.w @%2,r2\n\
+	  add %1,r2\n\
+	  mov.w r2,@%2\n\
+       1: mov r1,r15\n\
+	  tst r2,r2\n\
+	  movt %0"\
+	: "=r" (__result), "=&r" (__tmp) : "u" (mem), "1" (__value) \
+	: "r0", "r1", "r2", "t", "memory"); \
+     else if (sizeof (*(mem)) == 4) \
+       __asm __volatile ("\
+	  mova 1f,r0\n\
+	  mov r15,r1\n\
+	  .align 2\n\
+	  mov #(0f-1f),r15\n\
+       0: mov.l @%2,r2\n\
+	  add %1,r2\n\
+	  mov.l r2,@%2\n\
+       1: mov r1,r15\n\
+	  tst r2,r2\n\
+	  movt %0"\
+	: "=r" (__result), "=&r" (__tmp) : "u" (mem), "1" (__value) \
+	: "r0", "r1", "r2", "t", "memory"); \
+     else \
+       abort (); \
+     __result; })
+
+#define atomic_increment_and_test(mem) atomic_add_zero((mem), 1)
+#define atomic_decrement_and_test(mem) atomic_add_zero((mem), -1)
+
+#define atomic_bit_set(mem, bit) \
+  (void) ({ unsigned int __mask = 1 << (bit); \
+	    if (sizeof (*(mem)) == 1) \
+	      __asm __volatile ("\
+		mova 1f,r0\n\
+		mov r15,r1\n\
+		.align 2\n\
+		mov #(0f-1f),r15\n\
+	     0: mov.b @%0,r2\n\
+		or %1,r2\n\
+		mov.b r2,@%0\n\
+	     1: mov r1,r15"\
+		: : "u" (mem), "u" (__mask) \
+		: "r0", "r1", "r2", "memory"); \
+	    else if (sizeof (*(mem)) == 2) \
+	      __asm __volatile ("\
+		mova 1f,r0\n\
+		mov r15,r1\n\
+		.align 2\n\
+		mov #(0f-1f),r15\n\
+	     0: mov.w @%0,r2\n\
+		or %1,r2\n\
+		mov.w r2,@%0\n\
+	     1: mov r1,r15"\
+		: : "u" (mem), "u" (__mask) \
+		: "r0", "r1", "r2", "memory"); \
+	    else if (sizeof (*(mem)) == 4) \
+	      __asm __volatile ("\
+		mova 1f,r0\n\
+		mov r15,r1\n\
+		.align 2\n\
+		mov #(0f-1f),r15\n\
+	     0: mov.l @%0,r2\n\
+		or %1,r2\n\
+		mov.l r2,@%0\n\
+	     1: mov r1,r15"\
+		: : "u" (mem), "u" (__mask) \
+		: "r0", "r1", "r2", "memory"); \
+	    else \
+	      abort (); \
+	    })
+
+#define atomic_bit_test_set(mem, bit) \
+  ({ unsigned int __mask = 1 << (bit); \
+     unsigned int __result = __mask; \
+     if (sizeof (*(mem)) == 1) \
+       __asm __volatile ("\
+	  mova 1f,r0\n\
+	  .align 2\n\
+	  mov r15,r1\n\
+	  mov #(0f-1f),r15\n\
+       0: mov.b @%2,r2\n\
+	  mov r2,r3\n\
+	  or %1,r2\n\
+	  mov.b r2,@%2\n\
+       1: mov r1,r15\n\
+	  and r3,%0"\
+	: "=&r" (__result), "=&r" (__mask) \
+	: "u" (mem), "0" (__result), "1" (__mask) \
+	: "r0", "r1", "r2", "r3", "memory");	\
+     else if (sizeof (*(mem)) == 2) \
+       __asm __volatile ("\
+	  mova 1f,r0\n\
+	  .align 2\n\
+	  mov r15,r1\n\
+	  mov #(0f-1f),r15\n\
+       0: mov.w @%2,r2\n\
+	  mov r2,r3\n\
+	  or %1,r2\n\
+	  mov.w %1,@%2\n\
+       1: mov r1,r15\n\
+	  and r3,%0"\
+	: "=&r" (__result), "=&r" (__mask) \
+	: "u" (mem), "0" (__result), "1" (__mask) \
+	: "r0", "r1", "r2", "r3", "memory"); \
+     else if (sizeof (*(mem)) == 4) \
+       __asm __volatile ("\
+	  mova 1f,r0\n\
+	  .align 2\n\
+	  mov r15,r1\n\
+	  mov #(0f-1f),r15\n\
+       0: mov.l @%2,r2\n\
+	  mov r2,r3\n\
+	  or r2,%1\n\
+	  mov.l %1,@%2\n\
+       1: mov r1,r15\n\
+	  and r3,%0"\
+	: "=&r" (__result), "=&r" (__mask) \
+	: "u" (mem), "0" (__result), "1" (__mask) \
+	: "r0", "r1", "r2", "r3", "memory"); \
+     else \
+       abort (); \
+     __result; })
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/fcntl.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/fcntl.h
new file mode 100644
index 0000000000..49ed86b460
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/fcntl.h
@@ -0,0 +1,50 @@
+/* O_*, F_*, FD_* bit values for Linux/SH.
+   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
+
+
+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/sh/bits/mman.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/mman.h
new file mode 100644
index 0000000000..02588c6d6a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/mman.h
@@ -0,0 +1,40 @@
+/* Definitions for POSIX memory map interface.  Linux/SH 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 include this file directly.  Use <sys/mman.h> instead"
+#endif
+
+/* The following definitions basically come from the kernel headers.
+   But the kernel header is not namespace clean.  */
+
+/* These are Linux-specific.  */
+#ifdef __USE_MISC
+# define MAP_GROWSDOWN	0x0100		/* Stack-like segment.  */
+# define MAP_DENYWRITE	0x0800		/* ETXTBSY */
+# define MAP_EXECUTABLE	0x1000		/* Mark it as an executable.  */
+# define MAP_LOCKED	0x2000		/* Lock the mapping.  */
+# define MAP_NORESERVE	0x4000		/* Don't check for reservations.  */
+# define MAP_POPULATE	0x8000		/* Populate (prefault) pagetables.  */
+# define MAP_NONBLOCK	0x10000		/* Do not block on IO.  */
+# define MAP_STACK	0x20000		/* Allocation is for a stack.  */
+# define MAP_HUGETLB	0x40000		/* Create huge page mapping.  */
+#endif
+
+/* Include generic Linux declarations.  */
+#include <bits/mman-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/shm.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/shm.h
new file mode 100644
index 0000000000..d1f47ec820
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/shm.h
@@ -0,0 +1,101 @@
+/* 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>
+
+/* 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) */
+
+__BEGIN_DECLS
+
+/* Segment low boundary address multiple.  */
+#define SHMLBA		0x4000
+
+/* 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 */
+    size_t shm_segsz;			/* size of segment in bytes */
+    __time_t shm_atime;			/* time of last shmat() */
+    unsigned long int __glibc_reserved1;
+    __time_t shm_dtime;			/* time of last shmdt() */
+    unsigned long int __glibc_reserved2;
+    __time_t shm_ctime;			/* time of last change by shmctl() */
+    unsigned long int __glibc_reserved3;
+    __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_reserved4;
+    unsigned long int __glibc_reserved5;
+  };
+
+#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 int shmmax;
+    unsigned long int shmmin;
+    unsigned long int shmmni;
+    unsigned long int shmseg;
+    unsigned long int shmall;
+    unsigned long int __glibc_reserved1;
+    unsigned long int __glibc_reserved2;
+    unsigned long int __glibc_reserved3;
+    unsigned long int __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 */
+
+__END_DECLS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/brk.c b/REORG.TODO/sysdeps/unix/sysv/linux/sh/brk.c
new file mode 100644
index 0000000000..4d83acf3f5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/brk.c
@@ -0,0 +1,47 @@
+/* brk system call for Linux/SH.
+   Copyright (C) 1999-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;
+  register long r3 asm ("%r3") = SYS_ify (brk);
+  register long r4 asm ("%r4") = (long)addr;
+
+  asm volatile ("trapa #0x11\n\t" SYSCALL_INST_PAD
+		: "=z"(newbrk)
+		: "r" (r3), "r" (r4));
+
+  __curbrk = newbrk;
+
+  if (newbrk < addr)
+    {
+      __set_errno (ENOMEM);
+      return -1;
+    }
+
+  return 0;
+}
+weak_alias (__brk, brk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/sh/c++-types.data
new file mode 100644
index 0000000000..fde53bf337
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/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/sh/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/clone.S
new file mode 100644
index 0000000000..9063b21928
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/clone.S
@@ -0,0 +1,103 @@
+/* Copyright (C) 1999-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/>.  */
+
+/* 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 <sysdep.h>
+#define _ERRNO_H	1
+#include <bits/errno.h>
+#include <tcb-offsets.h>
+
+/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
+	     pid_t *ptid, void *tls, pid_t *ctid); */
+
+	.text
+ENTRY(__clone)
+	/* sanity check arguments.  */
+	tst	r4, r4
+	bt/s	0f
+	 tst	r5, r5
+	bf	1f
+0:
+	bra	.Lsyscall_error
+	 mov	#-EINVAL,r0
+1:
+	/* insert the args onto the new stack */
+	mov.l	r7, @-r5
+	/* save the function pointer as the 0th element */
+	mov.l	r4, @-r5
+
+	/* do the system call */
+	mov	r6, r4
+	mov.l	@r15, r6
+	mov.l	@(8,r15), r7
+	mov.l	@(4,r15), r0
+	mov	#+SYS_ify(clone), r3
+	trapa	#0x15
+	mov     r0, r1
+	mov	#-12, r2
+	shad	r2, r1
+	not	r1, r1			// r1=0 means r0 = -1 to -4095
+	tst	r1, r1			// i.e. error in linux
+	bf	.Lclone_end
+.Lsyscall_error:
+	SYSCALL_ERROR_HANDLER
+.Lclone_end:
+	tst	r0, r0
+	bt	2f
+.Lpseudo_end:
+	rts
+	 nop
+2:
+	/* terminate the stack frame */
+	mov	#0, r14
+
+	/* thread starts */
+	mov.l	@r15, r1
+	jsr	@r1
+	 mov.l	@(4,r15), r4
+
+	/* we are done, passing the return value through r0  */
+	mov.l	.L3, r1
+#ifdef SHARED
+	mov.l	r12, @-r15
+	sts.l	pr, @-r15
+	mov	r0, r4
+	mova	.LG, r0
+	mov.l	.LG, r12
+	add	r0, r12
+	mova	.L3, r0
+	add	r0, r1
+	jsr	@r1
+	 nop
+	lds.l	@r15+, pr
+	rts
+	 mov.l	@r15+, r12
+#else
+	jmp	@r1
+	 mov	r0, r4
+#endif
+	.align	2
+.LG:
+	.long	_GLOBAL_OFFSET_TABLE_
+.L3:
+	.long	PLTJMP(C_SYMBOL_NAME(_exit))
+PSEUDO_END (__clone)
+
+libc_hidden_def (__clone)
+weak_alias (__clone, clone)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/configure b/REORG.TODO/sysdeps/unix/sysv/linux/sh/configure
new file mode 100644
index 0000000000..6c31f5e249
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/configure
@@ -0,0 +1,4 @@
+# This file is generated from configure.ac by Autoconf.  DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/sh.
+
+libc_cv_gcc_unwind_find_fde=yes
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/sh/configure.ac
new file mode 100644
index 0000000000..85ef0f8ffd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/configure.ac
@@ -0,0 +1,4 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/sh.
+
+libc_cv_gcc_unwind_find_fde=yes
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/fcntl.c b/REORG.TODO/sysdeps/unix/sysv/linux/sh/fcntl.c
new file mode 100644
index 0000000000..ea951bc4f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/fcntl.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fcntl.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/fxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sh/fxstat.c
new file mode 100644
index 0000000000..4f219f0b9d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/fxstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/fxstatat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sh/fxstatat.c
new file mode 100644
index 0000000000..0f8b3135d8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/fxstatat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstatat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/kernel-features.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/kernel-features.h
new file mode 100644
index 0000000000..175b4f5433
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/kernel-features.h
@@ -0,0 +1,54 @@
+/* Set flags signalling availability of kernel features based on given
+   kernel version number.  SH version.
+   Copyright (C) 1999-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 __KERNEL_FEATURES_SH__
+# define __KERNEL_FEATURES_SH__
+
+/* SH uses socketcall.  */
+#define __ASSUME_SOCKETCALL		1
+
+/* These syscalls were added for SH in 2.6.37.  */
+#define __ASSUME_SOCKET_SYSCALL		1
+#define __ASSUME_BIND_SYSCALL		1
+#define __ASSUME_CONNECT_SYSCALL	1
+#define __ASSUME_LISTEN_SYSCALL		1
+#define __ASSUME_GETSOCKNAME_SYSCALL	1
+#define __ASSUME_GETPEERNAME_SYSCALL	1
+#define __ASSUME_SOCKETPAIR_SYSCALL	1
+#define __ASSUME_SEND_SYSCALL		1
+#define __ASSUME_RECV_SYSCALL		1
+#define __ASSUME_SHUTDOWN_SYSCALL	1
+#define __ASSUME_GETSOCKOPT_SYSCALL	1
+#define __ASSUME_SETSOCKOPT_SYSCALL	1
+
+#include_next <kernel-features.h>
+
+/* SH does not have a 64-bit inode field.  */
+#undef __ASSUME_ST_INO_64_BIT
+#define __ASSUME_ST_INO_64_BIT	0
+
+/* SH4 ABI does not really require argument alignment for 64-bits, but
+   the kernel interface for p{read,write}64 adds a dummy long argument
+   before the offset.  */
+#define __ASSUME_PRW_DUMMY_ARG	1
+
+/* sh only supports ipc syscall.  */
+#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/ld.abilist
new file mode 100644
index 0000000000..fc1c60ea17
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/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/sh/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libBrokenLocale.abilist
new file mode 100644
index 0000000000..21343df781
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/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/sh/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libanl.abilist
new file mode 100644
index 0000000000..edabfb436e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/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/sh/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libc.abilist
new file mode 100644
index 0000000000..f3a70a0f6f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libc.abilist
@@ -0,0 +1,2178 @@
+GCC_3.0 GCC_3.0 A
+GCC_3.0 _Unwind_Find_FDE F
+GCC_3.0 __deregister_frame_info_bases F
+GCC_3.0 __register_frame_info_bases F
+GCC_3.0 __register_frame_info_table_bases F
+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 0x21c
+GLIBC_2.12 _sys_nerr D 0x4
+GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 recvmmsg F
+GLIBC_2.12 sys_errlist D 0x21c
+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.13 prlimit64 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 fanotify_mark 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 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 secure_getenv F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 _Exit F
+GLIBC_2.2 _IO_2_1_stderr_ D 0x98
+GLIBC_2.2 _IO_2_1_stdin_ D 0x98
+GLIBC_2.2 _IO_2_1_stdout_ D 0x98
+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 __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 __deregister_frame_info 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 __finitel 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 __isinfl F
+GLIBC_2.2 __islower_l F
+GLIBC_2.2 __isnan F
+GLIBC_2.2 __isnanf F
+GLIBC_2.2 __isnanl 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 __register_frame_info F
+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 __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 0x1f4
+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 mcount 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 0x1f4
+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 0x1f8
+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 0x1f8
+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 0x210
+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 0x210
+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/sh/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libcrypt.abilist
new file mode 100644
index 0000000000..4db2639336
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/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/sh/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libdl.abilist
new file mode 100644
index 0000000000..5536f6e0a9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/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/sh/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libm.abilist
new file mode 100644
index 0000000000..6b24852b68
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/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 __finitel F
+GLIBC_2.2 __fpclassify F
+GLIBC_2.2 __fpclassifyf F
+GLIBC_2.2 __signbit F
+GLIBC_2.2 __signbitf 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/sh/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libnsl.abilist
new file mode 100644
index 0000000000..a23db2aeaf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/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/sh/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libpthread.abilist
new file mode 100644
index 0000000000..a73aa43c55
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/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/sh/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libresolv.abilist
new file mode 100644
index 0000000000..4d50e7c8c6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/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/sh/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/librt.abilist
new file mode 100644
index 0000000000..15e4418863
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/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/sh/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libthread_db.abilist
new file mode 100644
index 0000000000..a8a8c2c68d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/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/sh/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libutil.abilist
new file mode 100644
index 0000000000..89c67755c4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/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/sh/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/sh/localplt.data
new file mode 100644
index 0000000000..f1f5effc24
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/localplt.data
@@ -0,0 +1,21 @@
+# 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: _Unwind_Find_FDE
+libc.so: _exit
+libc.so: __errno_location
+libm.so: matherr
+# 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/sh/lockf64.c b/REORG.TODO/sysdeps/unix/sysv/linux/sh/lockf64.c
new file mode 100644
index 0000000000..a88f5a784a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/lockf64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/lockf64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h
new file mode 100644
index 0000000000..b8cc5b2c4c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h
@@ -0,0 +1,80 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifdef __ASSEMBLER__
+
+#define _IMP1 #1
+#define _IMM1 #-1
+#define _IMM4 #-4
+#define _IMM6 #-6
+#define _IMM8 #-8
+
+#define	INC(mem, reg) \
+	.align	2; \
+	mova	99f, r0; \
+	mov	r15, r1; \
+	mov	_IMM6, r15; \
+98:	mov.l	mem, reg; \
+	add	_IMP1, reg; \
+	mov.l	reg, mem; \
+99:	mov	r1, r15
+
+#define	DEC(mem, reg) \
+	.align	2; \
+	mova	99f, r0; \
+	mov	r15, r1; \
+	mov	_IMM6, r15; \
+98:	mov.l	mem, reg; \
+	add	_IMM1, reg; \
+	mov.l	reg, mem; \
+99:	mov	r1, r15
+
+#define	XADD(reg, mem, old, tmp) \
+	.align	2; \
+	mova	99f, r0; \
+	nop; \
+	mov	r15, r1; \
+	mov	_IMM8, r15; \
+98:	mov.l	mem, old; \
+	mov	reg, tmp; \
+	add	old, tmp; \
+	mov.l	tmp, mem; \
+99:	mov	r1, r15
+
+#define	XCHG(reg, mem, old) \
+	.align	2; \
+	mova	99f, r0; \
+	nop; \
+	mov	r15, r1; \
+	mov	_IMM4, r15; \
+98:	mov.l	mem, old; \
+	mov.l	reg, mem; \
+99:	mov	r1, r15
+
+#define	CMPXCHG(reg, mem, new, old) \
+	.align	2; \
+	mova	99f, r0; \
+	nop; \
+	mov	r15, r1; \
+	mov	_IMM8, r15; \
+98:	mov.l	mem, old; \
+	cmp/eq	old, reg; \
+	bf	99f; \
+	mov.l	new, mem; \
+99:	mov	r1, r15
+
+#endif  /* __ASSEMBLER__ */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/lxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sh/lxstat.c
new file mode 100644
index 0000000000..2371cd9719
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/lxstat.c
@@ -0,0 +1,2 @@
+#include <sysdeps/unix/sysv/linux/i386/lxstat.c>
+
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/makecontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/makecontext.S
new file mode 100644
index 0000000000..4506961007
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/makecontext.S
@@ -0,0 +1,160 @@
+/* Create new context.
+   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 <abort-instr.h>
+
+#include "ucontext_i.h"
+
+/* void __makecontext (struct ucontext *ucp, void (*func)(), int argc, ...);
+  __makecontext sets up a stack and registers for context to run a given
+  function.  The registers are set up like this:
+    r4-r7: parameters 1 to 4
+    r8	 : uc_link from ucontext structure
+    pc	 : (*func) pointer
+    pr	 : address of exitcode
+    r15	 : stack pointer for func.  */
+
+	.text
+	.align	5
+ENTRY(__makecontext)
+	mov	#4, r3
+	mov.l	@(oSS_SP,r4), r1	/* r1 <- ucb->stack_base */
+	mov.l	@(oSS_SIZE,r4), r2	/* r2 <- ucb->stack_size */
+	add	r1, r2			/* r2 <- stack_top */
+	cmp/gt	r3, r6			/* argc > 4? */
+	bf/s	1f
+	 shlr2	r2			/* r2 <- stack_top / 4 */
+	sub	r6, r2
+	add	r3, r2
+1:
+	shll2	r2		/* r2 <- stack_top - ((argc > 4) ? 4 * (argc - 4) : 0 */
+	mov	#oR15, r0
+	mov.l	@(oLINK,r4), r1
+	mov.l	r2, @(r0,r4)	/* ucp->r15 <- r2 */
+	mov.l	r1, @(oR8,r4)	/* ucp->r8 <- ucp->uc_link */
+	mov	#oPC, r0
+	mov.l	r5, @(r0,r4)	/* ucp->PC <- func */
+
+	cmp/pl	r6		/* argc > 0? */
+	bf/s	.L1
+	 dt	r6
+	mov.l	r7, @(oR4,r4)	/* ucp->r4 <- argv[0] */
+	cmp/pl	r6		/* argc > 1? */
+	bf/s	.L1
+	 dt	r6
+	mov.l	@(0,r15), r1
+	mov.l	r1, @(oR5,r4)	/* ucp->r5 <- argv[1] */
+	cmp/pl	r6		/* argc > 2? */
+	bf/s	.L1
+	 dt	r6
+	mov.l	@(4,r15), r1
+	mov.l	r1, @(oR6,r4)	/* ucp->r6 <- argv[2] */
+	cmp/pl	r6		/* argc > 3? */
+	bf/s	.L1
+	 dt	r6
+	mov.l	@(8,r15), r1
+	mov.l	r1, @(oR7,r4)	/* ucp->r7 <- argv[3] */
+	mov	#12,r0
+.L0:				/* Save remaining argv[] on the stack.  */
+	cmp/pl	r6
+	bf/s	.L1
+	 dt	r6
+	mov.l	@(r0,r15), r1
+	mov.l	r1, @r2
+	add	#4, r0
+	bra	.L0
+	 add	#4, r2
+.L1:
+#ifdef PIC
+	mova	.Lexitcode, r0
+#else
+	mov.l	.L2, r0
+#endif
+	add	#oPR, r4
+	rts
+	 mov.l	r0, @r4		/* ucp->pr <- exitcode */
+#ifndef PIC
+	.align	2
+.L2:
+	.long	.Lexitcode
+#endif
+	cfi_endproc
+
+	.align	5
+	cfi_startproc
+.Lexitcode:
+#ifdef PIC
+	mov.l	r12, @-r15
+	cfi_adjust_cfa_offset (4)
+	cfi_rel_offset (r12, 0)
+	mova	.Lgot, r0
+	mov.l	.Lgot, r12
+	add	r0, r12
+#endif
+	tst	r8, r8		/* ucb->uc_link == NULL? */
+	bt/s	2f
+	 mov	r8, r4		/* r4 <- ucb->uc_link */
+	mov.l	.Lsetcontext, r1
+	sts.l	pr, @-r15
+	cfi_adjust_cfa_offset (4)
+	cfi_rel_offset (pr, 0)
+#ifdef PIC
+	bsrf	r1
+.LPCS0:
+	 nop
+#else
+	jsr	@r1
+	 nop
+#endif
+        /* Restore to keep CFI/CFA balanced.  */
+	lds.l	@r15+, pr
+	cfi_adjust_cfa_offset (-4)
+	cfi_restore (pr)
+	/* If this returns (which can happen if the syscall fails) we'll exit
+	   the program with the return error value (-1).  */
+	mov	r0, r4
+
+2:
+	mov.l	.Lexit, r1
+#ifdef PIC
+	add	r12, r1
+#endif
+	jsr	@r1
+	 nop
+	/* The 'exit' call should never return.  In case it does cause the
+	   process to terminate.  */
+	ABORT_INSTRUCTION_ASM
+
+	.align	2
+#ifdef PIC
+.Lgot:
+	.long	_GLOBAL_OFFSET_TABLE_
+.Lsetcontext:
+	.long	__setcontext@PLT-(.LPCS0+2-(.))
+.Lexit:
+	.long	HIDDEN_JUMPTARGET(exit)@GOTOFF
+#else
+.Lsetcontext:
+	.long	__setcontext
+.Lexit:
+	.long	HIDDEN_JUMPTARGET(exit)
+#endif
+PSEUDO_END(__makecontext)
+
+weak_alias (__makecontext, makecontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/pipe.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/pipe.S
new file mode 100644
index 0000000000..994d11ad5c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/pipe.S
@@ -0,0 +1,42 @@
+/* Copyright (C) 1999-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>
+
+ENTRY (__libc_pipe)
+	mov	#+__NR_pipe, r3
+	trapa	#0x10
+	mov     r0, r3
+	mov	#-12, r2
+	shad	r2, r3
+	not	r3, r3			// r1=0 means r0 = -1 to -4095
+	tst	r3, r3			// i.e. error in linux
+	bt	1f
+	mov.l	r0, @r4
+	mov.l	r1, @(4, r4)
+	rts
+	 mov	#0, r0
+1:
+	SYSCALL_ERROR_HANDLER
+.Lpseudo_end:
+	rts
+	 nop
+PSEUDO_END (__libc_pipe)
+
+weak_alias (__libc_pipe, __pipe)
+libc_hidden_def (__pipe)
+weak_alias (__libc_pipe, pipe)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/profil-counter.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/profil-counter.h
new file mode 100644
index 0000000000..98db140e04
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/profil-counter.h
@@ -0,0 +1,32 @@
+/* Low-level statistical profiling support function.  Linux/SH 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/>.  */
+
+#include <signal.h>
+
+static void
+__profil_counter (int signo, int _a2, int _a3, int _a4, struct sigcontext sc)
+{
+  void *pc;
+  pc = (void *) sc.sc_pc;
+  profil_count (pc);
+
+  /* This is a hack to prevent the compiler from implementing the
+     above function call as a sibcall.  The sibcall would overwrite
+     the signal context.  */
+  asm volatile ("");
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/pt-vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/pt-vfork.S
new file mode 100644
index 0000000000..65cc3823ac
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/pt-vfork.S
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/alpha/pt-vfork.S>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/getcontext.S
new file mode 100644
index 0000000000..c09c16937c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/getcontext.S
@@ -0,0 +1,87 @@
+/* Save current context.
+   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 "ucontext_i.h"
+
+/*  int __getcontext (ucontext_t *uc);  */
+
+	.text
+	.align  5
+ENTRY(__getcontext)
+
+	/* Return value of getcontext.  R0 is the only register whose
+	   value is not preserved.  */
+	mov	#0, r0
+	mov.l	r0, @(oR0,r4)
+	mov.l	r1, @(oR1,r4)
+	mov.l	r2, @(oR2,r4)
+	mov.l	r3, @(oR3,r4)
+	mov.l	r4, @(oR4,r4)
+	mov.l	r5, @(oR5,r4)
+	mov.l	r6, @(oR6,r4)
+	mov.l	r7, @(oR7,r4)
+	mov	r4, r0
+	add	#(oMACL+4), r0
+	sts.l	macl, @-r0
+	sts.l	mach, @-r0
+	stc.l	gbr, @-r0
+
+	/* Save T flag to SR.  */
+	movt	r1
+	mov.l	r1, @-r0
+	sts.l	pr, @-r0
+
+	/* The return address of getcontext is the restart pc.  */
+	sts.l	pr, @-r0
+
+	mov.l	r15, @-r0
+	mov.l	r14, @-r0
+	mov.l	r13, @-r0
+	mov.l	r12, @-r0
+	mov.l	r11, @-r0
+	mov.l	r10, @-r0
+	mov.l	r9, @-r0
+	mov.l	r8, @-r0
+
+	/* sigprocmask (SIG_BLOCK, NULL, &uc->uc_sigmask).  */
+	mov	r4, r6
+	add	#oSIGMASK, r6
+	mov	#SIG_BLOCK, r4
+	mov	#0, r5
+	mov	#+SYS_ify(sigprocmask), r3
+	trapa	#0x13
+	mov     r0, r1
+	mov	#-12, r2
+	shad	r2, r1
+	not	r1, r1			// r1=0 means r0 = -1 to -4095
+	tst	r1, r1			// i.e. error in linux
+	bf	.Lgetcontext_end
+.Lsyscall_error:
+	SYSCALL_ERROR_HANDLER
+.Lgetcontext_end:
+	/* All done, return 0 for success.  */
+	mov	#0, r0
+.Lpseudo_end:
+	rts
+	 nop
+
+PSEUDO_END(__getcontext)
+
+weak_alias (__getcontext, getcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/register-dump.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/register-dump.h
new file mode 100644
index 0000000000..f8530c43c0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/register-dump.h
@@ -0,0 +1,150 @@
+/* Dump registers.
+   Copyright (C) 1999-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/uio.h>
+#include <_itoa.h>
+
+/* We will print the register dump in this format:
+
+  R0: XXXXXXXX   R1: XXXXXXXX   R2: XXXXXXXX   R3: XXXXXXXX
+  R4: XXXXXXXX   R5: XXXXXXXX   R6: XXXXXXXX   R7: XXXXXXXX
+  R8: XXXXXXXX   R9: XXXXXXXX  R10: XXXXXXXX  R11: XXXXXXXX
+ R12: XXXXXXXX  R13: XXXXXXXX  R14: XXXXXXXX  R15: XXXXXXXX
+
+MACL: XXXXXXXX MACH: XXXXXXXX
+
+  PC: XXXXXXXX   PR: XXXXXXXX  GBR: XXXXXXXX   SR: XXXXXXXX
+
+ FR0: XXXXXXXX  FR1: XXXXXXXX  FR2: XXXXXXXX  FR3: XXXXXXXX
+ FR4: XXXXXXXX  FR5: XXXXXXXX  FR6: XXXXXXXX  FR7: XXXXXXXX
+ FR8: XXXXXXXX  FR9: XXXXXXXX FR10: XXXXXXXX FR11: XXXXXXXX
+FR12: XXXXXXXX FR13: XXXXXXXX FR14: XXXXXXXX FR15: XXXXXXXX
+
+ XR0: XXXXXXXX  XR1: XXXXXXXX  XR2: XXXXXXXX  XR3: XXXXXXXX
+ XR4: XXXXXXXX  XR5: XXXXXXXX  XR6: XXXXXXXX  XR7: XXXXXXXX
+ XR8: XXXXXXXX  XR9: XXXXXXXX XR10: XXXXXXXX XR11: XXXXXXXX
+XR12: XXXXXXXX XR13: XXXXXXXX XR14: XXXXXXXX XR15: XXXXXXXX
+
+FPSCR: XXXXXXXX FPUL: XXXXXXXX
+
+ */
+
+static void
+hexvalue (unsigned long int value, char *buf, size_t len)
+{
+  char *cp = _itoa_word (value, buf + len, 16, 0);
+  while (cp > buf)
+    *--cp = '0';
+}
+
+static void
+register_dump (int fd, struct sigcontext *ctx)
+{
+  char regs[22][8];
+  struct iovec iov[112];
+  size_t nr = 0;
+
+#define ADD_STRING(str) \
+  iov[nr].iov_base = (char *) str;					      \
+  iov[nr].iov_len = strlen (str);					      \
+  ++nr
+#define ADD_MEM(str, len) \
+  iov[nr].iov_base = str;						      \
+  iov[nr].iov_len = len;						      \
+  ++nr
+
+  /* Generate strings of register contents.  */
+  hexvalue (ctx->sc_regs[0], regs[0], 8);
+  hexvalue (ctx->sc_regs[1], regs[1], 8);
+  hexvalue (ctx->sc_regs[2], regs[2], 8);
+  hexvalue (ctx->sc_regs[3], regs[3], 8);
+  hexvalue (ctx->sc_regs[4], regs[4], 8);
+  hexvalue (ctx->sc_regs[5], regs[5], 8);
+  hexvalue (ctx->sc_regs[6], regs[6], 8);
+  hexvalue (ctx->sc_regs[7], regs[7], 8);
+  hexvalue (ctx->sc_regs[8], regs[8], 8);
+  hexvalue (ctx->sc_regs[9], regs[9], 8);
+  hexvalue (ctx->sc_regs[10], regs[10], 8);
+  hexvalue (ctx->sc_regs[11], regs[11], 8);
+  hexvalue (ctx->sc_regs[12], regs[12], 8);
+  hexvalue (ctx->sc_regs[13], regs[13], 8);
+  hexvalue (ctx->sc_regs[14], regs[14], 8);
+  hexvalue (ctx->sc_regs[15], regs[15], 8);
+  hexvalue (ctx->sc_macl, regs[16], 8);
+  hexvalue (ctx->sc_mach, regs[17], 8);
+  hexvalue (ctx->sc_pc, regs[18], 8);
+  hexvalue (ctx->sc_pr, regs[19], 8);
+  hexvalue (ctx->sc_gbr, regs[20], 8);
+  hexvalue (ctx->sc_sr, regs[21], 8);
+
+  /* Generate the output.  */
+  ADD_STRING ("Register dump:\n\n  R0: ");
+  ADD_MEM (regs[0], 8);
+  ADD_STRING ("   R1: ");
+  ADD_MEM (regs[1], 8);
+  ADD_STRING ("   R2: ");
+  ADD_MEM (regs[2], 8);
+  ADD_STRING ("   R3: ");
+  ADD_MEM (regs[3], 8);
+  ADD_STRING ("\n  R4: ");
+  ADD_MEM (regs[4], 8);
+  ADD_STRING ("   R5: ");
+  ADD_MEM (regs[5], 8);
+  ADD_STRING ("   R6: ");
+  ADD_MEM (regs[6], 8);
+  ADD_STRING ("   R7: ");
+  ADD_MEM (regs[7], 8);
+  ADD_STRING ("\n  R8: ");
+  ADD_MEM (regs[8], 8);
+  ADD_STRING ("   R9: ");
+  ADD_MEM (regs[9], 8);
+  ADD_STRING ("  R10: ");
+  ADD_MEM (regs[10], 8);
+  ADD_STRING ("  R11: ");
+  ADD_MEM (regs[11], 8);
+  ADD_STRING ("\n R12: ");
+  ADD_MEM (regs[12], 8);
+  ADD_STRING ("  R13: ");
+  ADD_MEM (regs[13], 8);
+  ADD_STRING ("  R14: ");
+  ADD_MEM (regs[14], 8);
+  ADD_STRING ("  R15: ");
+  ADD_MEM (regs[15], 8);
+
+  ADD_STRING ("\n\nMACL: ");
+  ADD_MEM (regs[16], 8);
+  ADD_STRING (" MACH: ");
+  ADD_MEM (regs[17], 8);
+
+  ADD_STRING ("\n\n  PC: ");
+  ADD_MEM (regs[18], 8);
+  ADD_STRING ("   PR: ");
+  ADD_MEM (regs[19], 8);
+  ADD_STRING ("  GBR: ");
+  ADD_MEM (regs[20], 8);
+  ADD_STRING ("   SR: ");
+  ADD_MEM (regs[21], 8);
+
+  ADD_STRING ("\n");
+
+  /* Write the stuff out.  */
+  writev (fd, iov, nr);
+}
+
+
+#define REGISTER_DUMP register_dump (fd, &ctx)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/setcontext.S
new file mode 100644
index 0000000000..d97b064d2f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/setcontext.S
@@ -0,0 +1,99 @@
+/* Install given context.
+   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 "ucontext_i.h"
+
+/*  int __setcontext (const ucontext_t *uc);  */
+
+	.text
+	.align  5
+ENTRY(__setcontext)
+
+	mov	r4, r8
+
+	/* sigprocmask (SIG_SETMASK, &uc->uc_sigmask, NULL).  */
+	mov	r4, r5
+	add	#oSIGMASK, r5
+	mov	#SIG_SETMASK, r4
+	mov	#0, r6
+	mov	#+SYS_ify(sigprocmask), r3
+	trapa	#0x13
+	mov     r0, r1
+	mov	#-12, r2
+	shad	r2, r1
+	not	r1, r1			// r1=0 means r0 = -1 to -4095
+	tst	r1, r1			// i.e. error in linux
+	bf	.Lsetcontext_restore
+.Lsyscall_error:
+	SYSCALL_ERROR_HANDLER
+.Lpseudo_end:
+	rts
+	 nop
+
+.Lsetcontext_restore:
+	mov	r8, r0
+	add	#(oPC), r0
+	mov.l	@r0+, r2
+	lds.l	@r0+, pr
+
+	/* Restore T frag.  */
+	mov.l	@r0+, r1
+	shlr	r1
+	/* Skip GBR which is used for thread pointer.  */
+	add	#4, r0
+
+	lds.l	@r0+, mach
+	lds.l	@r0+, macl
+
+	mov	r8, r0
+	add	#(oR9), r0
+	mov.l	@r0+, r9
+	mov.l	@r0+, r10
+	mov.l	@r0+, r11
+	mov.l	@r0+, r12
+	mov.l	@r0+, r13
+	mov.l	@r0+, r14
+	mov.l	@r0+, r15
+
+	mov	r8, r0
+	mov.l	@(oR0,r0), r1
+	mov.l	r1, @-r15
+	cfi_adjust_cfa_offset(4)
+	cfi_rel_offset (r1, 0)
+	mov.l	r2, @-r15
+	cfi_adjust_cfa_offset(4)
+	cfi_rel_offset (r2, 0)
+
+	mov.l	@(oR1,r0), r1
+	mov.l	@(oR2,r0), r2
+	mov.l	@(oR3,r0), r3
+	mov.l	@(oR4,r0), r4
+	mov.l	@(oR5,r0), r5
+	mov.l	@(oR6,r0), r6
+	mov.l	@(oR7,r0), r7
+	mov.l	@(oR8,r0), r8
+	mov.l	@r15+, r0
+	cfi_adjust_cfa_offset(-4)
+	jmp	@r0
+	 mov.l	@r15+, r0
+
+PSEUDO_END(__setcontext)
+
+weak_alias (__setcontext, setcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S
new file mode 100644
index 0000000000..986fcee47a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S
@@ -0,0 +1,132 @@
+/* Save current context and install the given one.
+   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 "ucontext_i.h"
+
+/*  int __swapcontext (ucontext_t *ouc, const ucontext_t *uc);  */
+
+	.text
+	.align  5
+ENTRY(__swapcontext)
+
+	/* Return value of getcontext.  R0 is the only register whose
+	   value is not preserved.  */
+	mov	#0, r0
+	mov.l	r0, @(oR0,r4)
+	mov.l	r1, @(oR1,r4)
+	mov.l	r2, @(oR2,r4)
+	mov.l	r3, @(oR3,r4)
+	mov.l	r4, @(oR4,r4)
+	mov.l	r5, @(oR5,r4)
+	mov.l	r6, @(oR6,r4)
+	mov.l	r7, @(oR7,r4)
+	mov	r4, r0
+	add	#(oMACL+4), r0
+	sts.l	macl, @-r0
+	sts.l	mach, @-r0
+	stc.l	gbr, @-r0
+
+	/* Save T flag to SR.  */
+	movt	r1
+	mov.l	r1, @-r0
+	sts.l	pr, @-r0
+
+	/* The return address of getcontext is the restart pc.  */
+	sts.l	pr, @-r0
+
+	mov.l	r15, @-r0
+	mov.l	r14, @-r0
+	mov.l	r13, @-r0
+	mov.l	r12, @-r0
+	mov.l	r11, @-r0
+	mov.l	r10, @-r0
+	mov.l	r9, @-r0
+	mov.l	r8, @-r0
+
+	mov	r5, r8
+
+	/* sigprocmask (SIG_SETMASK, &uc->uc_sigmask, &ouc->uc_sigmask).  */
+	add	#oSIGMASK, r5
+	mov	r4, r6
+	add	#oSIGMASK, r6
+	mov	#SIG_SETMASK, r4
+	mov	#+SYS_ify(sigprocmask), r3
+	trapa	#0x13
+	mov     r0, r1
+	mov	#-12, r2
+	shad	r2, r1
+	not	r1, r1			// r1=0 means r0 = -1 to -4095
+	tst	r1, r1			// i.e. error in linux
+	bf	.Lswapcontext_restore
+.Lsyscall_error:
+	SYSCALL_ERROR_HANDLER
+.Lpseudo_end:
+	rts
+	 nop
+.Lswapcontext_restore:
+	mov	r8, r0
+	add	#(oPC), r0
+	mov.l	@r0+, r2
+	lds.l	@r0+, pr
+
+	/* Restore T frag.  */
+	mov.l	@r0+, r1
+	shlr	r1
+	/* Skip GBR which is used for thread pointer.  */
+	add	#4, r0
+
+	lds.l	@r0+, mach
+	lds.l	@r0+, macl
+
+	mov	r8, r0
+	add	#(oR9), r0
+	mov.l	@r0+, r9
+	mov.l	@r0+, r10
+	mov.l	@r0+, r11
+	mov.l	@r0+, r12
+	mov.l	@r0+, r13
+	mov.l	@r0+, r14
+	mov.l	@r0+, r15
+
+	mov	r8, r0
+	mov.l	@(oR0,r0), r1
+	mov.l	r1, @-r15
+	cfi_adjust_cfa_offset(4)
+	cfi_rel_offset (r1, 0)
+	mov.l	r2, @-r15
+	cfi_adjust_cfa_offset(4)
+	cfi_rel_offset (r2, 0)
+
+	mov.l	@(oR1,r0), r1
+	mov.l	@(oR2,r0), r2
+	mov.l	@(oR3,r0), r3
+	mov.l	@(oR4,r0), r4
+	mov.l	@(oR5,r0), r5
+	mov.l	@(oR6,r0), r6
+	mov.l	@(oR7,r0), r7
+	mov.l	@(oR8,r0), r8
+	mov.l	@r15+, r0
+	cfi_adjust_cfa_offset(-4)
+	jmp	@r0
+	 mov.l	@r15+, r0
+
+PSEUDO_END(__swapcontext)
+
+weak_alias (__swapcontext, swapcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym
new file mode 100644
index 0000000000..25f914a93b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym
@@ -0,0 +1,38 @@
+#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)
+
+oLINK		ucontext (uc_link)
+oSS_SP		ucontext (uc_stack.ss_sp)
+oSS_SIZE	ucontext (uc_stack.ss_size)
+oR0		mcontext (gregs[REG_R0])
+oR1		mcontext (gregs[REG_R1])
+oR2		mcontext (gregs[REG_R2])
+oR3		mcontext (gregs[REG_R3])
+oR4		mcontext (gregs[REG_R4])
+oR5		mcontext (gregs[REG_R5])
+oR6		mcontext (gregs[REG_R6])
+oR7		mcontext (gregs[REG_R7])
+oR8		mcontext (gregs[REG_R8])
+oR9		mcontext (gregs[REG_R9])
+oR10		mcontext (gregs[REG_R10])
+oR11		mcontext (gregs[REG_R11])
+oR12		mcontext (gregs[REG_R12])
+oR13		mcontext (gregs[REG_R13])
+oR14		mcontext (gregs[REG_R14])
+oR15		mcontext (gregs[REG_R15])
+oPC		mcontext (pc)
+oPR		mcontext (pr)
+oSR		mcontext (sr)
+oGBR		mcontext (gbr)
+oMACH		mcontext (mach)
+oMACL		mcontext (macl)
+oSIGMASK	ucontext (uc_sigmask)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/getcontext.S
new file mode 100644
index 0000000000..40cabd1d91
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/getcontext.S
@@ -0,0 +1,132 @@
+/* Save current context.
+   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 "ucontext_i.h"
+
+/*  int __getcontext (ucontext_t *uc);  */
+
+	.text
+	.align  5
+ENTRY(__getcontext)
+
+	/* Return value of getcontext.  R0 is the only register whose
+	   value is not preserved.  */
+	mov	#0, r0
+	mov.l	r0, @(oR0,r4)
+	mov.l	r1, @(oR1,r4)
+	mov.l	r2, @(oR2,r4)
+	mov.l	r3, @(oR3,r4)
+	mov.l	r4, @(oR4,r4)
+	mov.l	r5, @(oR5,r4)
+	mov.l	r6, @(oR6,r4)
+	mov.l	r7, @(oR7,r4)
+	mov	r4, r0
+	add	#(oMACL+4), r0
+	sts.l	macl, @-r0
+	sts.l	mach, @-r0
+	stc.l	gbr, @-r0
+
+	/* Save T flag to SR.  */
+	movt	r1
+	mov.l	r1, @-r0
+	sts.l	pr, @-r0
+
+	/* The return address of getcontext is the restart pc.  */
+	sts.l	pr, @-r0
+
+	mov.l	r15, @-r0
+	mov.l	r14, @-r0
+	mov.l	r13, @-r0
+	mov.l	r12, @-r0
+	mov.l	r11, @-r0
+	mov.l	r10, @-r0
+	mov.l	r9, @-r0
+	mov.l	r8, @-r0
+
+#ifdef __SH_FPU_ANY__
+	mov	r4, r0
+	/* We need 2 add instruction because oFPUL+4 > 127.  */
+	add	#124,r0
+	add	#(oFPUL+4-124),r0
+	sts.l	fpul, @-r0
+	sts.l	fpscr, @-r0
+	frchg
+	fmov.s	fr15, @-r0
+	fmov.s	fr14, @-r0
+	fmov.s	fr13, @-r0
+	fmov.s	fr12, @-r0
+	fmov.s	fr11, @-r0
+	fmov.s	fr10, @-r0
+	fmov.s	fr9, @-r0
+	fmov.s	fr8, @-r0
+	fmov.s	fr7, @-r0
+	fmov.s	fr6, @-r0
+	fmov.s	fr5, @-r0
+	fmov.s	fr4, @-r0
+	fmov.s	fr3, @-r0
+	fmov.s	fr2, @-r0
+	fmov.s	fr1, @-r0
+	fmov.s	fr0, @-r0
+	frchg
+	fmov.s	fr15, @-r0
+	fmov.s	fr14, @-r0
+	fmov.s	fr13, @-r0
+	fmov.s	fr12, @-r0
+	fmov.s	fr11, @-r0
+	fmov.s	fr10, @-r0
+	fmov.s	fr9, @-r0
+	fmov.s	fr8, @-r0
+	fmov.s	fr7, @-r0
+	fmov.s	fr6, @-r0
+	fmov.s	fr5, @-r0
+	fmov.s	fr4, @-r0
+	fmov.s	fr3, @-r0
+	fmov.s	fr2, @-r0
+	fmov.s	fr1, @-r0
+	fmov.s	fr0, @-r0
+#endif /* __SH_FPU_ANY__ */
+
+	/* sigprocmask (SIG_BLOCK, NULL, &uc->uc_sigmask).  */
+	mov	r4, r6
+	/* We need 2 add instruction because oSIGMASK > 127.  */
+	add	#(oSIGMASK/2), r6
+	add	#(oSIGMASK/2), r6
+	mov	#SIG_BLOCK, r4
+	mov	#0, r5
+	mov	#+SYS_ify(sigprocmask), r3
+	trapa	#0x13
+	mov     r0, r1
+	mov	#-12, r2
+	shad	r2, r1
+	not	r1, r1			// r1=0 means r0 = -1 to -4095
+	tst	r1, r1			// i.e. error in linux
+	bf	.Lgetcontext_end
+.Lsyscall_error:
+	SYSCALL_ERROR_HANDLER
+.Lgetcontext_end:
+	/* All done, return 0 for success.  */
+	mov	#0, r0
+.Lpseudo_end:
+	rts
+	 nop
+
+PSEUDO_END(__getcontext)
+
+weak_alias (__getcontext, getcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/register-dump.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/register-dump.h
new file mode 100644
index 0000000000..5595e90d91
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/register-dump.h
@@ -0,0 +1,263 @@
+/* Dump registers.
+   Copyright (C) 1999-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/uio.h>
+#include <_itoa.h>
+
+/* We will print the register dump in this format:
+
+  R0: XXXXXXXX   R1: XXXXXXXX   R2: XXXXXXXX   R3: XXXXXXXX
+  R4: XXXXXXXX   R5: XXXXXXXX   R6: XXXXXXXX   R7: XXXXXXXX
+  R8: XXXXXXXX   R9: XXXXXXXX  R10: XXXXXXXX  R11: XXXXXXXX
+ R12: XXXXXXXX  R13: XXXXXXXX  R14: XXXXXXXX  R15: XXXXXXXX
+
+MACL: XXXXXXXX MACH: XXXXXXXX
+
+  PC: XXXXXXXX   PR: XXXXXXXX  GBR: XXXXXXXX   SR: XXXXXXXX
+
+ FR0: XXXXXXXX  FR1: XXXXXXXX  FR2: XXXXXXXX  FR3: XXXXXXXX
+ FR4: XXXXXXXX  FR5: XXXXXXXX  FR6: XXXXXXXX  FR7: XXXXXXXX
+ FR8: XXXXXXXX  FR9: XXXXXXXX FR10: XXXXXXXX FR11: XXXXXXXX
+FR12: XXXXXXXX FR13: XXXXXXXX FR14: XXXXXXXX FR15: XXXXXXXX
+
+ XR0: XXXXXXXX  XR1: XXXXXXXX  XR2: XXXXXXXX  XR3: XXXXXXXX
+ XR4: XXXXXXXX  XR5: XXXXXXXX  XR6: XXXXXXXX  XR7: XXXXXXXX
+ XR8: XXXXXXXX  XR9: XXXXXXXX XR10: XXXXXXXX XR11: XXXXXXXX
+XR12: XXXXXXXX XR13: XXXXXXXX XR14: XXXXXXXX XR15: XXXXXXXX
+
+FPSCR: XXXXXXXX FPUL: XXXXXXXX
+
+ */
+
+static void
+hexvalue (unsigned long int value, char *buf, size_t len)
+{
+  char *cp = _itoa_word (value, buf + len, 16, 0);
+  while (cp > buf)
+    *--cp = '0';
+}
+
+static void
+register_dump (int fd, struct sigcontext *ctx)
+{
+  char regs[22][8];
+  struct iovec iov[22 * 2 + 34 * 2 + 2];
+  size_t nr = 0;
+
+#define ADD_STRING(str) \
+  iov[nr].iov_base = (char *) str;					      \
+  iov[nr].iov_len = strlen (str);					      \
+  ++nr
+#define ADD_MEM(str, len) \
+  iov[nr].iov_base = str;						      \
+  iov[nr].iov_len = len;						      \
+  ++nr
+
+  /* Generate strings of register contents.  */
+  hexvalue (ctx->sc_regs[0], regs[0], 8);
+  hexvalue (ctx->sc_regs[1], regs[1], 8);
+  hexvalue (ctx->sc_regs[2], regs[2], 8);
+  hexvalue (ctx->sc_regs[3], regs[3], 8);
+  hexvalue (ctx->sc_regs[4], regs[4], 8);
+  hexvalue (ctx->sc_regs[5], regs[5], 8);
+  hexvalue (ctx->sc_regs[6], regs[6], 8);
+  hexvalue (ctx->sc_regs[7], regs[7], 8);
+  hexvalue (ctx->sc_regs[8], regs[8], 8);
+  hexvalue (ctx->sc_regs[9], regs[9], 8);
+  hexvalue (ctx->sc_regs[10], regs[10], 8);
+  hexvalue (ctx->sc_regs[11], regs[11], 8);
+  hexvalue (ctx->sc_regs[12], regs[12], 8);
+  hexvalue (ctx->sc_regs[13], regs[13], 8);
+  hexvalue (ctx->sc_regs[14], regs[14], 8);
+  hexvalue (ctx->sc_regs[15], regs[15], 8);
+  hexvalue (ctx->sc_macl, regs[16], 8);
+  hexvalue (ctx->sc_mach, regs[17], 8);
+  hexvalue (ctx->sc_pc, regs[18], 8);
+  hexvalue (ctx->sc_pr, regs[19], 8);
+  hexvalue (ctx->sc_gbr, regs[20], 8);
+  hexvalue (ctx->sc_sr, regs[21], 8);
+
+  /* Generate the output.  */
+  ADD_STRING ("Register dump:\n\n  R0: ");
+  ADD_MEM (regs[0], 8);
+  ADD_STRING ("   R1: ");
+  ADD_MEM (regs[1], 8);
+  ADD_STRING ("   R2: ");
+  ADD_MEM (regs[2], 8);
+  ADD_STRING ("   R3: ");
+  ADD_MEM (regs[3], 8);
+  ADD_STRING ("\n  R4: ");
+  ADD_MEM (regs[4], 8);
+  ADD_STRING ("   R5: ");
+  ADD_MEM (regs[5], 8);
+  ADD_STRING ("   R6: ");
+  ADD_MEM (regs[6], 8);
+  ADD_STRING ("   R7: ");
+  ADD_MEM (regs[7], 8);
+  ADD_STRING ("\n  R8: ");
+  ADD_MEM (regs[8], 8);
+  ADD_STRING ("   R9: ");
+  ADD_MEM (regs[9], 8);
+  ADD_STRING ("  R10: ");
+  ADD_MEM (regs[10], 8);
+  ADD_STRING ("  R11: ");
+  ADD_MEM (regs[11], 8);
+  ADD_STRING ("\n R12: ");
+  ADD_MEM (regs[12], 8);
+  ADD_STRING ("  R13: ");
+  ADD_MEM (regs[13], 8);
+  ADD_STRING ("  R14: ");
+  ADD_MEM (regs[14], 8);
+  ADD_STRING ("  R15: ");
+  ADD_MEM (regs[15], 8);
+
+  ADD_STRING ("\n\nMACL: ");
+  ADD_MEM (regs[16], 8);
+  ADD_STRING (" MACH: ");
+  ADD_MEM (regs[17], 8);
+
+  ADD_STRING ("\n\n  PC: ");
+  ADD_MEM (regs[18], 8);
+  ADD_STRING ("   PR: ");
+  ADD_MEM (regs[19], 8);
+  ADD_STRING ("  GBR: ");
+  ADD_MEM (regs[20], 8);
+  ADD_STRING ("   SR: ");
+  ADD_MEM (regs[21], 8);
+
+  ADD_STRING ("\n");
+
+#ifdef __SH_FPU_ANY__
+  char fpregs[34][8];
+  if (ctx->sc_ownedfp != 0)
+    {
+      hexvalue (ctx->sc_fpregs[0], fpregs[0], 8);
+      hexvalue (ctx->sc_fpregs[1], fpregs[1], 8);
+      hexvalue (ctx->sc_fpregs[2], fpregs[2], 8);
+      hexvalue (ctx->sc_fpregs[3], fpregs[3], 8);
+      hexvalue (ctx->sc_fpregs[4], fpregs[4], 8);
+      hexvalue (ctx->sc_fpregs[5], fpregs[5], 8);
+      hexvalue (ctx->sc_fpregs[6], fpregs[6], 8);
+      hexvalue (ctx->sc_fpregs[7], fpregs[7], 8);
+      hexvalue (ctx->sc_fpregs[8], fpregs[8], 8);
+      hexvalue (ctx->sc_fpregs[9], fpregs[9], 8);
+      hexvalue (ctx->sc_fpregs[10], fpregs[10], 8);
+      hexvalue (ctx->sc_fpregs[11], fpregs[11], 8);
+      hexvalue (ctx->sc_fpregs[12], fpregs[12], 8);
+      hexvalue (ctx->sc_fpregs[13], fpregs[13], 8);
+      hexvalue (ctx->sc_fpregs[14], fpregs[14], 8);
+      hexvalue (ctx->sc_fpregs[15], fpregs[15], 8);
+      hexvalue (ctx->sc_xfpregs[0], fpregs[16], 8);
+      hexvalue (ctx->sc_xfpregs[1], fpregs[17], 8);
+      hexvalue (ctx->sc_xfpregs[2], fpregs[18], 8);
+      hexvalue (ctx->sc_xfpregs[3], fpregs[19], 8);
+      hexvalue (ctx->sc_xfpregs[4], fpregs[20], 8);
+      hexvalue (ctx->sc_xfpregs[5], fpregs[21], 8);
+      hexvalue (ctx->sc_xfpregs[6], fpregs[22], 8);
+      hexvalue (ctx->sc_xfpregs[7], fpregs[23], 8);
+      hexvalue (ctx->sc_xfpregs[8], fpregs[24], 8);
+      hexvalue (ctx->sc_xfpregs[9], fpregs[25], 8);
+      hexvalue (ctx->sc_xfpregs[10], fpregs[26], 8);
+      hexvalue (ctx->sc_xfpregs[11], fpregs[27], 8);
+      hexvalue (ctx->sc_xfpregs[12], fpregs[28], 8);
+      hexvalue (ctx->sc_xfpregs[13], fpregs[29], 8);
+      hexvalue (ctx->sc_xfpregs[14], fpregs[30], 8);
+      hexvalue (ctx->sc_xfpregs[15], fpregs[31], 8);
+      hexvalue (ctx->sc_fpscr, fpregs[32], 8);
+      hexvalue (ctx->sc_fpul, fpregs[33], 8);
+
+      ADD_STRING ("\n\n FR0: ");
+      ADD_MEM (fpregs[0], 8);
+      ADD_STRING ("  FR1: ");
+      ADD_MEM (fpregs[1], 8);
+      ADD_STRING ("  FR2: ");
+      ADD_MEM (fpregs[2], 8);
+      ADD_STRING ("  FR3: ");
+      ADD_MEM (fpregs[3], 8);
+      ADD_STRING ("\n FR4: ");
+      ADD_MEM (fpregs[4], 8);
+      ADD_STRING ("  FR5: ");
+      ADD_MEM (fpregs[5], 8);
+      ADD_STRING ("  FR6: ");
+      ADD_MEM (fpregs[6], 8);
+      ADD_STRING ("  FR7: ");
+      ADD_MEM (fpregs[7], 8);
+      ADD_STRING ("\n FR8: ");
+      ADD_MEM (fpregs[8], 8);
+      ADD_STRING ("  FR9: ");
+      ADD_MEM (fpregs[9], 8);
+      ADD_STRING (" FR10: ");
+      ADD_MEM (fpregs[10], 8);
+      ADD_STRING (" FR11: ");
+      ADD_MEM (fpregs[11], 8);
+      ADD_STRING ("\nFR12: ");
+      ADD_MEM (fpregs[12], 8);
+      ADD_STRING (" FR13: ");
+      ADD_MEM (fpregs[13], 8);
+      ADD_STRING (" FR14: ");
+      ADD_MEM (fpregs[14], 8);
+      ADD_STRING (" FR15: ");
+      ADD_MEM (fpregs[15], 8);
+      ADD_STRING ("\n\n XR0: ");
+      ADD_MEM (fpregs[16], 8);
+      ADD_STRING ("  XR1: ");
+      ADD_MEM (fpregs[17], 8);
+      ADD_STRING ("  XR2: ");
+      ADD_MEM (fpregs[18], 8);
+      ADD_STRING ("  XR3: ");
+      ADD_MEM (fpregs[19], 8);
+      ADD_STRING ("\n XR4: ");
+      ADD_MEM (fpregs[20], 8);
+      ADD_STRING ("  XR5: ");
+      ADD_MEM (fpregs[21], 8);
+      ADD_STRING ("  XR6: ");
+      ADD_MEM (fpregs[22], 8);
+      ADD_STRING ("  XR7: ");
+      ADD_MEM (fpregs[23], 8);
+      ADD_STRING ("\n XR8: ");
+      ADD_MEM (fpregs[24], 8);
+      ADD_STRING ("  XR9: ");
+      ADD_MEM (fpregs[25], 8);
+      ADD_STRING (" XR10: ");
+      ADD_MEM (fpregs[26], 8);
+      ADD_STRING (" XR11: ");
+      ADD_MEM (fpregs[27], 8);
+      ADD_STRING ("\nXR12: ");
+      ADD_MEM (fpregs[28], 8);
+      ADD_STRING (" XR13: ");
+      ADD_MEM (fpregs[29], 8);
+      ADD_STRING (" XR14: ");
+      ADD_MEM (fpregs[30], 8);
+      ADD_STRING (" XR15: ");
+      ADD_MEM (fpregs[31], 8);
+
+      ADD_STRING ("\n\nFPSCR: ");
+      ADD_MEM (fpregs[32], 8);
+      ADD_STRING (" FPUL: ");
+      ADD_MEM (fpregs[33], 8);
+
+      ADD_STRING ("\n");
+    }
+#endif /* __SH_FPU_ANY__  */
+
+  /* Write the stuff out.  */
+  writev (fd, iov, nr);
+}
+
+
+#define REGISTER_DUMP register_dump (fd, &ctx)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/setcontext.S
new file mode 100644
index 0000000000..e6672a6585
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/setcontext.S
@@ -0,0 +1,141 @@
+/* Install given context.
+   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 "ucontext_i.h"
+
+/*  int __setcontext (const ucontext_t *uc);  */
+
+	.text
+	.align  5
+ENTRY(__setcontext)
+
+	mov	r4, r8
+
+	/* sigprocmask (SIG_SETMASK, &uc->uc_sigmask, NULL).  */
+	mov	r4, r5
+	add	#(oSIGMASK/2), r5
+	add	#(oSIGMASK/2), r5
+	mov	#SIG_SETMASK, r4
+	mov	#0, r6
+	mov	#+SYS_ify(sigprocmask), r3
+	trapa	#0x13
+	mov     r0, r1
+	mov	#-12, r2
+	shad	r2, r1
+	not	r1, r1			// r1=0 means r0 = -1 to -4095
+	tst	r1, r1			// i.e. error in linux
+	bf	.Lsetcontext_restore
+.Lsyscall_error:
+	SYSCALL_ERROR_HANDLER
+.Lpseudo_end:
+	rts
+	 nop
+
+.Lsetcontext_restore:
+#ifdef __SH_FPU_ANY__
+	mov	r8, r0
+	add	#(oFR0),r0
+	fmov.s	@r0+, fr0
+	fmov.s	@r0+, fr1
+	fmov.s	@r0+, fr2
+	fmov.s	@r0+, fr3
+	fmov.s	@r0+, fr4
+	fmov.s	@r0+, fr5
+	fmov.s	@r0+, fr6
+	fmov.s	@r0+, fr7
+	fmov.s	@r0+, fr8
+	fmov.s	@r0+, fr9
+	fmov.s	@r0+, fr10
+	fmov.s	@r0+, fr11
+	fmov.s	@r0+, fr12
+	fmov.s	@r0+, fr13
+	fmov.s	@r0+, fr14
+	fmov.s	@r0+, fr15
+	frchg
+	fmov.s	@r0+, fr0
+	fmov.s	@r0+, fr1
+	fmov.s	@r0+, fr2
+	fmov.s	@r0+, fr3
+	fmov.s	@r0+, fr4
+	fmov.s	@r0+, fr5
+	fmov.s	@r0+, fr6
+	fmov.s	@r0+, fr7
+	fmov.s	@r0+, fr8
+	fmov.s	@r0+, fr9
+	fmov.s	@r0+, fr10
+	fmov.s	@r0+, fr11
+	fmov.s	@r0+, fr12
+	fmov.s	@r0+, fr13
+	fmov.s	@r0+, fr14
+	fmov.s	@r0+, fr15
+	frchg
+	lds.l	@r0+, fpscr
+	lds.l	@r0+, fpul
+#endif /* __SH_FPU_ANY__ */
+
+	mov	r8, r0
+	add	#(oPC), r0
+	mov.l	@r0+, r2
+	lds.l	@r0+, pr
+
+	/* Restore T frag.  */
+	mov.l	@r0+, r1
+	shlr	r1
+	/* Skip GBR which is used for thread pointer.  */
+	add	#4, r0
+
+	lds.l	@r0+, mach
+	lds.l	@r0+, macl
+
+	mov	r8, r0
+	add	#(oR9), r0
+	mov.l	@r0+, r9
+	mov.l	@r0+, r10
+	mov.l	@r0+, r11
+	mov.l	@r0+, r12
+	mov.l	@r0+, r13
+	mov.l	@r0+, r14
+	mov.l	@r0+, r15
+
+	mov	r8, r0
+	mov.l	@(oR0,r0), r1
+	mov.l	r1, @-r15
+	cfi_adjust_cfa_offset(4)
+	cfi_rel_offset (r1, 0)
+	mov.l	r2, @-r15
+	cfi_adjust_cfa_offset(4)
+	cfi_rel_offset (r2, 0)
+
+	mov.l	@(oR1,r0), r1
+	mov.l	@(oR2,r0), r2
+	mov.l	@(oR3,r0), r3
+	mov.l	@(oR4,r0), r4
+	mov.l	@(oR5,r0), r5
+	mov.l	@(oR6,r0), r6
+	mov.l	@(oR7,r0), r7
+	mov.l	@(oR8,r0), r8
+	mov.l	@r15+, r0
+	cfi_adjust_cfa_offset(-4)
+	jmp	@r0
+	 mov.l	@r15+, r0
+
+PSEUDO_END(__setcontext)
+
+weak_alias (__setcontext, setcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S
new file mode 100644
index 0000000000..5f96790be1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S
@@ -0,0 +1,218 @@
+/* Save current context and install the given one.
+   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 "ucontext_i.h"
+
+/*  int __swapcontext (ucontext_t *ouc, const ucontext_t *uc);  */
+
+	.text
+	.align  5
+ENTRY(__swapcontext)
+
+	/* Return value of getcontext.  R0 is the only register whose
+	   value is not preserved.  */
+	mov	#0, r0
+	mov.l	r0, @(oR0,r4)
+	mov.l	r1, @(oR1,r4)
+	mov.l	r2, @(oR2,r4)
+	mov.l	r3, @(oR3,r4)
+	mov.l	r4, @(oR4,r4)
+	mov.l	r5, @(oR5,r4)
+	mov.l	r6, @(oR6,r4)
+	mov.l	r7, @(oR7,r4)
+	mov	r4, r0
+	add	#(oMACL+4), r0
+	sts.l	macl, @-r0
+	sts.l	mach, @-r0
+	stc.l	gbr, @-r0
+
+	/* Save T flag to SR.  */
+	movt	r1
+	mov.l	r1, @-r0
+	sts.l	pr, @-r0
+
+	/* The return address of getcontext is the restart pc.  */
+	sts.l	pr, @-r0
+
+	mov.l	r15, @-r0
+	mov.l	r14, @-r0
+	mov.l	r13, @-r0
+	mov.l	r12, @-r0
+	mov.l	r11, @-r0
+	mov.l	r10, @-r0
+	mov.l	r9, @-r0
+	mov.l	r8, @-r0
+
+#ifdef __SH_FPU_ANY__
+	mov	r4, r0
+	/* We need 2 add instruction because oFPUL+4 >= 127.  */
+	add	#124,r0
+	add	#(oFPUL+4-124),r0
+	sts.l	fpul, @-r0
+	sts.l	fpscr, @-r0
+	frchg
+	fmov.s	fr15, @-r0
+	fmov.s	fr14, @-r0
+	fmov.s	fr13, @-r0
+	fmov.s	fr12, @-r0
+	fmov.s	fr11, @-r0
+	fmov.s	fr10, @-r0
+	fmov.s	fr9, @-r0
+	fmov.s	fr8, @-r0
+	fmov.s	fr7, @-r0
+	fmov.s	fr6, @-r0
+	fmov.s	fr5, @-r0
+	fmov.s	fr4, @-r0
+	fmov.s	fr3, @-r0
+	fmov.s	fr2, @-r0
+	fmov.s	fr1, @-r0
+	fmov.s	fr0, @-r0
+	frchg
+	fmov.s	fr15, @-r0
+	fmov.s	fr14, @-r0
+	fmov.s	fr13, @-r0
+	fmov.s	fr12, @-r0
+	fmov.s	fr11, @-r0
+	fmov.s	fr10, @-r0
+	fmov.s	fr9, @-r0
+	fmov.s	fr8, @-r0
+	fmov.s	fr7, @-r0
+	fmov.s	fr6, @-r0
+	fmov.s	fr5, @-r0
+	fmov.s	fr4, @-r0
+	fmov.s	fr3, @-r0
+	fmov.s	fr2, @-r0
+	fmov.s	fr1, @-r0
+	fmov.s	fr0, @-r0
+#endif /* __SH_FPU_ANY__ */
+
+	mov	r5, r8
+
+	/* sigprocmask (SIG_SETMASK, &uc->uc_sigmask, &ouc->uc_sigmask).  */
+	mov	#oSIGMASK, r1
+	extu.b	r1, r1
+	add	r1, r5
+	mov	r4, r6
+	add	r1, r6
+	mov	#SIG_SETMASK, r4
+	mov	#+SYS_ify(sigprocmask), r3
+	trapa	#0x13
+	mov     r0, r1
+	mov	#-12, r2
+	shad	r2, r1
+	not	r1, r1			// r1=0 means r0 = -1 to -4095
+	tst	r1, r1			// i.e. error in linux
+	bf	.Lswapcontext_restore
+.Lsyscall_error:
+	SYSCALL_ERROR_HANDLER
+.Lpseudo_end:
+	rts
+	 nop
+.Lswapcontext_restore:
+#ifdef __SH_FPU_ANY__
+	mov	r8, r0
+	add	#(oFR0),r0
+	fmov.s	@r0+, fr0
+	fmov.s	@r0+, fr1
+	fmov.s	@r0+, fr2
+	fmov.s	@r0+, fr3
+	fmov.s	@r0+, fr4
+	fmov.s	@r0+, fr5
+	fmov.s	@r0+, fr6
+	fmov.s	@r0+, fr7
+	fmov.s	@r0+, fr8
+	fmov.s	@r0+, fr9
+	fmov.s	@r0+, fr10
+	fmov.s	@r0+, fr11
+	fmov.s	@r0+, fr12
+	fmov.s	@r0+, fr13
+	fmov.s	@r0+, fr14
+	fmov.s	@r0+, fr15
+	frchg
+	fmov.s	@r0+, fr0
+	fmov.s	@r0+, fr1
+	fmov.s	@r0+, fr2
+	fmov.s	@r0+, fr3
+	fmov.s	@r0+, fr4
+	fmov.s	@r0+, fr5
+	fmov.s	@r0+, fr6
+	fmov.s	@r0+, fr7
+	fmov.s	@r0+, fr8
+	fmov.s	@r0+, fr9
+	fmov.s	@r0+, fr10
+	fmov.s	@r0+, fr11
+	fmov.s	@r0+, fr12
+	fmov.s	@r0+, fr13
+	fmov.s	@r0+, fr14
+	fmov.s	@r0+, fr15
+	frchg
+	lds.l	@r0+, fpscr
+	lds.l	@r0+, fpul
+#endif /* __SH_FPU_ANY__ */
+
+	mov	r8, r0
+	add	#(oPC), r0
+	mov.l	@r0+, r2
+	lds.l	@r0+, pr
+
+	/* Restore T frag.  */
+	mov.l	@r0+, r1
+	shlr	r1
+	/* Skip GBR which is used for thread pointer.  */
+	add	#4, r0
+
+	lds.l	@r0+, mach
+	lds.l	@r0+, macl
+
+	mov	r8, r0
+	add	#(oR9), r0
+	mov.l	@r0+, r9
+	mov.l	@r0+, r10
+	mov.l	@r0+, r11
+	mov.l	@r0+, r12
+	mov.l	@r0+, r13
+	mov.l	@r0+, r14
+	mov.l	@r0+, r15
+
+	mov	r8, r0
+	mov.l	@(oR0,r0), r1
+	mov.l	r1, @-r15
+	cfi_adjust_cfa_offset(4)
+	cfi_rel_offset (r1, 0)
+	mov.l	r2, @-r15
+	cfi_adjust_cfa_offset(4)
+	cfi_rel_offset (r2, 0)
+
+	mov.l	@(oR1,r0), r1
+	mov.l	@(oR2,r0), r2
+	mov.l	@(oR3,r0), r3
+	mov.l	@(oR4,r0), r4
+	mov.l	@(oR5,r0), r5
+	mov.l	@(oR6,r0), r6
+	mov.l	@(oR7,r0), r7
+	mov.l	@(oR8,r0), r8
+	mov.l	@r15+, r0
+	cfi_adjust_cfa_offset(-4)
+	jmp	@r0
+	 mov.l	@r15+, r0
+
+PSEUDO_END(__swapcontext)
+
+weak_alias (__swapcontext, swapcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/sysdep.h
new file mode 100644
index 0000000000..852f8eed7f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/sysdep.h
@@ -0,0 +1,4 @@
+/*  4 instruction cycles not accessing cache and TLB are needed after
+    trapa instruction to avoid an SH-4 silicon bug.  */
+#define NEED_SYSCALL_INST_PAD
+#include <sysdeps/unix/sysv/linux/sh/sysdep.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym
new file mode 100644
index 0000000000..130f60cd96
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym
@@ -0,0 +1,73 @@
+#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)
+
+oLINK		ucontext (uc_link)
+oSS_SP		ucontext (uc_stack.ss_sp)
+oSS_SIZE	ucontext (uc_stack.ss_size)
+oR0		mcontext (gregs[REG_R0])
+oR1		mcontext (gregs[REG_R1])
+oR2		mcontext (gregs[REG_R2])
+oR3		mcontext (gregs[REG_R3])
+oR4		mcontext (gregs[REG_R4])
+oR5		mcontext (gregs[REG_R5])
+oR6		mcontext (gregs[REG_R6])
+oR7		mcontext (gregs[REG_R7])
+oR8		mcontext (gregs[REG_R8])
+oR9		mcontext (gregs[REG_R9])
+oR10		mcontext (gregs[REG_R10])
+oR11		mcontext (gregs[REG_R11])
+oR12		mcontext (gregs[REG_R12])
+oR13		mcontext (gregs[REG_R13])
+oR14		mcontext (gregs[REG_R14])
+oR15		mcontext (gregs[REG_R15])
+oPC		mcontext (pc)
+oPR		mcontext (pr)
+oSR		mcontext (sr)
+oGBR		mcontext (gbr)
+oMACH		mcontext (mach)
+oMACL		mcontext (macl)
+oFR0		mcontext (fpregs[0])
+oFR1		mcontext (fpregs[1])
+oFR2		mcontext (fpregs[2])
+oFR3		mcontext (fpregs[3])
+oFR4		mcontext (fpregs[4])
+oFR5		mcontext (fpregs[5])
+oFR6		mcontext (fpregs[6])
+oFR7		mcontext (fpregs[7])
+oFR8		mcontext (fpregs[8])
+oFR9		mcontext (fpregs[9])
+oFR10		mcontext (fpregs[10])
+oFR11		mcontext (fpregs[11])
+oFR12		mcontext (fpregs[12])
+oFR13		mcontext (fpregs[13])
+oFR14		mcontext (fpregs[14])
+oFR15		mcontext (fpregs[15])
+oXFR0		mcontext (xfpregs[0])
+oXFR1		mcontext (xfpregs[1])
+oXFR2		mcontext (xfpregs[2])
+oXFR3		mcontext (xfpregs[3])
+oXFR4		mcontext (xfpregs[4])
+oXFR5		mcontext (xfpregs[5])
+oXFR6		mcontext (xfpregs[6])
+oXFR7		mcontext (xfpregs[7])
+oXFR8		mcontext (xfpregs[8])
+oXFR9		mcontext (xfpregs[9])
+oXFR10		mcontext (xfpregs[10])
+oXFR11		mcontext (xfpregs[11])
+oXFR12		mcontext (xfpregs[12])
+oXFR13		mcontext (xfpregs[13])
+oXFR14		mcontext (xfpregs[14])
+oXFR15		mcontext (xfpregs[15])
+oFPSCR		mcontext (fpscr)
+oFPUL		mcontext (fpul)
+oOWNEDFP	mcontext (ownedfp)
+oSIGMASK	ucontext (uc_sigmask)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/sh/shlib-versions
new file mode 100644
index 0000000000..9333bbd7a3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/shlib-versions
@@ -0,0 +1,5 @@
+libm=6			GLIBC_2.2
+libc=6			GLIBC_2.2
+ld=ld-linux.so.2	GLIBC_2.2
+libBrokenLocale=1	GLIBC_2.2
+libpthread=0		GLIBC_2.2
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sigaltstack-offsets.sym b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sigaltstack-offsets.sym
new file mode 100644
index 0000000000..f73446941a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sigaltstack-offsets.sym
@@ -0,0 +1,13 @@
+#include <stddef.h>
+#include <signal.h>
+
+--
+
+#define sigaltstack(member)	offsetof (stack_t, member)
+
+sizeSS				sizeof (stack_t)
+oSS_SP				sigaltstack (ss_sp)
+oSS_FLAGS			sigaltstack (ss_flags)
+oSS_SIZE			sigaltstack (ss_size)
+
+SS_ONSTACK
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sigcontextinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sigcontextinfo.h
new file mode 100644
index 0000000000..546f23bb3e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sigcontextinfo.h
@@ -0,0 +1,26 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Philip Blundell <philb@gnu.org>, 1999.
+
+   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/>.  */
+
+#define SIGCONTEXT int _a2, int _a3, int _a4, struct sigcontext
+
+#define SIGCONTEXT_EXTRA_ARGS _a2, _a3, _a4,
+#define GET_PC(ctx)	((void *) ctx.sc_pc)
+#define GET_FRAME(ctx)	((void *) ctx.sc_regs[14])
+#define GET_STACK(ctx)	((void *) ctx.sc_regs[15])
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+  (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/smp.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/smp.h
new file mode 100644
index 0000000000..8914a5b10c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/smp.h
@@ -0,0 +1,23 @@
+/* Determine whether the host has multiple processors.  SH version.
+   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 Library General Public License as
+   published by the Free Software Foundation; either version 2 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If
+   not, see <http://www.gnu.org/licenses/>.  */
+
+static inline int
+is_smp_system (void)
+{
+  return 0;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sys/procfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sys/procfs.h
new file mode 100644
index 0000000000..414911a661
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sys/procfs.h
@@ -0,0 +1,111 @@
+/* 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 somehow modelled after the file of the same name on SysVr4
+   systems.  It provides a definition of the core file format for ELF
+   used on Linux.  */
+
+#include <features.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/user.h>
+
+__BEGIN_DECLS
+
+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.  Fields present but not used are
+   marked with "XXX".  */
+struct elf_prstatus
+  {
+#if 0
+    long int pr_flags;			/* XXX Process flags.  */
+    short int pr_why;			/* XXX Reason for process halt.  */
+    short int pr_what;			/* XXX More detailed reason.  */
+#endif
+    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.  */
+#if 0
+    stack_t pr_altstack;		/* Alternate stack info.  */
+    struct sigaction pr_action;		/* Signal action for current sig.  */
+#endif
+    __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.  */
+#if 0
+    long int pr_instr;			/* Current instruction.  */
+#endif
+    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 short int pr_uid;
+    unsigned short 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.  */
+  };
+
+/* 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 habe only ine PID type.  */
+typedef __pid_t lwpid_t;
+
+
+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/sh/sys/ucontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sys/ucontext.h
new file mode 100644
index 0000000000..d44f95e0f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sys/ucontext.h
@@ -0,0 +1,127 @@
+/* Copyright (C) 1999-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/>.  */
+
+/* Where is System V/SH ABI?  */
+
+#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>
+
+
+typedef int greg_t;
+
+/* Number of general registers.  */
+#define __NGREG	16
+#ifdef __USE_MISC
+# define NGREG	__NGREG
+#endif
+
+/* Container for all general registers.  */
+typedef greg_t gregset_t[__NGREG];
+
+#ifdef __USE_MISC
+/* Number of each register is the `gregset_t' array.  */
+enum
+{
+  REG_R0 = 0,
+# define REG_R0	REG_R0
+  REG_R1 = 1,
+# define REG_R1	REG_R1
+  REG_R2 = 2,
+# define REG_R2	REG_R2
+  REG_R3 = 3,
+# define REG_R3	REG_R3
+  REG_R4 = 4,
+# define REG_R4	REG_R4
+  REG_R5 = 5,
+# define REG_R5	REG_R5
+  REG_R6 = 6,
+# define REG_R6	REG_R6
+  REG_R7 = 7,
+# define REG_R7	REG_R7
+  REG_R8 = 8,
+# define REG_R8	REG_R8
+  REG_R9 = 9,
+# define REG_R9	REG_R9
+  REG_R10 = 10,
+# define REG_R10	REG_R10
+  REG_R11 = 11,
+# define REG_R11	REG_R11
+  REG_R12 = 12,
+# define REG_R12	REG_R12
+  REG_R13 = 13,
+# define REG_R13	REG_R13
+  REG_R14 = 14,
+# define REG_R14	REG_R14
+  REG_R15 = 15,
+# define REG_R15	REG_R15
+};
+#endif
+
+typedef int freg_t;
+
+/* Number of FPU registers.  */
+#define __NFPREG	16
+#ifdef __USE_MISC
+# define NFPREG	__NFPREG
+#endif
+
+/* Structure to describe FPU registers.  */
+typedef freg_t fpregset_t[__NFPREG];
+
+#ifdef __USE_MISC
+# define __ctx(fld) fld
+#else
+# define __ctx(fld) __ ## fld
+#endif
+
+/* Context to describe whole processor state.  */
+typedef struct
+  {
+    unsigned int __ctx(oldmask);
+    gregset_t __ctx(gregs);
+    unsigned int __ctx(pc);
+    unsigned int __ctx(pr);
+    unsigned int __ctx(sr);
+    unsigned int __ctx(gbr);
+    unsigned int __ctx(mach);
+    unsigned int __ctx(macl);
+    fpregset_t __ctx(fpregs);
+    fpregset_t __ctx(xfpregs);
+    unsigned int __ctx(fpscr);
+    unsigned int __ctx(fpul);
+    unsigned int __ctx(ownedfp);
+  } mcontext_t;
+
+#undef __ctx
+
+/* 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/sh/sys/user.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sys/user.h
new file mode 100644
index 0000000000..2ecda2d962
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sys/user.h
@@ -0,0 +1,67 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _SYS_USER_H
+#define _SYS_USER_H	1
+
+#include <asm/ptrace.h>
+#include <stddef.h>
+
+/* asm/ptrace.h polutes the namespace.  */
+#undef PTRACE_GETREGS
+#undef PTRACE_SETREGS
+#undef PTRACE_GETFPREGS
+#undef PTRACE_SETFPREGS
+#undef PTRACE_GETFDPIC
+#undef PTRACE_GETFDPIC_EXEC
+#undef PTRACE_GETFDPIC_INTERP
+#undef	PTRACE_GETDSPREGS
+#undef	PTRACE_SETDSPREGS
+
+typedef unsigned long elf_greg_t;
+
+#define ELF_NGREG (sizeof (struct pt_regs) / sizeof (elf_greg_t))
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+struct user_fpu_struct
+  {
+    unsigned long fp_regs[16];
+    unsigned long xfp_regs[16];
+    unsigned long fpscr;
+    unsigned long fpul;
+  };
+typedef struct user_fpu_struct elf_fpregset_t;
+
+struct user
+  {
+    struct pt_regs regs;
+    struct user_fpu_struct fpu;
+    int u_fpvalid;
+    size_t u_tsize;
+    size_t u_dsize;
+    size_t u_ssize;
+    unsigned long start_code;
+    unsigned long start_data;
+    unsigned long start_stack;
+    long int signal;
+    unsigned long u_ar0;
+    struct user_fpu_struct *u_fpstate;
+    unsigned long magic;
+    char u_comm[32];
+  };
+
+#endif  /* sys/user.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/syscall.S
new file mode 100644
index 0000000000..af1695bc44
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/syscall.S
@@ -0,0 +1,43 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <sysdep.h>
+
+ENTRY (__syscall)
+	mov	r4, r3			// syscall number
+	mov	r5, r4			// p1
+	mov	r6, r5			// p2
+	mov	r7, r6			// p3
+	mov.l	@r15, r7		// p4
+	mov.l	@(4,r15), r0		// p5
+	mov.l	@(8,r15), r1		// p6
+	mov.l	@(12,r15), r2		// p7
+	trapa	#0x17
+	mov     r0, r1
+	mov	#-12, r2
+	shad	r2, r1
+	not	r1, r1			// r1=0 means r0 = -1 to -4095
+	tst	r1, r1			// i.e. error in linux
+	bf	.Lpseudo_end
+	SYSCALL_ERROR_HANDLER
+.Lpseudo_end:
+	rts
+	 nop
+
+PSEUDO_END (__syscall)
+
+weak_alias (__syscall, syscall)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/sh/syscalls.list
new file mode 100644
index 0000000000..32badd1ee0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/syscalls.list
@@ -0,0 +1,22 @@
+# File name	Caller	Syscall name	# args	Strong name	Weak names
+
+chown		-	chown32		i:sii	__chown		chown
+lchown		-	lchown32	i:sii	__lchown	lchown
+fchown		-	fchown32	i:iii	__fchown	fchown
+
+getegid		-	getegid32	Ei:	__getegid	getegid
+geteuid		-	geteuid32	Ei:	__geteuid	geteuid
+getgid		-	getgid32	Ei:	__getgid	getgid
+getuid		-	getuid32	Ei:	__getuid	getuid
+getresgid	-	getresgid32	i:ppp	__getresgid	getresgid
+getresuid	-	getresuid32	i:ppp	__getresuid	getresuid
+getgroups	-	getgroups32	i:ip	__getgroups	getgroups
+
+setfsgid	-	setfsgid32	Ei:i	setfsgid
+setfsuid	-	setfsuid32	Ei:i	setfsuid
+
+prlimit64	EXTRA	prlimit64	i:iipp	prlimit64
+
+fanotify_mark	EXTRA	fanotify_mark	i:iiiiis	__fanotify_mark	fanotify_mark@@GLIBC_2.16
+
+personality	EXTRA	personality	Ei:i	__personality	personality
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
new file mode 100644
index 0000000000..5645cadbcd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
@@ -0,0 +1,169 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <sysdep.h>
+#include <tls.h>
+#ifndef __ASSEMBLER__
+# include <nptl/pthreadP.h>
+#endif
+
+#if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt)
+
+# define _IMM12 #-12
+# define _IMM16 #-16
+# define _IMP16 #16
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args) \
+  .text; \
+  ENTRY (name); \
+  .Lpseudo_start: \
+    SINGLE_THREAD_P; \
+    bf .Lpseudo_cancel; \
+    .type __##syscall_name##_nocancel,@function; \
+    .globl __##syscall_name##_nocancel; \
+    __##syscall_name##_nocancel: \
+    DO_CALL (syscall_name, args); \
+    mov r0,r1; \
+    mov _IMM12,r2; \
+    shad r2,r1; \
+    not r1,r1; \
+    tst r1,r1; \
+    bt .Lsyscall_error; \
+    bra .Lpseudo_end; \
+     nop; \
+    .size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \
+ .Lpseudo_cancel: \
+    sts.l pr,@-r15; \
+    cfi_adjust_cfa_offset (4); \
+    cfi_rel_offset (pr, 0); \
+    add _IMM16,r15; \
+    cfi_adjust_cfa_offset (16); \
+    SAVE_ARGS_##args; \
+    CENABLE; \
+    LOAD_ARGS_##args; \
+    add _IMP16,r15; \
+    cfi_adjust_cfa_offset (-16); \
+    lds.l @r15+,pr; \
+    cfi_adjust_cfa_offset (-4); \
+    cfi_restore (pr); \
+    DO_CALL(syscall_name, args); \
+    SYSCALL_INST_PAD; \
+    sts.l pr,@-r15; \
+    cfi_adjust_cfa_offset (4); \
+    cfi_rel_offset (pr, 0); \
+    mov.l r0,@-r15; \
+    cfi_adjust_cfa_offset (4); \
+    cfi_rel_offset (r0, 0); \
+    CDISABLE; \
+    mov.l @r15+,r0; \
+    cfi_adjust_cfa_offset (-4); \
+    cfi_restore (r0); \
+    lds.l @r15+,pr; \
+    cfi_adjust_cfa_offset (-4); \
+    cfi_restore (pr); \
+    mov r0,r1; \
+    mov _IMM12,r2; \
+    shad r2,r1; \
+    not r1,r1; \
+    tst r1,r1; \
+    bf .Lpseudo_end; \
+ .Lsyscall_error: \
+    SYSCALL_ERROR_HANDLER; \
+ .Lpseudo_end:
+
+# undef PSEUDO_END
+# define PSEUDO_END(sym) \
+  END (sym)
+
+# define SAVE_ARGS_0	/* Nothing.  */
+# define SAVE_ARGS_1	SAVE_ARGS_0; mov.l r4,@(0,r15); cfi_offset (r4,-4)
+# define SAVE_ARGS_2	SAVE_ARGS_1; mov.l r5,@(4,r15); cfi_offset (r5,-8)
+# define SAVE_ARGS_3	SAVE_ARGS_2; mov.l r6,@(8,r15); cfi_offset (r6,-12)
+# define SAVE_ARGS_4	SAVE_ARGS_3; mov.l r7,@(12,r15); cfi_offset (r7,-16)
+# define SAVE_ARGS_5	SAVE_ARGS_4
+# define SAVE_ARGS_6	SAVE_ARGS_5
+
+# define LOAD_ARGS_0	/* Nothing.  */
+# define LOAD_ARGS_1	LOAD_ARGS_0; mov.l @(0,r15),r4; cfi_restore (r4)
+# define LOAD_ARGS_2	LOAD_ARGS_1; mov.l @(4,r15),r5; cfi_restore (r5)
+# define LOAD_ARGS_3	LOAD_ARGS_2; mov.l @(8,r15),r6; cfi_restore (r6)
+# define LOAD_ARGS_4	LOAD_ARGS_3; mov.l @(12,r15),r7; cfi_restore (r7)
+# define LOAD_ARGS_5	LOAD_ARGS_4
+# define LOAD_ARGS_6	LOAD_ARGS_5
+
+# if IS_IN (libpthread)
+#  define __local_enable_asynccancel	__pthread_enable_asynccancel
+#  define __local_disable_asynccancel	__pthread_disable_asynccancel
+# elif IS_IN (libc)
+#  define __local_enable_asynccancel	__libc_enable_asynccancel
+#  define __local_disable_asynccancel	__libc_disable_asynccancel
+# elif IS_IN (librt)
+#  define __local_enable_asynccancel	__librt_enable_asynccancel
+#  define __local_disable_asynccancel	__librt_disable_asynccancel
+# else
+#  error Unsupported library
+# endif
+
+# define CENABLE \
+	mov.l 1f,r0; \
+	bsrf r0; \
+	 nop; \
+     0: bra 2f; \
+	 mov r0,r2; \
+	.align 2; \
+     1: .long __local_enable_asynccancel - 0b; \
+     2:
+
+# define CDISABLE \
+	mov.l 1f,r0; \
+	bsrf r0; \
+	 mov r2,r4; \
+     0: bra 2f; \
+	 nop; \
+	.align 2; \
+     1: .long __local_disable_asynccancel - 0b; \
+     2:
+
+# ifndef __ASSEMBLER__
+#  define SINGLE_THREAD_P \
+  __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+				   header.multiple_threads) == 0, 1)
+# else
+#  define SINGLE_THREAD_P \
+	stc gbr,r0; \
+	mov.w 0f,r1; \
+	sub r1,r0; \
+	mov.l @(MULTIPLE_THREADS_OFFSET,r0),r0; \
+	bra 1f; \
+	 tst r0,r0; \
+     0: .word TLS_PRE_TCB_SIZE; \
+     1:
+
+# endif
+
+#elif !defined __ASSEMBLER__
+
+# define SINGLE_THREAD_P (1)
+# define NO_CANCELLATION 1
+
+#endif
+
+#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/sh/sysdep.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep.S
new file mode 100644
index 0000000000..5f11bc737b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep.S
@@ -0,0 +1,32 @@
+/* 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 <sysdep.h>
+
+/* The syscall stubs jump here when they detect an error.
+   The code for Linux is almost identical to the canonical Unix
+   code, except that the error number in R0 is negated.  */
+
+#undef CALL_MCOUNT
+#define CALL_MCOUNT /* Don't insert the profiling call, it clobbers R0.  */
+
+ENTRY (__syscall_error)
+	neg r4, r0
+	cfi_endproc
+
+#define __syscall_error __syscall_error_1
+#include <sysdeps/unix/sh/sysdep.S>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep.h
new file mode 100644
index 0000000000..b76140cd90
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep.h
@@ -0,0 +1,360 @@
+/* Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
+   Changed by Kaz Kojima, <kkojima@rr.iij4u.or.jp>.
+
+   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_SH_SYSDEP_H
+#define _LINUX_SH_SYSDEP_H 1
+
+/* There is some commonality.  */
+#include <sysdeps/unix/sysv/linux/sysdep.h>
+#include <sysdeps/unix/sh/sysdep.h>
+#include <tls.h>
+
+/* 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)
+
+
+#ifdef __ASSEMBLER__
+
+/* 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 R0
+   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 savely
+   test with -4095.  */
+
+#define _IMM1 #-1
+#define _IMM12 #-12
+#undef	PSEUDO
+#define	PSEUDO(name, syscall_name, args) \
+ .text; \
+ ENTRY (name); \
+    DO_CALL (syscall_name, args); \
+    mov r0,r1; \
+    mov _IMM12,r2; \
+    shad r2,r1; \
+    not r1,r1; \
+    tst r1,r1; \
+    bf .Lpseudo_end; \
+    SYSCALL_ERROR_HANDLER; \
+ .Lpseudo_end:
+
+#undef	PSEUDO_END
+#define	PSEUDO_END(name) \
+  END (name)
+
+#undef	PSEUDO_NOERRNO
+#define	PSEUDO_NOERRNO(name, syscall_name, args) \
+ .text; \
+ ENTRY (name); \
+    DO_CALL (syscall_name, args)
+
+#undef	PSEUDO_END_NOERRNO
+#define	PSEUDO_END_NOERRNO(name) \
+  END (name)
+
+#define ret_NOERRNO ret
+
+#define	PSEUDO_ERRVAL(name, syscall_name, args) \
+ .text; \
+ ENTRY (name); \
+    DO_CALL (syscall_name, args);
+
+#undef	PSEUDO_END_ERRVAL
+#define	PSEUDO_END_ERRVAL(name) \
+  END (name)
+
+#define ret_ERRVAL ret
+
+#ifndef PIC
+# define SYSCALL_ERROR_HANDLER	\
+	mov.l 0f,r1; \
+	jmp @r1; \
+	 mov r0,r4; \
+	.align 2; \
+     0: .long __syscall_error
+#else
+# if RTLD_PRIVATE_ERRNO
+#  define SYSCALL_ERROR_HANDLER	\
+	neg r0,r1; \
+	mov r12,r2; \
+	cfi_register (r12, r2); \
+	mov.l 0f,r12; \
+	mova 0f,r0; \
+	add r0,r12; \
+	mov.l 1f,r0; \
+	mov.l r1,@(r0,r12); \
+	mov r2,r12; \
+	cfi_restore (r12); \
+	bra .Lpseudo_end; \
+	 mov _IMM1,r0; \
+	.align 2; \
+     0: .long _GLOBAL_OFFSET_TABLE_; \
+     1: .long rtld_errno@GOTOFF
+
+# elif defined _LIBC_REENTRANT
+
+#  if IS_IN (libc)
+#   define SYSCALL_ERROR_ERRNO __libc_errno
+#  else
+#   define SYSCALL_ERROR_ERRNO errno
+#  endif
+#  define SYSCALL_ERROR_HANDLER \
+	neg r0,r1; \
+	mov r12,r2; \
+	cfi_register (r12, r2); \
+	mov.l 0f,r12; \
+	mova 0f,r0; \
+	add r0,r12; \
+	mov.l 1f,r0; \
+	stc gbr, r4; \
+	mov.l @(r0,r12),r0; \
+	mov r2,r12; \
+	cfi_restore (r12); \
+	add r4,r0; \
+	mov.l r1,@r0; \
+	bra .Lpseudo_end; \
+	 mov _IMM1,r0; \
+	.align 2; \
+     0: .long _GLOBAL_OFFSET_TABLE_; \
+     1: .long SYSCALL_ERROR_ERRNO@GOTTPOFF
+# else
+/* Store (-r0) into errno through the GOT.  */
+#  define SYSCALL_ERROR_HANDLER						      \
+	neg r0,r1; \
+	mov r12,r2; \
+	cfi_register (r12, r2); \
+	mov.l 0f,r12; \
+	mova 0f,r0; \
+	add r0,r12; \
+	mov.l 1f,r0; \
+	mov.l @(r0,r12),r0; \
+	mov r2,r12; \
+	cfi_restore (r12); \
+	mov.l r1,@r0; \
+	bra .Lpseudo_end; \
+	 mov _IMM1,r0; \
+	.align 2; \
+     0: .long _GLOBAL_OFFSET_TABLE_; \
+     1: .long errno@GOT
+# endif	/* _LIBC_REENTRANT */
+#endif	/* PIC */
+
+# ifdef NEED_SYSCALL_INST_PAD
+#  define SYSCALL_INST_PAD \
+	or r0,r0; or r0,r0; or r0,r0; or r0,r0; or r0,r0
+# else
+#  define SYSCALL_INST_PAD
+# endif
+
+#define SYSCALL_INST0	trapa #0x10
+#define SYSCALL_INST1	trapa #0x11
+#define SYSCALL_INST2	trapa #0x12
+#define SYSCALL_INST3	trapa #0x13
+#define SYSCALL_INST4	trapa #0x14
+#define SYSCALL_INST5	mov.l @(0,r15),r0; trapa #0x15
+#define SYSCALL_INST6	mov.l @(0,r15),r0; mov.l @(4,r15),r1; trapa #0x16
+
+#undef	DO_CALL
+#define DO_CALL(syscall_name, args)	\
+    mov.l 1f,r3;			\
+    SYSCALL_INST##args;			\
+    SYSCALL_INST_PAD;			\
+    bra 2f;				\
+     nop;				\
+    .align 2;				\
+ 1: .long SYS_ify (syscall_name);	\
+ 2:
+
+#else /* not __ASSEMBLER__ */
+
+#define SYSCALL_INST_STR0	"trapa #0x10\n\t"
+#define SYSCALL_INST_STR1	"trapa #0x11\n\t"
+#define SYSCALL_INST_STR2	"trapa #0x12\n\t"
+#define SYSCALL_INST_STR3	"trapa #0x13\n\t"
+#define SYSCALL_INST_STR4	"trapa #0x14\n\t"
+#define SYSCALL_INST_STR5	"trapa #0x15\n\t"
+#define SYSCALL_INST_STR6	"trapa #0x16\n\t"
+
+# ifdef NEED_SYSCALL_INST_PAD
+#  define SYSCALL_INST_PAD "\
+	or r0,r0; or r0,r0; or r0,r0; or r0,r0; or r0,r0"
+# else
+#  define SYSCALL_INST_PAD
+# endif
+
+#define ASMFMT_0
+#define ASMFMT_1 \
+	, "r" (r4)
+#define ASMFMT_2 \
+	, "r" (r4), "r" (r5)
+#define ASMFMT_3 \
+	, "r" (r4), "r" (r5), "r" (r6)
+#define ASMFMT_4 \
+	, "r" (r4), "r" (r5), "r" (r6), "r" (r7)
+#define ASMFMT_5 \
+	, "r" (r4), "r" (r5), "r" (r6), "r" (r7), "0" (r0)
+#define ASMFMT_6 \
+	, "r" (r4), "r" (r5), "r" (r6), "r" (r7), "0" (r0), "r" (r1)
+#define ASMFMT_7 \
+	, "r" (r4), "r" (r5), "r" (r6), "r" (r7), "0" (r0), "r" (r1), "r" (r2)
+
+#define SUBSTITUTE_ARGS_0()
+#define SUBSTITUTE_ARGS_1(arg1) \
+	long int _arg1 = (long int) (arg1);				      \
+	register long int r4 asm ("%r4") = (long int) (_arg1)
+#define SUBSTITUTE_ARGS_2(arg1, arg2) \
+	long int _arg1 = (long int) (arg1);				      \
+	long int _arg2 = (long int) (arg2);				      \
+	register long int r4 asm ("%r4") = (long int) (_arg1);		      \
+	register long int r5 asm ("%r5") = (long int) (_arg2)
+#define SUBSTITUTE_ARGS_3(arg1, arg2, arg3) \
+	long int _arg1 = (long int) (arg1);				      \
+	long int _arg2 = (long int) (arg2);				      \
+	long int _arg3 = (long int) (arg3);				      \
+	register long int r4 asm ("%r4") = (long int) (_arg1);		      \
+	register long int r5 asm ("%r5") = (long int) (_arg2);		      \
+	register long int r6 asm ("%r6") = (long int) (_arg3)
+#define SUBSTITUTE_ARGS_4(arg1, arg2, arg3, arg4) \
+	long int _arg1 = (long int) (arg1);				      \
+	long int _arg2 = (long int) (arg2);				      \
+	long int _arg3 = (long int) (arg3);				      \
+	long int _arg4 = (long int) (arg4);				      \
+	register long int r4 asm ("%r4") = (long int) (_arg1);		      \
+	register long int r5 asm ("%r5") = (long int) (_arg2);		      \
+	register long int r6 asm ("%r6") = (long int) (_arg3);		      \
+	register long int r7 asm ("%r7") = (long int) (_arg4)
+#define SUBSTITUTE_ARGS_5(arg1, arg2, arg3, arg4, arg5) \
+	long int _arg1 = (long int) (arg1);				      \
+	long int _arg2 = (long int) (arg2);				      \
+	long int _arg3 = (long int) (arg3);				      \
+	long int _arg4 = (long int) (arg4);				      \
+	long int _arg5 = (long int) (arg5);				      \
+	register long int r4 asm ("%r4") = (long int) (_arg1);		      \
+	register long int r5 asm ("%r5") = (long int) (_arg2);		      \
+	register long int r6 asm ("%r6") = (long int) (_arg3);		      \
+	register long int r7 asm ("%r7") = (long int) (_arg4);		      \
+	register long int r0 asm ("%r0") = (long int) (_arg5)
+#define SUBSTITUTE_ARGS_6(arg1, arg2, arg3, arg4, arg5, arg6) \
+	long int _arg1 = (long int) (arg1);				      \
+	long int _arg2 = (long int) (arg2);				      \
+	long int _arg3 = (long int) (arg3);				      \
+	long int _arg4 = (long int) (arg4);				      \
+	long int _arg5 = (long int) (arg5);				      \
+	long int _arg6 = (long int) (arg6);				      \
+	register long int r4 asm ("%r4") = (long int)(_arg1);		      \
+	register long int r5 asm ("%r5") = (long int) (_arg2);		      \
+	register long int r6 asm ("%r6") = (long int) (_arg3);		      \
+	register long int r7 asm ("%r7") = (long int) (_arg4);		      \
+	register long int r0 asm ("%r0") = (long int) (_arg5);		      \
+	register long int r1 asm ("%r1") = (long int) (_arg6)
+#define SUBSTITUTE_ARGS_7(arg1, arg2, arg3, arg4, arg5, arg6, arg7) \
+	long int _arg1 = (long int) (arg1);				      \
+	long int _arg2 = (long int) (arg2);				      \
+	long int _arg3 = (long int) (arg3);				      \
+	long int _arg4 = (long int) (arg4);				      \
+	long int _arg5 = (long int) (arg5);				      \
+	long int _arg6 = (long int) (arg6);				      \
+	long int _arg7 = (long int) (arg7);				      \
+	register long int r4 asm ("%r4") = (long int) (_arg1);		      \
+	register long int r5 asm ("%r5") = (long int) (_arg2);		      \
+	register long int r6 asm ("%r6") = (long int) (_arg3);		      \
+	register long int r7 asm ("%r7") = (long int) (_arg4);		      \
+	register long int r0 asm ("%r0") = (long int) (_arg5);		      \
+	register long int r1 asm ("%r1") = (long int) (_arg6);		      \
+	register long int r2 asm ("%r2") = (long int) (_arg7)
+
+#undef INLINE_SYSCALL
+#define INLINE_SYSCALL(name, nr, args...) \
+  ({                                                                          \
+    unsigned int resultvar = INTERNAL_SYSCALL (name, , nr, args);             \
+    if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (resultvar, ), 0))         \
+      {                                                                       \
+	__set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, ));                   \
+	resultvar = 0xffffffff;                                               \
+      }                                                                       \
+    (int) resultvar; })
+
+#undef INTERNAL_SYSCALL
+#define INTERNAL_SYSCALL(name, err, nr, args...) \
+  ({									      \
+    unsigned long int resultvar;					      \
+    register long int r3 asm ("%r3") = SYS_ify (name);			      \
+    SUBSTITUTE_ARGS_##nr(args);						      \
+									      \
+    asm volatile (SYSCALL_INST_STR##nr SYSCALL_INST_PAD			      \
+		  : "=z" (resultvar)					      \
+		  : "r" (r3) ASMFMT_##nr				      \
+		  : "memory", "t");					      \
+									      \
+    (int) resultvar; })
+
+/* The _NCS variant allows non-constant syscall numbers.  */
+#define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
+  ({									      \
+    unsigned long int resultvar;					      \
+    register long int r3 asm ("%r3") = (name);				      \
+    SUBSTITUTE_ARGS_##nr(args);						      \
+									      \
+    asm volatile (SYSCALL_INST_STR##nr SYSCALL_INST_PAD			      \
+		  : "=z" (resultvar)					      \
+		  : "r" (r3) ASMFMT_##nr				      \
+		  : "memory", "t");					      \
+									      \
+    (int) resultvar; })
+
+#undef INTERNAL_SYSCALL_DECL
+#define INTERNAL_SYSCALL_DECL(err) do { } while (0)
+
+#undef INTERNAL_SYSCALL_ERROR_P
+#define INTERNAL_SYSCALL_ERROR_P(val, err) \
+  ((unsigned int) (val) >= 0xfffff001u)
+
+#undef INTERNAL_SYSCALL_ERRNO
+#define INTERNAL_SYSCALL_ERRNO(val, err)        (-(val))
+
+#endif	/* __ASSEMBLER__ */
+
+/* Pointer mangling support.  */
+#if IS_IN (rtld)
+/* We cannot use the thread descriptor because in ld.so we use setjmp
+   earlier than the descriptor is initialized.  Using a global variable
+   is too complicated here since we have no PC-relative addressing mode.  */
+#else
+# ifdef __ASSEMBLER__
+#  define PTR_MANGLE(reg, tmp) \
+     stc gbr,tmp; mov.l @(POINTER_GUARD,tmp),tmp; xor tmp,reg
+#  define PTR_MANGLE2(reg, tmp)	xor tmp,reg
+#  define PTR_DEMANGLE(reg, tmp)	PTR_MANGLE (reg, tmp)
+#  define PTR_DEMANGLE2(reg, tmp)	PTR_MANGLE2 (reg, tmp)
+# else
+#  define PTR_MANGLE(var) \
+     (var) = (void *) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())
+#  define PTR_DEMANGLE(var)	PTR_MANGLE (var)
+# endif
+#endif
+
+#endif /* linux/sh/sysdep.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/vfork.S
new file mode 100644
index 0000000000..0626bda2df
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/vfork.S
@@ -0,0 +1,52 @@
+/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#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.  */
+
+ENTRY (__libc_vfork)
+
+	mov.w	.L1, r3
+	trapa	#0x10
+	mov     r0, r1
+
+	mov	#-12, r2
+	shad	r2, r1
+	not	r1, r1			// r1=0 means r0 = -1 to -4095
+	tst	r1, r1			// i.e. error in linux
+	bf	.Lpseudo_end
+	SYSCALL_ERROR_HANDLER
+.Lpseudo_end:
+	rts
+	 nop
+.L1:
+	.word	__NR_vfork
+	.align	2
+PSEUDO_END (__libc_vfork)
+
+#if IS_IN (libc)
+weak_alias (__libc_vfork, vfork)
+strong_alias (__libc_vfork, __vfork)
+libc_hidden_def (__vfork)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/xstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sh/xstat.c
new file mode 100644
index 0000000000..e9869f5508
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/xstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/xstat.c>