aboutsummaryrefslogtreecommitdiff
path: root/REORG.TODO/sysdeps/unix/sysv/linux/aarch64
diff options
context:
space:
mode:
authorZack Weinberg <zackw@panix.com>2017-06-08 15:39:03 -0400
committerZack Weinberg <zackw@panix.com>2017-06-08 15:39:03 -0400
commit5046dbb4a7eba5eccfd258f92f4735c9ffc8d069 (patch)
tree4470480d904b65cf14ca524f96f79eca818c3eaf /REORG.TODO/sysdeps/unix/sysv/linux/aarch64
parent199fc19d3aaaf57944ef036e15904febe877fc93 (diff)
downloadglibc-zack/build-layout-experiment.tar
glibc-zack/build-layout-experiment.tar.gz
glibc-zack/build-layout-experiment.tar.bz2
glibc-zack/build-layout-experiment.zip
Prepare for radical source tree reorganization.zack/build-layout-experiment
All top-level files and directories are moved into a temporary storage directory, REORG.TODO, except for files that will certainly still exist in their current form at top level when we're done (COPYING, COPYING.LIB, LICENSES, NEWS, README), all old ChangeLog files (which are moved to the new directory OldChangeLogs, instead), and the generated file INSTALL (which is just deleted; in the new order, there will be no generated files checked into version control).
Diffstat (limited to 'REORG.TODO/sysdeps/unix/sysv/linux/aarch64')
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Implies3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Makefile35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Versions12
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/__read_tp.S25
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/arch-fork.h28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h61
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/ipc.h54
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/local_lim.h101
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/mman.h44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/clone.S92
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/configure17
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/configure.ac6
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/cpu-features.c37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/cpu-features.h49
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-cache.h56
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c75
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h86
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-static.c84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/getcontext.S109
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/init-first.c52
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ioctl.S31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ipc_priv.h21
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h25
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ld.abilist10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ldconfig.h30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-__read_tp.S19
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-start.c28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-vdso.h33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc.abilist2105
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libdl.abilist10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libm.abilist462
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libnsl.abilist122
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist226
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist92
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/librt.abilist36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libthread_db.abilist41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/localplt.data20
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/makecontext.c74
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/profil-counter.h20
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/pt-vfork.c54
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/readelflib.c18
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/setcontext.S130
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/shlib-versions7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sigaction.c70
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/swapcontext.S101
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/elf.h26
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h123
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h207
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h59
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/user.h37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/syscall.S44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h134
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep.h297
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h45
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/vfork.S42
66 files changed, 6137 insertions, 0 deletions
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Implies
new file mode 100644
index 0000000000..4409e19b92
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Implies
@@ -0,0 +1,3 @@
+aarch64/nptl
+unix/sysv/linux/generic
+unix/sysv/linux/wordsize-64
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Makefile
new file mode 100644
index 0000000000..6b4e620896
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Makefile
@@ -0,0 +1,35 @@
+ifeq ($(subdir),csu)
+sysdep_routines += __read_tp libc-__read_tp
+static-only-routines += __read_tp
+shared-only-routines += libc-__read_tp
+endif
+
+ifeq ($(subdir),elf)
+sysdep_routines += dl-vdso
+sysdep-rtld-routines += __read_tp
+ifeq ($(build-shared),yes)
+# This is needed for DSO loading from static binaries.
+sysdep-dl-routines += dl-static
+endif
+endif
+
+ifeq ($(subdir),misc)
+sysdep_headers += sys/elf.h
+endif
+
+ifeq ($(subdir),stdlib)
+gen-as-const-headers += ucontext_i.sym
+endif
+
+abi-variants := lp64
+abi-variants += lp64_be
+
+ifeq (,$(filter $(default-abi),$(abi-variants)))
+Unknown ABI, must be one of $(abi-variants)
+endif
+
+abi-lp64-options := -U__AARCH64EB__
+abi-lp64-condition := !defined __AARCH64EB__
+
+abi-lp64_be-options := -D__AARCH64EB__
+abi-lp64_be-condition := defined __AARCH64EB__
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Versions
new file mode 100644
index 0000000000..9bd87fe2d0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Versions
@@ -0,0 +1,12 @@
+ld {
+ GLIBC_PRIVATE {
+ # used for loading by static libraries
+ _dl_var_init;
+ }
+}
+libc {
+ GLIBC_PRIVATE {
+ __vdso_clock_gettime;
+ __vdso_clock_getres;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/__read_tp.S b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/__read_tp.S
new file mode 100644
index 0000000000..d355878b70
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/__read_tp.S
@@ -0,0 +1,25 @@
+/* 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>
+
+ .hidden __read_tp
+ENTRY (__read_tp)
+ mrs x0, tpidr_el0
+ RET
+END (__read_tp)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/arch-fork.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/arch-fork.h
new file mode 100644
index 0000000000..7b1f9bdd1f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/arch-fork.h
@@ -0,0 +1,28 @@
+/* ARCH_FORK definition for Linux fork implementation. AArch64 version.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sched.h>
+#include <signal.h>
+#include <sysdep.h>
+#include <tls.h>
+
+
+#define ARCH_FORK() \
+ INLINE_SYSCALL (clone, 5, \
+ CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, \
+ NULL, NULL, NULL, &THREAD_SELF->tid)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h
new file mode 100644
index 0000000000..6ba241c02c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h
@@ -0,0 +1,61 @@
+/* O_*, F_*, FD_* bit values for the AArch64 Linux ABI.
+ Copyright (C) 2011-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _FCNTL_H
+# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
+#endif
+
+#define __O_DIRECTORY 040000
+#define __O_NOFOLLOW 0100000
+#define __O_DIRECT 0200000
+
+#ifdef __ILP32__
+# define __O_LARGEFILE 0400000
+#else
+# define __O_LARGEFILE 0
+#endif
+
+#ifdef __LP64__
+# define F_GETLK64 5
+# define F_SETLK64 6
+# define F_SETLKW64 7
+#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'). */
+ __off_t l_start; /* Offset where the lock begins. */
+ __off_t l_len; /* Size of the locked area; zero means until EOF. */
+ __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/aarch64/bits/hwcap.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h
new file mode 100644
index 0000000000..117852da1c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h
@@ -0,0 +1,36 @@
+/* Defines for bits in AT_HWCAP. AArch64 Linux version.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#if !defined (_SYS_AUXV_H)
+# error "Never include <bits/hwcap.h> directly; use <sys/auxv.h> instead."
+#endif
+
+/* The following must match the kernel's <asm/hwcap.h>. */
+#define HWCAP_FP (1 << 0)
+#define HWCAP_ASIMD (1 << 1)
+#define HWCAP_EVTSTRM (1 << 2)
+#define HWCAP_AES (1 << 3)
+#define HWCAP_PMULL (1 << 4)
+#define HWCAP_SHA1 (1 << 5)
+#define HWCAP_SHA2 (1 << 6)
+#define HWCAP_CRC32 (1 << 7)
+#define HWCAP_ATOMICS (1 << 8)
+#define HWCAP_FPHP (1 << 9)
+#define HWCAP_ASIMDHP (1 << 10)
+#define HWCAP_CPUID (1 << 11)
+#define HWCAP_ASIMDRDM (1 << 12)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/ipc.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/ipc.h
new file mode 100644
index 0000000000..cd1f06e370
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/ipc.h
@@ -0,0 +1,54 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IPC_H
+# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Mode bits for `msgget', `semget', and `shmget'. */
+#define IPC_CREAT 01000 /* Create key if key does not exist. */
+#define IPC_EXCL 02000 /* Fail if key exists. */
+#define IPC_NOWAIT 04000 /* Return error on wait. */
+
+/* Control commands for `msgctl', `semctl', and `shmctl'. */
+#define IPC_RMID 0 /* Remove identifier. */
+#define IPC_SET 1 /* Set `ipc_perm' options. */
+#define IPC_STAT 2 /* Get `ipc_perm' options. */
+#ifdef __USE_GNU
+# define IPC_INFO 3 /* See ipcs. */
+#endif
+
+/* Special key values. */
+#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
+
+
+/* Data structure used to pass permission information to IPC operations. */
+struct ipc_perm
+ {
+ __key_t __key; /* Key. */
+ __uid_t uid; /* Owner's user ID. */
+ __gid_t gid; /* Owner's group ID. */
+ __uid_t cuid; /* Creator's user ID. */
+ __gid_t cgid; /* Creator's group ID. */
+ unsigned int mode; /* Read/write permission. */
+ unsigned short int __seq; /* Sequence number. */
+ unsigned short int __pad1;
+ __syscall_ulong_t __glibc_reserved1;
+ __syscall_ulong_t __glibc_reserved2;
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/local_lim.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/local_lim.h
new file mode 100644
index 0000000000..35a0326211
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/local_lim.h
@@ -0,0 +1,101 @@
+/* Minimum guaranteed maximum values for system limits. Linux version.
+ Copyright (C) 1993-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* The kernel header pollutes the namespace with the NR_OPEN symbol
+ and defines LINK_MAX although filesystems have different maxima. A
+ similar thing is true for OPEN_MAX: the limit can be changed at
+ runtime and therefore the macro must not be defined. Remove this
+ after including the header if necessary. */
+#ifndef NR_OPEN
+# define __undef_NR_OPEN
+#endif
+#ifndef LINK_MAX
+# define __undef_LINK_MAX
+#endif
+#ifndef OPEN_MAX
+# define __undef_OPEN_MAX
+#endif
+#ifndef ARG_MAX
+# define __undef_ARG_MAX
+#endif
+
+/* The kernel sources contain a file with all the needed information. */
+#include <linux/limits.h>
+
+/* Have to remove NR_OPEN? */
+#ifdef __undef_NR_OPEN
+# undef NR_OPEN
+# undef __undef_NR_OPEN
+#endif
+/* Have to remove LINK_MAX? */
+#ifdef __undef_LINK_MAX
+# undef LINK_MAX
+# undef __undef_LINK_MAX
+#endif
+/* Have to remove OPEN_MAX? */
+#ifdef __undef_OPEN_MAX
+# undef OPEN_MAX
+# undef __undef_OPEN_MAX
+#endif
+/* Have to remove ARG_MAX? */
+#ifdef __undef_ARG_MAX
+# undef ARG_MAX
+# undef __undef_ARG_MAX
+#endif
+
+/* The number of data keys per process. */
+#define _POSIX_THREAD_KEYS_MAX 128
+/* This is the value this implementation supports. */
+#define PTHREAD_KEYS_MAX 1024
+
+/* Controlling the iterations of destructors for thread-specific data. */
+#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
+/* Number of iterations this implementation does. */
+#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
+
+/* The number of threads per process. */
+#define _POSIX_THREAD_THREADS_MAX 64
+/* We have no predefined limit on the number of threads. */
+#undef PTHREAD_THREADS_MAX
+
+/* Maximum amount by which a process can descrease its asynchronous I/O
+ priority level. */
+#define AIO_PRIO_DELTA_MAX 20
+
+/* Minimum size for a thread. At least two pages for systems with 64k
+ pages. */
+#define PTHREAD_STACK_MIN 131072
+
+/* Maximum number of timer expiration overruns. */
+#define DELAYTIMER_MAX 2147483647
+
+/* Maximum tty name length. */
+#define TTY_NAME_MAX 32
+
+/* Maximum login name length. This is arbitrary. */
+#define LOGIN_NAME_MAX 256
+
+/* Maximum host name length. */
+#define HOST_NAME_MAX 64
+
+/* Maximum message queue priority level. */
+#define MQ_PRIO_MAX 32768
+
+/* Maximum value the semaphore can have. */
+#define SEM_VALUE_MAX (2147483647)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/mman.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/mman.h
new file mode 100644
index 0000000000..7fc3ef3e86
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/mman.h
@@ -0,0 +1,44 @@
+/* Definitions for POSIX memory map interface. Linux/AArch64 version.
+
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MMAN_H
+# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
+#endif
+
+/* 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 0x00100 /* Stack-like segment. */
+# define MAP_DENYWRITE 0x00800 /* ETXTBSY */
+# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
+# define MAP_LOCKED 0x02000 /* Lock the mapping. */
+# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
+# define MAP_POPULATE 0x08000 /* 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/aarch64/bits/sigstack.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h
new file mode 100644
index 0000000000..434b24e926
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h
@@ -0,0 +1,32 @@
+/* sigstack, sigaltstack definitions.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_SIGSTACK_H
+#define _BITS_SIGSTACK_H 1
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
+# error "Never include this file directly. Use <signal.h> instead"
+#endif
+
+/* Minimum stack size for a signal handler. */
+#define MINSIGSTKSZ 5120
+
+/* System default stack size. */
+#define SIGSTKSZ 16384
+
+#endif /* bits/sigstack.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/c++-types.data
new file mode 100644
index 0000000000..ac925ccb36
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:l
+blkcnt_t:l
+blksize_t:i
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:m
+fd_mask:l
+fsblkcnt64_t:m
+fsblkcnt_t:m
+fsfilcnt64_t:m
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:m
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:l
+int8_t:a
+intptr_t:l
+key_t:i
+loff_t:l
+mode_t:j
+nlink_t:j
+off64_t:l
+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:l
+register_t:l
+rlim64_t:m
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:m
+socklen_t:j
+ssize_t:l
+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:m
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:m
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/clone.S
new file mode 100644
index 0000000000..259ec073c5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/clone.S
@@ -0,0 +1,92 @@
+/* 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/>. */
+
+/* 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>
+
+#define CLONE_VM_BIT 8
+#define CLONE_VM (1 << CLONE_VM_BIT)
+
+#define CLONE_THREAD_BIT 16
+#define CLONE_THREAD (1 << CLONE_THREAD_BIT)
+
+/* int clone(int (*fn)(void *arg), x0
+ void *child_stack, x1
+ int flags, x2
+ void *arg, x3
+ pid_t *ptid, x4
+ struct user_desc *tls, x5
+ pid_t *ctid); x6
+ */
+ .text
+ENTRY(__clone)
+ DELOUSE (0)
+ DELOUSE (1)
+ DELOUSE (2)
+ DELOUSE (3)
+ DELOUSE (4)
+ DELOUSE (5)
+ DELOUSE (6)
+ /* Save args for the child. */
+ mov x10, x0
+ mov x11, x2
+ mov x12, x3
+
+ /* Sanity check args. */
+ mov x0, #-EINVAL
+ cbz x10, .Lsyscall_error
+ cbz x1, .Lsyscall_error
+
+ /* Do the system call. */
+ /* X0:flags, x1:newsp, x2:parenttidptr, x3:newtls, x4:childtid. */
+ mov x0, x2 /* flags */
+ /* New sp is already in x1. */
+ mov x2, x4 /* ptid */
+ mov x3, x5 /* tls */
+ mov x4, x6 /* ctid */
+ mov x8, #SYS_ify(clone)
+ svc 0x0
+
+ cmp x0, #0
+ beq thread_start
+ blt .Lsyscall_error
+ RET
+PSEUDO_END (__clone)
+
+ .align 4
+ .type thread_start, %function
+thread_start:
+ cfi_startproc
+ cfi_undefined (x30)
+ mov x29, 0
+
+ /* Pick the function arg and execute. */
+ mov x0, x12
+ blr x10
+
+ /* We are done, pass the return value through x0. */
+ b HIDDEN_JUMPTARGET(_exit)
+ cfi_endproc
+ .size thread_start, .-thread_start
+
+libc_hidden_def (__clone)
+weak_alias (__clone, clone)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/configure b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/configure
new file mode 100644
index 0000000000..f48472c5b6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/configure
@@ -0,0 +1,17 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/aarch64.
+
+arch_minimum_kernel=3.7.0
+
+test -n "$libc_cv_slibdir" ||
+case "$prefix" in
+/usr | /usr/)
+ libc_cv_slibdir=/lib64
+ libc_cv_rtlddir=/lib
+ if test "$libdir" = '${exec_prefix}/lib'; then
+ libdir='${exec_prefix}/lib64';
+ # Locale data can be shared between 32-bit and 64-bit libraries.
+ libc_cv_complocaledir='${exec_prefix}/lib/locale'
+ fi
+ ;;
+esac
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/configure.ac
new file mode 100644
index 0000000000..211fa9c317
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/configure.ac
@@ -0,0 +1,6 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/aarch64.
+
+arch_minimum_kernel=3.7.0
+
+LIBC_SLIBDIR_RTLDDIR([lib64], [lib])
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/cpu-features.c b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
new file mode 100644
index 0000000000..ef6eecd17e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
@@ -0,0 +1,37 @@
+/* Initialize CPU feature data. AArch64 version.
+ This file is part of the GNU C Library.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+
+ 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 <cpu-features.h>
+#include <sys/auxv.h>
+#include <elf/dl-hwcaps.h>
+
+static inline void
+init_cpu_features (struct cpu_features *cpu_features)
+{
+ uint64_t hwcap_mask = GET_HWCAP_MASK();
+ uint64_t hwcap = GLRO (dl_hwcap) & hwcap_mask;
+
+ if (hwcap & HWCAP_CPUID)
+ {
+ register uint64_t id = 0;
+ asm volatile ("mrs %0, midr_el1" : "=r"(id));
+ cpu_features->midr_el1 = id;
+ }
+ else
+ cpu_features->midr_el1 = 0;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/cpu-features.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/cpu-features.h
new file mode 100644
index 0000000000..c92b650984
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/cpu-features.h
@@ -0,0 +1,49 @@
+/* Initialize CPU feature data. AArch64 version.
+ This file is part of the GNU C Library.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+
+ 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 _CPU_FEATURES_AARCH64_H
+#define _CPU_FEATURES_AARCH64_H
+
+#include <stdint.h>
+
+#define MIDR_PARTNUM_SHIFT 4
+#define MIDR_PARTNUM_MASK (0xfff << MIDR_PARTNUM_SHIFT)
+#define MIDR_PARTNUM(midr) \
+ (((midr) & MIDR_PARTNUM_MASK) >> MIDR_PARTNUM_SHIFT)
+#define MIDR_ARCHITECTURE_SHIFT 16
+#define MIDR_ARCHITECTURE_MASK (0xf << MIDR_ARCHITECTURE_SHIFT)
+#define MIDR_ARCHITECTURE(midr) \
+ (((midr) & MIDR_ARCHITECTURE_MASK) >> MIDR_ARCHITECTURE_SHIFT)
+#define MIDR_VARIANT_SHIFT 20
+#define MIDR_VARIANT_MASK (0xf << MIDR_VARIANT_SHIFT)
+#define MIDR_VARIANT(midr) \
+ (((midr) & MIDR_VARIANT_MASK) >> MIDR_VARIANT_SHIFT)
+#define MIDR_IMPLEMENTOR_SHIFT 24
+#define MIDR_IMPLEMENTOR_MASK (0xff << MIDR_IMPLEMENTOR_SHIFT)
+#define MIDR_IMPLEMENTOR(midr) \
+ (((midr) & MIDR_IMPLEMENTOR_MASK) >> MIDR_IMPLEMENTOR_SHIFT)
+
+#define IS_THUNDERX(midr) (MIDR_IMPLEMENTOR(midr) == 'C' \
+ && MIDR_PARTNUM(midr) == 0x0a1)
+
+struct cpu_features
+{
+ uint64_t midr_el1;
+};
+
+#endif /* _CPU_FEATURES_AARCH64_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-cache.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-cache.h
new file mode 100644
index 0000000000..90e1734347
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-cache.h
@@ -0,0 +1,56 @@
+/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
+ 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 <ldconfig.h>
+
+#ifdef __LP64__
+# define _DL_CACHE_DEFAULT_ID (FLAG_AARCH64_LIB64 | FLAG_ELF_LIBC6)
+#else
+# define _DL_CACHE_DEFAULT_ID (FLAG_AARCH64_LIB32 | FLAG_ELF_LIBC6)
+#endif
+
+#define _dl_cache_check_flags(flags) \
+ ((flags) == _DL_CACHE_DEFAULT_ID)
+
+#define add_system_dir(dir) \
+ do \
+ { \
+ size_t len = strlen (dir); \
+ char path[len + 6]; \
+ memcpy (path, dir, len + 1); \
+ if (len >= 6 && ! memcmp (path + len - 6, "/lib64", 6)) \
+ { \
+ len -= 2; \
+ path[len] = '\0'; \
+ } \
+ if (len >= 9 && ! memcmp (path + len - 9, "/libilp32", 9))\
+ { \
+ len -= 5; \
+ path[len] = '\0'; \
+ } \
+ add_dir (path); \
+ if (len >= 4 && ! memcmp (path + len - 4, "/lib", 4)) \
+ { \
+ memcpy (path + len, "64", 3); \
+ add_dir (path); \
+ memcpy (path + len, "ilp32", 6); \
+ add_dir (path); \
+ } \
+ } while (0)
+
+#include_next <dl-cache.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
new file mode 100644
index 0000000000..bc37bad782
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
@@ -0,0 +1,75 @@
+/* Data for AArch64 version of processor capability information.
+ Linux version.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* If anything should be added here check whether the size of each string
+ is still ok with the given array size.
+
+ All the #ifdefs in the definitions are quite irritating but
+ necessary if we want to avoid duplicating the information. There
+ are three different modes:
+
+ - PROCINFO_DECL is defined. This means we are only interested in
+ declarations.
+
+ - PROCINFO_DECL is not defined:
+
+ + if SHARED is defined the file is included in an array
+ initializer. The .element = { ... } syntax is needed.
+
+ + if SHARED is not defined a normal array initialization is
+ needed.
+ */
+
+#ifndef PROCINFO_CLASS
+# define PROCINFO_CLASS
+#endif
+
+#if !IS_IN (ldconfig)
+# if !defined PROCINFO_DECL && defined SHARED
+ ._dl_aarch64_cpu_features
+# else
+PROCINFO_CLASS struct cpu_features _dl_aarch64_cpu_features
+# endif
+# ifndef PROCINFO_DECL
+= { }
+# endif
+# if !defined SHARED || defined PROCINFO_DECL
+;
+# else
+,
+# endif
+#endif
+
+#if !defined PROCINFO_DECL && defined SHARED
+ ._dl_aarch64_cap_flags
+#else
+PROCINFO_CLASS const char _dl_aarch64_cap_flags[13][10]
+#endif
+#ifndef PROCINFO_DECL
+= { "fp", "asimd", "evtstrm", "aes", "pmull", "sha1", "sha2", "crc32",
+ "atomics", "fphp", "asimdhp", "cpuid", "asimdrdm"}
+#endif
+#if !defined SHARED || defined PROCINFO_DECL
+;
+#else
+,
+#endif
+
+#undef PROCINFO_DECL
+#undef PROCINFO_CLASS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h
new file mode 100644
index 0000000000..cdb36d3316
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h
@@ -0,0 +1,86 @@
+/* Processor capability information handling macros - aarch64 version.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _DL_PROCINFO_H
+#define _DL_PROCINFO_H 1
+
+#include <sys/auxv.h>
+#include <unistd.h>
+#include <ldsodefs.h>
+#include <sysdep.h>
+
+/* We cannot provide a general printing function. */
+static inline int
+__attribute__ ((unused))
+_dl_procinfo (unsigned int type, unsigned long int word)
+{
+ /* This table should match the information from arch/arm64/kernel/cpuinfo.c
+ in the kernel sources. */
+ int i;
+
+ /* Fallback to unknown output mechanism. */
+ if (type == AT_HWCAP2)
+ return -1;
+
+ _dl_printf ("AT_HWCAP: ");
+
+ for (i = 0; i < 32; ++i)
+ if (word & (1 << i))
+ _dl_printf (" %s", GLRO(dl_aarch64_cap_flags)[i]);
+
+ _dl_printf ("\n");
+
+ return 0;
+}
+
+static inline const char *
+__attribute__ ((unused))
+_dl_hwcap_string (int idx)
+{
+ return GLRO(dl_aarch64_cap_flags)[idx];
+};
+
+
+/* 13 HWCAP bits set. */
+#define _DL_HWCAP_COUNT 13
+
+/* Low 13 bits are allocated in HWCAP. */
+#define _DL_HWCAP_LAST 12
+
+/* HWCAP_CPUID should be available by default to influence IFUNC as well as
+ library search. */
+#define HWCAP_IMPORTANT HWCAP_CPUID
+
+static inline int
+__attribute__ ((unused))
+_dl_string_hwcap (const char *str)
+{
+ for (int i = 0; i < _DL_HWCAP_COUNT; i++)
+ {
+ if (strcmp (str, _dl_hwcap_string (i)) == 0)
+ return i;
+ }
+ return -1;
+};
+
+/* There're no platforms to filter out. */
+#define _DL_HWCAP_PLATFORM 0
+
+#define _dl_string_platform(str) (-1)
+
+#endif /* dl-procinfo.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-static.c b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-static.c
new file mode 100644
index 0000000000..fcda0df16f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-static.c
@@ -0,0 +1,84 @@
+/* Variable initialization. AArch64 version.
+ Copyright (C) 2001-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 <ldsodefs.h>
+
+#ifdef SHARED
+
+void
+_dl_var_init (void *array[])
+{
+ /* It has to match "variables" below. */
+ enum
+ {
+ DL_PAGESIZE = 0
+ };
+
+ GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]);
+}
+
+#else
+
+static void *variables[] =
+{
+ &GLRO(dl_pagesize)
+};
+
+static void
+_dl_unprotect_relro (struct link_map *l)
+{
+ ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
+ & ~(GLRO(dl_pagesize) - 1));
+ ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
+ & ~(GLRO(dl_pagesize) - 1));
+
+ if (start != end)
+ __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
+}
+
+void
+_dl_static_init (struct link_map *l)
+{
+ struct link_map *rtld_map = l;
+ struct r_scope_elem **scope;
+ const ElfW(Sym) *ref = NULL;
+ lookup_t loadbase;
+ void (*f) (void *[]);
+ size_t i;
+
+ loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
+ NULL, 0, 1, NULL);
+
+ for (scope = l->l_local_scope; *scope != NULL; scope++)
+ for (i = 0; i < (*scope)->r_nlist; i++)
+ if ((*scope)->r_list[i] == loadbase)
+ {
+ rtld_map = (*scope)->r_list[i];
+ break;
+ }
+
+ if (ref != NULL)
+ {
+ f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
+ _dl_unprotect_relro (rtld_map);
+ f (variables);
+ _dl_protect_relro (rtld_map);
+ }
+}
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/getcontext.S
new file mode 100644
index 0000000000..fa7074c590
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/getcontext.S
@@ -0,0 +1,109 @@
+/* Save current context.
+
+ 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 "ucontext_i.h"
+#include "ucontext-internal.h"
+
+/* int getcontext (ucontext_t *ucp)
+
+ Returns 0 on success -1 and errno on failure.
+ */
+
+ .text
+
+ENTRY(__getcontext)
+ DELOUSE (0)
+ /* The saved context will return to the getcontext() call point
+ with a return value of 0 */
+ str xzr, [x0, oX0 + 0 * SZREG]
+
+ stp x18, x19, [x0, oX0 + 18 * SZREG]
+ stp x20, x21, [x0, oX0 + 20 * SZREG]
+ stp x22, x23, [x0, oX0 + 22 * SZREG]
+ stp x24, x25, [x0, oX0 + 24 * SZREG]
+ stp x26, x27, [x0, oX0 + 26 * SZREG]
+ stp x28, x29, [x0, oX0 + 28 * SZREG]
+ str x30, [x0, oX0 + 30 * SZREG]
+
+ /* Place LR into the saved PC, this will ensure that when
+ switching to this saved context with setcontext() control
+ will pass back to the caller of getcontext(), we have
+ already arrange to return the appropriate return value in x0
+ above. */
+ str x30, [x0, oPC]
+
+ /* Save the current SP */
+ mov x2, sp
+ str x2, [x0, oSP]
+
+ /* Initialize the pstate. */
+ str xzr, [x0, oPSTATE]
+
+ /* Figure out where to place the first context extension
+ block. */
+ add x2, x0, #oEXTENSION
+
+ /* Write the context extension fpsimd header. */
+ mov w3, #(FPSIMD_MAGIC & 0xffff)
+ movk w3, #(FPSIMD_MAGIC >> 16), lsl #16
+ str w3, [x2, #oHEAD + oMAGIC]
+ mov w3, #FPSIMD_CONTEXT_SIZE
+ str w3, [x2, #oHEAD + oSIZE]
+
+ /* Fill in the FP SIMD context. */
+ add x3, x2, #oV0 + 8 * SZVREG
+ stp q8, q9, [x3], # 2 * SZVREG
+ stp q10, q11, [x3], # 2 * SZVREG
+ stp q12, q13, [x3], # 2 * SZVREG
+ stp q14, q15, [x3], # 2 * SZVREG
+
+ add x3, x2, oFPSR
+
+ mrs x4, fpsr
+ str w4, [x3]
+
+ mrs x4, fpcr
+ str w4, [x3, oFPCR - oFPSR]
+
+ /* Write the termination context extension header. */
+ add x2, x2, #FPSIMD_CONTEXT_SIZE
+
+ str xzr, [x2, #oHEAD + oMAGIC]
+ str xzr, [x2, #oHEAD + oSIZE]
+
+ /* Grab the signal mask */
+ /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
+ add PTR_REG (2), PTR_REG (0), #UCONTEXT_SIGMASK
+ mov x0, SIG_BLOCK
+ mov x1, 0
+ mov x3, _NSIG8
+ mov x8, SYS_ify (rt_sigprocmask)
+ svc 0
+ cbnz x0, 1f
+
+ /* Return 0 for success */
+ mov x0, 0
+ RET
+1:
+ b C_SYMBOL_NAME(__syscall_error)
+
+ PSEUDO_END (__getcontext)
+weak_alias (__getcontext, getcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/init-first.c b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/init-first.c
new file mode 100644
index 0000000000..96f5338994
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/init-first.c
@@ -0,0 +1,52 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef SHARED
+# include <dl-vdso.h>
+# include <libc-vdso.h>
+
+int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *) attribute_hidden;
+int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *);
+int (*VDSO_SYMBOL(clock_getres)) (clockid_t, struct timespec *);
+
+static inline void
+_libc_vdso_platform_setup (void)
+{
+#ifdef __LP64__
+ PREPARE_VERSION (linux_version, "LINUX_2.6.39", 123718537);
+#else
+ PREPARE_VERSION (linux_version, "LINUX_4.9", 61765625);
+#endif
+
+ void *p = _dl_vdso_vsym ("__kernel_gettimeofday", &linux_version);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL(gettimeofday) = p;
+
+ p = _dl_vdso_vsym ("__kernel_clock_gettime", &linux_version);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL(clock_gettime) = p;
+
+ p = _dl_vdso_vsym ("__kernel_clock_getres", &linux_version);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL(clock_getres) = p;
+}
+
+# define VDSO_SETUP _libc_vdso_platform_setup
+#endif
+
+#include <csu/init-first.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ioctl.S b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ioctl.S
new file mode 100644
index 0000000000..866d6ef12d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ioctl.S
@@ -0,0 +1,31 @@
+/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ .text
+ENTRY(__ioctl)
+ mov x8, #__NR_ioctl
+ sxtw x0, w0
+ svc #0x0
+ cmn x0, #4095
+ b.cs .Lsyscall_error
+ ret
+PSEUDO_END (__ioctl)
+
+weak_alias (__ioctl, ioctl)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ipc_priv.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ipc_priv.h
new file mode 100644
index 0000000000..8d12f31573
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ipc_priv.h
@@ -0,0 +1,21 @@
+/* Old SysV permission definition for Linux. AArch64 version.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/ipc.h> /* For __key_t */
+
+#define __IPC_64 0x0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h
new file mode 100644
index 0000000000..e67ddfa91c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h
@@ -0,0 +1,25 @@
+/* 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/>. */
+
+/* This structure must have the same shape as the linux kernel
+ equivalent. */
+struct kernel_rt_sigframe
+{
+ siginfo_t info;
+ struct ucontext uc;
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ld.abilist
new file mode 100644
index 0000000000..ec7f6174c5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ld.abilist
@@ -0,0 +1,10 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 __libc_stack_end D 0x8
+GLIBC_2.17 __stack_chk_guard D 0x8
+GLIBC_2.17 __tls_get_addr F
+GLIBC_2.17 _dl_mcount F
+GLIBC_2.17 _r_debug D 0x28
+GLIBC_2.17 calloc F
+GLIBC_2.17 free F
+GLIBC_2.17 malloc F
+GLIBC_2.17 realloc F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ldconfig.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ldconfig.h
new file mode 100644
index 0000000000..e1c334c478
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ldconfig.h
@@ -0,0 +1,30 @@
+/* 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 <sysdeps/generic/ldconfig.h>
+
+#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+ { "/lib/ld-linux-aarch64.so.1", FLAG_ELF_LIBC6 }, \
+ { "/lib/ld-linux-aarch64_be.so.1", FLAG_ELF_LIBC6 }, \
+ { "/lib/ld-linux-aarch64_ilp32.so.1", FLAG_ELF_LIBC6 }, \
+ { "/lib/ld-linux-aarch64_be_ilp32.so.1", FLAG_ELF_LIBC6 }, \
+ { "/lib/ld-linux.so.3", FLAG_ELF_LIBC6 }, \
+ { "/lib/ld-linux-armhf.so.3", FLAG_ELF_LIBC6 },
+#define SYSDEP_KNOWN_LIBRARY_NAMES \
+ { "libc.so.6", FLAG_ELF_LIBC6 }, \
+ { "libm.so.6", FLAG_ELF_LIBC6 },
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
new file mode 100644
index 0000000000..74ce6aa797
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
@@ -0,0 +1,32 @@
+/* Run-time dynamic linker data structures for loaded ELF shared objects. Tile.
+ Copyright (C) 2001-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 _LDSODEFS_H
+
+/* Get the real definitions. */
+#include_next <ldsodefs.h>
+
+/* Now define our stuff. */
+
+/* We need special support to initialize DSO loaded for statically linked
+ binaries. */
+extern void _dl_static_init (struct link_map *map);
+#undef DL_STATIC_INIT
+#define DL_STATIC_INIT(map) _dl_static_init (map)
+
+#endif /* ldsodefs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libBrokenLocale.abilist
new file mode 100644
index 0000000000..5e54974368
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libBrokenLocale.abilist
@@ -0,0 +1,2 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 __ctype_get_mb_cur_max F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libanl.abilist
new file mode 100644
index 0000000000..21330fc8d5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 gai_cancel F
+GLIBC_2.17 gai_error F
+GLIBC_2.17 gai_suspend F
+GLIBC_2.17 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-__read_tp.S b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-__read_tp.S
new file mode 100644
index 0000000000..47df81abe6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-__read_tp.S
@@ -0,0 +1,19 @@
+/* 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 <__read_tp.S>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-start.c b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-start.c
new file mode 100644
index 0000000000..089a728a87
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-start.c
@@ -0,0 +1,28 @@
+/* Override csu/libc-start.c on AArch64.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef SHARED
+# include <ldsodefs.h>
+# include <cpu-features.c>
+
+extern struct cpu_features _dl_aarch64_cpu_features;
+
+# define ARCH_INIT_CPU_FEATURES() init_cpu_features (&_dl_aarch64_cpu_features)
+
+#endif
+#include <csu/libc-start.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-vdso.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-vdso.h
new file mode 100644
index 0000000000..599ae9852c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-vdso.h
@@ -0,0 +1,33 @@
+/* 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/>. */
+
+#ifndef _LIBC_VDSO_H
+#define _LIBC_VDSO_H
+
+#ifdef SHARED
+
+# include <sysdep-vdso.h>
+
+extern int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *)
+ attribute_hidden;
+extern int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *);
+extern int (*VDSO_SYMBOL(clock_getres)) (clockid_t, struct timespec *);
+
+#endif
+
+#endif /* _LIBC_VDSO_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc.abilist
new file mode 100644
index 0000000000..81e4fe9d9c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -0,0 +1,2105 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 _Exit F
+GLIBC_2.17 _IO_2_1_stderr_ D 0xe0
+GLIBC_2.17 _IO_2_1_stdin_ D 0xe0
+GLIBC_2.17 _IO_2_1_stdout_ D 0xe0
+GLIBC_2.17 _IO_adjust_column F
+GLIBC_2.17 _IO_adjust_wcolumn F
+GLIBC_2.17 _IO_default_doallocate F
+GLIBC_2.17 _IO_default_finish F
+GLIBC_2.17 _IO_default_pbackfail F
+GLIBC_2.17 _IO_default_uflow F
+GLIBC_2.17 _IO_default_xsgetn F
+GLIBC_2.17 _IO_default_xsputn F
+GLIBC_2.17 _IO_do_write F
+GLIBC_2.17 _IO_doallocbuf F
+GLIBC_2.17 _IO_fclose F
+GLIBC_2.17 _IO_fdopen F
+GLIBC_2.17 _IO_feof F
+GLIBC_2.17 _IO_ferror F
+GLIBC_2.17 _IO_fflush F
+GLIBC_2.17 _IO_fgetpos F
+GLIBC_2.17 _IO_fgetpos64 F
+GLIBC_2.17 _IO_fgets F
+GLIBC_2.17 _IO_file_attach F
+GLIBC_2.17 _IO_file_close F
+GLIBC_2.17 _IO_file_close_it F
+GLIBC_2.17 _IO_file_doallocate F
+GLIBC_2.17 _IO_file_finish F
+GLIBC_2.17 _IO_file_fopen F
+GLIBC_2.17 _IO_file_init F
+GLIBC_2.17 _IO_file_jumps D 0xa8
+GLIBC_2.17 _IO_file_open F
+GLIBC_2.17 _IO_file_overflow F
+GLIBC_2.17 _IO_file_read F
+GLIBC_2.17 _IO_file_seek F
+GLIBC_2.17 _IO_file_seekoff F
+GLIBC_2.17 _IO_file_setbuf F
+GLIBC_2.17 _IO_file_stat F
+GLIBC_2.17 _IO_file_sync F
+GLIBC_2.17 _IO_file_underflow F
+GLIBC_2.17 _IO_file_write F
+GLIBC_2.17 _IO_file_xsputn F
+GLIBC_2.17 _IO_flockfile F
+GLIBC_2.17 _IO_flush_all F
+GLIBC_2.17 _IO_flush_all_linebuffered F
+GLIBC_2.17 _IO_fopen F
+GLIBC_2.17 _IO_fprintf F
+GLIBC_2.17 _IO_fputs F
+GLIBC_2.17 _IO_fread F
+GLIBC_2.17 _IO_free_backup_area F
+GLIBC_2.17 _IO_free_wbackup_area F
+GLIBC_2.17 _IO_fsetpos F
+GLIBC_2.17 _IO_fsetpos64 F
+GLIBC_2.17 _IO_ftell F
+GLIBC_2.17 _IO_ftrylockfile F
+GLIBC_2.17 _IO_funlockfile F
+GLIBC_2.17 _IO_fwrite F
+GLIBC_2.17 _IO_getc F
+GLIBC_2.17 _IO_getline F
+GLIBC_2.17 _IO_getline_info F
+GLIBC_2.17 _IO_gets F
+GLIBC_2.17 _IO_init F
+GLIBC_2.17 _IO_init_marker F
+GLIBC_2.17 _IO_init_wmarker F
+GLIBC_2.17 _IO_iter_begin F
+GLIBC_2.17 _IO_iter_end F
+GLIBC_2.17 _IO_iter_file F
+GLIBC_2.17 _IO_iter_next F
+GLIBC_2.17 _IO_least_wmarker F
+GLIBC_2.17 _IO_link_in F
+GLIBC_2.17 _IO_list_all D 0x8
+GLIBC_2.17 _IO_list_lock F
+GLIBC_2.17 _IO_list_resetlock F
+GLIBC_2.17 _IO_list_unlock F
+GLIBC_2.17 _IO_marker_delta F
+GLIBC_2.17 _IO_marker_difference F
+GLIBC_2.17 _IO_padn F
+GLIBC_2.17 _IO_peekc_locked F
+GLIBC_2.17 _IO_popen F
+GLIBC_2.17 _IO_printf F
+GLIBC_2.17 _IO_proc_close F
+GLIBC_2.17 _IO_proc_open F
+GLIBC_2.17 _IO_putc F
+GLIBC_2.17 _IO_puts F
+GLIBC_2.17 _IO_remove_marker F
+GLIBC_2.17 _IO_seekmark F
+GLIBC_2.17 _IO_seekoff F
+GLIBC_2.17 _IO_seekpos F
+GLIBC_2.17 _IO_seekwmark F
+GLIBC_2.17 _IO_setb F
+GLIBC_2.17 _IO_setbuffer F
+GLIBC_2.17 _IO_setvbuf F
+GLIBC_2.17 _IO_sgetn F
+GLIBC_2.17 _IO_sprintf F
+GLIBC_2.17 _IO_sputbackc F
+GLIBC_2.17 _IO_sputbackwc F
+GLIBC_2.17 _IO_sscanf F
+GLIBC_2.17 _IO_str_init_readonly F
+GLIBC_2.17 _IO_str_init_static F
+GLIBC_2.17 _IO_str_overflow F
+GLIBC_2.17 _IO_str_pbackfail F
+GLIBC_2.17 _IO_str_seekoff F
+GLIBC_2.17 _IO_str_underflow F
+GLIBC_2.17 _IO_sungetc F
+GLIBC_2.17 _IO_sungetwc F
+GLIBC_2.17 _IO_switch_to_get_mode F
+GLIBC_2.17 _IO_switch_to_main_wget_area F
+GLIBC_2.17 _IO_switch_to_wbackup_area F
+GLIBC_2.17 _IO_switch_to_wget_mode F
+GLIBC_2.17 _IO_un_link F
+GLIBC_2.17 _IO_ungetc F
+GLIBC_2.17 _IO_unsave_markers F
+GLIBC_2.17 _IO_unsave_wmarkers F
+GLIBC_2.17 _IO_vfprintf F
+GLIBC_2.17 _IO_vfscanf F
+GLIBC_2.17 _IO_vsprintf F
+GLIBC_2.17 _IO_wdefault_doallocate F
+GLIBC_2.17 _IO_wdefault_finish F
+GLIBC_2.17 _IO_wdefault_pbackfail F
+GLIBC_2.17 _IO_wdefault_uflow F
+GLIBC_2.17 _IO_wdefault_xsgetn F
+GLIBC_2.17 _IO_wdefault_xsputn F
+GLIBC_2.17 _IO_wdo_write F
+GLIBC_2.17 _IO_wdoallocbuf F
+GLIBC_2.17 _IO_wfile_jumps D 0xa8
+GLIBC_2.17 _IO_wfile_overflow F
+GLIBC_2.17 _IO_wfile_seekoff F
+GLIBC_2.17 _IO_wfile_sync F
+GLIBC_2.17 _IO_wfile_underflow F
+GLIBC_2.17 _IO_wfile_xsputn F
+GLIBC_2.17 _IO_wmarker_delta F
+GLIBC_2.17 _IO_wsetb F
+GLIBC_2.17 ___brk_addr D 0x8
+GLIBC_2.17 __adjtimex F
+GLIBC_2.17 __after_morecore_hook D 0x8
+GLIBC_2.17 __argz_count F
+GLIBC_2.17 __argz_next F
+GLIBC_2.17 __argz_stringify F
+GLIBC_2.17 __asprintf F
+GLIBC_2.17 __asprintf_chk F
+GLIBC_2.17 __assert F
+GLIBC_2.17 __assert_fail F
+GLIBC_2.17 __assert_perror_fail F
+GLIBC_2.17 __backtrace F
+GLIBC_2.17 __backtrace_symbols F
+GLIBC_2.17 __backtrace_symbols_fd F
+GLIBC_2.17 __bsd_getpgrp F
+GLIBC_2.17 __bzero F
+GLIBC_2.17 __check_rhosts_file D 0x4
+GLIBC_2.17 __chk_fail F
+GLIBC_2.17 __clone F
+GLIBC_2.17 __close F
+GLIBC_2.17 __cmsg_nxthdr F
+GLIBC_2.17 __confstr_chk F
+GLIBC_2.17 __connect F
+GLIBC_2.17 __ctype_b_loc F
+GLIBC_2.17 __ctype_get_mb_cur_max F
+GLIBC_2.17 __ctype_tolower_loc F
+GLIBC_2.17 __ctype_toupper_loc F
+GLIBC_2.17 __curbrk D 0x8
+GLIBC_2.17 __cxa_at_quick_exit F
+GLIBC_2.17 __cxa_atexit F
+GLIBC_2.17 __cxa_finalize F
+GLIBC_2.17 __cyg_profile_func_enter F
+GLIBC_2.17 __cyg_profile_func_exit F
+GLIBC_2.17 __daylight D 0x4
+GLIBC_2.17 __dcgettext F
+GLIBC_2.17 __default_morecore F
+GLIBC_2.17 __dgettext F
+GLIBC_2.17 __dprintf_chk F
+GLIBC_2.17 __dup2 F
+GLIBC_2.17 __duplocale F
+GLIBC_2.17 __endmntent F
+GLIBC_2.17 __environ D 0x8
+GLIBC_2.17 __errno_location F
+GLIBC_2.17 __fbufsize F
+GLIBC_2.17 __fcntl F
+GLIBC_2.17 __fdelt_chk F
+GLIBC_2.17 __fdelt_warn F
+GLIBC_2.17 __ffs F
+GLIBC_2.17 __fgets_chk F
+GLIBC_2.17 __fgets_unlocked_chk F
+GLIBC_2.17 __fgetws_chk F
+GLIBC_2.17 __fgetws_unlocked_chk F
+GLIBC_2.17 __finite F
+GLIBC_2.17 __finitef F
+GLIBC_2.17 __finitel F
+GLIBC_2.17 __flbf F
+GLIBC_2.17 __fork F
+GLIBC_2.17 __fpending F
+GLIBC_2.17 __fprintf_chk F
+GLIBC_2.17 __fpu_control D 0x4
+GLIBC_2.17 __fpurge F
+GLIBC_2.17 __fread_chk F
+GLIBC_2.17 __fread_unlocked_chk F
+GLIBC_2.17 __freadable F
+GLIBC_2.17 __freading F
+GLIBC_2.17 __free_hook D 0x8
+GLIBC_2.17 __freelocale F
+GLIBC_2.17 __fsetlocking F
+GLIBC_2.17 __fwprintf_chk F
+GLIBC_2.17 __fwritable F
+GLIBC_2.17 __fwriting F
+GLIBC_2.17 __fxstat F
+GLIBC_2.17 __fxstat64 F
+GLIBC_2.17 __fxstatat F
+GLIBC_2.17 __fxstatat64 F
+GLIBC_2.17 __getauxval F
+GLIBC_2.17 __getcwd_chk F
+GLIBC_2.17 __getdelim F
+GLIBC_2.17 __getdomainname_chk F
+GLIBC_2.17 __getgroups_chk F
+GLIBC_2.17 __gethostname_chk F
+GLIBC_2.17 __getlogin_r_chk F
+GLIBC_2.17 __getmntent_r F
+GLIBC_2.17 __getpagesize F
+GLIBC_2.17 __getpgid F
+GLIBC_2.17 __getpid F
+GLIBC_2.17 __gets_chk F
+GLIBC_2.17 __gettimeofday F
+GLIBC_2.17 __getwd_chk F
+GLIBC_2.17 __gmtime_r F
+GLIBC_2.17 __h_errno_location F
+GLIBC_2.17 __isalnum_l F
+GLIBC_2.17 __isalpha_l F
+GLIBC_2.17 __isascii_l F
+GLIBC_2.17 __isblank_l F
+GLIBC_2.17 __iscntrl_l F
+GLIBC_2.17 __isctype F
+GLIBC_2.17 __isdigit_l F
+GLIBC_2.17 __isgraph_l F
+GLIBC_2.17 __isinf F
+GLIBC_2.17 __isinff F
+GLIBC_2.17 __isinfl F
+GLIBC_2.17 __islower_l F
+GLIBC_2.17 __isnan F
+GLIBC_2.17 __isnanf F
+GLIBC_2.17 __isnanl F
+GLIBC_2.17 __isoc99_fscanf F
+GLIBC_2.17 __isoc99_fwscanf F
+GLIBC_2.17 __isoc99_scanf F
+GLIBC_2.17 __isoc99_sscanf F
+GLIBC_2.17 __isoc99_swscanf F
+GLIBC_2.17 __isoc99_vfscanf F
+GLIBC_2.17 __isoc99_vfwscanf F
+GLIBC_2.17 __isoc99_vscanf F
+GLIBC_2.17 __isoc99_vsscanf F
+GLIBC_2.17 __isoc99_vswscanf F
+GLIBC_2.17 __isoc99_vwscanf F
+GLIBC_2.17 __isoc99_wscanf F
+GLIBC_2.17 __isprint_l F
+GLIBC_2.17 __ispunct_l F
+GLIBC_2.17 __isspace_l F
+GLIBC_2.17 __isupper_l F
+GLIBC_2.17 __iswalnum_l F
+GLIBC_2.17 __iswalpha_l F
+GLIBC_2.17 __iswblank_l F
+GLIBC_2.17 __iswcntrl_l F
+GLIBC_2.17 __iswctype F
+GLIBC_2.17 __iswctype_l F
+GLIBC_2.17 __iswdigit_l F
+GLIBC_2.17 __iswgraph_l F
+GLIBC_2.17 __iswlower_l F
+GLIBC_2.17 __iswprint_l F
+GLIBC_2.17 __iswpunct_l F
+GLIBC_2.17 __iswspace_l F
+GLIBC_2.17 __iswupper_l F
+GLIBC_2.17 __iswxdigit_l F
+GLIBC_2.17 __isxdigit_l F
+GLIBC_2.17 __ivaliduser F
+GLIBC_2.17 __key_decryptsession_pk_LOCAL D 0x8
+GLIBC_2.17 __key_encryptsession_pk_LOCAL D 0x8
+GLIBC_2.17 __key_gendes_LOCAL D 0x8
+GLIBC_2.17 __libc_allocate_rtsig F
+GLIBC_2.17 __libc_calloc F
+GLIBC_2.17 __libc_current_sigrtmax F
+GLIBC_2.17 __libc_current_sigrtmin F
+GLIBC_2.17 __libc_free F
+GLIBC_2.17 __libc_freeres F
+GLIBC_2.17 __libc_init_first F
+GLIBC_2.17 __libc_mallinfo F
+GLIBC_2.17 __libc_malloc F
+GLIBC_2.17 __libc_mallopt F
+GLIBC_2.17 __libc_memalign F
+GLIBC_2.17 __libc_pvalloc F
+GLIBC_2.17 __libc_realloc F
+GLIBC_2.17 __libc_sa_len F
+GLIBC_2.17 __libc_start_main F
+GLIBC_2.17 __libc_valloc F
+GLIBC_2.17 __longjmp_chk F
+GLIBC_2.17 __lseek F
+GLIBC_2.17 __lxstat F
+GLIBC_2.17 __lxstat64 F
+GLIBC_2.17 __malloc_hook D 0x8
+GLIBC_2.17 __malloc_initialize_hook D 0x8
+GLIBC_2.17 __mbrlen F
+GLIBC_2.17 __mbrtowc F
+GLIBC_2.17 __mbsnrtowcs_chk F
+GLIBC_2.17 __mbsrtowcs_chk F
+GLIBC_2.17 __mbstowcs_chk F
+GLIBC_2.17 __memalign_hook D 0x8
+GLIBC_2.17 __memcpy_chk F
+GLIBC_2.17 __memmove_chk F
+GLIBC_2.17 __mempcpy F
+GLIBC_2.17 __mempcpy_chk F
+GLIBC_2.17 __mempcpy_small F
+GLIBC_2.17 __memset_chk F
+GLIBC_2.17 __monstartup F
+GLIBC_2.17 __morecore D 0x8
+GLIBC_2.17 __nanosleep F
+GLIBC_2.17 __newlocale F
+GLIBC_2.17 __nl_langinfo_l F
+GLIBC_2.17 __nss_configure_lookup F
+GLIBC_2.17 __nss_database_lookup F
+GLIBC_2.17 __nss_group_lookup F
+GLIBC_2.17 __nss_hostname_digits_dots F
+GLIBC_2.17 __nss_hosts_lookup F
+GLIBC_2.17 __nss_next F
+GLIBC_2.17 __nss_passwd_lookup F
+GLIBC_2.17 __obstack_printf_chk F
+GLIBC_2.17 __obstack_vprintf_chk F
+GLIBC_2.17 __open F
+GLIBC_2.17 __open64 F
+GLIBC_2.17 __open64_2 F
+GLIBC_2.17 __open_2 F
+GLIBC_2.17 __openat64_2 F
+GLIBC_2.17 __openat_2 F
+GLIBC_2.17 __overflow F
+GLIBC_2.17 __pipe F
+GLIBC_2.17 __poll F
+GLIBC_2.17 __poll_chk F
+GLIBC_2.17 __posix_getopt F
+GLIBC_2.17 __ppoll_chk F
+GLIBC_2.17 __pread64 F
+GLIBC_2.17 __pread64_chk F
+GLIBC_2.17 __pread_chk F
+GLIBC_2.17 __printf_chk F
+GLIBC_2.17 __printf_fp F
+GLIBC_2.17 __profile_frequency F
+GLIBC_2.17 __progname D 0x8
+GLIBC_2.17 __progname_full D 0x8
+GLIBC_2.17 __ptsname_r_chk F
+GLIBC_2.17 __pwrite64 F
+GLIBC_2.17 __rawmemchr F
+GLIBC_2.17 __rcmd_errstr D 0x8
+GLIBC_2.17 __read F
+GLIBC_2.17 __read_chk F
+GLIBC_2.17 __readlink_chk F
+GLIBC_2.17 __readlinkat_chk F
+GLIBC_2.17 __realloc_hook D 0x8
+GLIBC_2.17 __realpath_chk F
+GLIBC_2.17 __recv_chk F
+GLIBC_2.17 __recvfrom_chk F
+GLIBC_2.17 __register_atfork F
+GLIBC_2.17 __res_init F
+GLIBC_2.17 __res_nclose F
+GLIBC_2.17 __res_ninit F
+GLIBC_2.17 __res_randomid F
+GLIBC_2.17 __res_state F
+GLIBC_2.17 __rpc_thread_createerr F
+GLIBC_2.17 __rpc_thread_svc_fdset F
+GLIBC_2.17 __rpc_thread_svc_max_pollfd F
+GLIBC_2.17 __rpc_thread_svc_pollfd F
+GLIBC_2.17 __sbrk F
+GLIBC_2.17 __sched_cpualloc F
+GLIBC_2.17 __sched_cpucount F
+GLIBC_2.17 __sched_cpufree F
+GLIBC_2.17 __sched_get_priority_max F
+GLIBC_2.17 __sched_get_priority_min F
+GLIBC_2.17 __sched_getparam F
+GLIBC_2.17 __sched_getscheduler F
+GLIBC_2.17 __sched_setscheduler F
+GLIBC_2.17 __sched_yield F
+GLIBC_2.17 __select F
+GLIBC_2.17 __setmntent F
+GLIBC_2.17 __setpgid F
+GLIBC_2.17 __sigaction F
+GLIBC_2.17 __sigaddset F
+GLIBC_2.17 __sigdelset F
+GLIBC_2.17 __sigismember F
+GLIBC_2.17 __signbit F
+GLIBC_2.17 __signbitf F
+GLIBC_2.17 __signbitl F
+GLIBC_2.17 __sigpause F
+GLIBC_2.17 __sigsetjmp F
+GLIBC_2.17 __sigsuspend F
+GLIBC_2.17 __snprintf_chk F
+GLIBC_2.17 __sprintf_chk F
+GLIBC_2.17 __stack_chk_fail F
+GLIBC_2.17 __statfs F
+GLIBC_2.17 __stpcpy F
+GLIBC_2.17 __stpcpy_chk F
+GLIBC_2.17 __stpcpy_small F
+GLIBC_2.17 __stpncpy F
+GLIBC_2.17 __stpncpy_chk F
+GLIBC_2.17 __strcasecmp F
+GLIBC_2.17 __strcasecmp_l F
+GLIBC_2.17 __strcasestr F
+GLIBC_2.17 __strcat_chk F
+GLIBC_2.17 __strcoll_l F
+GLIBC_2.17 __strcpy_chk F
+GLIBC_2.17 __strcpy_small F
+GLIBC_2.17 __strcspn_c1 F
+GLIBC_2.17 __strcspn_c2 F
+GLIBC_2.17 __strcspn_c3 F
+GLIBC_2.17 __strdup F
+GLIBC_2.17 __strerror_r F
+GLIBC_2.17 __strfmon_l F
+GLIBC_2.17 __strftime_l F
+GLIBC_2.17 __strncasecmp_l F
+GLIBC_2.17 __strncat_chk F
+GLIBC_2.17 __strncpy_chk F
+GLIBC_2.17 __strndup F
+GLIBC_2.17 __strpbrk_c2 F
+GLIBC_2.17 __strpbrk_c3 F
+GLIBC_2.17 __strsep_1c F
+GLIBC_2.17 __strsep_2c F
+GLIBC_2.17 __strsep_3c F
+GLIBC_2.17 __strsep_g F
+GLIBC_2.17 __strspn_c1 F
+GLIBC_2.17 __strspn_c2 F
+GLIBC_2.17 __strspn_c3 F
+GLIBC_2.17 __strtod_internal F
+GLIBC_2.17 __strtod_l F
+GLIBC_2.17 __strtof_internal F
+GLIBC_2.17 __strtof_l F
+GLIBC_2.17 __strtok_r F
+GLIBC_2.17 __strtok_r_1c F
+GLIBC_2.17 __strtol_internal F
+GLIBC_2.17 __strtol_l F
+GLIBC_2.17 __strtold_internal F
+GLIBC_2.17 __strtold_l F
+GLIBC_2.17 __strtoll_internal F
+GLIBC_2.17 __strtoll_l F
+GLIBC_2.17 __strtoul_internal F
+GLIBC_2.17 __strtoul_l F
+GLIBC_2.17 __strtoull_internal F
+GLIBC_2.17 __strtoull_l F
+GLIBC_2.17 __strverscmp F
+GLIBC_2.17 __strxfrm_l F
+GLIBC_2.17 __swprintf_chk F
+GLIBC_2.17 __sysconf F
+GLIBC_2.17 __syslog_chk F
+GLIBC_2.17 __sysv_signal F
+GLIBC_2.17 __timezone D 0x8
+GLIBC_2.17 __toascii_l F
+GLIBC_2.17 __tolower_l F
+GLIBC_2.17 __toupper_l F
+GLIBC_2.17 __towctrans F
+GLIBC_2.17 __towctrans_l F
+GLIBC_2.17 __towlower_l F
+GLIBC_2.17 __towupper_l F
+GLIBC_2.17 __ttyname_r_chk F
+GLIBC_2.17 __tzname D 0x10
+GLIBC_2.17 __uflow F
+GLIBC_2.17 __underflow F
+GLIBC_2.17 __uselocale F
+GLIBC_2.17 __vasprintf_chk F
+GLIBC_2.17 __vdprintf_chk F
+GLIBC_2.17 __vfork F
+GLIBC_2.17 __vfprintf_chk F
+GLIBC_2.17 __vfscanf F
+GLIBC_2.17 __vfwprintf_chk F
+GLIBC_2.17 __vprintf_chk F
+GLIBC_2.17 __vsnprintf F
+GLIBC_2.17 __vsnprintf_chk F
+GLIBC_2.17 __vsprintf_chk F
+GLIBC_2.17 __vsscanf F
+GLIBC_2.17 __vswprintf_chk F
+GLIBC_2.17 __vsyslog_chk F
+GLIBC_2.17 __vwprintf_chk F
+GLIBC_2.17 __wait F
+GLIBC_2.17 __waitpid F
+GLIBC_2.17 __wcpcpy_chk F
+GLIBC_2.17 __wcpncpy_chk F
+GLIBC_2.17 __wcrtomb_chk F
+GLIBC_2.17 __wcscasecmp_l F
+GLIBC_2.17 __wcscat_chk F
+GLIBC_2.17 __wcscoll_l F
+GLIBC_2.17 __wcscpy_chk F
+GLIBC_2.17 __wcsftime_l F
+GLIBC_2.17 __wcsncasecmp_l F
+GLIBC_2.17 __wcsncat_chk F
+GLIBC_2.17 __wcsncpy_chk F
+GLIBC_2.17 __wcsnrtombs_chk F
+GLIBC_2.17 __wcsrtombs_chk F
+GLIBC_2.17 __wcstod_internal F
+GLIBC_2.17 __wcstod_l F
+GLIBC_2.17 __wcstof_internal F
+GLIBC_2.17 __wcstof_l F
+GLIBC_2.17 __wcstol_internal F
+GLIBC_2.17 __wcstol_l F
+GLIBC_2.17 __wcstold_internal F
+GLIBC_2.17 __wcstold_l F
+GLIBC_2.17 __wcstoll_internal F
+GLIBC_2.17 __wcstoll_l F
+GLIBC_2.17 __wcstombs_chk F
+GLIBC_2.17 __wcstoul_internal F
+GLIBC_2.17 __wcstoul_l F
+GLIBC_2.17 __wcstoull_internal F
+GLIBC_2.17 __wcstoull_l F
+GLIBC_2.17 __wcsxfrm_l F
+GLIBC_2.17 __wctomb_chk F
+GLIBC_2.17 __wctrans_l F
+GLIBC_2.17 __wctype_l F
+GLIBC_2.17 __wmemcpy_chk F
+GLIBC_2.17 __wmemmove_chk F
+GLIBC_2.17 __wmempcpy_chk F
+GLIBC_2.17 __wmemset_chk F
+GLIBC_2.17 __woverflow F
+GLIBC_2.17 __wprintf_chk F
+GLIBC_2.17 __write F
+GLIBC_2.17 __wuflow F
+GLIBC_2.17 __wunderflow F
+GLIBC_2.17 __xmknod F
+GLIBC_2.17 __xmknodat F
+GLIBC_2.17 __xpg_basename F
+GLIBC_2.17 __xpg_sigpause F
+GLIBC_2.17 __xpg_strerror_r F
+GLIBC_2.17 __xstat F
+GLIBC_2.17 __xstat64 F
+GLIBC_2.17 _authenticate F
+GLIBC_2.17 _dl_mcount_wrapper F
+GLIBC_2.17 _dl_mcount_wrapper_check F
+GLIBC_2.17 _environ D 0x8
+GLIBC_2.17 _exit F
+GLIBC_2.17 _flushlbf F
+GLIBC_2.17 _libc_intl_domainname D 0x5
+GLIBC_2.17 _longjmp F
+GLIBC_2.17 _mcleanup F
+GLIBC_2.17 _nl_default_dirname D 0x12
+GLIBC_2.17 _nl_domain_bindings D 0x8
+GLIBC_2.17 _nl_msg_cat_cntr D 0x4
+GLIBC_2.17 _null_auth D 0x18
+GLIBC_2.17 _obstack_allocated_p F
+GLIBC_2.17 _obstack_begin F
+GLIBC_2.17 _obstack_begin_1 F
+GLIBC_2.17 _obstack_free F
+GLIBC_2.17 _obstack_memory_used F
+GLIBC_2.17 _obstack_newchunk F
+GLIBC_2.17 _res D 0x238
+GLIBC_2.17 _res_hconf D 0x48
+GLIBC_2.17 _rpc_dtablesize F
+GLIBC_2.17 _seterr_reply F
+GLIBC_2.17 _setjmp F
+GLIBC_2.17 _sys_errlist D 0x438
+GLIBC_2.17 _sys_nerr D 0x4
+GLIBC_2.17 _sys_siglist D 0x208
+GLIBC_2.17 _tolower F
+GLIBC_2.17 _toupper F
+GLIBC_2.17 a64l F
+GLIBC_2.17 abort F
+GLIBC_2.17 abs F
+GLIBC_2.17 accept F
+GLIBC_2.17 accept4 F
+GLIBC_2.17 access F
+GLIBC_2.17 acct F
+GLIBC_2.17 addmntent F
+GLIBC_2.17 addseverity F
+GLIBC_2.17 adjtime F
+GLIBC_2.17 adjtimex F
+GLIBC_2.17 advance F
+GLIBC_2.17 alarm F
+GLIBC_2.17 aligned_alloc F
+GLIBC_2.17 alphasort F
+GLIBC_2.17 alphasort64 F
+GLIBC_2.17 argp_err_exit_status D 0x4
+GLIBC_2.17 argp_error F
+GLIBC_2.17 argp_failure F
+GLIBC_2.17 argp_help F
+GLIBC_2.17 argp_parse F
+GLIBC_2.17 argp_program_bug_address D 0x8
+GLIBC_2.17 argp_program_version D 0x8
+GLIBC_2.17 argp_program_version_hook D 0x8
+GLIBC_2.17 argp_state_help F
+GLIBC_2.17 argp_usage F
+GLIBC_2.17 argz_add F
+GLIBC_2.17 argz_add_sep F
+GLIBC_2.17 argz_append F
+GLIBC_2.17 argz_count F
+GLIBC_2.17 argz_create F
+GLIBC_2.17 argz_create_sep F
+GLIBC_2.17 argz_delete F
+GLIBC_2.17 argz_extract F
+GLIBC_2.17 argz_insert F
+GLIBC_2.17 argz_next F
+GLIBC_2.17 argz_replace F
+GLIBC_2.17 argz_stringify F
+GLIBC_2.17 asctime F
+GLIBC_2.17 asctime_r F
+GLIBC_2.17 asprintf F
+GLIBC_2.17 atof F
+GLIBC_2.17 atoi F
+GLIBC_2.17 atol F
+GLIBC_2.17 atoll F
+GLIBC_2.17 authdes_create F
+GLIBC_2.17 authdes_getucred F
+GLIBC_2.17 authdes_pk_create F
+GLIBC_2.17 authnone_create F
+GLIBC_2.17 authunix_create F
+GLIBC_2.17 authunix_create_default F
+GLIBC_2.17 backtrace F
+GLIBC_2.17 backtrace_symbols F
+GLIBC_2.17 backtrace_symbols_fd F
+GLIBC_2.17 basename F
+GLIBC_2.17 bcmp F
+GLIBC_2.17 bcopy F
+GLIBC_2.17 bdflush F
+GLIBC_2.17 bind F
+GLIBC_2.17 bind_textdomain_codeset F
+GLIBC_2.17 bindresvport F
+GLIBC_2.17 bindtextdomain F
+GLIBC_2.17 brk F
+GLIBC_2.17 bsd_signal F
+GLIBC_2.17 bsearch F
+GLIBC_2.17 btowc F
+GLIBC_2.17 bzero F
+GLIBC_2.17 c16rtomb F
+GLIBC_2.17 c32rtomb F
+GLIBC_2.17 calloc F
+GLIBC_2.17 callrpc F
+GLIBC_2.17 canonicalize_file_name F
+GLIBC_2.17 capget F
+GLIBC_2.17 capset F
+GLIBC_2.17 catclose F
+GLIBC_2.17 catgets F
+GLIBC_2.17 catopen F
+GLIBC_2.17 cbc_crypt F
+GLIBC_2.17 cfgetispeed F
+GLIBC_2.17 cfgetospeed F
+GLIBC_2.17 cfmakeraw F
+GLIBC_2.17 cfree F
+GLIBC_2.17 cfsetispeed F
+GLIBC_2.17 cfsetospeed F
+GLIBC_2.17 cfsetspeed F
+GLIBC_2.17 chdir F
+GLIBC_2.17 chflags F
+GLIBC_2.17 chmod F
+GLIBC_2.17 chown F
+GLIBC_2.17 chroot F
+GLIBC_2.17 clearenv F
+GLIBC_2.17 clearerr F
+GLIBC_2.17 clearerr_unlocked F
+GLIBC_2.17 clnt_broadcast F
+GLIBC_2.17 clnt_create F
+GLIBC_2.17 clnt_pcreateerror F
+GLIBC_2.17 clnt_perrno F
+GLIBC_2.17 clnt_perror F
+GLIBC_2.17 clnt_spcreateerror F
+GLIBC_2.17 clnt_sperrno F
+GLIBC_2.17 clnt_sperror F
+GLIBC_2.17 clntraw_create F
+GLIBC_2.17 clnttcp_create F
+GLIBC_2.17 clntudp_bufcreate F
+GLIBC_2.17 clntudp_create F
+GLIBC_2.17 clntunix_create F
+GLIBC_2.17 clock F
+GLIBC_2.17 clock_adjtime F
+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 clone F
+GLIBC_2.17 close F
+GLIBC_2.17 closedir F
+GLIBC_2.17 closelog F
+GLIBC_2.17 confstr F
+GLIBC_2.17 connect F
+GLIBC_2.17 copysign F
+GLIBC_2.17 copysignf F
+GLIBC_2.17 copysignl F
+GLIBC_2.17 creat F
+GLIBC_2.17 creat64 F
+GLIBC_2.17 create_module F
+GLIBC_2.17 ctermid F
+GLIBC_2.17 ctime F
+GLIBC_2.17 ctime_r F
+GLIBC_2.17 cuserid F
+GLIBC_2.17 daemon F
+GLIBC_2.17 daylight D 0x4
+GLIBC_2.17 dcgettext F
+GLIBC_2.17 dcngettext F
+GLIBC_2.17 delete_module F
+GLIBC_2.17 des_setparity F
+GLIBC_2.17 dgettext F
+GLIBC_2.17 difftime F
+GLIBC_2.17 dirfd F
+GLIBC_2.17 dirname F
+GLIBC_2.17 div F
+GLIBC_2.17 dl_iterate_phdr F
+GLIBC_2.17 dngettext F
+GLIBC_2.17 dprintf F
+GLIBC_2.17 drand48 F
+GLIBC_2.17 drand48_r F
+GLIBC_2.17 dup F
+GLIBC_2.17 dup2 F
+GLIBC_2.17 dup3 F
+GLIBC_2.17 duplocale F
+GLIBC_2.17 dysize F
+GLIBC_2.17 eaccess F
+GLIBC_2.17 ecb_crypt F
+GLIBC_2.17 ecvt F
+GLIBC_2.17 ecvt_r F
+GLIBC_2.17 endaliasent F
+GLIBC_2.17 endfsent F
+GLIBC_2.17 endgrent F
+GLIBC_2.17 endhostent F
+GLIBC_2.17 endmntent F
+GLIBC_2.17 endnetent F
+GLIBC_2.17 endnetgrent F
+GLIBC_2.17 endprotoent F
+GLIBC_2.17 endpwent F
+GLIBC_2.17 endrpcent F
+GLIBC_2.17 endservent F
+GLIBC_2.17 endsgent F
+GLIBC_2.17 endspent F
+GLIBC_2.17 endttyent F
+GLIBC_2.17 endusershell F
+GLIBC_2.17 endutent F
+GLIBC_2.17 endutxent F
+GLIBC_2.17 environ D 0x8
+GLIBC_2.17 envz_add F
+GLIBC_2.17 envz_entry F
+GLIBC_2.17 envz_get F
+GLIBC_2.17 envz_merge F
+GLIBC_2.17 envz_remove F
+GLIBC_2.17 envz_strip F
+GLIBC_2.17 epoll_create F
+GLIBC_2.17 epoll_create1 F
+GLIBC_2.17 epoll_ctl F
+GLIBC_2.17 epoll_pwait F
+GLIBC_2.17 epoll_wait F
+GLIBC_2.17 erand48 F
+GLIBC_2.17 erand48_r F
+GLIBC_2.17 err F
+GLIBC_2.17 error F
+GLIBC_2.17 error_at_line F
+GLIBC_2.17 error_message_count D 0x4
+GLIBC_2.17 error_one_per_line D 0x4
+GLIBC_2.17 error_print_progname D 0x8
+GLIBC_2.17 errx F
+GLIBC_2.17 ether_aton F
+GLIBC_2.17 ether_aton_r F
+GLIBC_2.17 ether_hostton F
+GLIBC_2.17 ether_line F
+GLIBC_2.17 ether_ntoa F
+GLIBC_2.17 ether_ntoa_r F
+GLIBC_2.17 ether_ntohost F
+GLIBC_2.17 euidaccess F
+GLIBC_2.17 eventfd F
+GLIBC_2.17 eventfd_read F
+GLIBC_2.17 eventfd_write F
+GLIBC_2.17 execl F
+GLIBC_2.17 execle F
+GLIBC_2.17 execlp F
+GLIBC_2.17 execv F
+GLIBC_2.17 execve F
+GLIBC_2.17 execvp F
+GLIBC_2.17 execvpe F
+GLIBC_2.17 exit F
+GLIBC_2.17 faccessat F
+GLIBC_2.17 fallocate F
+GLIBC_2.17 fallocate64 F
+GLIBC_2.17 fanotify_init F
+GLIBC_2.17 fanotify_mark F
+GLIBC_2.17 fattach F
+GLIBC_2.17 fchdir F
+GLIBC_2.17 fchflags F
+GLIBC_2.17 fchmod F
+GLIBC_2.17 fchmodat F
+GLIBC_2.17 fchown F
+GLIBC_2.17 fchownat F
+GLIBC_2.17 fclose F
+GLIBC_2.17 fcloseall F
+GLIBC_2.17 fcntl F
+GLIBC_2.17 fcvt F
+GLIBC_2.17 fcvt_r F
+GLIBC_2.17 fdatasync F
+GLIBC_2.17 fdetach F
+GLIBC_2.17 fdopen F
+GLIBC_2.17 fdopendir F
+GLIBC_2.17 feof F
+GLIBC_2.17 feof_unlocked F
+GLIBC_2.17 ferror F
+GLIBC_2.17 ferror_unlocked F
+GLIBC_2.17 fexecve F
+GLIBC_2.17 fflush F
+GLIBC_2.17 fflush_unlocked F
+GLIBC_2.17 ffs F
+GLIBC_2.17 ffsl F
+GLIBC_2.17 ffsll F
+GLIBC_2.17 fgetc F
+GLIBC_2.17 fgetc_unlocked F
+GLIBC_2.17 fgetgrent F
+GLIBC_2.17 fgetgrent_r F
+GLIBC_2.17 fgetpos F
+GLIBC_2.17 fgetpos64 F
+GLIBC_2.17 fgetpwent F
+GLIBC_2.17 fgetpwent_r F
+GLIBC_2.17 fgets F
+GLIBC_2.17 fgets_unlocked F
+GLIBC_2.17 fgetsgent F
+GLIBC_2.17 fgetsgent_r F
+GLIBC_2.17 fgetspent F
+GLIBC_2.17 fgetspent_r F
+GLIBC_2.17 fgetwc F
+GLIBC_2.17 fgetwc_unlocked F
+GLIBC_2.17 fgetws F
+GLIBC_2.17 fgetws_unlocked F
+GLIBC_2.17 fgetxattr F
+GLIBC_2.17 fileno F
+GLIBC_2.17 fileno_unlocked F
+GLIBC_2.17 finite F
+GLIBC_2.17 finitef F
+GLIBC_2.17 finitel F
+GLIBC_2.17 flistxattr F
+GLIBC_2.17 flock F
+GLIBC_2.17 flockfile F
+GLIBC_2.17 fmemopen F
+GLIBC_2.17 fmtmsg F
+GLIBC_2.17 fnmatch F
+GLIBC_2.17 fopen F
+GLIBC_2.17 fopen64 F
+GLIBC_2.17 fopencookie F
+GLIBC_2.17 fork F
+GLIBC_2.17 fpathconf F
+GLIBC_2.17 fprintf F
+GLIBC_2.17 fputc F
+GLIBC_2.17 fputc_unlocked F
+GLIBC_2.17 fputs F
+GLIBC_2.17 fputs_unlocked F
+GLIBC_2.17 fputwc F
+GLIBC_2.17 fputwc_unlocked F
+GLIBC_2.17 fputws F
+GLIBC_2.17 fputws_unlocked F
+GLIBC_2.17 fread F
+GLIBC_2.17 fread_unlocked F
+GLIBC_2.17 free F
+GLIBC_2.17 freeaddrinfo F
+GLIBC_2.17 freeifaddrs F
+GLIBC_2.17 freelocale F
+GLIBC_2.17 fremovexattr F
+GLIBC_2.17 freopen F
+GLIBC_2.17 freopen64 F
+GLIBC_2.17 frexp F
+GLIBC_2.17 frexpf F
+GLIBC_2.17 frexpl F
+GLIBC_2.17 fscanf F
+GLIBC_2.17 fseek F
+GLIBC_2.17 fseeko F
+GLIBC_2.17 fseeko64 F
+GLIBC_2.17 fsetpos F
+GLIBC_2.17 fsetpos64 F
+GLIBC_2.17 fsetxattr F
+GLIBC_2.17 fstatfs F
+GLIBC_2.17 fstatfs64 F
+GLIBC_2.17 fstatvfs F
+GLIBC_2.17 fstatvfs64 F
+GLIBC_2.17 fsync F
+GLIBC_2.17 ftell F
+GLIBC_2.17 ftello F
+GLIBC_2.17 ftello64 F
+GLIBC_2.17 ftime F
+GLIBC_2.17 ftok F
+GLIBC_2.17 ftruncate F
+GLIBC_2.17 ftruncate64 F
+GLIBC_2.17 ftrylockfile F
+GLIBC_2.17 fts_children F
+GLIBC_2.17 fts_close F
+GLIBC_2.17 fts_open F
+GLIBC_2.17 fts_read F
+GLIBC_2.17 fts_set F
+GLIBC_2.17 ftw F
+GLIBC_2.17 ftw64 F
+GLIBC_2.17 funlockfile F
+GLIBC_2.17 futimens F
+GLIBC_2.17 futimes F
+GLIBC_2.17 futimesat F
+GLIBC_2.17 fwide F
+GLIBC_2.17 fwprintf F
+GLIBC_2.17 fwrite F
+GLIBC_2.17 fwrite_unlocked F
+GLIBC_2.17 fwscanf F
+GLIBC_2.17 gai_strerror F
+GLIBC_2.17 gcvt F
+GLIBC_2.17 get_avphys_pages F
+GLIBC_2.17 get_current_dir_name F
+GLIBC_2.17 get_kernel_syms F
+GLIBC_2.17 get_myaddress F
+GLIBC_2.17 get_nprocs F
+GLIBC_2.17 get_nprocs_conf F
+GLIBC_2.17 get_phys_pages F
+GLIBC_2.17 getaddrinfo F
+GLIBC_2.17 getaliasbyname F
+GLIBC_2.17 getaliasbyname_r F
+GLIBC_2.17 getaliasent F
+GLIBC_2.17 getaliasent_r F
+GLIBC_2.17 getauxval F
+GLIBC_2.17 getc F
+GLIBC_2.17 getc_unlocked F
+GLIBC_2.17 getchar F
+GLIBC_2.17 getchar_unlocked F
+GLIBC_2.17 getcontext F
+GLIBC_2.17 getcwd F
+GLIBC_2.17 getdate F
+GLIBC_2.17 getdate_err D 0x4
+GLIBC_2.17 getdate_r F
+GLIBC_2.17 getdelim F
+GLIBC_2.17 getdirentries F
+GLIBC_2.17 getdirentries64 F
+GLIBC_2.17 getdomainname F
+GLIBC_2.17 getdtablesize F
+GLIBC_2.17 getegid F
+GLIBC_2.17 getenv F
+GLIBC_2.17 geteuid F
+GLIBC_2.17 getfsent F
+GLIBC_2.17 getfsfile F
+GLIBC_2.17 getfsspec F
+GLIBC_2.17 getgid F
+GLIBC_2.17 getgrent F
+GLIBC_2.17 getgrent_r F
+GLIBC_2.17 getgrgid F
+GLIBC_2.17 getgrgid_r F
+GLIBC_2.17 getgrnam F
+GLIBC_2.17 getgrnam_r F
+GLIBC_2.17 getgrouplist F
+GLIBC_2.17 getgroups F
+GLIBC_2.17 gethostbyaddr F
+GLIBC_2.17 gethostbyaddr_r F
+GLIBC_2.17 gethostbyname F
+GLIBC_2.17 gethostbyname2 F
+GLIBC_2.17 gethostbyname2_r F
+GLIBC_2.17 gethostbyname_r F
+GLIBC_2.17 gethostent F
+GLIBC_2.17 gethostent_r F
+GLIBC_2.17 gethostid F
+GLIBC_2.17 gethostname F
+GLIBC_2.17 getifaddrs F
+GLIBC_2.17 getipv4sourcefilter F
+GLIBC_2.17 getitimer F
+GLIBC_2.17 getline F
+GLIBC_2.17 getloadavg F
+GLIBC_2.17 getlogin F
+GLIBC_2.17 getlogin_r F
+GLIBC_2.17 getmntent F
+GLIBC_2.17 getmntent_r F
+GLIBC_2.17 getmsg F
+GLIBC_2.17 getnameinfo F
+GLIBC_2.17 getnetbyaddr F
+GLIBC_2.17 getnetbyaddr_r F
+GLIBC_2.17 getnetbyname F
+GLIBC_2.17 getnetbyname_r F
+GLIBC_2.17 getnetent F
+GLIBC_2.17 getnetent_r F
+GLIBC_2.17 getnetgrent F
+GLIBC_2.17 getnetgrent_r F
+GLIBC_2.17 getnetname F
+GLIBC_2.17 getopt F
+GLIBC_2.17 getopt_long F
+GLIBC_2.17 getopt_long_only F
+GLIBC_2.17 getpagesize F
+GLIBC_2.17 getpass F
+GLIBC_2.17 getpeername F
+GLIBC_2.17 getpgid F
+GLIBC_2.17 getpgrp F
+GLIBC_2.17 getpid F
+GLIBC_2.17 getpmsg F
+GLIBC_2.17 getppid F
+GLIBC_2.17 getpriority F
+GLIBC_2.17 getprotobyname F
+GLIBC_2.17 getprotobyname_r F
+GLIBC_2.17 getprotobynumber F
+GLIBC_2.17 getprotobynumber_r F
+GLIBC_2.17 getprotoent F
+GLIBC_2.17 getprotoent_r F
+GLIBC_2.17 getpt F
+GLIBC_2.17 getpublickey F
+GLIBC_2.17 getpw F
+GLIBC_2.17 getpwent F
+GLIBC_2.17 getpwent_r F
+GLIBC_2.17 getpwnam F
+GLIBC_2.17 getpwnam_r F
+GLIBC_2.17 getpwuid F
+GLIBC_2.17 getpwuid_r F
+GLIBC_2.17 getresgid F
+GLIBC_2.17 getresuid F
+GLIBC_2.17 getrlimit F
+GLIBC_2.17 getrlimit64 F
+GLIBC_2.17 getrpcbyname F
+GLIBC_2.17 getrpcbyname_r F
+GLIBC_2.17 getrpcbynumber F
+GLIBC_2.17 getrpcbynumber_r F
+GLIBC_2.17 getrpcent F
+GLIBC_2.17 getrpcent_r F
+GLIBC_2.17 getrpcport F
+GLIBC_2.17 getrusage F
+GLIBC_2.17 gets F
+GLIBC_2.17 getsecretkey F
+GLIBC_2.17 getservbyname F
+GLIBC_2.17 getservbyname_r F
+GLIBC_2.17 getservbyport F
+GLIBC_2.17 getservbyport_r F
+GLIBC_2.17 getservent F
+GLIBC_2.17 getservent_r F
+GLIBC_2.17 getsgent F
+GLIBC_2.17 getsgent_r F
+GLIBC_2.17 getsgnam F
+GLIBC_2.17 getsgnam_r F
+GLIBC_2.17 getsid F
+GLIBC_2.17 getsockname F
+GLIBC_2.17 getsockopt F
+GLIBC_2.17 getsourcefilter F
+GLIBC_2.17 getspent F
+GLIBC_2.17 getspent_r F
+GLIBC_2.17 getspnam F
+GLIBC_2.17 getspnam_r F
+GLIBC_2.17 getsubopt F
+GLIBC_2.17 gettext F
+GLIBC_2.17 gettimeofday F
+GLIBC_2.17 getttyent F
+GLIBC_2.17 getttynam F
+GLIBC_2.17 getuid F
+GLIBC_2.17 getusershell F
+GLIBC_2.17 getutent F
+GLIBC_2.17 getutent_r F
+GLIBC_2.17 getutid F
+GLIBC_2.17 getutid_r F
+GLIBC_2.17 getutline F
+GLIBC_2.17 getutline_r F
+GLIBC_2.17 getutmp F
+GLIBC_2.17 getutmpx F
+GLIBC_2.17 getutxent F
+GLIBC_2.17 getutxid F
+GLIBC_2.17 getutxline F
+GLIBC_2.17 getw F
+GLIBC_2.17 getwc F
+GLIBC_2.17 getwc_unlocked F
+GLIBC_2.17 getwchar F
+GLIBC_2.17 getwchar_unlocked F
+GLIBC_2.17 getwd F
+GLIBC_2.17 getxattr F
+GLIBC_2.17 glob F
+GLIBC_2.17 glob64 F
+GLIBC_2.17 glob_pattern_p F
+GLIBC_2.17 globfree F
+GLIBC_2.17 globfree64 F
+GLIBC_2.17 gmtime F
+GLIBC_2.17 gmtime_r F
+GLIBC_2.17 gnu_dev_major F
+GLIBC_2.17 gnu_dev_makedev F
+GLIBC_2.17 gnu_dev_minor F
+GLIBC_2.17 gnu_get_libc_release F
+GLIBC_2.17 gnu_get_libc_version F
+GLIBC_2.17 grantpt F
+GLIBC_2.17 group_member F
+GLIBC_2.17 gsignal F
+GLIBC_2.17 gtty F
+GLIBC_2.17 h_errlist D 0x28
+GLIBC_2.17 h_nerr D 0x4
+GLIBC_2.17 hasmntopt F
+GLIBC_2.17 hcreate F
+GLIBC_2.17 hcreate_r F
+GLIBC_2.17 hdestroy F
+GLIBC_2.17 hdestroy_r F
+GLIBC_2.17 herror F
+GLIBC_2.17 host2netname F
+GLIBC_2.17 hsearch F
+GLIBC_2.17 hsearch_r F
+GLIBC_2.17 hstrerror F
+GLIBC_2.17 htonl F
+GLIBC_2.17 htons F
+GLIBC_2.17 iconv F
+GLIBC_2.17 iconv_close F
+GLIBC_2.17 iconv_open F
+GLIBC_2.17 if_freenameindex F
+GLIBC_2.17 if_indextoname F
+GLIBC_2.17 if_nameindex F
+GLIBC_2.17 if_nametoindex F
+GLIBC_2.17 imaxabs F
+GLIBC_2.17 imaxdiv F
+GLIBC_2.17 in6addr_any D 0x10
+GLIBC_2.17 in6addr_loopback D 0x10
+GLIBC_2.17 index F
+GLIBC_2.17 inet6_opt_append F
+GLIBC_2.17 inet6_opt_find F
+GLIBC_2.17 inet6_opt_finish F
+GLIBC_2.17 inet6_opt_get_val F
+GLIBC_2.17 inet6_opt_init F
+GLIBC_2.17 inet6_opt_next F
+GLIBC_2.17 inet6_opt_set_val F
+GLIBC_2.17 inet6_option_alloc F
+GLIBC_2.17 inet6_option_append F
+GLIBC_2.17 inet6_option_find F
+GLIBC_2.17 inet6_option_init F
+GLIBC_2.17 inet6_option_next F
+GLIBC_2.17 inet6_option_space F
+GLIBC_2.17 inet6_rth_add F
+GLIBC_2.17 inet6_rth_getaddr F
+GLIBC_2.17 inet6_rth_init F
+GLIBC_2.17 inet6_rth_reverse F
+GLIBC_2.17 inet6_rth_segments F
+GLIBC_2.17 inet6_rth_space F
+GLIBC_2.17 inet_addr F
+GLIBC_2.17 inet_aton F
+GLIBC_2.17 inet_lnaof F
+GLIBC_2.17 inet_makeaddr F
+GLIBC_2.17 inet_netof F
+GLIBC_2.17 inet_network F
+GLIBC_2.17 inet_nsap_addr F
+GLIBC_2.17 inet_nsap_ntoa F
+GLIBC_2.17 inet_ntoa F
+GLIBC_2.17 inet_ntop F
+GLIBC_2.17 inet_pton F
+GLIBC_2.17 init_module F
+GLIBC_2.17 initgroups F
+GLIBC_2.17 initstate F
+GLIBC_2.17 initstate_r F
+GLIBC_2.17 innetgr F
+GLIBC_2.17 inotify_add_watch F
+GLIBC_2.17 inotify_init F
+GLIBC_2.17 inotify_init1 F
+GLIBC_2.17 inotify_rm_watch F
+GLIBC_2.17 insque F
+GLIBC_2.17 ioctl F
+GLIBC_2.17 iruserok F
+GLIBC_2.17 iruserok_af F
+GLIBC_2.17 isalnum F
+GLIBC_2.17 isalnum_l F
+GLIBC_2.17 isalpha F
+GLIBC_2.17 isalpha_l F
+GLIBC_2.17 isascii F
+GLIBC_2.17 isastream F
+GLIBC_2.17 isatty F
+GLIBC_2.17 isblank F
+GLIBC_2.17 isblank_l F
+GLIBC_2.17 iscntrl F
+GLIBC_2.17 iscntrl_l F
+GLIBC_2.17 isctype F
+GLIBC_2.17 isdigit F
+GLIBC_2.17 isdigit_l F
+GLIBC_2.17 isfdtype F
+GLIBC_2.17 isgraph F
+GLIBC_2.17 isgraph_l F
+GLIBC_2.17 isinf F
+GLIBC_2.17 isinff F
+GLIBC_2.17 isinfl F
+GLIBC_2.17 islower F
+GLIBC_2.17 islower_l F
+GLIBC_2.17 isnan F
+GLIBC_2.17 isnanf F
+GLIBC_2.17 isnanl F
+GLIBC_2.17 isprint F
+GLIBC_2.17 isprint_l F
+GLIBC_2.17 ispunct F
+GLIBC_2.17 ispunct_l F
+GLIBC_2.17 isspace F
+GLIBC_2.17 isspace_l F
+GLIBC_2.17 isupper F
+GLIBC_2.17 isupper_l F
+GLIBC_2.17 iswalnum F
+GLIBC_2.17 iswalnum_l F
+GLIBC_2.17 iswalpha F
+GLIBC_2.17 iswalpha_l F
+GLIBC_2.17 iswblank F
+GLIBC_2.17 iswblank_l F
+GLIBC_2.17 iswcntrl F
+GLIBC_2.17 iswcntrl_l F
+GLIBC_2.17 iswctype F
+GLIBC_2.17 iswctype_l F
+GLIBC_2.17 iswdigit F
+GLIBC_2.17 iswdigit_l F
+GLIBC_2.17 iswgraph F
+GLIBC_2.17 iswgraph_l F
+GLIBC_2.17 iswlower F
+GLIBC_2.17 iswlower_l F
+GLIBC_2.17 iswprint F
+GLIBC_2.17 iswprint_l F
+GLIBC_2.17 iswpunct F
+GLIBC_2.17 iswpunct_l F
+GLIBC_2.17 iswspace F
+GLIBC_2.17 iswspace_l F
+GLIBC_2.17 iswupper F
+GLIBC_2.17 iswupper_l F
+GLIBC_2.17 iswxdigit F
+GLIBC_2.17 iswxdigit_l F
+GLIBC_2.17 isxdigit F
+GLIBC_2.17 isxdigit_l F
+GLIBC_2.17 jrand48 F
+GLIBC_2.17 jrand48_r F
+GLIBC_2.17 key_decryptsession F
+GLIBC_2.17 key_decryptsession_pk F
+GLIBC_2.17 key_encryptsession F
+GLIBC_2.17 key_encryptsession_pk F
+GLIBC_2.17 key_gendes F
+GLIBC_2.17 key_get_conv F
+GLIBC_2.17 key_secretkey_is_set F
+GLIBC_2.17 key_setnet F
+GLIBC_2.17 key_setsecret F
+GLIBC_2.17 kill F
+GLIBC_2.17 killpg F
+GLIBC_2.17 klogctl F
+GLIBC_2.17 l64a F
+GLIBC_2.17 labs F
+GLIBC_2.17 lchmod F
+GLIBC_2.17 lchown F
+GLIBC_2.17 lckpwdf F
+GLIBC_2.17 lcong48 F
+GLIBC_2.17 lcong48_r F
+GLIBC_2.17 ldexp F
+GLIBC_2.17 ldexpf F
+GLIBC_2.17 ldexpl F
+GLIBC_2.17 ldiv F
+GLIBC_2.17 lfind F
+GLIBC_2.17 lgetxattr F
+GLIBC_2.17 link F
+GLIBC_2.17 linkat F
+GLIBC_2.17 listen F
+GLIBC_2.17 listxattr F
+GLIBC_2.17 llabs F
+GLIBC_2.17 lldiv F
+GLIBC_2.17 llistxattr F
+GLIBC_2.17 llseek F
+GLIBC_2.17 loc1 D 0x8
+GLIBC_2.17 loc2 D 0x8
+GLIBC_2.17 localeconv F
+GLIBC_2.17 localtime F
+GLIBC_2.17 localtime_r F
+GLIBC_2.17 lockf F
+GLIBC_2.17 lockf64 F
+GLIBC_2.17 locs D 0x8
+GLIBC_2.17 longjmp F
+GLIBC_2.17 lrand48 F
+GLIBC_2.17 lrand48_r F
+GLIBC_2.17 lremovexattr F
+GLIBC_2.17 lsearch F
+GLIBC_2.17 lseek F
+GLIBC_2.17 lseek64 F
+GLIBC_2.17 lsetxattr F
+GLIBC_2.17 lutimes F
+GLIBC_2.17 madvise F
+GLIBC_2.17 makecontext F
+GLIBC_2.17 mallinfo F
+GLIBC_2.17 malloc F
+GLIBC_2.17 malloc_get_state F
+GLIBC_2.17 malloc_info F
+GLIBC_2.17 malloc_set_state F
+GLIBC_2.17 malloc_stats F
+GLIBC_2.17 malloc_trim F
+GLIBC_2.17 malloc_usable_size F
+GLIBC_2.17 mallopt F
+GLIBC_2.17 mallwatch D 0x8
+GLIBC_2.17 mblen F
+GLIBC_2.17 mbrlen F
+GLIBC_2.17 mbrtoc16 F
+GLIBC_2.17 mbrtoc32 F
+GLIBC_2.17 mbrtowc F
+GLIBC_2.17 mbsinit F
+GLIBC_2.17 mbsnrtowcs F
+GLIBC_2.17 mbsrtowcs F
+GLIBC_2.17 mbstowcs F
+GLIBC_2.17 mbtowc F
+GLIBC_2.17 mcheck F
+GLIBC_2.17 mcheck_check_all F
+GLIBC_2.17 mcheck_pedantic F
+GLIBC_2.17 memalign F
+GLIBC_2.17 memccpy F
+GLIBC_2.17 memchr F
+GLIBC_2.17 memcmp F
+GLIBC_2.17 memcpy F
+GLIBC_2.17 memfrob F
+GLIBC_2.17 memmem F
+GLIBC_2.17 memmove F
+GLIBC_2.17 mempcpy F
+GLIBC_2.17 memrchr F
+GLIBC_2.17 memset F
+GLIBC_2.17 mincore F
+GLIBC_2.17 mkdir F
+GLIBC_2.17 mkdirat F
+GLIBC_2.17 mkdtemp F
+GLIBC_2.17 mkfifo F
+GLIBC_2.17 mkfifoat F
+GLIBC_2.17 mkostemp F
+GLIBC_2.17 mkostemp64 F
+GLIBC_2.17 mkostemps F
+GLIBC_2.17 mkostemps64 F
+GLIBC_2.17 mkstemp F
+GLIBC_2.17 mkstemp64 F
+GLIBC_2.17 mkstemps F
+GLIBC_2.17 mkstemps64 F
+GLIBC_2.17 mktemp F
+GLIBC_2.17 mktime F
+GLIBC_2.17 mlock F
+GLIBC_2.17 mlockall F
+GLIBC_2.17 mmap F
+GLIBC_2.17 mmap64 F
+GLIBC_2.17 modf F
+GLIBC_2.17 modff F
+GLIBC_2.17 modfl F
+GLIBC_2.17 moncontrol F
+GLIBC_2.17 monstartup F
+GLIBC_2.17 mount F
+GLIBC_2.17 mprobe F
+GLIBC_2.17 mprotect F
+GLIBC_2.17 mrand48 F
+GLIBC_2.17 mrand48_r F
+GLIBC_2.17 mremap F
+GLIBC_2.17 msgctl F
+GLIBC_2.17 msgget F
+GLIBC_2.17 msgrcv F
+GLIBC_2.17 msgsnd F
+GLIBC_2.17 msync F
+GLIBC_2.17 mtrace F
+GLIBC_2.17 munlock F
+GLIBC_2.17 munlockall F
+GLIBC_2.17 munmap F
+GLIBC_2.17 muntrace F
+GLIBC_2.17 name_to_handle_at F
+GLIBC_2.17 nanosleep F
+GLIBC_2.17 netname2host F
+GLIBC_2.17 netname2user F
+GLIBC_2.17 newlocale F
+GLIBC_2.17 nfsservctl F
+GLIBC_2.17 nftw F
+GLIBC_2.17 nftw64 F
+GLIBC_2.17 ngettext F
+GLIBC_2.17 nice F
+GLIBC_2.17 nl_langinfo F
+GLIBC_2.17 nl_langinfo_l F
+GLIBC_2.17 nrand48 F
+GLIBC_2.17 nrand48_r F
+GLIBC_2.17 ntohl F
+GLIBC_2.17 ntohs F
+GLIBC_2.17 ntp_adjtime F
+GLIBC_2.17 ntp_gettime F
+GLIBC_2.17 ntp_gettimex F
+GLIBC_2.17 obstack_alloc_failed_handler D 0x8
+GLIBC_2.17 obstack_exit_failure D 0x4
+GLIBC_2.17 obstack_free F
+GLIBC_2.17 obstack_printf F
+GLIBC_2.17 obstack_vprintf F
+GLIBC_2.17 on_exit F
+GLIBC_2.17 open F
+GLIBC_2.17 open64 F
+GLIBC_2.17 open_by_handle_at F
+GLIBC_2.17 open_memstream F
+GLIBC_2.17 open_wmemstream F
+GLIBC_2.17 openat F
+GLIBC_2.17 openat64 F
+GLIBC_2.17 opendir F
+GLIBC_2.17 openlog F
+GLIBC_2.17 optarg D 0x8
+GLIBC_2.17 opterr D 0x4
+GLIBC_2.17 optind D 0x4
+GLIBC_2.17 optopt D 0x4
+GLIBC_2.17 parse_printf_format F
+GLIBC_2.17 passwd2des F
+GLIBC_2.17 pathconf F
+GLIBC_2.17 pause F
+GLIBC_2.17 pclose F
+GLIBC_2.17 perror F
+GLIBC_2.17 personality F
+GLIBC_2.17 pipe F
+GLIBC_2.17 pipe2 F
+GLIBC_2.17 pivot_root F
+GLIBC_2.17 pmap_getmaps F
+GLIBC_2.17 pmap_getport F
+GLIBC_2.17 pmap_rmtcall F
+GLIBC_2.17 pmap_set F
+GLIBC_2.17 pmap_unset F
+GLIBC_2.17 poll F
+GLIBC_2.17 popen F
+GLIBC_2.17 posix_fadvise F
+GLIBC_2.17 posix_fadvise64 F
+GLIBC_2.17 posix_fallocate F
+GLIBC_2.17 posix_fallocate64 F
+GLIBC_2.17 posix_madvise F
+GLIBC_2.17 posix_memalign F
+GLIBC_2.17 posix_openpt F
+GLIBC_2.17 posix_spawn F
+GLIBC_2.17 posix_spawn_file_actions_addclose F
+GLIBC_2.17 posix_spawn_file_actions_adddup2 F
+GLIBC_2.17 posix_spawn_file_actions_addopen F
+GLIBC_2.17 posix_spawn_file_actions_destroy F
+GLIBC_2.17 posix_spawn_file_actions_init F
+GLIBC_2.17 posix_spawnattr_destroy F
+GLIBC_2.17 posix_spawnattr_getflags F
+GLIBC_2.17 posix_spawnattr_getpgroup F
+GLIBC_2.17 posix_spawnattr_getschedparam F
+GLIBC_2.17 posix_spawnattr_getschedpolicy F
+GLIBC_2.17 posix_spawnattr_getsigdefault F
+GLIBC_2.17 posix_spawnattr_getsigmask F
+GLIBC_2.17 posix_spawnattr_init F
+GLIBC_2.17 posix_spawnattr_setflags F
+GLIBC_2.17 posix_spawnattr_setpgroup F
+GLIBC_2.17 posix_spawnattr_setschedparam F
+GLIBC_2.17 posix_spawnattr_setschedpolicy F
+GLIBC_2.17 posix_spawnattr_setsigdefault F
+GLIBC_2.17 posix_spawnattr_setsigmask F
+GLIBC_2.17 posix_spawnp F
+GLIBC_2.17 ppoll F
+GLIBC_2.17 prctl F
+GLIBC_2.17 pread F
+GLIBC_2.17 pread64 F
+GLIBC_2.17 preadv F
+GLIBC_2.17 preadv64 F
+GLIBC_2.17 printf F
+GLIBC_2.17 printf_size F
+GLIBC_2.17 printf_size_info F
+GLIBC_2.17 prlimit F
+GLIBC_2.17 prlimit64 F
+GLIBC_2.17 process_vm_readv F
+GLIBC_2.17 process_vm_writev F
+GLIBC_2.17 profil F
+GLIBC_2.17 program_invocation_name D 0x8
+GLIBC_2.17 program_invocation_short_name D 0x8
+GLIBC_2.17 pselect F
+GLIBC_2.17 psiginfo F
+GLIBC_2.17 psignal F
+GLIBC_2.17 pthread_attr_destroy F
+GLIBC_2.17 pthread_attr_getdetachstate F
+GLIBC_2.17 pthread_attr_getinheritsched F
+GLIBC_2.17 pthread_attr_getschedparam F
+GLIBC_2.17 pthread_attr_getschedpolicy F
+GLIBC_2.17 pthread_attr_getscope F
+GLIBC_2.17 pthread_attr_init F
+GLIBC_2.17 pthread_attr_setdetachstate F
+GLIBC_2.17 pthread_attr_setinheritsched F
+GLIBC_2.17 pthread_attr_setschedparam F
+GLIBC_2.17 pthread_attr_setschedpolicy F
+GLIBC_2.17 pthread_attr_setscope F
+GLIBC_2.17 pthread_cond_broadcast F
+GLIBC_2.17 pthread_cond_destroy F
+GLIBC_2.17 pthread_cond_init F
+GLIBC_2.17 pthread_cond_signal F
+GLIBC_2.17 pthread_cond_timedwait F
+GLIBC_2.17 pthread_cond_wait F
+GLIBC_2.17 pthread_condattr_destroy F
+GLIBC_2.17 pthread_condattr_init F
+GLIBC_2.17 pthread_equal F
+GLIBC_2.17 pthread_exit F
+GLIBC_2.17 pthread_getschedparam F
+GLIBC_2.17 pthread_mutex_destroy F
+GLIBC_2.17 pthread_mutex_init F
+GLIBC_2.17 pthread_mutex_lock F
+GLIBC_2.17 pthread_mutex_unlock F
+GLIBC_2.17 pthread_self F
+GLIBC_2.17 pthread_setcancelstate F
+GLIBC_2.17 pthread_setcanceltype F
+GLIBC_2.17 pthread_setschedparam F
+GLIBC_2.17 ptrace F
+GLIBC_2.17 ptsname F
+GLIBC_2.17 ptsname_r F
+GLIBC_2.17 putc F
+GLIBC_2.17 putc_unlocked F
+GLIBC_2.17 putchar F
+GLIBC_2.17 putchar_unlocked F
+GLIBC_2.17 putenv F
+GLIBC_2.17 putgrent F
+GLIBC_2.17 putmsg F
+GLIBC_2.17 putpmsg F
+GLIBC_2.17 putpwent F
+GLIBC_2.17 puts F
+GLIBC_2.17 putsgent F
+GLIBC_2.17 putspent F
+GLIBC_2.17 pututline F
+GLIBC_2.17 pututxline F
+GLIBC_2.17 putw F
+GLIBC_2.17 putwc F
+GLIBC_2.17 putwc_unlocked F
+GLIBC_2.17 putwchar F
+GLIBC_2.17 putwchar_unlocked F
+GLIBC_2.17 pvalloc F
+GLIBC_2.17 pwrite F
+GLIBC_2.17 pwrite64 F
+GLIBC_2.17 pwritev F
+GLIBC_2.17 pwritev64 F
+GLIBC_2.17 qecvt F
+GLIBC_2.17 qecvt_r F
+GLIBC_2.17 qfcvt F
+GLIBC_2.17 qfcvt_r F
+GLIBC_2.17 qgcvt F
+GLIBC_2.17 qsort F
+GLIBC_2.17 qsort_r F
+GLIBC_2.17 query_module F
+GLIBC_2.17 quick_exit F
+GLIBC_2.17 quotactl F
+GLIBC_2.17 raise F
+GLIBC_2.17 rand F
+GLIBC_2.17 rand_r F
+GLIBC_2.17 random F
+GLIBC_2.17 random_r F
+GLIBC_2.17 rawmemchr F
+GLIBC_2.17 rcmd F
+GLIBC_2.17 rcmd_af F
+GLIBC_2.17 re_comp F
+GLIBC_2.17 re_compile_fastmap F
+GLIBC_2.17 re_compile_pattern F
+GLIBC_2.17 re_exec F
+GLIBC_2.17 re_match F
+GLIBC_2.17 re_match_2 F
+GLIBC_2.17 re_search F
+GLIBC_2.17 re_search_2 F
+GLIBC_2.17 re_set_registers F
+GLIBC_2.17 re_set_syntax F
+GLIBC_2.17 re_syntax_options D 0x8
+GLIBC_2.17 read F
+GLIBC_2.17 readahead F
+GLIBC_2.17 readdir F
+GLIBC_2.17 readdir64 F
+GLIBC_2.17 readdir64_r F
+GLIBC_2.17 readdir_r F
+GLIBC_2.17 readlink F
+GLIBC_2.17 readlinkat F
+GLIBC_2.17 readv F
+GLIBC_2.17 realloc F
+GLIBC_2.17 realpath F
+GLIBC_2.17 reboot F
+GLIBC_2.17 recv F
+GLIBC_2.17 recvfrom F
+GLIBC_2.17 recvmmsg F
+GLIBC_2.17 recvmsg F
+GLIBC_2.17 regcomp F
+GLIBC_2.17 regerror F
+GLIBC_2.17 regexec F
+GLIBC_2.17 regfree F
+GLIBC_2.17 register_printf_function F
+GLIBC_2.17 register_printf_modifier F
+GLIBC_2.17 register_printf_specifier F
+GLIBC_2.17 register_printf_type F
+GLIBC_2.17 registerrpc F
+GLIBC_2.17 remap_file_pages F
+GLIBC_2.17 remove F
+GLIBC_2.17 removexattr F
+GLIBC_2.17 remque F
+GLIBC_2.17 rename F
+GLIBC_2.17 renameat F
+GLIBC_2.17 revoke F
+GLIBC_2.17 rewind F
+GLIBC_2.17 rewinddir F
+GLIBC_2.17 rexec F
+GLIBC_2.17 rexec_af F
+GLIBC_2.17 rexecoptions D 0x4
+GLIBC_2.17 rindex F
+GLIBC_2.17 rmdir F
+GLIBC_2.17 rpc_createerr D 0x20
+GLIBC_2.17 rpmatch F
+GLIBC_2.17 rresvport F
+GLIBC_2.17 rresvport_af F
+GLIBC_2.17 rtime F
+GLIBC_2.17 ruserok F
+GLIBC_2.17 ruserok_af F
+GLIBC_2.17 ruserpass F
+GLIBC_2.17 sbrk F
+GLIBC_2.17 scalbn F
+GLIBC_2.17 scalbnf F
+GLIBC_2.17 scalbnl F
+GLIBC_2.17 scandir F
+GLIBC_2.17 scandir64 F
+GLIBC_2.17 scandirat F
+GLIBC_2.17 scandirat64 F
+GLIBC_2.17 scanf F
+GLIBC_2.17 sched_get_priority_max F
+GLIBC_2.17 sched_get_priority_min F
+GLIBC_2.17 sched_getaffinity F
+GLIBC_2.17 sched_getcpu F
+GLIBC_2.17 sched_getparam F
+GLIBC_2.17 sched_getscheduler F
+GLIBC_2.17 sched_rr_get_interval F
+GLIBC_2.17 sched_setaffinity F
+GLIBC_2.17 sched_setparam F
+GLIBC_2.17 sched_setscheduler F
+GLIBC_2.17 sched_yield F
+GLIBC_2.17 secure_getenv F
+GLIBC_2.17 seed48 F
+GLIBC_2.17 seed48_r F
+GLIBC_2.17 seekdir F
+GLIBC_2.17 select F
+GLIBC_2.17 semctl F
+GLIBC_2.17 semget F
+GLIBC_2.17 semop F
+GLIBC_2.17 semtimedop F
+GLIBC_2.17 send F
+GLIBC_2.17 sendfile F
+GLIBC_2.17 sendfile64 F
+GLIBC_2.17 sendmmsg F
+GLIBC_2.17 sendmsg F
+GLIBC_2.17 sendto F
+GLIBC_2.17 setaliasent F
+GLIBC_2.17 setbuf F
+GLIBC_2.17 setbuffer F
+GLIBC_2.17 setcontext F
+GLIBC_2.17 setdomainname F
+GLIBC_2.17 setegid F
+GLIBC_2.17 setenv F
+GLIBC_2.17 seteuid F
+GLIBC_2.17 setfsent F
+GLIBC_2.17 setfsgid F
+GLIBC_2.17 setfsuid F
+GLIBC_2.17 setgid F
+GLIBC_2.17 setgrent F
+GLIBC_2.17 setgroups F
+GLIBC_2.17 sethostent F
+GLIBC_2.17 sethostid F
+GLIBC_2.17 sethostname F
+GLIBC_2.17 setipv4sourcefilter F
+GLIBC_2.17 setitimer F
+GLIBC_2.17 setjmp F
+GLIBC_2.17 setlinebuf F
+GLIBC_2.17 setlocale F
+GLIBC_2.17 setlogin F
+GLIBC_2.17 setlogmask F
+GLIBC_2.17 setmntent F
+GLIBC_2.17 setnetent F
+GLIBC_2.17 setnetgrent F
+GLIBC_2.17 setns F
+GLIBC_2.17 setpgid F
+GLIBC_2.17 setpgrp F
+GLIBC_2.17 setpriority F
+GLIBC_2.17 setprotoent F
+GLIBC_2.17 setpwent F
+GLIBC_2.17 setregid F
+GLIBC_2.17 setresgid F
+GLIBC_2.17 setresuid F
+GLIBC_2.17 setreuid F
+GLIBC_2.17 setrlimit F
+GLIBC_2.17 setrlimit64 F
+GLIBC_2.17 setrpcent F
+GLIBC_2.17 setservent F
+GLIBC_2.17 setsgent F
+GLIBC_2.17 setsid F
+GLIBC_2.17 setsockopt F
+GLIBC_2.17 setsourcefilter F
+GLIBC_2.17 setspent F
+GLIBC_2.17 setstate F
+GLIBC_2.17 setstate_r F
+GLIBC_2.17 settimeofday F
+GLIBC_2.17 setttyent F
+GLIBC_2.17 setuid F
+GLIBC_2.17 setusershell F
+GLIBC_2.17 setutent F
+GLIBC_2.17 setutxent F
+GLIBC_2.17 setvbuf F
+GLIBC_2.17 setxattr F
+GLIBC_2.17 sgetsgent F
+GLIBC_2.17 sgetsgent_r F
+GLIBC_2.17 sgetspent F
+GLIBC_2.17 sgetspent_r F
+GLIBC_2.17 shmat F
+GLIBC_2.17 shmctl F
+GLIBC_2.17 shmdt F
+GLIBC_2.17 shmget F
+GLIBC_2.17 shutdown F
+GLIBC_2.17 sigaction F
+GLIBC_2.17 sigaddset F
+GLIBC_2.17 sigaltstack F
+GLIBC_2.17 sigandset F
+GLIBC_2.17 sigblock F
+GLIBC_2.17 sigdelset F
+GLIBC_2.17 sigemptyset F
+GLIBC_2.17 sigfillset F
+GLIBC_2.17 siggetmask F
+GLIBC_2.17 sighold F
+GLIBC_2.17 sigignore F
+GLIBC_2.17 siginterrupt F
+GLIBC_2.17 sigisemptyset F
+GLIBC_2.17 sigismember F
+GLIBC_2.17 siglongjmp F
+GLIBC_2.17 signal F
+GLIBC_2.17 signalfd F
+GLIBC_2.17 sigorset F
+GLIBC_2.17 sigpause F
+GLIBC_2.17 sigpending F
+GLIBC_2.17 sigprocmask F
+GLIBC_2.17 sigqueue F
+GLIBC_2.17 sigrelse F
+GLIBC_2.17 sigreturn F
+GLIBC_2.17 sigset F
+GLIBC_2.17 sigsetmask F
+GLIBC_2.17 sigstack F
+GLIBC_2.17 sigsuspend F
+GLIBC_2.17 sigtimedwait F
+GLIBC_2.17 sigvec F
+GLIBC_2.17 sigwait F
+GLIBC_2.17 sigwaitinfo F
+GLIBC_2.17 sleep F
+GLIBC_2.17 snprintf F
+GLIBC_2.17 sockatmark F
+GLIBC_2.17 socket F
+GLIBC_2.17 socketpair F
+GLIBC_2.17 splice F
+GLIBC_2.17 sprintf F
+GLIBC_2.17 sprofil F
+GLIBC_2.17 srand F
+GLIBC_2.17 srand48 F
+GLIBC_2.17 srand48_r F
+GLIBC_2.17 srandom F
+GLIBC_2.17 srandom_r F
+GLIBC_2.17 sscanf F
+GLIBC_2.17 ssignal F
+GLIBC_2.17 sstk F
+GLIBC_2.17 statfs F
+GLIBC_2.17 statfs64 F
+GLIBC_2.17 statvfs F
+GLIBC_2.17 statvfs64 F
+GLIBC_2.17 stderr D 0x8
+GLIBC_2.17 stdin D 0x8
+GLIBC_2.17 stdout D 0x8
+GLIBC_2.17 step F
+GLIBC_2.17 stime F
+GLIBC_2.17 stpcpy F
+GLIBC_2.17 stpncpy F
+GLIBC_2.17 strcasecmp F
+GLIBC_2.17 strcasecmp_l F
+GLIBC_2.17 strcasestr F
+GLIBC_2.17 strcat F
+GLIBC_2.17 strchr F
+GLIBC_2.17 strchrnul F
+GLIBC_2.17 strcmp F
+GLIBC_2.17 strcoll F
+GLIBC_2.17 strcoll_l F
+GLIBC_2.17 strcpy F
+GLIBC_2.17 strcspn F
+GLIBC_2.17 strdup F
+GLIBC_2.17 strerror F
+GLIBC_2.17 strerror_l F
+GLIBC_2.17 strerror_r F
+GLIBC_2.17 strfmon F
+GLIBC_2.17 strfmon_l F
+GLIBC_2.17 strfry F
+GLIBC_2.17 strftime F
+GLIBC_2.17 strftime_l F
+GLIBC_2.17 strlen F
+GLIBC_2.17 strncasecmp F
+GLIBC_2.17 strncasecmp_l F
+GLIBC_2.17 strncat F
+GLIBC_2.17 strncmp F
+GLIBC_2.17 strncpy F
+GLIBC_2.17 strndup F
+GLIBC_2.17 strnlen F
+GLIBC_2.17 strpbrk F
+GLIBC_2.17 strptime F
+GLIBC_2.17 strptime_l F
+GLIBC_2.17 strrchr F
+GLIBC_2.17 strsep F
+GLIBC_2.17 strsignal F
+GLIBC_2.17 strspn F
+GLIBC_2.17 strstr F
+GLIBC_2.17 strtod F
+GLIBC_2.17 strtod_l F
+GLIBC_2.17 strtof F
+GLIBC_2.17 strtof_l F
+GLIBC_2.17 strtoimax F
+GLIBC_2.17 strtok F
+GLIBC_2.17 strtok_r F
+GLIBC_2.17 strtol F
+GLIBC_2.17 strtol_l F
+GLIBC_2.17 strtold F
+GLIBC_2.17 strtold_l F
+GLIBC_2.17 strtoll F
+GLIBC_2.17 strtoll_l F
+GLIBC_2.17 strtoq F
+GLIBC_2.17 strtoul F
+GLIBC_2.17 strtoul_l F
+GLIBC_2.17 strtoull F
+GLIBC_2.17 strtoull_l F
+GLIBC_2.17 strtoumax F
+GLIBC_2.17 strtouq F
+GLIBC_2.17 strverscmp F
+GLIBC_2.17 strxfrm F
+GLIBC_2.17 strxfrm_l F
+GLIBC_2.17 stty F
+GLIBC_2.17 svc_exit F
+GLIBC_2.17 svc_fdset D 0x80
+GLIBC_2.17 svc_getreq F
+GLIBC_2.17 svc_getreq_common F
+GLIBC_2.17 svc_getreq_poll F
+GLIBC_2.17 svc_getreqset F
+GLIBC_2.17 svc_max_pollfd D 0x4
+GLIBC_2.17 svc_pollfd D 0x8
+GLIBC_2.17 svc_register F
+GLIBC_2.17 svc_run F
+GLIBC_2.17 svc_sendreply F
+GLIBC_2.17 svc_unregister F
+GLIBC_2.17 svcauthdes_stats D 0x18
+GLIBC_2.17 svcerr_auth F
+GLIBC_2.17 svcerr_decode F
+GLIBC_2.17 svcerr_noproc F
+GLIBC_2.17 svcerr_noprog F
+GLIBC_2.17 svcerr_progvers F
+GLIBC_2.17 svcerr_systemerr F
+GLIBC_2.17 svcerr_weakauth F
+GLIBC_2.17 svcfd_create F
+GLIBC_2.17 svcraw_create F
+GLIBC_2.17 svctcp_create F
+GLIBC_2.17 svcudp_bufcreate F
+GLIBC_2.17 svcudp_create F
+GLIBC_2.17 svcudp_enablecache F
+GLIBC_2.17 svcunix_create F
+GLIBC_2.17 svcunixfd_create F
+GLIBC_2.17 swab F
+GLIBC_2.17 swapcontext F
+GLIBC_2.17 swapoff F
+GLIBC_2.17 swapon F
+GLIBC_2.17 swprintf F
+GLIBC_2.17 swscanf F
+GLIBC_2.17 symlink F
+GLIBC_2.17 symlinkat F
+GLIBC_2.17 sync F
+GLIBC_2.17 sync_file_range F
+GLIBC_2.17 syncfs F
+GLIBC_2.17 sys_errlist D 0x438
+GLIBC_2.17 sys_nerr D 0x4
+GLIBC_2.17 sys_sigabbrev D 0x208
+GLIBC_2.17 sys_siglist D 0x208
+GLIBC_2.17 syscall F
+GLIBC_2.17 sysconf F
+GLIBC_2.17 sysctl F
+GLIBC_2.17 sysinfo F
+GLIBC_2.17 syslog F
+GLIBC_2.17 system F
+GLIBC_2.17 sysv_signal F
+GLIBC_2.17 tcdrain F
+GLIBC_2.17 tcflow F
+GLIBC_2.17 tcflush F
+GLIBC_2.17 tcgetattr F
+GLIBC_2.17 tcgetpgrp F
+GLIBC_2.17 tcgetsid F
+GLIBC_2.17 tcsendbreak F
+GLIBC_2.17 tcsetattr F
+GLIBC_2.17 tcsetpgrp F
+GLIBC_2.17 tdelete F
+GLIBC_2.17 tdestroy F
+GLIBC_2.17 tee F
+GLIBC_2.17 telldir F
+GLIBC_2.17 tempnam F
+GLIBC_2.17 textdomain F
+GLIBC_2.17 tfind F
+GLIBC_2.17 time F
+GLIBC_2.17 timegm F
+GLIBC_2.17 timelocal F
+GLIBC_2.17 timerfd_create F
+GLIBC_2.17 timerfd_gettime F
+GLIBC_2.17 timerfd_settime F
+GLIBC_2.17 times F
+GLIBC_2.17 timespec_get F
+GLIBC_2.17 timezone D 0x8
+GLIBC_2.17 tmpfile F
+GLIBC_2.17 tmpfile64 F
+GLIBC_2.17 tmpnam F
+GLIBC_2.17 tmpnam_r F
+GLIBC_2.17 toascii F
+GLIBC_2.17 tolower F
+GLIBC_2.17 tolower_l F
+GLIBC_2.17 toupper F
+GLIBC_2.17 toupper_l F
+GLIBC_2.17 towctrans F
+GLIBC_2.17 towctrans_l F
+GLIBC_2.17 towlower F
+GLIBC_2.17 towlower_l F
+GLIBC_2.17 towupper F
+GLIBC_2.17 towupper_l F
+GLIBC_2.17 tr_break F
+GLIBC_2.17 truncate F
+GLIBC_2.17 truncate64 F
+GLIBC_2.17 tsearch F
+GLIBC_2.17 ttyname F
+GLIBC_2.17 ttyname_r F
+GLIBC_2.17 ttyslot F
+GLIBC_2.17 twalk F
+GLIBC_2.17 tzname D 0x10
+GLIBC_2.17 tzset F
+GLIBC_2.17 ualarm F
+GLIBC_2.17 ulckpwdf F
+GLIBC_2.17 ulimit F
+GLIBC_2.17 umask F
+GLIBC_2.17 umount F
+GLIBC_2.17 umount2 F
+GLIBC_2.17 uname F
+GLIBC_2.17 ungetc F
+GLIBC_2.17 ungetwc F
+GLIBC_2.17 unlink F
+GLIBC_2.17 unlinkat F
+GLIBC_2.17 unlockpt F
+GLIBC_2.17 unsetenv F
+GLIBC_2.17 unshare F
+GLIBC_2.17 updwtmp F
+GLIBC_2.17 updwtmpx F
+GLIBC_2.17 uselib F
+GLIBC_2.17 uselocale F
+GLIBC_2.17 user2netname F
+GLIBC_2.17 usleep F
+GLIBC_2.17 ustat F
+GLIBC_2.17 utime F
+GLIBC_2.17 utimensat F
+GLIBC_2.17 utimes F
+GLIBC_2.17 utmpname F
+GLIBC_2.17 utmpxname F
+GLIBC_2.17 valloc F
+GLIBC_2.17 vasprintf F
+GLIBC_2.17 vdprintf F
+GLIBC_2.17 verr F
+GLIBC_2.17 verrx F
+GLIBC_2.17 versionsort F
+GLIBC_2.17 versionsort64 F
+GLIBC_2.17 vfork F
+GLIBC_2.17 vfprintf F
+GLIBC_2.17 vfscanf F
+GLIBC_2.17 vfwprintf F
+GLIBC_2.17 vfwscanf F
+GLIBC_2.17 vhangup F
+GLIBC_2.17 vlimit F
+GLIBC_2.17 vmsplice F
+GLIBC_2.17 vprintf F
+GLIBC_2.17 vscanf F
+GLIBC_2.17 vsnprintf F
+GLIBC_2.17 vsprintf F
+GLIBC_2.17 vsscanf F
+GLIBC_2.17 vswprintf F
+GLIBC_2.17 vswscanf F
+GLIBC_2.17 vsyslog F
+GLIBC_2.17 vtimes F
+GLIBC_2.17 vwarn F
+GLIBC_2.17 vwarnx F
+GLIBC_2.17 vwprintf F
+GLIBC_2.17 vwscanf F
+GLIBC_2.17 wait F
+GLIBC_2.17 wait3 F
+GLIBC_2.17 wait4 F
+GLIBC_2.17 waitid F
+GLIBC_2.17 waitpid F
+GLIBC_2.17 warn F
+GLIBC_2.17 warnx F
+GLIBC_2.17 wcpcpy F
+GLIBC_2.17 wcpncpy F
+GLIBC_2.17 wcrtomb F
+GLIBC_2.17 wcscasecmp F
+GLIBC_2.17 wcscasecmp_l F
+GLIBC_2.17 wcscat F
+GLIBC_2.17 wcschr F
+GLIBC_2.17 wcschrnul F
+GLIBC_2.17 wcscmp F
+GLIBC_2.17 wcscoll F
+GLIBC_2.17 wcscoll_l F
+GLIBC_2.17 wcscpy F
+GLIBC_2.17 wcscspn F
+GLIBC_2.17 wcsdup F
+GLIBC_2.17 wcsftime F
+GLIBC_2.17 wcsftime_l F
+GLIBC_2.17 wcslen F
+GLIBC_2.17 wcsncasecmp F
+GLIBC_2.17 wcsncasecmp_l F
+GLIBC_2.17 wcsncat F
+GLIBC_2.17 wcsncmp F
+GLIBC_2.17 wcsncpy F
+GLIBC_2.17 wcsnlen F
+GLIBC_2.17 wcsnrtombs F
+GLIBC_2.17 wcspbrk F
+GLIBC_2.17 wcsrchr F
+GLIBC_2.17 wcsrtombs F
+GLIBC_2.17 wcsspn F
+GLIBC_2.17 wcsstr F
+GLIBC_2.17 wcstod F
+GLIBC_2.17 wcstod_l F
+GLIBC_2.17 wcstof F
+GLIBC_2.17 wcstof_l F
+GLIBC_2.17 wcstoimax F
+GLIBC_2.17 wcstok F
+GLIBC_2.17 wcstol F
+GLIBC_2.17 wcstol_l F
+GLIBC_2.17 wcstold F
+GLIBC_2.17 wcstold_l F
+GLIBC_2.17 wcstoll F
+GLIBC_2.17 wcstoll_l F
+GLIBC_2.17 wcstombs F
+GLIBC_2.17 wcstoq F
+GLIBC_2.17 wcstoul F
+GLIBC_2.17 wcstoul_l F
+GLIBC_2.17 wcstoull F
+GLIBC_2.17 wcstoull_l F
+GLIBC_2.17 wcstoumax F
+GLIBC_2.17 wcstouq F
+GLIBC_2.17 wcswcs F
+GLIBC_2.17 wcswidth F
+GLIBC_2.17 wcsxfrm F
+GLIBC_2.17 wcsxfrm_l F
+GLIBC_2.17 wctob F
+GLIBC_2.17 wctomb F
+GLIBC_2.17 wctrans F
+GLIBC_2.17 wctrans_l F
+GLIBC_2.17 wctype F
+GLIBC_2.17 wctype_l F
+GLIBC_2.17 wcwidth F
+GLIBC_2.17 wmemchr F
+GLIBC_2.17 wmemcmp F
+GLIBC_2.17 wmemcpy F
+GLIBC_2.17 wmemmove F
+GLIBC_2.17 wmempcpy F
+GLIBC_2.17 wmemset F
+GLIBC_2.17 wordexp F
+GLIBC_2.17 wordfree F
+GLIBC_2.17 wprintf F
+GLIBC_2.17 write F
+GLIBC_2.17 writev F
+GLIBC_2.17 wscanf F
+GLIBC_2.17 xdecrypt F
+GLIBC_2.17 xdr_accepted_reply F
+GLIBC_2.17 xdr_array F
+GLIBC_2.17 xdr_authdes_cred F
+GLIBC_2.17 xdr_authdes_verf F
+GLIBC_2.17 xdr_authunix_parms F
+GLIBC_2.17 xdr_bool F
+GLIBC_2.17 xdr_bytes F
+GLIBC_2.17 xdr_callhdr F
+GLIBC_2.17 xdr_callmsg F
+GLIBC_2.17 xdr_char F
+GLIBC_2.17 xdr_cryptkeyarg F
+GLIBC_2.17 xdr_cryptkeyarg2 F
+GLIBC_2.17 xdr_cryptkeyres F
+GLIBC_2.17 xdr_des_block F
+GLIBC_2.17 xdr_double F
+GLIBC_2.17 xdr_enum F
+GLIBC_2.17 xdr_float F
+GLIBC_2.17 xdr_free F
+GLIBC_2.17 xdr_getcredres F
+GLIBC_2.17 xdr_hyper F
+GLIBC_2.17 xdr_int F
+GLIBC_2.17 xdr_int16_t F
+GLIBC_2.17 xdr_int32_t F
+GLIBC_2.17 xdr_int64_t F
+GLIBC_2.17 xdr_int8_t F
+GLIBC_2.17 xdr_key_netstarg F
+GLIBC_2.17 xdr_key_netstres F
+GLIBC_2.17 xdr_keybuf F
+GLIBC_2.17 xdr_keystatus F
+GLIBC_2.17 xdr_long F
+GLIBC_2.17 xdr_longlong_t F
+GLIBC_2.17 xdr_netnamestr F
+GLIBC_2.17 xdr_netobj F
+GLIBC_2.17 xdr_opaque F
+GLIBC_2.17 xdr_opaque_auth F
+GLIBC_2.17 xdr_pmap F
+GLIBC_2.17 xdr_pmaplist F
+GLIBC_2.17 xdr_pointer F
+GLIBC_2.17 xdr_quad_t F
+GLIBC_2.17 xdr_reference F
+GLIBC_2.17 xdr_rejected_reply F
+GLIBC_2.17 xdr_replymsg F
+GLIBC_2.17 xdr_rmtcall_args F
+GLIBC_2.17 xdr_rmtcallres F
+GLIBC_2.17 xdr_short F
+GLIBC_2.17 xdr_sizeof F
+GLIBC_2.17 xdr_string F
+GLIBC_2.17 xdr_u_char F
+GLIBC_2.17 xdr_u_hyper F
+GLIBC_2.17 xdr_u_int F
+GLIBC_2.17 xdr_u_long F
+GLIBC_2.17 xdr_u_longlong_t F
+GLIBC_2.17 xdr_u_quad_t F
+GLIBC_2.17 xdr_u_short F
+GLIBC_2.17 xdr_uint16_t F
+GLIBC_2.17 xdr_uint32_t F
+GLIBC_2.17 xdr_uint64_t F
+GLIBC_2.17 xdr_uint8_t F
+GLIBC_2.17 xdr_union F
+GLIBC_2.17 xdr_unixcred F
+GLIBC_2.17 xdr_vector F
+GLIBC_2.17 xdr_void F
+GLIBC_2.17 xdr_wrapstring F
+GLIBC_2.17 xdrmem_create F
+GLIBC_2.17 xdrrec_create F
+GLIBC_2.17 xdrrec_endofrecord F
+GLIBC_2.17 xdrrec_eof F
+GLIBC_2.17 xdrrec_skiprecord F
+GLIBC_2.17 xdrstdio_create F
+GLIBC_2.17 xencrypt F
+GLIBC_2.17 xprt_register F
+GLIBC_2.17 xprt_unregister F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 _mcount 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
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libcrypt.abilist
new file mode 100644
index 0000000000..58944b3d83
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libcrypt.abilist
@@ -0,0 +1,8 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 crypt F
+GLIBC_2.17 crypt_r F
+GLIBC_2.17 encrypt F
+GLIBC_2.17 encrypt_r F
+GLIBC_2.17 fcrypt F
+GLIBC_2.17 setkey F
+GLIBC_2.17 setkey_r F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
new file mode 100644
index 0000000000..1b4b1f77ed
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
@@ -0,0 +1,10 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 dladdr F
+GLIBC_2.17 dladdr1 F
+GLIBC_2.17 dlclose F
+GLIBC_2.17 dlerror F
+GLIBC_2.17 dlinfo F
+GLIBC_2.17 dlmopen F
+GLIBC_2.17 dlopen F
+GLIBC_2.17 dlsym F
+GLIBC_2.17 dlvsym F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libm.abilist
new file mode 100644
index 0000000000..6266864ea7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -0,0 +1,462 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 _LIB_VERSION D 0x4
+GLIBC_2.17 __acos_finite F
+GLIBC_2.17 __acosf_finite F
+GLIBC_2.17 __acosh_finite F
+GLIBC_2.17 __acoshf_finite F
+GLIBC_2.17 __acoshl_finite F
+GLIBC_2.17 __acosl_finite F
+GLIBC_2.17 __asin_finite F
+GLIBC_2.17 __asinf_finite F
+GLIBC_2.17 __asinl_finite F
+GLIBC_2.17 __atan2_finite F
+GLIBC_2.17 __atan2f_finite F
+GLIBC_2.17 __atan2l_finite F
+GLIBC_2.17 __atanh_finite F
+GLIBC_2.17 __atanhf_finite F
+GLIBC_2.17 __atanhl_finite F
+GLIBC_2.17 __clog10 F
+GLIBC_2.17 __clog10f F
+GLIBC_2.17 __clog10l F
+GLIBC_2.17 __cosh_finite F
+GLIBC_2.17 __coshf_finite F
+GLIBC_2.17 __coshl_finite F
+GLIBC_2.17 __exp10_finite F
+GLIBC_2.17 __exp10f_finite F
+GLIBC_2.17 __exp10l_finite F
+GLIBC_2.17 __exp2_finite F
+GLIBC_2.17 __exp2f_finite F
+GLIBC_2.17 __exp2l_finite F
+GLIBC_2.17 __exp_finite F
+GLIBC_2.17 __expf_finite F
+GLIBC_2.17 __expl_finite F
+GLIBC_2.17 __finite F
+GLIBC_2.17 __finitef F
+GLIBC_2.17 __finitel F
+GLIBC_2.17 __fmod_finite F
+GLIBC_2.17 __fmodf_finite F
+GLIBC_2.17 __fmodl_finite F
+GLIBC_2.17 __fpclassify F
+GLIBC_2.17 __fpclassifyf F
+GLIBC_2.17 __fpclassifyl F
+GLIBC_2.17 __gamma_r_finite F
+GLIBC_2.17 __gammaf_r_finite F
+GLIBC_2.17 __gammal_r_finite F
+GLIBC_2.17 __hypot_finite F
+GLIBC_2.17 __hypotf_finite F
+GLIBC_2.17 __hypotl_finite F
+GLIBC_2.17 __j0_finite F
+GLIBC_2.17 __j0f_finite F
+GLIBC_2.17 __j0l_finite F
+GLIBC_2.17 __j1_finite F
+GLIBC_2.17 __j1f_finite F
+GLIBC_2.17 __j1l_finite F
+GLIBC_2.17 __jn_finite F
+GLIBC_2.17 __jnf_finite F
+GLIBC_2.17 __jnl_finite F
+GLIBC_2.17 __lgamma_r_finite F
+GLIBC_2.17 __lgammaf_r_finite F
+GLIBC_2.17 __lgammal_r_finite F
+GLIBC_2.17 __log10_finite F
+GLIBC_2.17 __log10f_finite F
+GLIBC_2.17 __log10l_finite F
+GLIBC_2.17 __log2_finite F
+GLIBC_2.17 __log2f_finite F
+GLIBC_2.17 __log2l_finite F
+GLIBC_2.17 __log_finite F
+GLIBC_2.17 __logf_finite F
+GLIBC_2.17 __logl_finite F
+GLIBC_2.17 __pow_finite F
+GLIBC_2.17 __powf_finite F
+GLIBC_2.17 __powl_finite F
+GLIBC_2.17 __remainder_finite F
+GLIBC_2.17 __remainderf_finite F
+GLIBC_2.17 __remainderl_finite F
+GLIBC_2.17 __scalb_finite F
+GLIBC_2.17 __scalbf_finite F
+GLIBC_2.17 __scalbl_finite F
+GLIBC_2.17 __signbit F
+GLIBC_2.17 __signbitf F
+GLIBC_2.17 __signbitl F
+GLIBC_2.17 __sinh_finite F
+GLIBC_2.17 __sinhf_finite F
+GLIBC_2.17 __sinhl_finite F
+GLIBC_2.17 __sqrt_finite F
+GLIBC_2.17 __sqrtf_finite F
+GLIBC_2.17 __sqrtl_finite F
+GLIBC_2.17 __y0_finite F
+GLIBC_2.17 __y0f_finite F
+GLIBC_2.17 __y0l_finite F
+GLIBC_2.17 __y1_finite F
+GLIBC_2.17 __y1f_finite F
+GLIBC_2.17 __y1l_finite F
+GLIBC_2.17 __yn_finite F
+GLIBC_2.17 __ynf_finite F
+GLIBC_2.17 __ynl_finite F
+GLIBC_2.17 acos F
+GLIBC_2.17 acosf F
+GLIBC_2.17 acosh F
+GLIBC_2.17 acoshf F
+GLIBC_2.17 acoshl F
+GLIBC_2.17 acosl F
+GLIBC_2.17 asin F
+GLIBC_2.17 asinf F
+GLIBC_2.17 asinh F
+GLIBC_2.17 asinhf F
+GLIBC_2.17 asinhl F
+GLIBC_2.17 asinl F
+GLIBC_2.17 atan F
+GLIBC_2.17 atan2 F
+GLIBC_2.17 atan2f F
+GLIBC_2.17 atan2l F
+GLIBC_2.17 atanf F
+GLIBC_2.17 atanh F
+GLIBC_2.17 atanhf F
+GLIBC_2.17 atanhl F
+GLIBC_2.17 atanl F
+GLIBC_2.17 cabs F
+GLIBC_2.17 cabsf F
+GLIBC_2.17 cabsl F
+GLIBC_2.17 cacos F
+GLIBC_2.17 cacosf F
+GLIBC_2.17 cacosh F
+GLIBC_2.17 cacoshf F
+GLIBC_2.17 cacoshl F
+GLIBC_2.17 cacosl F
+GLIBC_2.17 carg F
+GLIBC_2.17 cargf F
+GLIBC_2.17 cargl F
+GLIBC_2.17 casin F
+GLIBC_2.17 casinf F
+GLIBC_2.17 casinh F
+GLIBC_2.17 casinhf F
+GLIBC_2.17 casinhl F
+GLIBC_2.17 casinl F
+GLIBC_2.17 catan F
+GLIBC_2.17 catanf F
+GLIBC_2.17 catanh F
+GLIBC_2.17 catanhf F
+GLIBC_2.17 catanhl F
+GLIBC_2.17 catanl F
+GLIBC_2.17 cbrt F
+GLIBC_2.17 cbrtf F
+GLIBC_2.17 cbrtl F
+GLIBC_2.17 ccos F
+GLIBC_2.17 ccosf F
+GLIBC_2.17 ccosh F
+GLIBC_2.17 ccoshf F
+GLIBC_2.17 ccoshl F
+GLIBC_2.17 ccosl F
+GLIBC_2.17 ceil F
+GLIBC_2.17 ceilf F
+GLIBC_2.17 ceill F
+GLIBC_2.17 cexp F
+GLIBC_2.17 cexpf F
+GLIBC_2.17 cexpl F
+GLIBC_2.17 cimag F
+GLIBC_2.17 cimagf F
+GLIBC_2.17 cimagl F
+GLIBC_2.17 clog F
+GLIBC_2.17 clog10 F
+GLIBC_2.17 clog10f F
+GLIBC_2.17 clog10l F
+GLIBC_2.17 clogf F
+GLIBC_2.17 clogl F
+GLIBC_2.17 conj F
+GLIBC_2.17 conjf F
+GLIBC_2.17 conjl F
+GLIBC_2.17 copysign F
+GLIBC_2.17 copysignf F
+GLIBC_2.17 copysignl F
+GLIBC_2.17 cos F
+GLIBC_2.17 cosf F
+GLIBC_2.17 cosh F
+GLIBC_2.17 coshf F
+GLIBC_2.17 coshl F
+GLIBC_2.17 cosl F
+GLIBC_2.17 cpow F
+GLIBC_2.17 cpowf F
+GLIBC_2.17 cpowl F
+GLIBC_2.17 cproj F
+GLIBC_2.17 cprojf F
+GLIBC_2.17 cprojl F
+GLIBC_2.17 creal F
+GLIBC_2.17 crealf F
+GLIBC_2.17 creall F
+GLIBC_2.17 csin F
+GLIBC_2.17 csinf F
+GLIBC_2.17 csinh F
+GLIBC_2.17 csinhf F
+GLIBC_2.17 csinhl F
+GLIBC_2.17 csinl F
+GLIBC_2.17 csqrt F
+GLIBC_2.17 csqrtf F
+GLIBC_2.17 csqrtl F
+GLIBC_2.17 ctan F
+GLIBC_2.17 ctanf F
+GLIBC_2.17 ctanh F
+GLIBC_2.17 ctanhf F
+GLIBC_2.17 ctanhl F
+GLIBC_2.17 ctanl F
+GLIBC_2.17 drem F
+GLIBC_2.17 dremf F
+GLIBC_2.17 dreml F
+GLIBC_2.17 erf F
+GLIBC_2.17 erfc F
+GLIBC_2.17 erfcf F
+GLIBC_2.17 erfcl F
+GLIBC_2.17 erff F
+GLIBC_2.17 erfl F
+GLIBC_2.17 exp F
+GLIBC_2.17 exp10 F
+GLIBC_2.17 exp10f F
+GLIBC_2.17 exp10l F
+GLIBC_2.17 exp2 F
+GLIBC_2.17 exp2f F
+GLIBC_2.17 exp2l F
+GLIBC_2.17 expf F
+GLIBC_2.17 expl F
+GLIBC_2.17 expm1 F
+GLIBC_2.17 expm1f F
+GLIBC_2.17 expm1l F
+GLIBC_2.17 fabs F
+GLIBC_2.17 fabsf F
+GLIBC_2.17 fabsl F
+GLIBC_2.17 fdim F
+GLIBC_2.17 fdimf F
+GLIBC_2.17 fdiml F
+GLIBC_2.17 feclearexcept F
+GLIBC_2.17 fedisableexcept F
+GLIBC_2.17 feenableexcept F
+GLIBC_2.17 fegetenv F
+GLIBC_2.17 fegetexcept F
+GLIBC_2.17 fegetexceptflag F
+GLIBC_2.17 fegetround F
+GLIBC_2.17 feholdexcept F
+GLIBC_2.17 feraiseexcept F
+GLIBC_2.17 fesetenv F
+GLIBC_2.17 fesetexceptflag F
+GLIBC_2.17 fesetround F
+GLIBC_2.17 fetestexcept F
+GLIBC_2.17 feupdateenv F
+GLIBC_2.17 finite F
+GLIBC_2.17 finitef F
+GLIBC_2.17 finitel F
+GLIBC_2.17 floor F
+GLIBC_2.17 floorf F
+GLIBC_2.17 floorl F
+GLIBC_2.17 fma F
+GLIBC_2.17 fmaf F
+GLIBC_2.17 fmal F
+GLIBC_2.17 fmax F
+GLIBC_2.17 fmaxf F
+GLIBC_2.17 fmaxl F
+GLIBC_2.17 fmin F
+GLIBC_2.17 fminf F
+GLIBC_2.17 fminl F
+GLIBC_2.17 fmod F
+GLIBC_2.17 fmodf F
+GLIBC_2.17 fmodl F
+GLIBC_2.17 frexp F
+GLIBC_2.17 frexpf F
+GLIBC_2.17 frexpl F
+GLIBC_2.17 gamma F
+GLIBC_2.17 gammaf F
+GLIBC_2.17 gammal F
+GLIBC_2.17 hypot F
+GLIBC_2.17 hypotf F
+GLIBC_2.17 hypotl F
+GLIBC_2.17 ilogb F
+GLIBC_2.17 ilogbf F
+GLIBC_2.17 ilogbl F
+GLIBC_2.17 j0 F
+GLIBC_2.17 j0f F
+GLIBC_2.17 j0l F
+GLIBC_2.17 j1 F
+GLIBC_2.17 j1f F
+GLIBC_2.17 j1l F
+GLIBC_2.17 jn F
+GLIBC_2.17 jnf F
+GLIBC_2.17 jnl F
+GLIBC_2.17 ldexp F
+GLIBC_2.17 ldexpf F
+GLIBC_2.17 ldexpl F
+GLIBC_2.17 lgamma F
+GLIBC_2.17 lgamma_r F
+GLIBC_2.17 lgammaf F
+GLIBC_2.17 lgammaf_r F
+GLIBC_2.17 lgammal F
+GLIBC_2.17 lgammal_r F
+GLIBC_2.17 llrint F
+GLIBC_2.17 llrintf F
+GLIBC_2.17 llrintl F
+GLIBC_2.17 llround F
+GLIBC_2.17 llroundf F
+GLIBC_2.17 llroundl F
+GLIBC_2.17 log F
+GLIBC_2.17 log10 F
+GLIBC_2.17 log10f F
+GLIBC_2.17 log10l F
+GLIBC_2.17 log1p F
+GLIBC_2.17 log1pf F
+GLIBC_2.17 log1pl F
+GLIBC_2.17 log2 F
+GLIBC_2.17 log2f F
+GLIBC_2.17 log2l F
+GLIBC_2.17 logb F
+GLIBC_2.17 logbf F
+GLIBC_2.17 logbl F
+GLIBC_2.17 logf F
+GLIBC_2.17 logl F
+GLIBC_2.17 lrint F
+GLIBC_2.17 lrintf F
+GLIBC_2.17 lrintl F
+GLIBC_2.17 lround F
+GLIBC_2.17 lroundf F
+GLIBC_2.17 lroundl F
+GLIBC_2.17 matherr F
+GLIBC_2.17 modf F
+GLIBC_2.17 modff F
+GLIBC_2.17 modfl F
+GLIBC_2.17 nan F
+GLIBC_2.17 nanf F
+GLIBC_2.17 nanl F
+GLIBC_2.17 nearbyint F
+GLIBC_2.17 nearbyintf F
+GLIBC_2.17 nearbyintl F
+GLIBC_2.17 nextafter F
+GLIBC_2.17 nextafterf F
+GLIBC_2.17 nextafterl F
+GLIBC_2.17 nexttoward F
+GLIBC_2.17 nexttowardf F
+GLIBC_2.17 nexttowardl F
+GLIBC_2.17 pow F
+GLIBC_2.17 pow10 F
+GLIBC_2.17 pow10f F
+GLIBC_2.17 pow10l F
+GLIBC_2.17 powf F
+GLIBC_2.17 powl F
+GLIBC_2.17 remainder F
+GLIBC_2.17 remainderf F
+GLIBC_2.17 remainderl F
+GLIBC_2.17 remquo F
+GLIBC_2.17 remquof F
+GLIBC_2.17 remquol F
+GLIBC_2.17 rint F
+GLIBC_2.17 rintf F
+GLIBC_2.17 rintl F
+GLIBC_2.17 round F
+GLIBC_2.17 roundf F
+GLIBC_2.17 roundl F
+GLIBC_2.17 scalb F
+GLIBC_2.17 scalbf F
+GLIBC_2.17 scalbl F
+GLIBC_2.17 scalbln F
+GLIBC_2.17 scalblnf F
+GLIBC_2.17 scalblnl F
+GLIBC_2.17 scalbn F
+GLIBC_2.17 scalbnf F
+GLIBC_2.17 scalbnl F
+GLIBC_2.17 signgam D 0x4
+GLIBC_2.17 significand F
+GLIBC_2.17 significandf F
+GLIBC_2.17 significandl F
+GLIBC_2.17 sin F
+GLIBC_2.17 sincos F
+GLIBC_2.17 sincosf F
+GLIBC_2.17 sincosl F
+GLIBC_2.17 sinf F
+GLIBC_2.17 sinh F
+GLIBC_2.17 sinhf F
+GLIBC_2.17 sinhl F
+GLIBC_2.17 sinl F
+GLIBC_2.17 sqrt F
+GLIBC_2.17 sqrtf F
+GLIBC_2.17 sqrtl F
+GLIBC_2.17 tan F
+GLIBC_2.17 tanf F
+GLIBC_2.17 tanh F
+GLIBC_2.17 tanhf F
+GLIBC_2.17 tanhl F
+GLIBC_2.17 tanl F
+GLIBC_2.17 tgamma F
+GLIBC_2.17 tgammaf F
+GLIBC_2.17 tgammal F
+GLIBC_2.17 trunc F
+GLIBC_2.17 truncf F
+GLIBC_2.17 truncl F
+GLIBC_2.17 y0 F
+GLIBC_2.17 y0f F
+GLIBC_2.17 y0l F
+GLIBC_2.17 y1 F
+GLIBC_2.17 y1f F
+GLIBC_2.17 y1l F
+GLIBC_2.17 yn F
+GLIBC_2.17 ynf F
+GLIBC_2.17 ynl F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __issignaling F
+GLIBC_2.18 __issignalingf F
+GLIBC_2.18 __issignalingl 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 __iseqsigl 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
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libnsl.abilist
new file mode 100644
index 0000000000..63d47aef79
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libnsl.abilist
@@ -0,0 +1,122 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 __free_fdresult F
+GLIBC_2.17 __nis_default_access F
+GLIBC_2.17 __nis_default_group F
+GLIBC_2.17 __nis_default_owner F
+GLIBC_2.17 __nis_default_ttl F
+GLIBC_2.17 __nis_finddirectory F
+GLIBC_2.17 __nis_hash F
+GLIBC_2.17 __nisbind_connect F
+GLIBC_2.17 __nisbind_create F
+GLIBC_2.17 __nisbind_destroy F
+GLIBC_2.17 __nisbind_next F
+GLIBC_2.17 __yp_check F
+GLIBC_2.17 nis_add F
+GLIBC_2.17 nis_add_entry F
+GLIBC_2.17 nis_addmember F
+GLIBC_2.17 nis_checkpoint F
+GLIBC_2.17 nis_clone_directory F
+GLIBC_2.17 nis_clone_object F
+GLIBC_2.17 nis_clone_result F
+GLIBC_2.17 nis_creategroup F
+GLIBC_2.17 nis_destroy_object F
+GLIBC_2.17 nis_destroygroup F
+GLIBC_2.17 nis_dir_cmp F
+GLIBC_2.17 nis_domain_of F
+GLIBC_2.17 nis_domain_of_r F
+GLIBC_2.17 nis_first_entry F
+GLIBC_2.17 nis_free_directory F
+GLIBC_2.17 nis_free_object F
+GLIBC_2.17 nis_free_request F
+GLIBC_2.17 nis_freenames F
+GLIBC_2.17 nis_freeresult F
+GLIBC_2.17 nis_freeservlist F
+GLIBC_2.17 nis_freetags F
+GLIBC_2.17 nis_getnames F
+GLIBC_2.17 nis_getservlist F
+GLIBC_2.17 nis_ismember F
+GLIBC_2.17 nis_leaf_of F
+GLIBC_2.17 nis_leaf_of_r F
+GLIBC_2.17 nis_lerror F
+GLIBC_2.17 nis_list F
+GLIBC_2.17 nis_local_directory F
+GLIBC_2.17 nis_local_group F
+GLIBC_2.17 nis_local_host F
+GLIBC_2.17 nis_local_principal F
+GLIBC_2.17 nis_lookup F
+GLIBC_2.17 nis_mkdir F
+GLIBC_2.17 nis_modify F
+GLIBC_2.17 nis_modify_entry F
+GLIBC_2.17 nis_name_of F
+GLIBC_2.17 nis_name_of_r F
+GLIBC_2.17 nis_next_entry F
+GLIBC_2.17 nis_perror F
+GLIBC_2.17 nis_ping F
+GLIBC_2.17 nis_print_directory F
+GLIBC_2.17 nis_print_entry F
+GLIBC_2.17 nis_print_group F
+GLIBC_2.17 nis_print_group_entry F
+GLIBC_2.17 nis_print_link F
+GLIBC_2.17 nis_print_object F
+GLIBC_2.17 nis_print_result F
+GLIBC_2.17 nis_print_rights F
+GLIBC_2.17 nis_print_table F
+GLIBC_2.17 nis_read_obj F
+GLIBC_2.17 nis_remove F
+GLIBC_2.17 nis_remove_entry F
+GLIBC_2.17 nis_removemember F
+GLIBC_2.17 nis_rmdir F
+GLIBC_2.17 nis_servstate F
+GLIBC_2.17 nis_sperrno F
+GLIBC_2.17 nis_sperror F
+GLIBC_2.17 nis_sperror_r F
+GLIBC_2.17 nis_stats F
+GLIBC_2.17 nis_verifygroup F
+GLIBC_2.17 nis_write_obj F
+GLIBC_2.17 readColdStartFile F
+GLIBC_2.17 writeColdStartFile F
+GLIBC_2.17 xdr_cback_data F
+GLIBC_2.17 xdr_domainname F
+GLIBC_2.17 xdr_keydat F
+GLIBC_2.17 xdr_mapname F
+GLIBC_2.17 xdr_obj_p F
+GLIBC_2.17 xdr_peername F
+GLIBC_2.17 xdr_valdat F
+GLIBC_2.17 xdr_yp_buf F
+GLIBC_2.17 xdr_ypall F
+GLIBC_2.17 xdr_ypbind_binding F
+GLIBC_2.17 xdr_ypbind_resp F
+GLIBC_2.17 xdr_ypbind_resptype F
+GLIBC_2.17 xdr_ypbind_setdom F
+GLIBC_2.17 xdr_ypdelete_args F
+GLIBC_2.17 xdr_ypmap_parms F
+GLIBC_2.17 xdr_ypmaplist F
+GLIBC_2.17 xdr_yppush_status F
+GLIBC_2.17 xdr_yppushresp_xfr F
+GLIBC_2.17 xdr_ypreq_key F
+GLIBC_2.17 xdr_ypreq_nokey F
+GLIBC_2.17 xdr_ypreq_xfr F
+GLIBC_2.17 xdr_ypresp_all F
+GLIBC_2.17 xdr_ypresp_key_val F
+GLIBC_2.17 xdr_ypresp_maplist F
+GLIBC_2.17 xdr_ypresp_master F
+GLIBC_2.17 xdr_ypresp_order F
+GLIBC_2.17 xdr_ypresp_val F
+GLIBC_2.17 xdr_ypresp_xfr F
+GLIBC_2.17 xdr_ypstat F
+GLIBC_2.17 xdr_ypupdate_args F
+GLIBC_2.17 xdr_ypxfrstat F
+GLIBC_2.17 yp_all F
+GLIBC_2.17 yp_bind F
+GLIBC_2.17 yp_first F
+GLIBC_2.17 yp_get_default_domain F
+GLIBC_2.17 yp_maplist F
+GLIBC_2.17 yp_master F
+GLIBC_2.17 yp_match F
+GLIBC_2.17 yp_next F
+GLIBC_2.17 yp_order F
+GLIBC_2.17 yp_unbind F
+GLIBC_2.17 yp_update F
+GLIBC_2.17 ypbinderr_string F
+GLIBC_2.17 yperr_string F
+GLIBC_2.17 ypprot_err F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
new file mode 100644
index 0000000000..0cf30ee02f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -0,0 +1,226 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 _IO_flockfile F
+GLIBC_2.17 _IO_ftrylockfile F
+GLIBC_2.17 _IO_funlockfile F
+GLIBC_2.17 __close F
+GLIBC_2.17 __connect F
+GLIBC_2.17 __errno_location F
+GLIBC_2.17 __fcntl F
+GLIBC_2.17 __fork F
+GLIBC_2.17 __h_errno_location F
+GLIBC_2.17 __libc_allocate_rtsig F
+GLIBC_2.17 __libc_current_sigrtmax F
+GLIBC_2.17 __libc_current_sigrtmin F
+GLIBC_2.17 __lseek F
+GLIBC_2.17 __nanosleep F
+GLIBC_2.17 __open F
+GLIBC_2.17 __open64 F
+GLIBC_2.17 __pread64 F
+GLIBC_2.17 __pthread_cleanup_routine F
+GLIBC_2.17 __pthread_getspecific F
+GLIBC_2.17 __pthread_key_create F
+GLIBC_2.17 __pthread_mutex_destroy F
+GLIBC_2.17 __pthread_mutex_init F
+GLIBC_2.17 __pthread_mutex_lock F
+GLIBC_2.17 __pthread_mutex_trylock F
+GLIBC_2.17 __pthread_mutex_unlock F
+GLIBC_2.17 __pthread_mutexattr_destroy F
+GLIBC_2.17 __pthread_mutexattr_init F
+GLIBC_2.17 __pthread_mutexattr_settype F
+GLIBC_2.17 __pthread_once F
+GLIBC_2.17 __pthread_register_cancel F
+GLIBC_2.17 __pthread_register_cancel_defer F
+GLIBC_2.17 __pthread_rwlock_destroy F
+GLIBC_2.17 __pthread_rwlock_init F
+GLIBC_2.17 __pthread_rwlock_rdlock F
+GLIBC_2.17 __pthread_rwlock_tryrdlock F
+GLIBC_2.17 __pthread_rwlock_trywrlock F
+GLIBC_2.17 __pthread_rwlock_unlock F
+GLIBC_2.17 __pthread_rwlock_wrlock F
+GLIBC_2.17 __pthread_setspecific F
+GLIBC_2.17 __pthread_unregister_cancel F
+GLIBC_2.17 __pthread_unregister_cancel_restore F
+GLIBC_2.17 __pthread_unwind_next F
+GLIBC_2.17 __pwrite64 F
+GLIBC_2.17 __read F
+GLIBC_2.17 __res_state F
+GLIBC_2.17 __send F
+GLIBC_2.17 __sigaction F
+GLIBC_2.17 __vfork F
+GLIBC_2.17 __wait F
+GLIBC_2.17 __write F
+GLIBC_2.17 _pthread_cleanup_pop F
+GLIBC_2.17 _pthread_cleanup_pop_restore F
+GLIBC_2.17 _pthread_cleanup_push F
+GLIBC_2.17 _pthread_cleanup_push_defer F
+GLIBC_2.17 accept F
+GLIBC_2.17 close F
+GLIBC_2.17 connect F
+GLIBC_2.17 fcntl F
+GLIBC_2.17 flockfile F
+GLIBC_2.17 fork F
+GLIBC_2.17 fsync F
+GLIBC_2.17 ftrylockfile F
+GLIBC_2.17 funlockfile F
+GLIBC_2.17 longjmp F
+GLIBC_2.17 lseek F
+GLIBC_2.17 lseek64 F
+GLIBC_2.17 msync F
+GLIBC_2.17 nanosleep F
+GLIBC_2.17 open F
+GLIBC_2.17 open64 F
+GLIBC_2.17 pause F
+GLIBC_2.17 pread F
+GLIBC_2.17 pread64 F
+GLIBC_2.17 pthread_attr_destroy F
+GLIBC_2.17 pthread_attr_getaffinity_np F
+GLIBC_2.17 pthread_attr_getdetachstate F
+GLIBC_2.17 pthread_attr_getguardsize F
+GLIBC_2.17 pthread_attr_getinheritsched F
+GLIBC_2.17 pthread_attr_getschedparam F
+GLIBC_2.17 pthread_attr_getschedpolicy F
+GLIBC_2.17 pthread_attr_getscope F
+GLIBC_2.17 pthread_attr_getstack F
+GLIBC_2.17 pthread_attr_getstackaddr F
+GLIBC_2.17 pthread_attr_getstacksize F
+GLIBC_2.17 pthread_attr_init F
+GLIBC_2.17 pthread_attr_setaffinity_np F
+GLIBC_2.17 pthread_attr_setdetachstate F
+GLIBC_2.17 pthread_attr_setguardsize F
+GLIBC_2.17 pthread_attr_setinheritsched F
+GLIBC_2.17 pthread_attr_setschedparam F
+GLIBC_2.17 pthread_attr_setschedpolicy F
+GLIBC_2.17 pthread_attr_setscope F
+GLIBC_2.17 pthread_attr_setstack F
+GLIBC_2.17 pthread_attr_setstackaddr F
+GLIBC_2.17 pthread_attr_setstacksize F
+GLIBC_2.17 pthread_barrier_destroy F
+GLIBC_2.17 pthread_barrier_init F
+GLIBC_2.17 pthread_barrier_wait F
+GLIBC_2.17 pthread_barrierattr_destroy F
+GLIBC_2.17 pthread_barrierattr_getpshared F
+GLIBC_2.17 pthread_barrierattr_init F
+GLIBC_2.17 pthread_barrierattr_setpshared F
+GLIBC_2.17 pthread_cancel F
+GLIBC_2.17 pthread_cond_broadcast F
+GLIBC_2.17 pthread_cond_destroy F
+GLIBC_2.17 pthread_cond_init F
+GLIBC_2.17 pthread_cond_signal F
+GLIBC_2.17 pthread_cond_timedwait F
+GLIBC_2.17 pthread_cond_wait F
+GLIBC_2.17 pthread_condattr_destroy F
+GLIBC_2.17 pthread_condattr_getclock F
+GLIBC_2.17 pthread_condattr_getpshared F
+GLIBC_2.17 pthread_condattr_init F
+GLIBC_2.17 pthread_condattr_setclock F
+GLIBC_2.17 pthread_condattr_setpshared F
+GLIBC_2.17 pthread_create F
+GLIBC_2.17 pthread_detach F
+GLIBC_2.17 pthread_equal F
+GLIBC_2.17 pthread_exit F
+GLIBC_2.17 pthread_getaffinity_np F
+GLIBC_2.17 pthread_getattr_np F
+GLIBC_2.17 pthread_getconcurrency F
+GLIBC_2.17 pthread_getcpuclockid F
+GLIBC_2.17 pthread_getname_np F
+GLIBC_2.17 pthread_getschedparam F
+GLIBC_2.17 pthread_getspecific F
+GLIBC_2.17 pthread_join F
+GLIBC_2.17 pthread_key_create F
+GLIBC_2.17 pthread_key_delete F
+GLIBC_2.17 pthread_kill F
+GLIBC_2.17 pthread_kill_other_threads_np F
+GLIBC_2.17 pthread_mutex_consistent F
+GLIBC_2.17 pthread_mutex_consistent_np F
+GLIBC_2.17 pthread_mutex_destroy F
+GLIBC_2.17 pthread_mutex_getprioceiling F
+GLIBC_2.17 pthread_mutex_init F
+GLIBC_2.17 pthread_mutex_lock F
+GLIBC_2.17 pthread_mutex_setprioceiling F
+GLIBC_2.17 pthread_mutex_timedlock F
+GLIBC_2.17 pthread_mutex_trylock F
+GLIBC_2.17 pthread_mutex_unlock F
+GLIBC_2.17 pthread_mutexattr_destroy F
+GLIBC_2.17 pthread_mutexattr_getkind_np F
+GLIBC_2.17 pthread_mutexattr_getprioceiling F
+GLIBC_2.17 pthread_mutexattr_getprotocol F
+GLIBC_2.17 pthread_mutexattr_getpshared F
+GLIBC_2.17 pthread_mutexattr_getrobust F
+GLIBC_2.17 pthread_mutexattr_getrobust_np F
+GLIBC_2.17 pthread_mutexattr_gettype F
+GLIBC_2.17 pthread_mutexattr_init F
+GLIBC_2.17 pthread_mutexattr_setkind_np F
+GLIBC_2.17 pthread_mutexattr_setprioceiling F
+GLIBC_2.17 pthread_mutexattr_setprotocol F
+GLIBC_2.17 pthread_mutexattr_setpshared F
+GLIBC_2.17 pthread_mutexattr_setrobust F
+GLIBC_2.17 pthread_mutexattr_setrobust_np F
+GLIBC_2.17 pthread_mutexattr_settype F
+GLIBC_2.17 pthread_once F
+GLIBC_2.17 pthread_rwlock_destroy F
+GLIBC_2.17 pthread_rwlock_init F
+GLIBC_2.17 pthread_rwlock_rdlock F
+GLIBC_2.17 pthread_rwlock_timedrdlock F
+GLIBC_2.17 pthread_rwlock_timedwrlock F
+GLIBC_2.17 pthread_rwlock_tryrdlock F
+GLIBC_2.17 pthread_rwlock_trywrlock F
+GLIBC_2.17 pthread_rwlock_unlock F
+GLIBC_2.17 pthread_rwlock_wrlock F
+GLIBC_2.17 pthread_rwlockattr_destroy F
+GLIBC_2.17 pthread_rwlockattr_getkind_np F
+GLIBC_2.17 pthread_rwlockattr_getpshared F
+GLIBC_2.17 pthread_rwlockattr_init F
+GLIBC_2.17 pthread_rwlockattr_setkind_np F
+GLIBC_2.17 pthread_rwlockattr_setpshared F
+GLIBC_2.17 pthread_self F
+GLIBC_2.17 pthread_setaffinity_np F
+GLIBC_2.17 pthread_setcancelstate F
+GLIBC_2.17 pthread_setcanceltype F
+GLIBC_2.17 pthread_setconcurrency F
+GLIBC_2.17 pthread_setname_np F
+GLIBC_2.17 pthread_setschedparam F
+GLIBC_2.17 pthread_setschedprio F
+GLIBC_2.17 pthread_setspecific F
+GLIBC_2.17 pthread_sigmask F
+GLIBC_2.17 pthread_sigqueue F
+GLIBC_2.17 pthread_spin_destroy F
+GLIBC_2.17 pthread_spin_init F
+GLIBC_2.17 pthread_spin_lock F
+GLIBC_2.17 pthread_spin_trylock F
+GLIBC_2.17 pthread_spin_unlock F
+GLIBC_2.17 pthread_testcancel F
+GLIBC_2.17 pthread_timedjoin_np F
+GLIBC_2.17 pthread_tryjoin_np F
+GLIBC_2.17 pthread_yield F
+GLIBC_2.17 pwrite F
+GLIBC_2.17 pwrite64 F
+GLIBC_2.17 raise F
+GLIBC_2.17 read F
+GLIBC_2.17 recv F
+GLIBC_2.17 recvfrom F
+GLIBC_2.17 recvmsg F
+GLIBC_2.17 sem_close F
+GLIBC_2.17 sem_destroy F
+GLIBC_2.17 sem_getvalue F
+GLIBC_2.17 sem_init F
+GLIBC_2.17 sem_open F
+GLIBC_2.17 sem_post F
+GLIBC_2.17 sem_timedwait F
+GLIBC_2.17 sem_trywait F
+GLIBC_2.17 sem_unlink F
+GLIBC_2.17 sem_wait F
+GLIBC_2.17 send F
+GLIBC_2.17 sendmsg F
+GLIBC_2.17 sendto F
+GLIBC_2.17 sigaction F
+GLIBC_2.17 siglongjmp F
+GLIBC_2.17 sigwait F
+GLIBC_2.17 system F
+GLIBC_2.17 tcdrain F
+GLIBC_2.17 vfork F
+GLIBC_2.17 wait F
+GLIBC_2.17 waitpid F
+GLIBC_2.17 write F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
new file mode 100644
index 0000000000..cf278eedb3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
@@ -0,0 +1,92 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 __b64_ntop F
+GLIBC_2.17 __b64_pton F
+GLIBC_2.17 __dn_comp F
+GLIBC_2.17 __dn_count_labels F
+GLIBC_2.17 __dn_expand F
+GLIBC_2.17 __dn_skipname F
+GLIBC_2.17 __fp_nquery F
+GLIBC_2.17 __fp_query F
+GLIBC_2.17 __fp_resstat F
+GLIBC_2.17 __hostalias F
+GLIBC_2.17 __loc_aton F
+GLIBC_2.17 __loc_ntoa F
+GLIBC_2.17 __p_cdname F
+GLIBC_2.17 __p_cdnname F
+GLIBC_2.17 __p_class F
+GLIBC_2.17 __p_class_syms D 0xa8
+GLIBC_2.17 __p_fqname F
+GLIBC_2.17 __p_fqnname F
+GLIBC_2.17 __p_option F
+GLIBC_2.17 __p_query F
+GLIBC_2.17 __p_rcode F
+GLIBC_2.17 __p_secstodate F
+GLIBC_2.17 __p_time F
+GLIBC_2.17 __p_type F
+GLIBC_2.17 __p_type_syms D 0x450
+GLIBC_2.17 __putlong F
+GLIBC_2.17 __putshort F
+GLIBC_2.17 __res_close F
+GLIBC_2.17 __res_dnok F
+GLIBC_2.17 __res_hnok F
+GLIBC_2.17 __res_hostalias F
+GLIBC_2.17 __res_isourserver F
+GLIBC_2.17 __res_mailok F
+GLIBC_2.17 __res_mkquery F
+GLIBC_2.17 __res_nameinquery F
+GLIBC_2.17 __res_nmkquery F
+GLIBC_2.17 __res_nquery F
+GLIBC_2.17 __res_nquerydomain F
+GLIBC_2.17 __res_nsearch F
+GLIBC_2.17 __res_nsend F
+GLIBC_2.17 __res_ownok F
+GLIBC_2.17 __res_queriesmatch F
+GLIBC_2.17 __res_query F
+GLIBC_2.17 __res_querydomain F
+GLIBC_2.17 __res_search F
+GLIBC_2.17 __res_send F
+GLIBC_2.17 __sym_ntop F
+GLIBC_2.17 __sym_ntos F
+GLIBC_2.17 __sym_ston F
+GLIBC_2.17 _gethtbyaddr F
+GLIBC_2.17 _gethtbyname F
+GLIBC_2.17 _gethtbyname2 F
+GLIBC_2.17 _gethtent F
+GLIBC_2.17 _getlong F
+GLIBC_2.17 _getshort F
+GLIBC_2.17 _res_opcodes D 0x80
+GLIBC_2.17 _sethtent F
+GLIBC_2.17 inet_net_ntop F
+GLIBC_2.17 inet_net_pton F
+GLIBC_2.17 inet_neta F
+GLIBC_2.17 ns_datetosecs F
+GLIBC_2.17 ns_format_ttl F
+GLIBC_2.17 ns_get16 F
+GLIBC_2.17 ns_get32 F
+GLIBC_2.17 ns_initparse F
+GLIBC_2.17 ns_makecanon F
+GLIBC_2.17 ns_msg_getflag F
+GLIBC_2.17 ns_name_compress F
+GLIBC_2.17 ns_name_ntol F
+GLIBC_2.17 ns_name_ntop F
+GLIBC_2.17 ns_name_pack F
+GLIBC_2.17 ns_name_pton F
+GLIBC_2.17 ns_name_rollback F
+GLIBC_2.17 ns_name_skip F
+GLIBC_2.17 ns_name_uncompress F
+GLIBC_2.17 ns_name_unpack F
+GLIBC_2.17 ns_parse_ttl F
+GLIBC_2.17 ns_parserr F
+GLIBC_2.17 ns_put16 F
+GLIBC_2.17 ns_put32 F
+GLIBC_2.17 ns_samedomain F
+GLIBC_2.17 ns_samename F
+GLIBC_2.17 ns_skiprr F
+GLIBC_2.17 ns_sprintrr F
+GLIBC_2.17 ns_sprintrrf F
+GLIBC_2.17 ns_subdomain F
+GLIBC_2.17 res_gethostbyaddr F
+GLIBC_2.17 res_gethostbyname F
+GLIBC_2.17 res_gethostbyname2 F
+GLIBC_2.17 res_send_setqhook F
+GLIBC_2.17 res_send_setrhook F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/librt.abilist
new file mode 100644
index 0000000000..523d22249a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -0,0 +1,36 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 __mq_open_2 F
+GLIBC_2.17 aio_cancel F
+GLIBC_2.17 aio_cancel64 F
+GLIBC_2.17 aio_error F
+GLIBC_2.17 aio_error64 F
+GLIBC_2.17 aio_fsync F
+GLIBC_2.17 aio_fsync64 F
+GLIBC_2.17 aio_init F
+GLIBC_2.17 aio_read F
+GLIBC_2.17 aio_read64 F
+GLIBC_2.17 aio_return F
+GLIBC_2.17 aio_return64 F
+GLIBC_2.17 aio_suspend F
+GLIBC_2.17 aio_suspend64 F
+GLIBC_2.17 aio_write F
+GLIBC_2.17 aio_write64 F
+GLIBC_2.17 lio_listio F
+GLIBC_2.17 lio_listio64 F
+GLIBC_2.17 mq_close F
+GLIBC_2.17 mq_getattr F
+GLIBC_2.17 mq_notify F
+GLIBC_2.17 mq_open F
+GLIBC_2.17 mq_receive F
+GLIBC_2.17 mq_send F
+GLIBC_2.17 mq_setattr F
+GLIBC_2.17 mq_timedreceive F
+GLIBC_2.17 mq_timedsend F
+GLIBC_2.17 mq_unlink F
+GLIBC_2.17 shm_open F
+GLIBC_2.17 shm_unlink F
+GLIBC_2.17 timer_create F
+GLIBC_2.17 timer_delete F
+GLIBC_2.17 timer_getoverrun F
+GLIBC_2.17 timer_gettime F
+GLIBC_2.17 timer_settime F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libthread_db.abilist
new file mode 100644
index 0000000000..3e382bf79d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libthread_db.abilist
@@ -0,0 +1,41 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 td_init F
+GLIBC_2.17 td_log F
+GLIBC_2.17 td_symbol_list F
+GLIBC_2.17 td_ta_clear_event F
+GLIBC_2.17 td_ta_delete F
+GLIBC_2.17 td_ta_enable_stats F
+GLIBC_2.17 td_ta_event_addr F
+GLIBC_2.17 td_ta_event_getmsg F
+GLIBC_2.17 td_ta_get_nthreads F
+GLIBC_2.17 td_ta_get_ph F
+GLIBC_2.17 td_ta_get_stats F
+GLIBC_2.17 td_ta_map_id2thr F
+GLIBC_2.17 td_ta_map_lwp2thr F
+GLIBC_2.17 td_ta_new F
+GLIBC_2.17 td_ta_reset_stats F
+GLIBC_2.17 td_ta_set_event F
+GLIBC_2.17 td_ta_setconcurrency F
+GLIBC_2.17 td_ta_thr_iter F
+GLIBC_2.17 td_ta_tsd_iter F
+GLIBC_2.17 td_thr_clear_event F
+GLIBC_2.17 td_thr_dbresume F
+GLIBC_2.17 td_thr_dbsuspend F
+GLIBC_2.17 td_thr_event_enable F
+GLIBC_2.17 td_thr_event_getmsg F
+GLIBC_2.17 td_thr_get_info F
+GLIBC_2.17 td_thr_getfpregs F
+GLIBC_2.17 td_thr_getgregs F
+GLIBC_2.17 td_thr_getxregs F
+GLIBC_2.17 td_thr_getxregsize F
+GLIBC_2.17 td_thr_set_event F
+GLIBC_2.17 td_thr_setfpregs F
+GLIBC_2.17 td_thr_setgregs F
+GLIBC_2.17 td_thr_setprio F
+GLIBC_2.17 td_thr_setsigpending F
+GLIBC_2.17 td_thr_setxregs F
+GLIBC_2.17 td_thr_sigsetmask F
+GLIBC_2.17 td_thr_tls_get_addr F
+GLIBC_2.17 td_thr_tlsbase F
+GLIBC_2.17 td_thr_tsd F
+GLIBC_2.17 td_thr_validate F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libutil.abilist
new file mode 100644
index 0000000000..9c075bc0bd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 forkpty F
+GLIBC_2.17 login F
+GLIBC_2.17 login_tty F
+GLIBC_2.17 logout F
+GLIBC_2.17 logwtmp F
+GLIBC_2.17 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/localplt.data
new file mode 100644
index 0000000000..bb18ff9bb2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/localplt.data
@@ -0,0 +1,20 @@
+# 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
+libm.so: matherr
+# The dynamic loader needs __tls_get_addr for TLS.
+ld.so: __tls_get_addr
+# 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/aarch64/makecontext.c b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/makecontext.c
new file mode 100644
index 0000000000..f510f48e9f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/makecontext.c
@@ -0,0 +1,74 @@
+/* Create new context.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <stdarg.h>
+#include <stdint.h>
+#include <ucontext.h>
+
+
+/* makecontext sets up a stack and the registers for the
+ user context. The stack looks like this:
+
+ +-----------------------+
+ | padding as required |
+ +-----------------------+
+ sp -> | parameter 7-n |
+ +-----------------------+
+
+ The registers are set up like this:
+ %x0 .. %x7: parameter 1 to 8
+ %x19 : uc_link
+ %sp : stack pointer.
+*/
+
+void
+__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
+{
+ extern void __startcontext (void);
+ unsigned long int *sp;
+ va_list ap;
+ int i;
+
+ sp = (unsigned long int *)
+ ((uintptr_t) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size);
+
+ /* Allocate stack arguments. */
+ sp -= argc < 8 ? 0 : argc - 8;
+
+ /* Keep the stack aligned. */
+ sp = (unsigned long int *) (((uintptr_t) sp) & -16L);
+
+ ucp->uc_mcontext.regs[19] = (uintptr_t) ucp->uc_link;
+ ucp->uc_mcontext.sp = (uintptr_t) sp;
+ ucp->uc_mcontext.pc = (uintptr_t) func;
+ ucp->uc_mcontext.regs[29] = (uintptr_t) 0;
+ ucp->uc_mcontext.regs[30] = (uintptr_t) &__startcontext;
+
+ va_start (ap, argc);
+ for (i = 0; i < argc; ++i)
+ if (i < 8)
+ ucp->uc_mcontext.regs[i] = va_arg (ap, unsigned long int);
+ else
+ sp[i - 8] = va_arg (ap, unsigned long int);
+
+ va_end (ap);
+}
+
+weak_alias (__makecontext, makecontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/profil-counter.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/profil-counter.h
new file mode 100644
index 0000000000..e7262cd1d5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/profil-counter.h
@@ -0,0 +1,20 @@
+/* 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/>. */
+
+/* We can use the ix86 version. */
+#include <sysdeps/unix/sysv/linux/i386/profil-counter.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/pt-vfork.c b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/pt-vfork.c
new file mode 100644
index 0000000000..abafb7ce73
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/pt-vfork.c
@@ -0,0 +1,54 @@
+/* vfork ABI-compatibility entry points for libpthread.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+
+/* libpthread used to have its own vfork implementation that differed
+ from libc's only in having a pointless micro-optimization. There
+ is no longer any use to having a separate copy in libpthread, but
+ the historical ABI requires it. For static linking, there is no
+ need to provide anything here--the libc version will be linked in.
+ For shared library ABI compatibility, there must be __vfork and
+ vfork symbols in libpthread.so. */
+
+#if HAVE_IFUNC
+# include <nptl/pt-vfork.c>
+#elif (SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20) \
+ || SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20))
+
+/* Thankfully, on AArch64 we can rely on the compiler generating
+ a tail call here. */
+
+extern void __libc_vfork (void);
+
+void
+vfork_compat (void)
+{
+ __libc_vfork ();
+}
+
+# if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20)
+compat_symbol (libpthread, vfork_compat, vfork, GLIBC_2_0);
+# endif
+
+# if SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20)
+strong_alias (vfork_compat, vfork_compat2)
+compat_symbol (libpthread, vfork_compat2, __vfork, GLIBC_2_1_2);
+# endif
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/readelflib.c b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/readelflib.c
new file mode 100644
index 0000000000..d932ff8021
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/readelflib.c
@@ -0,0 +1,18 @@
+/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include "../arm/readelflib.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/setcontext.S
new file mode 100644
index 0000000000..3a82926ad3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/setcontext.S
@@ -0,0 +1,130 @@
+/* Set current context.
+
+ 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 "ucontext_i.h"
+#include "ucontext-internal.h"
+
+/* int __setcontext (const ucontext_t *ucp)
+
+ Restores the machine context in UCP and thereby resumes execution
+ in that context.
+
+ This implementation is intended to be used for *synchronous* context
+ switches only. Therefore, it does not have to restore anything
+ other than the PRESERVED state. */
+
+ .text
+
+ENTRY (__setcontext)
+ DELOUSE (0)
+ /* Save a copy of UCP. */
+ mov x9, x0
+
+ /* Set the signal mask with
+ rt_sigprocmask (SIG_SETMASK, mask, NULL, _NSIG/8). */
+ mov x0, #SIG_SETMASK
+ add x1, x9, #UCONTEXT_SIGMASK
+ mov x2, #0
+ mov x3, #_NSIG8
+ mov x8, SYS_ify (rt_sigprocmask)
+ svc 0
+ cbz x0, 1f
+ b C_SYMBOL_NAME (__syscall_error)
+1:
+ /* Restore the general purpose registers. */
+ mov x0, x9
+ cfi_def_cfa (x0, 0)
+ cfi_offset (x18, oX0 + 18 * SZREG)
+ cfi_offset (x19, oX0 + 19 * SZREG)
+ cfi_offset (x20, oX0 + 20 * SZREG)
+ cfi_offset (x21, oX0 + 21 * SZREG)
+ cfi_offset (x22, oX0 + 22 * SZREG)
+ cfi_offset (x23, oX0 + 23 * SZREG)
+ cfi_offset (x24, oX0 + 24 * SZREG)
+ cfi_offset (x25, oX0 + 25 * SZREG)
+ cfi_offset (x26, oX0 + 26 * SZREG)
+ cfi_offset (x27, oX0 + 27 * SZREG)
+ cfi_offset (x28, oX0 + 28 * SZREG)
+ cfi_offset (x29, oX0 + 29 * SZREG)
+ cfi_offset (x30, oX0 + 30 * SZREG)
+
+ cfi_offset ( d8, oV0 + 8 * SZVREG)
+ cfi_offset ( d9, oV0 + 9 * SZVREG)
+ cfi_offset (d10, oV0 + 10 * SZVREG)
+ cfi_offset (d11, oV0 + 11 * SZVREG)
+ cfi_offset (d12, oV0 + 12 * SZVREG)
+ cfi_offset (d13, oV0 + 13 * SZVREG)
+ cfi_offset (d14, oV0 + 14 * SZVREG)
+ cfi_offset (d15, oV0 + 15 * SZVREG)
+ ldp x18, x19, [x0, oX0 + 18 * SZREG]
+ ldp x20, x21, [x0, oX0 + 20 * SZREG]
+ ldp x22, x23, [x0, oX0 + 22 * SZREG]
+ ldp x24, x25, [x0, oX0 + 24 * SZREG]
+ ldp x26, x27, [x0, oX0 + 26 * SZREG]
+ ldp x28, x29, [x0, oX0 + 28 * SZREG]
+ ldr x30, [x0, oX0 + 30 * SZREG]
+ ldr x2, [x0, oSP]
+ mov sp, x2
+
+ /* Check for FP SIMD context. We don't support restoring
+ contexts created by the kernel, so this context must have
+ been created by getcontext. Hence we can rely on the
+ first extension block being the FP SIMD context. */
+ add x2, x0, #oEXTENSION
+
+ mov w3, #(FPSIMD_MAGIC & 0xffff)
+ movk w3, #(FPSIMD_MAGIC >> 16), lsl #16
+ ldr w1, [x2, #oHEAD + oMAGIC]
+ cmp w1, w3
+ b.ne 2f
+
+ /* Restore the FP SIMD context. */
+ add x3, x2, #oV0 + 8 * SZVREG
+ ldp q8, q9, [x3], #2 * SZVREG
+ ldp q10, q11, [x3], #2 * SZVREG
+ ldp q12, q13, [x3], #2 * SZVREG
+ ldp q14, q15, [x3], #2 * SZVREG
+
+ add x3, x2, oFPSR
+
+ ldr w4, [x3]
+ msr fpsr, x4
+
+ ldr w4, [x3, oFPCR - oFPSR]
+ msr fpcr, x4
+
+2:
+ ldr x16, [x0, oPC]
+ /* Restore arg registers. */
+ ldp x2, x3, [x0, oX0 + 2 * SZREG]
+ ldp x4, x5, [x0, oX0 + 4 * SZREG]
+ ldp x6, x7, [x0, oX0 + 6 * SZREG]
+ ldp x0, x1, [x0, oX0 + 0 * SZREG]
+ /* Jump to the new pc value. */
+ br x16
+PSEUDO_END (__setcontext)
+weak_alias (__setcontext, setcontext)
+
+ENTRY (__startcontext)
+ mov x0, x19
+ cbnz x0, __setcontext
+1: b HIDDEN_JUMPTARGET (exit)
+END (__startcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/shlib-versions
new file mode 100644
index 0000000000..e1768a7361
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/shlib-versions
@@ -0,0 +1,7 @@
+DEFAULT GLIBC_2.17
+
+%ifdef HAVE_AARCH64_BE
+ld=ld-linux-aarch64_be.so.1
+%else
+ld=ld-linux-aarch64.so.1
+%endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sigaction.c b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sigaction.c
new file mode 100644
index 0000000000..7cbb056367
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sigaction.c
@@ -0,0 +1,70 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <string.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#define SA_RESTORER 0x04000000
+
+/* The difference here is that the sigaction structure used in the
+ kernel is not the same as we use in the libc. Therefore we must
+ translate it here. */
+#include <kernel_sigaction.h>
+
+int
+__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+{
+ int result;
+ struct kernel_sigaction kact;
+ struct kernel_sigaction koact;
+
+ if (act)
+ {
+ kact.k_sa_handler = act->sa_handler;
+ memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t));
+ kact.sa_flags = act->sa_flags;
+#ifdef HAVE_SA_RESTORER
+ if (kact.sa_flags & SA_RESTORER)
+ kact.sa_restorer = act->sa_restorer;
+#endif
+ }
+
+ result = INLINE_SYSCALL (rt_sigaction, 4, sig,
+ act ? &kact : NULL,
+ oact ? &koact : NULL, _NSIG / 8);
+ if (result >= 0 || errno != ENOSYS)
+ {
+ if (oact && result >= 0)
+ {
+ oact->sa_handler = koact.k_sa_handler;
+ memcpy (&oact->sa_mask, &koact.sa_mask, sizeof (sigset_t));
+ oact->sa_flags = koact.sa_flags;
+#ifdef HAVE_SA_RESTORER
+ oact->sa_restorer = koact.sa_restorer;
+#endif
+ }
+ }
+ return result;
+}
+libc_hidden_def (__libc_sigaction)
+
+#include <nptl/sigaction.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h
new file mode 100644
index 0000000000..b28ad5bdcd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h
@@ -0,0 +1,35 @@
+/* AArch64 definitions for signal handling calling conventions.
+ 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 <stdint.h>
+#include <sys/ucontext.h>
+
+#define SIGCONTEXT siginfo_t *_si, struct ucontext *
+#define GET_PC(ctx) ((void *) (uintptr_t) (ctx)->uc_mcontext.pc)
+
+/* There is no reliable way to get the sigcontext unless we use a
+ three-argument signal handler. */
+#define __sigaction(sig, act, oact) ({ \
+ (act)->sa_flags |= SA_SIGINFO; \
+ (__sigaction) (sig, act, oact); \
+})
+
+#define sigaction(sig, act, oact) ({ \
+ (act)->sa_flags |= SA_SIGINFO; \
+ (sigaction) (sig, act, oact); \
+})
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/swapcontext.S
new file mode 100644
index 0000000000..429c179354
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/swapcontext.S
@@ -0,0 +1,101 @@
+/* Modify saved context.
+
+ 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 "ucontext_i.h"
+#include "ucontext-internal.h"
+
+/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */
+
+ .text
+ENTRY(__swapcontext)
+ DELOUSE (0)
+ /* Set the value returned when swapcontext() returns in this context. */
+ str xzr, [x0, oX0 + 0 * SZREG]
+
+ stp x18, x19, [x0, oX0 + 18 * SZREG]
+ stp x20, x21, [x0, oX0 + 20 * SZREG]
+ stp x22, x23, [x0, oX0 + 22 * SZREG]
+ stp x24, x25, [x0, oX0 + 24 * SZREG]
+ stp x26, x27, [x0, oX0 + 26 * SZREG]
+ stp x28, x29, [x0, oX0 + 28 * SZREG]
+ str x30, [x0, oX0 + 30 * SZREG]
+ str x30, [x0, oPC]
+ mov x2, sp
+ str x2, [x0, oSP]
+
+ /* Figure out where to place the first context extension
+ block. */
+ add x2, x0, #oEXTENSION
+
+ /* Write the context extension fpsimd header. */
+ mov w3, #(FPSIMD_MAGIC & 0xffff)
+ movk w3, #(FPSIMD_MAGIC >> 16), lsl #16
+ str w3, [x2, #oHEAD + oMAGIC]
+ mov w3, #FPSIMD_CONTEXT_SIZE
+ str w3, [x2, #oHEAD + oSIZE]
+
+ /* Fill in the FP SIMD context. */
+ add x3, x2, #oV0 + 8 * SZVREG
+ stp q8, q9, [x3], #2 * SZVREG
+ stp q10, q11, [x3], #2 * SZVREG
+ stp q12, q13, [x3], #2 * SZVREG
+ stp q14, q15, [x3], #2 * SZVREG
+
+ add x3, x2, #oFPSR
+
+ mrs x4, fpsr
+ str w4, [x3, #oFPSR - oFPSR]
+
+ mrs x4, fpcr
+ str w4, [x3, #oFPCR - oFPSR]
+
+ /* Write the termination context extension header. */
+ add x2, x2, #FPSIMD_CONTEXT_SIZE
+
+ str xzr, [x2, #oHEAD + oMAGIC]
+ str xzr, [x2, #oHEAD + oSIZE]
+
+ /* Preserve ucp. */
+ mov x21, x1
+
+ /* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, &oucp->uc_sigmask,
+ _NSIG8) */
+ /* Grab the signal mask */
+ /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
+ add x2, x0, #UCONTEXT_SIGMASK
+ mov x0, SIG_BLOCK
+ mov x1, 0
+ mov x3, _NSIG8
+ mov x8, SYS_ify (rt_sigprocmask)
+ svc 0
+ cbnz x0, 1f
+
+ mov x22, x30
+ mov x0, x21
+ bl JUMPTARGET (__setcontext)
+ mov x30, x22
+ RET
+
+1:
+ b C_SYMBOL_NAME(__syscall_error)
+PSEUDO_END (__swapcontext)
+weak_alias (__swapcontext, swapcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/elf.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/elf.h
new file mode 100644
index 0000000000..1c7447440c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/elf.h
@@ -0,0 +1,26 @@
+/* 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_ELF_H
+#define _SYS_ELF_H 1
+
+#warning "This header is obsolete; use <sys/procfs.h> instead."
+
+#include <sys/procfs.h>
+
+#endif /* sys/elf.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h
new file mode 100644
index 0000000000..7a7b1d0742
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h
@@ -0,0 +1,123 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+#define _SYS_PROCFS_H 1
+
+/* This is somewhat modelled after the file of the same name on SVR4
+ systems. It provides a definition of the core file format for ELF
+ used on Linux. It doesn't have anything to do with the /proc file
+ system, even though Linux has one.
+
+ Anyway, the whole purpose of this file is for GDB and GDB only.
+ Don't read too much into it. Don't use it for anything other than
+ GDB unless you know what you are doing. */
+
+#include <features.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/user.h>
+
+__BEGIN_DECLS
+
+/* Type for a general-purpose register. */
+typedef unsigned long elf_greg_t;
+
+/* And the whole bunch of them. We could have used `struct
+ pt_regs' directly in the typedef, but tradition says that
+ the register set is an array, which does have some peculiar
+ semantics, so leave it that way. */
+#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t))
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+/* Register set for the floating-point registers. */
+typedef struct user_fpsimd_struct elf_fpregset_t;
+
+/* Signal info. */
+struct elf_siginfo
+ {
+ int si_signo; /* Signal number. */
+ int si_code; /* Extra code. */
+ int si_errno; /* Errno. */
+ };
+
+/* Definitions to generate Intel SVR4-like core files. These mostly
+ have the same names as the SVR4 types with "elf_" tacked on the
+ front to prevent clashes with Linux definitions, and the typedef
+ forms have been avoided. This is mostly like the SVR4 structure,
+ but more Linuxy, with things that Linux does not support and which
+ GDB doesn't really use excluded. */
+
+struct elf_prstatus
+ {
+ struct elf_siginfo pr_info; /* Info associated with signal. */
+ short int pr_cursig; /* Current signal. */
+ unsigned long int pr_sigpend; /* Set of pending signals. */
+ unsigned long int pr_sighold; /* Set of held signals. */
+ __pid_t pr_pid;
+ __pid_t pr_ppid;
+ __pid_t pr_pgrp;
+ __pid_t pr_sid;
+ struct timeval pr_utime; /* User time. */
+ struct timeval pr_stime; /* System time. */
+ struct timeval pr_cutime; /* Cumulative user time. */
+ struct timeval pr_cstime; /* Cumulative system time. */
+ elf_gregset_t pr_reg; /* GP registers. */
+ int pr_fpvalid; /* True if math copro being used. */
+ };
+
+
+#define ELF_PRARGSZ (80) /* Number of chars for args. */
+
+struct elf_prpsinfo
+ {
+ char pr_state; /* Numeric process state. */
+ char pr_sname; /* Char for pr_state. */
+ char pr_zomb; /* Zombie. */
+ char pr_nice; /* Nice val. */
+ unsigned long int pr_flag; /* Flags. */
+ unsigned int pr_uid;
+ unsigned int pr_gid;
+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing */
+ char pr_fname[16]; /* Filename of executable. */
+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
+ };
+
+/* The rest of this file provides the types for emulation of the
+ Solaris <proc_service.h> interfaces that should be implemented by
+ users of libthread_db. */
+
+/* Addresses. */
+typedef void *psaddr_t;
+
+/* Register sets. Linux has different names. */
+typedef elf_gregset_t prgregset_t;
+typedef elf_fpregset_t prfpregset_t;
+
+/* We don't have any differences between processes and threads,
+ therefore have only one PID type. */
+typedef __pid_t lwpid_t;
+
+/* Process status and info. In the end we do provide typedefs for them. */
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+__END_DECLS
+
+#endif /* sys/procfs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
new file mode 100644
index 0000000000..c8ca9e398e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
@@ -0,0 +1,207 @@
+/* `ptrace' debugger support interface. Linux 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/>. */
+
+#ifndef _SYS_PTRACE_H
+#define _SYS_PTRACE_H 1
+
+#include <features.h>
+#include <bits/types.h>
+
+__BEGIN_DECLS
+
+/* Type of the REQUEST argument to `ptrace.' */
+enum __ptrace_request
+{
+ /* Indicate that the process making this request should be traced.
+ All signals received by this process can be intercepted by its
+ parent, and its parent can use the other `ptrace' requests. */
+ PTRACE_TRACEME = 0,
+#define PT_TRACE_ME PTRACE_TRACEME
+
+ /* Return the word in the process's text space at address ADDR. */
+ PTRACE_PEEKTEXT = 1,
+#define PT_READ_I PTRACE_PEEKTEXT
+
+ /* Return the word in the process's data space at address ADDR. */
+ PTRACE_PEEKDATA = 2,
+#define PT_READ_D PTRACE_PEEKDATA
+
+ /* Return the word in the process's user area at offset ADDR. */
+ PTRACE_PEEKUSER = 3,
+#define PT_READ_U PTRACE_PEEKUSER
+
+ /* Write the word DATA into the process's text space at address ADDR. */
+ PTRACE_POKETEXT = 4,
+#define PT_WRITE_I PTRACE_POKETEXT
+
+ /* Write the word DATA into the process's data space at address ADDR. */
+ PTRACE_POKEDATA = 5,
+#define PT_WRITE_D PTRACE_POKEDATA
+
+ /* Write the word DATA into the process's user area at offset ADDR. */
+ PTRACE_POKEUSER = 6,
+#define PT_WRITE_U PTRACE_POKEUSER
+
+ /* Continue the process. */
+ PTRACE_CONT = 7,
+#define PT_CONTINUE PTRACE_CONT
+
+ /* Kill the process. */
+ PTRACE_KILL = 8,
+#define PT_KILL PTRACE_KILL
+
+ /* Single step the process. */
+ PTRACE_SINGLESTEP = 9,
+#define PT_STEP PTRACE_SINGLESTEP
+
+ /* Attach to a process that is already running. */
+ PTRACE_ATTACH = 16,
+#define PT_ATTACH PTRACE_ATTACH
+
+ /* Detach from a process attached to with PTRACE_ATTACH. */
+ PTRACE_DETACH = 17,
+#define PT_DETACH PTRACE_DETACH
+
+ PTRACE_GET_THREAD_AREA = 22,
+
+ /* Continue and stop at the next (return from) syscall. */
+ PTRACE_SYSCALL = 24,
+#define PT_SYSCALL PTRACE_SYSCALL
+
+ /* Get all hardware breakpoint registers. */
+ PTRACE_GETHBPREGS = 29,
+
+ /* Set all hardware breakpoint registers. */
+ PTRACE_SETHBPREGS = 30,
+
+ /* Set ptrace filter options. */
+ PTRACE_SETOPTIONS = 0x4200,
+#define PT_SETOPTIONS PTRACE_SETOPTIONS
+
+ /* Get last ptrace message. */
+ PTRACE_GETEVENTMSG = 0x4201,
+#define PT_GETEVENTMSG PTRACE_GETEVENTMSG
+
+ /* Get siginfo for process. */
+ PTRACE_GETSIGINFO = 0x4202,
+#define PT_GETSIGINFO PTRACE_GETSIGINFO
+
+ /* Set new siginfo for process. */
+ PTRACE_SETSIGINFO = 0x4203,
+#define PT_SETSIGINFO PTRACE_SETSIGINFO
+
+ /* Get register content. */
+ PTRACE_GETREGSET = 0x4204,
+#define PTRACE_GETREGSET PTRACE_GETREGSET
+
+ /* Set register content. */
+ PTRACE_SETREGSET = 0x4205,
+#define PTRACE_SETREGSET PTRACE_SETREGSET
+
+ /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect
+ signal or group stop state. */
+ PTRACE_SEIZE = 0x4206,
+#define PTRACE_SEIZE PTRACE_SEIZE
+
+ /* Trap seized trace. */
+ PTRACE_INTERRUPT = 0x4207,
+#define PTRACE_INTERRUPT PTRACE_INTERRUPT
+
+ /* Wait for next group event. */
+ PTRACE_LISTEN = 0x4208,
+#define PTRACE_LISTEN PTRACE_LISTEN
+
+ PTRACE_PEEKSIGINFO = 0x4209,
+#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
+
+ PTRACE_GETSIGMASK = 0x420a,
+#define PTRACE_GETSIGMASK PTRACE_GETSIGMASK
+
+ PTRACE_SETSIGMASK = 0x420b,
+#define PTRACE_SETSIGMASK PTRACE_SETSIGMASK
+
+ PTRACE_SECCOMP_GET_FILTER = 0x420c
+#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
+};
+
+
+/* Flag for PTRACE_LISTEN. */
+enum __ptrace_flags
+{
+ PTRACE_SEIZE_DEVEL = 0x80000000
+};
+
+/* Options set using PTRACE_SETOPTIONS. */
+enum __ptrace_setoptions
+{
+ PTRACE_O_TRACESYSGOOD = 0x00000001,
+ PTRACE_O_TRACEFORK = 0x00000002,
+ PTRACE_O_TRACEVFORK = 0x00000004,
+ PTRACE_O_TRACECLONE = 0x00000008,
+ PTRACE_O_TRACEEXEC = 0x00000010,
+ PTRACE_O_TRACEVFORKDONE = 0x00000020,
+ PTRACE_O_TRACEEXIT = 0x00000040,
+ PTRACE_O_TRACESECCOMP = 0x00000080,
+ PTRACE_O_EXITKILL = 0x00100000,
+ PTRACE_O_SUSPEND_SECCOMP = 0x00200000,
+ PTRACE_O_MASK = 0x003000ff
+};
+
+enum __ptrace_eventcodes
+{
+/* Wait extended result codes for the above trace options. */
+ PTRACE_EVENT_FORK = 1,
+ PTRACE_EVENT_VFORK = 2,
+ PTRACE_EVENT_CLONE = 3,
+ PTRACE_EVENT_EXEC = 4,
+ PTRACE_EVENT_VFORK_DONE = 5,
+ PTRACE_EVENT_EXIT = 6,
+ PTRACE_EVENT_SECCOMP = 7,
+/* Extended result codes enabled by means other than options. */
+ PTRACE_EVENT_STOP = 128
+};
+
+/* Arguments for PTRACE_PEEKSIGINFO. */
+struct __ptrace_peeksiginfo_args
+{
+ __uint64_t off; /* From which siginfo to start. */
+ __uint32_t flags; /* Flags for peeksiginfo. */
+ __int32_t nr; /* How many siginfos to take. */
+};
+
+enum __ptrace_peeksiginfo_flags
+{
+ /* Read signals from a shared (process wide) queue. */
+ PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
+};
+
+/* Perform process tracing functions. REQUEST is one of the values
+ above, and determines the action to be taken.
+ For all requests except PTRACE_TRACEME, PID specifies the process to be
+ traced.
+
+ PID and the other arguments described above for the various requests should
+ appear (those that are used for the particular request) as:
+ pid_t PID, void *ADDR, int DATA, void *ADDR2
+ after REQUEST. */
+extern long int ptrace (enum __ptrace_request __request, ...) __THROW;
+
+__END_DECLS
+
+#endif /* _SYS_PTRACE_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
new file mode 100644
index 0000000000..16c7acf221
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
@@ -0,0 +1,59 @@
+/* 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/>. */
+
+/* System V/AArch64 ABI compliant context switching support. */
+
+#ifndef _SYS_UCONTEXT_H
+#define _SYS_UCONTEXT_H 1
+
+#include <features.h>
+
+#include <bits/types/sigset_t.h>
+#include <bits/sigcontext.h>
+#include <bits/types/stack_t.h>
+
+#ifdef __USE_MISC
+# include <sys/procfs.h>
+
+
+typedef elf_greg_t greg_t;
+
+/* Container for all general registers. */
+typedef elf_gregset_t gregset_t;
+
+/* Structure to describe FPU registers. */
+typedef elf_fpregset_t fpregset_t;
+#endif
+
+/* Context to describe whole processor state. This only describes
+ the core registers; coprocessor registers get saved elsewhere
+ (e.g. in uc_regspace, or somewhere unspecified on the stack
+ during non-RT signal handlers). */
+typedef struct sigcontext mcontext_t;
+
+/* Userlevel context. */
+typedef struct ucontext
+ {
+ unsigned long uc_flags;
+ struct ucontext *uc_link;
+ stack_t uc_stack;
+ sigset_t uc_sigmask;
+ mcontext_t uc_mcontext;
+ } ucontext_t;
+
+#endif /* sys/ucontext.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/user.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/user.h
new file mode 100644
index 0000000000..b003cdb2b6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/user.h
@@ -0,0 +1,37 @@
+/* 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/>. */
+
+#ifndef _SYS_USER_H
+#define _SYS_USER_H 1
+
+struct user_regs_struct
+{
+ unsigned long long regs[31];
+ unsigned long long sp;
+ unsigned long long pc;
+ unsigned long long pstate;
+};
+
+struct user_fpsimd_struct
+{
+ __uint128_t vregs[32];
+ unsigned int fpsr;
+ unsigned int fpcr;
+};
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/syscall.S
new file mode 100644
index 0000000000..d377db45ff
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/syscall.S
@@ -0,0 +1,44 @@
+/* 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>
+
+/* syscall (int nr, ...)
+
+ AArch64 system calls take between 0 and 7 arguments. On entry here nr
+ is in w0 and any other system call arguments are in register x1..x7.
+
+ For kernel entry we need to move the system call nr to x8 then
+ load the remaining arguments to register. */
+
+ENTRY (syscall)
+ uxtw x8, w0
+ mov x0, x1
+ mov x1, x2
+ mov x2, x3
+ mov x3, x4
+ mov x4, x5
+ mov x5, x6
+ mov x6, x7
+ svc 0x0
+ cmn x0, #4095
+ b.cs 1f
+ RET
+1:
+ b SYSCALL_ERROR
+PSEUDO_END (syscall)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h
new file mode 100644
index 0000000000..4be2259878
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h
@@ -0,0 +1,134 @@
+/* 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)
+
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args) \
+ .section ".text"; \
+ENTRY (__##syscall_name##_nocancel); \
+.Lpseudo_nocancel: \
+ DO_CALL (syscall_name, args); \
+.Lpseudo_finish: \
+ cmn x0, 4095; \
+ b.cs .Lsyscall_error; \
+ .subsection 2; \
+ .size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \
+ENTRY (name); \
+ SINGLE_THREAD_P(16); \
+ cbz w16, .Lpseudo_nocancel; \
+ /* Setup common stack frame no matter the number of args. \
+ Also save the first arg, since it's basically free. */ \
+ stp x30, x0, [sp, -64]!; \
+ cfi_adjust_cfa_offset (64); \
+ cfi_rel_offset (x30, 0); \
+ DOCARGS_##args; /* save syscall args around CENABLE. */ \
+ CENABLE; \
+ mov x16, x0; /* save mask around syscall. */ \
+ UNDOCARGS_##args; /* restore syscall args. */ \
+ DO_CALL (syscall_name, args); \
+ str x0, [sp, 8]; /* save result around CDISABLE. */ \
+ mov x0, x16; /* restore mask for CDISABLE. */ \
+ CDISABLE; \
+ /* Break down the stack frame, restoring result at once. */ \
+ ldp x30, x0, [sp], 64; \
+ cfi_adjust_cfa_offset (-64); \
+ cfi_restore (x30); \
+ b .Lpseudo_finish; \
+ cfi_endproc; \
+ .size name, .-name; \
+ .previous
+
+# undef PSEUDO_END
+# define PSEUDO_END(name) \
+ SYSCALL_ERROR_HANDLER; \
+ cfi_endproc
+
+# define DOCARGS_0
+# define DOCARGS_1
+# define DOCARGS_2 str x1, [sp, 16]
+# define DOCARGS_3 stp x1, x2, [sp, 16]
+# define DOCARGS_4 DOCARGS_3; str x3, [sp, 32]
+# define DOCARGS_5 DOCARGS_3; stp x3, x4, [sp, 32]
+# define DOCARGS_6 DOCARGS_5; str x5, [sp, 48]
+
+# define UNDOCARGS_0
+# define UNDOCARGS_1 ldr x0, [sp, 8]
+# define UNDOCARGS_2 ldp x0, x1, [sp, 8]
+# define UNDOCARGS_3 UNDOCARGS_1; ldp x1, x2, [sp, 16]
+# define UNDOCARGS_4 UNDOCARGS_2; ldp x2, x3, [sp, 24]
+# define UNDOCARGS_5 UNDOCARGS_3; ldp x3, x4, [sp, 32]
+# define UNDOCARGS_6 UNDOCARGS_4; ldp x4, x5, [sp, 40]
+
+# if IS_IN (libpthread)
+# define CENABLE bl __pthread_enable_asynccancel
+# define CDISABLE bl __pthread_disable_asynccancel
+# define __local_multiple_threads __pthread_multiple_threads
+# elif IS_IN (libc)
+# define CENABLE bl __libc_enable_asynccancel
+# define CDISABLE bl __libc_disable_asynccancel
+# define __local_multiple_threads __libc_multiple_threads
+# elif IS_IN (librt)
+# define CENABLE bl __librt_enable_asynccancel
+# define CDISABLE bl __librt_disable_asynccancel
+# else
+# error Unsupported library
+# endif
+
+# if IS_IN (libpthread) || IS_IN (libc)
+# ifndef __ASSEMBLER__
+extern int __local_multiple_threads attribute_hidden;
+# define SINGLE_THREAD_P __builtin_expect (__local_multiple_threads == 0, 1)
+# else
+# define SINGLE_THREAD_P(R) \
+ adrp x##R, __local_multiple_threads; \
+ ldr w##R, [x##R, :lo12:__local_multiple_threads]
+# endif
+# else
+/* There is no __local_multiple_threads for librt, so use the TCB. */
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+# else
+# define SINGLE_THREAD_P(R) \
+ mrs x##R, tpidr_el0; \
+ sub x##R, x##R, PTHREAD_SIZEOF; \
+ ldr w##R, [x##R, PTHREAD_MULTIPLE_THREADS_OFFSET]
+# endif
+# endif
+
+#elif !defined __ASSEMBLER__
+
+/* For rtld, et cetera. */
+# 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/aarch64/sysdep.c b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep.c
new file mode 100644
index 0000000000..d9c995152f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 2011-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 <errno.h>
+
+long __syscall_error (long err);
+hidden_proto (__syscall_error)
+
+/* This routine is jumped to by all the syscall handlers, to stash
+ an error number into errno. */
+long
+__syscall_error (long err)
+{
+ __set_errno (- err);
+ return -1;
+}
+hidden_def (__syscall_error)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep.h
new file mode 100644
index 0000000000..4bb9112d62
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep.h
@@ -0,0 +1,297 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LINUX_AARCH64_SYSDEP_H
+#define _LINUX_AARCH64_SYSDEP_H 1
+
+#include <sysdeps/unix/sysdep.h>
+#include <sysdeps/aarch64/sysdep.h>
+#include <sysdeps/unix/sysv/linux/generic/sysdep.h>
+
+/* Defines RTLD_PRIVATE_ERRNO and USE_DL_SYSINFO. */
+#include <dl-sysdep.h>
+
+#include <tls.h>
+
+/* In order to get __set_errno() definition in INLINE_SYSCALL. */
+#ifndef __ASSEMBLER__
+#include <errno.h>
+#endif
+
+/* 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 safely
+ test with -4095. */
+
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args) \
+ .text; \
+ ENTRY (name); \
+ DO_CALL (syscall_name, args); \
+ cmn x0, #4095; \
+ b.cs .Lsyscall_error;
+
+# undef PSEUDO_END
+# define PSEUDO_END(name) \
+ SYSCALL_ERROR_HANDLER \
+ 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
+
+/* The function has to return the error code. */
+# undef PSEUDO_ERRVAL
+# define PSEUDO_ERRVAL(name, syscall_name, args) \
+ .text; \
+ ENTRY (name) \
+ DO_CALL (syscall_name, args); \
+ neg x0, x0
+
+# undef PSEUDO_END_ERRVAL
+# define PSEUDO_END_ERRVAL(name) \
+ END (name)
+
+# define ret_ERRVAL ret
+
+# if !IS_IN (libc)
+# define SYSCALL_ERROR .Lsyscall_error
+# if RTLD_PRIVATE_ERRNO
+# define SYSCALL_ERROR_HANDLER \
+.Lsyscall_error: \
+ adrp x1, C_SYMBOL_NAME(rtld_errno); \
+ neg w0, w0; \
+ str w0, [x1, :lo12:C_SYMBOL_NAME(rtld_errno)]; \
+ mov x0, -1; \
+ RET;
+# else
+
+# define SYSCALL_ERROR_HANDLER \
+.Lsyscall_error: \
+ adrp x1, :gottprel:errno; \
+ neg w2, w0; \
+ ldr PTR_REG(1), [x1, :gottprel_lo12:errno]; \
+ mrs x3, tpidr_el0; \
+ mov x0, -1; \
+ str w2, [x1, x3]; \
+ RET;
+# endif
+# else
+# define SYSCALL_ERROR __syscall_error
+# define SYSCALL_ERROR_HANDLER \
+.Lsyscall_error: \
+ b __syscall_error;
+# endif
+
+/* Linux takes system call args in registers:
+ syscall number x8
+ arg 1 x0
+ arg 2 x1
+ arg 3 x2
+ arg 4 x3
+ arg 5 x4
+ arg 6 x5
+ arg 7 x6
+
+ The compiler is going to form a call by coming here, through PSEUDO, with
+ arguments
+ syscall number in the DO_CALL macro
+ arg 1 x0
+ arg 2 x1
+ arg 3 x2
+ arg 4 x3
+ arg 5 x4
+ arg 6 x5
+ arg 7 x6
+
+*/
+
+# undef DO_CALL
+# define DO_CALL(syscall_name, args) \
+ mov x8, SYS_ify (syscall_name); \
+ svc 0
+
+#else /* not __ASSEMBLER__ */
+
+
+/* List of system calls which are supported as vsyscalls. */
+# define HAVE_CLOCK_GETRES_VSYSCALL 1
+# define HAVE_CLOCK_GETTIME_VSYSCALL 1
+# define HAVE_GETTIMEOFDAY_VSYSCALL 1
+
+/* Previously AArch64 used the generic version without the libc_hidden_def
+ which lead in a non existent __send symbol in libc.so. */
+# undef HAVE_INTERNAL_SEND_SYMBOL
+
+/* Define a macro which expands into the inline wrapper code for a system
+ call. */
+# undef INLINE_SYSCALL
+# define INLINE_SYSCALL(name, nr, args...) \
+ ({ unsigned long _sys_result = INTERNAL_SYSCALL (name, , nr, args); \
+ if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (_sys_result, ), 0))\
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (_sys_result, )); \
+ _sys_result = (unsigned long) -1; \
+ } \
+ (long) _sys_result; })
+
+# undef INTERNAL_SYSCALL_DECL
+# define INTERNAL_SYSCALL_DECL(err) do { } while (0)
+
+# undef INTERNAL_SYSCALL_RAW
+# define INTERNAL_SYSCALL_RAW(name, err, nr, args...) \
+ ({ long _sys_result; \
+ { \
+ LOAD_ARGS_##nr (args) \
+ register long _x8 asm ("x8") = (name); \
+ asm volatile ("svc 0 // syscall " # name \
+ : "=r" (_x0) : "r"(_x8) ASM_ARGS_##nr : "memory"); \
+ _sys_result = _x0; \
+ } \
+ _sys_result; })
+
+# undef INTERNAL_SYSCALL
+# define INTERNAL_SYSCALL(name, err, nr, args...) \
+ INTERNAL_SYSCALL_RAW(SYS_ify(name), err, nr, args)
+
+# undef INTERNAL_SYSCALL_AARCH64
+# define INTERNAL_SYSCALL_AARCH64(name, err, nr, args...) \
+ INTERNAL_SYSCALL_RAW(__ARM_NR_##name, err, nr, args)
+
+# undef INTERNAL_SYSCALL_ERROR_P
+# define INTERNAL_SYSCALL_ERROR_P(val, err) \
+ ((unsigned long) (val) >= (unsigned long) -4095)
+
+# undef INTERNAL_SYSCALL_ERRNO
+# define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
+
+# define LOAD_ARGS_0() \
+ register long _x0 asm ("x0");
+# define LOAD_ARGS_1(x0) \
+ long _x0tmp = (long) (x0); \
+ LOAD_ARGS_0 () \
+ _x0 = _x0tmp;
+# define LOAD_ARGS_2(x0, x1) \
+ long _x1tmp = (long) (x1); \
+ LOAD_ARGS_1 (x0) \
+ register long _x1 asm ("x1") = _x1tmp;
+# define LOAD_ARGS_3(x0, x1, x2) \
+ long _x2tmp = (long) (x2); \
+ LOAD_ARGS_2 (x0, x1) \
+ register long _x2 asm ("x2") = _x2tmp;
+# define LOAD_ARGS_4(x0, x1, x2, x3) \
+ long _x3tmp = (long) (x3); \
+ LOAD_ARGS_3 (x0, x1, x2) \
+ register long _x3 asm ("x3") = _x3tmp;
+# define LOAD_ARGS_5(x0, x1, x2, x3, x4) \
+ long _x4tmp = (long) (x4); \
+ LOAD_ARGS_4 (x0, x1, x2, x3) \
+ register long _x4 asm ("x4") = _x4tmp;
+# define LOAD_ARGS_6(x0, x1, x2, x3, x4, x5) \
+ long _x5tmp = (long) (x5); \
+ LOAD_ARGS_5 (x0, x1, x2, x3, x4) \
+ register long _x5 asm ("x5") = _x5tmp;
+# define LOAD_ARGS_7(x0, x1, x2, x3, x4, x5, x6)\
+ long _x6tmp = (long) (x6); \
+ LOAD_ARGS_6 (x0, x1, x2, x3, x4, x5) \
+ register long _x6 asm ("x6") = _x6tmp;
+
+# define ASM_ARGS_0
+# define ASM_ARGS_1 , "r" (_x0)
+# define ASM_ARGS_2 ASM_ARGS_1, "r" (_x1)
+# define ASM_ARGS_3 ASM_ARGS_2, "r" (_x2)
+# define ASM_ARGS_4 ASM_ARGS_3, "r" (_x3)
+# define ASM_ARGS_5 ASM_ARGS_4, "r" (_x4)
+# define ASM_ARGS_6 ASM_ARGS_5, "r" (_x5)
+# define ASM_ARGS_7 ASM_ARGS_6, "r" (_x6)
+
+# undef INTERNAL_SYSCALL_NCS
+# define INTERNAL_SYSCALL_NCS(number, err, nr, args...) \
+ INTERNAL_SYSCALL_RAW (number, err, nr, args)
+
+#endif /* __ASSEMBLER__ */
+
+/* Pointer mangling is supported for AArch64. */
+#if (IS_IN (rtld) || \
+ (!defined SHARED && (IS_IN (libc) \
+ || IS_IN (libpthread))))
+# ifdef __ASSEMBLER__
+/* Note, dst, src, guard, and tmp are all register numbers rather than
+ register names so they will work with both ILP32 and LP64. */
+# define PTR_MANGLE(dst, src, guard, tmp) \
+ LDST_PCREL (ldr, guard, tmp, C_SYMBOL_NAME(__pointer_chk_guard_local)); \
+ PTR_MANGLE2 (dst, src, guard)
+/* Use PTR_MANGLE2 for efficiency if guard is already loaded. */
+# define PTR_MANGLE2(dst, src, guard)\
+ eor x##dst, x##src, x##guard
+# define PTR_DEMANGLE(dst, src, guard, tmp)\
+ PTR_MANGLE (dst, src, guard, tmp)
+# define PTR_DEMANGLE2(dst, src, guard)\
+ PTR_MANGLE2 (dst, src, guard)
+# else
+extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden;
+# define PTR_MANGLE(var) \
+ (var) = (__typeof (var)) ((uintptr_t) (var) ^ __pointer_chk_guard_local)
+# define PTR_DEMANGLE(var) PTR_MANGLE (var)
+# endif
+#else
+# ifdef __ASSEMBLER__
+/* Note, dst, src, guard, and tmp are all register numbers rather than
+ register names so they will work with both ILP32 and LP64. */
+# define PTR_MANGLE(dst, src, guard, tmp) \
+ LDST_GLOBAL (ldr, guard, tmp, C_SYMBOL_NAME(__pointer_chk_guard)); \
+ PTR_MANGLE2 (dst, src, guard)
+/* Use PTR_MANGLE2 for efficiency if guard is already loaded. */
+# define PTR_MANGLE2(dst, src, guard)\
+ eor x##dst, x##src, x##guard
+# define PTR_DEMANGLE(dst, src, guard, tmp)\
+ PTR_MANGLE (dst, src, guard, tmp)
+# define PTR_DEMANGLE2(dst, src, guard)\
+ PTR_MANGLE2 (dst, src, guard)
+# else
+extern uintptr_t __pointer_chk_guard attribute_relro;
+# define PTR_MANGLE(var) \
+ (var) = (__typeof (var)) ((uintptr_t) (var) ^ __pointer_chk_guard)
+# define PTR_DEMANGLE(var) PTR_MANGLE (var)
+# endif
+#endif
+
+#endif /* linux/aarch64/sysdep.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h
new file mode 100644
index 0000000000..c4739c105d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h
@@ -0,0 +1,45 @@
+/* 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/>. */
+
+#define SP_ALIGN_SIZE 15
+
+#define SP_ALIGN_MASK ~15
+
+/* Size of an X regiser in bytes. */
+#define SZREG 8
+
+/* Size of a V register in bytes. */
+#define SZVREG 16
+
+/* Number of integer parameter passing registers. */
+#define NUMXREGARGS 8
+
+/* Number of FP parameter passing registers. */
+#define NUMDREGARGS 8
+
+/* Size of named integer argument in bytes when passed on the
+ stack. */
+#define SIZEOF_NAMED_INT 4
+
+/* Size of an anonymous integer argument in bytes when passed on the
+ stack. */
+#define SIZEOF_ANONYMOUS_INT 8
+
+#define oX21 (oX0 + 21*8)
+#define oFP (oX0 + 29*8)
+#define oLR (oX0 + 30*8)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym
new file mode 100644
index 0000000000..ab3930c173
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym
@@ -0,0 +1,55 @@
+#include <inttypes.h>
+#include <signal.h>
+#include <stddef.h>
+#include <sys/ucontext.h>
+#include <asm/sigcontext.h>
+
+#include "kernel_rt_sigframe.h"
+
+SIG_BLOCK
+SIG_SETMASK
+
+_NSIG8 (_NSIG / 8)
+
+-- Offsets of the fields in the kernel rt_sigframe_t structure.
+#define rt_sigframe(member) offsetof (struct kernel_rt_sigframe, member)
+
+RT_SIGFRAME_UCONTEXT rt_sigframe (uc)
+
+RT_SIGFRAME_SIZE sizeof (struct kernel_rt_sigframe)
+FPSIMD_CONTEXT_SIZE sizeof (struct fpsimd_context)
+
+#define ucontext(member) offsetof (ucontext_t, member)
+#define stack(member) ucontext (uc_stack.member)
+#define mcontext(member) ucontext (uc_mcontext.member)
+
+UCONTEXT_FLAGS ucontext (uc_flags)
+UCONTEXT_LINK ucontext (uc_link)
+UCONTEXT_STACK ucontext (uc_stack)
+UCONTEXT_MCONTEXT ucontext (uc_mcontext)
+UCONTEXT_SIGMASK ucontext (uc_sigmask)
+UCONTEXT_SIZE sizeof (ucontext_t)
+
+STACK_SP stack (ss_sp)
+STACK_SIZE stack (ss_size)
+STACK_FLAGS stack (ss_flags)
+
+oX0 mcontext (regs)
+oSP mcontext (sp)
+oPC mcontext (pc)
+oPSTATE mcontext (pstate)
+oEXTENSION mcontext (__reserved)
+
+#define fpsimd_context(member) offsetof (struct fpsimd_context, member)
+
+oHEAD fpsimd_context (head)
+oV0 fpsimd_context (vregs)
+oFPSR fpsimd_context (fpsr)
+oFPCR fpsimd_context (fpcr)
+
+#define aarch64_ctx(member) offsetof (struct _aarch64_ctx, member)
+
+oMAGIC aarch64_ctx (magic)
+oSIZE aarch64_ctx (size)
+
+FPSIMD_MAGIC
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/vfork.S
new file mode 100644
index 0000000000..890bb3d14d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/vfork.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>
+#define _ERRNO_H 1
+#include <bits/errno.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 (__vfork)
+
+ mov x0, #0x4111 /* CLONE_VM | CLONE_VFORK | SIGCHLD */
+ mov x1, sp
+ DO_CALL (clone, 2)
+
+ cmn x0, #4095
+ b.cs .Lsyscall_error
+ RET
+
+PSEUDO_END (__vfork)
+libc_hidden_def (__vfork)
+
+weak_alias (__vfork, vfork)
+strong_alias (__vfork, __libc_vfork)