aboutsummaryrefslogtreecommitdiff
path: root/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32
diff options
context:
space:
mode:
Diffstat (limited to 'REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32')
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/Makefile31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/Versions58
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c54
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S56
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/alphasort64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/clone.S65
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/fcntl.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/fxstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/fxstatat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S89
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getdents64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist12
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist2476
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist14
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist565
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libnsl.abilist124
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist260
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist100
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libthread_db.abilist44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libutil.abilist9
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/lockf64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/login.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/login32.c36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/lxstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c96
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/profil-counter.h26
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/readdir64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/readdir64_r.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/register-dump.h129
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/scandir64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S72
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S108
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/syscalls.list20
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h139
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S74
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h337
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h21
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h86
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c184
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h51
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h85
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c139
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h59
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/versionsort64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/xstat.c1
65 files changed, 6393 insertions, 0 deletions
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/Makefile
new file mode 100644
index 0000000000..fd8cf92633
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/Makefile
@@ -0,0 +1,31 @@
+# See Makeconfig regarding the use of default-abi.
+default-abi := 32
+
+ifeq ($(subdir),login)
+sysdep_routines += utmp32 utmpx32
+libutil-routines += login32
+endif
+
+ifeq ($(subdir),misc)
+sysdep_headers += sys/elf.h
+endif
+
+ifeq ($(subdir),elf)
+ifeq (yes,$(build-shared))
+# This is needed to support g++ v2 and v3.
+sysdep_routines += framestate
+shared-only-routines += framestate
+endif
+endif
+
+ifeq ($(subdir),stdlib)
+sysdep_routines += __makecontext_ret
+endif
+
+ifeq ($(subdir),csu)
+ifeq (yes,$(build-shared))
+sysdep_routines += divdi3
+shared-only-routines += divdi3
+CPPFLAGS-divdi3.c = -Din_divdi3_c
+endif
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/Versions
new file mode 100644
index 0000000000..1c120e8cbe
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/Versions
@@ -0,0 +1,58 @@
+libc {
+ GLIBC_2.0 {
+ # Exception handling support functions from libgcc
+ __register_frame; __register_frame_table; __deregister_frame;
+ __frame_state_for; __register_frame_info_table;
+ }
+ GLIBC_2.1 {
+ __chown;
+ }
+ GLIBC_2.2 {
+ # functions used in other libraries
+ __xstat64; __fxstat64; __lxstat64;
+
+ # a*
+ alphasort64;
+
+ # New rlimit interface
+ getrlimit; setrlimit; getrlimit64;
+
+ # r*
+ readdir64; readdir64_r;
+
+ # s*
+ scandir64;
+
+ # v*
+ versionsort64;
+ }
+ GLIBC_2.3.3 {
+ posix_fadvise64; posix_fallocate64;
+ }
+ GLIBC_2.9 {
+ getutent;
+ getutid;
+ getutline;
+ pututline;
+ updwtmp;
+ getutent_r;
+ getutid_r;
+ getutline_r;
+ getutxent;
+ getutxid;
+ getutxline;
+ pututxline;
+ updwtmpx;
+ getutmp;
+ getutmpx;
+ }
+ GLIBC_2.11 {
+ fallocate64;
+ }
+}
+
+libutil {
+ GLIBC_2.9 {
+ login;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c
new file mode 100644
index 0000000000..e25130179d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c
@@ -0,0 +1,54 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Jakub Jelinek <jakub@redhat.com>.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sysdep.h>
+#include <setjmp.h>
+#include <bits/setjmp.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <signal.h>
+#include <sys/syscall.h>
+
+#define __longjmp ____longjmp_chk
+
+#define CHECK_SP(env, guard) \
+ do \
+ { \
+ uintptr_t cur_sp; \
+ uintptr_t new_sp = env->__gregs[9]; \
+ __asm__ ("lr %0, %%r15" : "=r" (cur_sp)); \
+ new_sp ^= guard; \
+ if (new_sp < cur_sp) \
+ { \
+ stack_t oss; \
+ INTERNAL_SYSCALL_DECL (err); \
+ int res = INTERNAL_SYSCALL (sigaltstack, err, 2, NULL, &oss); \
+ if (!INTERNAL_SYSCALL_ERROR_P (res, err)) \
+ { \
+ if ((oss.ss_flags & SS_ONSTACK) == 0 \
+ || ((uintptr_t) (oss.ss_sp + oss.ss_size) - new_sp \
+ < oss.ss_size)) \
+ __fortify_fail ("longjmp causes uninitialized stack frame");\
+ } \
+ } \
+ } while (0)
+
+#include "__longjmp.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S
new file mode 100644
index 0000000000..f32cd3ca39
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S
@@ -0,0 +1,56 @@
+/* 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>
+
+/* We do not want .eh_frame info so that __makecontext_ret stops unwinding
+ if backtrace was called within a context created by makecontext. (There
+ is also no .eh_frame info for _start or thread_start.) */
+#undef cfi_startproc
+#define cfi_startproc
+#undef cfi_endproc
+#define cfi_endproc
+
+ENTRY(__makecontext_ret)
+ basr %r14,%r7
+ ltr %r8,%r8 /* Check whether uc_link is 0. */
+ jz 1f
+ lr %r2,%r8
+ br %r9
+1: lhi %r2,0 /* EXIT return value. */
+ basr %r13,0
+2:
+#ifdef PIC
+ l %r12,4f-2b(%r13)
+ la %r12,0(%r12,%r13) /* GOT pointer in r12 after this. */
+ l %r1,3f-2b(%r13)
+ bas %r14,0(%r1,%r12)
+ .align 4
+3:
+ .long HIDDEN_JUMPTARGET (exit)@GOTOFF
+4:
+ .long _GLOBAL_OFFSET_TABLE_-2b
+#else
+ l %r1,3f-2b(%r13)
+ basr %r14,%r1
+ .align 4
+3:
+ .long HIDDEN_JUMPTARGET (exit)
+#endif
+ .align 2
+ j .+2 /* Trap if exit returns for some reason. */
+END(__makecontext_ret)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/alphasort64.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/alphasort64.c
new file mode 100644
index 0000000000..0b5ae47d2f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/alphasort64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/alphasort64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/c++-types.data
new file mode 100644
index 0000000000..6e2036ec01
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:x
+blkcnt_t:l
+blksize_t:l
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:y
+fd_mask:l
+fsblkcnt64_t:y
+fsblkcnt_t:m
+fsfilcnt64_t:y
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:y
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:x
+int8_t:a
+intptr_t:i
+key_t:i
+loff_t:x
+mode_t:j
+nlink_t:j
+off64_t:x
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:x
+register_t:i
+rlim64_t:y
+rlim_t:m
+sigset_t:10__sigset_t
+size_t: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:y
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:y
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/clone.S
new file mode 100644
index 0000000000..a8b4dbc90f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/clone.S
@@ -0,0 +1,65 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* 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>
+#include <tls.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+
+/* int __clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
+ pid_t *parent_tid, void *tls, pid_t *child_tid); */
+/* sys_clone (void *child_stack, unsigned long flags,
+ pid_t *parent_tid, pid_t *child_tid, void *tls); */
+
+ .text
+ENTRY(__clone)
+ st %r6,24(%r15) /* store %r6 to save area */
+ cfi_offset (%r6, -72)
+ lr %r0,%r5 /* move *arg out of the way */
+ ltr %r1,%r2 /* check fn and move to %r1 */
+ jz error /* no NULL function pointers */
+ ltr %r2,%r3 /* check child_stack and move to %r2 */
+ jz error /* no NULL stack pointers */
+ lr %r3,%r4 /* move flags to %r3 */
+ lr %r4,%r6 /* move parent_tid to %r4 */
+ l %r5,100(%r15) /* load child_tid from stack */
+ l %r6,96(%r15) /* load tls from stack */
+ svc SYS_ify(clone)
+ ltr %r2,%r2 /* check return code */
+ jz thread_start
+ l %r6,24(%r15) /* restore %r6 */
+ jm SYSCALL_ERROR_LABEL
+ br %r14
+error:
+ lhi %r2,-EINVAL
+ j SYSCALL_ERROR_LABEL
+PSEUDO_END (__clone)
+
+thread_start:
+ /* fn is in gpr 1, arg in gpr 0 */
+ lr %r2,%r0 /* set first parameter to void *arg */
+ ahi %r15,-96 /* make room on the stack for the save area */
+ xc 0(4,%r15),0(%r15)
+ basr %r14,%r1 /* jump to fn */
+ DO_CALL (exit, 1)
+
+libc_hidden_def (__clone)
+weak_alias (__clone, clone)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/fcntl.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/fcntl.c
new file mode 100644
index 0000000000..ea951bc4f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/fcntl.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fcntl.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/fxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/fxstat.c
new file mode 100644
index 0000000000..4f219f0b9d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/fxstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/fxstatat.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/fxstatat.c
new file mode 100644
index 0000000000..0f8b3135d8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/fxstatat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstatat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S
new file mode 100644
index 0000000000..5b931831ae
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S
@@ -0,0 +1,89 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <features.h>
+
+#include "ucontext_i.h"
+
+#include <shlib-compat.h>
+
+/* __getcontext (const ucontext_t *ucp)
+
+ Saves the machine context in UCP such that when it is activated,
+ it appears as if __getcontext() returned again.
+
+ This implementation is intended to be used for *synchronous* context
+ switches only. Therefore, it does not have to save anything
+ other than the PRESERVED state. */
+
+ENTRY(__getcontext)
+ lr %r1,%r2
+
+ /* rt_sigprocmask (SIG_BLOCK, NULL, &sc->sc_mask, sigsetsize). */
+ la %r2,SIG_BLOCK
+ slr %r3,%r3
+ la %r4,SC_MASK(%r1)
+ lhi %r5,_NSIG8
+ svc SYS_ify(rt_sigprocmask)
+
+ /* Store fpu context. */
+ stfpc SC_FPC(%r1)
+ std %f0,SC_FPRS(%r1)
+ std %f1,SC_FPRS+8(%r1)
+ std %f2,SC_FPRS+16(%r1)
+ std %f3,SC_FPRS+24(%r1)
+ std %f4,SC_FPRS+32(%r1)
+ std %f5,SC_FPRS+40(%r1)
+ std %f6,SC_FPRS+48(%r1)
+ std %f7,SC_FPRS+56(%r1)
+ std %f8,SC_FPRS+64(%r1)
+ std %f9,SC_FPRS+72(%r1)
+ std %f10,SC_FPRS+80(%r1)
+ std %f11,SC_FPRS+88(%r1)
+ std %f12,SC_FPRS+96(%r1)
+ std %f13,SC_FPRS+104(%r1)
+ std %f14,SC_FPRS+112(%r1)
+ std %f15,SC_FPRS+120(%r1)
+
+ /* Set __getcontext return value to 0. */
+ slr %r2,%r2
+
+ /* Store access registers. */
+ stam %a0,%a15,SC_ACRS(%r1)
+
+ /* Store general purpose registers. */
+ stm %r0,%r15,SC_GPRS(%r1)
+
+ /* Return. */
+ br %r14
+END(__getcontext)
+
+#if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20)
+/* In glibc release 2.19 a new version of getcontext was introduced,
+ but was reverted before 2.20. Thus both versions are the same function. */
+weak_alias (__getcontext, __v1__getcontext)
+weak_alias (__getcontext, __v2__getcontext)
+versioned_symbol (libc, __v1__getcontext, getcontext, GLIBC_2_1)
+compat_symbol (libc, __v2__getcontext, getcontext, GLIBC_2_19)
+
+#else
+
+weak_alias (__getcontext, getcontext)
+
+#endif /* !(defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20)) */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getdents64.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getdents64.c
new file mode 100644
index 0000000000..0c75fb5a06
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getdents64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/getdents64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c
new file mode 100644
index 0000000000..0c34565bb0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c
@@ -0,0 +1,32 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
+ 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 <stdlib.h>
+#include <utmp.h>
+
+#include "utmp-compat.h"
+
+#if defined SHARED
+# undef weak_alias
+# define weak_alias(n,a)
+#endif
+#include "login/getutent.c"
+
+#if defined SHARED
+default_symbol_version (__getutent, getutent, UTMP_COMPAT_BASE);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c
new file mode 100644
index 0000000000..99bc11a062
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c
@@ -0,0 +1,38 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
+ 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 <libc-lock.h>
+#include <stdlib.h>
+#include <utmp.h>
+
+#include "utmp-compat.h"
+#include "utmp-private.h"
+
+#if defined SHARED
+weak_alias (__setutent, setutent)
+weak_alias (__endutent, endutent)
+
+# undef weak_alias
+# define weak_alias(n,a)
+#endif
+#include "login/getutent_r.c"
+
+#if defined SHARED
+default_symbol_version (__getutent_r, getutent_r, UTMP_COMPAT_BASE);
+default_symbol_version (__pututline, pututline, UTMP_COMPAT_BASE);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c
new file mode 100644
index 0000000000..41e59936b1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c
@@ -0,0 +1,32 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
+ 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 <stdlib.h>
+#include <utmp.h>
+
+#include "utmp-compat.h"
+
+#if defined SHARED
+# undef weak_alias
+# define weak_alias(n,a)
+#endif
+#include "login/getutid.c"
+
+#if defined SHARED
+default_symbol_version (__getutid, getutid, UTMP_COMPAT_BASE);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c
new file mode 100644
index 0000000000..815e37372e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
+ 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 <libc-lock.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <utmp.h>
+
+#include "utmp-compat.h"
+#include "utmp-private.h"
+
+#if defined SHARED
+# undef weak_alias
+# define weak_alias(n,a)
+#endif
+#include "login/getutid_r.c"
+
+#if defined SHARED
+default_symbol_version (__getutid_r, getutid_r, UTMP_COMPAT_BASE);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c
new file mode 100644
index 0000000000..25b94d980d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c
@@ -0,0 +1,32 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
+ 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 <stdlib.h>
+#include <utmp.h>
+
+#include "utmp-compat.h"
+
+#if defined SHARED
+# undef weak_alias
+# define weak_alias(n,a)
+#endif
+#include "login/getutline.c"
+
+#if defined SHARED
+default_symbol_version (__getutline, getutline, UTMP_COMPAT_BASE);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c
new file mode 100644
index 0000000000..b118acc1bc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c
@@ -0,0 +1,34 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
+ 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 <libc-lock.h>
+#include <utmp.h>
+
+#include "utmp-compat.h"
+#include "utmp-private.h"
+
+#if defined SHARED
+# undef weak_alias
+# define weak_alias(n,a)
+#endif
+#include "login/getutline_r.c"
+
+#if defined SHARED
+default_symbol_version (__getutline_r, getutline_r, UTMP_COMPAT_BASE);;
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c
new file mode 100644
index 0000000000..11b7ef012b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
+ 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 <string.h>
+#include <utmp.h>
+/* This is an ugly hack but we must not see the getutmpx declaration. */
+#define getutmpx XXXgetutmpx
+#include <utmpx.h>
+#undef getutmpx
+
+#include "utmp-compat.h"
+
+#undef weak_alias
+#define weak_alias(n,a)
+#define getutmp __getutmp
+#define getutmpx __getutmpx
+#include "sysdeps/gnu/getutmp.c"
+#undef getutmp
+#undef getutmpx
+
+default_symbol_version (__getutmp, getutmp, UTMP_COMPAT_BASE);
+default_symbol_version (__getutmpx, getutmpx, UTMP_COMPAT_BASE);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c
new file mode 100644
index 0000000000..c1d967c6a2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
+ 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 <utmp.h>
+#include <utmpx.h>
+
+#include "utmp-compat.h"
+
+#undef weak_alias
+#define weak_alias(n,a)
+#define getutxent __getutxent
+#include "login/getutxent.c"
+#undef getutxent
+
+default_symbol_version (__getutxent, getutxent, UTMP_COMPAT_BASE);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c
new file mode 100644
index 0000000000..18251fdef6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
+ 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 <utmp.h>
+#include <utmpx.h>
+
+#include "utmp-compat.h"
+
+#undef weak_alias
+#define weak_alias(n,a)
+#define getutxid __getutxid
+#include "login/getutxid.c"
+#undef getutxid
+
+default_symbol_version (__getutxid, getutxid, UTMP_COMPAT_BASE);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c
new file mode 100644
index 0000000000..63f79ea68d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
+ 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 <utmp.h>
+#include <utmpx.h>
+
+#include "utmp-compat.h"
+
+#undef weak_alias
+#define weak_alias(n,a)
+#define getutxline __getutxline
+#include "login/getutxline.c"
+#undef getutxline
+
+default_symbol_version (__getutxline, getutxline, UTMP_COMPAT_BASE);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist
new file mode 100644
index 0000000000..c16b2c1344
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist
@@ -0,0 +1,12 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 _r_debug D 0x14
+GLIBC_2.0 calloc F
+GLIBC_2.0 free F
+GLIBC_2.0 malloc F
+GLIBC_2.0 realloc F
+GLIBC_2.1 GLIBC_2.1 A
+GLIBC_2.1 __libc_stack_end D 0x4
+GLIBC_2.1 _dl_mcount F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 __tls_get_offset F
+GLIBC_2.4 GLIBC_2.4 A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libBrokenLocale.abilist
new file mode 100644
index 0000000000..4a56bb68a3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libBrokenLocale.abilist
@@ -0,0 +1,2 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 __ctype_get_mb_cur_max F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
new file mode 100644
index 0000000000..63d33e8b37
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -0,0 +1,2476 @@
+GCC_3.0 GCC_3.0 A
+GCC_3.0 _Unwind_Find_FDE F
+GCC_3.0 __deregister_frame_info_bases F
+GCC_3.0 __register_frame_info_bases F
+GCC_3.0 __register_frame_info_table_bases F
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 _IO_adjust_column F
+GLIBC_2.0 _IO_default_doallocate F
+GLIBC_2.0 _IO_default_finish F
+GLIBC_2.0 _IO_default_pbackfail F
+GLIBC_2.0 _IO_default_uflow F
+GLIBC_2.0 _IO_default_xsgetn F
+GLIBC_2.0 _IO_default_xsputn F
+GLIBC_2.0 _IO_do_write F
+GLIBC_2.0 _IO_doallocbuf F
+GLIBC_2.0 _IO_fclose F
+GLIBC_2.0 _IO_fdopen F
+GLIBC_2.0 _IO_feof F
+GLIBC_2.0 _IO_ferror F
+GLIBC_2.0 _IO_fflush F
+GLIBC_2.0 _IO_fgetpos F
+GLIBC_2.0 _IO_fgets F
+GLIBC_2.0 _IO_file_attach F
+GLIBC_2.0 _IO_file_close F
+GLIBC_2.0 _IO_file_close_it F
+GLIBC_2.0 _IO_file_doallocate F
+GLIBC_2.0 _IO_file_fopen F
+GLIBC_2.0 _IO_file_init F
+GLIBC_2.0 _IO_file_jumps D 0x54
+GLIBC_2.0 _IO_file_open F
+GLIBC_2.0 _IO_file_overflow F
+GLIBC_2.0 _IO_file_read F
+GLIBC_2.0 _IO_file_seek F
+GLIBC_2.0 _IO_file_seekoff F
+GLIBC_2.0 _IO_file_setbuf F
+GLIBC_2.0 _IO_file_stat F
+GLIBC_2.0 _IO_file_sync F
+GLIBC_2.0 _IO_file_underflow F
+GLIBC_2.0 _IO_file_write F
+GLIBC_2.0 _IO_file_xsputn F
+GLIBC_2.0 _IO_flockfile F
+GLIBC_2.0 _IO_flush_all F
+GLIBC_2.0 _IO_flush_all_linebuffered F
+GLIBC_2.0 _IO_fopen F
+GLIBC_2.0 _IO_fprintf F
+GLIBC_2.0 _IO_fputs F
+GLIBC_2.0 _IO_fread F
+GLIBC_2.0 _IO_free_backup_area F
+GLIBC_2.0 _IO_fsetpos F
+GLIBC_2.0 _IO_ftell F
+GLIBC_2.0 _IO_ftrylockfile F
+GLIBC_2.0 _IO_funlockfile F
+GLIBC_2.0 _IO_fwrite F
+GLIBC_2.0 _IO_getc F
+GLIBC_2.0 _IO_getline F
+GLIBC_2.0 _IO_gets F
+GLIBC_2.0 _IO_init F
+GLIBC_2.0 _IO_init_marker F
+GLIBC_2.0 _IO_link_in F
+GLIBC_2.0 _IO_list_all D 0x4
+GLIBC_2.0 _IO_marker_delta F
+GLIBC_2.0 _IO_marker_difference F
+GLIBC_2.0 _IO_padn F
+GLIBC_2.0 _IO_peekc_locked F
+GLIBC_2.0 _IO_popen F
+GLIBC_2.0 _IO_printf F
+GLIBC_2.0 _IO_proc_close F
+GLIBC_2.0 _IO_proc_open F
+GLIBC_2.0 _IO_putc F
+GLIBC_2.0 _IO_puts F
+GLIBC_2.0 _IO_remove_marker F
+GLIBC_2.0 _IO_seekmark F
+GLIBC_2.0 _IO_seekoff F
+GLIBC_2.0 _IO_seekpos F
+GLIBC_2.0 _IO_setb F
+GLIBC_2.0 _IO_setbuffer F
+GLIBC_2.0 _IO_setvbuf F
+GLIBC_2.0 _IO_sgetn F
+GLIBC_2.0 _IO_sprintf F
+GLIBC_2.0 _IO_sputbackc F
+GLIBC_2.0 _IO_sscanf F
+GLIBC_2.0 _IO_stderr_ D 0x50
+GLIBC_2.0 _IO_stdin_ D 0x50
+GLIBC_2.0 _IO_stdout_ D 0x50
+GLIBC_2.0 _IO_str_init_readonly F
+GLIBC_2.0 _IO_str_init_static F
+GLIBC_2.0 _IO_str_overflow F
+GLIBC_2.0 _IO_str_pbackfail F
+GLIBC_2.0 _IO_str_seekoff F
+GLIBC_2.0 _IO_str_underflow F
+GLIBC_2.0 _IO_sungetc F
+GLIBC_2.0 _IO_switch_to_get_mode F
+GLIBC_2.0 _IO_un_link F
+GLIBC_2.0 _IO_ungetc F
+GLIBC_2.0 _IO_unsave_markers F
+GLIBC_2.0 _IO_vfprintf F
+GLIBC_2.0 _IO_vfscanf F
+GLIBC_2.0 _IO_vsprintf F
+GLIBC_2.0 ___brk_addr D 0x4
+GLIBC_2.0 __adjtimex F
+GLIBC_2.0 __after_morecore_hook D 0x4
+GLIBC_2.0 __argz_count F
+GLIBC_2.0 __argz_next F
+GLIBC_2.0 __argz_stringify F
+GLIBC_2.0 __assert_fail F
+GLIBC_2.0 __assert_perror_fail F
+GLIBC_2.0 __bsd_getpgrp F
+GLIBC_2.0 __bzero F
+GLIBC_2.0 __check_rhosts_file D 0x4
+GLIBC_2.0 __clone F
+GLIBC_2.0 __close F
+GLIBC_2.0 __cmsg_nxthdr F
+GLIBC_2.0 __connect F
+GLIBC_2.0 __ctype32_b D 0x4
+GLIBC_2.0 __ctype_b D 0x4
+GLIBC_2.0 __ctype_get_mb_cur_max F
+GLIBC_2.0 __ctype_tolower D 0x4
+GLIBC_2.0 __ctype_toupper D 0x4
+GLIBC_2.0 __curbrk D 0x4
+GLIBC_2.0 __daylight D 0x4
+GLIBC_2.0 __dcgettext F
+GLIBC_2.0 __default_morecore F
+GLIBC_2.0 __deregister_frame F
+GLIBC_2.0 __deregister_frame_info F
+GLIBC_2.0 __dgettext F
+GLIBC_2.0 __divdi3 F
+GLIBC_2.0 __dup2 F
+GLIBC_2.0 __environ D 0x4
+GLIBC_2.0 __errno_location F
+GLIBC_2.0 __fcntl F
+GLIBC_2.0 __ffs F
+GLIBC_2.0 __finite F
+GLIBC_2.0 __finitef F
+GLIBC_2.0 __finitel F
+GLIBC_2.0 __fork F
+GLIBC_2.0 __fpu_control D 0x4
+GLIBC_2.0 __frame_state_for F
+GLIBC_2.0 __free_hook D 0x4
+GLIBC_2.0 __fxstat F
+GLIBC_2.0 __getdelim F
+GLIBC_2.0 __getpagesize F
+GLIBC_2.0 __getpgid F
+GLIBC_2.0 __getpid F
+GLIBC_2.0 __gettimeofday F
+GLIBC_2.0 __gmtime_r F
+GLIBC_2.0 __h_errno_location F
+GLIBC_2.0 __isinf F
+GLIBC_2.0 __isinff F
+GLIBC_2.0 __isinfl F
+GLIBC_2.0 __isnan F
+GLIBC_2.0 __isnanf F
+GLIBC_2.0 __isnanl F
+GLIBC_2.0 __iswctype F
+GLIBC_2.0 __ivaliduser F
+GLIBC_2.0 __libc_calloc F
+GLIBC_2.0 __libc_free F
+GLIBC_2.0 __libc_init_first F
+GLIBC_2.0 __libc_mallinfo F
+GLIBC_2.0 __libc_malloc F
+GLIBC_2.0 __libc_mallopt F
+GLIBC_2.0 __libc_memalign F
+GLIBC_2.0 __libc_pvalloc F
+GLIBC_2.0 __libc_realloc F
+GLIBC_2.0 __libc_start_main F
+GLIBC_2.0 __libc_valloc F
+GLIBC_2.0 __lseek F
+GLIBC_2.0 __lxstat F
+GLIBC_2.0 __malloc_hook D 0x4
+GLIBC_2.0 __malloc_initialize_hook D 0x4
+GLIBC_2.0 __mbrlen F
+GLIBC_2.0 __mbrtowc F
+GLIBC_2.0 __memalign_hook D 0x4
+GLIBC_2.0 __mempcpy F
+GLIBC_2.0 __moddi3 F
+GLIBC_2.0 __monstartup F
+GLIBC_2.0 __morecore D 0x4
+GLIBC_2.0 __nss_configure_lookup F
+GLIBC_2.0 __nss_database_lookup F
+GLIBC_2.0 __nss_group_lookup F
+GLIBC_2.0 __nss_hosts_lookup F
+GLIBC_2.0 __nss_next F
+GLIBC_2.0 __nss_passwd_lookup F
+GLIBC_2.0 __open F
+GLIBC_2.0 __overflow F
+GLIBC_2.0 __pipe F
+GLIBC_2.0 __printf_fp F
+GLIBC_2.0 __profile_frequency F
+GLIBC_2.0 __progname D 0x4
+GLIBC_2.0 __progname_full D 0x4
+GLIBC_2.0 __rcmd_errstr D 0x4
+GLIBC_2.0 __read F
+GLIBC_2.0 __realloc_hook D 0x4
+GLIBC_2.0 __register_frame F
+GLIBC_2.0 __register_frame_info F
+GLIBC_2.0 __register_frame_info_table F
+GLIBC_2.0 __register_frame_table F
+GLIBC_2.0 __res_randomid F
+GLIBC_2.0 __sbrk F
+GLIBC_2.0 __sched_get_priority_max F
+GLIBC_2.0 __sched_get_priority_min F
+GLIBC_2.0 __sched_getparam F
+GLIBC_2.0 __sched_getscheduler F
+GLIBC_2.0 __sched_setscheduler F
+GLIBC_2.0 __sched_yield F
+GLIBC_2.0 __secure_getenv F
+GLIBC_2.0 __select F
+GLIBC_2.0 __send F
+GLIBC_2.0 __setpgid F
+GLIBC_2.0 __sigaction F
+GLIBC_2.0 __sigaddset F
+GLIBC_2.0 __sigdelset F
+GLIBC_2.0 __sigismember F
+GLIBC_2.0 __sigpause F
+GLIBC_2.0 __sigsetjmp F
+GLIBC_2.0 __stpcpy F
+GLIBC_2.0 __stpncpy F
+GLIBC_2.0 __strcasecmp F
+GLIBC_2.0 __strdup F
+GLIBC_2.0 __strerror_r F
+GLIBC_2.0 __strtod_internal F
+GLIBC_2.0 __strtof_internal F
+GLIBC_2.0 __strtok_r F
+GLIBC_2.0 __strtol_internal F
+GLIBC_2.0 __strtold_internal F
+GLIBC_2.0 __strtoll_internal F
+GLIBC_2.0 __strtoq_internal F
+GLIBC_2.0 __strtoul_internal F
+GLIBC_2.0 __strtoull_internal F
+GLIBC_2.0 __strtouq_internal F
+GLIBC_2.0 __sysv_signal F
+GLIBC_2.0 __timezone D 0x4
+GLIBC_2.0 __tzname D 0x8
+GLIBC_2.0 __udivdi3 F
+GLIBC_2.0 __uflow F
+GLIBC_2.0 __umoddi3 F
+GLIBC_2.0 __underflow F
+GLIBC_2.0 __vfscanf F
+GLIBC_2.0 __vsnprintf F
+GLIBC_2.0 __vsscanf F
+GLIBC_2.0 __wait F
+GLIBC_2.0 __waitpid F
+GLIBC_2.0 __wcstod_internal F
+GLIBC_2.0 __wcstof_internal F
+GLIBC_2.0 __wcstol_internal F
+GLIBC_2.0 __wcstold_internal F
+GLIBC_2.0 __wcstoll_internal F
+GLIBC_2.0 __wcstoul_internal F
+GLIBC_2.0 __wcstoull_internal F
+GLIBC_2.0 __write F
+GLIBC_2.0 __xmknod F
+GLIBC_2.0 __xpg_basename F
+GLIBC_2.0 __xstat F
+GLIBC_2.0 _environ D 0x4
+GLIBC_2.0 _exit F
+GLIBC_2.0 _libc_intl_domainname D 0x5
+GLIBC_2.0 _longjmp F
+GLIBC_2.0 _mcleanup F
+GLIBC_2.0 _mcount F
+GLIBC_2.0 _nl_default_dirname D 0x12
+GLIBC_2.0 _nl_domain_bindings D 0x4
+GLIBC_2.0 _nl_msg_cat_cntr D 0x4
+GLIBC_2.0 _null_auth D 0xc
+GLIBC_2.0 _obstack D 0x4
+GLIBC_2.0 _obstack_allocated_p F
+GLIBC_2.0 _obstack_begin F
+GLIBC_2.0 _obstack_begin_1 F
+GLIBC_2.0 _obstack_free F
+GLIBC_2.0 _obstack_memory_used F
+GLIBC_2.0 _obstack_newchunk F
+GLIBC_2.0 _res D 0x200
+GLIBC_2.0 _rpc_dtablesize F
+GLIBC_2.0 _seterr_reply F
+GLIBC_2.0 _setjmp F
+GLIBC_2.0 _sys_errlist D 0x1ec
+GLIBC_2.0 _sys_nerr D 0x4
+GLIBC_2.0 _sys_siglist D 0x80
+GLIBC_2.0 _tolower F
+GLIBC_2.0 _toupper F
+GLIBC_2.0 a64l F
+GLIBC_2.0 abort F
+GLIBC_2.0 abs F
+GLIBC_2.0 accept F
+GLIBC_2.0 access F
+GLIBC_2.0 acct F
+GLIBC_2.0 addmntent F
+GLIBC_2.0 adjtime F
+GLIBC_2.0 adjtimex F
+GLIBC_2.0 advance F
+GLIBC_2.0 alarm F
+GLIBC_2.0 alphasort F
+GLIBC_2.0 argz_add F
+GLIBC_2.0 argz_add_sep F
+GLIBC_2.0 argz_append F
+GLIBC_2.0 argz_count F
+GLIBC_2.0 argz_create F
+GLIBC_2.0 argz_create_sep F
+GLIBC_2.0 argz_delete F
+GLIBC_2.0 argz_extract F
+GLIBC_2.0 argz_insert F
+GLIBC_2.0 argz_next F
+GLIBC_2.0 argz_replace F
+GLIBC_2.0 argz_stringify F
+GLIBC_2.0 asctime F
+GLIBC_2.0 asctime_r F
+GLIBC_2.0 asprintf F
+GLIBC_2.0 atexit F
+GLIBC_2.0 atof F
+GLIBC_2.0 atoi F
+GLIBC_2.0 atol F
+GLIBC_2.0 atoll F
+GLIBC_2.0 authnone_create F
+GLIBC_2.0 authunix_create F
+GLIBC_2.0 authunix_create_default F
+GLIBC_2.0 basename F
+GLIBC_2.0 bcmp F
+GLIBC_2.0 bcopy F
+GLIBC_2.0 bdflush F
+GLIBC_2.0 bind F
+GLIBC_2.0 bindresvport F
+GLIBC_2.0 bindtextdomain F
+GLIBC_2.0 brk F
+GLIBC_2.0 bsd_signal F
+GLIBC_2.0 bsearch F
+GLIBC_2.0 btowc F
+GLIBC_2.0 bzero F
+GLIBC_2.0 calloc F
+GLIBC_2.0 callrpc F
+GLIBC_2.0 canonicalize_file_name F
+GLIBC_2.0 catclose F
+GLIBC_2.0 catgets F
+GLIBC_2.0 catopen F
+GLIBC_2.0 cfgetispeed F
+GLIBC_2.0 cfgetospeed F
+GLIBC_2.0 cfmakeraw F
+GLIBC_2.0 cfree F
+GLIBC_2.0 cfsetispeed F
+GLIBC_2.0 cfsetospeed F
+GLIBC_2.0 cfsetspeed F
+GLIBC_2.0 chdir F
+GLIBC_2.0 chflags F
+GLIBC_2.0 chmod F
+GLIBC_2.0 chown F
+GLIBC_2.0 chroot F
+GLIBC_2.0 clearenv F
+GLIBC_2.0 clearerr F
+GLIBC_2.0 clearerr_unlocked F
+GLIBC_2.0 clnt_broadcast F
+GLIBC_2.0 clnt_create F
+GLIBC_2.0 clnt_pcreateerror F
+GLIBC_2.0 clnt_perrno F
+GLIBC_2.0 clnt_perror F
+GLIBC_2.0 clnt_spcreateerror F
+GLIBC_2.0 clnt_sperrno F
+GLIBC_2.0 clnt_sperror F
+GLIBC_2.0 clntraw_create F
+GLIBC_2.0 clnttcp_create F
+GLIBC_2.0 clntudp_bufcreate F
+GLIBC_2.0 clntudp_create F
+GLIBC_2.0 clock F
+GLIBC_2.0 clone F
+GLIBC_2.0 close F
+GLIBC_2.0 closedir F
+GLIBC_2.0 closelog F
+GLIBC_2.0 confstr F
+GLIBC_2.0 connect F
+GLIBC_2.0 copysign F
+GLIBC_2.0 copysignf F
+GLIBC_2.0 copysignl F
+GLIBC_2.0 creat F
+GLIBC_2.0 create_module F
+GLIBC_2.0 ctermid F
+GLIBC_2.0 ctime F
+GLIBC_2.0 ctime_r F
+GLIBC_2.0 cuserid F
+GLIBC_2.0 daemon F
+GLIBC_2.0 daylight D 0x4
+GLIBC_2.0 dcgettext F
+GLIBC_2.0 delete_module F
+GLIBC_2.0 dgettext F
+GLIBC_2.0 difftime F
+GLIBC_2.0 dirfd F
+GLIBC_2.0 dirname F
+GLIBC_2.0 div F
+GLIBC_2.0 dprintf F
+GLIBC_2.0 drand48 F
+GLIBC_2.0 drand48_r F
+GLIBC_2.0 dup F
+GLIBC_2.0 dup2 F
+GLIBC_2.0 dysize F
+GLIBC_2.0 ecvt F
+GLIBC_2.0 ecvt_r F
+GLIBC_2.0 endaliasent F
+GLIBC_2.0 endfsent F
+GLIBC_2.0 endgrent F
+GLIBC_2.0 endhostent F
+GLIBC_2.0 endmntent F
+GLIBC_2.0 endnetent F
+GLIBC_2.0 endnetgrent F
+GLIBC_2.0 endprotoent F
+GLIBC_2.0 endpwent F
+GLIBC_2.0 endrpcent F
+GLIBC_2.0 endservent F
+GLIBC_2.0 endspent F
+GLIBC_2.0 endttyent F
+GLIBC_2.0 endusershell F
+GLIBC_2.0 endutent F
+GLIBC_2.0 environ D 0x4
+GLIBC_2.0 envz_add F
+GLIBC_2.0 envz_entry F
+GLIBC_2.0 envz_get F
+GLIBC_2.0 envz_merge F
+GLIBC_2.0 envz_remove F
+GLIBC_2.0 envz_strip F
+GLIBC_2.0 erand48 F
+GLIBC_2.0 erand48_r F
+GLIBC_2.0 err F
+GLIBC_2.0 error F
+GLIBC_2.0 error_at_line F
+GLIBC_2.0 error_message_count D 0x4
+GLIBC_2.0 error_one_per_line D 0x4
+GLIBC_2.0 error_print_progname D 0x4
+GLIBC_2.0 errx F
+GLIBC_2.0 ether_aton F
+GLIBC_2.0 ether_aton_r F
+GLIBC_2.0 ether_hostton F
+GLIBC_2.0 ether_line F
+GLIBC_2.0 ether_ntoa F
+GLIBC_2.0 ether_ntoa_r F
+GLIBC_2.0 ether_ntohost F
+GLIBC_2.0 euidaccess F
+GLIBC_2.0 execl F
+GLIBC_2.0 execle F
+GLIBC_2.0 execlp F
+GLIBC_2.0 execv F
+GLIBC_2.0 execve F
+GLIBC_2.0 execvp F
+GLIBC_2.0 exit F
+GLIBC_2.0 fchdir F
+GLIBC_2.0 fchflags F
+GLIBC_2.0 fchmod F
+GLIBC_2.0 fchown F
+GLIBC_2.0 fclose F
+GLIBC_2.0 fcloseall F
+GLIBC_2.0 fcntl F
+GLIBC_2.0 fcvt F
+GLIBC_2.0 fcvt_r F
+GLIBC_2.0 fdatasync F
+GLIBC_2.0 fdopen F
+GLIBC_2.0 feof F
+GLIBC_2.0 feof_unlocked F
+GLIBC_2.0 ferror F
+GLIBC_2.0 ferror_unlocked F
+GLIBC_2.0 fexecve F
+GLIBC_2.0 fflush F
+GLIBC_2.0 fflush_unlocked F
+GLIBC_2.0 ffs F
+GLIBC_2.0 fgetc F
+GLIBC_2.0 fgetgrent F
+GLIBC_2.0 fgetgrent_r F
+GLIBC_2.0 fgetpos F
+GLIBC_2.0 fgetpwent F
+GLIBC_2.0 fgetpwent_r F
+GLIBC_2.0 fgets F
+GLIBC_2.0 fgetspent F
+GLIBC_2.0 fgetspent_r F
+GLIBC_2.0 fileno F
+GLIBC_2.0 fileno_unlocked F
+GLIBC_2.0 finite F
+GLIBC_2.0 finitef F
+GLIBC_2.0 finitel F
+GLIBC_2.0 flock F
+GLIBC_2.0 flockfile F
+GLIBC_2.0 fnmatch F
+GLIBC_2.0 fopen F
+GLIBC_2.0 fopencookie F
+GLIBC_2.0 fork F
+GLIBC_2.0 fpathconf F
+GLIBC_2.0 fprintf F
+GLIBC_2.0 fputc F
+GLIBC_2.0 fputc_unlocked F
+GLIBC_2.0 fputs F
+GLIBC_2.0 fread F
+GLIBC_2.0 free F
+GLIBC_2.0 freeaddrinfo F
+GLIBC_2.0 freopen F
+GLIBC_2.0 frexp F
+GLIBC_2.0 frexpf F
+GLIBC_2.0 frexpl F
+GLIBC_2.0 fscanf F
+GLIBC_2.0 fseek F
+GLIBC_2.0 fsetpos F
+GLIBC_2.0 fstatfs F
+GLIBC_2.0 fsync F
+GLIBC_2.0 ftell F
+GLIBC_2.0 ftime F
+GLIBC_2.0 ftok F
+GLIBC_2.0 ftruncate F
+GLIBC_2.0 ftrylockfile F
+GLIBC_2.0 fts_children F
+GLIBC_2.0 fts_close F
+GLIBC_2.0 fts_open F
+GLIBC_2.0 fts_read F
+GLIBC_2.0 fts_set F
+GLIBC_2.0 ftw F
+GLIBC_2.0 funlockfile F
+GLIBC_2.0 fwrite F
+GLIBC_2.0 gcvt F
+GLIBC_2.0 get_avphys_pages F
+GLIBC_2.0 get_current_dir_name F
+GLIBC_2.0 get_kernel_syms F
+GLIBC_2.0 get_myaddress F
+GLIBC_2.0 get_nprocs F
+GLIBC_2.0 get_nprocs_conf F
+GLIBC_2.0 get_phys_pages F
+GLIBC_2.0 getaddrinfo F
+GLIBC_2.0 getaliasbyname F
+GLIBC_2.0 getaliasbyname_r F
+GLIBC_2.0 getaliasent F
+GLIBC_2.0 getaliasent_r F
+GLIBC_2.0 getc F
+GLIBC_2.0 getc_unlocked F
+GLIBC_2.0 getchar F
+GLIBC_2.0 getchar_unlocked F
+GLIBC_2.0 getcwd F
+GLIBC_2.0 getdelim F
+GLIBC_2.0 getdirentries F
+GLIBC_2.0 getdomainname F
+GLIBC_2.0 getdtablesize F
+GLIBC_2.0 getegid F
+GLIBC_2.0 getenv F
+GLIBC_2.0 geteuid F
+GLIBC_2.0 getfsent F
+GLIBC_2.0 getfsfile F
+GLIBC_2.0 getfsspec F
+GLIBC_2.0 getgid F
+GLIBC_2.0 getgrent F
+GLIBC_2.0 getgrent_r F
+GLIBC_2.0 getgrgid F
+GLIBC_2.0 getgrgid_r F
+GLIBC_2.0 getgrnam F
+GLIBC_2.0 getgrnam_r F
+GLIBC_2.0 getgroups F
+GLIBC_2.0 gethostbyaddr F
+GLIBC_2.0 gethostbyaddr_r F
+GLIBC_2.0 gethostbyname F
+GLIBC_2.0 gethostbyname2 F
+GLIBC_2.0 gethostbyname2_r F
+GLIBC_2.0 gethostbyname_r F
+GLIBC_2.0 gethostent F
+GLIBC_2.0 gethostent_r F
+GLIBC_2.0 gethostid F
+GLIBC_2.0 gethostname F
+GLIBC_2.0 getitimer F
+GLIBC_2.0 getline F
+GLIBC_2.0 getlogin F
+GLIBC_2.0 getlogin_r F
+GLIBC_2.0 getmntent F
+GLIBC_2.0 getmntent_r F
+GLIBC_2.0 getnetbyaddr F
+GLIBC_2.0 getnetbyaddr_r F
+GLIBC_2.0 getnetbyname F
+GLIBC_2.0 getnetbyname_r F
+GLIBC_2.0 getnetent F
+GLIBC_2.0 getnetent_r F
+GLIBC_2.0 getnetgrent F
+GLIBC_2.0 getnetgrent_r F
+GLIBC_2.0 getopt F
+GLIBC_2.0 getopt_long F
+GLIBC_2.0 getopt_long_only F
+GLIBC_2.0 getpagesize F
+GLIBC_2.0 getpass F
+GLIBC_2.0 getpeername F
+GLIBC_2.0 getpgid F
+GLIBC_2.0 getpgrp F
+GLIBC_2.0 getpid F
+GLIBC_2.0 getppid F
+GLIBC_2.0 getpriority F
+GLIBC_2.0 getprotobyname F
+GLIBC_2.0 getprotobyname_r F
+GLIBC_2.0 getprotobynumber F
+GLIBC_2.0 getprotobynumber_r F
+GLIBC_2.0 getprotoent F
+GLIBC_2.0 getprotoent_r F
+GLIBC_2.0 getpublickey F
+GLIBC_2.0 getpw F
+GLIBC_2.0 getpwent F
+GLIBC_2.0 getpwent_r F
+GLIBC_2.0 getpwnam F
+GLIBC_2.0 getpwnam_r F
+GLIBC_2.0 getpwuid F
+GLIBC_2.0 getpwuid_r F
+GLIBC_2.0 getresgid F
+GLIBC_2.0 getresuid F
+GLIBC_2.0 getrlimit F
+GLIBC_2.0 getrpcbyname F
+GLIBC_2.0 getrpcbyname_r F
+GLIBC_2.0 getrpcbynumber F
+GLIBC_2.0 getrpcbynumber_r F
+GLIBC_2.0 getrpcent F
+GLIBC_2.0 getrpcent_r F
+GLIBC_2.0 getrpcport F
+GLIBC_2.0 getrusage F
+GLIBC_2.0 gets F
+GLIBC_2.0 getsecretkey F
+GLIBC_2.0 getservbyname F
+GLIBC_2.0 getservbyname_r F
+GLIBC_2.0 getservbyport F
+GLIBC_2.0 getservbyport_r F
+GLIBC_2.0 getservent F
+GLIBC_2.0 getservent_r F
+GLIBC_2.0 getsid F
+GLIBC_2.0 getsockname F
+GLIBC_2.0 getsockopt F
+GLIBC_2.0 getspent F
+GLIBC_2.0 getspent_r F
+GLIBC_2.0 getspnam F
+GLIBC_2.0 getspnam_r F
+GLIBC_2.0 getsubopt F
+GLIBC_2.0 gettext F
+GLIBC_2.0 gettimeofday F
+GLIBC_2.0 getttyent F
+GLIBC_2.0 getttynam F
+GLIBC_2.0 getuid F
+GLIBC_2.0 getusershell F
+GLIBC_2.0 getutent F
+GLIBC_2.0 getutent_r F
+GLIBC_2.0 getutid F
+GLIBC_2.0 getutid_r F
+GLIBC_2.0 getutline F
+GLIBC_2.0 getutline_r F
+GLIBC_2.0 getw F
+GLIBC_2.0 getwd F
+GLIBC_2.0 glob F
+GLIBC_2.0 glob_pattern_p F
+GLIBC_2.0 globfree F
+GLIBC_2.0 gmtime F
+GLIBC_2.0 gmtime_r F
+GLIBC_2.0 group_member F
+GLIBC_2.0 gsignal F
+GLIBC_2.0 gtty F
+GLIBC_2.0 h_errlist D 0x14
+GLIBC_2.0 h_nerr D 0x4
+GLIBC_2.0 hasmntopt F
+GLIBC_2.0 hcreate F
+GLIBC_2.0 hcreate_r F
+GLIBC_2.0 hdestroy F
+GLIBC_2.0 hdestroy_r F
+GLIBC_2.0 herror F
+GLIBC_2.0 hsearch F
+GLIBC_2.0 hsearch_r F
+GLIBC_2.0 hstrerror F
+GLIBC_2.0 htonl F
+GLIBC_2.0 htons F
+GLIBC_2.0 index F
+GLIBC_2.0 inet_addr F
+GLIBC_2.0 inet_aton F
+GLIBC_2.0 inet_lnaof F
+GLIBC_2.0 inet_makeaddr F
+GLIBC_2.0 inet_netof F
+GLIBC_2.0 inet_network F
+GLIBC_2.0 inet_nsap_addr F
+GLIBC_2.0 inet_nsap_ntoa F
+GLIBC_2.0 inet_ntoa F
+GLIBC_2.0 inet_ntop F
+GLIBC_2.0 inet_pton F
+GLIBC_2.0 init_module F
+GLIBC_2.0 initgroups F
+GLIBC_2.0 initstate F
+GLIBC_2.0 initstate_r F
+GLIBC_2.0 innetgr F
+GLIBC_2.0 insque F
+GLIBC_2.0 ioctl F
+GLIBC_2.0 iruserok F
+GLIBC_2.0 isalnum F
+GLIBC_2.0 isalpha F
+GLIBC_2.0 isascii F
+GLIBC_2.0 isatty F
+GLIBC_2.0 isblank F
+GLIBC_2.0 iscntrl F
+GLIBC_2.0 isdigit F
+GLIBC_2.0 isfdtype F
+GLIBC_2.0 isgraph F
+GLIBC_2.0 isinf F
+GLIBC_2.0 isinff F
+GLIBC_2.0 isinfl F
+GLIBC_2.0 islower F
+GLIBC_2.0 isnan F
+GLIBC_2.0 isnanf F
+GLIBC_2.0 isnanl F
+GLIBC_2.0 isprint F
+GLIBC_2.0 ispunct F
+GLIBC_2.0 isspace F
+GLIBC_2.0 isupper F
+GLIBC_2.0 iswalnum F
+GLIBC_2.0 iswalpha F
+GLIBC_2.0 iswcntrl F
+GLIBC_2.0 iswctype F
+GLIBC_2.0 iswdigit F
+GLIBC_2.0 iswgraph F
+GLIBC_2.0 iswlower F
+GLIBC_2.0 iswprint F
+GLIBC_2.0 iswpunct F
+GLIBC_2.0 iswspace F
+GLIBC_2.0 iswupper F
+GLIBC_2.0 iswxdigit F
+GLIBC_2.0 isxdigit F
+GLIBC_2.0 jrand48 F
+GLIBC_2.0 jrand48_r F
+GLIBC_2.0 kill F
+GLIBC_2.0 killpg F
+GLIBC_2.0 klogctl F
+GLIBC_2.0 l64a F
+GLIBC_2.0 labs F
+GLIBC_2.0 lchown F
+GLIBC_2.0 lckpwdf F
+GLIBC_2.0 lcong48 F
+GLIBC_2.0 lcong48_r F
+GLIBC_2.0 ldexp F
+GLIBC_2.0 ldexpf F
+GLIBC_2.0 ldexpl F
+GLIBC_2.0 ldiv F
+GLIBC_2.0 lfind F
+GLIBC_2.0 link F
+GLIBC_2.0 listen F
+GLIBC_2.0 llabs F
+GLIBC_2.0 lldiv F
+GLIBC_2.0 llseek F
+GLIBC_2.0 loc1 D 0x4
+GLIBC_2.0 loc2 D 0x4
+GLIBC_2.0 localeconv F
+GLIBC_2.0 localtime F
+GLIBC_2.0 localtime_r F
+GLIBC_2.0 lockf F
+GLIBC_2.0 locs D 0x4
+GLIBC_2.0 longjmp F
+GLIBC_2.0 lrand48 F
+GLIBC_2.0 lrand48_r F
+GLIBC_2.0 lsearch F
+GLIBC_2.0 lseek F
+GLIBC_2.0 madvise F
+GLIBC_2.0 mallinfo F
+GLIBC_2.0 malloc F
+GLIBC_2.0 malloc_get_state F
+GLIBC_2.0 malloc_set_state F
+GLIBC_2.0 malloc_stats F
+GLIBC_2.0 malloc_trim F
+GLIBC_2.0 malloc_usable_size F
+GLIBC_2.0 mallopt F
+GLIBC_2.0 mallwatch D 0x4
+GLIBC_2.0 mblen F
+GLIBC_2.0 mbrlen F
+GLIBC_2.0 mbrtowc F
+GLIBC_2.0 mbsinit F
+GLIBC_2.0 mbsnrtowcs F
+GLIBC_2.0 mbsrtowcs F
+GLIBC_2.0 mbstowcs F
+GLIBC_2.0 mbtowc F
+GLIBC_2.0 mcheck F
+GLIBC_2.0 mcount F
+GLIBC_2.0 memalign F
+GLIBC_2.0 memccpy F
+GLIBC_2.0 memchr F
+GLIBC_2.0 memcmp F
+GLIBC_2.0 memcpy F
+GLIBC_2.0 memfrob F
+GLIBC_2.0 memmem F
+GLIBC_2.0 memmove F
+GLIBC_2.0 memset F
+GLIBC_2.0 mkdir F
+GLIBC_2.0 mkfifo F
+GLIBC_2.0 mkstemp F
+GLIBC_2.0 mktemp F
+GLIBC_2.0 mktime F
+GLIBC_2.0 mlock F
+GLIBC_2.0 mlockall F
+GLIBC_2.0 mmap F
+GLIBC_2.0 modf F
+GLIBC_2.0 modff F
+GLIBC_2.0 modfl F
+GLIBC_2.0 monstartup F
+GLIBC_2.0 mount F
+GLIBC_2.0 mprobe F
+GLIBC_2.0 mprotect F
+GLIBC_2.0 mrand48 F
+GLIBC_2.0 mrand48_r F
+GLIBC_2.0 mremap F
+GLIBC_2.0 msgctl F
+GLIBC_2.0 msgget F
+GLIBC_2.0 msgrcv F
+GLIBC_2.0 msgsnd F
+GLIBC_2.0 msync F
+GLIBC_2.0 mtrace F
+GLIBC_2.0 munlock F
+GLIBC_2.0 munlockall F
+GLIBC_2.0 munmap F
+GLIBC_2.0 muntrace F
+GLIBC_2.0 nanosleep F
+GLIBC_2.0 nfsservctl F
+GLIBC_2.0 nice F
+GLIBC_2.0 nl_langinfo F
+GLIBC_2.0 nrand48 F
+GLIBC_2.0 nrand48_r F
+GLIBC_2.0 ntohl F
+GLIBC_2.0 ntohs F
+GLIBC_2.0 obstack_alloc_failed_handler D 0x4
+GLIBC_2.0 obstack_exit_failure D 0x4
+GLIBC_2.0 obstack_free F
+GLIBC_2.0 obstack_printf F
+GLIBC_2.0 obstack_vprintf F
+GLIBC_2.0 on_exit F
+GLIBC_2.0 open F
+GLIBC_2.0 open_memstream F
+GLIBC_2.0 opendir F
+GLIBC_2.0 openlog F
+GLIBC_2.0 optarg D 0x4
+GLIBC_2.0 opterr D 0x4
+GLIBC_2.0 optind D 0x4
+GLIBC_2.0 optopt D 0x4
+GLIBC_2.0 parse_printf_format F
+GLIBC_2.0 pathconf F
+GLIBC_2.0 pause F
+GLIBC_2.0 pclose F
+GLIBC_2.0 perror F
+GLIBC_2.0 personality F
+GLIBC_2.0 pipe F
+GLIBC_2.0 pmap_getmaps F
+GLIBC_2.0 pmap_getport F
+GLIBC_2.0 pmap_rmtcall F
+GLIBC_2.0 pmap_set F
+GLIBC_2.0 pmap_unset F
+GLIBC_2.0 poll F
+GLIBC_2.0 popen F
+GLIBC_2.0 prctl F
+GLIBC_2.0 printf F
+GLIBC_2.0 profil F
+GLIBC_2.0 program_invocation_name D 0x4
+GLIBC_2.0 program_invocation_short_name D 0x4
+GLIBC_2.0 pselect F
+GLIBC_2.0 psignal F
+GLIBC_2.0 pthread_attr_destroy F
+GLIBC_2.0 pthread_attr_getdetachstate F
+GLIBC_2.0 pthread_attr_getinheritsched F
+GLIBC_2.0 pthread_attr_getschedparam F
+GLIBC_2.0 pthread_attr_getschedpolicy F
+GLIBC_2.0 pthread_attr_getscope F
+GLIBC_2.0 pthread_attr_init F
+GLIBC_2.0 pthread_attr_setdetachstate F
+GLIBC_2.0 pthread_attr_setinheritsched F
+GLIBC_2.0 pthread_attr_setschedparam F
+GLIBC_2.0 pthread_attr_setschedpolicy F
+GLIBC_2.0 pthread_attr_setscope F
+GLIBC_2.0 pthread_cond_broadcast F
+GLIBC_2.0 pthread_cond_destroy F
+GLIBC_2.0 pthread_cond_init F
+GLIBC_2.0 pthread_cond_signal F
+GLIBC_2.0 pthread_cond_timedwait F
+GLIBC_2.0 pthread_cond_wait F
+GLIBC_2.0 pthread_condattr_destroy F
+GLIBC_2.0 pthread_condattr_init F
+GLIBC_2.0 pthread_equal F
+GLIBC_2.0 pthread_exit F
+GLIBC_2.0 pthread_getschedparam F
+GLIBC_2.0 pthread_mutex_destroy F
+GLIBC_2.0 pthread_mutex_init F
+GLIBC_2.0 pthread_mutex_lock F
+GLIBC_2.0 pthread_mutex_unlock F
+GLIBC_2.0 pthread_self F
+GLIBC_2.0 pthread_setcancelstate F
+GLIBC_2.0 pthread_setcanceltype F
+GLIBC_2.0 pthread_setschedparam F
+GLIBC_2.0 ptrace F
+GLIBC_2.0 putc F
+GLIBC_2.0 putc_unlocked F
+GLIBC_2.0 putchar F
+GLIBC_2.0 putchar_unlocked F
+GLIBC_2.0 putenv F
+GLIBC_2.0 putpwent F
+GLIBC_2.0 puts F
+GLIBC_2.0 putspent F
+GLIBC_2.0 pututline F
+GLIBC_2.0 putw F
+GLIBC_2.0 pvalloc F
+GLIBC_2.0 qecvt F
+GLIBC_2.0 qecvt_r F
+GLIBC_2.0 qfcvt F
+GLIBC_2.0 qfcvt_r F
+GLIBC_2.0 qgcvt F
+GLIBC_2.0 qsort F
+GLIBC_2.0 query_module F
+GLIBC_2.0 quotactl F
+GLIBC_2.0 raise F
+GLIBC_2.0 rand F
+GLIBC_2.0 rand_r F
+GLIBC_2.0 random F
+GLIBC_2.0 random_r F
+GLIBC_2.0 rcmd F
+GLIBC_2.0 re_comp F
+GLIBC_2.0 re_compile_fastmap F
+GLIBC_2.0 re_compile_pattern F
+GLIBC_2.0 re_exec F
+GLIBC_2.0 re_match F
+GLIBC_2.0 re_match_2 F
+GLIBC_2.0 re_max_failures D 0x4
+GLIBC_2.0 re_search F
+GLIBC_2.0 re_search_2 F
+GLIBC_2.0 re_set_registers F
+GLIBC_2.0 re_set_syntax F
+GLIBC_2.0 re_syntax_options D 0x4
+GLIBC_2.0 read F
+GLIBC_2.0 readdir F
+GLIBC_2.0 readdir_r F
+GLIBC_2.0 readlink F
+GLIBC_2.0 readv F
+GLIBC_2.0 realloc F
+GLIBC_2.0 realpath F
+GLIBC_2.0 reboot F
+GLIBC_2.0 recv F
+GLIBC_2.0 recvfrom F
+GLIBC_2.0 recvmsg F
+GLIBC_2.0 regcomp F
+GLIBC_2.0 regerror F
+GLIBC_2.0 regexec F
+GLIBC_2.0 regfree F
+GLIBC_2.0 register_printf_function F
+GLIBC_2.0 registerrpc F
+GLIBC_2.0 remove F
+GLIBC_2.0 remque F
+GLIBC_2.0 rename F
+GLIBC_2.0 res_init F
+GLIBC_2.0 revoke F
+GLIBC_2.0 rewind F
+GLIBC_2.0 rewinddir F
+GLIBC_2.0 rexec F
+GLIBC_2.0 rexecoptions D 0x4
+GLIBC_2.0 rindex F
+GLIBC_2.0 rmdir F
+GLIBC_2.0 rpc_createerr D 0x10
+GLIBC_2.0 rpmatch F
+GLIBC_2.0 rresvport F
+GLIBC_2.0 ruserok F
+GLIBC_2.0 ruserpass F
+GLIBC_2.0 sbrk F
+GLIBC_2.0 scalbn F
+GLIBC_2.0 scalbnf F
+GLIBC_2.0 scalbnl F
+GLIBC_2.0 scandir F
+GLIBC_2.0 scanf F
+GLIBC_2.0 sched_get_priority_max F
+GLIBC_2.0 sched_get_priority_min F
+GLIBC_2.0 sched_getparam F
+GLIBC_2.0 sched_getscheduler F
+GLIBC_2.0 sched_rr_get_interval F
+GLIBC_2.0 sched_setparam F
+GLIBC_2.0 sched_setscheduler F
+GLIBC_2.0 sched_yield F
+GLIBC_2.0 seed48 F
+GLIBC_2.0 seed48_r F
+GLIBC_2.0 seekdir F
+GLIBC_2.0 select F
+GLIBC_2.0 semctl F
+GLIBC_2.0 semget F
+GLIBC_2.0 semop F
+GLIBC_2.0 send F
+GLIBC_2.0 sendmsg F
+GLIBC_2.0 sendto F
+GLIBC_2.0 setaliasent F
+GLIBC_2.0 setbuf F
+GLIBC_2.0 setbuffer F
+GLIBC_2.0 setcontext F
+GLIBC_2.0 setdomainname F
+GLIBC_2.0 setegid F
+GLIBC_2.0 setenv F
+GLIBC_2.0 seteuid F
+GLIBC_2.0 setfsent F
+GLIBC_2.0 setfsgid F
+GLIBC_2.0 setfsuid F
+GLIBC_2.0 setgid F
+GLIBC_2.0 setgrent F
+GLIBC_2.0 setgroups F
+GLIBC_2.0 sethostent F
+GLIBC_2.0 sethostid F
+GLIBC_2.0 sethostname F
+GLIBC_2.0 setitimer F
+GLIBC_2.0 setjmp F
+GLIBC_2.0 setlinebuf F
+GLIBC_2.0 setlocale F
+GLIBC_2.0 setlogin F
+GLIBC_2.0 setlogmask F
+GLIBC_2.0 setmntent F
+GLIBC_2.0 setnetent F
+GLIBC_2.0 setnetgrent F
+GLIBC_2.0 setpgid F
+GLIBC_2.0 setpgrp F
+GLIBC_2.0 setpriority F
+GLIBC_2.0 setprotoent F
+GLIBC_2.0 setpwent F
+GLIBC_2.0 setregid F
+GLIBC_2.0 setresgid F
+GLIBC_2.0 setresuid F
+GLIBC_2.0 setreuid F
+GLIBC_2.0 setrlimit F
+GLIBC_2.0 setrpcent F
+GLIBC_2.0 setservent F
+GLIBC_2.0 setsid F
+GLIBC_2.0 setsockopt F
+GLIBC_2.0 setspent F
+GLIBC_2.0 setstate F
+GLIBC_2.0 setstate_r F
+GLIBC_2.0 settimeofday F
+GLIBC_2.0 setttyent F
+GLIBC_2.0 setuid F
+GLIBC_2.0 setusershell F
+GLIBC_2.0 setutent F
+GLIBC_2.0 setvbuf F
+GLIBC_2.0 sgetspent F
+GLIBC_2.0 sgetspent_r F
+GLIBC_2.0 shmat F
+GLIBC_2.0 shmctl F
+GLIBC_2.0 shmdt F
+GLIBC_2.0 shmget F
+GLIBC_2.0 shutdown F
+GLIBC_2.0 sigaction F
+GLIBC_2.0 sigaddset F
+GLIBC_2.0 sigaltstack F
+GLIBC_2.0 sigandset F
+GLIBC_2.0 sigblock F
+GLIBC_2.0 sigdelset F
+GLIBC_2.0 sigemptyset F
+GLIBC_2.0 sigfillset F
+GLIBC_2.0 siggetmask F
+GLIBC_2.0 siginterrupt F
+GLIBC_2.0 sigisemptyset F
+GLIBC_2.0 sigismember F
+GLIBC_2.0 siglongjmp F
+GLIBC_2.0 signal F
+GLIBC_2.0 sigorset F
+GLIBC_2.0 sigpause F
+GLIBC_2.0 sigpending F
+GLIBC_2.0 sigprocmask F
+GLIBC_2.0 sigreturn F
+GLIBC_2.0 sigsetmask F
+GLIBC_2.0 sigstack F
+GLIBC_2.0 sigsuspend F
+GLIBC_2.0 sigvec F
+GLIBC_2.0 sigwait F
+GLIBC_2.0 sleep F
+GLIBC_2.0 snprintf F
+GLIBC_2.0 socket F
+GLIBC_2.0 socketpair F
+GLIBC_2.0 sprintf F
+GLIBC_2.0 srand F
+GLIBC_2.0 srand48 F
+GLIBC_2.0 srand48_r F
+GLIBC_2.0 srandom F
+GLIBC_2.0 srandom_r F
+GLIBC_2.0 sscanf F
+GLIBC_2.0 ssignal F
+GLIBC_2.0 sstk F
+GLIBC_2.0 statfs F
+GLIBC_2.0 stderr D 0x4
+GLIBC_2.0 stdin D 0x4
+GLIBC_2.0 stdout D 0x4
+GLIBC_2.0 step F
+GLIBC_2.0 stime F
+GLIBC_2.0 stpcpy F
+GLIBC_2.0 stpncpy F
+GLIBC_2.0 strcasecmp F
+GLIBC_2.0 strcat F
+GLIBC_2.0 strchr F
+GLIBC_2.0 strcmp F
+GLIBC_2.0 strcoll F
+GLIBC_2.0 strcpy F
+GLIBC_2.0 strcspn F
+GLIBC_2.0 strdup F
+GLIBC_2.0 strerror F
+GLIBC_2.0 strerror_r F
+GLIBC_2.0 strfmon F
+GLIBC_2.0 strfry F
+GLIBC_2.0 strftime F
+GLIBC_2.0 strlen F
+GLIBC_2.0 strncasecmp F
+GLIBC_2.0 strncat F
+GLIBC_2.0 strncmp F
+GLIBC_2.0 strncpy F
+GLIBC_2.0 strndup F
+GLIBC_2.0 strnlen F
+GLIBC_2.0 strpbrk F
+GLIBC_2.0 strptime F
+GLIBC_2.0 strrchr F
+GLIBC_2.0 strsep F
+GLIBC_2.0 strsignal F
+GLIBC_2.0 strspn F
+GLIBC_2.0 strstr F
+GLIBC_2.0 strtod F
+GLIBC_2.0 strtof F
+GLIBC_2.0 strtok F
+GLIBC_2.0 strtok_r F
+GLIBC_2.0 strtol F
+GLIBC_2.0 strtold F
+GLIBC_2.0 strtoll F
+GLIBC_2.0 strtoq F
+GLIBC_2.0 strtoul F
+GLIBC_2.0 strtoull F
+GLIBC_2.0 strtouq F
+GLIBC_2.0 strxfrm F
+GLIBC_2.0 stty F
+GLIBC_2.0 svc_exit F
+GLIBC_2.0 svc_fdset D 0x80
+GLIBC_2.0 svc_getreq F
+GLIBC_2.0 svc_getreqset F
+GLIBC_2.0 svc_register F
+GLIBC_2.0 svc_run F
+GLIBC_2.0 svc_sendreply F
+GLIBC_2.0 svc_unregister F
+GLIBC_2.0 svcauthdes_stats D 0xc
+GLIBC_2.0 svcerr_auth F
+GLIBC_2.0 svcerr_decode F
+GLIBC_2.0 svcerr_noproc F
+GLIBC_2.0 svcerr_noprog F
+GLIBC_2.0 svcerr_progvers F
+GLIBC_2.0 svcerr_systemerr F
+GLIBC_2.0 svcerr_weakauth F
+GLIBC_2.0 svcfd_create F
+GLIBC_2.0 svcraw_create F
+GLIBC_2.0 svctcp_create F
+GLIBC_2.0 svcudp_bufcreate F
+GLIBC_2.0 svcudp_create F
+GLIBC_2.0 svcudp_enablecache F
+GLIBC_2.0 swab F
+GLIBC_2.0 swapoff F
+GLIBC_2.0 swapon F
+GLIBC_2.0 symlink F
+GLIBC_2.0 sync F
+GLIBC_2.0 sys_errlist D 0x1ec
+GLIBC_2.0 sys_nerr D 0x4
+GLIBC_2.0 sys_sigabbrev D 0x80
+GLIBC_2.0 sys_siglist D 0x80
+GLIBC_2.0 syscall F
+GLIBC_2.0 sysconf F
+GLIBC_2.0 sysctl F
+GLIBC_2.0 sysinfo F
+GLIBC_2.0 syslog F
+GLIBC_2.0 system F
+GLIBC_2.0 tcdrain F
+GLIBC_2.0 tcflow F
+GLIBC_2.0 tcflush F
+GLIBC_2.0 tcgetattr F
+GLIBC_2.0 tcgetpgrp F
+GLIBC_2.0 tcsendbreak F
+GLIBC_2.0 tcsetattr F
+GLIBC_2.0 tcsetpgrp F
+GLIBC_2.0 tdelete F
+GLIBC_2.0 telldir F
+GLIBC_2.0 tempnam F
+GLIBC_2.0 textdomain F
+GLIBC_2.0 tfind F
+GLIBC_2.0 time F
+GLIBC_2.0 timegm F
+GLIBC_2.0 timelocal F
+GLIBC_2.0 times F
+GLIBC_2.0 timezone D 0x4
+GLIBC_2.0 tmpfile F
+GLIBC_2.0 tmpnam F
+GLIBC_2.0 tmpnam_r F
+GLIBC_2.0 toascii F
+GLIBC_2.0 tolower F
+GLIBC_2.0 toupper F
+GLIBC_2.0 towctrans F
+GLIBC_2.0 towlower F
+GLIBC_2.0 towupper F
+GLIBC_2.0 tr_break F
+GLIBC_2.0 truncate F
+GLIBC_2.0 tsearch F
+GLIBC_2.0 ttyname F
+GLIBC_2.0 ttyname_r F
+GLIBC_2.0 ttyslot F
+GLIBC_2.0 twalk F
+GLIBC_2.0 tzname D 0x8
+GLIBC_2.0 tzset F
+GLIBC_2.0 ualarm F
+GLIBC_2.0 ulckpwdf F
+GLIBC_2.0 ulimit F
+GLIBC_2.0 umask F
+GLIBC_2.0 umount F
+GLIBC_2.0 uname F
+GLIBC_2.0 ungetc F
+GLIBC_2.0 unlink F
+GLIBC_2.0 unsetenv F
+GLIBC_2.0 updwtmp F
+GLIBC_2.0 uselib F
+GLIBC_2.0 usleep F
+GLIBC_2.0 ustat F
+GLIBC_2.0 utime F
+GLIBC_2.0 utimes F
+GLIBC_2.0 utmpname F
+GLIBC_2.0 valloc F
+GLIBC_2.0 vasprintf F
+GLIBC_2.0 vdprintf F
+GLIBC_2.0 verr F
+GLIBC_2.0 verrx F
+GLIBC_2.0 vfork F
+GLIBC_2.0 vfprintf F
+GLIBC_2.0 vfscanf F
+GLIBC_2.0 vhangup F
+GLIBC_2.0 vlimit F
+GLIBC_2.0 vprintf F
+GLIBC_2.0 vscanf F
+GLIBC_2.0 vsnprintf F
+GLIBC_2.0 vsprintf F
+GLIBC_2.0 vsscanf F
+GLIBC_2.0 vsyslog F
+GLIBC_2.0 vtimes F
+GLIBC_2.0 vwarn F
+GLIBC_2.0 vwarnx F
+GLIBC_2.0 wait F
+GLIBC_2.0 wait3 F
+GLIBC_2.0 wait4 F
+GLIBC_2.0 waitpid F
+GLIBC_2.0 warn F
+GLIBC_2.0 warnx F
+GLIBC_2.0 wcpcpy F
+GLIBC_2.0 wcpncpy F
+GLIBC_2.0 wcrtomb F
+GLIBC_2.0 wcscat F
+GLIBC_2.0 wcschr F
+GLIBC_2.0 wcscmp F
+GLIBC_2.0 wcscoll F
+GLIBC_2.0 wcscpy F
+GLIBC_2.0 wcscspn F
+GLIBC_2.0 wcsdup F
+GLIBC_2.0 wcslen F
+GLIBC_2.0 wcsncat F
+GLIBC_2.0 wcsncmp F
+GLIBC_2.0 wcsncpy F
+GLIBC_2.0 wcsnrtombs F
+GLIBC_2.0 wcspbrk F
+GLIBC_2.0 wcsrchr F
+GLIBC_2.0 wcsrtombs F
+GLIBC_2.0 wcsspn F
+GLIBC_2.0 wcsstr F
+GLIBC_2.0 wcstod F
+GLIBC_2.0 wcstof F
+GLIBC_2.0 wcstok F
+GLIBC_2.0 wcstol F
+GLIBC_2.0 wcstold F
+GLIBC_2.0 wcstombs F
+GLIBC_2.0 wcstoq F
+GLIBC_2.0 wcstoul F
+GLIBC_2.0 wcstouq F
+GLIBC_2.0 wcswidth F
+GLIBC_2.0 wcsxfrm F
+GLIBC_2.0 wctob F
+GLIBC_2.0 wctomb F
+GLIBC_2.0 wctrans F
+GLIBC_2.0 wctype F
+GLIBC_2.0 wcwidth F
+GLIBC_2.0 wmemchr F
+GLIBC_2.0 wmemcmp F
+GLIBC_2.0 wmemcpy F
+GLIBC_2.0 wmemmove F
+GLIBC_2.0 wmemset F
+GLIBC_2.0 write F
+GLIBC_2.0 writev F
+GLIBC_2.0 xdr_accepted_reply F
+GLIBC_2.0 xdr_array F
+GLIBC_2.0 xdr_authunix_parms F
+GLIBC_2.0 xdr_bool F
+GLIBC_2.0 xdr_bytes F
+GLIBC_2.0 xdr_callhdr F
+GLIBC_2.0 xdr_callmsg F
+GLIBC_2.0 xdr_char F
+GLIBC_2.0 xdr_cryptkeyarg F
+GLIBC_2.0 xdr_cryptkeyarg2 F
+GLIBC_2.0 xdr_cryptkeyres F
+GLIBC_2.0 xdr_des_block F
+GLIBC_2.0 xdr_double F
+GLIBC_2.0 xdr_enum F
+GLIBC_2.0 xdr_float F
+GLIBC_2.0 xdr_free F
+GLIBC_2.0 xdr_int F
+GLIBC_2.0 xdr_key_netstarg F
+GLIBC_2.0 xdr_key_netstres F
+GLIBC_2.0 xdr_keybuf F
+GLIBC_2.0 xdr_keystatus F
+GLIBC_2.0 xdr_long F
+GLIBC_2.0 xdr_netobj F
+GLIBC_2.0 xdr_opaque F
+GLIBC_2.0 xdr_opaque_auth F
+GLIBC_2.0 xdr_pmap F
+GLIBC_2.0 xdr_pmaplist F
+GLIBC_2.0 xdr_pointer F
+GLIBC_2.0 xdr_reference F
+GLIBC_2.0 xdr_rejected_reply F
+GLIBC_2.0 xdr_replymsg F
+GLIBC_2.0 xdr_rmtcall_args F
+GLIBC_2.0 xdr_rmtcallres F
+GLIBC_2.0 xdr_short F
+GLIBC_2.0 xdr_string F
+GLIBC_2.0 xdr_u_char F
+GLIBC_2.0 xdr_u_int F
+GLIBC_2.0 xdr_u_long F
+GLIBC_2.0 xdr_u_short F
+GLIBC_2.0 xdr_union F
+GLIBC_2.0 xdr_vector F
+GLIBC_2.0 xdr_void F
+GLIBC_2.0 xdr_wrapstring F
+GLIBC_2.0 xdrmem_create F
+GLIBC_2.0 xdrrec_create F
+GLIBC_2.0 xdrrec_endofrecord F
+GLIBC_2.0 xdrrec_eof F
+GLIBC_2.0 xdrrec_skiprecord F
+GLIBC_2.0 xdrstdio_create F
+GLIBC_2.0 xencrypt F
+GLIBC_2.0 xprt_register F
+GLIBC_2.0 xprt_unregister F
+GLIBC_2.1 GLIBC_2.1 A
+GLIBC_2.1 _IO_2_1_stderr_ D 0xa0
+GLIBC_2.1 _IO_2_1_stdin_ D 0xa0
+GLIBC_2.1 _IO_2_1_stdout_ D 0xa0
+GLIBC_2.1 _IO_do_write F
+GLIBC_2.1 _IO_fclose F
+GLIBC_2.1 _IO_fdopen F
+GLIBC_2.1 _IO_fgetpos64 F
+GLIBC_2.1 _IO_file_attach F
+GLIBC_2.1 _IO_file_close_it F
+GLIBC_2.1 _IO_file_finish F
+GLIBC_2.1 _IO_file_fopen F
+GLIBC_2.1 _IO_file_init F
+GLIBC_2.1 _IO_file_overflow F
+GLIBC_2.1 _IO_file_seekoff F
+GLIBC_2.1 _IO_file_setbuf F
+GLIBC_2.1 _IO_file_sync F
+GLIBC_2.1 _IO_file_underflow F
+GLIBC_2.1 _IO_file_write F
+GLIBC_2.1 _IO_file_xsputn F
+GLIBC_2.1 _IO_fopen F
+GLIBC_2.1 _IO_fsetpos64 F
+GLIBC_2.1 _IO_getline_info F
+GLIBC_2.1 _IO_popen F
+GLIBC_2.1 _IO_proc_close F
+GLIBC_2.1 _IO_proc_open F
+GLIBC_2.1 __asprintf F
+GLIBC_2.1 __backtrace F
+GLIBC_2.1 __backtrace_symbols F
+GLIBC_2.1 __backtrace_symbols_fd F
+GLIBC_2.1 __chown F
+GLIBC_2.1 __duplocale F
+GLIBC_2.1 __freelocale F
+GLIBC_2.1 __fxstat64 F
+GLIBC_2.1 __isalnum_l F
+GLIBC_2.1 __isalpha_l F
+GLIBC_2.1 __isascii_l F
+GLIBC_2.1 __isblank_l F
+GLIBC_2.1 __iscntrl_l F
+GLIBC_2.1 __isdigit_l F
+GLIBC_2.1 __isgraph_l F
+GLIBC_2.1 __islower_l F
+GLIBC_2.1 __isprint_l F
+GLIBC_2.1 __ispunct_l F
+GLIBC_2.1 __isspace_l F
+GLIBC_2.1 __isupper_l F
+GLIBC_2.1 __iswalnum_l F
+GLIBC_2.1 __iswalpha_l F
+GLIBC_2.1 __iswblank_l F
+GLIBC_2.1 __iswcntrl_l F
+GLIBC_2.1 __iswctype_l F
+GLIBC_2.1 __iswdigit_l F
+GLIBC_2.1 __iswgraph_l F
+GLIBC_2.1 __iswlower_l F
+GLIBC_2.1 __iswprint_l F
+GLIBC_2.1 __iswpunct_l F
+GLIBC_2.1 __iswspace_l F
+GLIBC_2.1 __iswupper_l F
+GLIBC_2.1 __iswxdigit_l F
+GLIBC_2.1 __isxdigit_l F
+GLIBC_2.1 __key_decryptsession_pk_LOCAL D 0x4
+GLIBC_2.1 __key_encryptsession_pk_LOCAL D 0x4
+GLIBC_2.1 __key_gendes_LOCAL D 0x4
+GLIBC_2.1 __libc_allocate_rtsig F
+GLIBC_2.1 __libc_current_sigrtmax F
+GLIBC_2.1 __libc_current_sigrtmin F
+GLIBC_2.1 __libc_freeres F
+GLIBC_2.1 __libc_sa_len F
+GLIBC_2.1 __lxstat64 F
+GLIBC_2.1 __newlocale F
+GLIBC_2.1 __poll F
+GLIBC_2.1 __pread64 F
+GLIBC_2.1 __pwrite64 F
+GLIBC_2.1 __rawmemchr F
+GLIBC_2.1 __signbit F
+GLIBC_2.1 __signbitf F
+GLIBC_2.1 __strcasecmp_l F
+GLIBC_2.1 __strcasestr F
+GLIBC_2.1 __strcoll_l F
+GLIBC_2.1 __strfmon_l F
+GLIBC_2.1 __strncasecmp_l F
+GLIBC_2.1 __strtod_l F
+GLIBC_2.1 __strtof_l F
+GLIBC_2.1 __strtol_l F
+GLIBC_2.1 __strtold_l F
+GLIBC_2.1 __strtoll_l F
+GLIBC_2.1 __strtoul_l F
+GLIBC_2.1 __strtoull_l F
+GLIBC_2.1 __strxfrm_l F
+GLIBC_2.1 __toascii_l F
+GLIBC_2.1 __tolower_l F
+GLIBC_2.1 __toupper_l F
+GLIBC_2.1 __towctrans F
+GLIBC_2.1 __towctrans_l F
+GLIBC_2.1 __towlower_l F
+GLIBC_2.1 __towupper_l F
+GLIBC_2.1 __wcscasecmp_l F
+GLIBC_2.1 __wcscoll_l F
+GLIBC_2.1 __wcsncasecmp_l F
+GLIBC_2.1 __wcstod_l F
+GLIBC_2.1 __wcstof_l F
+GLIBC_2.1 __wcstol_l F
+GLIBC_2.1 __wcstold_l F
+GLIBC_2.1 __wcstoll_l F
+GLIBC_2.1 __wcstoul_l F
+GLIBC_2.1 __wcstoull_l F
+GLIBC_2.1 __wcsxfrm_l F
+GLIBC_2.1 __wctype_l F
+GLIBC_2.1 __xstat64 F
+GLIBC_2.1 _authenticate F
+GLIBC_2.1 _dl_mcount_wrapper F
+GLIBC_2.1 _dl_mcount_wrapper_check F
+GLIBC_2.1 _sys_errlist D 0x1f4
+GLIBC_2.1 _sys_nerr D 0x4
+GLIBC_2.1 _sys_siglist D 0x100
+GLIBC_2.1 addseverity F
+GLIBC_2.1 alphasort64 F
+GLIBC_2.1 argp_err_exit_status D 0x4
+GLIBC_2.1 argp_error F
+GLIBC_2.1 argp_failure F
+GLIBC_2.1 argp_help F
+GLIBC_2.1 argp_parse F
+GLIBC_2.1 argp_program_bug_address D 0x4
+GLIBC_2.1 argp_program_version D 0x4
+GLIBC_2.1 argp_program_version_hook D 0x4
+GLIBC_2.1 argp_state_help F
+GLIBC_2.1 argp_usage F
+GLIBC_2.1 authdes_create F
+GLIBC_2.1 authdes_getucred F
+GLIBC_2.1 authdes_pk_create F
+GLIBC_2.1 backtrace F
+GLIBC_2.1 backtrace_symbols F
+GLIBC_2.1 backtrace_symbols_fd F
+GLIBC_2.1 capget F
+GLIBC_2.1 capset F
+GLIBC_2.1 cbc_crypt F
+GLIBC_2.1 chown F
+GLIBC_2.1 clntunix_create F
+GLIBC_2.1 creat64 F
+GLIBC_2.1 des_setparity F
+GLIBC_2.1 ecb_crypt F
+GLIBC_2.1 endutxent F
+GLIBC_2.1 fattach F
+GLIBC_2.1 fclose F
+GLIBC_2.1 fdetach F
+GLIBC_2.1 fdopen F
+GLIBC_2.1 ffsl F
+GLIBC_2.1 ffsll F
+GLIBC_2.1 fgetc_unlocked F
+GLIBC_2.1 fgetpos64 F
+GLIBC_2.1 fgets_unlocked F
+GLIBC_2.1 fmtmsg F
+GLIBC_2.1 fopen F
+GLIBC_2.1 fopen64 F
+GLIBC_2.1 fputs_unlocked F
+GLIBC_2.1 fread_unlocked F
+GLIBC_2.1 freopen64 F
+GLIBC_2.1 fseeko F
+GLIBC_2.1 fseeko64 F
+GLIBC_2.1 fsetpos64 F
+GLIBC_2.1 fstatfs64 F
+GLIBC_2.1 fstatvfs F
+GLIBC_2.1 fstatvfs64 F
+GLIBC_2.1 ftello F
+GLIBC_2.1 ftello64 F
+GLIBC_2.1 ftruncate64 F
+GLIBC_2.1 ftw64 F
+GLIBC_2.1 fwrite_unlocked F
+GLIBC_2.1 gai_strerror F
+GLIBC_2.1 getcontext F
+GLIBC_2.1 getdate F
+GLIBC_2.1 getdate_err D 0x4
+GLIBC_2.1 getdate_r F
+GLIBC_2.1 getmsg F
+GLIBC_2.1 getnameinfo F
+GLIBC_2.1 getnetname F
+GLIBC_2.1 getpmsg F
+GLIBC_2.1 getpt F
+GLIBC_2.1 getrlimit64 F
+GLIBC_2.1 getutxent F
+GLIBC_2.1 getutxid F
+GLIBC_2.1 getutxline F
+GLIBC_2.1 glob64 F
+GLIBC_2.1 globfree64 F
+GLIBC_2.1 gnu_get_libc_release F
+GLIBC_2.1 gnu_get_libc_version F
+GLIBC_2.1 grantpt F
+GLIBC_2.1 host2netname F
+GLIBC_2.1 iconv F
+GLIBC_2.1 iconv_close F
+GLIBC_2.1 iconv_open F
+GLIBC_2.1 if_freenameindex F
+GLIBC_2.1 if_indextoname F
+GLIBC_2.1 if_nameindex F
+GLIBC_2.1 if_nametoindex F
+GLIBC_2.1 in6addr_any D 0x10
+GLIBC_2.1 in6addr_loopback D 0x10
+GLIBC_2.1 isastream F
+GLIBC_2.1 iswblank F
+GLIBC_2.1 key_decryptsession F
+GLIBC_2.1 key_decryptsession_pk F
+GLIBC_2.1 key_encryptsession F
+GLIBC_2.1 key_encryptsession_pk F
+GLIBC_2.1 key_gendes F
+GLIBC_2.1 key_get_conv F
+GLIBC_2.1 key_secretkey_is_set F
+GLIBC_2.1 key_setnet F
+GLIBC_2.1 key_setsecret F
+GLIBC_2.1 lockf64 F
+GLIBC_2.1 lseek64 F
+GLIBC_2.1 makecontext F
+GLIBC_2.1 mempcpy F
+GLIBC_2.1 mmap64 F
+GLIBC_2.1 netname2host F
+GLIBC_2.1 netname2user F
+GLIBC_2.1 nftw F
+GLIBC_2.1 nftw64 F
+GLIBC_2.1 ntp_adjtime F
+GLIBC_2.1 ntp_gettime F
+GLIBC_2.1 open64 F
+GLIBC_2.1 passwd2des F
+GLIBC_2.1 pclose F
+GLIBC_2.1 popen F
+GLIBC_2.1 pread F
+GLIBC_2.1 pread64 F
+GLIBC_2.1 printf_size F
+GLIBC_2.1 printf_size_info F
+GLIBC_2.1 pthread_attr_init F
+GLIBC_2.1 ptsname F
+GLIBC_2.1 ptsname_r F
+GLIBC_2.1 putgrent F
+GLIBC_2.1 putmsg F
+GLIBC_2.1 putpmsg F
+GLIBC_2.1 pututxline F
+GLIBC_2.1 pwrite F
+GLIBC_2.1 pwrite64 F
+GLIBC_2.1 rawmemchr F
+GLIBC_2.1 readdir64 F
+GLIBC_2.1 readdir64_r F
+GLIBC_2.1 rtime F
+GLIBC_2.1 scandir64 F
+GLIBC_2.1 sendfile F
+GLIBC_2.1 setrlimit64 F
+GLIBC_2.1 setutxent F
+GLIBC_2.1 sighold F
+GLIBC_2.1 sigignore F
+GLIBC_2.1 sigqueue F
+GLIBC_2.1 sigrelse F
+GLIBC_2.1 sigset F
+GLIBC_2.1 sigtimedwait F
+GLIBC_2.1 sigwaitinfo F
+GLIBC_2.1 statfs64 F
+GLIBC_2.1 statvfs F
+GLIBC_2.1 statvfs64 F
+GLIBC_2.1 strcasestr F
+GLIBC_2.1 strtoimax F
+GLIBC_2.1 strtoumax F
+GLIBC_2.1 strverscmp F
+GLIBC_2.1 svcunix_create F
+GLIBC_2.1 svcunixfd_create F
+GLIBC_2.1 swapcontext F
+GLIBC_2.1 sys_errlist D 0x1f4
+GLIBC_2.1 sys_nerr D 0x4
+GLIBC_2.1 sys_sigabbrev D 0x100
+GLIBC_2.1 sys_siglist D 0x100
+GLIBC_2.1 sysv_signal F
+GLIBC_2.1 tcgetsid F
+GLIBC_2.1 tdestroy F
+GLIBC_2.1 tmpfile F
+GLIBC_2.1 tmpfile64 F
+GLIBC_2.1 truncate64 F
+GLIBC_2.1 umount2 F
+GLIBC_2.1 unlockpt F
+GLIBC_2.1 updwtmpx F
+GLIBC_2.1 user2netname F
+GLIBC_2.1 utmpxname F
+GLIBC_2.1 versionsort F
+GLIBC_2.1 versionsort64 F
+GLIBC_2.1 waitid F
+GLIBC_2.1 wcscasecmp F
+GLIBC_2.1 wcsncasecmp F
+GLIBC_2.1 wcsnlen F
+GLIBC_2.1 wcstoimax F
+GLIBC_2.1 wcstoll F
+GLIBC_2.1 wcstoull F
+GLIBC_2.1 wcstoumax F
+GLIBC_2.1 wcswcs F
+GLIBC_2.1 wordexp F
+GLIBC_2.1 wordfree F
+GLIBC_2.1 xdecrypt F
+GLIBC_2.1 xdr_authdes_cred F
+GLIBC_2.1 xdr_authdes_verf F
+GLIBC_2.1 xdr_getcredres F
+GLIBC_2.1 xdr_int16_t F
+GLIBC_2.1 xdr_int32_t F
+GLIBC_2.1 xdr_int8_t F
+GLIBC_2.1 xdr_netnamestr F
+GLIBC_2.1 xdr_sizeof F
+GLIBC_2.1 xdr_uint16_t F
+GLIBC_2.1 xdr_uint32_t F
+GLIBC_2.1 xdr_uint8_t F
+GLIBC_2.1 xdr_unixcred F
+GLIBC_2.1.1 GLIBC_2.1.1 A
+GLIBC_2.1.1 _Exit F
+GLIBC_2.1.1 __mempcpy_small F
+GLIBC_2.1.1 __stpcpy_small F
+GLIBC_2.1.1 __strcpy_small F
+GLIBC_2.1.1 __strcspn_c1 F
+GLIBC_2.1.1 __strcspn_c2 F
+GLIBC_2.1.1 __strcspn_c3 F
+GLIBC_2.1.1 __strpbrk_c2 F
+GLIBC_2.1.1 __strpbrk_c3 F
+GLIBC_2.1.1 __strsep_1c F
+GLIBC_2.1.1 __strsep_2c F
+GLIBC_2.1.1 __strsep_3c F
+GLIBC_2.1.1 __strsep_g F
+GLIBC_2.1.1 __strspn_c1 F
+GLIBC_2.1.1 __strspn_c2 F
+GLIBC_2.1.1 __strspn_c3 F
+GLIBC_2.1.1 __strtok_r_1c F
+GLIBC_2.1.1 __strverscmp F
+GLIBC_2.1.1 getutmp F
+GLIBC_2.1.1 getutmpx F
+GLIBC_2.1.1 imaxabs F
+GLIBC_2.1.1 imaxdiv F
+GLIBC_2.1.1 strchrnul F
+GLIBC_2.1.1 xdr_hyper F
+GLIBC_2.1.1 xdr_int64_t F
+GLIBC_2.1.1 xdr_longlong_t F
+GLIBC_2.1.1 xdr_u_hyper F
+GLIBC_2.1.1 xdr_u_longlong_t F
+GLIBC_2.1.1 xdr_uint64_t F
+GLIBC_2.1.2 GLIBC_2.1.2 A
+GLIBC_2.1.2 __vfork F
+GLIBC_2.1.2 getaliasbyname_r F
+GLIBC_2.1.2 getaliasent_r F
+GLIBC_2.1.2 getgrent_r F
+GLIBC_2.1.2 getgrgid_r F
+GLIBC_2.1.2 getgrnam_r F
+GLIBC_2.1.2 gethostbyaddr_r F
+GLIBC_2.1.2 gethostbyname2_r F
+GLIBC_2.1.2 gethostbyname_r F
+GLIBC_2.1.2 gethostent_r F
+GLIBC_2.1.2 getnetbyaddr_r F
+GLIBC_2.1.2 getnetbyname_r F
+GLIBC_2.1.2 getnetent_r F
+GLIBC_2.1.2 getprotobyname_r F
+GLIBC_2.1.2 getprotobynumber_r F
+GLIBC_2.1.2 getprotoent_r F
+GLIBC_2.1.2 getpwent_r F
+GLIBC_2.1.2 getpwnam_r F
+GLIBC_2.1.2 getpwuid_r F
+GLIBC_2.1.2 getrpcbyname_r F
+GLIBC_2.1.2 getrpcbynumber_r F
+GLIBC_2.1.2 getrpcent_r F
+GLIBC_2.1.2 getservbyname_r F
+GLIBC_2.1.2 getservbyport_r F
+GLIBC_2.1.2 getservent_r F
+GLIBC_2.1.2 getspent_r F
+GLIBC_2.1.2 getspnam_r F
+GLIBC_2.1.3 GLIBC_2.1.3 A
+GLIBC_2.1.3 __cxa_atexit F
+GLIBC_2.1.3 __cxa_finalize F
+GLIBC_2.1.3 __sigsuspend F
+GLIBC_2.10 GLIBC_2.10 A
+GLIBC_2.10 __cxa_at_quick_exit F
+GLIBC_2.10 __posix_getopt F
+GLIBC_2.10 accept4 F
+GLIBC_2.10 endsgent F
+GLIBC_2.10 fallocate F
+GLIBC_2.10 fgetsgent F
+GLIBC_2.10 fgetsgent_r F
+GLIBC_2.10 getsgent F
+GLIBC_2.10 getsgent_r F
+GLIBC_2.10 getsgnam F
+GLIBC_2.10 getsgnam_r F
+GLIBC_2.10 malloc_info F
+GLIBC_2.10 preadv F
+GLIBC_2.10 preadv64 F
+GLIBC_2.10 psiginfo F
+GLIBC_2.10 putsgent F
+GLIBC_2.10 pwritev F
+GLIBC_2.10 pwritev64 F
+GLIBC_2.10 quick_exit F
+GLIBC_2.10 register_printf_modifier F
+GLIBC_2.10 register_printf_specifier F
+GLIBC_2.10 register_printf_type F
+GLIBC_2.10 setsgent F
+GLIBC_2.10 sgetsgent F
+GLIBC_2.10 sgetsgent_r F
+GLIBC_2.11 GLIBC_2.11 A
+GLIBC_2.11 __longjmp_chk F
+GLIBC_2.11 execvpe F
+GLIBC_2.11 fallocate64 F
+GLIBC_2.11 mkostemps F
+GLIBC_2.11 mkostemps64 F
+GLIBC_2.11 mkstemps F
+GLIBC_2.11 mkstemps64 F
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 _sys_errlist D 0x21c
+GLIBC_2.12 _sys_nerr D 0x4
+GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 recvmmsg F
+GLIBC_2.12 sys_errlist D 0x21c
+GLIBC_2.12 sys_nerr D 0x4
+GLIBC_2.13 GLIBC_2.13 A
+GLIBC_2.13 fanotify_init F
+GLIBC_2.13 fanotify_mark F
+GLIBC_2.13 prlimit F
+GLIBC_2.13 prlimit64 F
+GLIBC_2.14 GLIBC_2.14 A
+GLIBC_2.14 clock_adjtime F
+GLIBC_2.14 name_to_handle_at F
+GLIBC_2.14 open_by_handle_at F
+GLIBC_2.14 sendmmsg F
+GLIBC_2.14 setns F
+GLIBC_2.14 syncfs F
+GLIBC_2.15 GLIBC_2.15 A
+GLIBC_2.15 __fdelt_chk F
+GLIBC_2.15 __fdelt_warn F
+GLIBC_2.15 posix_spawn F
+GLIBC_2.15 posix_spawnp F
+GLIBC_2.15 process_vm_readv F
+GLIBC_2.15 process_vm_writev F
+GLIBC_2.15 scandirat F
+GLIBC_2.15 scandirat64 F
+GLIBC_2.16 GLIBC_2.16 A
+GLIBC_2.16 __getauxval F
+GLIBC_2.16 __poll_chk F
+GLIBC_2.16 __ppoll_chk F
+GLIBC_2.16 aligned_alloc F
+GLIBC_2.16 c16rtomb F
+GLIBC_2.16 c32rtomb F
+GLIBC_2.16 getauxval F
+GLIBC_2.16 mbrtoc16 F
+GLIBC_2.16 mbrtoc32 F
+GLIBC_2.16 timespec_get F
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 clock_getcpuclockid F
+GLIBC_2.17 clock_getres F
+GLIBC_2.17 clock_gettime F
+GLIBC_2.17 clock_nanosleep F
+GLIBC_2.17 clock_settime F
+GLIBC_2.17 secure_getenv F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.19 GLIBC_2.19 A
+GLIBC_2.19 __longjmp_chk F
+GLIBC_2.19 __sigsetjmp F
+GLIBC_2.19 _longjmp F
+GLIBC_2.19 _setjmp F
+GLIBC_2.19 getcontext F
+GLIBC_2.19 longjmp F
+GLIBC_2.19 setjmp F
+GLIBC_2.19 siglongjmp F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 _IO_adjust_wcolumn F
+GLIBC_2.2 _IO_fgetpos F
+GLIBC_2.2 _IO_fgetpos64 F
+GLIBC_2.2 _IO_free_wbackup_area F
+GLIBC_2.2 _IO_fsetpos F
+GLIBC_2.2 _IO_fsetpos64 F
+GLIBC_2.2 _IO_init_wmarker F
+GLIBC_2.2 _IO_iter_begin F
+GLIBC_2.2 _IO_iter_end F
+GLIBC_2.2 _IO_iter_file F
+GLIBC_2.2 _IO_iter_next F
+GLIBC_2.2 _IO_least_wmarker F
+GLIBC_2.2 _IO_list_lock F
+GLIBC_2.2 _IO_list_resetlock F
+GLIBC_2.2 _IO_list_unlock F
+GLIBC_2.2 _IO_seekwmark F
+GLIBC_2.2 _IO_sputbackwc F
+GLIBC_2.2 _IO_sungetwc F
+GLIBC_2.2 _IO_switch_to_main_wget_area F
+GLIBC_2.2 _IO_switch_to_wbackup_area F
+GLIBC_2.2 _IO_switch_to_wget_mode F
+GLIBC_2.2 _IO_unsave_wmarkers F
+GLIBC_2.2 _IO_wdefault_doallocate F
+GLIBC_2.2 _IO_wdefault_finish F
+GLIBC_2.2 _IO_wdefault_pbackfail F
+GLIBC_2.2 _IO_wdefault_uflow F
+GLIBC_2.2 _IO_wdefault_xsgetn F
+GLIBC_2.2 _IO_wdefault_xsputn F
+GLIBC_2.2 _IO_wdo_write F
+GLIBC_2.2 _IO_wdoallocbuf F
+GLIBC_2.2 _IO_wfile_jumps D 0x54
+GLIBC_2.2 _IO_wfile_overflow F
+GLIBC_2.2 _IO_wfile_seekoff F
+GLIBC_2.2 _IO_wfile_sync F
+GLIBC_2.2 _IO_wfile_underflow F
+GLIBC_2.2 _IO_wfile_xsputn F
+GLIBC_2.2 _IO_wmarker_delta F
+GLIBC_2.2 _IO_wsetb F
+GLIBC_2.2 __assert F
+GLIBC_2.2 __ctype32_tolower D 0x4
+GLIBC_2.2 __ctype32_toupper D 0x4
+GLIBC_2.2 __cyg_profile_func_enter F
+GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __endmntent F
+GLIBC_2.2 __fbufsize F
+GLIBC_2.2 __flbf F
+GLIBC_2.2 __fpending F
+GLIBC_2.2 __fpurge F
+GLIBC_2.2 __freadable F
+GLIBC_2.2 __freading F
+GLIBC_2.2 __fsetlocking F
+GLIBC_2.2 __fwritable F
+GLIBC_2.2 __fwriting F
+GLIBC_2.2 __fxstat64 F
+GLIBC_2.2 __getmntent_r F
+GLIBC_2.2 __lxstat64 F
+GLIBC_2.2 __nl_langinfo_l F
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_nclose F
+GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_state F
+GLIBC_2.2 __setmntent F
+GLIBC_2.2 __statfs F
+GLIBC_2.2 __strndup F
+GLIBC_2.2 __sysconf F
+GLIBC_2.2 __sysctl F
+GLIBC_2.2 __wctrans_l F
+GLIBC_2.2 __woverflow F
+GLIBC_2.2 __wuflow F
+GLIBC_2.2 __wunderflow F
+GLIBC_2.2 __xpg_sigpause F
+GLIBC_2.2 __xstat64 F
+GLIBC_2.2 _flushlbf F
+GLIBC_2.2 _res_hconf D 0x30
+GLIBC_2.2 alphasort64 F
+GLIBC_2.2 bind_textdomain_codeset F
+GLIBC_2.2 dcngettext F
+GLIBC_2.2 dngettext F
+GLIBC_2.2 fgetpos F
+GLIBC_2.2 fgetpos64 F
+GLIBC_2.2 fgetwc F
+GLIBC_2.2 fgetwc_unlocked F
+GLIBC_2.2 fgetws F
+GLIBC_2.2 fgetws_unlocked F
+GLIBC_2.2 fmemopen F
+GLIBC_2.2 fopencookie F
+GLIBC_2.2 fputwc F
+GLIBC_2.2 fputwc_unlocked F
+GLIBC_2.2 fputws F
+GLIBC_2.2 fputws_unlocked F
+GLIBC_2.2 fsetpos F
+GLIBC_2.2 fsetpos64 F
+GLIBC_2.2 fwide F
+GLIBC_2.2 fwprintf F
+GLIBC_2.2 fwscanf F
+GLIBC_2.2 getdirentries64 F
+GLIBC_2.2 getloadavg F
+GLIBC_2.2 getrlimit F
+GLIBC_2.2 getrlimit64 F
+GLIBC_2.2 getwc F
+GLIBC_2.2 getwc_unlocked F
+GLIBC_2.2 getwchar F
+GLIBC_2.2 getwchar_unlocked F
+GLIBC_2.2 iruserok_af F
+GLIBC_2.2 localeconv F
+GLIBC_2.2 mcheck_check_all F
+GLIBC_2.2 mcheck_pedantic F
+GLIBC_2.2 memrchr F
+GLIBC_2.2 mincore F
+GLIBC_2.2 mkdtemp F
+GLIBC_2.2 mkstemp64 F
+GLIBC_2.2 moncontrol F
+GLIBC_2.2 msgctl F
+GLIBC_2.2 ngettext F
+GLIBC_2.2 posix_fadvise F
+GLIBC_2.2 posix_fadvise64 F
+GLIBC_2.2 posix_fallocate F
+GLIBC_2.2 posix_fallocate64 F
+GLIBC_2.2 posix_madvise F
+GLIBC_2.2 posix_memalign F
+GLIBC_2.2 posix_spawn F
+GLIBC_2.2 posix_spawn_file_actions_addclose F
+GLIBC_2.2 posix_spawn_file_actions_adddup2 F
+GLIBC_2.2 posix_spawn_file_actions_addopen F
+GLIBC_2.2 posix_spawn_file_actions_destroy F
+GLIBC_2.2 posix_spawn_file_actions_init F
+GLIBC_2.2 posix_spawnattr_destroy F
+GLIBC_2.2 posix_spawnattr_getflags F
+GLIBC_2.2 posix_spawnattr_getpgroup F
+GLIBC_2.2 posix_spawnattr_getschedparam F
+GLIBC_2.2 posix_spawnattr_getschedpolicy F
+GLIBC_2.2 posix_spawnattr_getsigdefault F
+GLIBC_2.2 posix_spawnattr_getsigmask F
+GLIBC_2.2 posix_spawnattr_init F
+GLIBC_2.2 posix_spawnattr_setflags F
+GLIBC_2.2 posix_spawnattr_setpgroup F
+GLIBC_2.2 posix_spawnattr_setschedparam F
+GLIBC_2.2 posix_spawnattr_setschedpolicy F
+GLIBC_2.2 posix_spawnattr_setsigdefault F
+GLIBC_2.2 posix_spawnattr_setsigmask F
+GLIBC_2.2 posix_spawnp F
+GLIBC_2.2 putwc F
+GLIBC_2.2 putwc_unlocked F
+GLIBC_2.2 putwchar F
+GLIBC_2.2 putwchar_unlocked F
+GLIBC_2.2 rcmd_af F
+GLIBC_2.2 readdir64 F
+GLIBC_2.2 readdir64_r F
+GLIBC_2.2 rexec_af F
+GLIBC_2.2 rresvport_af F
+GLIBC_2.2 ruserok_af F
+GLIBC_2.2 scandir64 F
+GLIBC_2.2 semctl F
+GLIBC_2.2 setrlimit F
+GLIBC_2.2 shmctl F
+GLIBC_2.2 svc_getreq_common F
+GLIBC_2.2 svc_getreq_poll F
+GLIBC_2.2 svc_max_pollfd D 0x4
+GLIBC_2.2 svc_pollfd D 0x4
+GLIBC_2.2 swprintf F
+GLIBC_2.2 swscanf F
+GLIBC_2.2 ungetwc F
+GLIBC_2.2 versionsort64 F
+GLIBC_2.2 vfwprintf F
+GLIBC_2.2 vfwscanf F
+GLIBC_2.2 vswprintf F
+GLIBC_2.2 vswscanf F
+GLIBC_2.2 vwprintf F
+GLIBC_2.2 vwscanf F
+GLIBC_2.2 wcschrnul F
+GLIBC_2.2 wcsftime F
+GLIBC_2.2 wmempcpy F
+GLIBC_2.2 wprintf F
+GLIBC_2.2 wscanf F
+GLIBC_2.2.1 GLIBC_2.2.1 A
+GLIBC_2.2.1 pivot_root F
+GLIBC_2.2.1 posix_openpt F
+GLIBC_2.2.2 GLIBC_2.2.2 A
+GLIBC_2.2.2 __nss_hostname_digits_dots F
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 __rpc_thread_createerr F
+GLIBC_2.2.3 __rpc_thread_svc_fdset F
+GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
+GLIBC_2.2.3 __rpc_thread_svc_pollfd F
+GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 sprofil F
+GLIBC_2.2.4 GLIBC_2.2.4 A
+GLIBC_2.2.4 dl_iterate_phdr F
+GLIBC_2.2.4 getgrouplist F
+GLIBC_2.2.4 sockatmark F
+GLIBC_2.2.6 GLIBC_2.2.6 A
+GLIBC_2.2.6 __nanosleep F
+GLIBC_2.22 GLIBC_2.22 A
+GLIBC_2.22 fmemopen F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 fts64_children F
+GLIBC_2.23 fts64_close F
+GLIBC_2.23 fts64_open F
+GLIBC_2.23 fts64_read F
+GLIBC_2.23 fts64_set F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 quick_exit F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __explicit_bzero_chk F
+GLIBC_2.25 explicit_bzero F
+GLIBC_2.25 getentropy F
+GLIBC_2.25 getrandom F
+GLIBC_2.25 strfromd F
+GLIBC_2.25 strfromf F
+GLIBC_2.25 strfroml F
+GLIBC_2.26 GLIBC_2.26 A
+GLIBC_2.26 preadv2 F
+GLIBC_2.26 preadv64v2 F
+GLIBC_2.26 pwritev2 F
+GLIBC_2.26 pwritev64v2 F
+GLIBC_2.26 reallocarray F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 __ctype_b_loc F
+GLIBC_2.3 __ctype_tolower_loc F
+GLIBC_2.3 __ctype_toupper_loc F
+GLIBC_2.3 __isctype F
+GLIBC_2.3 __strftime_l F
+GLIBC_2.3 __uselocale F
+GLIBC_2.3 __wcsftime_l F
+GLIBC_2.3 _sys_errlist D 0x1f8
+GLIBC_2.3 _sys_nerr D 0x4
+GLIBC_2.3 duplocale F
+GLIBC_2.3 fgetxattr F
+GLIBC_2.3 flistxattr F
+GLIBC_2.3 freeifaddrs F
+GLIBC_2.3 freelocale F
+GLIBC_2.3 fremovexattr F
+GLIBC_2.3 fsetxattr F
+GLIBC_2.3 futimes F
+GLIBC_2.3 getifaddrs F
+GLIBC_2.3 getxattr F
+GLIBC_2.3 isalnum_l F
+GLIBC_2.3 isalpha_l F
+GLIBC_2.3 isblank_l F
+GLIBC_2.3 iscntrl_l F
+GLIBC_2.3 isctype F
+GLIBC_2.3 isdigit_l F
+GLIBC_2.3 isgraph_l F
+GLIBC_2.3 islower_l F
+GLIBC_2.3 isprint_l F
+GLIBC_2.3 ispunct_l F
+GLIBC_2.3 isspace_l F
+GLIBC_2.3 isupper_l F
+GLIBC_2.3 iswalnum_l F
+GLIBC_2.3 iswalpha_l F
+GLIBC_2.3 iswblank_l F
+GLIBC_2.3 iswcntrl_l F
+GLIBC_2.3 iswctype_l F
+GLIBC_2.3 iswdigit_l F
+GLIBC_2.3 iswgraph_l F
+GLIBC_2.3 iswlower_l F
+GLIBC_2.3 iswprint_l F
+GLIBC_2.3 iswpunct_l F
+GLIBC_2.3 iswspace_l F
+GLIBC_2.3 iswupper_l F
+GLIBC_2.3 iswxdigit_l F
+GLIBC_2.3 isxdigit_l F
+GLIBC_2.3 lgetxattr F
+GLIBC_2.3 listxattr F
+GLIBC_2.3 llistxattr F
+GLIBC_2.3 lremovexattr F
+GLIBC_2.3 lsetxattr F
+GLIBC_2.3 lutimes F
+GLIBC_2.3 newlocale F
+GLIBC_2.3 nl_langinfo_l F
+GLIBC_2.3 readahead F
+GLIBC_2.3 realpath F
+GLIBC_2.3 removexattr F
+GLIBC_2.3 sendfile64 F
+GLIBC_2.3 setxattr F
+GLIBC_2.3 strcasecmp_l F
+GLIBC_2.3 strcoll_l F
+GLIBC_2.3 strfmon_l F
+GLIBC_2.3 strftime_l F
+GLIBC_2.3 strncasecmp_l F
+GLIBC_2.3 strtod_l F
+GLIBC_2.3 strtof_l F
+GLIBC_2.3 strtol_l F
+GLIBC_2.3 strtold_l F
+GLIBC_2.3 strtoll_l F
+GLIBC_2.3 strtoul_l F
+GLIBC_2.3 strtoull_l F
+GLIBC_2.3 strxfrm_l F
+GLIBC_2.3 sys_errlist D 0x1f8
+GLIBC_2.3 sys_nerr D 0x4
+GLIBC_2.3 tolower_l F
+GLIBC_2.3 toupper_l F
+GLIBC_2.3 towctrans_l F
+GLIBC_2.3 towlower_l F
+GLIBC_2.3 towupper_l F
+GLIBC_2.3 uselocale F
+GLIBC_2.3 wcscasecmp_l F
+GLIBC_2.3 wcscoll_l F
+GLIBC_2.3 wcsftime_l F
+GLIBC_2.3 wcsncasecmp_l F
+GLIBC_2.3 wcstod_l F
+GLIBC_2.3 wcstof_l F
+GLIBC_2.3 wcstol_l F
+GLIBC_2.3 wcstold_l F
+GLIBC_2.3 wcstoll_l F
+GLIBC_2.3 wcstoul_l F
+GLIBC_2.3 wcstoull_l F
+GLIBC_2.3 wcsxfrm_l F
+GLIBC_2.3 wctrans_l F
+GLIBC_2.3 wctype_l F
+GLIBC_2.3.2 GLIBC_2.3.2 A
+GLIBC_2.3.2 __register_atfork F
+GLIBC_2.3.2 epoll_create F
+GLIBC_2.3.2 epoll_ctl F
+GLIBC_2.3.2 epoll_wait F
+GLIBC_2.3.2 lchmod F
+GLIBC_2.3.2 pthread_cond_broadcast F
+GLIBC_2.3.2 pthread_cond_destroy F
+GLIBC_2.3.2 pthread_cond_init F
+GLIBC_2.3.2 pthread_cond_signal F
+GLIBC_2.3.2 pthread_cond_timedwait F
+GLIBC_2.3.2 pthread_cond_wait F
+GLIBC_2.3.2 strptime_l F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 _sys_siglist D 0x104
+GLIBC_2.3.3 gnu_dev_major F
+GLIBC_2.3.3 gnu_dev_makedev F
+GLIBC_2.3.3 gnu_dev_minor F
+GLIBC_2.3.3 inet6_option_alloc F
+GLIBC_2.3.3 inet6_option_append F
+GLIBC_2.3.3 inet6_option_find F
+GLIBC_2.3.3 inet6_option_init F
+GLIBC_2.3.3 inet6_option_next F
+GLIBC_2.3.3 inet6_option_space F
+GLIBC_2.3.3 nftw F
+GLIBC_2.3.3 nftw64 F
+GLIBC_2.3.3 posix_fadvise64 F
+GLIBC_2.3.3 posix_fallocate64 F
+GLIBC_2.3.3 remap_file_pages F
+GLIBC_2.3.3 sched_getaffinity F
+GLIBC_2.3.3 sched_setaffinity F
+GLIBC_2.3.3 semtimedop F
+GLIBC_2.3.3 sys_sigabbrev D 0x104
+GLIBC_2.3.3 sys_siglist D 0x104
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 __chk_fail F
+GLIBC_2.3.4 __fprintf_chk F
+GLIBC_2.3.4 __gets_chk F
+GLIBC_2.3.4 __memcpy_chk F
+GLIBC_2.3.4 __memmove_chk F
+GLIBC_2.3.4 __mempcpy_chk F
+GLIBC_2.3.4 __memset_chk F
+GLIBC_2.3.4 __printf_chk F
+GLIBC_2.3.4 __snprintf_chk F
+GLIBC_2.3.4 __sprintf_chk F
+GLIBC_2.3.4 __stpcpy_chk F
+GLIBC_2.3.4 __strcat_chk F
+GLIBC_2.3.4 __strcpy_chk F
+GLIBC_2.3.4 __strncat_chk F
+GLIBC_2.3.4 __strncpy_chk F
+GLIBC_2.3.4 __vfprintf_chk F
+GLIBC_2.3.4 __vprintf_chk F
+GLIBC_2.3.4 __vsnprintf_chk F
+GLIBC_2.3.4 __vsprintf_chk F
+GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 getipv4sourcefilter F
+GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 regexec F
+GLIBC_2.3.4 sched_getaffinity F
+GLIBC_2.3.4 sched_setaffinity F
+GLIBC_2.3.4 setipv4sourcefilter F
+GLIBC_2.3.4 setsourcefilter F
+GLIBC_2.3.4 xdr_quad_t F
+GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 _IO_fprintf F
+GLIBC_2.4 _IO_printf F
+GLIBC_2.4 _IO_sprintf F
+GLIBC_2.4 _IO_sscanf F
+GLIBC_2.4 _IO_vfprintf F
+GLIBC_2.4 _IO_vfscanf F
+GLIBC_2.4 _IO_vsprintf F
+GLIBC_2.4 __asprintf F
+GLIBC_2.4 __confstr_chk F
+GLIBC_2.4 __fgets_chk F
+GLIBC_2.4 __fgets_unlocked_chk F
+GLIBC_2.4 __fgetws_chk F
+GLIBC_2.4 __fgetws_unlocked_chk F
+GLIBC_2.4 __finitel F
+GLIBC_2.4 __fprintf_chk F
+GLIBC_2.4 __fwprintf_chk F
+GLIBC_2.4 __fxstatat F
+GLIBC_2.4 __fxstatat64 F
+GLIBC_2.4 __getcwd_chk F
+GLIBC_2.4 __getdomainname_chk F
+GLIBC_2.4 __getgroups_chk F
+GLIBC_2.4 __gethostname_chk F
+GLIBC_2.4 __getlogin_r_chk F
+GLIBC_2.4 __getwd_chk F
+GLIBC_2.4 __isinfl F
+GLIBC_2.4 __isnanl F
+GLIBC_2.4 __mbsnrtowcs_chk F
+GLIBC_2.4 __mbsrtowcs_chk F
+GLIBC_2.4 __mbstowcs_chk F
+GLIBC_2.4 __nldbl__IO_fprintf F
+GLIBC_2.4 __nldbl__IO_printf F
+GLIBC_2.4 __nldbl__IO_sprintf F
+GLIBC_2.4 __nldbl__IO_sscanf F
+GLIBC_2.4 __nldbl__IO_vfprintf F
+GLIBC_2.4 __nldbl__IO_vfscanf F
+GLIBC_2.4 __nldbl__IO_vsprintf F
+GLIBC_2.4 __nldbl___asprintf F
+GLIBC_2.4 __nldbl___fprintf_chk F
+GLIBC_2.4 __nldbl___fwprintf_chk F
+GLIBC_2.4 __nldbl___printf_chk F
+GLIBC_2.4 __nldbl___printf_fp F
+GLIBC_2.4 __nldbl___snprintf_chk F
+GLIBC_2.4 __nldbl___sprintf_chk F
+GLIBC_2.4 __nldbl___strfmon_l F
+GLIBC_2.4 __nldbl___swprintf_chk F
+GLIBC_2.4 __nldbl___syslog_chk F
+GLIBC_2.4 __nldbl___vfprintf_chk F
+GLIBC_2.4 __nldbl___vfscanf F
+GLIBC_2.4 __nldbl___vfwprintf_chk F
+GLIBC_2.4 __nldbl___vprintf_chk F
+GLIBC_2.4 __nldbl___vsnprintf F
+GLIBC_2.4 __nldbl___vsnprintf_chk F
+GLIBC_2.4 __nldbl___vsprintf_chk F
+GLIBC_2.4 __nldbl___vsscanf F
+GLIBC_2.4 __nldbl___vstrfmon F
+GLIBC_2.4 __nldbl___vstrfmon_l F
+GLIBC_2.4 __nldbl___vswprintf_chk F
+GLIBC_2.4 __nldbl___vsyslog_chk F
+GLIBC_2.4 __nldbl___vwprintf_chk F
+GLIBC_2.4 __nldbl___wprintf_chk F
+GLIBC_2.4 __nldbl_asprintf F
+GLIBC_2.4 __nldbl_dprintf F
+GLIBC_2.4 __nldbl_fprintf F
+GLIBC_2.4 __nldbl_fscanf F
+GLIBC_2.4 __nldbl_fwprintf F
+GLIBC_2.4 __nldbl_fwscanf F
+GLIBC_2.4 __nldbl_obstack_printf F
+GLIBC_2.4 __nldbl_obstack_vprintf F
+GLIBC_2.4 __nldbl_printf F
+GLIBC_2.4 __nldbl_printf_size F
+GLIBC_2.4 __nldbl_scanf F
+GLIBC_2.4 __nldbl_snprintf F
+GLIBC_2.4 __nldbl_sprintf F
+GLIBC_2.4 __nldbl_sscanf F
+GLIBC_2.4 __nldbl_strfmon F
+GLIBC_2.4 __nldbl_strfmon_l F
+GLIBC_2.4 __nldbl_swprintf F
+GLIBC_2.4 __nldbl_swscanf F
+GLIBC_2.4 __nldbl_syslog F
+GLIBC_2.4 __nldbl_vasprintf F
+GLIBC_2.4 __nldbl_vdprintf F
+GLIBC_2.4 __nldbl_vfprintf F
+GLIBC_2.4 __nldbl_vfscanf F
+GLIBC_2.4 __nldbl_vfwprintf F
+GLIBC_2.4 __nldbl_vfwscanf F
+GLIBC_2.4 __nldbl_vprintf F
+GLIBC_2.4 __nldbl_vscanf F
+GLIBC_2.4 __nldbl_vsnprintf F
+GLIBC_2.4 __nldbl_vsprintf F
+GLIBC_2.4 __nldbl_vsscanf F
+GLIBC_2.4 __nldbl_vswprintf F
+GLIBC_2.4 __nldbl_vswscanf F
+GLIBC_2.4 __nldbl_vsyslog F
+GLIBC_2.4 __nldbl_vwprintf F
+GLIBC_2.4 __nldbl_vwscanf F
+GLIBC_2.4 __nldbl_wprintf F
+GLIBC_2.4 __nldbl_wscanf F
+GLIBC_2.4 __pread64_chk F
+GLIBC_2.4 __pread_chk F
+GLIBC_2.4 __printf_chk F
+GLIBC_2.4 __printf_fp F
+GLIBC_2.4 __ptsname_r_chk F
+GLIBC_2.4 __read_chk F
+GLIBC_2.4 __readlink_chk F
+GLIBC_2.4 __realpath_chk F
+GLIBC_2.4 __recv_chk F
+GLIBC_2.4 __recvfrom_chk F
+GLIBC_2.4 __signbitl F
+GLIBC_2.4 __snprintf_chk F
+GLIBC_2.4 __sprintf_chk F
+GLIBC_2.4 __stack_chk_fail F
+GLIBC_2.4 __stpncpy_chk F
+GLIBC_2.4 __strfmon_l F
+GLIBC_2.4 __strtold_internal F
+GLIBC_2.4 __strtold_l F
+GLIBC_2.4 __swprintf_chk F
+GLIBC_2.4 __syslog_chk F
+GLIBC_2.4 __ttyname_r_chk F
+GLIBC_2.4 __vfprintf_chk F
+GLIBC_2.4 __vfscanf F
+GLIBC_2.4 __vfwprintf_chk F
+GLIBC_2.4 __vprintf_chk F
+GLIBC_2.4 __vsnprintf F
+GLIBC_2.4 __vsnprintf_chk F
+GLIBC_2.4 __vsprintf_chk F
+GLIBC_2.4 __vsscanf F
+GLIBC_2.4 __vswprintf_chk F
+GLIBC_2.4 __vsyslog_chk F
+GLIBC_2.4 __vwprintf_chk F
+GLIBC_2.4 __wcpcpy_chk F
+GLIBC_2.4 __wcpncpy_chk F
+GLIBC_2.4 __wcrtomb_chk F
+GLIBC_2.4 __wcscat_chk F
+GLIBC_2.4 __wcscpy_chk F
+GLIBC_2.4 __wcsncat_chk F
+GLIBC_2.4 __wcsncpy_chk F
+GLIBC_2.4 __wcsnrtombs_chk F
+GLIBC_2.4 __wcsrtombs_chk F
+GLIBC_2.4 __wcstold_internal F
+GLIBC_2.4 __wcstold_l F
+GLIBC_2.4 __wcstombs_chk F
+GLIBC_2.4 __wctomb_chk F
+GLIBC_2.4 __wmemcpy_chk F
+GLIBC_2.4 __wmemmove_chk F
+GLIBC_2.4 __wmempcpy_chk F
+GLIBC_2.4 __wmemset_chk F
+GLIBC_2.4 __wprintf_chk F
+GLIBC_2.4 __xmknodat F
+GLIBC_2.4 _sys_errlist D 0x210
+GLIBC_2.4 _sys_nerr D 0x4
+GLIBC_2.4 asprintf F
+GLIBC_2.4 copysignl F
+GLIBC_2.4 dprintf F
+GLIBC_2.4 eaccess F
+GLIBC_2.4 faccessat F
+GLIBC_2.4 fchmodat F
+GLIBC_2.4 fchownat F
+GLIBC_2.4 fdopendir F
+GLIBC_2.4 finitel F
+GLIBC_2.4 fprintf F
+GLIBC_2.4 frexpl F
+GLIBC_2.4 fscanf F
+GLIBC_2.4 futimesat F
+GLIBC_2.4 fwprintf F
+GLIBC_2.4 fwscanf F
+GLIBC_2.4 inotify_add_watch F
+GLIBC_2.4 inotify_init F
+GLIBC_2.4 inotify_rm_watch F
+GLIBC_2.4 isinfl F
+GLIBC_2.4 isnanl F
+GLIBC_2.4 ldexpl F
+GLIBC_2.4 linkat F
+GLIBC_2.4 mkdirat F
+GLIBC_2.4 mkfifoat F
+GLIBC_2.4 modfl F
+GLIBC_2.4 obstack_printf F
+GLIBC_2.4 obstack_vprintf F
+GLIBC_2.4 open_wmemstream F
+GLIBC_2.4 openat F
+GLIBC_2.4 openat64 F
+GLIBC_2.4 ppoll F
+GLIBC_2.4 printf F
+GLIBC_2.4 printf_size F
+GLIBC_2.4 qecvt F
+GLIBC_2.4 qecvt_r F
+GLIBC_2.4 qfcvt F
+GLIBC_2.4 qfcvt_r F
+GLIBC_2.4 qgcvt F
+GLIBC_2.4 readlinkat F
+GLIBC_2.4 renameat F
+GLIBC_2.4 scalbnl F
+GLIBC_2.4 scanf F
+GLIBC_2.4 snprintf F
+GLIBC_2.4 sprintf F
+GLIBC_2.4 sscanf F
+GLIBC_2.4 strfmon F
+GLIBC_2.4 strfmon_l F
+GLIBC_2.4 strtold F
+GLIBC_2.4 strtold_l F
+GLIBC_2.4 swprintf F
+GLIBC_2.4 swscanf F
+GLIBC_2.4 symlinkat F
+GLIBC_2.4 sys_errlist D 0x210
+GLIBC_2.4 sys_nerr D 0x4
+GLIBC_2.4 syslog F
+GLIBC_2.4 unlinkat F
+GLIBC_2.4 unshare F
+GLIBC_2.4 vasprintf F
+GLIBC_2.4 vdprintf F
+GLIBC_2.4 vfprintf F
+GLIBC_2.4 vfscanf F
+GLIBC_2.4 vfwprintf F
+GLIBC_2.4 vfwscanf F
+GLIBC_2.4 vprintf F
+GLIBC_2.4 vscanf F
+GLIBC_2.4 vsnprintf F
+GLIBC_2.4 vsprintf F
+GLIBC_2.4 vsscanf F
+GLIBC_2.4 vswprintf F
+GLIBC_2.4 vswscanf F
+GLIBC_2.4 vsyslog F
+GLIBC_2.4 vwprintf F
+GLIBC_2.4 vwscanf F
+GLIBC_2.4 wcstold F
+GLIBC_2.4 wcstold_l F
+GLIBC_2.4 wprintf F
+GLIBC_2.4 wscanf F
+GLIBC_2.5 GLIBC_2.5 A
+GLIBC_2.5 __readlinkat_chk F
+GLIBC_2.5 inet6_opt_append F
+GLIBC_2.5 inet6_opt_find F
+GLIBC_2.5 inet6_opt_finish F
+GLIBC_2.5 inet6_opt_get_val F
+GLIBC_2.5 inet6_opt_init F
+GLIBC_2.5 inet6_opt_next F
+GLIBC_2.5 inet6_opt_set_val F
+GLIBC_2.5 inet6_rth_add F
+GLIBC_2.5 inet6_rth_getaddr F
+GLIBC_2.5 inet6_rth_init F
+GLIBC_2.5 inet6_rth_reverse F
+GLIBC_2.5 inet6_rth_segments F
+GLIBC_2.5 inet6_rth_space F
+GLIBC_2.5 splice F
+GLIBC_2.5 tee F
+GLIBC_2.5 vmsplice F
+GLIBC_2.6 GLIBC_2.6 A
+GLIBC_2.6 __sched_cpucount F
+GLIBC_2.6 epoll_pwait F
+GLIBC_2.6 futimens F
+GLIBC_2.6 sched_getcpu F
+GLIBC_2.6 strerror_l F
+GLIBC_2.6 sync_file_range F
+GLIBC_2.6 utimensat F
+GLIBC_2.7 GLIBC_2.7 A
+GLIBC_2.7 __fread_chk F
+GLIBC_2.7 __fread_unlocked_chk F
+GLIBC_2.7 __isoc99_fscanf F
+GLIBC_2.7 __isoc99_fwscanf F
+GLIBC_2.7 __isoc99_scanf F
+GLIBC_2.7 __isoc99_sscanf F
+GLIBC_2.7 __isoc99_swscanf F
+GLIBC_2.7 __isoc99_vfscanf F
+GLIBC_2.7 __isoc99_vfwscanf F
+GLIBC_2.7 __isoc99_vscanf F
+GLIBC_2.7 __isoc99_vsscanf F
+GLIBC_2.7 __isoc99_vswscanf F
+GLIBC_2.7 __isoc99_vwscanf F
+GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __nldbl___isoc99_fscanf F
+GLIBC_2.7 __nldbl___isoc99_fwscanf F
+GLIBC_2.7 __nldbl___isoc99_scanf F
+GLIBC_2.7 __nldbl___isoc99_sscanf F
+GLIBC_2.7 __nldbl___isoc99_swscanf F
+GLIBC_2.7 __nldbl___isoc99_vfscanf F
+GLIBC_2.7 __nldbl___isoc99_vfwscanf F
+GLIBC_2.7 __nldbl___isoc99_vscanf F
+GLIBC_2.7 __nldbl___isoc99_vsscanf F
+GLIBC_2.7 __nldbl___isoc99_vswscanf F
+GLIBC_2.7 __nldbl___isoc99_vwscanf F
+GLIBC_2.7 __nldbl___isoc99_wscanf F
+GLIBC_2.7 __open64_2 F
+GLIBC_2.7 __open_2 F
+GLIBC_2.7 __openat64_2 F
+GLIBC_2.7 __openat_2 F
+GLIBC_2.7 __sched_cpualloc F
+GLIBC_2.7 __sched_cpufree F
+GLIBC_2.7 eventfd F
+GLIBC_2.7 eventfd_read F
+GLIBC_2.7 eventfd_write F
+GLIBC_2.7 mkostemp F
+GLIBC_2.7 mkostemp64 F
+GLIBC_2.7 signalfd F
+GLIBC_2.8 GLIBC_2.8 A
+GLIBC_2.8 __asprintf_chk F
+GLIBC_2.8 __dprintf_chk F
+GLIBC_2.8 __nldbl___asprintf_chk F
+GLIBC_2.8 __nldbl___dprintf_chk F
+GLIBC_2.8 __nldbl___obstack_printf_chk F
+GLIBC_2.8 __nldbl___obstack_vprintf_chk F
+GLIBC_2.8 __nldbl___vasprintf_chk F
+GLIBC_2.8 __nldbl___vdprintf_chk F
+GLIBC_2.8 __obstack_printf_chk F
+GLIBC_2.8 __obstack_vprintf_chk F
+GLIBC_2.8 __vasprintf_chk F
+GLIBC_2.8 __vdprintf_chk F
+GLIBC_2.8 qsort_r F
+GLIBC_2.8 timerfd_create F
+GLIBC_2.8 timerfd_gettime F
+GLIBC_2.8 timerfd_settime F
+GLIBC_2.9 GLIBC_2.9 A
+GLIBC_2.9 dup3 F
+GLIBC_2.9 epoll_create1 F
+GLIBC_2.9 getutent F
+GLIBC_2.9 getutent_r F
+GLIBC_2.9 getutid F
+GLIBC_2.9 getutid_r F
+GLIBC_2.9 getutline F
+GLIBC_2.9 getutline_r F
+GLIBC_2.9 getutmp F
+GLIBC_2.9 getutmpx F
+GLIBC_2.9 getutxent F
+GLIBC_2.9 getutxid F
+GLIBC_2.9 getutxline F
+GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 pipe2 F
+GLIBC_2.9 pututline F
+GLIBC_2.9 pututxline F
+GLIBC_2.9 updwtmp F
+GLIBC_2.9 updwtmpx F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libcrypt.abilist
new file mode 100644
index 0000000000..4db2639336
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libcrypt.abilist
@@ -0,0 +1,8 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 crypt F
+GLIBC_2.0 crypt_r F
+GLIBC_2.0 encrypt F
+GLIBC_2.0 encrypt_r F
+GLIBC_2.0 fcrypt F
+GLIBC_2.0 setkey F
+GLIBC_2.0 setkey_r F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
new file mode 100644
index 0000000000..5536f6e0a9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist
@@ -0,0 +1,14 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 dladdr F
+GLIBC_2.0 dlclose F
+GLIBC_2.0 dlerror F
+GLIBC_2.0 dlopen F
+GLIBC_2.0 dlsym F
+GLIBC_2.1 GLIBC_2.1 A
+GLIBC_2.1 dlopen F
+GLIBC_2.1 dlvsym F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 dlmopen F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
new file mode 100644
index 0000000000..604dff18d4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -0,0 +1,565 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 _LIB_VERSION D 0x4
+GLIBC_2.0 acos F
+GLIBC_2.0 acosf F
+GLIBC_2.0 acosh F
+GLIBC_2.0 acoshf F
+GLIBC_2.0 acoshl F
+GLIBC_2.0 acosl F
+GLIBC_2.0 asin F
+GLIBC_2.0 asinf F
+GLIBC_2.0 asinh F
+GLIBC_2.0 asinhf F
+GLIBC_2.0 asinhl F
+GLIBC_2.0 asinl F
+GLIBC_2.0 atan F
+GLIBC_2.0 atan2 F
+GLIBC_2.0 atan2f F
+GLIBC_2.0 atan2l F
+GLIBC_2.0 atanf F
+GLIBC_2.0 atanh F
+GLIBC_2.0 atanhf F
+GLIBC_2.0 atanhl F
+GLIBC_2.0 atanl F
+GLIBC_2.0 cbrt F
+GLIBC_2.0 cbrtf F
+GLIBC_2.0 cbrtl F
+GLIBC_2.0 ceil F
+GLIBC_2.0 ceilf F
+GLIBC_2.0 ceill F
+GLIBC_2.0 copysign F
+GLIBC_2.0 copysignf F
+GLIBC_2.0 copysignl F
+GLIBC_2.0 cos F
+GLIBC_2.0 cosf F
+GLIBC_2.0 cosh F
+GLIBC_2.0 coshf F
+GLIBC_2.0 coshl F
+GLIBC_2.0 cosl F
+GLIBC_2.0 drem F
+GLIBC_2.0 dremf F
+GLIBC_2.0 dreml F
+GLIBC_2.0 erf F
+GLIBC_2.0 erfc F
+GLIBC_2.0 erfcf F
+GLIBC_2.0 erfcl F
+GLIBC_2.0 erff F
+GLIBC_2.0 erfl F
+GLIBC_2.0 exp F
+GLIBC_2.0 expf F
+GLIBC_2.0 expl F
+GLIBC_2.0 expm1 F
+GLIBC_2.0 expm1f F
+GLIBC_2.0 expm1l F
+GLIBC_2.0 fabs F
+GLIBC_2.0 fabsf F
+GLIBC_2.0 fabsl F
+GLIBC_2.0 finite F
+GLIBC_2.0 finitef F
+GLIBC_2.0 finitel F
+GLIBC_2.0 floor F
+GLIBC_2.0 floorf F
+GLIBC_2.0 floorl F
+GLIBC_2.0 fmod F
+GLIBC_2.0 fmodf F
+GLIBC_2.0 fmodl F
+GLIBC_2.0 frexp F
+GLIBC_2.0 frexpf F
+GLIBC_2.0 frexpl F
+GLIBC_2.0 gamma F
+GLIBC_2.0 gammaf F
+GLIBC_2.0 gammal F
+GLIBC_2.0 hypot F
+GLIBC_2.0 hypotf F
+GLIBC_2.0 hypotl F
+GLIBC_2.0 ilogb F
+GLIBC_2.0 ilogbf F
+GLIBC_2.0 ilogbl F
+GLIBC_2.0 j0 F
+GLIBC_2.0 j0f F
+GLIBC_2.0 j0l F
+GLIBC_2.0 j1 F
+GLIBC_2.0 j1f F
+GLIBC_2.0 j1l F
+GLIBC_2.0 jn F
+GLIBC_2.0 jnf F
+GLIBC_2.0 jnl F
+GLIBC_2.0 ldexp F
+GLIBC_2.0 ldexpf F
+GLIBC_2.0 ldexpl F
+GLIBC_2.0 lgamma F
+GLIBC_2.0 lgamma_r F
+GLIBC_2.0 lgammaf F
+GLIBC_2.0 lgammaf_r F
+GLIBC_2.0 lgammal F
+GLIBC_2.0 lgammal_r F
+GLIBC_2.0 log F
+GLIBC_2.0 log10 F
+GLIBC_2.0 log10f F
+GLIBC_2.0 log10l F
+GLIBC_2.0 log1p F
+GLIBC_2.0 log1pf F
+GLIBC_2.0 log1pl F
+GLIBC_2.0 logb F
+GLIBC_2.0 logbf F
+GLIBC_2.0 logbl F
+GLIBC_2.0 logf F
+GLIBC_2.0 logl F
+GLIBC_2.0 matherr F
+GLIBC_2.0 modf F
+GLIBC_2.0 modff F
+GLIBC_2.0 modfl F
+GLIBC_2.0 nextafter F
+GLIBC_2.0 nextafterf F
+GLIBC_2.0 nextafterl F
+GLIBC_2.0 pow F
+GLIBC_2.0 powf F
+GLIBC_2.0 powl F
+GLIBC_2.0 remainder F
+GLIBC_2.0 remainderf F
+GLIBC_2.0 remainderl F
+GLIBC_2.0 rint F
+GLIBC_2.0 rintf F
+GLIBC_2.0 rintl F
+GLIBC_2.0 scalb F
+GLIBC_2.0 scalbf F
+GLIBC_2.0 scalbl F
+GLIBC_2.0 scalbn F
+GLIBC_2.0 scalbnf F
+GLIBC_2.0 scalbnl F
+GLIBC_2.0 signgam D 0x4
+GLIBC_2.0 significand F
+GLIBC_2.0 significandf F
+GLIBC_2.0 significandl F
+GLIBC_2.0 sin F
+GLIBC_2.0 sinf F
+GLIBC_2.0 sinh F
+GLIBC_2.0 sinhf F
+GLIBC_2.0 sinhl F
+GLIBC_2.0 sinl F
+GLIBC_2.0 sqrt F
+GLIBC_2.0 sqrtf F
+GLIBC_2.0 sqrtl F
+GLIBC_2.0 tan F
+GLIBC_2.0 tanf F
+GLIBC_2.0 tanh F
+GLIBC_2.0 tanhf F
+GLIBC_2.0 tanhl F
+GLIBC_2.0 tanl F
+GLIBC_2.0 y0 F
+GLIBC_2.0 y0f F
+GLIBC_2.0 y0l F
+GLIBC_2.0 y1 F
+GLIBC_2.0 y1f F
+GLIBC_2.0 y1l F
+GLIBC_2.0 yn F
+GLIBC_2.0 ynf F
+GLIBC_2.0 ynl F
+GLIBC_2.1 GLIBC_2.1 A
+GLIBC_2.1 __clog10 F
+GLIBC_2.1 __clog10f F
+GLIBC_2.1 __clog10l F
+GLIBC_2.1 __finite F
+GLIBC_2.1 __finitef F
+GLIBC_2.1 __finitel F
+GLIBC_2.1 __fpclassify F
+GLIBC_2.1 __fpclassifyf F
+GLIBC_2.1 __signbit F
+GLIBC_2.1 __signbitf F
+GLIBC_2.1 cabs F
+GLIBC_2.1 cabsf F
+GLIBC_2.1 cabsl F
+GLIBC_2.1 cacos F
+GLIBC_2.1 cacosf F
+GLIBC_2.1 cacosh F
+GLIBC_2.1 cacoshf F
+GLIBC_2.1 cacoshl F
+GLIBC_2.1 cacosl F
+GLIBC_2.1 carg F
+GLIBC_2.1 cargf F
+GLIBC_2.1 cargl F
+GLIBC_2.1 casin F
+GLIBC_2.1 casinf F
+GLIBC_2.1 casinh F
+GLIBC_2.1 casinhf F
+GLIBC_2.1 casinhl F
+GLIBC_2.1 casinl F
+GLIBC_2.1 catan F
+GLIBC_2.1 catanf F
+GLIBC_2.1 catanh F
+GLIBC_2.1 catanhf F
+GLIBC_2.1 catanhl F
+GLIBC_2.1 catanl F
+GLIBC_2.1 ccos F
+GLIBC_2.1 ccosf F
+GLIBC_2.1 ccosh F
+GLIBC_2.1 ccoshf F
+GLIBC_2.1 ccoshl F
+GLIBC_2.1 ccosl F
+GLIBC_2.1 cexp F
+GLIBC_2.1 cexpf F
+GLIBC_2.1 cexpl F
+GLIBC_2.1 cimag F
+GLIBC_2.1 cimagf F
+GLIBC_2.1 cimagl F
+GLIBC_2.1 clog F
+GLIBC_2.1 clog10 F
+GLIBC_2.1 clog10f F
+GLIBC_2.1 clog10l F
+GLIBC_2.1 clogf F
+GLIBC_2.1 clogl F
+GLIBC_2.1 conj F
+GLIBC_2.1 conjf F
+GLIBC_2.1 conjl F
+GLIBC_2.1 cpow F
+GLIBC_2.1 cpowf F
+GLIBC_2.1 cpowl F
+GLIBC_2.1 cproj F
+GLIBC_2.1 cprojf F
+GLIBC_2.1 cprojl F
+GLIBC_2.1 creal F
+GLIBC_2.1 crealf F
+GLIBC_2.1 creall F
+GLIBC_2.1 csin F
+GLIBC_2.1 csinf F
+GLIBC_2.1 csinh F
+GLIBC_2.1 csinhf F
+GLIBC_2.1 csinhl F
+GLIBC_2.1 csinl F
+GLIBC_2.1 csqrt F
+GLIBC_2.1 csqrtf F
+GLIBC_2.1 csqrtl F
+GLIBC_2.1 ctan F
+GLIBC_2.1 ctanf F
+GLIBC_2.1 ctanh F
+GLIBC_2.1 ctanhf F
+GLIBC_2.1 ctanhl F
+GLIBC_2.1 ctanl F
+GLIBC_2.1 exp10 F
+GLIBC_2.1 exp10f F
+GLIBC_2.1 exp10l F
+GLIBC_2.1 exp2 F
+GLIBC_2.1 exp2f F
+GLIBC_2.1 fdim F
+GLIBC_2.1 fdimf F
+GLIBC_2.1 fdiml F
+GLIBC_2.1 feclearexcept F
+GLIBC_2.1 fegetenv F
+GLIBC_2.1 fegetexceptflag F
+GLIBC_2.1 fegetround F
+GLIBC_2.1 feholdexcept F
+GLIBC_2.1 feraiseexcept F
+GLIBC_2.1 fesetenv F
+GLIBC_2.1 fesetexceptflag F
+GLIBC_2.1 fesetround F
+GLIBC_2.1 fetestexcept F
+GLIBC_2.1 feupdateenv F
+GLIBC_2.1 fma F
+GLIBC_2.1 fmaf F
+GLIBC_2.1 fmal F
+GLIBC_2.1 fmax F
+GLIBC_2.1 fmaxf F
+GLIBC_2.1 fmaxl F
+GLIBC_2.1 fmin F
+GLIBC_2.1 fminf F
+GLIBC_2.1 fminl F
+GLIBC_2.1 llrint F
+GLIBC_2.1 llrintf F
+GLIBC_2.1 llrintl F
+GLIBC_2.1 llround F
+GLIBC_2.1 llroundf F
+GLIBC_2.1 llroundl F
+GLIBC_2.1 log2 F
+GLIBC_2.1 log2f F
+GLIBC_2.1 log2l F
+GLIBC_2.1 lrint F
+GLIBC_2.1 lrintf F
+GLIBC_2.1 lrintl F
+GLIBC_2.1 lround F
+GLIBC_2.1 lroundf F
+GLIBC_2.1 lroundl F
+GLIBC_2.1 nan F
+GLIBC_2.1 nanf F
+GLIBC_2.1 nanl F
+GLIBC_2.1 nearbyint F
+GLIBC_2.1 nearbyintf F
+GLIBC_2.1 nearbyintl F
+GLIBC_2.1 nexttoward F
+GLIBC_2.1 nexttowardf F
+GLIBC_2.1 nexttowardl F
+GLIBC_2.1 pow10 F
+GLIBC_2.1 pow10f F
+GLIBC_2.1 pow10l F
+GLIBC_2.1 remquo F
+GLIBC_2.1 remquof F
+GLIBC_2.1 remquol F
+GLIBC_2.1 round F
+GLIBC_2.1 roundf F
+GLIBC_2.1 roundl F
+GLIBC_2.1 scalbln F
+GLIBC_2.1 scalblnf F
+GLIBC_2.1 scalblnl F
+GLIBC_2.1 sincos F
+GLIBC_2.1 sincosf F
+GLIBC_2.1 sincosl F
+GLIBC_2.1 tgamma F
+GLIBC_2.1 tgammaf F
+GLIBC_2.1 tgammal F
+GLIBC_2.1 trunc F
+GLIBC_2.1 truncf F
+GLIBC_2.1 truncl F
+GLIBC_2.15 GLIBC_2.15 A
+GLIBC_2.15 __acos_finite F
+GLIBC_2.15 __acosf_finite F
+GLIBC_2.15 __acosh_finite F
+GLIBC_2.15 __acoshf_finite F
+GLIBC_2.15 __acoshl_finite F
+GLIBC_2.15 __acosl_finite F
+GLIBC_2.15 __asin_finite F
+GLIBC_2.15 __asinf_finite F
+GLIBC_2.15 __asinl_finite F
+GLIBC_2.15 __atan2_finite F
+GLIBC_2.15 __atan2f_finite F
+GLIBC_2.15 __atan2l_finite F
+GLIBC_2.15 __atanh_finite F
+GLIBC_2.15 __atanhf_finite F
+GLIBC_2.15 __atanhl_finite F
+GLIBC_2.15 __cosh_finite F
+GLIBC_2.15 __coshf_finite F
+GLIBC_2.15 __coshl_finite F
+GLIBC_2.15 __exp10_finite F
+GLIBC_2.15 __exp10f_finite F
+GLIBC_2.15 __exp10l_finite F
+GLIBC_2.15 __exp2_finite F
+GLIBC_2.15 __exp2f_finite F
+GLIBC_2.15 __exp2l_finite F
+GLIBC_2.15 __exp_finite F
+GLIBC_2.15 __expf_finite F
+GLIBC_2.15 __expl_finite F
+GLIBC_2.15 __fmod_finite F
+GLIBC_2.15 __fmodf_finite F
+GLIBC_2.15 __fmodl_finite F
+GLIBC_2.15 __gamma_r_finite F
+GLIBC_2.15 __gammaf_r_finite F
+GLIBC_2.15 __gammal_r_finite F
+GLIBC_2.15 __hypot_finite F
+GLIBC_2.15 __hypotf_finite F
+GLIBC_2.15 __hypotl_finite F
+GLIBC_2.15 __j0_finite F
+GLIBC_2.15 __j0f_finite F
+GLIBC_2.15 __j0l_finite F
+GLIBC_2.15 __j1_finite F
+GLIBC_2.15 __j1f_finite F
+GLIBC_2.15 __j1l_finite F
+GLIBC_2.15 __jn_finite F
+GLIBC_2.15 __jnf_finite F
+GLIBC_2.15 __jnl_finite F
+GLIBC_2.15 __lgamma_r_finite F
+GLIBC_2.15 __lgammaf_r_finite F
+GLIBC_2.15 __lgammal_r_finite F
+GLIBC_2.15 __log10_finite F
+GLIBC_2.15 __log10f_finite F
+GLIBC_2.15 __log10l_finite F
+GLIBC_2.15 __log2_finite F
+GLIBC_2.15 __log2f_finite F
+GLIBC_2.15 __log2l_finite F
+GLIBC_2.15 __log_finite F
+GLIBC_2.15 __logf_finite F
+GLIBC_2.15 __logl_finite F
+GLIBC_2.15 __pow_finite F
+GLIBC_2.15 __powf_finite F
+GLIBC_2.15 __powl_finite F
+GLIBC_2.15 __remainder_finite F
+GLIBC_2.15 __remainderf_finite F
+GLIBC_2.15 __remainderl_finite F
+GLIBC_2.15 __scalb_finite F
+GLIBC_2.15 __scalbf_finite F
+GLIBC_2.15 __scalbl_finite F
+GLIBC_2.15 __sinh_finite F
+GLIBC_2.15 __sinhf_finite F
+GLIBC_2.15 __sinhl_finite F
+GLIBC_2.15 __sqrt_finite F
+GLIBC_2.15 __sqrtf_finite F
+GLIBC_2.15 __sqrtl_finite F
+GLIBC_2.15 __y0_finite F
+GLIBC_2.15 __y0f_finite F
+GLIBC_2.15 __y0l_finite F
+GLIBC_2.15 __y1_finite F
+GLIBC_2.15 __y1f_finite F
+GLIBC_2.15 __y1l_finite F
+GLIBC_2.15 __yn_finite F
+GLIBC_2.15 __ynf_finite F
+GLIBC_2.15 __ynl_finite 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.2 GLIBC_2.2 A
+GLIBC_2.2 fedisableexcept F
+GLIBC_2.2 feenableexcept F
+GLIBC_2.2 fegetexcept 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
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __clog10l F
+GLIBC_2.4 __finitel F
+GLIBC_2.4 __fpclassifyl F
+GLIBC_2.4 __nldbl_nexttowardf F
+GLIBC_2.4 __signbitl F
+GLIBC_2.4 acoshl F
+GLIBC_2.4 acosl F
+GLIBC_2.4 asinhl F
+GLIBC_2.4 asinl F
+GLIBC_2.4 atan2l F
+GLIBC_2.4 atanhl F
+GLIBC_2.4 atanl F
+GLIBC_2.4 cabsl F
+GLIBC_2.4 cacoshl F
+GLIBC_2.4 cacosl F
+GLIBC_2.4 cargl F
+GLIBC_2.4 casinhl F
+GLIBC_2.4 casinl F
+GLIBC_2.4 catanhl F
+GLIBC_2.4 catanl F
+GLIBC_2.4 cbrtl F
+GLIBC_2.4 ccoshl F
+GLIBC_2.4 ccosl F
+GLIBC_2.4 ceill F
+GLIBC_2.4 cexpl F
+GLIBC_2.4 cimagl F
+GLIBC_2.4 clog10l F
+GLIBC_2.4 clogl F
+GLIBC_2.4 conjl F
+GLIBC_2.4 copysignl F
+GLIBC_2.4 coshl F
+GLIBC_2.4 cosl F
+GLIBC_2.4 cpowl F
+GLIBC_2.4 cprojl F
+GLIBC_2.4 creall F
+GLIBC_2.4 csinhl F
+GLIBC_2.4 csinl F
+GLIBC_2.4 csqrtl F
+GLIBC_2.4 ctanhl F
+GLIBC_2.4 ctanl F
+GLIBC_2.4 dreml F
+GLIBC_2.4 erfcl F
+GLIBC_2.4 erfl F
+GLIBC_2.4 exp10l F
+GLIBC_2.4 exp2l F
+GLIBC_2.4 expl F
+GLIBC_2.4 expm1l F
+GLIBC_2.4 fabsl F
+GLIBC_2.4 fdiml F
+GLIBC_2.4 finitel F
+GLIBC_2.4 floorl F
+GLIBC_2.4 fmal F
+GLIBC_2.4 fmaxl F
+GLIBC_2.4 fminl F
+GLIBC_2.4 fmodl F
+GLIBC_2.4 frexpl F
+GLIBC_2.4 gammal F
+GLIBC_2.4 hypotl F
+GLIBC_2.4 ilogbl F
+GLIBC_2.4 j0l F
+GLIBC_2.4 j1l F
+GLIBC_2.4 jnl F
+GLIBC_2.4 ldexpl F
+GLIBC_2.4 lgammal F
+GLIBC_2.4 lgammal_r F
+GLIBC_2.4 llrintl F
+GLIBC_2.4 llroundl F
+GLIBC_2.4 log10l F
+GLIBC_2.4 log1pl F
+GLIBC_2.4 log2l F
+GLIBC_2.4 logbl F
+GLIBC_2.4 logl F
+GLIBC_2.4 lrintl F
+GLIBC_2.4 lroundl F
+GLIBC_2.4 modfl F
+GLIBC_2.4 nanl F
+GLIBC_2.4 nearbyintl F
+GLIBC_2.4 nextafterl F
+GLIBC_2.4 nexttoward F
+GLIBC_2.4 nexttowardf F
+GLIBC_2.4 nexttowardl F
+GLIBC_2.4 pow10l F
+GLIBC_2.4 powl F
+GLIBC_2.4 remainderl F
+GLIBC_2.4 remquol F
+GLIBC_2.4 rintl F
+GLIBC_2.4 roundl F
+GLIBC_2.4 scalbl F
+GLIBC_2.4 scalblnl F
+GLIBC_2.4 scalbnl F
+GLIBC_2.4 significandl F
+GLIBC_2.4 sincosl F
+GLIBC_2.4 sinhl F
+GLIBC_2.4 sinl F
+GLIBC_2.4 sqrtl F
+GLIBC_2.4 tanhl F
+GLIBC_2.4 tanl F
+GLIBC_2.4 tgammal F
+GLIBC_2.4 truncl F
+GLIBC_2.4 y0l F
+GLIBC_2.4 y1l F
+GLIBC_2.4 ynl F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libnsl.abilist
new file mode 100644
index 0000000000..a23db2aeaf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libnsl.abilist
@@ -0,0 +1,124 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 __yp_check F
+GLIBC_2.0 xdr_domainname F
+GLIBC_2.0 xdr_keydat F
+GLIBC_2.0 xdr_mapname F
+GLIBC_2.0 xdr_peername F
+GLIBC_2.0 xdr_valdat F
+GLIBC_2.0 xdr_yp_buf F
+GLIBC_2.0 xdr_ypbind_binding F
+GLIBC_2.0 xdr_ypbind_resp F
+GLIBC_2.0 xdr_ypbind_resptype F
+GLIBC_2.0 xdr_ypbind_setdom F
+GLIBC_2.0 xdr_ypdelete_args F
+GLIBC_2.0 xdr_ypmap_parms F
+GLIBC_2.0 xdr_ypmaplist F
+GLIBC_2.0 xdr_yppush_status F
+GLIBC_2.0 xdr_yppushresp_xfr F
+GLIBC_2.0 xdr_ypreq_key F
+GLIBC_2.0 xdr_ypreq_nokey F
+GLIBC_2.0 xdr_ypreq_xfr F
+GLIBC_2.0 xdr_ypresp_all F
+GLIBC_2.0 xdr_ypresp_key_val F
+GLIBC_2.0 xdr_ypresp_maplist F
+GLIBC_2.0 xdr_ypresp_master F
+GLIBC_2.0 xdr_ypresp_order F
+GLIBC_2.0 xdr_ypresp_val F
+GLIBC_2.0 xdr_ypresp_xfr F
+GLIBC_2.0 xdr_ypstat F
+GLIBC_2.0 xdr_ypupdate_args F
+GLIBC_2.0 xdr_ypxfrstat F
+GLIBC_2.0 yp_all F
+GLIBC_2.0 yp_bind F
+GLIBC_2.0 yp_first F
+GLIBC_2.0 yp_get_default_domain F
+GLIBC_2.0 yp_maplist F
+GLIBC_2.0 yp_master F
+GLIBC_2.0 yp_match F
+GLIBC_2.0 yp_next F
+GLIBC_2.0 yp_order F
+GLIBC_2.0 yp_unbind F
+GLIBC_2.0 yp_update F
+GLIBC_2.0 ypbinderr_string F
+GLIBC_2.0 yperr_string F
+GLIBC_2.0 ypprot_err F
+GLIBC_2.1 GLIBC_2.1 A
+GLIBC_2.1 __free_fdresult F
+GLIBC_2.1 __nis_default_access F
+GLIBC_2.1 __nis_default_group F
+GLIBC_2.1 __nis_default_owner F
+GLIBC_2.1 __nis_default_ttl F
+GLIBC_2.1 __nis_finddirectory F
+GLIBC_2.1 __nis_hash F
+GLIBC_2.1 __nisbind_connect F
+GLIBC_2.1 __nisbind_create F
+GLIBC_2.1 __nisbind_destroy F
+GLIBC_2.1 __nisbind_next F
+GLIBC_2.1 nis_add F
+GLIBC_2.1 nis_add_entry F
+GLIBC_2.1 nis_addmember F
+GLIBC_2.1 nis_checkpoint F
+GLIBC_2.1 nis_clone_directory F
+GLIBC_2.1 nis_clone_object F
+GLIBC_2.1 nis_clone_result F
+GLIBC_2.1 nis_creategroup F
+GLIBC_2.1 nis_destroy_object F
+GLIBC_2.1 nis_destroygroup F
+GLIBC_2.1 nis_dir_cmp F
+GLIBC_2.1 nis_domain_of F
+GLIBC_2.1 nis_domain_of_r F
+GLIBC_2.1 nis_first_entry F
+GLIBC_2.1 nis_free_directory F
+GLIBC_2.1 nis_free_object F
+GLIBC_2.1 nis_free_request F
+GLIBC_2.1 nis_freenames F
+GLIBC_2.1 nis_freeresult F
+GLIBC_2.1 nis_freeservlist F
+GLIBC_2.1 nis_freetags F
+GLIBC_2.1 nis_getnames F
+GLIBC_2.1 nis_getservlist F
+GLIBC_2.1 nis_ismember F
+GLIBC_2.1 nis_leaf_of F
+GLIBC_2.1 nis_leaf_of_r F
+GLIBC_2.1 nis_lerror F
+GLIBC_2.1 nis_list F
+GLIBC_2.1 nis_local_directory F
+GLIBC_2.1 nis_local_group F
+GLIBC_2.1 nis_local_host F
+GLIBC_2.1 nis_local_principal F
+GLIBC_2.1 nis_lookup F
+GLIBC_2.1 nis_mkdir F
+GLIBC_2.1 nis_modify F
+GLIBC_2.1 nis_modify_entry F
+GLIBC_2.1 nis_name_of F
+GLIBC_2.1 nis_name_of_r F
+GLIBC_2.1 nis_next_entry F
+GLIBC_2.1 nis_perror F
+GLIBC_2.1 nis_ping F
+GLIBC_2.1 nis_print_directory F
+GLIBC_2.1 nis_print_entry F
+GLIBC_2.1 nis_print_group F
+GLIBC_2.1 nis_print_group_entry F
+GLIBC_2.1 nis_print_link F
+GLIBC_2.1 nis_print_object F
+GLIBC_2.1 nis_print_result F
+GLIBC_2.1 nis_print_rights F
+GLIBC_2.1 nis_print_table F
+GLIBC_2.1 nis_read_obj F
+GLIBC_2.1 nis_remove F
+GLIBC_2.1 nis_remove_entry F
+GLIBC_2.1 nis_removemember F
+GLIBC_2.1 nis_rmdir F
+GLIBC_2.1 nis_servstate F
+GLIBC_2.1 nis_sperrno F
+GLIBC_2.1 nis_sperror F
+GLIBC_2.1 nis_sperror_r F
+GLIBC_2.1 nis_stats F
+GLIBC_2.1 nis_verifygroup F
+GLIBC_2.1 nis_write_obj F
+GLIBC_2.1 readColdStartFile F
+GLIBC_2.1 writeColdStartFile F
+GLIBC_2.1 xdr_cback_data F
+GLIBC_2.1 xdr_obj_p F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 xdr_ypall F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
new file mode 100644
index 0000000000..3c5e11aafe
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -0,0 +1,260 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 _IO_flockfile F
+GLIBC_2.0 _IO_ftrylockfile F
+GLIBC_2.0 _IO_funlockfile F
+GLIBC_2.0 __close F
+GLIBC_2.0 __connect F
+GLIBC_2.0 __errno_location F
+GLIBC_2.0 __fcntl F
+GLIBC_2.0 __fork F
+GLIBC_2.0 __h_errno_location F
+GLIBC_2.0 __lseek F
+GLIBC_2.0 __open F
+GLIBC_2.0 __pthread_getspecific F
+GLIBC_2.0 __pthread_key_create F
+GLIBC_2.0 __pthread_mutex_destroy F
+GLIBC_2.0 __pthread_mutex_init F
+GLIBC_2.0 __pthread_mutex_lock F
+GLIBC_2.0 __pthread_mutex_trylock F
+GLIBC_2.0 __pthread_mutex_unlock F
+GLIBC_2.0 __pthread_mutexattr_destroy F
+GLIBC_2.0 __pthread_mutexattr_init F
+GLIBC_2.0 __pthread_mutexattr_settype F
+GLIBC_2.0 __pthread_once F
+GLIBC_2.0 __pthread_setspecific F
+GLIBC_2.0 __read F
+GLIBC_2.0 __send F
+GLIBC_2.0 __sigaction F
+GLIBC_2.0 __wait F
+GLIBC_2.0 __write F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
+GLIBC_2.0 accept F
+GLIBC_2.0 close F
+GLIBC_2.0 connect F
+GLIBC_2.0 fcntl F
+GLIBC_2.0 flockfile F
+GLIBC_2.0 fork F
+GLIBC_2.0 fsync F
+GLIBC_2.0 ftrylockfile F
+GLIBC_2.0 funlockfile F
+GLIBC_2.0 longjmp F
+GLIBC_2.0 lseek F
+GLIBC_2.0 msync F
+GLIBC_2.0 nanosleep F
+GLIBC_2.0 open F
+GLIBC_2.0 pause F
+GLIBC_2.0 pthread_atfork F
+GLIBC_2.0 pthread_attr_destroy F
+GLIBC_2.0 pthread_attr_getdetachstate F
+GLIBC_2.0 pthread_attr_getinheritsched F
+GLIBC_2.0 pthread_attr_getschedparam F
+GLIBC_2.0 pthread_attr_getschedpolicy F
+GLIBC_2.0 pthread_attr_getscope F
+GLIBC_2.0 pthread_attr_init F
+GLIBC_2.0 pthread_attr_setdetachstate F
+GLIBC_2.0 pthread_attr_setinheritsched F
+GLIBC_2.0 pthread_attr_setschedparam F
+GLIBC_2.0 pthread_attr_setschedpolicy F
+GLIBC_2.0 pthread_attr_setscope F
+GLIBC_2.0 pthread_cancel F
+GLIBC_2.0 pthread_cond_broadcast F
+GLIBC_2.0 pthread_cond_destroy F
+GLIBC_2.0 pthread_cond_init F
+GLIBC_2.0 pthread_cond_signal F
+GLIBC_2.0 pthread_cond_timedwait F
+GLIBC_2.0 pthread_cond_wait F
+GLIBC_2.0 pthread_condattr_destroy F
+GLIBC_2.0 pthread_condattr_init F
+GLIBC_2.0 pthread_create F
+GLIBC_2.0 pthread_detach F
+GLIBC_2.0 pthread_equal F
+GLIBC_2.0 pthread_exit F
+GLIBC_2.0 pthread_getschedparam F
+GLIBC_2.0 pthread_getspecific F
+GLIBC_2.0 pthread_join F
+GLIBC_2.0 pthread_key_create F
+GLIBC_2.0 pthread_key_delete F
+GLIBC_2.0 pthread_kill F
+GLIBC_2.0 pthread_kill_other_threads_np F
+GLIBC_2.0 pthread_mutex_destroy F
+GLIBC_2.0 pthread_mutex_init F
+GLIBC_2.0 pthread_mutex_lock F
+GLIBC_2.0 pthread_mutex_trylock F
+GLIBC_2.0 pthread_mutex_unlock F
+GLIBC_2.0 pthread_mutexattr_destroy F
+GLIBC_2.0 pthread_mutexattr_getkind_np F
+GLIBC_2.0 pthread_mutexattr_init F
+GLIBC_2.0 pthread_mutexattr_setkind_np F
+GLIBC_2.0 pthread_once F
+GLIBC_2.0 pthread_self F
+GLIBC_2.0 pthread_setcancelstate F
+GLIBC_2.0 pthread_setcanceltype F
+GLIBC_2.0 pthread_setschedparam F
+GLIBC_2.0 pthread_setspecific F
+GLIBC_2.0 pthread_sigmask F
+GLIBC_2.0 pthread_testcancel F
+GLIBC_2.0 raise F
+GLIBC_2.0 read F
+GLIBC_2.0 recv F
+GLIBC_2.0 recvfrom F
+GLIBC_2.0 recvmsg F
+GLIBC_2.0 sem_destroy F
+GLIBC_2.0 sem_getvalue F
+GLIBC_2.0 sem_init F
+GLIBC_2.0 sem_post F
+GLIBC_2.0 sem_trywait F
+GLIBC_2.0 sem_wait F
+GLIBC_2.0 send F
+GLIBC_2.0 sendmsg F
+GLIBC_2.0 sendto F
+GLIBC_2.0 sigaction F
+GLIBC_2.0 siglongjmp F
+GLIBC_2.0 sigwait F
+GLIBC_2.0 system F
+GLIBC_2.0 tcdrain F
+GLIBC_2.0 vfork F
+GLIBC_2.0 wait F
+GLIBC_2.0 waitpid F
+GLIBC_2.0 write F
+GLIBC_2.1 GLIBC_2.1 A
+GLIBC_2.1 __libc_allocate_rtsig F
+GLIBC_2.1 __libc_current_sigrtmax F
+GLIBC_2.1 __libc_current_sigrtmin F
+GLIBC_2.1 pthread_attr_getguardsize F
+GLIBC_2.1 pthread_attr_getstackaddr F
+GLIBC_2.1 pthread_attr_getstacksize F
+GLIBC_2.1 pthread_attr_init F
+GLIBC_2.1 pthread_attr_setguardsize F
+GLIBC_2.1 pthread_attr_setstackaddr F
+GLIBC_2.1 pthread_attr_setstacksize F
+GLIBC_2.1 pthread_create F
+GLIBC_2.1 pthread_getconcurrency F
+GLIBC_2.1 pthread_mutexattr_gettype F
+GLIBC_2.1 pthread_mutexattr_settype F
+GLIBC_2.1 pthread_rwlock_destroy F
+GLIBC_2.1 pthread_rwlock_init F
+GLIBC_2.1 pthread_rwlock_rdlock F
+GLIBC_2.1 pthread_rwlock_tryrdlock F
+GLIBC_2.1 pthread_rwlock_trywrlock F
+GLIBC_2.1 pthread_rwlock_unlock F
+GLIBC_2.1 pthread_rwlock_wrlock F
+GLIBC_2.1 pthread_rwlockattr_destroy F
+GLIBC_2.1 pthread_rwlockattr_getkind_np F
+GLIBC_2.1 pthread_rwlockattr_getpshared F
+GLIBC_2.1 pthread_rwlockattr_init F
+GLIBC_2.1 pthread_rwlockattr_setkind_np F
+GLIBC_2.1 pthread_rwlockattr_setpshared F
+GLIBC_2.1 pthread_setconcurrency F
+GLIBC_2.1 sem_destroy F
+GLIBC_2.1 sem_getvalue F
+GLIBC_2.1 sem_init F
+GLIBC_2.1 sem_post F
+GLIBC_2.1 sem_trywait F
+GLIBC_2.1 sem_wait F
+GLIBC_2.1.1 GLIBC_2.1.1 A
+GLIBC_2.1.1 sem_close F
+GLIBC_2.1.1 sem_open F
+GLIBC_2.1.1 sem_unlink F
+GLIBC_2.1.2 GLIBC_2.1.2 A
+GLIBC_2.1.2 __vfork F
+GLIBC_2.11 GLIBC_2.11 A
+GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 pthread_getname_np F
+GLIBC_2.12 pthread_mutex_consistent F
+GLIBC_2.12 pthread_mutexattr_getrobust F
+GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
+GLIBC_2.19 GLIBC_2.19 A
+GLIBC_2.19 longjmp F
+GLIBC_2.19 siglongjmp F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __pread64 F
+GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
+GLIBC_2.2 __pthread_rwlock_rdlock F
+GLIBC_2.2 __pthread_rwlock_tryrdlock F
+GLIBC_2.2 __pthread_rwlock_trywrlock F
+GLIBC_2.2 __pthread_rwlock_unlock F
+GLIBC_2.2 __pthread_rwlock_wrlock F
+GLIBC_2.2 __pwrite64 F
+GLIBC_2.2 __res_state F
+GLIBC_2.2 lseek64 F
+GLIBC_2.2 open64 F
+GLIBC_2.2 pread F
+GLIBC_2.2 pread64 F
+GLIBC_2.2 pthread_attr_getstack F
+GLIBC_2.2 pthread_attr_setstack F
+GLIBC_2.2 pthread_barrier_destroy F
+GLIBC_2.2 pthread_barrier_init F
+GLIBC_2.2 pthread_barrier_wait F
+GLIBC_2.2 pthread_barrierattr_destroy F
+GLIBC_2.2 pthread_barrierattr_init F
+GLIBC_2.2 pthread_barrierattr_setpshared F
+GLIBC_2.2 pthread_condattr_getpshared F
+GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_getcpuclockid F
+GLIBC_2.2 pthread_mutex_timedlock F
+GLIBC_2.2 pthread_mutexattr_getpshared F
+GLIBC_2.2 pthread_mutexattr_setpshared F
+GLIBC_2.2 pthread_rwlock_timedrdlock F
+GLIBC_2.2 pthread_rwlock_timedwrlock F
+GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_lock F
+GLIBC_2.2 pthread_spin_trylock F
+GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_yield F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
+GLIBC_2.2 sem_timedwait F
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 pthread_getattr_np F
+GLIBC_2.2.6 GLIBC_2.2.6 A
+GLIBC_2.2.6 __nanosleep F
+GLIBC_2.3.2 GLIBC_2.3.2 A
+GLIBC_2.3.2 pthread_cond_broadcast F
+GLIBC_2.3.2 pthread_cond_destroy F
+GLIBC_2.3.2 pthread_cond_init F
+GLIBC_2.3.2 pthread_cond_signal F
+GLIBC_2.3.2 pthread_cond_timedwait F
+GLIBC_2.3.2 pthread_cond_wait F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_register_cancel F
+GLIBC_2.3.3 __pthread_register_cancel_defer F
+GLIBC_2.3.3 __pthread_unregister_cancel F
+GLIBC_2.3.3 __pthread_unregister_cancel_restore F
+GLIBC_2.3.3 __pthread_unwind_next F
+GLIBC_2.3.3 pthread_attr_getaffinity_np F
+GLIBC_2.3.3 pthread_attr_setaffinity_np F
+GLIBC_2.3.3 pthread_barrierattr_getpshared F
+GLIBC_2.3.3 pthread_condattr_getclock F
+GLIBC_2.3.3 pthread_condattr_setclock F
+GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 pthread_attr_getaffinity_np F
+GLIBC_2.3.4 pthread_attr_setaffinity_np F
+GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 pthread_mutex_consistent_np F
+GLIBC_2.4 pthread_mutex_getprioceiling F
+GLIBC_2.4 pthread_mutex_setprioceiling F
+GLIBC_2.4 pthread_mutexattr_getprioceiling F
+GLIBC_2.4 pthread_mutexattr_getprotocol F
+GLIBC_2.4 pthread_mutexattr_getrobust_np F
+GLIBC_2.4 pthread_mutexattr_setprioceiling F
+GLIBC_2.4 pthread_mutexattr_setprotocol F
+GLIBC_2.4 pthread_mutexattr_setrobust_np F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
new file mode 100644
index 0000000000..4d50e7c8c6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist
@@ -0,0 +1,100 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 __b64_ntop F
+GLIBC_2.0 __b64_pton F
+GLIBC_2.0 __dn_comp F
+GLIBC_2.0 __dn_count_labels F
+GLIBC_2.0 __dn_skipname F
+GLIBC_2.0 __fp_nquery F
+GLIBC_2.0 __fp_query F
+GLIBC_2.0 __fp_resstat F
+GLIBC_2.0 __hostalias F
+GLIBC_2.0 __loc_aton F
+GLIBC_2.0 __loc_ntoa F
+GLIBC_2.0 __p_cdname F
+GLIBC_2.0 __p_cdnname F
+GLIBC_2.0 __p_class F
+GLIBC_2.0 __p_class_syms D 0x54
+GLIBC_2.0 __p_fqname F
+GLIBC_2.0 __p_fqnname F
+GLIBC_2.0 __p_option F
+GLIBC_2.0 __p_query F
+GLIBC_2.0 __p_secstodate F
+GLIBC_2.0 __p_time F
+GLIBC_2.0 __p_type F
+GLIBC_2.0 __p_type_syms D 0x228
+GLIBC_2.0 __putlong F
+GLIBC_2.0 __putshort F
+GLIBC_2.0 __res_close F
+GLIBC_2.0 __res_dnok F
+GLIBC_2.0 __res_hnok F
+GLIBC_2.0 __res_isourserver F
+GLIBC_2.0 __res_mailok F
+GLIBC_2.0 __res_nameinquery F
+GLIBC_2.0 __res_ownok F
+GLIBC_2.0 __res_queriesmatch F
+GLIBC_2.0 __res_send F
+GLIBC_2.0 __sym_ntop F
+GLIBC_2.0 __sym_ntos F
+GLIBC_2.0 __sym_ston F
+GLIBC_2.0 _gethtbyaddr F
+GLIBC_2.0 _gethtbyname F
+GLIBC_2.0 _gethtbyname2 F
+GLIBC_2.0 _gethtent F
+GLIBC_2.0 _getlong F
+GLIBC_2.0 _getshort F
+GLIBC_2.0 _res_opcodes D 0x40
+GLIBC_2.0 _sethtent F
+GLIBC_2.0 dn_expand F
+GLIBC_2.0 inet_net_ntop F
+GLIBC_2.0 inet_net_pton F
+GLIBC_2.0 inet_neta F
+GLIBC_2.0 res_gethostbyaddr F
+GLIBC_2.0 res_gethostbyname F
+GLIBC_2.0 res_gethostbyname2 F
+GLIBC_2.0 res_mkquery F
+GLIBC_2.0 res_query F
+GLIBC_2.0 res_querydomain F
+GLIBC_2.0 res_search F
+GLIBC_2.0 res_send_setqhook F
+GLIBC_2.0 res_send_setrhook F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __dn_expand F
+GLIBC_2.2 __res_hostalias F
+GLIBC_2.2 __res_mkquery F
+GLIBC_2.2 __res_nmkquery F
+GLIBC_2.2 __res_nquery F
+GLIBC_2.2 __res_nquerydomain F
+GLIBC_2.2 __res_nsearch F
+GLIBC_2.2 __res_nsend F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
+GLIBC_2.2 __res_search F
+GLIBC_2.3.2 GLIBC_2.3.2 A
+GLIBC_2.3.2 __p_rcode F
+GLIBC_2.9 GLIBC_2.9 A
+GLIBC_2.9 ns_datetosecs F
+GLIBC_2.9 ns_format_ttl F
+GLIBC_2.9 ns_get16 F
+GLIBC_2.9 ns_get32 F
+GLIBC_2.9 ns_initparse F
+GLIBC_2.9 ns_makecanon F
+GLIBC_2.9 ns_msg_getflag F
+GLIBC_2.9 ns_name_compress F
+GLIBC_2.9 ns_name_ntol F
+GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
+GLIBC_2.9 ns_name_pton F
+GLIBC_2.9 ns_name_rollback F
+GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
+GLIBC_2.9 ns_name_unpack F
+GLIBC_2.9 ns_parse_ttl F
+GLIBC_2.9 ns_parserr F
+GLIBC_2.9 ns_put16 F
+GLIBC_2.9 ns_put32 F
+GLIBC_2.9 ns_samedomain F
+GLIBC_2.9 ns_samename F
+GLIBC_2.9 ns_skiprr F
+GLIBC_2.9 ns_sprintrr F
+GLIBC_2.9 ns_sprintrrf F
+GLIBC_2.9 ns_subdomain F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
new file mode 100644
index 0000000000..15e4418863
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -0,0 +1,47 @@
+GLIBC_2.1 GLIBC_2.1 A
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
+GLIBC_2.1 aio_error F
+GLIBC_2.1 aio_error64 F
+GLIBC_2.1 aio_fsync F
+GLIBC_2.1 aio_fsync64 F
+GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
+GLIBC_2.1 aio_return F
+GLIBC_2.1 aio_return64 F
+GLIBC_2.1 aio_suspend F
+GLIBC_2.1 aio_suspend64 F
+GLIBC_2.1 aio_write F
+GLIBC_2.1 aio_write64 F
+GLIBC_2.1 lio_listio F
+GLIBC_2.1 lio_listio64 F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 clock_getcpuclockid F
+GLIBC_2.2 clock_getres F
+GLIBC_2.2 clock_gettime F
+GLIBC_2.2 clock_nanosleep F
+GLIBC_2.2 clock_settime F
+GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
+GLIBC_2.2 timer_settime F
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
+GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
+GLIBC_2.7 GLIBC_2.7 A
+GLIBC_2.7 __mq_open_2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libthread_db.abilist
new file mode 100644
index 0000000000..a8a8c2c68d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libthread_db.abilist
@@ -0,0 +1,44 @@
+GLIBC_2.1.3 GLIBC_2.1.3 A
+GLIBC_2.1.3 td_init F
+GLIBC_2.1.3 td_log F
+GLIBC_2.1.3 td_ta_clear_event F
+GLIBC_2.1.3 td_ta_delete F
+GLIBC_2.1.3 td_ta_enable_stats F
+GLIBC_2.1.3 td_ta_event_addr F
+GLIBC_2.1.3 td_ta_event_getmsg F
+GLIBC_2.1.3 td_ta_get_nthreads F
+GLIBC_2.1.3 td_ta_get_ph F
+GLIBC_2.1.3 td_ta_get_stats F
+GLIBC_2.1.3 td_ta_map_id2thr F
+GLIBC_2.1.3 td_ta_map_lwp2thr F
+GLIBC_2.1.3 td_ta_new F
+GLIBC_2.1.3 td_ta_reset_stats F
+GLIBC_2.1.3 td_ta_set_event F
+GLIBC_2.1.3 td_ta_setconcurrency F
+GLIBC_2.1.3 td_ta_thr_iter F
+GLIBC_2.1.3 td_ta_tsd_iter F
+GLIBC_2.1.3 td_thr_clear_event F
+GLIBC_2.1.3 td_thr_dbresume F
+GLIBC_2.1.3 td_thr_dbsuspend F
+GLIBC_2.1.3 td_thr_event_enable F
+GLIBC_2.1.3 td_thr_event_getmsg F
+GLIBC_2.1.3 td_thr_get_info F
+GLIBC_2.1.3 td_thr_getfpregs F
+GLIBC_2.1.3 td_thr_getgregs F
+GLIBC_2.1.3 td_thr_getxregs F
+GLIBC_2.1.3 td_thr_getxregsize F
+GLIBC_2.1.3 td_thr_set_event F
+GLIBC_2.1.3 td_thr_setfpregs F
+GLIBC_2.1.3 td_thr_setgregs F
+GLIBC_2.1.3 td_thr_setprio F
+GLIBC_2.1.3 td_thr_setsigpending F
+GLIBC_2.1.3 td_thr_setxregs F
+GLIBC_2.1.3 td_thr_sigsetmask F
+GLIBC_2.1.3 td_thr_tsd F
+GLIBC_2.1.3 td_thr_validate F
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 td_symbol_list F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 td_thr_tls_get_addr F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 td_thr_tlsbase F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libutil.abilist
new file mode 100644
index 0000000000..8a99773ccf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/libutil.abilist
@@ -0,0 +1,9 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 forkpty F
+GLIBC_2.0 login F
+GLIBC_2.0 login_tty F
+GLIBC_2.0 logout F
+GLIBC_2.0 logwtmp F
+GLIBC_2.0 openpty F
+GLIBC_2.9 GLIBC_2.9 A
+GLIBC_2.9 login F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/lockf64.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/lockf64.c
new file mode 100644
index 0000000000..a88f5a784a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/lockf64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/lockf64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/login.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/login.c
new file mode 100644
index 0000000000..c9fc8a4845
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/login.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <assert.h>
+#include <errno.h>
+#include <limits.h>
+#include <string.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <utmp.h>
+
+#include "utmp-compat.h"
+
+#undef weak_alias
+#define weak_alias(n,a)
+#define login __login
+#include "login/login.c"
+#undef login
+
+default_symbol_version (__login, login, UTMP_COMPAT_BASE);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/login32.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/login32.c
new file mode 100644
index 0000000000..339b13d900
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/login32.c
@@ -0,0 +1,36 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/types.h>
+#include <utmp.h>
+#include <libc-symbols.h>
+
+#include "utmp32.h"
+#include "utmp-convert.h"
+
+/* Write the given entry into utmp and wtmp. */
+void
+login32 (const struct utmp32 *entry)
+{
+ struct utmp in64;
+
+ utmp_convert32to64 (entry, &in64);
+ login (&in64);
+}
+
+symbol_version (login32, login, GLIBC_2.0);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/lxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/lxstat.c
new file mode 100644
index 0000000000..0efa0aea49
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/lxstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/lxstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c
new file mode 100644
index 0000000000..de828fd8f3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c
@@ -0,0 +1,96 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <libintl.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <ucontext.h>
+
+/* This implementation can handle any ARGC value but only
+ normal integer type parameters. Parameters of type float,
+ double, complex and structure with sizes 0, 2, 4 or 8
+ won't work.
+ makecontext sets up a stack and the registers for the
+ user context. The stack looks like this:
+ size offset
+ %r15 -> +-----------------------+
+ 4 | back chain (zero) | 0
+ 4 | reserved | 4
+ 88 | save area for (*func) | 8
+ +-----------------------+
+ n | overflow parameters | 96
+ +-----------------------+
+ The registers are set up like this:
+ %r2-%r6: parameters 1 to 5
+ %r7 : (*func) pointer
+ %r8 : uc_link from ucontext structure
+ %r9 : address of setcontext
+ %r14 : return address to uc_link trampoline
+ %r15 : stack pointer.
+
+ The trampoline looks like this:
+ basr %r14,%r7
+ lr %r2,%r8
+ br %r9. */
+
+void
+__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
+{
+ extern void __makecontext_ret (void);
+ unsigned long int *sp;
+ va_list ap;
+
+ sp = (unsigned long int *) (((unsigned long int) ucp->uc_stack.ss_sp
+ + ucp->uc_stack.ss_size) & -8L);
+
+ /* Set the return address to trampoline. */
+ ucp->uc_mcontext.gregs[14] = (long int) __makecontext_ret;
+
+ /* Set register parameters. */
+ va_start (ap, argc);
+ for (int i = 0; i < argc && i < 5; ++i)
+ ucp->uc_mcontext.gregs[2 + i] = va_arg (ap, long int);
+
+ /* The remaining arguments go to the overflow area. */
+ if (argc > 5)
+ {
+ sp -= argc - 5;
+ for (int i = 5; i < argc; ++i)
+ sp[i - 5] = va_arg (ap, long int);
+ }
+ va_end (ap);
+
+ /* Make room for the save area and set the backchain. */
+ sp -= 24;
+ *sp = 0;
+
+ /* Pass (*func) to __makecontext_ret in %r7. */
+ ucp->uc_mcontext.gregs[7] = (long int) func;
+
+ /* Pass ucp->uc_link to __makecontext_ret in %r8. */
+ ucp->uc_mcontext.gregs[8] = (long int) ucp->uc_link;
+
+ /* Pass address of setcontext in %r9. */
+ ucp->uc_mcontext.gregs[9] = (long int) &setcontext;
+
+ /* Set stack pointer. */
+ ucp->uc_mcontext.gregs[15] = (long int) sp;
+}
+
+weak_alias (__makecontext, makecontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c
new file mode 100644
index 0000000000..1ca2853b23
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c
@@ -0,0 +1,67 @@
+/* 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 <errno.h>
+#include <fcntl.h>
+#include <sysdep.h>
+
+int __posix_fadvise64_l64 (int fd, off64_t offset, off64_t len, int advise);
+int __posix_fadvise64_l32 (int fd, off64_t offset, size_t len, int advise);
+
+/* Advice the system about the expected behaviour of the application with
+ respect to the file associated with FD. */
+
+struct fadvise64_64_layout
+{
+ int fd;
+ off64_t offset;
+ off64_t len;
+ int advise;
+};
+
+int
+__posix_fadvise64_l64 (int fd, off64_t offset, off64_t len, int advise)
+{
+ struct fadvise64_64_layout parameters;
+ INTERNAL_SYSCALL_DECL (err);
+
+ parameters.fd = fd;
+ parameters.offset = offset;
+ parameters.len = len;
+ parameters.advise = advise;
+ int ret = INTERNAL_SYSCALL (fadvise64_64, err, 1, &parameters);
+ if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
+ return 0;
+ return INTERNAL_SYSCALL_ERRNO (ret, err);
+}
+
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3)
+
+int
+attribute_compat_text_section
+__posix_fadvise64_l32 (int fd, off64_t offset, size_t len, int advise)
+{
+ return __posix_fadvise64_l64 (fd, offset, len, advise);
+}
+
+versioned_symbol (libc, __posix_fadvise64_l64, posix_fadvise64, GLIBC_2_3_3);
+compat_symbol (libc, __posix_fadvise64_l32, posix_fadvise64, GLIBC_2_2);
+#else
+strong_alias (__posix_fadvise64_l64, posix_fadvise64);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/profil-counter.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/profil-counter.h
new file mode 100644
index 0000000000..f84940787f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/profil-counter.h
@@ -0,0 +1,26 @@
+/* Low-level statistical profiling support function. Linux/s390 version.
+ Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <signal.h>
+#include <sigcontextinfo.h>
+
+static void
+__profil_counter (int signo, SIGCONTEXT scp)
+{
+ profil_count((void *) ((unsigned long) GET_PC (scp) & 0x7fffffffUL));
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c
new file mode 100644
index 0000000000..ca88836747
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
+ 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 <utmp.h>
+#include <utmpx.h>
+
+#include "utmp-compat.h"
+
+#undef weak_alias
+#define weak_alias(n,a)
+#define pututxline __pututxline
+#include "login/pututxline.c"
+#undef pututxline
+
+default_symbol_version (__pututxline, pututxline, UTMP_COMPAT_BASE);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/readdir64.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/readdir64.c
new file mode 100644
index 0000000000..2ea26dd409
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/readdir64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/readdir64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/readdir64_r.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/readdir64_r.c
new file mode 100644
index 0000000000..9f54f897e3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/readdir64_r.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/readdir64_r.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/register-dump.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/register-dump.h
new file mode 100644
index 0000000000..8a9ea87688
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/register-dump.h
@@ -0,0 +1,129 @@
+/* Dump registers.
+ Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/uio.h>
+#include <_itoa.h>
+
+/* We will print the register dump in this format:
+
+ GPR0: XXXXXXXX GPR1: XXXXXXXX GPR2: XXXXXXXX GPR3: XXXXXXXX
+ GPR4: XXXXXXXX GPR5: XXXXXXXX GPR6: XXXXXXXX GPR7: XXXXXXXX
+ GPR8: XXXXXXXX GPR9: XXXXXXXX GPRA: XXXXXXXX GPRB: XXXXXXXX
+ GPRC: XXXXXXXX GPRD: XXXXXXXX GPRE: XXXXXXXX GPRF: XXXXXXXX
+
+ PSW.MASK: XXXXXXXX PSW.ADDR: XXXXXXXX
+
+ ST(0) XXXX XXXXXXXXXXXXXXXX ST(1) XXXX XXXXXXXXXXXXXXXX
+ ST(2) XXXX XXXXXXXXXXXXXXXX ST(3) XXXX XXXXXXXXXXXXXXXX
+ ST(4) XXXX XXXXXXXXXXXXXXXX ST(5) XXXX XXXXXXXXXXXXXXXX
+ ST(6) XXXX XXXXXXXXXXXXXXXX ST(7) XXXX XXXXXXXXXXXXXXXX
+
+ */
+
+static void
+hexvalue (unsigned long int value, char *buf, size_t len)
+{
+ char *cp = _itoa_word (value, buf + len, 16, 0);
+ while (cp > buf)
+ *--cp = '0';
+}
+
+static void
+register_dump (int fd, struct sigcontext *ctx)
+{
+ char regs[19][8];
+ struct iovec iov[40];
+ size_t nr = 0;
+
+#define ADD_STRING(str) \
+ iov[nr].iov_base = (char *) str; \
+ iov[nr].iov_len = strlen (str); \
+ ++nr
+#define ADD_MEM(str, len) \
+ iov[nr].iov_base = str; \
+ iov[nr].iov_len = len; \
+ ++nr
+
+ /* Generate strings of register contents. */
+ hexvalue (ctx->sregs->regs.gprs[0], regs[0], 8);
+ hexvalue (ctx->sregs->regs.gprs[1], regs[1], 8);
+ hexvalue (ctx->sregs->regs.gprs[2], regs[2], 8);
+ hexvalue (ctx->sregs->regs.gprs[3], regs[3], 8);
+ hexvalue (ctx->sregs->regs.gprs[4], regs[4], 8);
+ hexvalue (ctx->sregs->regs.gprs[5], regs[5], 8);
+ hexvalue (ctx->sregs->regs.gprs[6], regs[6], 8);
+ hexvalue (ctx->sregs->regs.gprs[7], regs[7], 8);
+ hexvalue (ctx->sregs->regs.gprs[8], regs[8], 8);
+ hexvalue (ctx->sregs->regs.gprs[9], regs[9], 8);
+ hexvalue (ctx->sregs->regs.gprs[10], regs[10], 8);
+ hexvalue (ctx->sregs->regs.gprs[11], regs[11], 8);
+ hexvalue (ctx->sregs->regs.gprs[12], regs[12], 8);
+ hexvalue (ctx->sregs->regs.gprs[13], regs[13], 8);
+ hexvalue (ctx->sregs->regs.gprs[14], regs[14], 8);
+ hexvalue (ctx->sregs->regs.gprs[15], regs[15], 8);
+ hexvalue (ctx->sregs->regs.psw.mask, regs[16], 8);
+ hexvalue (ctx->sregs->regs.psw.addr, regs[17], 8);
+
+ /* Generate the output. */
+ ADD_STRING ("Register dump:\n\n GPR0: ");
+ ADD_MEM (regs[0], 8);
+ ADD_STRING (" GPR1: ");
+ ADD_MEM (regs[1], 8);
+ ADD_STRING (" GPR2: ");
+ ADD_MEM (regs[2], 8);
+ ADD_STRING (" GPR3: ");
+ ADD_MEM (regs[3], 8);
+ ADD_STRING ("\n GPR4: ");
+ ADD_MEM (regs[4], 8);
+ ADD_STRING (" GPR5: ");
+ ADD_MEM (regs[5], 8);
+ ADD_STRING (" GPR6: ");
+ ADD_MEM (regs[6], 8);
+ ADD_STRING (" GPR7: ");
+ ADD_MEM (regs[7], 8);
+ ADD_STRING ("\n GPR8: ");
+ ADD_MEM (regs[8], 8);
+ ADD_STRING (" GPR9: ");
+ ADD_MEM (regs[9], 8);
+ ADD_STRING (" GPRA: ");
+ ADD_MEM (regs[10], 8);
+ ADD_STRING (" GPRB: ");
+ ADD_MEM (regs[11], 8);
+ ADD_STRING ("\n GPRC: ");
+ ADD_MEM (regs[12], 8);
+ ADD_STRING (" GPRD: ");
+ ADD_MEM (regs[13], 8);
+ ADD_STRING (" GPRE: ");
+ ADD_MEM (regs[14], 8);
+ ADD_STRING (" GPRF: ");
+ ADD_MEM (regs[15], 8);
+ ADD_STRING ("\n\n PSW.MASK: ");
+ ADD_MEM (regs[16], 8);
+ ADD_STRING (" PSW.ADDR: ");
+ ADD_MEM (regs[17], 8);
+ ADD_STRING (" TRAP: ");
+ ADD_MEM (regs[18], 4);
+ ADD_STRING ("\n");
+
+ /* Write the stuff out. */
+ writev (fd, iov, nr);
+}
+
+
+#define REGISTER_DUMP register_dump (fd, ctx)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/scandir64.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/scandir64.c
new file mode 100644
index 0000000000..506fd8877c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/scandir64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/scandir64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S
new file mode 100644
index 0000000000..b70eef0cec
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S
@@ -0,0 +1,72 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <features.h>
+
+#include "ucontext_i.h"
+
+/* __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. */
+
+ENTRY(__setcontext)
+ lr %r1,%r2
+
+ /* rt_sigprocmask (SIG_SETMASK, &sc->sc_mask, NULL, sigsetsize). */
+ la %r2,SIG_SETMASK
+ la %r3,SC_MASK(%r1)
+ slr %r4,%r4
+ lhi %r5,_NSIG8
+ svc SYS_ify(rt_sigprocmask)
+
+ /* Load fpu context. */
+ lfpc SC_FPC(%r1)
+ ld %f0,SC_FPRS(%r1)
+ ld %f1,SC_FPRS+8(%r1)
+ ld %f2,SC_FPRS+16(%r1)
+ ld %f3,SC_FPRS+24(%r1)
+ ld %f4,SC_FPRS+32(%r1)
+ ld %f5,SC_FPRS+40(%r1)
+ ld %f6,SC_FPRS+48(%r1)
+ ld %f7,SC_FPRS+56(%r1)
+ ld %f8,SC_FPRS+64(%r1)
+ ld %f9,SC_FPRS+72(%r1)
+ ld %f10,SC_FPRS+80(%r1)
+ ld %f11,SC_FPRS+88(%r1)
+ ld %f12,SC_FPRS+96(%r1)
+ ld %f13,SC_FPRS+104(%r1)
+ ld %f14,SC_FPRS+112(%r1)
+ ld %f15,SC_FPRS+120(%r1)
+
+ /* Don't touch %a0, used for thread purposes. */
+ lam %a1,%a15,SC_ACRS+4(%r1)
+
+ /* Load general purpose registers. */
+ lm %r0,%r15,SC_GPRS(%r1)
+
+ /* Return. */
+ br %r14
+END(__setcontext)
+
+weak_alias (__setcontext, setcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S
new file mode 100644
index 0000000000..f08d30cd7f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S
@@ -0,0 +1,108 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <features.h>
+
+#include "ucontext_i.h"
+
+/* __swapcontext (ucontext_t *oucp, const ucontext_t *ucp)
+
+ Saves the machine context in oucp such that when it is activated,
+ it appears as if __swapcontext() returned again, 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 save anything
+ other than the PRESERVED state. */
+
+ENTRY(__swapcontext)
+ /* While not part of the ABI a system call never clobbers r0
+ or r1. So keeping the values here while calling
+ rt_sigprocmask is ok. */
+ lr %r1,%r2
+ lr %r0,%r3
+
+ /* Store fpu context. */
+ stfpc SC_FPC(%r1)
+ std %f0,SC_FPRS(%r1)
+ std %f1,SC_FPRS+8(%r1)
+ std %f2,SC_FPRS+16(%r1)
+ std %f3,SC_FPRS+24(%r1)
+ std %f4,SC_FPRS+32(%r1)
+ std %f5,SC_FPRS+40(%r1)
+ std %f6,SC_FPRS+48(%r1)
+ std %f7,SC_FPRS+56(%r1)
+ std %f8,SC_FPRS+64(%r1)
+ std %f9,SC_FPRS+72(%r1)
+ std %f10,SC_FPRS+80(%r1)
+ std %f11,SC_FPRS+88(%r1)
+ std %f12,SC_FPRS+96(%r1)
+ std %f13,SC_FPRS+104(%r1)
+ std %f14,SC_FPRS+112(%r1)
+ std %f15,SC_FPRS+120(%r1)
+
+ /* Set __swapcontext return value to 0. */
+ slr %r2,%r2
+
+ /* Store access registers. */
+ stam %a0,%a15,SC_ACRS(%r1)
+
+ /* Store general purpose registers. */
+ stm %r0,%r15,SC_GPRS(%r1)
+
+ /* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, &oucp->uc_sigmask,
+ sigsetsize). */
+ la %r2,SIG_SETMASK
+ lr %r5,%r0
+ la %r3,SC_MASK(%r5)
+ la %r4,SC_MASK(%r1)
+ lhi %r5,_NSIG8
+ svc SYS_ify(rt_sigprocmask)
+
+ /* Load fpu context. */
+ lr %r5,%r0
+ lfpc SC_FPC(%r5)
+ ld %f0,SC_FPRS(%r5)
+ ld %f1,SC_FPRS+8(%r5)
+ ld %f2,SC_FPRS+16(%r5)
+ ld %f3,SC_FPRS+24(%r5)
+ ld %f4,SC_FPRS+32(%r5)
+ ld %f5,SC_FPRS+40(%r5)
+ ld %f6,SC_FPRS+48(%r5)
+ ld %f7,SC_FPRS+56(%r5)
+ ld %f8,SC_FPRS+64(%r5)
+ ld %f9,SC_FPRS+72(%r5)
+ ld %f10,SC_FPRS+80(%r5)
+ ld %f11,SC_FPRS+88(%r5)
+ ld %f12,SC_FPRS+96(%r5)
+ ld %f13,SC_FPRS+104(%r5)
+ ld %f14,SC_FPRS+112(%r5)
+ ld %f15,SC_FPRS+120(%r5)
+
+ /* Don't touch %a0, used for thread purposes. */
+ lam %a1,%a15,SC_ACRS+4(%r5)
+
+ /* Load general purpose registers. */
+ lm %r0,%r15,SC_GPRS(%r5)
+
+ /* Return. */
+ br %r14
+END(__swapcontext)
+weak_alias (__swapcontext, swapcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S
new file mode 100644
index 0000000000..8506db1cc1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S
@@ -0,0 +1,67 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
+ 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>
+
+/* Please consult the file sysdeps/unix/sysv/linux/s390/sysdep.h for
+ more information about the value -4095 used below.*/
+
+ENTRY (syscall)
+ /* Save registers and setup stack. */
+ stm %r6,%r15,24(%r15) /* save registers */
+ cfi_offset (%r15, -36)
+ cfi_offset (%r14, -40)
+ cfi_offset (%r13, -44)
+ cfi_offset (%r12, -48)
+ cfi_offset (%r11, -52)
+ cfi_offset (%r10, -56)
+ cfi_offset (%r9, -60)
+ cfi_offset (%r8, -64)
+ cfi_offset (%r7, -68)
+ cfi_offset (%r6, -72)
+ lr %r1,%r15
+ l %r0,4(0,%r15) /* load eos */
+ ahi %r15,-96 /* buy stack space */
+ cfi_adjust_cfa_offset (96)
+ st %r1,0(0,%r15) /* store back chain */
+ st %r0,4(0,%r15) /* store eos */
+
+ lr %r1,%r2 /* move syscall number */
+ lr %r2,%r3 /* first parameter */
+ lr %r3,%r4 /* second parameter */
+ lr %r4,%r5 /* third parameter */
+ lr %r5,%r6 /* fourth parameter */
+ l %r6,192(%r15) /* fifth parameter */
+ l %r7,196(%r15) /* sixth parameter */
+
+ basr %r8,0
+0: cl %r1,4f-0b(%r8) /* svc number < 256? */
+ jl 2f
+1: svc 0
+ j 3f
+2: ex %r1,1b-0b(%r8) /* lsb of R1 is subsituted as SVC number */
+3: l %r15,0(%r15) /* load back chain */
+ cfi_adjust_cfa_offset (-96)
+ lm %r6,15,24(%r15) /* load registers */
+
+ lhi %r0,-4095
+ clr %r2,%r0 /* check R2 for error */
+ jnl SYSCALL_ERROR_LABEL
+ br %r14 /* return to caller */
+4: .long 256
+PSEUDO_END (syscall)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/syscalls.list
new file mode 100644
index 0000000000..300b13dd01
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/syscalls.list
@@ -0,0 +1,20 @@
+# File name Caller Syscall name Args Strong name Weak names
+
+chown - chown32 i:sii __chown chown@@GLIBC_2.1
+lchown - lchown32 i:sii __lchown lchown@@GLIBC_2.0 chown@GLIBC_2.0
+fchown - fchown32 i:iii __fchown fchown
+
+getegid - getegid32 Ei: __getegid getegid
+geteuid - geteuid32 Ei: __geteuid geteuid
+getgid - getgid32 Ei: __getgid getgid
+getuid - getuid32 Ei: __getuid getuid
+getresgid - getresgid32 i:ppp __getresgid getresgid
+getresuid - getresuid32 i:ppp __getresuid getresuid
+getgroups - getgroups32 i:ip __getgroups getgroups
+
+setfsgid - setfsgid32 Ei:i setfsgid
+setfsuid - setfsuid32 Ei:i setfsuid
+
+prlimit64 EXTRA prlimit64 i:iipp prlimit64
+fanotify_mark EXTRA fanotify_mark i:iiiiis fanotify_mark
+personality EXTRA personality Ei:i __personality personality
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
new file mode 100644
index 0000000000..b1e80bcfcd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
@@ -0,0 +1,139 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <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) \
+ .text; \
+L(pseudo_cancel): \
+ cfi_startproc; \
+ STM_##args \
+ stm %r12,%r15,48(%r15); \
+ cfi_offset (%r15, -36); \
+ cfi_offset (%r14, -40); \
+ cfi_offset (%r13, -44); \
+ cfi_offset (%r12, -48); \
+ lr %r14,%r15; \
+ ahi %r15,-96; \
+ cfi_adjust_cfa_offset (96); \
+ st %r14,0(%r15); \
+ basr %r13,0; \
+0: l %r1,1f-0b(%r13); \
+ bas %r14,0(%r1,%r13); \
+ lr %r0,%r2; \
+ LM_##args \
+ .if SYS_ify (syscall_name) < 256; \
+ svc SYS_ify (syscall_name); \
+ .else; \
+ lhi %r1,SYS_ify (syscall_name); \
+ svc 0; \
+ .endif; \
+ LR7_##args \
+ l %r1,2f-0b(%r13); \
+ lr %r12,%r2; \
+ lr %r2,%r0; \
+ bas %r14,0(%r1,%r13); \
+ lr %r2,%r12; \
+ lm %r12,%r15,48+96(%r15); \
+ cfi_endproc; \
+ j L(pseudo_check); \
+1: .long CENABLE-0b; \
+2: .long CDISABLE-0b; \
+ENTRY(name) \
+ SINGLE_THREAD_P(%r1) \
+ jne L(pseudo_cancel); \
+.type __##syscall_name##_nocancel,@function; \
+.globl __##syscall_name##_nocancel; \
+__##syscall_name##_nocancel: \
+ DO_CALL(syscall_name, args); \
+L(pseudo_check): \
+ lhi %r4,-4095; \
+ clr %r2,%r4; \
+ jnl SYSCALL_ERROR_LABEL; \
+.size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \
+L(pseudo_end):
+
+# if IS_IN (libpthread)
+# define CENABLE __pthread_enable_asynccancel
+# define CDISABLE __pthread_disable_asynccancel
+# elif IS_IN (libc)
+# define CENABLE __libc_enable_asynccancel
+# define CDISABLE __libc_disable_asynccancel
+# elif IS_IN (librt)
+# define CENABLE __librt_enable_asynccancel
+# define CDISABLE __librt_disable_asynccancel
+# else
+# error Unsupported library
+# endif
+
+#define STM_0 /* Nothing */
+#define STM_1 st %r2,8(%r15);
+#define STM_2 stm %r2,%r3,8(%r15);
+#define STM_3 stm %r2,%r4,8(%r15);
+#define STM_4 stm %r2,%r5,8(%r15);
+#define STM_5 stm %r2,%r5,8(%r15);
+#define STM_6 stm %r2,%r7,8(%r15);
+
+#define LM_0 /* Nothing */
+#define LM_1 l %r2,8+96(%r15);
+#define LM_2 lm %r2,%r3,8+96(%r15);
+#define LM_3 lm %r2,%r4,8+96(%r15);
+#define LM_4 lm %r2,%r5,8+96(%r15);
+#define LM_5 lm %r2,%r5,8+96(%r15);
+#define LM_6 lm %r2,%r5,8+96(%r15); \
+ cfi_offset (%r7, -68); \
+ l %r7,96+96(%r15);
+
+#define LR7_0 /* Nothing */
+#define LR7_1 /* Nothing */
+#define LR7_2 /* Nothing */
+#define LR7_3 /* Nothing */
+#define LR7_4 /* Nothing */
+#define LR7_5 /* Nothing */
+#define LR7_6 l %r7,28+96(%r15); \
+ cfi_restore (%r7);
+
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+# else
+# define SINGLE_THREAD_P(reg) \
+ ear reg,%a0; \
+ icm reg,15,MULTIPLE_THREADS_OFFSET(reg);
+# endif
+
+#elif !defined __ASSEMBLER__
+
+# define SINGLE_THREAD_P (1)
+# define NO_CANCELLATION 1
+
+#endif
+
+#ifndef __ASSEMBLER__
+# define RTLD_SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S
new file mode 100644
index 0000000000..e07fd48488
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S
@@ -0,0 +1,74 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
+ 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>
+
+/* The following code is only used in the shared library when we
+ compile the reentrant version. Otherwise each system call defines
+ each own version. */
+
+/* The syscall stubs jump here when they detect an error. */
+
+#undef CALL_MCOUNT
+#define CALL_MCOUNT
+
+ .text
+ENTRY(__syscall_error)
+#ifndef PIC
+# if IS_IN (libc)
+# define SYSCALL_ERROR_ERRNO __libc_errno
+# else
+# define SYSCALL_ERROR_ERRNO errno
+# endif
+ basr %r1,0
+0: l %r1,1f-0b(%r1)
+ ear %r3,%a0
+ lcr %r2,%r2
+ st %r2,0(%r1,%r3)
+ lhi %r2,-1
+ br %r14
+1: .long SYSCALL_ERROR_ERRNO@ntpoff
+#else
+# if RTLD_PRIVATE_ERRNO
+ basr %r1,0
+0: al %r1,1f-0b(%r1)
+ lcr %r2,%r2
+ st %r2,0(%r1)
+ lhi %r2,-1
+ br %r14
+1: .long rtld_errno - 0b
+# else
+# if IS_IN (libc)
+# define SYSCALL_ERROR_ERRNO __libc_errno
+# else
+# define SYSCALL_ERROR_ERRNO errno
+# endif
+ basr %r1,0
+0: al %r1,1f-0b(%r1)
+ ear %r3,%a0
+ l %r1,SYSCALL_ERROR_ERRNO@gotntpoff(%r1)
+ lcr %r2,%r2
+ st %r2,0(%r1,%r3)
+ lhi %r2,-1
+ br %r14
+1: .long _GLOBAL_OFFSET_TABLE_-0b
+# endif
+#endif
+
+END (__syscall_error)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
new file mode 100644
index 0000000000..e56fc3234f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
@@ -0,0 +1,337 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
+ 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_S390_SYSDEP_H
+#define _LINUX_S390_SYSDEP_H
+
+#include <sysdeps/s390/s390-32/sysdep.h>
+#include <sysdeps/unix/sysdep.h>
+#include <sysdeps/unix/sysv/linux/sysdep.h>
+#include <dl-sysdep.h> /* For RTLD_PRIVATE_ERRNO. */
+#include <tls.h>
+
+/* Define __set_errno() for INLINE_SYSCALL macro below. */
+#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. */
+/* in newer 2.1 kernels __NR_syscall is missing so we define it here */
+#define __NR_syscall 0
+
+#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 gpr2 is a real error
+ number. Linus said he will make sure that no syscall returns a value
+ in -1 .. -4095 as a valid result so we can savely test with -4095. */
+
+#undef PSEUDO
+#define PSEUDO(name, syscall_name, args) \
+ .text; \
+ ENTRY (name) \
+ DO_CALL (syscall_name, args); \
+ lhi %r4,-4095 ; \
+ clr %r2,%r4 ; \
+ jnl SYSCALL_ERROR_LABEL
+
+#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)
+
+#undef PSEUDO_ERRVAL
+#define PSEUDO_ERRVAL(name, syscall_name, args) \
+ .text; \
+ ENTRY (name) \
+ DO_CALL (syscall_name, args); \
+ lcr %r2,%r2
+
+#undef PSEUDO_END_ERRVAL
+#define PSEUDO_END_ERRVAL(name) \
+ END (name)
+
+#ifndef PIC
+# define SYSCALL_ERROR_LABEL 0f
+# define SYSCALL_ERROR_HANDLER \
+0: basr %r1,0; \
+1: l %r1,2f-1b(%r1); \
+ br %r1; \
+2: .long syscall_error
+#else
+# if RTLD_PRIVATE_ERRNO
+# define SYSCALL_ERROR_LABEL 0f
+# define SYSCALL_ERROR_HANDLER \
+0: basr %r1,0; \
+1: al %r1,2f-1b(%r1); \
+ lcr %r2,%r2; \
+ st %r2,0(%r1); \
+ lhi %r2,-1; \
+ br %r14; \
+2: .long rtld_errno-1b
+# elif defined _LIBC_REENTRANT
+# if IS_IN (libc)
+# define SYSCALL_ERROR_ERRNO __libc_errno
+# else
+# define SYSCALL_ERROR_ERRNO errno
+# endif
+# define SYSCALL_ERROR_LABEL 0f
+# define SYSCALL_ERROR_HANDLER \
+0: lcr %r0,%r2; \
+ basr %r1,0; \
+1: al %r1,2f-1b(%r1); \
+ l %r1,SYSCALL_ERROR_ERRNO@gotntpoff(%r1); \
+ ear %r2,%a0; \
+ st %r0,0(%r1,%r2); \
+ lhi %r2,-1; \
+ br %r14; \
+2: .long _GLOBAL_OFFSET_TABLE_-1b
+# else
+# define SYSCALL_ERROR_LABEL 0f
+# define SYSCALL_ERROR_HANDLER \
+0: basr %r1,0; \
+1: al %r1,2f-1b(%r1); \
+ l %r1,errno@GOT(%r1); \
+ lcr %r2,%r2; \
+ st %r2,0(%r1); \
+ lhi %r2,-1; \
+ br %r14; \
+2: .long _GLOBAL_OFFSET_TABLE_-1b
+# endif /* _LIBC_REENTRANT */
+#endif /* PIC */
+
+/* Linux takes system call arguments in registers:
+
+ syscall number 1 call-clobbered
+ arg 1 2 call-clobbered
+ arg 2 3 call-clobbered
+ arg 3 4 call-clobbered
+ arg 4 5 call-clobbered
+ arg 5 6 call-saved
+ arg 6 7 call-saved
+
+ (Of course a function with say 3 arguments does not have entries for
+ arguments 4 and 5.)
+ For system calls with 6 parameters a stack operation is required
+ to load the 6th parameter to register 7. Call saved register 7 is
+ moved to register 0 and back to avoid an additional stack frame.
+ */
+
+#define DO_CALL(syscall, args) \
+ .if args > 5; \
+ lr %r0,%r7; \
+ l %r7,96(%r15); \
+ .endif; \
+ .if SYS_ify (syscall) < 256; \
+ svc SYS_ify (syscall); \
+ .else; \
+ lhi %r1,SYS_ify (syscall); \
+ svc 0; \
+ .endif; \
+ .if args > 5; \
+ lr %r7,%r0; \
+ .endif
+
+#define ret \
+ br 14
+
+#define ret_NOERRNO \
+ br 14
+
+#define ret_ERRVAL \
+ br 14
+
+#endif /* __ASSEMBLER__ */
+
+#undef INLINE_SYSCALL
+#define INLINE_SYSCALL(name, nr, args...) \
+ ({ \
+ unsigned int _ret = INTERNAL_SYSCALL (name, , nr, args); \
+ if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (_ret, ))) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (_ret, )); \
+ _ret = 0xffffffff; \
+ } \
+ (int) _ret; })
+
+#undef INTERNAL_SYSCALL_DECL
+#define INTERNAL_SYSCALL_DECL(err) do { } while (0)
+
+#undef INTERNAL_SYSCALL_DIRECT
+#define INTERNAL_SYSCALL_DIRECT(name, err, nr, args...) \
+ ({ \
+ DECLARGS_##nr(args) \
+ register int _ret __asm__("2"); \
+ __asm__ __volatile__ ( \
+ "svc %b1\n\t" \
+ : "=d" (_ret) \
+ : "i" (__NR_##name) ASMFMT_##nr \
+ : "memory" ); \
+ _ret; })
+
+#undef INTERNAL_SYSCALL_SVC0
+#define INTERNAL_SYSCALL_SVC0(name, err, nr, args...) \
+ ({ \
+ DECLARGS_##nr(args) \
+ register unsigned long _nr __asm__("1") = (unsigned long)(__NR_##name); \
+ register int _ret __asm__("2"); \
+ __asm__ __volatile__ ( \
+ "svc 0\n\t" \
+ : "=d" (_ret) \
+ : "d" (_nr) ASMFMT_##nr \
+ : "memory" ); \
+ _ret; })
+
+#undef INTERNAL_SYSCALL_NCS
+#define INTERNAL_SYSCALL_NCS(no, err, nr, args...) \
+ ({ \
+ DECLARGS_##nr(args) \
+ register unsigned long _nr __asm__("1") = (unsigned long)(no); \
+ register int _ret __asm__("2"); \
+ __asm__ __volatile__ ( \
+ "svc 0\n\t" \
+ : "=d" (_ret) \
+ : "d" (_nr) ASMFMT_##nr \
+ : "memory" ); \
+ _ret; })
+
+#undef INTERNAL_SYSCALL
+#define INTERNAL_SYSCALL(name, err, nr, args...) \
+ (((__NR_##name) < 256) ? \
+ INTERNAL_SYSCALL_DIRECT(name, err, nr, args) : \
+ INTERNAL_SYSCALL_SVC0(name, err,nr, args))
+
+#undef INTERNAL_SYSCALL_ERROR_P
+#define INTERNAL_SYSCALL_ERROR_P(val, err) \
+ ((unsigned int) (val) >= 0xfffff001u)
+
+#undef INTERNAL_SYSCALL_ERRNO
+#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
+
+#define DECLARGS_0()
+#define DECLARGS_1(arg1) \
+ register unsigned long gpr2 __asm__ ("2") = (unsigned long)(arg1);
+#define DECLARGS_2(arg1, arg2) \
+ DECLARGS_1(arg1) \
+ register unsigned long gpr3 __asm__ ("3") = (unsigned long)(arg2);
+#define DECLARGS_3(arg1, arg2, arg3) \
+ DECLARGS_2(arg1, arg2) \
+ register unsigned long gpr4 __asm__ ("4") = (unsigned long)(arg3);
+#define DECLARGS_4(arg1, arg2, arg3, arg4) \
+ DECLARGS_3(arg1, arg2, arg3) \
+ register unsigned long gpr5 __asm__ ("5") = (unsigned long)(arg4);
+#define DECLARGS_5(arg1, arg2, arg3, arg4, arg5) \
+ DECLARGS_4(arg1, arg2, arg3, arg4) \
+ register unsigned long gpr6 __asm__ ("6") = (unsigned long)(arg5);
+#define DECLARGS_6(arg1, arg2, arg3, arg4, arg5, arg6) \
+ DECLARGS_5(arg1, arg2, arg3, arg4, arg5) \
+ register unsigned long gpr7 __asm__ ("7") = (unsigned long)(arg6);
+
+#define ASMFMT_0
+#define ASMFMT_1 , "0" (gpr2)
+#define ASMFMT_2 , "0" (gpr2), "d" (gpr3)
+#define ASMFMT_3 , "0" (gpr2), "d" (gpr3), "d" (gpr4)
+#define ASMFMT_4 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5)
+#define ASMFMT_5 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5), "d" (gpr6)
+#define ASMFMT_6 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5), "d" (gpr6), "d" (gpr7)
+
+#define CLOBBER_0 , "3", "4", "5"
+#define CLOBBER_1 , "3", "4", "5"
+#define CLOBBER_2 , "4", "5"
+#define CLOBBER_3 , "5"
+#define CLOBBER_4
+#define CLOBBER_5
+#define CLOBBER_6
+
+/* 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
+#define HAVE_GETCPU_VSYSCALL 1
+
+/* This version is for internal uses when there is no desire
+ to set errno */
+#define INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK(name, err, nr, args...) \
+ ({ \
+ long int _ret = ENOSYS; \
+ \
+ __typeof (__vdso_##name) vdsop = __vdso_##name; \
+ PTR_DEMANGLE (vdsop); \
+ if (vdsop != NULL) \
+ _ret = INTERNAL_VSYSCALL_CALL (vdsop, err, nr, ##args); \
+ else \
+ err = 1 << 28; \
+ _ret; \
+ })
+
+#define INTERNAL_VSYSCALL_CALL(fn, err, nr, args...) \
+ ({ \
+ DECLARGS_##nr(args) \
+ register long _ret __asm__("2"); \
+ __asm__ __volatile__ ( \
+ "lr 10,14\n\t" \
+ "basr 14,%1\n\t" \
+ "lr 14,10\n\t" \
+ : "=d" (_ret) \
+ : "d" (fn) ASMFMT_##nr \
+ : "cc", "memory", "0", "1", "10" CLOBBER_##nr); \
+ _ret; })
+
+/* Pointer mangling support. */
+#if IS_IN (rtld)
+/* We cannot use the thread descriptor because in ld.so we use setjmp
+ earlier than the descriptor is initialized. */
+#else
+/* For the time being just use stack_guard rather than a separate
+ pointer_guard. */
+# ifdef __ASSEMBLER__
+# define PTR_MANGLE(reg, tmpreg) \
+ ear tmpreg,%a0; \
+ x reg,STACK_GUARD(tmpreg)
+# define PTR_MANGLE2(reg, tmpreg) \
+ x reg,STACK_GUARD(tmpreg)
+# define PTR_DEMANGLE(reg, tmpreg) PTR_MANGLE (reg, tmpreg)
+# else
+# define PTR_MANGLE(var) \
+ (var) = (void *) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())
+# define PTR_DEMANGLE(var) PTR_MANGLE (var)
+# endif
+#endif
+
+#endif /* _LINUX_S390_SYSDEP_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c
new file mode 100644
index 0000000000..b40abd5dd8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c
@@ -0,0 +1,32 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
+ 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 <utmp.h>
+
+#include "utmp-compat.h"
+#include "utmp-private.h"
+
+#if defined SHARED
+# undef weak_alias
+# define weak_alias(n,a)
+#endif
+#include "sysdeps/gnu/updwtmp.c"
+
+#if defined SHARED
+default_symbol_version (__updwtmp, updwtmp, UTMP_COMPAT_BASE);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c
new file mode 100644
index 0000000000..a344fb1e2b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
+ 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 <utmp.h>
+#include <utmpx.h>
+
+#include "utmp-compat.h"
+
+#undef weak_alias
+#define weak_alias(n,a)
+#define updwtmpx __updwtmpx
+#include "login/updwtmpx.c"
+#undef updwtmpx
+
+default_symbol_version (__updwtmpx, updwtmpx, UTMP_COMPAT_BASE);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h
new file mode 100644
index 0000000000..fe54c23e6b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h
@@ -0,0 +1,21 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
+ 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 macro defines the glibc version tag at which the 64 bit struct
+ utmp functions have been added to the 32 bit glibc. */
+#define UTMP_COMPAT_BASE GLIBC_2.9
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h
new file mode 100644
index 0000000000..5a2af614c9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h
@@ -0,0 +1,86 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
+ 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 file provides functions converting between the 32 and 64 bit
+ struct utmp variants. */
+
+#ifndef _UTMP_CONVERT_H
+#define _UTMP_CONVERT_H 1
+
+#include <string.h>
+
+#include "utmp32.h"
+
+/* Convert the 64 bit struct utmp value in FROM to the 32 bit version
+ returned in TO. */
+static inline void
+utmp_convert64to32 (const struct utmp *from, struct utmp32 *to)
+{
+#if _HAVE_UT_TYPE - 0
+ to->ut_type = from->ut_type;
+#endif
+#if _HAVE_UT_PID - 0
+ to->ut_pid = from->ut_pid;
+#endif
+ memcpy (to->ut_line, from->ut_line, UT_LINESIZE);
+ memcpy (to->ut_user, from->ut_user, UT_NAMESIZE);
+#if _HAVE_UT_ID - 0
+ memcpy (to->ut_id, from->ut_id, 4);
+#endif
+#if _HAVE_UT_HOST - 0
+ memcpy (to->ut_host, from->ut_host, UT_HOSTSIZE);
+#endif
+ to->ut_exit = from->ut_exit;
+ to->ut_session = (int32_t) from->ut_session;
+#if _HAVE_UT_TV - 0
+ to->ut_tv.tv_sec = (int32_t) from->ut_tv.tv_sec;
+ to->ut_tv.tv_usec = (int32_t) from->ut_tv.tv_usec;
+#endif
+ memcpy (to->ut_addr_v6, from->ut_addr_v6, 4 * 4);
+}
+
+/* Convert the 32 bit struct utmp value in FROM to the 64 bit version
+ returned in TO. */
+static inline void
+utmp_convert32to64 (const struct utmp32 *from, struct utmp *to)
+{
+#if _HAVE_UT_TYPE - 0
+ to->ut_type = from->ut_type;
+#endif
+#if _HAVE_UT_PID - 0
+ to->ut_pid = from->ut_pid;
+#endif
+ memcpy (to->ut_line, from->ut_line, UT_LINESIZE);
+ memcpy (to->ut_user, from->ut_user, UT_NAMESIZE);
+#if _HAVE_UT_ID - 0
+ memcpy (to->ut_id, from->ut_id, 4);
+#endif
+#if _HAVE_UT_HOST - 0
+ memcpy (to->ut_host, from->ut_host, UT_HOSTSIZE);
+#endif
+ to->ut_exit = from->ut_exit;
+ to->ut_session = (int64_t) from->ut_session;
+#if _HAVE_UT_TV - 0
+ to->ut_tv.tv_sec = (int64_t) from->ut_tv.tv_sec;
+ to->ut_tv.tv_usec = (int64_t) from->ut_tv.tv_usec;
+#endif
+ memcpy (to->ut_addr_v6, from->ut_addr_v6, 4 * 4);
+}
+
+#endif /* utmp-convert.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c
new file mode 100644
index 0000000000..eb8a478a82
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c
@@ -0,0 +1,184 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/types.h>
+#include <utmp.h>
+#include <errno.h>
+#include <libc-symbols.h>
+
+#include "utmp32.h"
+#include "utmp-convert.h"
+
+/* Allocate a static buffer to be returned to the caller. As well as
+ with the existing version of these functions the caller has to be
+ aware that the contents of this buffer will change with subsequent
+ calls. */
+#define ALLOCATE_UTMP32_OUT(OUT) \
+ static struct utmp32 *OUT = NULL; \
+ \
+ if (OUT == NULL) \
+ { \
+ OUT = malloc (sizeof (struct utmp32)); \
+ if (OUT == NULL) \
+ return NULL; \
+ }
+
+/* Perform a lookup for a utmp entry matching FIELD using function
+ FUNC. FIELD is converted to a 64 bit utmp and the result is
+ converted back to 32 bit utmp. */
+#define ACCESS_UTMP_ENTRY(FUNC, FIELD) \
+ struct utmp in64; \
+ struct utmp *out64; \
+ ALLOCATE_UTMP32_OUT (out32); \
+ \
+ utmp_convert32to64 (FIELD, &in64); \
+ out64 = FUNC (&in64); \
+ \
+ if (out64 == NULL) \
+ return NULL; \
+ \
+ utmp_convert64to32 (out64, out32); \
+ \
+ return out32;
+
+/* Search forward from the current point in the utmp file until the
+ next entry with a ut_type matching ID->ut_type. */
+struct utmp32 *
+getutid32 (const struct utmp32 *id)
+{
+ ACCESS_UTMP_ENTRY (__getutid, id)
+}
+symbol_version (getutid32, getutid, GLIBC_2.0);
+
+/* Search forward from the current point in the utmp file until the
+ next entry with a ut_line matching LINE->ut_line. */
+struct utmp32 *
+getutline32 (const struct utmp32 *line)
+{
+ ACCESS_UTMP_ENTRY (__getutline, line)
+}
+symbol_version (getutline32, getutline, GLIBC_2.0);
+
+/* Write out entry pointed to by UTMP_PTR into the utmp file. */
+struct utmp32 *
+pututline32 (const struct utmp32 *utmp_ptr)
+{
+ ACCESS_UTMP_ENTRY (__pututline, utmp_ptr)
+}
+symbol_version (pututline32, pututline, GLIBC_2.0);
+
+/* Read next entry from a utmp-like file. */
+struct utmp32 *
+getutent32 (void)
+{
+ struct utmp *out64;
+ ALLOCATE_UTMP32_OUT (out32);
+
+ out64 = __getutent ();
+ if (!out64)
+ return NULL;
+
+ utmp_convert64to32 (out64, out32);
+ return out32;
+}
+symbol_version (getutent32, getutent, GLIBC_2.0);
+
+/* Reentrant versions of the file for handling utmp files. */
+
+int
+getutent32_r (struct utmp32 *buffer, struct utmp32 **result)
+{
+ struct utmp out64;
+ struct utmp *out64p;
+ int ret;
+
+ ret = __getutent_r (&out64, &out64p);
+ if (ret == -1)
+ {
+ *result = NULL;
+ return -1;
+ }
+
+ utmp_convert64to32 (out64p, buffer);
+ *result = buffer;
+
+ return 0;
+}
+symbol_version (getutent32_r, getutent_r, GLIBC_2.0);
+
+int
+getutid32_r (const struct utmp32 *id, struct utmp32 *buffer,
+ struct utmp32 **result)
+{
+ struct utmp in64;
+ struct utmp out64;
+ struct utmp *out64p;
+ int ret;
+
+ utmp_convert32to64 (id, &in64);
+
+ ret = __getutid_r (&in64, &out64, &out64p);
+ if (ret == -1)
+ {
+ *result = NULL;
+ return -1;
+ }
+
+ utmp_convert64to32 (out64p, buffer);
+ *result = buffer;
+
+ return 0;
+}
+symbol_version (getutid32_r, getutid_r, GLIBC_2.0);
+
+int
+getutline32_r (const struct utmp32 *line,
+ struct utmp32 *buffer, struct utmp32 **result)
+{
+ struct utmp in64;
+ struct utmp out64;
+ struct utmp *out64p;
+ int ret;
+
+ utmp_convert32to64 (line, &in64);
+
+ ret = __getutline_r (&in64, &out64, &out64p);
+ if (ret == -1)
+ {
+ *result = NULL;
+ return -1;
+ }
+
+ utmp_convert64to32 (out64p, buffer);
+ *result = buffer;
+
+ return 0;
+
+}
+symbol_version (getutline32_r, getutline_r, GLIBC_2.0);
+
+/* Append entry UTMP to the wtmp-like file WTMP_FILE. */
+void
+updwtmp32 (const char *wtmp_file, const struct utmp32 *utmp)
+{
+ struct utmp in32;
+
+ utmp_convert32to64 (utmp, &in32);
+ __updwtmp (wtmp_file, &in32);
+}
+symbol_version (updwtmp32, updwtmp, GLIBC_2.0);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h
new file mode 100644
index 0000000000..d5019292c1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h
@@ -0,0 +1,51 @@
+/* The `struct utmp' type, describing entries in the utmp file. GNU 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/>. */
+
+#ifndef _UTMP32_H
+#define _UTMP32_H 1
+
+#include <paths.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <bits/wordsize.h>
+#include <utmp.h>
+
+/* The structure describing an entry in the user accounting database. */
+struct utmp32
+{
+ short int ut_type; /* Type of login. */
+ pid_t ut_pid; /* Process ID of login process. */
+ char ut_line[UT_LINESIZE]; /* Devicename. */
+ char ut_id[4]; /* Inittab ID. */
+ char ut_user[UT_NAMESIZE]; /* Username. */
+ char ut_host[UT_HOSTSIZE]; /* Hostname for remote login. */
+ struct exit_status ut_exit; /* Exit status of a process marked
+ as DEAD_PROCESS. */
+ int32_t ut_session; /* Session ID, used for windowing. */
+ struct
+ {
+ int32_t tv_sec; /* Seconds. */
+ int32_t tv_usec; /* Microseconds. */
+ } ut_tv; /* Time entry was made. */
+
+ int32_t ut_addr_v6[4]; /* Internet address of remote host. */
+ char __glibc_reserved[20]; /* Reserved for future use. */
+};
+
+
+#endif /* utmp32.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h
new file mode 100644
index 0000000000..c10bd165aa
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h
@@ -0,0 +1,85 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
+ 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 file provides functions converting between the 32 and 64 bit
+ struct utmp variants. */
+
+#ifndef _UTMPX_CONVERT_H
+#define _UTMPX_CONVERT_H 1
+
+#include <string.h>
+#include "utmpx32.h"
+
+/* Convert the 64 bit struct utmpx value in FROM to the 32 bit version
+ returned in TO. */
+static inline void
+utmpx_convert64to32 (const struct utmpx *from, struct utmpx32 *to)
+{
+#if _HAVE_UT_TYPE - 0
+ to->ut_type = from->ut_type;
+#endif
+#if _HAVE_UT_PID - 0
+ to->ut_pid = from->ut_pid;
+#endif
+ memcpy (to->ut_line, from->ut_line, __UT_LINESIZE);
+ memcpy (to->ut_user, from->ut_user, __UT_NAMESIZE);
+#if _HAVE_UT_ID - 0
+ memcpy (to->ut_id, from->ut_id, 4);
+#endif
+#if _HAVE_UT_HOST - 0
+ memcpy (to->ut_host, from->ut_host, __UT_HOSTSIZE);
+#endif
+ to->ut_exit = from->ut_exit;
+ to->ut_session = (int32_t) from->ut_session;
+#if _HAVE_UT_TV - 0
+ to->ut_tv.tv_sec = (int32_t) from->ut_tv.tv_sec;
+ to->ut_tv.tv_usec = (int32_t) from->ut_tv.tv_usec;
+#endif
+ memcpy (to->ut_addr_v6, from->ut_addr_v6, 4 * 4);
+}
+
+/* Convert the 32 bit struct utmpx value in FROM to the 64 bit version
+ returned in TO. */
+static inline void
+utmpx_convert32to64 (const struct utmpx32 *from, struct utmpx *to)
+{
+#if _HAVE_UT_TYPE - 0
+ to->ut_type = from->ut_type;
+#endif
+#if _HAVE_UT_PID - 0
+ to->ut_pid = from->ut_pid;
+#endif
+ memcpy (to->ut_line, from->ut_line, __UT_LINESIZE);
+ memcpy (to->ut_user, from->ut_user, __UT_NAMESIZE);
+#if _HAVE_UT_ID - 0
+ memcpy (to->ut_id, from->ut_id, 4);
+#endif
+#if _HAVE_UT_HOST - 0
+ memcpy (to->ut_host, from->ut_host, __UT_HOSTSIZE);
+#endif
+ to->ut_exit = from->ut_exit;
+ to->ut_session = (int64_t) from->ut_session;
+#if _HAVE_UT_TV - 0
+ to->ut_tv.tv_sec = (int64_t) from->ut_tv.tv_sec;
+ to->ut_tv.tv_usec = (int64_t) from->ut_tv.tv_usec;
+#endif
+ memcpy (to->ut_addr_v6, from->ut_addr_v6, 4 * 4);
+}
+
+#endif /* utmpx-convert.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c
new file mode 100644
index 0000000000..eb312f6bdb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c
@@ -0,0 +1,139 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/types.h>
+#include <utmp.h>
+#include <errno.h>
+#include <libc-symbols.h>
+
+#include "utmp32.h"
+#include "utmp-convert.h"
+
+#include "utmpx32.h"
+#include "utmpx-convert.h"
+
+/* Allocate a static buffer to be returned to the caller. As well as
+ with the existing version of these functions the caller has to be
+ aware that the contents of this buffer will change with subsequent
+ calls. */
+#define ALLOCATE_UTMPX32_OUT(OUT) \
+ static struct utmpx32 *OUT = NULL; \
+ \
+ if (OUT == NULL) \
+ { \
+ OUT = malloc (sizeof (struct utmpx32)); \
+ if (OUT == NULL) \
+ return NULL; \
+ }
+
+/* Perform a lookup for a utmpx entry matching FIELD using function
+ FUNC. FIELD is converted to a 64 bit utmpx and the result is
+ converted back to 32 bit utmpx. */
+#define ACCESS_UTMPX_ENTRY(FUNC, FIELD) \
+ struct utmpx in64; \
+ struct utmpx *out64; \
+ ALLOCATE_UTMPX32_OUT (out32); \
+ \
+ utmpx_convert32to64 (FIELD, &in64); \
+ out64 = FUNC (&in64); \
+ \
+ if (out64 == NULL) \
+ return NULL; \
+ \
+ utmpx_convert64to32 (out64, out32); \
+ \
+ return out32;
+
+
+/* Get the next entry from the user accounting database. */
+struct utmpx32 *
+getutxent32 (void)
+{
+ struct utmpx *out64;
+ ALLOCATE_UTMPX32_OUT (out32);
+
+ out64 = __getutxent ();
+ if (!out64)
+ return NULL;
+
+ utmpx_convert64to32 (out64, out32);
+ return out32;
+
+}
+symbol_version (getutxent32, getutxent, GLIBC_2.1);
+
+/* Get the user accounting database entry corresponding to ID. */
+struct utmpx32 *
+getutxid32 (const struct utmpx32 *id)
+{
+ ACCESS_UTMPX_ENTRY (__getutxid, id);
+}
+symbol_version (getutxid32, getutxid, GLIBC_2.1);
+
+/* Get the user accounting database entry corresponding to LINE. */
+struct utmpx32 *
+getutxline32 (const struct utmpx32 *line)
+{
+ ACCESS_UTMPX_ENTRY (__getutxline, line);
+}
+symbol_version (getutxline32, getutxline, GLIBC_2.1);
+
+/* Write the entry UTMPX into the user accounting database. */
+struct utmpx32 *
+pututxline32 (const struct utmpx32 *utmpx)
+{
+ ACCESS_UTMPX_ENTRY (__pututxline, utmpx);
+}
+symbol_version (pututxline32, pututxline, GLIBC_2.1);
+
+/* Append entry UTMP to the wtmpx-like file WTMPX_FILE. */
+void
+updwtmpx32 (const char *wtmpx_file, const struct utmpx32 *utmpx)
+{
+ struct utmpx in64;
+
+ utmpx_convert32to64 (utmpx, &in64);
+ __updwtmpx (wtmpx_file, &in64);
+}
+symbol_version (updwtmpx32, updwtmpx, GLIBC_2.1);
+
+/* Copy the information in UTMPX to UTMP. */
+void
+getutmp32 (const struct utmpx32 *utmpx, struct utmp32 *utmp)
+{
+ struct utmpx in64;
+ struct utmp out64;
+
+ utmpx_convert32to64 (utmpx, &in64);
+ __getutmp (&in64, &out64);
+ utmp_convert64to32 (&out64, utmp);
+}
+symbol_version (getutmp32, getutmp, GLIBC_2.1.1);
+
+/* Copy the information in UTMP to UTMPX. */
+void
+getutmpx32 (const struct utmp32 *utmp, struct utmpx32 *utmpx)
+{
+ struct utmp in64;
+ struct utmpx out64;
+
+ utmp_convert32to64 (utmp, &in64);
+ __getutmpx (&in64, &out64);
+ utmpx_convert64to32 (&out64, utmpx);
+}
+symbol_version (getutmpx32, getutmpx, GLIBC_2.1.1);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h
new file mode 100644
index 0000000000..ca5e60c3c4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h
@@ -0,0 +1,59 @@
+/* The `struct utmp' type, describing entries in the utmp file. GNU 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/>. */
+
+#ifndef _UTMPX32_H
+#define _UTMPX32_H 1
+
+#include <paths.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <bits/wordsize.h>
+#include <utmpx.h>
+
+/* The structure describing an entry in the user accounting database. */
+struct utmpx32
+{
+ short int ut_type; /* Type of login. */
+ __pid_t ut_pid; /* Process ID of login process. */
+ char ut_line[__UT_LINESIZE]; /* Devicename. */
+ char ut_id[4]; /* Inittab ID. */
+ char ut_user[__UT_NAMESIZE]; /* Username. */
+ char ut_host[__UT_HOSTSIZE]; /* Hostname for remote login. */
+ struct __exit_status ut_exit; /* Exit status of a process marked
+ as DEAD_PROCESS. */
+ __int64_t ut_session; /* Session ID, used for windowing. */
+ struct
+ {
+ __int64_t tv_sec; /* Seconds. */
+ __int64_t tv_usec; /* Microseconds. */
+ } ut_tv; /* Time entry was made. */
+
+ __int32_t ut_addr_v6[4]; /* Internet address of remote host. */
+ char __glibc_reserved[20]; /* Reserved for future use. */
+};
+
+/* The internal interface needed by the compat wrapper functions. */
+extern struct utmpx *__getutxent (void);
+extern struct utmpx *__getutxid (const struct utmpx *__id);
+extern struct utmpx *__getutxline (const struct utmpx *__line);
+extern struct utmpx *__pututxline (const struct utmpx *__utmpx);
+extern void __updwtmpx (const char *__wtmpx_file, const struct utmpx *__utmpx);
+extern void __getutmp (const struct utmpx *__utmpx, struct utmp *__utmp);
+extern void __getutmpx (const struct utmp *__utmp, struct utmpx *__utmpx);
+
+#endif /* utmpx32.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/versionsort64.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/versionsort64.c
new file mode 100644
index 0000000000..144b691e56
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/versionsort64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/versionsort64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S
new file mode 100644
index 0000000000..4da2345836
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S
@@ -0,0 +1,47 @@
+/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+#include <bits/wordsize.h>
+#include <tcb-offsets.h>
+
+/* Clone the calling process, but without copying the whole address space.
+ The calling process is suspended until the new process exits or is
+ replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
+ and the process ID of the new process to the old process. */
+
+ENTRY (__libc_vfork)
+ /* Do vfork system call. */
+ svc SYS_ify (vfork)
+
+ /* Check for error. */
+ lhi %r4,-4095
+ clr %r2,%r4
+ jnl SYSCALL_ERROR_LABEL
+
+ /* Normal return. */
+ br %r14
+PSEUDO_END (__libc_vfork)
+
+#if IS_IN (libc)
+weak_alias (__libc_vfork, vfork)
+strong_alias (__libc_vfork, __vfork)
+libc_hidden_def (__vfork)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/xstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/xstat.c
new file mode 100644
index 0000000000..e9869f5508
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-32/xstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/xstat.c>